DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦4950c2143⟧ TextFile

    Length: 27264 (0x6a80)
    Types: TextFile
    Names: »WDRIVES.ASM«

Derivation

└─⟦a844860b7⟧ Bits:30002858 CP/M Plus (tm) Version 3.0 for JET80
    └─ ⟦this⟧ »WDRIVES.ASM« 
└─⟦c10cc8855⟧ Bits:30002859 CP/M Plus med Hit & Dit filoverførsel for JET80
    └─ ⟦this⟧ »WDRIVES.ASM« 

TextFile

	TITLE 'WDRIVES.ASM  TABLES FOR DISKETTE AND WINCHESTER'
;**************************************************************
;*                                                            *
;*        MODULE FOR DEFINING THE FLOPPY- AND WINCHER-        *
;*        UNITS IN THE SYSTEM.                                *
;*                                                            *
;**************************************************************

; LATEST CHANGE: 1985-01-21.   PSW
; BIOSREVISION D.
; FOR THE RMAC ASSEMBLER

TRUE	EQU	0FFH
FALSE	EQU	0
	PAGE 	60
;******************************************************************
;            What kind of floppy do You want ?

VERIFY	EQU	TRUE		; Verify after write.

M8	EQU	FALSE		; A: 8" 2x77x8x1024, 256 ent. UNIT0
				; D: 8" 1x77x26x128,  64 ent. UNIT0
M5	EQU	FALSE		; A: 5" 2x77x8x1024, 256 ent. UNIT0
				; D: 8" 1x77x26x128,  64 ent. UNIT0
MIN96	EQU	TRUE		; A: 5" 2x80x5x1024, 128 ent. UNIT0
				; D: 8" 1x77x26x128,  64 ent. UNIT0
; MARK CORRECT FLOPPPY TYPE WITH TRUE. NOTE ONLY ONE TRUE.
;******************************************************************

;******************************************************************
;            What kind of winchester do You want ?
; Note: All drives have the innermost cylinder reserved for
;       parking zone.

RO104	EQU	FALSE		; Rodime 104      512-1024 ent./ 2K block size
RO201	EQU	FALSE		; Rodime 201      512-1024 ent./ 2K block size
RO204	EQU	FALSE		; Rodime 204      1024 ent./ 2K block size
RO204E	EQU	FALSE		; Rodime 204 E    2048 ent./ 4K block size
RO352	EQU	TRUE		; Rodime 352      512-1024 ent./ 2K block size
XT1065	EQU	FALSE		; Maxtor XT-1065  2048 ent./ 4K block size
XT1085	EQU	FALSE		; Maxtor XT-1085  2048 ent./ 4K block size
CDC36	EQU	FALSE		; CDC 9415-36     2048 ent./ 4K block size
CDC86	EQU	FALSE		; CDC 9415-86     2048 ent./ 4K block size

;            And how many ? One or two ?

TWOWINS	EQU	FALSE

;******************************************************************
; Diskdrive size and number of directory entries.

E512	EQU	TRUE		;  512 ENTRIES
E1024	EQU	FALSE		; 1024 ENTRIES
REDUCE	EQU	44		; # of kBytes to reduce from second
				; winchester unit.
;NOTE. The size of this reduce factor is depending on how many bad
;      tracks the formatter utility has found on the disk.
;      If the formatter tells You that it has reduced more kBytes
;      than this factor, You must change this factor immediatly
;      and generate a new operating system before copying any files
;      to the winchester.
;*****************************************************************

;******************************************************************
; Consult the XEBEC-manual for the two following constants:
; XEBEC 1410A Controller:
;	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	RO104
LEAV	EQU	7		; INTERLEAV FACTOR used at formatting.
RESTEP	EQU	00000100B	; RETRY & BUFF STEP OPTION.
	ENDIF
	IF	RO201
LEAV	EQU	7		; INTERLEAV FACTOR used at formatting.
RESTEP	EQU	00000100B	; RETRY & BUFF STEP OPTION.
	ENDIF
	IF	RO204
LEAV	EQU	7		; INTERLEAV FACTOR used at formatting.
RESTEP	EQU	00000100B	; RETRY & BUFF STEP OPTION.
	ENDIF
	IF	RO204E
