Challenger C4P estate sale find project

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 »

My C4P has had that problem, but reseating boards or socketed chips usually fixed it for a while. Finally I resoldered the backplane connectors and cleaned them all with deoxit to solve the flakies. Other things that have happened: Put the reset connector from the keyboard in the wrong socket holes; one of the two 5V power supplies failed & only half the bus was powered (each one powered 2 slots) Eventually I replaced both with a single modern switching supply; Over the years a couple 8T26s have died as well as a few other random TTL ICs, usually involving the keyboard though.

Can you reset it by grounding pin 40 of the 6502 or verify the reset signal is making it that far?
Next thing that happens is the ROM is read & screen is cleared but it depends on the priority encoder jumpers which maps the pages of the kernel ROM into the address space - Do you have a 505B board?
Afterwards the ACIA is reset and the H/D/M? prompt is written to the screen. You can check the $FC00 6850 (U1D) pin 9 for access to see if it's getting that far -- perhaps the screen is just not being accessed?
The SAMS schematics are very helpful.
Good Luck!
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

it is a 505 Rev B board.

Reset key works. when I ground pin 40 of the 6502 it does a reset signal but goes back to garbage.

which IC is the ROM?
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 »

OSI 505B
OSI 505B
OSI505B-top.jpg (716.63 KiB) Viewed 28352 times
The priority encoder and jumpers in yellow in the image control which page of the SYN600 ROM [in red] is mapped into the address space - my jumpers have been kludged to switch between BASIC in ROM C/W/M? (which I use with an added BASIC ROM) and disk based H/D/M?
For normal H/D/M? operation page 0 of the SYN600 is mapped to FF00 (reset page), page 1 is mapped to FD00 (keyboard poller) and page 2 is mapped to FE00 (monitor).

Looking at the SYN600 reset code, it will try to clear the display first but it depends on zero page RAM working to do this. If this RAM is missing or bad, it may continuously write to some page in memory in a loop which may never end. This could prevent the reset of the ACIA which happens just after screen clear completes. So I feel it's most likely a RAM problem if the ACIA is not accessed and the screen does not erase. What RAM boards do you have installed?

Code: Select all

; SYN600 - OSI multiboard Monitor ROM
; pages banked into address space depending on machine configuration

; page 0 'H/D/M'   maps to $FF00 for a C2/C4 disk system
; page 1 keypoller maps to $FD00 for a C2/C4 system
; page 2 monitor   maps to $FE00 for a C2/C4 system
; page 3 'C/W/M'   maps to $FF00 for a C2/C4 tape system
; page 4 disk boot maps to $FC00 for a C1 system
; page 5 keypoller maps to $FD00 for a C1 system
; page 6 monitor   maps to $FE00 for a C1 system
; page 7 'D/C/W/M' maps to $FF00 for a C1 system

;page 0 reset entry point
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	;store D000 address in zero page
FFAB  A9 20      LDA #$20
FFAD  91 FD      STA ($FD),Y  ;fill page with space character
FFAF  C8         INY
FFB0  D0 FB      BNE $FFAD
FFB2  E6 FE      INC $FE	;increment high order address
FFB4  E4 FE      CPX $FE	;loop until address is $D8
FFB6  D0 F5      BNE $FFAD
FFB8  A9 03      LDA #$03
FFBA  8D 00 FC   STA $FC00  ;reset ACIA
FFBD  A9 B1      LDA #$B1
FFBF  8D 00 FC   STA $FC00  ;set 8N2
FFC2  B9 9A FF   LDA $FF9A,Y
FFC5  30 0E      BMI $FFD5
FFC7  99 C6 D0   STA $D0C6,Y	;write H/D/M? to display memory (and serial port on serial systems)
FFCA  AE 01 FE   LDX $FE01
FFCD  D0 03      BNE $FFD2
FFCF  20 0B FE   JSR $FE0B
FFD2  C8         INY
FFD3  D0 ED      BNE $FFC2
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

Thank you, Mark.

