[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
IDE board BIOS question
I have a functioning CP/M 2.2 BIOS, but my CF card does not appear to be in LBA mode. My BIOS uses this sequence to put it into LBA mode:
LD D,11100000B ;Data for IDE SDH reg (512bytes, LBA mode,single drive)
LD E,REGshd ;00001110,(0EH) CS0,A2,A1,
CALL IDEwr8D ;Write byte to select the MASTER device
Word 49 of the drive ID has bit 9 set which indicates LBA mode is supported. The drive reports there are 32 sectors per track and 16 heads. When in LBA mode, if I attempt to read track 0, sector 33, an error is returned. Going to track 1 and second 1 works, but again, only sectors up to 32 are valid on a given track.
My code has the wrlba function from MYIDE, but it appears to treat tracks/sectors as just tracks and sectors without an attempt to merge the two together into a single large LBA sector number.
My board is one of the early ones with a single IDE port. Is there something slightly different about it so that the initialization sequence above won't work properly? Am I missing some basic understanding of how the code is supposed to work?
Any advice is appreciated.