Hello -
I'm hoping that some of the knowledgeable people in this group can give me a steer. Apologies for the long posting, but I felt it was important to provide as much relevant information as I could.
Earlier in the year I built a stock SC126. It worked perfectly first time, and I'm extremely pleased with it. It's a great design by Steve Cousins, and RomWBW is a fantastic piece of work by Wayne Warthen. In April I upgraded to RomWBW 3.2 using the ROM image from Steve's website, and that's been working fine too.
https://smallcomputercentral.com/firmware/firmware-romwbw-sc126/More recently, I decided to build Scott Baker’s FDC for my SC-126. I chose the WDC37C65C option as it was a simpler implementation.
https://www.smbaker.com/z80-retrocomputing-part-14-rc2014-floppy-controller-boards http://www.smbaker.com/wordpress/wp-content/uploads/2016/12/rc2014-floppy-wd-sch.pngDespite my eyesight and dexterity not being what they were 40-45 years ago, over a couple of weeks I hand wired the board. I took every precaution to ensure I got the build right. At each step of the way I visually checked joints with a magnifying glass, and checked for connectivity and shorts with a multimeter. As far as I can tell, everything is wired up correctly. VCC is at 4.92V. All the ICs were bought as new, and certainly the WD37C65C really does look brand new. For completeness, the 3.5" floppy drive itself is not brand new, but works fine in my desktop PC.
Of course - the floppy disk controller board doesn't work, or why else would I be writing this?
The SC126 still works as expected, so presumably I've not shorted the address/data busses, but the FDC board is not discovered. The boot-up message includes the following:
FD: MODE=RCWDC IO=0x50 NOT PRESENT
Which leads me to believe that the ROM is built for this board. I had naively expected the 'NOT PRESENT' to change....
When the SC126 reset button is pressed, there is a good solid RST to pin-19 of the controller.
The address decode seems to work as expected with the pins on the HCT138s toggling when the appropriate ports are addressed. Eg - when I address port 0x50 the CS\, pin-3 on the WD37C65C, toggles.
If I reboot the SC126 and immediately jump into the RomWBW 'monitor', I can read port 0x50, the Main Status Register, and the value 0x80 is returned. If I then read port 0x51 I get a value of 0x00, but now 0x50 returns a status of 0xD0. So - something changes, which I find encouraging.
I've had a look through the documentation, and some of the RomWBW to see if there is something that I should have done to 'enable' the firmware, but I can't find anything.
In the file SC126.ASM there are the following lines:
FDENABLE
.SET
TRUE
; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE
.SET
FDMODE_RCWDC
; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
This would suggest the SC126/RomWBW is configured for the board I have built and so I don't need to select one of the of the alterantive floppy disk controller modes.
And in the file FD.ASM there is the following:
#IF (FDMODE == FDMODE_RCWDC)
FDC_MSR .EQU $50 ; 8272 MAIN STATUS REGISTER
FDC_DATA .EQU $51 ; 8272 DATA PORT
FDC_DOR .EQU $58 ; DIGITAL OUTPUT REGISTER
FDC_DCR .EQU $48 ; CONFIGURATION CONTROL REGISTER
FDC_TC .EQU $58 ; TERMINAL COUNT (W/ DACK)
#ENDIF
These values match the port numbers I'm expecting from the circuit diagram. My controller chip is a WDC37C65C, so I'm hoping the references to an 8272 are typos.
I'm now going round in circles, and don't know what to check next. Can someone help, please? Is there anyone who has built one of these, or has some detailed knowledge of the WD37C65C that could advise? And does someone know if there is anything that I need to do to the ROM to 'enable' something. Have I overlooked something obvious that I now can't see for looking?!?
Grateful for any help. Thank-you.
MartinR