home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
ZCPR33
/
A-R
/
BANKSYS1.LBR
/
MDST24.ZZ0
/
MDST24.Z80
Wrap
Text File
|
2000-06-30
|
14KB
|
449 lines
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.Title 'MDST24.Z80 / XL-M180 Floppy Drive Spec Tables / 27jan88'
.Sbttl '(C) Copyright 1988 By W. Brimhall / Znode 52 (602)996-8739'
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Revisions:
;27jan88 - Revised for ZAS 3.0 and renamed to MDST24.Z80.
;30jul87 - Re-defined type code bit 4 to specify hi-dens 96tpi formats,
; placed all 96tpi dst's in same table. Corrected tracks entry
; on ICM5HD dst and renamed to MDST24.
;25apr87 - Added DST table for 5.25" high density drives & renamed
; to MDST23. (Must use MFD23 or later floppy driver).
;09apr87 - Added ICM82 8" DSDD 512 sector with one reserved track and
; renamed to MDST22.
;20Jan87 - Placed dsttbl at start of this module and renamed to MDST21.
;27nov86 - Added access mode, base sector number & head id bytes to each
; DST for support of several additional formats. Combined with
; ZDST8F and Added Kpro4, Kpro96 and Ampro DST's. Made cylinder/
; track entries 1 based for Turbodos. Renamed to MDST20.MAC for use
; with MFD20.MAC floppy driver in both Turbodos and Zsystem.
;01Sep86 - Made BLKS 1 based to match the Tdos DST standard. (Also had
; to modify ZDM2.MAC.) Renamed to ZD5F2.
;12Jul86 - Added comments to kpro2 dst.
;06Jul86 - Released as ZDST5F.
name MDST24 ; Module id
;DST size codes (2^n*128):
s128 equ 0 ;128
s256 equ 1 ;256
s512 equ 2 ;512
s1024 equ 3 ;1024
s2048 equ 4 ;2048
s4096 equ 5 ;4096
;These bits in the DST TYPE CODE byte are set true to
;specify the following parameters:
tsd equ 1 shl 2 ; 1= Two-sided
mfm equ 1 shl 3 ; 1= mfm
hd equ 1 shl 4 ; l= Hi density
tpi96 equ 1 shl 5 ; 1= 96tpi (not used)
ibm equ 1 shl 7 ; 1= IBM pc 9 sector (not used)
;This bit in the block size byte is set true to
;specify the following parameter:
fixed equ 1 shl 7 ; fixed media bit (block size)
;These mode bytes specify how data is accessed on the diskette:
s0mod equ 0 ;side0 mode= use side 0 only
s1mod equ 1 ;side1 mode= use side 1 only
cylmod equ 2 ;cylinder mode= second half of sectors are on side1
trkmod equ 3 ;track mode= odd tracks are on side1
;The following DST value definitions differ depending on wheter the
;format is accessed in cylinder or track mode.
;
; CYLMOD:
; Dst+7= 1 based Sectors per cylinder (both sides of the disk)
; Dst+9= 1 based Cylinders (tracks on 1 side of disk)
;
; TRKMOD:
; Dst+7= 1 based Sectors per track (one side of the disk)
; Dst+9= 1 based Tracks (tracks on both sides of disk)
; Dst+9 is the only value that is 0 based, all others are 1 based.
;The head id byte specifies the value that was written to the head
;field in the sector id header when the diskette was formatted.
;All DST entries are 1 based except for the sector translation
;tables which must use 0 based values.
;--------------------
; DST pointer table.
;--------------------
;The DSKAST table defines the physical disk assignments for the system. A
;floppy drive must have an entry in the table before it can be accessed.
;Each entry has a channel byte. For a floppy drive the high nibble defines
;the DST table (0-7) and the low nibble defines the Unit number (0-3).
;When a disk is logged in, the system compares the ID info read off the disk
;to the Type code, base sector numbers and head id bytes in each DST within
;the table assigned to the drive. The first DST that matches is then selected.
;Only uniquely detectable formats can be placed into the same DST table. DSTs
;that only differ by number of cylinders or number of reserved tracks must
;be placed into a seperate DST table. These formats must then be accessed as
;a different physical drive. The low nibble of the channel byte will select
;the same unit number, but the high nibble will select a different DST table.
;The enty point for each DST table must be placed in the following pointer
;table. The high nibble of the Floppy channel byte uses these pointers to
;select which DST table (0-7) to use. (Drives with the same physical
;parameters can share the same DST table.)
dsttbl::
dw dstbla ; Dst 0= 5.25" 48 tpi
dw dstblb ; Dst 1= 5.25" 96 tpi
dw dstblc ; Dst 2= 8"
dw 0,0,0,0,0 ; Dst 3 thru 7 undefined
;------------------------------------------
dstbla:: ;DST table for 5.25" 48tpi floppy
;------------------------------------------
; + + + + kpro2 + + + +
;Kaypro 2, 512 byte sector, SS, DD, 48tpi
type defl mfm or s512
kpro2:: dw kpro4 ; Pointer to next DST in table
db s1024 ; Media type / block size code
dw 195 ; Number of blocks (1 based)
db 2 ; Number of directory blocks
db s512 ; Phy sector size code
dw 10 ; Phy sectors per cylinder
dw 40 ; Cylinders
dw 1 ; Reserved tracks
dw 0 ; Translation table address
db type ; Disk type code
db 1bh ; Gap length
db s0mod ; access side0 only
db 0,0 ; side0 base sector & head id
; + + + + kpro4 + + + +
;Kaypro 4, 512 byte sector, DS, DD, 48tpi
type defl mfm or tsd or s512
kpro4:: dw td482 ; Pointer to next DST in table
db s2048 ; Media type / block size code
dw 197 ; Number of blocks (1 based)
db 2 ; Number of directory blocks
db s512 ; Phy sector size code
dw 10 ; Phy sectors per track
dw 80 ; Tracks
dw 1 ; Reserved tracks
dw 0 ; Translation table address
db type ; Disk type code
db 1bh ; Gap length
db trkmod ; odd tracks on side1
db 0,0 ; side0 base sector & head id
db 10,0 ; side1 base sector & head id
; + + + + td482 + + + +
;Turbodos, 1024 byte sector, DS, DD, 48tpi
type defl mfm or tsd or s1024
td482:: dw td481 ; Disk spec table link pointer
db s2048 ; Media / block size code
dw 200 ; Number of blocks (1 based)
db 2 ; Number of directory blocks
db s1024 ; Physical sector size code
dw 10 ; Physical sectors per cylinder
dw 40 ; Cylinders
dw 0 ; Number of reserved cylinders
dw 0 ; Translation table address
db type ; Disk type code
db 35h ; Gap length
db cylmod ; 2nd half of sectors on side1
db 1,0 ; side0 base sector & head id
db 1,1 ; side1 base sector & head id
; + + + + td481 + + + +
;Turbodos, 1024 byte sector, SS, DD, 48tpi
type defl mfm or s1024
td481:: dw amp48 ; Disk spec table link pointer
db s1024 ; Media type / Block size code
dw 200 ; Number of blocks (1 based)
db 2 ; Number of directory blocks
db s1024 ; Physical sector size code
dw 5 ; Physical sectors per cylinder
dw 40 ; Cylinders
dw 0 ; Reserved cylinders
dw 0 ; Translation table address
db type ; Disk type code
db 35h ; Gap length
db s0mod ; access side0 only
db 1,0 ; side0 base sector & head id
; + + + + amp48 + + + +
;Ampro (MicroMint SB180), 512 byte sector, DS, DD, 48tpi
type defl mfm or tsd or s512
amp48:: dw 0 ; Disk spec table link pointer
db s2048 ; Media type / Block size code
dw 195 ; Number of blocks (1 based)
db 2 ; Number of directory blocks
db s512 ; Physical sector size code
dw 10 ; Physical sectors per track
dw 80 ; Tracks
dw 2 ; Reserved tracks
dw 0 ; Translation table address
db type ; Disk type code
db 1bh ; Gap length
db trkmod ; odd tracks on side1
db 17,0 ; side0 base sector & head id
db 17,1 ; side1 base sector & head id
;------------------------------------------
dstblb:: ;DST table for 5.25" 96tpi floppy
;------------------------------------------
; + + + + td962 + + + +
;Turbodos, 1024 byte sector, DS, DD, 96tpi
type defl mfm or tsd or s1024
td962:: dw td961 ; Link pointer to next dst
db s2048 ; Media type / block size code
dw 400 ; Number of blocks (1 based)
db 4 ; Number of directory blocks
db s1024 ; Physical sector size code
dw 10 ; Physical sectors per cylinder
dw 80 ; Cylinders
dw 0 ; Reserved cylinders
dw 0 ; Xlate table ptr
db type ; Disk type code
db 35h ; Gap
db cylmod ; 2nd half of sectors on side1
db 1,0 ; side0 base sector & head id
db 1,1 ; side1 base sector & head id
; + + + + td961 + + + +
;Turbodos, 1024 byte sector, SS, DD, 96tpi
type defl mfm or s1024
td961:: dw amp96 ; Link pointer to next dst
db s2048 ; Media type / blk size code
dw 200 ; Number of blocks (1 based)
db 2 ; Number of directory blocks
db s1024 ; Phy sect size code
dw 5 ; Phy sectors per cylinder
dw 80 ; Cylinders
dw 0 ; Reserved cylinders
dw 0 ; Xlate table ptr
db type ; Disk type code
db 35h ; Gap
db s0mod ; access side0 only
db 1,0 ; side0 base sector & head id
; + + + + amp96 + + + +
;Ampro (Micromint SB180), 1024 byte sector, SS, DD, 96tpi
type defl mfm or tsd or s1024
amp96:: dw kp96 ; Link pointer to next dst
db s2048 ; Media type / block size code
dw 395 ; Number of blocks (1 based)
db 4 ; Number of directory blocks
db s1024 ; Physical sector size code
dw 5 ; Physical sectors per track
dw 160 ; Tracks
dw 2 ; Reserved tracks
dw 0 ; Xlate table ptr
db type ; Disk type code
db 35h ; Gap
db trkmod ; odd tracks on side1
db 17,0 ; side0 base sector & head id
db 17,1 ; side1 base sector & head id
; + + + + kpro96 + + + +
;Kaypro, 512 byte sector, DS, DD, 96tpi
type defl mfm or tsd or s512
kp96:: dw td5hd ; Pointer to next DST in table
db s4096 ; Media type / block size code
dw 197 ; Number of blocks (1 based)
db 1 ; Number of directory blocks
db s512 ; Phy sector size code
dw 10 ; Phy sectors per track
dw 160 ; Tracks
dw 2 ; Reserved tracks
dw 0 ; Translation table address
db type ; Disk type code
db 1bh ; Gap length
db trkmod ; odd tracks on side1
db 0,0 ; side0 base sector & head id
db 20,0 ; side1 base sector & head id
; + + + + td5hd + + + +
;Turbodos high density two sided format with no reserved tracks,
;1024 byte sector, double-density. (1.28meg)
;(This is identical to the TDOS82 format below except
;it has 3 more cylinders.)
type defl hd or mfm or tsd or s1024
td5hd:: dw icm5hd ; Disk spec table link pointer
db s2048 ; Media type / Block size code
dw 640 ; Total blocks (1 based)
db 4 ; Number of directory blocks
db s1024 ; Physical sector size code
dw 16 ; Physical sectors per cylinder
dw 80 ; Cylinders
dw 0 ; Reserved cylinders
dw 0 ; Translation table address
db type ; Disk type code
db 35h ; Gap length
db cylmod ; cylinder access mode
db 1,0 ; side0 base sector & head id
db 1,1 ; side1 base sector & head id
; + + + + icm5hd + + + +
;Intercontiential Micro Systems high density 2 sided format,
;1 reserved track, 512 byte sector, double-density.
;(This identical to the ICM82 8" format below.)
type defl hd or mfm or tsd or s512
icm5hd::
dw 0 ; Disk spec table link pointer
db s4096 ; Media type / Block size
dw 308 ; Total blocks (1 based)
db 2 ; Number of directory blocks
db s512 ; Physical sector size (2^n*128)
dw 16 ; Physical sectors per track
dw 160 ; Physical tracks per disk
dw 2 ; Reserved tracks
dw 0 ; Translation table address
db type ; Disk type code
db 1bh ; Gap length
db trkmod ; Odd tracks on side 1
db 1,0 ; Side0 base sector & head id
db 1,1 ; Side1 base sector & head id
;------------------------------------------
dstblc:: ;table entry point for 8" floppys
;------------------------------------------
; + + + + tdos82 + + + +
;Turbodos two sided format with no reserved tracks,
;1024 byte sector, double-density. (1.232meg)
type defl mfm or tsd or s1024
tdos82::dw tdos81 ; Disk spec table link pointer
db s2048 ; Media type / Block size code
dw 616 ; Total blocks (1 based)
db 4 ; Number of directory blocks
db s1024 ; Physical sector size code
dw 16 ; Physical sectors per cylinder
dw 77 ; Cylinders
dw 0 ; Reserved cylinders
dw 0 ; Translation table address
db type ; Disk type code
db 35h ; Gap length
db cylmod ; cylinder access mode
db 1,0 ; side0 base sector & head id
db 1,1 ; side1 base sector & head id
; + + + + tdos81 + + + +
;Turbodos one sided format with no reserved tracks,
;1024 byte sector, double-density.
type defl mfm or s1024
tdos81::dw icm82 ; Disk spec table link pointer
db s2048 ; Media type / Block size code
dw 308 ; Total blocks (1 based)
db 3 ; Number of directory blocks
db s1024 ; Physical sector size code
dw 8 ; Physical sectors per cylinder
dw 77 ; Cylinders
dw 0 ; Reserved cylinders
dw 0 ; Translation table address
db type ; Disk type code
db 35h ; Gap length
db s0mod ; Use side0 only
db 1,0 ; side0 base sector & head id
; + + + + icm82 + + + +
;Intercontiential Micro Systems 2 sided format,
;1 reserved track, 512 byte sector, double-density.
type defl mfm or tsd or s512
icm82:: dw ibm81 ; Disk spec table link pointer
db s4096 ; Media type / Block size
dw 308 ; Total blocks (1 based)
db 2 ; Number of directory blocks
db s512 ; Physical sector size (2^n*128)
dw 16 ; Physical sectors per track
dw 154 ; Physical tracks per disk
dw 2 ; Reserved tracks
dw 0 ; Translation table address
db type ; Disk type code
db 1bh ; Gap length
db trkmod ; Odd tracks on side 1
db 1,0 ; Side0 base sector & head id
db 1,1 ; Side1 base sector & head id
; + + + + ibm81 + + + +
;IBM Industry standard single-sided, single-density,
;128 byte sector, 2 reserved tracks.
type defl s128
ibm81:: dw 0 ; Disk spec table link pointer
db s1024 ; Media type / Block size code
dw 243 ; Total blocks (1 based)
db 2 ; Number of directory blocks
db s128 ; Physical sector size code
dw 26 ; Physical sectors per cylinder
dw 77 ; Cylinders
dw 2 ; Reserved cylinders
dw ibmxlt ; Translation table address
db type ; Disk type code
db 7 ; Gap length
db s0mod ; use side0 only
db 1,0 ; side0 base sector & head id
; single-density/single-sided sector translation table
; (Base sector is added to each value so they must be 0 based)
ibmxlt: db 0,6,12,18,24,4,10,16,22
db 2,8,14,20,1,7,13,19,25
db 5,11,17,23,3,9,15,21
end