Challenger C4P estate sale find project

Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Challenger C4P estate sale find project

Post by Dokken »

C4PMF with floppy drive, 505 Rev B. board.

when I got it, the break key with caps lock on would do nothing. I have a backbit chip tester and the 6502 showed as bad. replaced the 6502 and this procedure got me to an H/D/M? prompt with the bottom half of the screen corrupted. chip tester showed 2 of the 2114 chips on the video board bad. replaced those and I now get a nice clean H/D/M? screen.

I do not have the floppy drive board connected at this point. The keyboard does not respond to h, d, or m. it does not seem to recognize the keys. again, the break key does reset the machine.

I'm going to do some reading, but does anyone have any ideas at this point?
BillO
Posts: 216
Joined: Tue Jul 08, 2014 4:03 pm
Location: Canada
Contact:

Re: Challenger C4P estate sale find project

Post by BillO »

The first thing I would check is if the keyboard was properly connected.
Box stock Superboard II Rev. B
KLyball replica 600D, replica 610 & KLyball Data Separator
OMS SBME and SBME+ memory cards
OMS Digi-Mule expansion bus
KLyball memory card
bxdanny
Posts: 336
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Challenger C4P estate sale find project

Post by bxdanny »

Assuming the keyboard is connected right (with a ribbon cable to the video board), the contacts on the key switches could be corroded or damaged. Try directly shorting the leads from the 'M' key together and seeing if that brings up the Monitor program. (Actually, any character key other than 'D' or 'H' should do so.) You could also check the contacts and the general condition of the ribbon cable connecting the keyboard to the video board. If it still doesn't work, check the chips on the keyboard PCB. (Schematics of the keyboard, the 542B, and the other boards in the system are on the same section of Mark's site as the video board schematics he gave you the link for.)
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

poked around on the keyboard circuit a little more. switches and solder joints look fine. I probed the output looking for changes when I press a key and I'm not seeing any change. I notice the break key is wired directly off the board, so that might explain why it works when no other keys do.

only using a probe so far. I see activity on all of the 74 chips with the exception of U11 74LS390 which is only partially showing activity. this U11 chip was also very corroded on all the pins, the black gunk I've seen before coating pins. My chip tester does test 74 series, and all of them test ok but U11 tests bad.

I'm truly just fishing around here right now. ordered an LS390 for the heck of it while I continue to poke around.
Mark
Posts: 297
Joined: Tue Sep 16, 2008 6:04 am
Location: Madison, WI
Contact:

Re: Challenger C4P estate sale find project

Post by Mark »

There are two keyboard variants found with the C4PMF, the 542B and 542C. Which one do you have?
The main difference is the 542C adds reset delay - you have to hold the break key down longer to reset the OSI. The 542C has a LM393 added to do the delay, and some higher current open collector drivers (7417) to select keyboard rows eliminating the diodes. There is a 16pin cable that runs from the keyboard to the 540 video board, and another the runs to the A15 board in the back of the computer for joysticks. (You don't need that cable to have a functioning keyboard - remove it until it's all working.)

The keyboard scanning itself consists of some 8T26 bus transceivers, some 74LS75 quad latches and a 74LS138 3 to 8 decoder. The '390 is used for tone generation along with the 74LS193's, and shouldn't affect keyboard operation.

According to the 542B schematics you should see activity on the 74LS75 pins 4 &13 as the rows are scanned, data is returned through the 8T26's. Pin 15 of the 8T26's should be toggling as rows are selected and columns are returned.
Make sure the row diodes are not open/shorted on the 542B.

Personally I've had 8T26's die on me. See if there is any activity on the buffered data bus between video board & keyboard by checking keyboard 8T26s, pins 13, 10, 6 & 3. Besides the keyboard, there is a 2nd pair on the 540 video board just for keyboard I/O. Swapping them around with the others in the system should let you figure out it they work.

Good Luck!
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

Thank you!

mine is a 542B.

74LS75

U1
3 pulse then stuck low w/key
6. pulse then stuck high w/key
10. pulse then stuck low w/key
13. pulse then stuck low w/key

U2
3 pulse then stuck low w/key
6. pulse then stuck low w/key
10. pulse then stuck low w/key
13. pulse then stuck high w/key

