|
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: 51072 (0xc780) Types: TextFile Names: »WDRIVES.PRN«
└─⟦67f37b9ce⟧ Bits:30003503 JET80/W20FT systemdisk └─ ⟦this⟧ »WDRIVES.PRN«
\f CP/M RMAC ASSEM 1.1 #001 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 !! ; ;------------------------------------------------------------; FFFF = True Equ -1 0000 = False Equ Not True 0000 = NetWork Equ False ;------------------------------------------------------------; ; Field #1 -- SuperJet. ; ; ; 0000 = SuperJet Equ False ; False indicates You; ; ; must goto field #2.; 0000 = 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 ? ; ; ; FFFF = Verify Equ True ; Verify after write.; ; ; ; 2: What kind of floppy system do You want ? (Only 1 true) ; ; ; 0000 = M8 Equ False ; 8" 1200 KBytes ; FFFF = M5 Equ True ; 5" 1200 KBytes ; 0000 = Min96 Equ False ; 5" 800 KBytes ; ; ; ; 3: Do You have an external 8" floppy drive ? ; ; Not supported with M8. ; 0000 = Jet8 Equ False ; True means YES ; ; ; ; 4: What kind of winchester controller ? ; ; ; FFFF = Adaptec Equ True ; False = Xebec ; ; ; ; 5: How many winchester drives ? (One or two) ; \f CP/M RMAC ASSEM 1.1 #002 WDRIVES.ASM ; ; 0000 = TwoWins Equ False ; False = 1 drive ; ; ; ; 6: What kind of winchester do You want ? (Only 1 true) ; ; Entries BlockSize; 0000 = Ro204 Equ False ; Rodime 204 1024 2K ; 0000 = Ro204E Equ False ; Rodime 204 E 2048 4K ; 0000 = Ro352 Equ False ; Rodime 352 512-1024 2K ; 0000 = XT1065 Equ False ; Maxtor XT-1065 2048 4K ; 0000 = XT1085 Equ False ; Maxtor XT-1085 2048 4K ; 0000 = CDC66 Equ False ; CDC 9415-66 2048 4K ; 0000 = CDC86 Equ False ; CDC 9415-86 2048 4K ; FFFF = Nec5126 Equ True ; Nec 5126 1024 2K ; ; ; ; 7: If Rodime 352 You must answer how directory entries. ; ; ; FFFF = E512 Equ True ; False = 1024 ent. ; ; ; ;------------------------------------------------------------; ;------------- No more questions below here -----------------; Endif Page \f CP/M RMAC ASSEM 1.1 #003 WDRIVES.ASM 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 \f CP/M RMAC ASSEM 1.1 #004 WDRIVES.ASM If Nec5126 0017 = ReStep Equ 00010111b ; RETRY & BUFF STEP OPTION. 0024 = 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 0000 = Rate0 Equ 00000000b ; 3ms/6ms 0001 = Rate1 Equ 00000001b ; 6ms/12ms 0002 = Rate2 Equ 00000010b ; 10ms/20ms 0003 = Rate3 Equ 00000011b ; 15ms/30ms FFFF = DoublS Equ -1 ; Double sided 0000 = SinglS Equ 0 ; Single sided 0000 = Unit0 Equ 00000000b ; Physical Unit select 0 0001 = Unit1 Equ 00000001b ; Physical Unit select 1 0002 = Unit2 Equ 00000010b ; Physical Unit select 2 0003 = Unit3 Equ 00000011b ; Physical Unit select 3 0008 = Inch5 Equ 00001000b ; 5"-Floppy 00D4 = Inch8 Equ 11010100b ; 8"-Floppy 0000 = DoublD Equ 00000000b ; Double density 0020 = SinglD Equ 00100000b ; Single density If Adaptec ; Common area 00B8 = Comm Equ 0B8h ; 64K - 2*9K = 46K = B800h Else Comm Equ 0BCh ; 64K - 2*8.5K = 47K = BC00h Endif If Adaptec 0001 = Contr1 Equ 00000001B ; Controller unit 1 \f CP/M RMAC ASSEM 1.1 #005 WDRIVES.ASM 0002 = Contr2 Equ 00000010B ; Controller unit 2 0004 = Contr3 Equ 00000100B ; Controller unit 3 0001 = WUnit1 Equ 00000000B OR Contr1 ; Winchester phys. unit 0 on Contr1 0021 = WUnit2 Equ 00100000B OR Contr1 ; Winchester phys. unit 1 on Contr1 0002 = WUnit3 Equ 00000000B OR Contr2 ; Winchester phys. unit 0 on Contr2 0022 = WUnit4 Equ 00100000B OR Contr2 ; Winchester phys. unit 1 on Contr2 0004 = WUnit5 Equ 00000000B OR Contr3 ; Winchester phys. unit 0 on Contr3 0024 = WUnit6 Equ 00100000B OR Contr3 ; Winchester phys. unit 1 on Contr3 0002 = Leav Equ 2 ; Interleave factor 0048 = 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 0200 = Ent Equ 512 0000 = AL1 Equ 0 Else Ent Equ 1024 AL1 Equ 0FFh Endif If M8 Sign Equ '8' Else 0035 = 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 0000 50000A002D 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 0006 7300 Dw FlD Endif If TwoWins Dw WinE,WinF ; E:, F: Sign0 Equ '2' Else 0008 00000000 Dw 0,0 0031 = Sign0 Equ'1' Endif 000C 00000000 Dw 0,0 ; G:, H: not installed If Jet8 Dw FlI,FlJ ; I:, J: Else 0010 00000000 Dw 0,0 Endif 0014 00000000 Dw 0,0 ; K:, L: not installed 0018 0000000000 Dw 0,0,0,0 ; M:, N:, O:, P: not installed \f CP/M RMAC ASSEM 1.1 #006 WDRIVES.ASM 0020 B8 @Commo: Db Comm ; Page \f CP/M RMAC ASSEM 1.1 #007 WDRIVES.ASM Dseg ; Define WINCHESTER LOGICAL UNIT A: (Winchester boot else B:) 0000 0000 Dw WWrit ;; 0002 0000 Dw WRead ;; 0004 0000 Dw WLgin ;; 0006 0000 Dw WInit ;; 0008 01 Db WUnit1 ;; Physical unit for controller 0009 00 Db 0 ;; 000A 0000 WINA: Dw 0 ;; No trans table 000C 0000000000 Db 0,0,0,0,0,0,0,0,0 ;; 0015 00 Db 0 ;; Mediaflag 0016 5F00 Dw WIN0 ;; Address to DPB 0018 0000 Dw 0 ;; Checksum None. 001A FEFF Dw 0FFFEh ;; Alloc vector set by GENCPM 001C FEFF Dw 0FFFEh ;; DirBcb 001E FFFF Dw 0FFFFh ;; DtaBcb Not used 0020 FEFF Dw 0FFFEh ;; Hash 0022 00 Db 0 ;; Hash bank ; Define WINCHESTER LOGICAL UNIT B: (Winchster boot else C:) 0023 0000 Dw WWrit ;; 0025 0000 Dw WRead ;; 0027 0000 Dw WLgin ;; 0029 0000 Dw WInitd ;; 002B 01 Db WUnit1 ;; Physical unit for controller 002C 00 Db 0 ;; 002D 0000 WINB: Dw 0 ;; No trans table 002F 0000000000 Db 0,0,0,0,0,0,0,0,0 ;; 0038 00 Db 0 ;; Mediaflag 0039 7E00 Dw WIN1 ;; Address to DPB 003B 0000 Dw 0 ;; Checksum None. 003D FEFF Dw 0FFFEh ;; Alloc vector set by GENCPM 003F FEFF Dw 0FFFEh ;; DirBcb 0041 FFFF Dw 0FFFFh ;; DtaBcb Not used 0043 FEFF Dw 0FFFEh ;; Hash 0045 00 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 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 ;; \f CP/M RMAC ASSEM 1.1 #008 WDRIVES.ASM 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:) 0046 0000 Dw FdWrit ;; 0048 0000 Dw FdRead ;; 004A 0000 Dw FdLgin ;; 004C 0000 Dw FdInit ;; 004E C8 Db Inch5+Unit0+DoublD+11000000b ;; $FdXsl 2 MHz 8" Mode 004F 00 Db 0 ;; 0050 0000 FlA: Dw 0 ;; No trans table 0052 0000000000 Db 0,0,0,0,0,0,0,0,0 ;; 005B 00 Db 0 ;; Mediaflag 005C 2100 Dw F5Max ;; Address to DPB 005E FEFF Dw 0FFFEh ;; Checksum vector set by GENCPM 0060 FEFF Dw 0FFFEh ;; Alloc vector set by GENCPM 0062 FEFFFFFF Dw 0FFFEh,0FFFFh ;; Let GENCPM setup 0066 FEFF Dw 0FFFEh ;; DirBcb, DtaBcb, Hash 0068 00 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) 0069 0000 Dw FdWrit ;; 006B 0000 Dw FdRead ;; \f CP/M RMAC ASSEM 1.1 #009 WDRIVES.ASM 006D 0000 Dw FdLgin ;; 006F 0000 Dw FdInit ;; 0071 08 Db Inch5+Unit0+DoublD ;; $FdXsl 0072 00 Db 0 ;; If Min96 FlA: Dw 0 ;; No trans table Else 0073 0000 FlD: Dw 0 Endif 0075 0000000000 Db 0,0,0,0,0,0,0,0,0 ;; 007E 00 Db 0 ;; Mediaflag 007F 4000 Dw F596D ;; Address to DPB 0081 FEFF Dw 0FFFEh ;; Checksum vector set by GENCPM 0083 FEFF Dw 0FFFEh ;; Alloc vector set by GENCPM 0085 FEFFFFFF Dw 0FFFEh,0FFFFh ;; Let GENCPM setup 0089 FEFF Dw 0FFFEh ;; DirBcb, DtaBcb, Hash 008B 00 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. \f CP/M RMAC ASSEM 1.1 #010 WDRIVES.ASM 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. 0021 4000 F5Max: Dw 64 ; No. of logical sectors/track. 0023 040F Db 4,0Fh ; Blockshift and mask 0025 00 Db 0 ; Extent mask 0026 5F02 Dw 607 ; Max blocknumber 0028 FF00 Dw 256-1 ; 256 Directory entries 002A F000 Db 0F0h,0 ; Alloc vector to directory 002C 4000 Dw 256/4 ; Checksum size 002E 0200 Dw 2 ; Number of offset tracks 0030 00 Db 0 ; Physical sector size 0031 00 Db 0 ; Physical sector shift mask. 0032 00 Db 0 ; Floppy 0033 08 Db 8 ; No. of logical sectors/phys. sector. 0034 16 Db 22 ; Read time out 0035 13 Db 19 ; Write time out 0036 FF Db -1 ; Double sided 0037 FF Db Verify ; Verify after write 0038 00 Db Rate0 ; Step rate 0039 C8 Db Inch5+DoublD+11000000b ; Boot select 003A 0000000000 Db 0,0,0,0,0,0 ; Dummies Endif If Min96 Or SuperJet Or M5 ; DPB for 5.25" 2x80x5x1024, 128 entries. 0040 2800 F596D: Dw 40 ; No. of logical sectors/track. 0042 040F Db 4,0Fh ; Blockshift and mask 0044 00 Db 0 ; Extent mask 0045 8A01 Dw 394 ; Max blocknumber 0047 7F00 Dw 128-1 ; 128 Directory entries 0049 C000 Db 0C0h,0 ; Alloc vector to directory \f CP/M RMAC ASSEM 1.1 #011 WDRIVES.ASM 004B 2000 Dw 128/4 ; Checksum size 004D 0200 Dw 2 ; Number of offset tracks 004F 00 Db 0 ; Physical sector size 0050 00 Db 0 ; Physical sector shift mask. 0051 00 Db 0 ; Floppy 0052 08 Db 8 ; No. of logical sectors/phys. sector. 0053 16 Db 22 ; Read time out 0054 13 Db 19 ; Write time out 0055 FF Db -1 ; Double sided 0056 FF Db Verify ; Verify after write 0057 00 Db Rate0 ; Step rate 0058 08 Db Inch5+DoublD ; Boot select 0059 0000000000 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) 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 \f CP/M RMAC ASSEM 1.1 #012 WDRIVES.ASM 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 0032 = SIGN1 Equ '2' 0030 = SIGN2 Equ '0' 005F 4800 WIN0: Dw LSecPerTrk ; No of logical sectors/track. 0061 040F Db 4,0FH ; BLOCK SHIfT AND MASK (size = 2K) 0063 00 Db 0 ; EXTENT MASK If Adaptec 0064 5513 Dw 4949 ; MAX BLOCKNUMMER Else Dw 4675 ; Endif 0066 FF03 Dw 1024-1 ; DIR. ENTRIES 0068 FFFF Db 0FFH,0FFH ; ALLOC VECTOR TO DIR 006A 0080 Dw 8000H ; CHECKSUM SIZE (none) 006C 0100 Dw 1 ; OFFSET TRACKS 006E 00 Db 0 ; Phys. sector size 006F 00 Db 0 ; Phys. sector shift mask. 0070 01 Db 1 ; Winchester 1st. part. 0071 04 Db 4 ; No. of logical sector/phys. sector 0072 32 Db 50 ; Read time out 0073 13 Db 19 ; Write time out 0074 FD Db 255-Leav ; Interleav (Inv) 0075 E8 Db 255-ReStep ; Retry & Buff step option 0076 FD Db 255-2 ; No of cylinders Hbyte If Adaptec 0077 D4 Db 255-43 ; - " - Lbyte Else Db 255-76 Endif 0078 FB Db 255-4 ; No of heads. 0079 FF Db 255-0 ; Red. write cyl Hbyte 007A FF Db 255-0 ; - " - Lbyte 007B FF Db 255-0 ; Write precomp. cyl Hbyte 007C FF Db 255-0 ; - " - Lbyte 007D F4 Db 255-11 ; ECC 007E 4800 WIN1: Dw LSecPerTrk ; No. of logical sectors/track. 0080 040F Db 4,0FH ; BLOCK SKIfT AND MASK (size = 2K) 0082 00 Db 0 ; EXTENT MASK \f CP/M RMAC ASSEM 1.1 #013 WDRIVES.ASM If Adaptec 0083 9913 Dw 5035-(Reduce/2) ; MAX BLOCKNUMBER Else Dw 5315-(Reduce/2) Endif 0085 FF03 Dw 1024-1 ; DIR. ENTRIES 0087 FFFF Db 0FFH,0FFH ; ALLOC VECTOR TO DIR 0089 0080 Dw 8000H ; CHECKSUM SIZE (none) 008B B104 Dw 1201 ; OFFSET TRACK 008D 00 Db 0 ; PHYS. SECTOR SIZE 008E 00 Db 0 ; PHYS. SECTOR SHIfT MASK 008F 02 Db 2 ; Winchester 2nd part. 0090 04 Db 4 ; No of logical sectors/phys. sector 0091 32 Db 50 ; Read time out 0092 13 Db 19 ; Write time out 0093 FD Db 255-Leav ; Interleav (Inv) 0094 E8 Db 255-ReStep ; Retry & Buff step option 0095 FD Db 255-2 ; No of cylinders Hbyte If Adaptec 0096 D4 Db 255-43 ; - " - Lbyte Else Db 255-76 Endif 0097 FB Db 255-4 ; No. of heads. 0098 FF Db 255-0 ; Red. write cyl Hbyte 0099 FF Db 255-0 ; - " - Lbyte 009A FF Db 255-0 ; Write precomp. cyl Hbyte 009B FF Db 255-0 ; - " - Lbyte 009C F4 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) 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. \f CP/M RMAC ASSEM 1.1 #014 WDRIVES.ASM 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: Rodime 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) 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 \f CP/M RMAC ASSEM 1.1 #015 WDRIVES.ASM 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: 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) 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 \f CP/M RMAC ASSEM 1.1 #016 WDRIVES.ASM 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: 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) Db 1 ; EXTENT MASK If Adaptec Dw 8999 ; MAX BLOCKNUMMER Else \f CP/M RMAC ASSEM 1.1 #017 WDRIVES.ASM 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: CDC 9415-66 SIGN1 Equ '5' If Adaptec SIGN2 Equ '8' Else Sign2 Equ '5' Endif \f CP/M RMAC ASSEM 1.1 #018 WDRIVES.ASM WIN0: Dw LSecPerTrk ; No of logical sectors/track. Db 5,31 ; BLOCK SHIfT AND MASK (size = 4K) 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: CDC 9415-86 SIGN1 Equ '7' \f CP/M RMAC ASSEM 1.1 #019 WDRIVES.ASM 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) 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 \f CP/M RMAC ASSEM 1.1 #020 WDRIVES.ASM Dseg 008C 38302E2035?Titel: Db '80. ',Sign,'"-floppy ' If M8 Else If M5 009A 312E32204D Db '1.2 MByte ' Else Db '800 KByte ' Endif Endif 00A4 3178323020 Db Sign0,'x',Sign1,Sign2,' MBytes winchester ' If Adaptec 00BB 41 Db 'A' Else Db 'X' Endif 00BC 2E0D0A00 Db '.',13,10,0 00C0 End «eof»