Hi Exidyboy,
Saw your post pertaining to issues with the controller on the Sorcerer forum.
Email direct if you keep having trouble.
Can you expand on how it is checking for a disk controller and how it chooses which drive to boot from?
Sure.
Check_Port_48 routine:
Is checking that the latch on the Dreamdisk at port 48h is present and active.
The $1E bitmask will select the drives momentarily and set the DDEN bit on the controller, and leave them all active(?) (IIRC).
EECF: sends a "restore to track ZERO" command to the 2793 FDC
EED7: selects Sector#1
EEDE: sets a bit mask to select drive#0.
EEE2: sets up a small routine at 0066h (halt vector) which reads from port C, saves to HL, increments HL and returns.
EEF3: sets up to read $80 byes (1 sector) to 0080h, and sets the C register to $47 (2793 data read register.
EEF9: Read sector routine reads the bytes in groups of 4 through the routine set up at the HALT vector.
once $80 bytes have been read, waits for the FDC to finish, and passes the status bits through to the loaded sector,
which can then check for CRC, lost data etc. errors.
Cheers,
Leslie