HARD DISK BOOT SECTOR INFORMATION (EXTENDED) SUPRA CORPORATION 1133 Commercial Way Albany, OR 97321 (503) 967-9075 DATE: 1 Sept 1986 Boot sector information for both the root boot sector and for the boot sector of each partition. The root boot sector is on physical sector zero on the hard disk. The logical sector zero for each partition contains a boot sector for that partition. The number of partitions has been extended by SUPRA CORPORATION from the normal 4 to 12. This extension is NOT Atari supported, but to allow for more than a maximum of 64 megabytes of hard disk the extension has been added thus allowing for maximum 192 megabytes. ROOT BOOT SECTOR: 0x00 -> 0x156 ; Boot program ; - execute if checksum is 0x1234 PART4 (Extension): 0x156 DS.B 1 P4_FLAG ; Non-zero if partition enabled 0x157 DS.B 3 P4_ID ; "GEM" if partition enabled 0x15A DS.L 1 P4_START ; Start sector of partition 0x15E DS.L 1 P4_SIZE ; Size of partition in sectors PART5 (Extension): 0x162 DS.B 1 P5_FLAG ; Non-zero if partition enabled 0x163 DS.B 3 P5_ID ; "GEM" if partition enabled 0x166 DS.L 1 P5_START ; Start sector of partition 0x16A DS.L 1 P5_SIZE ; Size of partition in sectors PART6 (Extension): 0x16E DS.B 1 P6_FLAG ; Non-zero if partition enabled 0x16F DS.B 3 P6_ID ; "GEM" if partition enabled 0x172 DS.L 1 P6_START ; Start sector of partition 0x176 DS.L 1 P6_SIZE ; Size of partition in sectors PART7 (Extension): 0x17A DS.B 1 P7_FLAG ; Non-zero if partition enabled 0x17B DS.B 3 P7_ID ; "GEM" if partition enabled 0x17E DS.L 1 P7_START ; Start sector of partition 0x182 DS.L 1 P7_SIZE ; Size of partition in sectors PART8 (Extension): 0x186 DS.B 1 P8_FLAG ; Non-zero if partition enabled 0x187 DS.B 3 P8_ID ; "GEM" if partition enabled 0x18A DS.L 1 P8_START ; Start sector of partition 0x18E DS.L 1 P8_SIZE ; Size of partition in sectors PART9 (Extension): 0x192 DS.B 1 P9_FLAG ; Non-zero if partition enabled 0x193 DS.B 3 P9_ID ; "GEM" if partition enabled 0x196 DS.L 1 P9_START ; Start sector of partition 0x19A DS.L 1 P9_SIZE ; Size of partition in sectors PART10 (Extension): 0x19E DS.B 1 P10_FLAG ; Non-zero if partition enabled 0x19F DS.B 3 P10_ID ; "GEM" if partition enabled 0x1A2 DS.L 1 P10_START ; Start sector of partition 0x1A6 DS.L 1 P10_SIZE ; Size of partition in sectors PART11 (Extension): 0x1AA DS.B 1 P11_FLAG ; Non-zero if partition enabled 0x1AB DS.B 3 P11_ID ; "GEM" if partition enabled 0x1AE DS.L 1 P11_START ; Start sector of partition 0x1B2 DS.L 1 P11_SIZE ; Size of partition in sectors HARD DISK SPECIFICATIONS: 0x1B6 DS.W 1 HI_CC ; Number of cylinders on media 0x1B8 DS.B 1 HI_DHC ; Number of heads on media 0x1B9 DS.B 1 RES ; Reserved 0x1BA DS.W 1 HI_RWCC ; Reduced write current cylinder 0x1BC DS.W 1 HI_WPC ; Reduced write pre-comp cylinder 0x1BE DS.B 1 HI_LZ ; Landing zone for head park 0x1BF DS.B 1 HI_RT ; Seek rate pulse 0x1C0 DS.B 1 HI_IN ; Interleave 0x1C1 DS.B 1 HI_SPT ; Sectors per track 0x1C2 DS.L 1 HD_SIZE ; Number of sectors on media PART0: 0x1C6 DS.B 1 P0_FLAG ; Non-zero if partition enabled 0x1C7 DS.B 3 P0_ID ; "GEM" if partition enabled 0x1CA DS.L 1 P0_START ; Start sector of partition 0x1CE DS.L 1 P0_SIZE ; Size of partition in sectors PART1: 0x1D2 DS.B 1 P1_FLAG ; Non-zero if partition enabled 0x1D3 DS.B 3 P1_ID ; "GEM" if partition enabled 0x1D6 DS.L 1 P1_START ; Start sector of partition 0x1DA DS.L 1 P1_SIZE ; Size of partition in sectors PART2: 0x1DE DS.B 1 P2_FLAG ; Non-zero if partition enabled 0x1DF DS.B 3 P2_ID ; "GEM" if partition enabled 0x1E2 DS.L 1 P2_START ; Start sector of partition 0x1E6 DS.L 1 P2_SIZE ; Size of partition in sectors PART3: 0x1EA DS.B 1 P3_FLAG ; Non-zero if partition enabled 0x1EB DS.B 3 P3_ID ; "GEM" if partition enabled 0x1EE DS.L 1 P3_START ; Start sector of partition 0x1F2 DS.L 1 P3_SIZE ; Size of partition in sectors 0x1F6 DS.L 1 BSL_START ; Start of bad sector list 0x1FA DS.L 1 BSL_COUNT ; Number of bad sectors 0x1FE DS.W 1 EVN_CKSM ; Evening out checksum LOGICAL BOOT SECTORS: NOTE: All labels ending in '_LH' are in 8086 format (low - high ). 0x00 DS.W 1 BRA_CODE 00 00 ; Branch to code (not used) 0x02 DS.B 6 FILLER "\0SUPRA" ; filler info 0x08 DS.B 3 SER_NUM "2.0" ; Serial number 0x0B DS.B 2 BPS_LH 00 02 ; Bytes per sector 0x0D DS.B 1 SPC 02 ; Sectors per cluster 0x0E DS.B 2 RES_LH 01 00 ; Reserved sectors 0x10 DS.B 1 NFATS 02 ; Number of fats 0x11 DS.B 2 NDIRS_LH 00 01 ; Number of director entrys 0x13 DS.B 2 NSECTS_LH xx xx ; Number of sectors in partition 0x15 DS.B 1 MEDIA F8 ; Media descriptor 0x16 DS.B 2 SPF_LH xx xx ; Sectors per fat (=NSECTS>>9) 0x18 DS.B 2 SPT_LH xx xx ; Sectors per track 0x1A DS.B 2 NSIDES_LH xx xx ; Number of sides 0x1C DS.B 2 NHID_LH 01 00 ; Number of hidden sectors 0x1E -> 0x1FF ; Unused (currently) The BPB in the ST operating system is built from information contained in the boot sector for each partition. The BPB is computed as follows: DS.W 1 RECSIZ ; Record size (=BPS_LH) DS.W 1 CLSIZ ; Cluster size (=SPC) DS.W 1 BCLSIZ ; Bytes in cluster (=RECSIZ*CLSIZ) DS.W 1 RDLEN ; Root directory length (=NDIRS_LH>>8) DS.W 1 FSIZ ; Fat size (=SPF_LH) DS.W 1 FATREC ; Start of second fat (=FSIZ+1) DS.W 1 DATREC ; Start of data (=RDLEN+FSIZ+FATREC) DS.W 1 NUMCL ; Number of clusters (=(NSECTS/2)-DATREC-1) DS.W 1 FLAGS ; Flags