U3
3 pulse then stuck low w/key.
6. pulse then stuck high w/key.
10. always stuck high
13. always stuck low

U4
3 pulse then stuck high w/key
6. pulse then stuck high w/key
10. always stuck low
13. always stuck low

by 'pulse then stuck low' I mean it pulses on reset then sticks when I press any key.

8T26
pins 10, 13, 6, 3 all pulse but get stuck low after a key press.

edit for formatting
Mark
Posts: 297
Joined: Tue Sep 16, 2008 6:04 am
Location: Madison, WI
Contact:

Re: Challenger C4P estate sale find project

Post by Mark »

Can you see any activity on the CPU? Address / Data?

If the CPU is crashing or stuck in a loop, key polling stops.

If the 'H' key is stuck down, the system will crash in invalid stack and stop polling after the 2nd keypress.

If the stack area of RAM $100-$1FF is bad, the CPU will crash after 1st keypress due to invalid address on RTS

If the low order column bit of the keyboard is returned as '1' in any row other than row 0, the keypoller code gets stuck in an endless loop at $FDCA in the system ROM. This bit is used for shift-lock on row 0 which is fine.
(So if you have an OSI joystick fire button pressed (row7, column 0) the keypoller gets stuck in an endless loop. This could also happen due to bad components in keyboard always returning '1'.)

Since the screen is clearing, it indicates zero page $FD & $FE appear to be working so some RAM is OK.

Hope this helps,
-Mark

Code: Select all

OSI  C4PMF $FFxx system ROM code
FF9A 48 2F 44 2F 4D 3F ; "H/D/M?
FFA0 D8       CLD
FFA1 A2 D8    LDX #$D8
FFA3 A9 D0    LDA #$D0
FFA5 85 FE    STA $FE
FFA7 A0 00    LDY #$00
FFA9 84 FD    STY $FD	;set top of screen address in $FD,$FE
FFAB A9 20    LDA #$20
FFAD 91 FD    STA ($FD),Y	;erase screen
FFAF C8       INY
FFB0 D0 FB    BNE $FFAD
FFB2 E6 FE    INC $FE
FFB4 E4 FE    CPX $FE
FFB6 D0 F5    BNE $FFAD	;loop till done
FFB8 A9 03    LDA #$03
FFBA 8D 00 FC STA $FC00
FFBD A9 B1    LDA #$B1
FFBF 8D 00 FC STA $FC00	;Reset ACIA, set 8N2/16
FFC2 B9 9A FF LDA $FF9A,Y ;copy H/D/M? prompt from ROM
FFC5 30 0E    BMI $FFD5
FFC7 99 C6 D0 STA $D0C6,Y ; store on screen
FFCA AE 01 FE LDX $FE01	;$FE01 = #$28 on video systems
FFCD D0 03    BNE $FFD2	;always branch on C4PMF
FFCF 20 0B FE JSR $FE0B  ;(not used on video system)
FFD2 C8       INY
FFD3 D0 ED    BNE $FFC2	;loop til prompt done
FFD5 AD 01 FE LDA $FE01
FFD8 D0 05    BNE $FFDF	;(always branch on C4PMF)
FFDA 20 00 FE JSR $FE00
FFDD B0 03    BCS $FFE2
FFDF 20 ED FE JSR $FEED	;JSR to JMP to wait for keyboard input at $FD00
FFE2 C9 48    CMP #$48	;returned H?
FFE4 F0 0A    BEQ $FFF0
FFE6 C9 44    CMP #$44	;returned D?
FFE8 D0 0C    BNE $FFF6
FFEA 20 00 FF JSR $FF00	;D entry - call disk initialization & load from floppy
FFED 4C 00 22 JMP $2200
FFF0 4C 00 FD JMP $FD00	;H entry - calls wait for keypress then RTS to invalid stack
FFF3 20 00 FF JSR $FF00
FFF6 6C FC FE JMP ($FEFC)	; all other keys indirect jump to monitor @ FE00
FFF9 EA       NOP
FFFA 30 01    IRQ Vector
FFFC A0 FF    RESET Vector
FFFE C0 01    NMI Vector
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

Thank you, Mark!

Poking around on it today I noticed intermittent ability to reset. a little jiggle on the processor board and it gets back to the reset and can get what I believe is the monitor.

