[sebhc] H17 ROM and disk info

Steven Parker sp11 at hotmail.com
Fri May 21 20:52:15 CDT 2004

>Hows your memory - with my disassmbler, you can add symbols,...

Ouch!  I'm sure someone will eventually upload a PDF of the listing.  And if 
I can ever get to where I can read my 8-inch disks, I'm pretty sure the 
source is one one of them.

...(portion of read routine disassembly omitted)...
>As you can see the 0 in C prevents the second loop from running - At first 
>thought there might be places which call 1C71 after loading B and C 
>however I have not indentified any such calls.

No, not a call, but a JZ instruction just above what you listed.  What's 
happening there is that a 16-bit count of bytes is being read, one sector at 
a time.  On the last sector, the value left in c (because of the jump around 
the mvi c,0) controls calling the read routine additional times past the 
byte count to get to the end of the sector so the check byte can be tested.

>Some of the code does crafty things...

That's a common tactic in firmware where space is a premium.  Another common 
programming practice that will confuse a disassembler is function calls with 
inline parameters.

>If anyone can provide details on the complete disk sector format (including
>SYNC bytes and BCC would be nice), that would help a lot.

Immediately after a hole detect:

Bytes  Contents
   10   leader bytes (zero)
    1   sync (375Q)
    1   volume number *
    1   track number
    1   sector number
    1   check byte

   10   leader bytes (zero)
    1   sync (375Q)
  256   data bytes
    1   check byte

The volume number can be found in the disk image file at byte 2304 
(beginning of the label sector).

Hope that helps!

- Steven

FREE pop-up blocking with the new MSN Toolbar – get it now! 

Delivered by the SEBHC Mailing List

More information about the Sebhc mailing list