;================================================ TITLE SCP format table mv/15/11/1988 | ;================================================ ; ================================================= ; Spezielle BIOS-Parameterblock-Struktur | ;================================================ ; ; db 10h dup (?) ;Kurzbezeichnung des Formates (fuer Tabelle) ; db 20h dup (?) ;Langbezeichnung (fuer Erlaeuterung im Kopf) ; ;------------------------------------------------ ; DCP-Teil der Struktur (ab Offset 30h): | ;------------------------------------------------ ; Einh. Offset Bedeutung ;------------------------------------------------ ; dw 30 bytes per sector ; Bei Sektorgroesse > 200h Bytes muss Sektor in 200h-Bytes- ; Einheiten geteilt werden, ebenso muss die Anzahl Sektoren ; pro Medium korrigiert werden ; --> 128 bytes per sector: 80h ; 256 100h ; 512 200h ; 1024 200h !! --> Korrektur der ; Sektoren pro Medium ; durch *2 ; db 32 sectors per alloc unit ; fuer (SCP) 1-kByte-Bloecke 2-kByte-Bloecke ; 128 bytes per sector 8 10h ; 256 4 8 ; 512 2 4 ; 1024 2 !! 4 !! ; dw 33 reserved sectors: immer 1 ; db 35 number of FATs: immer 1 ; dw 36 nr of root dir entries aus SCP-Format ; dw 38 sectors per medium ; zu berechnen: ; (tracks - system tracks) * (sectors per track) ; * (disk sides) [ if 1024 byte sectors: * 2 ] ; + 1 (pseudo boot sector) ; + number of FAT sectors ; db 3A pseudo media descriptor (Format-Nummer in SCPSET.FMT) ; dw 3B sectors per FAT: abhaengig von Anzahl Bloecke auf dem Medium ; (meist 1 oder 2) ; dw 3D sectors per track ; bis einschl 512 Bytes per sector: vom SCP-Format ; bei 1024: *2 (d.h. bei 5 * 1024 --> 0Ah) ; dw 3F number of heads (1 oder 2 fuer SS oder DS) ; dw 41 hidden sectors (= 0, unbenutzt) ; ;------------------------------------------------ ; SCP-Teil der Struktur (ab Offset 43h): | ;------------------------------------------------ ; ; dw 43 number of cylinders (28h oder 50h) ; db 45 gap length (= 1, unbenutzt) ; db 46 shift factor: ; 128 bytes per sector 0 ; 256 1 ; 512 2 ; 1024 3 ; db 47 stepping: 1=single (80 Spuren), 2=double (40 Spuren) ; dw 48 first DCP data sector ; dw 4A first SCP data sector ; dw 4C number of SCP system sectors ; zu berechnen: ; (system tracks) * (disk sides) * (sects per track) ; dw 4E number of SCP directory blocks ; db 50 bytes per block number - 1 (1 byte/block number = 0), ; wenn > 256 Bloecke auf der Diskette sind --> 1 ; db 51 modifier byte for track allocation: ; 00 regular ; 01 ; 02 1 log side, 2 phys sides ; 03 ; db 52 form mask: ; 80 ID-head swap table entry ; 40 FM modulation ; 20 sector skew wrap around sides ; 10 ; 08 sides (0=SS, 1=DS) ; 04 single sector ; 02 invers data ; 01 interleave exist ; db 53 first phys sector on side 0 ; db 54 first phys sector on side 1 ; ; db 20 dup (?) 20h bytes interleave table ; Uebersetzungstabelle, auf Position = phys. ; Sektornummer steht log. Sektornummer ; dw 75 trackmax and DTR ; dw 77 build state: ; 00 media unknown ; 01 build BPB called ; db 7 dup (0) auf 80h Bytes aufgefuellt