Possibly a physical connection or solder issue on the backplane connectors? [EDIT] I removed the backplane and there were several cracked joints. re-flowed and cleaned the connectors and it seems to work consistently now!!

it comes up as 0000, I was able to type in numbers. so it looks like the keyboard is functioning to some degree.

what else can I do at this point with no floppy hooked up to check on anything?
challenger monitor Screen Shot 2022-07-15 at 1.58.51 PM.png
challenger monitor Screen Shot 2022-07-15 at 1.58.51 PM.png (4.28 MiB) Viewed 31016 times
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

Screen Shot 2022-07-15 at 4.18.30 PM.png
Screen Shot 2022-07-15 at 4.18.30 PM.png (2.69 MiB) Viewed 31008 times
there were several joints in bad shape.
Mark
Posts: 297
Joined: Tue Sep 16, 2008 6:04 am
Location: Madison, WI
Contact:

Re: Challenger C4P estate sale find project

Post by Mark »

Good progress!
My OSI C4P seems to regularly need chips reseated :-( maybe I have the same backplane problem too?

Upon Reset, your OSI should show H/D/M? and wait for a keypress. If you type anything but H or D you end up in the monitor at 0000.

So if you are not pressing a key, something must be acting as a pressed key. Can you type anything more than numbers ? A-F ? L? G?

So at this point, you may be able to load things through the serial port or enter things through the keyboard.
The following small program will echo keyboard key presses to the screen. Return, Line Feed etc. will show as graphics characters.
In the monitor, try entering the following, press <Return> after each line. (This program can be located anywhere in memory, I chose $300 as a good point.)

Code: Select all

.0300/A0
00
20
00
FD
99
06
D1
C8
D0
F7
F0
F5
.0300G
At this point anything you type should be displayed below the monitor line, like this:
Keyboard Echo
Keyboard Echo
keyecho.gif (2.63 KiB) Viewed 31007 times
The entry point for floppy access is $FFEA , so entering .FFEAG in the monitor should activate the disk drive (if connected), and you can't press 'D' at startup.

If you are more ambitious, you could try connecting the OSI to a host computer via serial port. I believe the default communications setting may be 1200 bps/8N2 (otherwise try 300/8N2) (no flow control). Upon reset, enter the monitor, press 'L' and send an OSI program as raw ASCII via serial.
One program to try is contained in TestMem.zip located on the tools page here. Use this to test your system's memory. It's a very tiny primitive program so read the docs for commands.

You could try loading John Conway's game of life https://osi.marks-lab.com/software/files/OSILife.zip on the games page

Or perhaps a Kaleidoscope program for graphics tests?
Image
If you have difficulty getting programs to load, type .FC00/0312. before loading to drop the baud rate by 4x (1200bps->300bps)
To restore screen to 64 column mode type .DE00/01.

Here's a text version of the keyboard layout to help figure out row/column locations

Code: Select all

OSI keyboard decode table reference
  Columns read from $DF00, Rows selected by writing to $DF00
	C2/C4 series has noninverted values (bit set when key pressed)
  C1/Superboard has inverted values, bit cleared when key pressed.

     7    6    5    4    3    2    1    0
 -----------------------------------------
 7- 1/!  2/"  3/#  4/$  5/%  6/&  7/'

 6- 8/(  9/)  0/@  :/*  -/=  rub

 5- ./>   L    O    lf   cr
 
 4-  W    E    R    T    Y    U    I
 					 
 3-  S    D    F    G    H    J    K
 
 2-  X    C    V    B    N    M   ,/<

 1-  Q    A    Z   spc  //?  ;/+   P
 
 0- rpt  ctl  esc            lsh  rsh  caps

 Joysticks

   H   A   B	 
     \ | /	 
  G -- I -- C	 
     / | \	
   F   E   D

Joystick A = enable row 7	 returns bits 4-0
Joystick B = enable row 4	 returns bits 7-3

     7    6    5    4    3    2    1    0
   -----------------------------------------
 7-                 UP   DN   RI   LE   FIRE    (Joy A)
 4- FIRE DN   UP    RI   LE                     (Joy B)
Good Luck!
Attachments
keytest.asm
key echo Assembler source
(194 Bytes) Downloaded 682 times
Post Reply