page 65,120 ;================================================ TITLE SCP format table mv/15/11/1988 | ;================================================ data segment ; .radix 16 ;================================================ ; 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 ;================================================ ; db 'SCPF_01' ;5 x 1024 x 80 x 2 db 9 dup (0) ; db 'SCP - 1 (2 Systemsp. - 780k)' db 4 dup (0) ;------------------------------ dw 0200 ;00 bytes per sector db 4 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 80 ;06 nr of root dir entries dw 61Ah ;08 sectors per medium db 1 ;0A pseudo media descriptor dw 2 ;0B sectors per FAT dw 0Ah ;0D sectors per track dw 2 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 50 ;13 number of cylinders db 1 ;15 gap length (unused) db 3 ;16 shift factor (for 128 byte blocks) db 1 ;17 stepping, 1=single, 2=double dw 0Bh ;18 first DCP data sector dw 30 ;1A first SCP data sector dw 28 ;1C number of SCP system sectors dw 2 ;1E number of SCP directory blocks db 1 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 8 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) ;================================================ ; db 'SCPF_02' ;5 x 1024 x 80 x 1 db 9 dup (0) ; db 'SCP - 2 (3 Systemsp. - 385k)' db 4 dup (0) ;------------------------------ dw 0200 ;00 bytes per sector db 4 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 80 ;06 nr of root dir entries dw 304 ;08 sectors per medium db 2 ;0A pseudo media descriptor dw 1 ;0B sectors per FAT dw 0Ah ;0D sectors per track dw 1 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 50 ;13 number of cylinders db 1 ;15 gap length (unused) db 3 ;16 shift factor (for 128 byte blocks) db 1 ;17 stepping, 1=single, 2=double dw 0Ah ;18 first DCP data sector dw 26 ;1A first SCP data sector dw 1Eh ;1C number of SCP system sectors dw 2 ;1E number of SCP directory blocks db 0 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 0 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) ;================================================ ; db 'SCPF_03' ;5 x 1024 x 40 x 1 db 9 dup (0) ; db 'SCP - 3 (3 Systemsp. - 185k)' db 4 dup (0) ;------------------------------ dw 0200 ;00 bytes per sector db 4 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 40 ;06 nr of root dir entries dw 174h ;08 sectors per medium db 3 ;0A pseudo media descriptor dw 1 ;0B sectors per FAT dw 0Ah ;0D sectors per track dw 1 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 28 ;13 number of cylinders db 1 ;15 gap length (unused) db 3 ;16 shift factor (for 128 byte blocks) db 2 ;17 stepping, 1=single, 2=double dw 06 ;18 first DCP data sector dw 22 ;1A first SCP data sector dw 1Eh ;1C number of SCP system sectors dw 1 ;1E number of SCP directory blocks db 0 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 0 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) ;================================================ ; db 'SCPF_04' ;16 x 256 x 80 x 2 db 9 dup (0) ; db 'SCP - 4 (2 Systemsp. - 624k)' db 4 dup (0) ;------------------------------ dw 0100 ;00 bytes per sector db 8 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 80 ;06 nr of root dir entries dw 09C3 ;08 sectors per medium db 4 ;0A pseudo media descriptor dw 2 ;0B sectors per FAT dw 10 ;0D sectors per track dw 2 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 50 ;13 number of cylinders db 1 ;15 gap length (unused) db 1 ;16 shift factor (for 128 byte blocks) db 1 ;17 stepping, 1=single, 2=double dw 13 ;18 first DCP data sector dw 50 ;1A first SCP data sector dw 40 ;1C number of SCP system sectors dw 2 ;1E number of SCP directory blocks db 1 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 8 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) ;================================================ ; db 'SCPF_05' ;16 x 256 x 80 x 1 db 9 dup (0) ; db 'SCP - 5 (3 Systemsp. - 308k)' db 4 dup (0) ;------------------------------ dw 0100 ;00 bytes per sector db 8 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 40 ;06 nr of root dir entries dw 4D2 ;08 sectors per medium db 5 ;0A pseudo media descriptor dw 1 ;0B sectors per FAT dw 10 ;0D sectors per track dw 1 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 50 ;13 number of cylinders db 1 ;15 gap length (unused) db 1 ;16 shift factor (for 128 byte blocks) db 1 ;17 stepping, 1=single, 2=double dw 0A ;18 first DCP data sector dw 38 ;1A first SCP data sector dw 30 ;1C number of SCP system sectors dw 1 ;1E number of SCP directory blocks db 0 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 0 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) ;================================================ ; db 'SCPF_06' ;16 x 256 x 40 x 1 db 9 dup (0) ; db 'SCP - 6 (3 Systemsp. - 148k)' db 4 dup (0) ;------------------------------ dw 0100 ;00 bytes per sector db 8 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 40 ;06 nr of root dir entries dw 252h ;08 sectors per medium db 6 ;0A pseudo media descriptor dw 1 ;0B sectors per FAT dw 10 ;0D sectors per track dw 1 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 28 ;13 number of cylinders db 1 ;15 gap length (unused) db 1 ;16 shift factor (for 128 byte blocks) db 2 ;17 stepping, 1=single, 2=double dw 0Ah ;18 first DCP data sector dw 38 ;1A first SCP data sector dw 30 ;1C number of SCP system sectors dw 1 ;1E number of SCP directory blocks db 0 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 0 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) ;================================================ ; db 'CP/A 800k' ;5 x 1024 x 80 x 2 db 7 dup (0) ; db 'CP/A (ohne Systemlader! - 800k)' db 0 ;------------------------------ dw 0200 ;00 bytes per sector db 4 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 0C0h ;06 nr of root dir entries dw 643h ;08 sectors per medium db 7 ;0A pseudo media descriptor dw 2 ;0B sectors per FAT dw 0Ah ;0D sectors per track dw 2 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 50 ;13 number of cylinders db 1 ;15 gap length (unused) db 3 ;16 shift factor (for 128 byte blocks) db 1 ;17 stepping, 1=single, 2=double dw 0Fh ;18 first DCP data sector dw 0Ch ;1A first SCP data sector dw 0 ;1C number of SCP system sectors dw 3 ;1E number of SCP directory blocks db 1 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 8 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) ;================================================ ; db 'CP/A 400k' ;5 x 1024 x 80 x 1 db 7 dup (0) ; db 'CP/A (ohne Systemlader! - 400k)' db 0 ;------------------------------ dw 0200 ;00 bytes per sector db 4 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 80 ;06 nr of root dir entries dw 322h ;08 sectors per medium db 8 ;0A pseudo media descriptor dw 1 ;0B sectors per FAT dw 0Ah ;0D sectors per track dw 1 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 50 ;13 number of cylinders db 1 ;15 gap length (unused) db 3 ;16 shift factor (for 128 byte blocks) db 1 ;17 stepping, 1=single, 2=double dw 0Ah ;18 first DCP data sector dw 8 ;1A first SCP data sector dw 0 ;1C number of SCP system sectors dw 2 ;1E number of SCP directory blocks db 0 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 0 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) ;================================================ ; db 'CP/M 2.2' ;5 x 1024 x 80 x 1 db 8 dup (0) ; db 'CP/M 2.2 (2 Systemsp. - 390k)' db 3 dup (0) ;------------------------------ dw 0200 ;00 bytes per sector db 4 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 40 ;06 nr of root dir entries dw 030Eh ;08 sectors per medium db 9 ;0A pseudo media descriptor dw 1 ;0B sectors per FAT dw 0Ah ;0D sectors per track dw 1 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 50 ;13 number of cylinders db 1 ;15 gap length (unused) db 3 ;16 shift factor (for 128 byte blocks) db 1 ;17 stepping, 1=single, 2=double dw 6 ;18 first DCP data sector dw 18h ;1A first SCP data sector dw 14h ;1C number of SCP system sectors dw 1 ;1E number of SCP directory blocks db 0 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 0 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) ;================================================ ; db 'IBM-SS' ;8 x 512 x 40 x 1 db 0Ah dup (0) ; db 'Austauschformat (8x512x40x1)' db 4 dup (0) ;------------------------------ dw 0200 ;00 bytes per sector db 2 ;02 sectors per alloc unit dw 1 ;03 reserved sectors db 1 ;05 number of FATs dw 40 ;06 nr of root dir entries dw 013A ;08 sectors per medium db 0Ah ;0A pseudo media descriptor dw 1 ;0B sectors per FAT dw 8 ;0D sectors per track dw 1 ;0F number of heads dw 0 ;11 hidden sectors (unused) ; dw 28 ;13 number of cylinders db 1 ;15 gap length (unused) db 2 ;16 shift factor (for 128 byte blocks) db 2 ;17 stepping, 1=single, 2=double dw 6 ;18 first DCP data sector dw 0C ;1A first SCP data sector dw 8 ;1C number of SCP system sectors dw 2 ;1E number of SCP directory blocks db 0 ;20 bytes per block address - 1 (1 byte/block = 0) db 0 ;21 modifier byte for track allocation: ; 00 regular db 0 ;22 form mask: ; 08 sides (0=SS, 1=DS) db 1 ;23 first phys sector on side 0 db 1 ;24 first phys sector on side 1 db 20h dup (0) ;25 20h bytes interleave table dw 0 ;45 trackmax and DTR dw 0 ;47 build state: ; 00 media unknown db 7 dup (0) data ends end