LEAV	EQU	7		; INTERLEAV FACTOR used at formatting.
RESTEP	EQU	00000100B	; RETRY & BUFF STEP OPTION.
	ENDIF
	IF	RO352
LEAV	EQU	7		; INTERLEAV FACTOR used at formatting.
RESTEP	EQU	00000100B	; RETRY & BUFF STEP OPTION.
	ENDIF
	IF	XT1065
LEAV	EQU	7		; INTERLEAV FACTOR used at formatting.
RESTEP	EQU	00010111B	; RETRY & BUFF STEP OPTION.
	ENDIF
	IF	XT1085
LEAV	EQU	7		; INTERLEAV FACTOR used at formatting.
RESTEP	EQU	00010111B	; RETRY & BUFF STEP OPTION.
	ENDIF
	IF	CDC36
LEAV	EQU	7		; INTERLEAV FACTOR used at formatting.
RESTEP	EQU	00010111B	; RETRY & BUFF STEP OPTION.
	ENDIF
	IF	CDC86
LEAV	EQU	7		; INTERLEAV FACTOR used at formatting.
RESTEP	EQU	00010111B	; RETRY & BUFF STEP OPTION.
	ENDIF

	PAGE
; CONSTANTS:
RATE0	EQU	00000000B	; Floppy step rate 3ms/6ms
RATE1	EQU	00000001B	; Floppy step rate 6ms/12ms
RATE2	EQU	00000010B	; Floppy step rate 10ms/20ms
RATE3	EQU	00000011B	; Floppy step rate 15ms/30ms

UNIT0	EQU	00000000B	; Floppy phys. unit 0
UNIT1	EQU	00000001B	; Floppy phys. unit 1
UNIT2	EQU	00000010B	; Floppy phys. unit 2
UNIT3	EQU	00000011B	; Floppy phys. unit 3
WUNIT0	EQU	00000000B	; Winchester phys. unit 0
WUNIT1	EQU	00100000B	; Winchester phys. unit 1

INCH5	EQU	00001000B	; 5"-FLOPPY
INCH8	EQU	11010100B	; 8"-FLOPPY

DOUBLD	EQU	00000000B	; DOUBLE DENSITY
SINGLD	EQU	00100000B	; SINGLE DENSITY

COMM	EQU	0BCH		; COMMON PAGE IN SYSTEM

	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
	PAGE
	EXTRN	FDREAD,FDWRIT,FDLGIN,FDINIT
	EXTRN	WREAD,WWRIT,WINIT,WINITD,WLGIN
	PUBLIC	@DTBL,?TITEL
	PUBLIC	@COMMO
	CSEG
@DTBL:	DW	FLA,WINA,WINB,FLD	; This order must not be changed.
					; Check boot-routine in
					; BIOSKRNL.Z80
	IF	TWOWINS
	DW	WINC,WIND
	SIGN0	EQU	'2'
	ELSE
	DW	0,0
	SIGN0	EQU	'1'
	ENDIF

	DW	0,0		
	DW	0,0,0,0▶8a◀	DW	0,0,0,0
@COMMO:	DB	COMM
	PAGE
	DSEG

; Define WINCHESTER UNIT 0.

	DW	WWRIT
	DW	WREAD
	DW	WLGIN
	DW	WINIT
	DB	WUNIT0		; PHYSICAL UNIT FOR XEBEC.▶8a◀	DB	0
WINA:	DW	0		; NO TRANS TABLE
	DB	0,0,0,0,0,0,0,0,0
	DB	0		; MEDIAFLAGG
	DW	WIN0		; ADDRESS TO DPB
	DW	0		; NO CHECKSUM VECTOR
	DW	0FFFEH		; ALLOC VECTOR GEN. BY GENCPM
	DW	0FFFEH,0FFFEH	; LET GENCPM CALC
	DW	0FFFEH		; DIRBCB, DTABCB, HASH
	DB	0		; HASH BANK.


