.IDENT	FMTNEW
;
TSD	= 2		; TWO SIDED BIT (TYPE CODE)
DDD	= 3		; DOUBLE DENSITY BIT (TYPE CODE)
;
	.LOC	.PROG.#
;
;
YSRFMT::.WORD	.+DSTL	; DISK SPEC TABLE LINK POINTER
	.BYTE	0	; BLOCK SIZE
	.WORD	0	; NUMBER OF BLOCKS
	.BYTE	0	; NUMBER OF DIRECTORY BLOCKS
	.BYTE	0	; PHYSICAL SECTOR SIZE (2^N*128)
	.WORD	0	; PHYSICAL SECTORS PER TRACK
	.WORD	0	; PHYSICAL TRACKS PER DISK
	.WORD	0	; NUMBER OF RESERVED TRACKS
	.WORD	YSRTAB	; TRANSLATION TABLE ADDRESS
	.BYTE	0	; DISK TYPE CODE
	.BYTE	0	; GAP LENGTH
;
;	256 BYTE SECTOR, DOUBLE DENSITY, TWO SIDED
;
DSTBLS::.WORD	.+DSTL	; DISK SPEC TABLE LINK POINTER
	.BYTE	4	; BLOCK SIZE
	.WORD	(80*32*1)/8	; NUMBER OF BLOCKS
	.BYTE	4	; NUMBER OF DIRECTORY BLOCKS
	.BYTE	1	; PHYSICAL SECTOR SIZE (2^N*128)
	.WORD	32	; PHYSICAL SECTORS PER TRACK
	.WORD	80	; PHYSICAL TRACKS PER DISK
	.WORD	0	; NUMBER OF RESERVED TRACKS
	.WORD	0	; TRANSLATION TABLE ADDRESS
	.BYTE	30H!1<TSD!1<DDD!1   ; DISK TYPE CODE
	.BYTE	14H	; GAP LENGTH
;
;	1024 BYTE SECTOR, DOUBLE DENSITY, TWO SIDED
;
        .WORD	.+DSTL	; DISK SPEC TABLE LINK POINTER
	.BYTE	4	; BLOCK SIZE
	.WORD	(80*10*1)/2	; NUMBER OF BLOCKS
	.BYTE	4	; NUMBER OF DIRECTORY BLOCKS
	.BYTE	3	; PHYSICAL SECTOR SIZE (2^N*128)
	.WORD	10	; PHYSICAL SECTORS PER TRACK
	.WORD	80	; PHYSICAL TRACKS PER DISK
	.WORD	0	; NUMBER OF RESERVED TRACKS
	.WORD	TABLE2	; TRANSLATION TABLE ADDRESS
	.BYTE	30H!1<TSD!1<DDD!3   ; DISK TYPE CODE
	.BYTE	32H	; GAP LENGTH
;
;	512 BYTE SECTOR, DOUBLE DENSITY, ONE SIDED, SINGLE TRACK DENSITY
;	(IBM PC FORMAT)
;
        .WORD	.+DSTL	; DISK SPEC TABLE LINK POINTER
	.BYTE	4	; BLOCK SIZE
	.WORD	(40*9*1)/2   ; NUMBER OF BLOCKS
	.BYTE	0	; NUMBER OF DIRECTORY BLOCKS
	.BYTE	2	; PHYSICAL SECTOR SIZE (2^N*128)
	.WORD	9 	; PHYSICAL SECTORS PER TRACK
	.WORD	40	; PHYSICAL TRACKS PER DISK
	.WORD	0	; NUMBER OF RESERVED TRACKS
	.WORD	0	; TRANSLATION TABLE ADDRESS
	.BYTE	7EH     ; DISK TYPE CODE
	.BYTE	32H	; GAP LENGTH
;
;	512 BYTE SECTOR, DOUBLE DENSITY, TWO SIDED, 40 TRACKS
;
        .WORD	.+DSTL	; DISK SPEC TABLE LINK POINTER
	.BYTE	4	; BLOCK SIZE
	.WORD	(40*20*1)/4   ; NUMBER OF BLOCKS
	.BYTE	2	; NUMBER OF DIRECTORY BLOCKS
	.BYTE	2	; PHYSICAL SECTOR SIZE (2^N*128)
	.WORD	20	; PHYSICAL SECTORS PER TRACK
	.WORD	40	; PHYSICAL TRACKS PER DISK
	.WORD	3	; NUMBER OF RESERVED TRACKS
	.WORD	TABLE1	; TRANSLATION TABLE ADDRESS
	.BYTE	7EH     ; DISK TYPE CODE
	.BYTE	12H	; GAP LENGTH
;
;	512 BYTE SECTOR, DOUBLE DENSITY, TWO SIDED, 80 TRACKS
;
DSTA:   .WORD	0     	; DISK SPEC TABLE LINK POINTER
DSTB:	.BYTE	4	; BLOCK SIZE
	.WORD	(80*18)/4   ; NUMBER OF BLOCKS
	.BYTE	4	; NUMBER OF DIRECTORY BLOCKS
	.BYTE	2	; PHYSICAL SECTOR SIZE (2^N*128)
	.WORD	18	; PHYSICAL SECTORS PER TRACK
	.WORD	80	; PHYSICAL TRACKS PER DISK
	.WORD	2	; NUMBER OF RESERVED TRACKS
;
XLTBL	=: .-DSTB	; TRANSLATION TABLE ADDRESS OFSET
;
	.WORD	0	; TRANSLATION TABLE ADDRESS
;
DTCO	=: .-DSTA	; DISK TYPE CODE OFFSET
TYPCOD	=: .-DSTB	; DISK TYPE CODE OFFSET
;
	.BYTE	3EH	; DISK TYPE CODE
;
GAPLEN	=: .-DSTB	; GAP LENGTH OFFSET
;
	.BYTE	32H	; GAP LENGTH
;
DSTL	= .-DSTA	; DISK SPEC TABLE LENGTH
;
TABLE1:	.BYTE	0,2,4,6,8,1,3,5,7,9
	.BYTE	10,12,14,16,18,11,13,15,17,19
;
TABLE2:	.BYTE	0,2,4,1,3
	.BYTE	5,7,9,6,8
;
YSRTAB::.BLKB	50
.END