I am still stuck with garbage screen (like normal when it worked), resetting the 6502 will make it appear to try to reset but still garbage. I do have activity on the 6502 clock, data, address lines. but no video. and from our earlier discussion on enabling serial/terminal mode, I need to enter a program via the keyboard to enable terminal (I never successfully was able to serially connect even when I had working video. so I feel stuck.

would it be worth trying a new rom? can I burn one to an eprom with my TLS mini-pro? what chip type? is there any type of diagnostic rom?

I have been thinking about the romulator 6502 device. a ram/rom replacement Arduino that sits between the 6502 and motherboard. I have one in use in my PET. the romulator lets you customize a rom file, tell where to locate it, use onboard ram or romulator ram, passthrough, etc. You can dump/examine activity and even replicate the output in some situations, all using a connected raspberry pi. I bought two of these kits so I have a spare. ut I don't know if this would be useful in the OSI.

https://youtu.be/wamgUxN1z6o

https://github.com/bitfixer/bf-romulator
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 »

Well I'm so happy you pointed out the Romulator!

I have been thinking about making something like that, but it'll be much easier just to buy one!

So I'll post the ROM logical memory dump used in the C4PMF to try with the Romulator. It's 3 pages long (768 bytes) starting at $FD00, and differs from a dump of the actual ROM in that the pages are rearranged in the correct order for this configuration.

If you configure the romulator for RAM at 0000-BFFF and the ROM at FD00+, the remaining OSI screen memory & I/O should fit in at $C000-FCFF.
You'll need to create your own "memory_set_default.csv" & "enable_table_default.csv" configuration files according to the instructions at https://github.com/bitfixer/bf-romulato ... /README.md

We can try other programs/ROMS to try to troubleshoot things, but this may get you going with the romulator.
Cool!

(What RAM board(s) are you using with your C4P?)

-Mark
Attachments
C4PMF_FD00-FFFF.zip
OSI C4PMF logical ROM dump binary FD00-FFFF
(807 Bytes) Downloaded 664 times
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

thank you agin, Mark. I'll build up my 2nd romulator 6502 this weekend and get the pi-hat working. bit fixer also offers a z80 version which also have a couple unassembled. such a neat device and the 6502 version comes pre-loaded for pet, apple 2, and some commodore machines, but I didn't know where to start with the osi. your example is great for me to try with.

regarding RAM, I have the stock C4PMF system, so it has the 505 CPU, 527 RAM, and 540 video/serial/??, plus the backplane, old floppy interface, and the rear end IO boards, and keyboard.

I'll get back to you later today hopefully.
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

Romulator update:

I built up the 2nd romulator 6502, the pi hat, and the direct (non-pi) cable. fully installed the bs-romulator files on the pi using the setup.sh.

I created the 2 config files and used the make program command using the pi's command line/terminal. it went through several things but kept giving me a couple of build errors due to missing files that I have not figured out yet.

so I plugged in the direct RPI ROMulator programming board. it creates a web server for the romulator. bit fixer's site has an upload facility to create the programming bin by uploading the two csv config files and the rom bin. this seemed to work and gave me back a single bin to program with.

I downloaded the memory of the romulator after a power cycle. I get the garbage screen, and a pin 40 reset or web reset does not change the screen.

do I have the memory ranges configured properly in the memory_set file?

I do see the H/D/M prompt in the last image. do I need to be viewing with a hex editor?

web int Screenshot 2023-04-23 at 11.46.30 AM.png
web int Screenshot 2023-04-23 at 11.46.30 AM.png (2.75 MiB) Viewed 28241 times
mem set Screenshot 2023-04-23 at 11.45.30 AM.png
mem set Screenshot 2023-04-23 at 11.45.30 AM.png (2.35 MiB) Viewed 28241 times
enable table Screenshot 2023-04-23 at 11.45.57 AM.png
enable table Screenshot 2023-04-23 at 11.45.57 AM.png (2.54 MiB) Viewed 28241 times
osi garb Screenshot 2023-04-23 at 11.44.55 AM.png
osi garb Screenshot 2023-04-23 at 11.44.55 AM.png (3.49 MiB) Viewed 28241 times
memdump1 Screenshot 2023-04-23 at 11.55.51 AM.png
memdump1 Screenshot 2023-04-23 at 11.55.51 AM.png (2.03 MiB) Viewed 28241 times
memdump2 Screenshot 2023-04-23 at 11.55.00 AM.png
memdump2 Screenshot 2023-04-23 at 11.55.00 AM.png (1.58 MiB) Viewed 28241 times
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

I think the enable_table should be set to dip position 4. I have the dips set to off off on off which should be rom 4.

I changed this, reprogrammed, and get this in a vram dump:
vram2 Screenshot 2023-04-23 at 12.27.14 PM.png
vram2 Screenshot 2023-04-23 at 12.27.14 PM.png (2.11 MiB) Viewed 28239 times
reset does nothing.
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 »

Hi, It looks like you've made great progress!
I have no experience with the romulator, but I think C000-FCFF should be passthrough, and FD00-FFFF should be readonly, although readwrite shouldn't hurt. When not set passthrough I believe it is going to the romulator instead of the 6502 socket.

The H/D/M? in the last dump is part of the ROM I believe.

With a 527 board your OSI should have RAM from 0000-5FFF (24K). In order to show the H/D/M? prompt you need a bit less than 1K of working RAM. To get OS65D to boot, I think you need at least 16K, (but it wouldn't be useful). Anyway, when debugging at some point it may make sense to only have romulator provide the 1st 1K of RAM (0000-03FF), allowing you to debug the rest.

We need it to get to a point where some I/O is happening, either the screen or serial port to be able to interact. I guess we could have it log to memory & dump that to see if anything is working... but that will happen at a later time. First we need the OSI to reset and start running its rom!


Sadly the romulator is on backorder currently... so I'll have to wait to get one to play with.
Dokken
Posts: 45
Joined: Tue Jul 05, 2022 10:47 am

Re: Challenger C4P estate sale find project

Post by Dokken »

Summer project (deck rebuild) is finished and my head has cleared somewhat. It's been about a year since I picked up this C4P. it worked except for some bad RAM and bad floppy, I had a data separator and gotek partially working, then it stopped working and would not reset to the prompt.

The 7402 in red circle was bad. Replaced it and I AM BACK IN BUSINESS as it BOOTS AND COMPUTES (sorta).

I get the prompt now, so hopefully I can finish this by this time next year! YEEEHAAAWWW!!!
Screenshot 2023-07-20 at 1.45.09 PM.png
Screenshot 2023-07-20 at 1.45.09 PM.png (3.6 MiB) Viewed 27903 times
Screenshot 2023-07-20 at 1.44.57 PM.png
Screenshot 2023-07-20 at 1.44.57 PM.png (2.45 MiB) Viewed 27903 times
Post Reply