; Define WINCHESTER UNIT 1.

	DW	WWRIT
	DW	WREAD
	DW	WLGIN
	DW	WINITD
	DB	WUNIT0		; PHYSICAL UNIT FOR XEBEC.
	DB	0
WINB:	DW	0		; NO TRANS TABLE
	DB	0,0,0,0,0,0,0,0,0
	DB	0		; MEDIAFLAGG
	DW	WIN1		; ADDRESS TO DPB
	DW	0		; NO CHECKSUM VECTOR
	DW	0FFFEH		; ALLOC VECTOR GEN. BY GENCPM
	DW	0FFFEH,0FFFEH	; LET GENCPM CALC
	DW	0FFFEH		; DIRBCB, DTABCB, HASH
	DB	0		; HASH BANK.

	IF	TWOWINS
; Define WINCHESTER UNIT 0.

	DW	WWRIT
	DW	WREAD
	DW	WLGIN
	DW	WINITD
	DB	WUNIT1		; PHYSICAL UNIT FOR XEBEC.▶8a◀	DB	0
WINC:	DW	0		; NO TRANS TABLE
	DB	0,0,0,0,0,0,0,0,0
	DB	0		; MEDIAFLAGG
	DW	WIN0		; ADDRESS TO DPB
	DW	0		; NO CHECKSUM VECTOR
	DW	0FFFEH		; ALLOC VECTOR GEN. BY GENCPM
	DW	0FFFEH,0FFFEH	; LET GENCPM CALC
	DW	0FFFEH		; DIRBCB, DTABCB, HASH
	DB	0		; HASH BANK.

; Define WINCHESTER UNIT 1.

	DW	WWRIT
	DW	WREAD
	DW	WLGIN
	DW	WINITD
	DB	WUNIT1		; PHYSICAL UNIT FOR XEBEC.
	DB	0
WIND:	DW	0		; NO TRANS TABLE
	DB	0,0,0,0,0,0,0,0,0
	DB	0		; MEDIAFLAGG
	DW	WIN1		; ADDRESS TO DPB
	DW	0		; NO CHECKSUM VECTOR
	DW	0FFFEH		; ALLOC VECTOR GEN. BY GENCPM
	DW	0FFFEH,0FFFEH	; LET GENCPM CALC
	DW	0FFFEH		; DIRBCB, DTABCB, HASH
	DB	0		; HASH BANK.
	ENDIF

	IF	M8
; Define 8" 2x77x8x1024, 256 entries. UNIT A:

	DW	FDWRIT
	DW	FDREAD
	DW	FDLGIN
	DW	FDINIT
	DB	INCH8+UNIT0+DOUBLD
				; $FDXSL
	DB	0		; 
FLA:	DW	0		; NO TRANS TABLE
	DB	0,0,0,0,0,0,0,0,0
	DB	0		; MEDIAFLAGG
	DW	F8D		; ADDRESS TO DPB
	DW	0FFFEH		; CHECKSUM VECTOR GEN. BY GENCPM
	DW	0FFFEH		; ALLOC VECTOR GEN. BY GENCPM
	DW	0FFFEH,0FFFEH	; LET GENCPM CALC
	DW	0FFFEH		; DIRBCB, DTABCB, HASH
	DB	0		; HASH BANK.
	ENDIF

	IF	M5
; Define 5.25" 2x77x8x1024, 256 entries. UNIT A:

	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		; MEDIAFLAGG
	DW	F5MAX		; ADDRESS TO DPB
	DW	0FFFEH		; CHECKSUM VECTOR GEN BY GENCPM
	DW	0FFFEH		; ALLOC VECTOR GEN BY GENCPM
	DW	0FFFEH,0FFFEH	; LET GENCPM CALC
	DW	0FFFEH		; DIRBCB, DTABCB, HASH
	DB	0		; HASH BANK.
	ENDIF

	IF	MIN96
; Define 5.25" 2x80x5x1024, 128 entries. UNIT A:

	DW	FDWRIT
	DW	FDREAD
	DW	FDLGIN
	DW	FDINIT
	DB	INCH5+UNIT0+DOUBLD
				; $FDXSL
	DB	0		; 
