|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 31616 (0x7b80) Types: TextFile Names: »WDRIVES.ASM«
└─⟦67f37b9ce⟧ Bits:30003503 JET80/W20FT systemdisk └─ ⟦this⟧ »WDRIVES.ASM«
Title 'Wdrives.Asm' ;------------------------------------------------------------; ; Definition Module for the Floppies and Winchesters in ; ; the system. ; ; ; ; Note: If You use Adaptec controller, You link ExtmemA.Rel ; ; and if Xebec, You link ExtmemX.Rel to BNKBIOS3.SPR ; ; This will done with the command: ; ; SUBMIT GENWBIOS A for Adaptec ; ; SUBMIT GENWBIOS X for Xebec ; ;------------------------------------------------------------; ; Latest update: 1985-11-15. PSW ; Biosrevision: F ; ; For the RMAC assembler. ;------------------------------------------------------------; ; Answer in field #1 and/or in field #2 !! ; ;------------------------------------------------------------; True Equ -1 False Equ Not True NetWork Equ False ;------------------------------------------------------------; ; Field #1 -- SuperJet. ; ; ; SuperJet Equ False ; False indicates You; ; ; must goto field #2.; TwoWins Equ False ; False: 1 drive ; ; ; True: 2 drives. ; ; System configuration for SuperJet: ; ; A: Winchester 1st part appr. 28800 KBytes ; ; B: Winchester 2nd part appr. 29300 KBytes ; ; C: Floppy 5" 1200 KBytes. ; ; D: Floppy 5" 800 KBytes ; ; The tape streamer does not have a logical device address. ; ; If 2 winchesters: ; ; E: Winchester 1st part appr. 28800 KBytes ; ; F: Winchester 2nd part appr. 29300 KBytes ; ;------------------------------------------------------------; Page 66 If Not SuperJet ;------------------------------------------------------------; ; Field #2 -- Other configurations. ; ; Here You must answer 6 or 7 questions: ; ; 1: Do You want Verify after write on floppy ? ; ; ; Verify Equ True ; Verify after write.; ; ; ; 2: What kind of floppy system do You want ? (Only 1 true) ; ; ; M8 Equ False ; 8" 1200 KBytes ; M5 Equ True ; 5" 1200 KBytes ; Min96 Equ False ; 5" 800 KBytes ; ; ; ; 3: Do You have an external 8" floppy drive ? ; ; Not supported with M8. ; Jet8 Equ False ; True means YES ; ; ; ; 4: What kind of winchester controller ? ; ; ; Adaptec Equ True ; False = Xebec ; ; ; ; 5: How many winchester drives ? (One or two) ; ; ; TwoWins Equ False ; False = 1 drive ; ; ; ; 6: What kind of winchester do You want ? (Only 1 true) ; ; Entries BlockSize; Ro204 Equ False ; Rodime 204 1024 2K ; Ro204E Equ False ; Rodime 204 E 2048 4K ; Ro352 Equ False ; Rodime 352 512-1024 2K ; XT1065 Equ False ; Maxtor XT-1065 2048 4K ; XT1085 Equ False ; Maxtor XT-1085 2048 4K ; CDC66 Equ False ; CDC 9415-66 2048 4K ; CDC86 Equ False ; CDC 9415-86 2048 4K ; Nec5126 Equ True ; Nec 5126 1024 2K ; ; ; ; 7: If Rodime 352 You must answer how directory entries. ; ; ; E512 Equ True ; False = 1024 ent. ; ; ; ;------------------------------------------------------------; ;------------- No more questions below here -----------------; Endif Page If SuperJet Verify Equ True M5 Equ True M8 Equ False Min96 Equ False Ro204 Equ False Ro204E Equ False Ro352 Equ False XT1065 Equ False XT1085 Equ False CDC66 Equ True CDC86 Equ False Nec5126 Equ False Adaptec Equ True E512 Equ False Jet8 Equ False Endif ;----------------------------------------------------------------; ; The byte called 'ReStep' is interpreted as follows: ; ; ; ; 1xxxxxxx ; No retry ; ; 0xxxxxxx ; Retry 4 times ; ; x1xxxxxx ; No retry a read of sector that contains; ; ; a data error before error correction. ; ; x0xxxxxx ; Reread before error correction ; ; xxx1xxxx ; Disk has servo information. ; ; xxx0xxxx ; No servo information. ; ; xxxx0000 ; 3 msec step rate ; ; xxxx0001 ; reserved (for servo) ; ; xxxx0010 ; -"- ; ; xxxx0011 ; -"- ; ; xxxx0100 ; 200 usec buffered step ; ; xxxx0101 ; 70 usec buffered step ; ; xxxx0110 ; 30 usec buffered step ; ; xxxx0111 ; 15 usec buffered step ; ;----------------------------------------------------------------; If Adaptec ; Adaptec: If Ro204 ReStep Equ 00000100b ; RETRY & BUFF STEP OPTION. Reduce Equ 72 ; # of Kbytes to reduce from second winchester unit. Endif If Ro204E ReStep Equ 00000100b ; RETRY & BUFF STEP OPTION. Reduce Equ 72 ; # of Kbytes to reduce from second winchester unit. Endif If Ro352 ReStep Equ 00000100b ; RETRY & BUFF STEP OPTION. Reduce Equ 36 ; # of Kbytes to reduce from second winchester unit. Endif If XT1065 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 64 ; # of Kbytes to reduce from second winchester unit. Endif If XT1085 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 72 ; # of Kbytes to reduce from second winchester unit. Endif If CDC66 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 84 ; # of Kbytes to reduce from second winchester unit. Endif If CDC86 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 84 ; # of Kbytes to reduce from second winchester unit. Endif If Nec5126 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 36 ; # of Kbytes to reduce from second winchester unit. Endif Else ; Xebec If Ro204 ReStep Equ 00000100b ; RETRY & BUFF STEP OPTION. Reduce Equ 68 ; # of Kbytes to reduce from second winchester unit. Endif If Ro204E ReStep Equ 00000100b ; RETRY & BUFF STEP OPTION. Reduce Equ 68 ; # of Kbytes to reduce from second winchester unit. Endif If Ro352 ReStep Equ 00000100b ; RETRY & BUFF STEP OPTION. Reduce Equ 34 ; # of Kbytes to reduce from second winchester unit. Endif If XT1065 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 60 ; # of Kbytes to reduce from second winchester unit. Endif If XT1085 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 68 ; # of Kbytes to reduce from second winchester unit. Endif If CDC66 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 76 ; # of Kbytes to reduce from second winchester unit. Endif If CDC86 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 76 ; # of Kbytes to reduce from second winchester unit. Endif If Nec5126 ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. Reduce Equ 34 ; # of Kbytes to reduce from second winchester unit. Endif Endif Rate0 Equ 00000000b ; 3ms/6ms Rate1 Equ 00000001b ; 6ms/12ms Rate2 Equ 00000010b ; 10ms/20ms Rate3 Equ 00000011b ; 15ms/30ms DoublS Equ -1 ; Double sided SinglS Equ 0 ; Single sided Unit0 Equ 00000000b ; Physical Unit select 0 Unit1 Equ 00000001b ; Physical Unit select 1 Unit2 Equ 00000010b ; Physical Unit select 2 Unit3 Equ 00000011b ; Physical Unit select 3 Inch5 Equ 00001000b ; 5"-Floppy Inch8 Equ 11010100b ; 8"-Floppy DoublD Equ 00000000b ; Double density SinglD Equ 00100000b ; Single density If Adaptec ; Common area Comm Equ 0B8h ; 64K - 2*9K = 46K = B800h Else Comm Equ 0BCh ; 64K - 2*8.5K = 47K = BC00h Endif If Adaptec Contr1 Equ 00000001B ; Controller unit 1 Contr2 Equ 00000010B ; Controller unit 2 Contr3 Equ 00000100B ; Controller unit 3 WUnit1 Equ 00000000B OR Contr1 ; Winchester phys. unit 0 on Contr1 WUnit2 Equ 00100000B OR Contr1 ; Winchester phys. unit 1 on Contr1 WUnit3 Equ 00000000B OR Contr2 ; Winchester phys. unit 0 on Contr2 WUnit4 Equ 00100000B OR Contr2 ; Winchester phys. unit 1 on Contr2 WUnit5 Equ 00000000B OR Contr3 ; Winchester phys. unit 0 on Contr3 WUnit6 Equ 00100000B OR Contr3 ; Winchester phys. unit 1 on Contr3 Leav Equ 2 ; Interleave factor LSecPerTrk Equ 72 ; No of logical sectors/track Else WUnit1 Equ 00000000B ; Winchester phys. unit 0 on Contr1 WUnit2 Equ 00100000B ; Winchester phys. unit 1 on Contr1 Leav Equ 7 ; Interleave factor LSecPerTrk Equ 68 ; No of logical sectors/track Endif If E512 Ent Equ 512 AL1 Equ 0 Else Ent Equ 1024 AL1 Equ 0FFh Endif If M8 Sign Equ '8' Else Sign Equ '5' Endif Extrn FdRead, FdWrit, FdLgin, FdInit Extrn WRead, WWrit, WInit, WInitd, WLgin Public @DTbl, ?Titel, @Commo Cseg @DTbl: If NetWork Dw WinA,WinB,FlA ; A:, B:, C: Else Dw FlA,WinA,WinB ; This order must not be changed. ; Check boot-routine in ; BIOSKRNL.Z80 Endif If Min96 Dw 0 ; D: not installed Else Dw FlD Endif If TwoWins Dw WinE,WinF ; E:, F: Sign0 Equ '2' Else Dw 0,0 Sign0 Equ'1' Endif Dw 0,0 ; G:, H: not installed If Jet8 Dw FlI,FlJ ; I:, J: Else Dw 0,0 Endif Dw 0,0 ; K:, L: not installed▶8a◀ Dw 0,0,0,0 ; M:, N:, O:, P: not installed @Commo: Db Comm ; Page Dseg ; Define WINCHESTER LOGICAL UNIT A: (Winchester boot else B:) Dw WWrit ;; Dw WRead ;; Dw WLgin ;; Dw WInit ;; Db WUnit1 ;; Physical unit for controller▶8a◀ Db 0 ;; WINA: Dw 0 ;; No trans table Db 0,0,0,0,0,0,0,0,0 ;; Db 0 ;; Mediaflag Dw WIN0 ;; Address to DPB Dw 0 ;; Checksum None. Dw 0FFFEh ;; Alloc vector set by GENCPM Dw 0FFFEh ;; DirBcb Dw 0FFFFh ;; DtaBcb Not used Dw 0FFFEh ;; Hash Db 0 ;; Hash bank ; Define WINCHESTER LOGICAL UNIT B: (Winchster boot else C:) Dw WWrit ;; Dw WRead ;; Dw WLgin ;; Dw WInitd ;; Db WUnit1 ;; Physical unit for controller Db 0 ;; WINB: Dw 0 ;; No trans table Db 0,0,0,0,0,0,0,0,0 ;; Db 0 ;; Mediaflag Dw WIN1 ;; Address to DPB Dw 0 ;; Checksum None. Dw 0FFFEh ;; Alloc vector set by GENCPM Dw 0FFFEh ;; DirBcb Dw 0FFFFh ;; DtaBcb Not used Dw 0FFFEh ;; Hash Db 0 ;; Hash bank If TwoWins ; Define WINCHESTER LOGICAL UNIT E: Dw WWrit ;; Dw WRead ;; Dw WLgin ;; Dw WInitd ;; Db WUnit2 ;; Physical unit for controller▶8a◀ Db 0 ;; WINE: Dw 0 ;; No trans table Db 0,0,0,0,0,0,0,0,0 ;; Db 0 ;; Mediaflag Dw WIN0 ;; Address to DPB Dw 0 ;; Checksum None. Dw 0FFFEh ;; Alloc vector set by GENCPM Dw 0FFFEh ;; DirBcb Dw 0FFFFh ;; DtaBcb Not used Dw 0FFFEh ;; Hash Db 0 ;; Hash bank ; Define WINCHESTER LOGICAL UNIT F: Dw WWrit ;; Dw WRead ;; Dw WLgin ;; Dw WInitd ;; Db WUnit2 ;; Physical unit for controller Db 0 ;; WINF: Dw 0 ;; No trans table Db 0,0,0,0,0,0,0,0,0 ;; Db 0 ;; Mediaflag Dw WIN1 ;; Address to DPB Dw 0 ;; Checksum None. Dw 0FFFEh ;; Alloc vector set by GENCPM Dw 0FFFEh ;; DirBcb Dw 0FFFFh ;; DtaBcb Not used Dw 0FFFEh ;; Hash Db 0 ;; Hash bank Endif If M8 Or Jet8 ; Define 8" 2x77x8x1024, 256 entries. Unit A: (Floppy boot else C:) / J: Dw FdWrit ;; Dw FdRead ;; Dw FdLgin ;; Dw FdInit ;; Db Inch8+Unit0+DoublD ;; $FdXsl Db 0 ;; If M8 FlA: Dw 0 ;; No trans table Else FlJ: Dw 0 ;; No trans table Endif Db 0,0,0,0,0,0,0,0,0 ;; Db 0 ;; Mediaflag Dw F8D ;; Address to DPB Dw 0FFFEh ;; Checksum vector set by GENCPM Dw 0FFFEh ;; Alloc vector set by GENCPM Dw 0FFFEh,0FFFFh ;; Let GENCPM setup Dw 0FFFEh ;; DirBcb, DtaBcb, Hash Db 0 ;; Hash bank. Endif If M5 ; Define 5.25" 2x77x8x1024, 256 entries. Unit A: (Floppy boot else C:) Dw FdWrit ;; Dw FdRead ;; Dw FdLgin ;; Dw FdInit ;; Db Inch5+Unit0+DoublD+11000000b ;; $FdXsl 2 MHz 8" Mode Db 0 ;; FlA: Dw 0 ;; No trans table Db 0,0,0,0,0,0,0,0,0 ;; Db 0 ;; Mediaflag Dw F5Max ;; Address to DPB Dw 0FFFEh ;; Checksum vector set by GENCPM Dw 0FFFEh ;; Alloc vector set by GENCPM Dw 0FFFEh,0FFFFh ;; Let GENCPM setup Dw 0FFFEh ;; DirBcb, DtaBcb, Hash Db 0 ;; Hash bank. Endif If Min96 Or SuperJet Or M5 ; Define 5.25" 2x80x5x1024, 128 entries. Unit A: (Floppy boot else C:) ; Unit D: (SuperJet) Dw FdWrit ;; Dw FdRead ;; Dw FdLgin ;; Dw FdInit ;; Db Inch5+Unit0+DoublD ;; $FdXsl Db 0 ;; If Min96 FlA: Dw 0 ;; No trans table Else FlD: Dw 0 Endif Db 0,0,0,0,0,0,0,0,0 ;; Db 0 ;; Mediaflag Dw F596D ;; Address to DPB Dw 0FFFEh ;; Checksum vector set by GENCPM Dw 0FFFEh ;; Alloc vector set by GENCPM Dw 0FFFEh,0FFFFh ;; Let GENCPM setup Dw 0FFFEh ;; DirBcb, DtaBcb, Hash Db 0 ;; Hash bank. Endif If M8 Or Jet8 ; Define 8" 1x77x26x128, 64 entries (IBM). Unit D:/ I: Dw FdWrit ;; Dw FdRead ;; Dw FdLgin ;; Dw FdInit ;; Db Inch8+Unit0+SinglD ;; Db 0 ;; If M8 FlD: Dw Trans ;; Trans table Else FlI: Dw Trans ;; Trans table Endif Db 0,0,0,0,0,0,0,0,0 ;; Db 0 ;; Mediaflag Dw F8S ;; Address to DPB Dw 0FFFEh ;; Checksum vector set by GENCPM Dw 0FFFEh ;; Alloc vector set by GENCPM Dw 0FFFEh,0FFFFh ;; Let GENCPM setup Dw 0FFFEh ;; DirBcb, DtaBcb, Hash Db 0 ;; Hash bank. Cseg Trans: Db 1,7,13,19,25,5,11,17,23,3,9,15,21 ; Db 2,8,14,20,26,6,12,18,24,4,10,16,22 ; Endif Cseg If M8 Or Jet8 ; DPB for 8" 2x77x8x1024, 256 entries. F8D: Dw 64 ; Number of logical sect/track Db 4,0Fh ; Blockshift and mask Db 0 ; Extent mask Dw 607 ; Max blocknumber Dw 256-1 ; 256 Directory entries Db 0F0h,0 ; Alloc vector to directory Dw 256/4 ; Checksum size Dw 2 ; Number of offset tracks Db 0 ; Physical sector size Db 0 ; Physical sector shift mask. Db 0 ; Floppy Db 8 ; No. of logical sectors/phys. sector. Db 22 ; Read time out Db 19 ; Write time out Db -1 ; Double sided Db Verify ; Verify after write Db Rate0 ; Step rate Db Inch8+DoublD ; Boot select Db 0,0,0,0,0,0 ; Dummies ; DPB for 8" 1x77x26x128, 64 entries. (IBM) F8S: Dw 26 ; No. of logical sectors/track. Db 3,7 ; Blockshift and mask Db 0 ; Extent mask Dw 242 ; Max blocknumber Dw 64-1 ; 64 Directory entries Db 0C0h,0 ; Alloc vector to directory Dw 64/4 ; Checksum size Dw 2 ; Number of offset tracks Db 0 ; Physical sector size Db 0 ; Physical sector shift mask. Db 0 ; Floppy Db 1 ; No. of logical sectors/phys. sector. Db 22 ; Read time out Db 19 ; Write time out Db 0 ; Single sided Db Verify ; Verify after write Db Rate0 ; Step rate Db Inch8+SinglD ; Boot select Db 0,0,0,0,0,0 ; Dummies Endif If M5 ; DPB for 5.25" 2x77x8x1024, 256 entries. F5Max: Dw 64 ; No. of logical sectors/track. Db 4,0Fh ; Blockshift and mask Db 0 ; Extent mask Dw 607 ; Max blocknumber Dw 256-1 ; 256 Directory entries Db 0F0h,0 ; Alloc vector to directory Dw 256/4 ; Checksum size Dw 2 ; Number of offset tracks Db 0 ; Physical sector size Db 0 ; Physical sector shift mask. Db 0 ; Floppy Db 8 ; No. of logical sectors/phys. sector. Db 22 ; Read time out Db 19 ; Write time out Db -1 ; Double sided Db Verify ; Verify after write Db Rate0 ; Step rate Db Inch5+DoublD+11000000b ; Boot select Db 0,0,0,0,0,0 ; Dummies Endif If Min96 Or SuperJet Or M5 ; DPB for 5.25" 2x80x5x1024, 128 entries. F596D: Dw 40 ; No. of logical sectors/track. Db 4,0Fh ; Blockshift and mask Db 0 ; Extent mask Dw 394 ; Max blocknumber Dw 128-1 ; 128 Directory entries Db 0C0h,0 ; Alloc vector to directory Dw 128/4 ; Checksum size Dw 2 ; Number of offset tracks Db 0 ; Physical sector size Db 0 ; Physical sector shift mask. Db 0 ; Floppy Db 8 ; No. of logical sectors/phys. sector. Db 22 ; Read time out Db 19 ; Write time out Db -1 ; Double sided Db Verify ; Verify after write Db Rate0 ; Step rate Db Inch5+DoublD ; Boot select Db 0,0,0,0,0,0 ; Dummies Endif If Ro204 ; Winchester: Rodime 204 SIGN1 Equ '2' If Adaptec SIGN2 Equ '3' Else Sign2 Equ '2' Endif WIN0: Dw LSecPerTrk ; No of logical sectors/track. Db 4,0FH ; BLOCK SHIfT AND MASK (size = 2K)▶8a◀ Db 0 ; EXTENT MASK If Adaptec Dw 5714 ; MAX BLOCKNUMMER Else Dw 5396 Endif Dw 1024-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1 ; OFFSET TRACKS Db 0 ; Phys. sector size Db 0 ; Phys. sector shift mask. Db 1 ; Winchester 1st. part. Db 4 ; No. of logical sector/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-1 ; No of cylinders Hbyte Db 255-65 ; - " - Lbyte Db 255-8 ; No of heads. Db 255-0 ; Red. write cyl Hbyte Db 255-132 ; - " - Lbyte Db 255-0 ; Write precomp. cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-11 ; ECC WIN1: Dw LSecPerTrk ; No. of logical sectors/track. Db 4,0FH ; BLOCK SKIfT AND MASK (size = 2K) Db 0 ; EXTENT MASK If Adaptec Dw 5799-(Reduce/2) ; MAX BLOCKNUMBER Else Dw 5477-(Reduce/2) Endif Dw 1024-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1271 ; OFFSET TRACK Db 0 ; PHYS. SECTOR SIZE Db 0 ; PHYS. SECTOR SHIfT MASK Db 2 ; Winchester 2nd part. Db 4 ; No of logical sectors/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-1 ; No of cylinders Hbyte Db 255-65 ; - " - Lbyte Db 255-8 ; No. of heads. Db 255-0 ; Red. write cyl Hbyte Db 255-132 ; - " - Lbyte Db 255-0 ; Write precomp. cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-11 ; ECC Endif If Nec5126 ; Winchester: Nec 5126 SIGN1 Equ '2' SIGN2 Equ '0' WIN0: Dw LSecPerTrk ; No of logical sectors/track. Db 4,0FH ; BLOCK SHIfT AND MASK (size = 2K)▶8a◀ Db 0 ; EXTENT MASK If Adaptec Dw 4949 ; MAX BLOCKNUMMER Else Dw 4675 ; Endif Dw 1024-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1 ; OFFSET TRACKS Db 0 ; Phys. sector size Db 0 ; Phys. sector shift mask. Db 1 ; Winchester 1st. part. Db 4 ; No. of logical sector/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-2 ; No of cylinders Hbyte If Adaptec Db 255-43 ; - " - Lbyte Else Db 255-76 Endif Db 255-4 ; No of heads. Db 255-0 ; Red. write cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-0 ; Write precomp. cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-11 ; ECC WIN1: Dw LSecPerTrk ; No. of logical sectors/track. Db 4,0FH ; BLOCK SKIfT AND MASK (size = 2K) Db 0 ; EXTENT MASK If Adaptec Dw 5035-(Reduce/2) ; MAX BLOCKNUMBER Else Dw 5315-(Reduce/2) Endif Dw 1024-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1201 ; OFFSET TRACK Db 0 ; PHYS. SECTOR SIZE Db 0 ; PHYS. SECTOR SHIfT MASK Db 2 ; Winchester 2nd part. Db 4 ; No of logical sectors/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-2 ; No of cylinders Hbyte If Adaptec Db 255-43 ; - " - Lbyte Else Db 255-76 Endif Db 255-4 ; No. of heads. Db 255-0 ; Red. write cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-0 ; Write precomp. cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-11 ; ECC Endif If Ro204E ; Winchester: Rodime 204 E SIGN1 Equ '4' If Adaptec SIGN2 Equ '6' Else Sign2 Equ '3' Endif WIN0: Dw LSecPerTrk ; No of logical sectors/track. Db 5,31 ; BLOCK SHIfT AND MASK (size = 4K)▶8a◀ Db 1 ; EXTENT MASK If Adaptec Dw 5624 ; MAX BLOCKNUMMER Else Dw 5311 Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1 ; OFFSET TRACKS Db 0 ; Phys. sector size Db 0 ; Phys. sector shift mask. Db 1 ; Winchester 1st. part. Db 4 ; No. of logical sector/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-2 ; No of cylinders Hbyte Db 255-128 ; - " - Lbyte Db 255-8 ; No of heads. Db 255-0 ; Red. write cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-0 ; Write precomp. cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-11 ; ECC WIN1: Dw LSecPerTrk ; No. of logical sectors/track. Db 5,31 ; BLOCK SKIfT AND MASK (size = 4K) Db 1 ; EXTENT MASK If Adaptec Dw 5873-(Reduce/4) ; MAX BLOCKNUMBER Else Dw 5547-(Reduce/4) Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 2501 ; OFFSET TRACK Db 0 ; PHYS. SECTOR SIZE Db 0 ; PHYS. SECTOR SHIfT MASK Db 2 ; Winchester 2nd part. Db 4 ; No of logical sectors/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-2 ; No of cylinders Hbyte Db 255-128 ; - " - Lbyte Db 255-8 ; No. of heads. Db 255-0 ; Red. write cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-0 ; Write precomp. cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-11 ; ECC Endif If Ro352 ; Winchester▶ba◀ Rodim▶e5◀ 352 SIGN1 Equ '1' If Adaptec SIGN2 Equ '1' Else Sign2 Equ '0' Endif WIN0: Dw LSecPerTrk ; No of logical sectors/track. Db 4,0FH ; BLOCK SHIfT AND MASK (size = 2K)▶8a◀ Db 0 ; EXTENT MASK If Adaptec Dw 2699 ; MAX BLOCKNUMMER Else Dw 2549 Endif Dw ENT-1 ; DIR. ENTRIES Db 0FFH,AL1 ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1 ; OFFSET TRACKS Db 0 ; Phys. sector size Db 0 ; Phys. sector shift mask. Db 1 ; Winchester 1st. part. Db 4 ; No. of logical sector/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-1 ; No of cylinders Hbyte Db 255-50 ; - " - Lbyte Db 255-4 ; No of heads. Db 255-0 ; Red. write cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-0 ; Write precomp. cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-11 ; ECC WIN1: Dw LSecPerTrk ; No. of logical sectors/track. Db 4,0FH ; BLOCK SKIfT AND MASK (size = 2K) Db 0 ; EXTENT MASK If Adaptec Dw 2784-(Reduce/2) ; MAX BLOCKNUMBER Else Dw 2629-(Reduce/2) Endif Dw ENT-1 ; DIR. ENTRIES Db 0FFH,AL1 ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 601 ; OFFSET TRACK Db 0 ; PHYS. SECTOR SIZE Db 0 ; PHYS. SECTOR SHIfT MASK Db 2 ; Winchester 2nd part. Db 4 ; No of logical sectors/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-1 ; No of cylinders Hbyte Db 255-50 ; - " - Lbyte Db 255-4 ; No. of heads. Db 255-0 ; Red. write cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-0 ; Write precomp. cyl Hbyte Db 255-0 ; - " - Lbyte Db 255-11 ; ECC Endif If XT1065 ; Winchester▶ba◀ Maxtor XT-1065 SIGN1 Equ '5' If Adaptec SIGN2 Equ '8' Else Sign2 Equ '5' Endif WIN0: Dw LSecPerTrk ; No of logical sectors/track. Db 5,31 ; BLOCK SHIfT AND MASK (size = 4K)▶8a◀ Db 1 ; EXTENT MASK If Adaptec Dw 7199 ; MAX BLOCKNUMMER Else Dw 6799 Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1 ; OFFSET TRACKS Db 0 ; Phys. sector size Db 0 ; Phys. sector shift mask. Db 1 ; Winchester 1st. part. Db 4 ; No. of logical sector/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-3 ; No of cylinders Hbyte Db 255-150 ; - " - Lbyte Db 255-7 ; No of heads. Db 255-3 ; Red. write cyl Hbyte Db 255-152 ; - " - Lbyte Db 255-3 ; Write precomp. cyl Hbyte Db 255-152 ; - " - Lbyte Db 255-11 ; ECC WIN1: Dw LSecPerTrk ; No. of logical sectors/track. Db 5,31 ; BLOCK SKIfT AND MASK (size = 4K) Db 1 ; EXTENT MASK If Adaptec Dw 7239-(Reduce/4) ; MAX BLOCKNUMBER Else Dw 6837-(Reduce/4) Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 3201 ; OFFSET TRACK Db 0 ; PHYS. SECTOR SIZE Db 0 ; PHYS. SECTOR SHIfT MASK Db 2 ; Winchester 2nd part. Db 4 ; No of logical sectors/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-3 ; No of cylinders Hbyte Db 255-150 ; - " - Lbyte Db 255-7 ; No. of heads. Db 255-3 ; Red. write cyl Hbyte Db 255-152 ; - " - Lbyte Db 255-3 ; Write precomp. cyl Hbyte Db 255-152 ; - " - Lbyte Db 255-11 ; ECC Endif If XT1085 ; Winchester▶ba◀ Maxtor XT-1085 If Adaptec SIGN1 Equ '7' SIGN2 Equ '3' Else Sign1 Equ '6' Sign2 Equ '9' Endif WIN0: Dw LSecPerTrk ; No of logical sectors/track. Db 5,31 ; BLOCK SHIfT AND MASK (size = 4K)▶8a◀ Db 1 ; EXTENT MASK If Adaptec Dw 8999 ; MAX BLOCKNUMMER Else Dw 8499 Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1 ; OFFSET TRACKS Db 0 ; Phys. sector size Db 0 ; Phys. sector shift mask. Db 1 ; Winchester 1st. part. Db 4 ; No. of logical sector/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-4 ; No of cylinders Hbyte Db 255-0 ; - " - Lbyte Db 255-8 ; No of heads. Db 255-4 ; Red. write cyl Hbyte Db 255-2 ; - " - Lbyte Db 255-4 ; Write precomp. cyl Hbyte Db 255-2 ; - " - Lbyte Db 255-11 ; ECC WIN1: Dw LSecPerTrk ; No. of logical sectors/track. Db 5,31 ; BLOCK SKIfT AND MASK (size = 4K) Db 1 ; EXTENT MASK If Adaptec Dw 9410-(Reduce/4) ; MAX BLOCKNUMBER Else Dw 8887-(Reduce/4) Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 4001 ; OFFSET TRACK Db 0 ; PHYS. SECTOR SIZE Db 0 ; PHYS. SECTOR SHIfT MASK Db 2 ; Winchester 2nd part. Db 4 ; No of logical sectors/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-4 ; No of cylinders Hbyte Db 255-0 ; - " - Lbyte Db 255-8 ; No. of heads. Db 255-4 ; Red. write cyl Hbyte Db 255-2 ; - " - Lbyte Db 255-4 ; Write precomp. cyl Hbyte Db 255-2 ; - " - Lbyte Db 255-11 ; ECC Endif If CDC66 ; Winchester▶ba◀ CDC 9415-66 SIGN1 Equ '5' If Adaptec SIGN2 Equ '8' Else Sign2 Equ '5' Endif WIN0: Dw LSecPerTrk ; No of logical sectors/track. Db 5,31 ; BLOCK SHIfT AND MASK (size = 4K)▶8a◀ Db 1 ; EXTENT MASK If Adaptec Dw 7199 ; MAX BLOCKNUMMER Else Dw 6799 Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1 ; OFFSET TRACKS Db 0 ; Phys. sector size Db 0 ; Phys. sector shift mask. Db 1 ; Winchester 1st. part. Db 4 ; No. of logical sector/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-3 ; No of cylinders Hbyte Db 255-157 ; - " - Lbyte Db 255-7 ; No of heads. Db 255-3 ; Red. write cyl Hbyte Db 255-159 ; - " - Lbyte Db 255-3 ; Write precomp. cyl Hbyte Obs Db 255-159 ; - " - Lbyte Obs Db 255-11 ; ECC WIN1: Dw LSecPerTrk ; No. of logical sectors/track. Db 5,31 ; BLOCK SKIfT AND MASK (size = 4K) Db 1 ; EXTENT MASK If Adaptec Dw 7349-(Reduce/4) ; MAX BLOCKNUMBER Else Dw 6941-(Reduce/4) Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 3201 ; OFFSET TRACK Db 0 ; PHYS. SECTOR SIZE Db 0 ; PHYS. SECTOR SHIfT MASK Db 2 ; Winchester 2nd part. Db 4 ; No of logical sectors/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-3 ; No of cylinders Hbyte Db 255-157 ; - " - Lbyte Db 255-7 ; No. of heads. Db 255-3 ; Red. write cyl Hbyte Db 255-157 ; - " - Lbyte Db 255-3 ; Write precomp. cyl Hbyte Db 255-157 ; - " - Lbyte Db 255-11 ; ECC Endif If CDC86 ; Winchester▶ba◀ CDC 9415-86 SIGN1 Equ '7' If Adaptec SIGN2 Equ '5' Else Sign2 Equ '1' Endif WIN0: Dw LSecPerTrk ; No of logical sectors/track. Db 5,31 ; BLOCK SHIfT AND MASK (size = 4K)▶8a◀ Db 1 ; EXTENT MASK If Adaptec Dw 9224 ; MAX BLOCKNUMMER Else Dw 8711 Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 1 ; OFFSET TRACKS Db 0 ; Phys. sector size Db 0 ; Phys. sector shift mask. Db 1 ; Winchester 1st. part. Db 4 ; No. of logical sector/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-3 ; No of cylinders Hbyte Db 255-157 ; - " - Lbyte Db 255-9 ; No of heads. Db 255-3 ; Red. write cyl Hbyte Db 255-159 ; - " - Lbyte Db 255-3 ; Write precomp. cyl Hbyte Db 255-159 ; - " - Lbyte Db 255-11 ; ECC WIN1: Dw LSecPerTrk ; No. of logical sectors/track. Db 5,31 ; BLOCK SKIfT AND MASK (size = 4K) Db 1 ; EXTENT MASK If Adaptec Dw 9482-(Reduce/4) ; MAX BLOCKNUMBER Else Dw 8955-(Reduce/4) Endif Dw 2048-1 ; DIR. ENTRIES Db 0FFH,0FFH ; ALLOC VECTOR TO DIR Dw 8000H ; CHECKSUM SIZE (none) Dw 4101 ; OFFSET TRACK Db 0 ; PHYS. SECTOR SIZE Db 0 ; PHYS. SECTOR SHIfT MASK Db 2 ; Winchester 2nd part. Db 4 ; No of logical sectors/phys. sector Db 50 ; Read time out Db 19 ; Write time out Db 255-Leav ; Interleav (Inv) Db 255-ReStep ; Retry & Buff step option Db 255-3 ; No of cylinders Hbyte Db 255-157 ; - " - Lbyte Db 255-9 ; No. of heads. Db 255-3 ; Red. write cyl Hbyte Db 255-157 ; - " - Lbyte Db 255-3 ; Write precomp. cyl Hbyte Db 255-157 ; - " - Lbyte Db 255-11 ; ECC Endif Dseg ?Titel: Db '80. ',Sign,'"-floppy ' If M8 Else If M5 Db '1.2 MByte ' Else Db '800 KByte ' Endif Endif Db Sign0,'x',Sign1,Sign2,' MBytes winchester ' If Adaptec Db 'A' Else Db 'X' Endif Db '.',13,10,0 End «eof»