|
|
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 - metrics - 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»