FLA:	DW	0		; NO TRANS TABLE
	DB	0,0,0,0,0,0,0,0,0
	DB	0		; MEDIAFLAGG
	DW	F596D		; ADDRESS TO DPB
	DW	0FFFEH		; CHECKSUM VECTOR GEN BY GENCPM
	DW	0FFFEH		; ALLOC VECTOR GEN BY GENCPM
	DW	0FFFEH,0FFFEH	; LET GENCPM CALC
	DW	0FFFEH		; DIRBCB, DTABCB, HASH
	DB	0		; HASH BANK.
	ENDIF

; Define 8" 1x77x26x128, 64 entries (IBM). UNIT D:

	DW	FDWRIT
	DW	FDREAD
	DW	FDLGIN
	DW	FDINIT
	DB	INCH8+UNIT0+SINGLD
				; $FDXSL
	DB	0		; 
FLD:	DW	TRANS		; TRANS TABLE
	DB	0,0,0,0,0,0,0,0,0
	DB	0		; MEDIAFLAGG
	DW	F8S		; ADDRESS TO DPB
	DW	0FFFEH		; CHECKSUM VECTOR GEN. BY GENCPM
	DW	0FFFEH		; ALLOC VECTOR GEN. BY GENCPM
	DW	0FFFEH,0FFFEH	; LET GENCPM CALC
	DW	0FFFEH		; DIRBCB, DTABCB, HASH
	DB	0		; HASH BANK.

	CSEG
; DPB for 8" 2x77x8x1024, 256 entries.

F8D:	DW	64		; Number of logical sect/track
	DB	4,0FH		; BLOCK SKIFT and MASK
	DB	0		; EXTENT MASK
	DW	607		; MAX BLOCKNUMBER
	DW	256-1		; 256 DIR. ENTRIES
	DB	0F0H,0		; ALLOC VECTOR TO DIR
	DW	256/4		; CHECKSUMMA SIZE
	DW	2		; NUMBER OF OFFSET TRACKS
	DB	0		; PHYS. SECTOR SIZE
	DB	0		; PHYS. SECTOR SHIFT-MASK

	DB	0		; Floppy
	DB	8		; No. of log.sec./phys. sec.
	DB	22		; Read time out
	DB	19		; Write time out
	DB	0FFH		; 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		; BLOCK SKIFT AND MASK
	DB	0		; EXTENT MASK
	DW	242		; MAX BLOCKNUMBER
	DW	64-1		; 64 DIR. ENTRIES
	DB	0C0H,0		; ALLOC VECTOR TO DIR
	DW	64/4		; CHECKSUM SIZE
	DW	2		; OFFSET TRACK
	DB	0		; PHYS.SECTOR SIZE
	DB	0		; PHYS. 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

; DPB for 5.25" 2x77x8x1024, 256 entries.

F5MAX:	DW	64		; No. of logical sectors/track.
	DB	4,0FH		; BLOCK SKIFT AND MASK
	DB	0		; EXTENT MASK
	DW	607		; MAX BLOCKNUMBER
	DW	256-1		; 256 DIR. ENTRIES
	DB	0F0H,0		; ALLOC VECTOR TO DIR
	DW	256/4		; CHECKSUM SIZE
	DW	2		; OFFSET TRACKS
	DB	0		; PHYS. SECTOR SIZE
	DB	0		; PHYS. 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	0FFH		; 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


; DPB for 5.25" 2x80x5x1024, 128 entries.

F596D:	DW	40		; No. of logical sectors/track.
	DB	4,0FH		; BLOCK SKIFT AND MASK
	DB	0		; EXTENT MASK
	DW	394		; MAX BLOCKNUMBER
	DW	128-1		; 128 DIR. ENTRIES
	DB	0C0H,0		; ALLOC VECTOR TO DIR
	DW	128/4		; CHECKSUM SIZE
	DW	2		; OFFSET TRACKS
	DB	0		; PHYS. SECTOR SIZE
	DB	0		; PHYS. 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	0FFH		; Double sided
	DB	VERIFY		; Verify after write
	DB	RATE0		; Step rate
	DB	INCH5+DOUBLD	; Boot select
	DB	0,0,0,0,0,0	; Dummies

