Skip to content

Latest commit

 

History

History
47 lines (37 loc) · 1.73 KB

mdos-tech.md

File metadata and controls

47 lines (37 loc) · 1.73 KB

Filesystem

MDOS uses single sided or double sided 8-inch soft sectored single density diskettes with the IBM 3740 format: 77 cylinders of 26 sectors of 128 bytes. 2002 sectors for a single sided diskette and 4004 sectors for a double sided diskette.

Space is allocated in clusters. Each cluster has four sectors and is 512 bytes.

Total clusters on a single sided diskette is 500, with two unused sectors left over at the end of the disk. Double-sided diskettes have exactly 1001 clusters.

These sectors are reserved:

Sector 0
Diskette ID block
Sector 1
Cluster Allocation Table (or CAT) bitmap. 1 means allocated. Bit 7 of byte 0 is the first cluster.
Sector 2
Lock-out cluster allocation table
Sectors 3 - 22
Directory - 20 sectors
Sectors 23 - 24
Boot block and MDOS RIB

Each directory entry is 16 bytes, so there can be up to 160 files on a diskette. Each directory entry looks like this:

0 - 7
File name
8 - 9
Suffix
10 - 11
Sector number of first cluster
12 - 13
File attributes
14 - 15
Unused

Sectors within a file are addressed by LSN- Logical Sector Number. LSN $FFFF is the first sector of the first cluster. It contains the the file's RIB- Retrieval Information Block. The first data sector is LSN $0000.

Files are composed of up to 57 contiguous "extents", where each extent can have up to 32 clusters. This works out to a maximum file size of 912 KB (but the largest disk is 500.5 KB).

The RIB contains a list of SDWs- 16-bit words which give the starting cluster number and size of each extent. The RIB also contains the load address and starting execution address of binary files.