Challenger C4P estate sale find project
-
- Posts: 46
- Joined: Tue Jul 05, 2022 10:47 am
Challenger C4P estate sale find project
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?
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?
-
- Posts: 216
- Joined: Tue Jul 08, 2014 4:03 pm
- Location: Canada
- Contact:
Re: Challenger C4P estate sale find project
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
KLyball replica 600D, replica 610 & KLyball Data Separator
OMS SBME and SBME+ memory cards
OMS Digi-Mule expansion bus
KLyball memory card
-
- Posts: 417
- Joined: Thu Apr 16, 2015 2:27 pm
- Location: Bronx, NY USA
Re: Challenger C4P estate sale find project
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)
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)
-
- Posts: 46
- Joined: Tue Jul 05, 2022 10:47 am
Re: Challenger C4P estate sale find project
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.
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.
-
- Posts: 308
- Joined: Tue Sep 16, 2008 6:04 am
- Location: Madison, WI
- Contact:
Re: Challenger C4P estate sale find project
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!
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!
-
- Posts: 46
- Joined: Tue Jul 05, 2022 10:47 am
Re: Challenger C4P estate sale find project
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
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
-
- Posts: 308
- Joined: Tue Sep 16, 2008 6:04 am
- Location: Madison, WI
- Contact:
Re: Challenger C4P estate sale find project
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
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
-
- Posts: 46
- Joined: Tue Jul 05, 2022 10:47 am
Re: Challenger C4P estate sale find project
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?
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?
-
- Posts: 46
- Joined: Tue Jul 05, 2022 10:47 am
Re: Challenger C4P estate sale find project
there were several joints in bad shape.
-
- Posts: 308
- Joined: Tue Sep 16, 2008 6:04 am
- Location: Madison, WI
- Contact:
Re: Challenger C4P estate sale find project
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.)
At this point anything you type should be displayed below the monitor line, like this:
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?
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
Good Luck!
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
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?
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)
- Attachments
-
- keytest.asm
- key echo Assembler source
- (194 Bytes) Downloaded 904 times