; Winchester: Rodime 104
	IF	RO104

SIGN1	EQU	'1'
SIGN2	EQU	'3'

WIN0:	DW	68		; No of logical sectors/track.
	DB	4,0FH		; BLOCK SHIFT AND MASK (size = 2K)▶8a◀	DB	0		; EXTENT MASK
	DW	3229		; MAX BLOCKNUMMER
	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-0		; No of cylinders Hbyte
	DB	255-192		;      - " -      Lbyte
	DB	255-8		; No of heads.
	DB	255-0		; Red. write cyl Hbyte
	DB	255-96		;     -  "  -    Lbyte
	DB	255-0		; Write precomp. cyl Hbyte
	DB	255-0		;     -  "  -        Lbyte
	DB	255-11		; ECC

WIN1:	DW	68		; No. of logical sectors/track.
	DB	4,0FH		; BLOCK SKIFT AND MASK (size = 2K)
	DB	0		; EXTENT MASK
	DW	3258-(REDUCE/2)	; MAX BLOCKNUMBER
	DW	ENT-1		; DIR. ENTRIES
	DB	0FFH,AL1	; ALLOC VECTOR TO DIR
	DW	8000H		; CHECKSUM SIZE (none)
	DW	761		; 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-0		; No of cylinders Hbyte
	DB	255-192		;       - " -     Lbyte
	DB	255-8		; No. of heads.
	DB	255-0		; Red. write cyl Hbyte
	DB	255-96		;     -  "  -    Lbyte
	DB	255-0		; Write precomp. cyl Hbyte
	DB	255-0		;     -  "  -        Lbyte
	DB	255-11		; ECC
	ENDIF

; Winchester: Rodime 201
	IF	RO201

SIGN1	EQU	' '
SIGN2	EQU	'5'

WIN0:	DW	68		; No of logical sectors/track.
	DB	4,0FH		; BLOCK SHIFT AND MASK (size = 2K)▶8a◀	DB	0		; EXTENT MASK
	DW	1350		; MAX BLOCKNUMMER
	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-65 		;      - " -      Lbyte
	DB	255-2		; 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	68		; No. of logical sectors/track.
	DB	4,0FH		; BLOCK SKIFT AND MASK (size = 2K)
	DB	0		; EXTENT MASK
	DW	1363-(REDUCE/2)	; MAX BLOCKNUMBER
	DW	ENT-1		; DIR. ENTRIES
	DB	0FFH,AL1	; ALLOC VECTOR TO DIR
	DW	8000H		; CHECKSUM SIZE (none)
	DW	319		; 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-2		; 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

; Winchester: Rodime 204
	IF	RO204

SIGN1	EQU	'2'
SIGN2	EQU	'1'

WIN0:	DW	68		; No of logical sectors/track.
	DB	4,0FH		; BLOCK SHIFT AND MASK (size = 2K)▶8a◀	DB	0		; EXTENT MASK
	DW	5396		; MAX BLOCKNUMMER
	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	68		; No. of logical sectors/track.
	DB	4,0FH		; BLOCK SKIFT AND MASK (size = 2K)
	DB	0		; EXTENT MASK
	DW	5477-(REDUCE/2)	; MAX BLOCKNUMBER
	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

; Winchester: Rodime 204 E
	IF	RO204E

SIGN1	EQU	'4'
SIGN2	EQU	'3'

WIN0:	DW	68		; No of logical sectors/track.
	DB	5,31		; BLOCK SHIFT AND MASK (size = 4K)▶8a◀	DB	1		; EXTENT MASK
	DW	5311		; MAX BLOCKNUMMER
	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	68		; No. of logical sectors/track.
	DB	5,31		; BLOCK SKIFT AND MASK (size = 4K)
	DB	1		; EXTENT MASK
	DW	5547-(REDUCE/4)	; MAX BLOCKNUMBER
	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

▶bb◀ Winchester▶ba◀ Rodim▶e5◀ 352
	IF	RO352

SIGN1	EQU	'1'
SIGN2	EQU	'0'

