I've spent a fair bit of time staring at DPT's so we'll see if I can help..
On Wed, Feb 10, 2021 at 7:35 AM Enrico email.it via cctalk <
cctalk at classiccmp.org> wrote:
Hi at all. I have few questions on how the geometry is
calculated.
1) I would like to understand. this table represents an 3740 IBM standard
disk
D: Drive Characteristics
1944: 128 Byte Record Capacity
243: Kilobyte Drive Capacity
64: 32 Byte Directory Entries
64: Checked Directory Entries
128: Records / Extent
8: Records / Block
26: Sectors / Track
2: Reserved Tracks
Its DPT is:
1A00 03 07 00 F200 3F00 C000 1000 0200
Or:
SPT = 001A = The number of 128 byte records per track.
BSH = 03 = The block shift count.
BLM = 07 = The block mask.
EXM = 00 = The extent mask.
DSM = 00F2 = Disk storage maximum (the largest block number).
DRM = 003F = Directory maximum (the largest directory entry).
DAB = 00C0 = Directory Allocation Block AL1: = 00 & AL0: = C0 [0C0H]
CKS = 0010 = Directory check size.
OFF = 0002 = Track offset (number of reserved tracks).
I already know there are 26x128x77 = 256256 bytes
But how does this table represent them?
The disk is blocked into 1K blocks (8*128 bytes), and there are 243 blocks,
starting after the reserved tracks (2).
So there is 256256 total capacity -- 2*128*26 bytes on the reserved tracks,
243*8*128 bytes usable, and 768 bytes of stranded capacity, since you can't
have a partial block.
The directory starts on block 0 and occupies 2 blocks. For AL0 and AL1,
the word is 0C000h, which has two 1 bits, marking the first two blocks as
directory blocks. This matches up with DRM, which says there are 40h
directory entries (32 bytes each), for a total of 2048 bytes.
1944 sectors x 128 bytes = 248832 bytes = 243x1024 is
the capacity actually
available for the files
The system takes 26 sects/track x128 bytes/sect x2 sects= 6656 bytes
So 256256 - 248832 = 768 bytes
They are for the directory
but how does this number come out?
No, that 768 bytes is just unusable space.
2) I have instead this table of a BASF 6104 Floppy
Disk Drive managed
through a Shugart SA-1403 SASI Controller:
B: Drive Characteristics
9216: 128 Byte Record Capacity
1152: Kilobyte Drive Capacity
64: 32 Byte Directory Entries
64: Checked Directory Entries
2048: Records / Extent
128: Records / Block
512: Sectors / Track
1: Reserved Tracks
Its DPT is:
0002 07 7F 0F 4700 3F00 8000 1000 0100
SPT = 0200 = The number of 128 byte records per track.
BSH = 07 = The block shift count.
BLM = 7F = The block mask.
EXM = 0F = The extent mask.
DSM = 0047 = Disk storage maximum (the largest block number).
DRM = 003F = Directory maximum (the largest directory entry).
DAB = 0080 = Directory Allocation Block AL1: = 00 & AL0: = C0 [0C0H]
CKS = 0010 = Directory check size.
OFF = 0001 = Track offset (number of reserved tracks).
Oddly, the controller seems to manage the drive as 32 sect/tracks x256
bytes/setc x77 trakcs x2 heads
In this case I don't know exactly the parameters of the diskette
9216 sectors x 128 bytes = 1.179.648 bytes = 1.152x1024 is the capacity
actually available for the files
The system takes 512 setcs/track x32 bytes/sect x1 tracks = 16.384 bytes
In case 1 the gross capacity is 256256 while in case 2 which is it?
You have a total of 512*128 bytes per track - 64K. I assume the SASI
controller is remapping things around, and the disk doesn't physically have
tracks this big.
Each block is 128*128 bytes, or 16k And there's a total of one reserved
track (64K) plus 72 blocks (1152K), for a total disk size of 1245184 bytes
(1216K).
The directory is all in the first block (16KB), with a maximum of 64
entries. I'd guess that the floppy was meant to hold backup or install sets
or something, and not lots of small files, as this sorta layout lets you
minimize disk overhead if you do that.
3) what could be the correct parameters to insert in
22disk in order to
transfer files between a type 2 disk and msdos?
You will probably have some issues directly using the floppy disk on a PC
with those parameters, since I suspect the controller is remapping things
and they don't line up on track boundaries. If you can dump a raw image
with eg imagedisk, you can probably get that to work with 22disk. I don't
know enough about 22disk to help you, but its author is on the list and may
be able to help.
Pat