Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
articles:iicplus_smartport_secrets [2018/06/12 17:02]
M.G. [Just How Does the IIc Plus Boot Slot 6?]
articles:iicplus_smartport_secrets [2018/07/05 15:17] (current)
M.G. [The 3.5 Floppy Format]
Line 26: Line 26:
 The data field is: The data field is:
  
-| 5 self-syncs | $D5 $AA $AD | 699 disk bytes | KK KK KK KK | $DE $AA "​off"​ |+| 5 self-syncs | $D5 $AA $AD | SS | 699 disk bytes | KK KK KK KK | $DE $AA "​off"​ |
  
 In this case, we can see the address and data prologues are the same between the 5.25%%"​%% and 3.5%%"​%% formats. The epilogues are defined differently. ​ In we are used to $DE $AA $EB, but instead of $EB we have "​off"​... this is defined in the official documentation as a "pad byte where the drive electronics were turned off." ​ Code that reads a 3.5%%"​%% disk should not assume the byte contains anything useful. ​ In fact, ProDOS ignores this byte even when reading a 5.25%%"​%% floppy. In this case, we can see the address and data prologues are the same between the 5.25%%"​%% and 3.5%%"​%% formats. The epilogues are defined differently. ​ In we are used to $DE $AA $EB, but instead of $EB we have "​off"​... this is defined in the official documentation as a "pad byte where the drive electronics were turned off." ​ Code that reads a 3.5%%"​%% disk should not assume the byte contains anything useful. ​ In fact, ProDOS ignores this byte even when reading a 5.25%%"​%% floppy.
  
 Unlike the 5.25%%"​%% floppy address header, the 3.5%%"​%% floppy address header is coded in 6&2 format and can be decoded from the standard nibble table.. ​ E.g. if SS contains $96, the address is for sector 0, if it contains $97, the address is for sector 1. Unlike the 5.25%%"​%% floppy address header, the 3.5%%"​%% floppy address header is coded in 6&2 format and can be decoded from the standard nibble table.. ​ E.g. if SS contains $96, the address is for sector 0, if it contains $97, the address is for sector 1.
 +
 +The 699 disk bytes encode a 12-byte sector tag + 512 data bytes.
  
 ===== The 5.25 Floppy Format ===== ===== The 5.25 Floppy Format =====
Line 205: Line 207:
 </​code>​ </​code>​
  
-OK, so now we could look at $C58E, but I already know what's there, it's code that's been in every Apple %%//​%%c: ​ a routine to generate a denibbilizing ​routine ​that 5.25%%"​%% boot sectors expect to be present.+OK, so now we could look at $C58E, but I already know what's there, it's code that's been in every Apple %%//​%%c: ​ a routine to generate a denibbilizing ​table in page 3 that 5.25%%"​%% boot sectors expect to be present.
  
 When that returns, we go back to the code in slot 6 that brought us here, that mostly looks like the original %%//%%c boot code. When that returns, we go back to the code in slot 6 that brought us here, that mostly looks like the original %%//%%c boot code.
Line 222: Line 224:
 ! STA 42,X ! STA 42,X
 ! DEX ! DEX
-BNE 302+BPL 302
 ! JSR C64E ! JSR C64E
 ! STA 330 ! STA 330