WIN0:	DW	68		; No of logical sectors/track.
	DB	4,0FH		; BLOCK SHIFT AND MASK  (size = 2K)▶8a◀	DB	0		; EXTENT MASK
	DW	2549		; MAX BLOCKNUMMER
	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	68		; No. of logical sectors/track.
	DB	4,0FH		; BLOCK SKIFT AND MASK (size = 2K)
	DB	0		; EXTENT MASK
	DW	2629-(REDUCE/2)	; MAX BLOCKNUMBER
	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

▶bb◀ Winchester▶ba◀ Maxtor XT-1065
	IF	XT1065

SIGN1	EQU	'5'
SIGN2	EQU	'4'

WIN0:	DW	68		; No of logical sectors/track.
	DB	5,31		; BLOCK SHIFT AND MASK (size = 4K)▶8a◀	DB	1		; EXTENT MASK
	DW	6799		; MAX BLOCKNUMMER
	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	68		; No. of logical sectors/track.
	DB	5,31		; BLOCK SKIFT AND MASK (size = 4K)
	DB	1		; EXTENT MASK
	DW	6837-(REDUCE/4)	; MAX BLOCKNUMBER
	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

▶bb◀ Winchester▶ba◀ Maxtor XT-1085
	IF	XT1085

SIGN1	EQU	'6'
SIGN2	EQU	'8'

WIN0:	DW	68		; No of logical sectors/track.
	DB	5,31		; BLOCK SHIFT AND MASK (size = 4K)▶8a◀	DB	1		; EXTENT MASK
	DW	8499		; MAX BLOCKNUMMER
	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	68		; No. of logical sectors/track.
	DB	5,31		; BLOCK SKIFT AND MASK (size = 4K)
	DB	1		; EXTENT MASK
	DW	8887-(REDUCE/4)	; MAX BLOCKNUMBER
	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

▶bb◀ Winchester▶ba◀ CDC 9415-36
	IF	CDC36

SIGN1	EQU	'3'
SIGN2	EQU	'0'

WIN0:	DW	68		; No of logical sectors/track.
	DB	5,31		; BLOCK SHIFT AND MASK (size = 4K)▶8a◀	DB	1		; EXTENT MASK
	DW	3611		; MAX BLOCKNUMMER
	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-185		;      - " -      Lbyte
	DB	255-5		; 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	68		; No. of logical sectors/track.
	DB	5,31		; BLOCK SKIFT AND MASK (size = 4K)
	DB	1		; EXTENT MASK
	DW	3779-(REDUCE/4)	; MAX BLOCKNUMBER
	DW	2048-1		; DIR. ENTRIES
	DB	0FFH,0FFH	; ALLOC VECTOR TO DIR
	DW	8000H		; CHECKSUM SIZE (none)
	DW	1701		; 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-185		;       - " -     Lbyte
	DB	255-5		; 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

▶bb◀ Winchester▶ba◀ CDC 9415-86
	IF	CDC86

SIGN1	EQU	'7'
SIGN2	EQU	'1'

WIN0:	DW	68		; No of logical sectors/track.
	DB	5,31		; BLOCK SHIFT AND MASK (size = 4K)▶8a◀	DB	1		; EXTENT MASK
	DW	8711		; MAX BLOCKNUMMER
	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-156		;      - " -      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	68		; No. of logical sectors/track.
	DB	5,31		; BLOCK SKIFT AND MASK (size = 4K)
	DB	1		; EXTENT MASK
	DW	8936-(REDUCE/4)	; MAX BLOCKNUMBER
	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-156		;       - " -     Lbyte
	DB	255-8		; 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

?TITEL:	DB	'80. '		; the rest of the signon message.
	DB	SIGN,'"-floppy '
	IF	M8
	ELSE
	IF	M5
	DB	'1.2 MByte '
	ELSE
	DB	'800 KByte '
	ENDIF
	ENDIF
	DB	SIGN0,'x',SIGN1,SIGN2,' MBytes winchester.',13,10,0	

TRANS:	DB	1,7,13,19,25
	DB	5,11,17,23
	DB	3,9,15,21
	DB	2,8,14,20,26
	DB	6,12,18,24
	DB	4,10,16,22

	END
«eof»