You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

410 lines
23 KiB

裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹CPM 50 CPM 51  CPM 52
!: $: $裹: e: %裹:€%: %裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹藺re stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹蚶cribed by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to save
disk space, there are non-bootable form裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system tracks
.sp
.RE
A block is the smallest all裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹藺ts which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space for system tracks.
Note that there is裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹蚩catable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specifi裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹� no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M builds this bitmap in core from the directo裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹蘢ation is not stored on the disk and there are lots of
formats. Accessing a block is performed by accessing its sectors, which
裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹!裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹�, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Each CP/M disk format is dery.
.LP
The directory is a sequence of directory entries (also called extents), which have the following
structure:
.RS
.sp
1 by date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCD time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entry, which contains the update and create ti.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16 . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one directory entry, if it contains more blockon byte 2: archived
.RE
Public files (visible under each user number) are not supported by CP/M
2.2, but (you probably guessed tte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blanks
. format
.sp
.RE
The highest bit of each character of the file name and extension is used
as attribute. The attributes have the me
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-last dir, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Each CP/M disk format is des
than an extent can hold. In this case, more extents are allocated and each
of them is numbered sequentially (extent number). hat by now) there is a patch and some
free CP/M clones support them without any patches.
.LP
The wheel byte is (by default) the br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.br
2 bytes unused
.br
1 byte record count following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)
.br
File name byte 1: public file (P2DOS,ectory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entry
.br
2 bytes unused
.br
8 bytes time stampscribed by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/M 2.2 only supports user numbers from 0\*(en15, but thememory location at 0x4b. If it is
zero, only non-privileged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmlfor this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte values if disk capacity less than 256
K, 8 li ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), background-only commands (Background for last directory entry
.sp
.RE
A time stamp consists of the two dates of the last update and of the creation
of a file. Each.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system tracks
.sp
.RE
A block is the smallest allre is a patch for
extending this to 31 and some free CP/M clones support 0\*(en31 without
patches.
.LP
CP/M 2.2 does not supports (1)
ttle-endian two-byte values else)
.sp
.RE
File name and extension may consist of any printable 7 bit ASCII character
but: \fB< >er II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1: system file
.sp
Extensiocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specifi One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/M 2.2 only supports user numbers from 0\*(en15, but thefor this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte values if disk capacity less than 256
K, 8 li ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), background-only commands (Background no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M builds this bitmap in core from the directo for last directory entry
.sp
.RE
A time stamp consists of the two dates of the last update and of the creation
of a file. Eachcation is not stored on the disk and there are lots of
formats. Accessing a block is performed by accessing its sectors, which
re is a patch for
extending this to 31 and some free CP/M clones support 0\*(en31 without
patches.
.LP
CP/M 2.2 does not supportttle-endian two-byte values else)
.sp
.RE
File name and extension may consist of any printable 7 bit ASCII character
but: \fB< >er II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1: system file
.sp
Extensiry.
.LP
The directory is a sequence of directory entries (also called extents), which have the following
structure:
.RS
.sp
1 by date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCDare stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entry, which contains the update and create ti . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one directory entry, if it contains more blockon byte 2: archived
.RE
Public files (visible under each user number) are not supported by CP/M
2.2, but (you probably guessed tte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blanks
. format
.sp
.RE
The highest bit of each character of the file name and extension is used
as attribute. The attributes have the
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to save
disk space, there are non-bootable formme
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-last dirs
than an extent can hold. In this case, more extents are allocated and each
of them is numbered sequentially (extent number). hat by now) there is a patch and some
free CP/M clones support them without any patches.
.LP
The wheel byte is (by default) the br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.br
2 bytes unused
.br
1 byte record count following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)
.br
File name byte 1: public file (P2DOS,ats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space for system tracks.
Note that there isectory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entry
.br
2 bytes unused
.br
8 bytes time stampmemory location at 0x4b. If it is
zero, only non-privileged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmlte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blanks
.
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to save
disk space, there are non-bootable formme
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-last dir.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system tracks
.sp
.RE
A block is the smallest alls
than an extent can hold. In this case, more extents are allocated and each
of them is numbered sequentially (extent number). s (1)
br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.br
2 bytes unused
.br
1 byte record count ats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space for system tracks.
Note that there isectory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entry
.br
2 bytes unused
.br
8 bytes time stampocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specifi One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/M 2.2 only supports user numbers from 0\*(en15, but the.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16for this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte values if disk capacity less than 256
K, 8 li no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M builds this bitmap in core from the directo for last directory entry
.sp
.RE
A time stamp consists of the two dates of the last update and of the creation
of a file. Eachcation is not stored on the disk and there are lots of
formats. Accessing a block is performed by accessing its sectors, which
re is a patch for
extending this to 31 and some free CP/M clones support 0\*(en31 without
patches.
.LP
CP/M 2.2 does not support, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Each CP/M disk format is dettle-endian two-byte values else)
.sp
.RE
File name and extension may consist of any printable 7 bit ASCII character
but: \fB< >ry.
.LP
The directory is a sequence of directory entries (also called extents), which have the following
structure:
.RS
.sp
1 by date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCDare stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entry, which contains the update and create tiscribed by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
. , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one directory entry, if it contains more block format
.sp
.RE
The highest bit of each character of the file name and extension is used
as attribute. The attributes have the hat by now) there is a patch and some
free CP/M clones support them without any patches.
.LP
The wheel byte is (by default) the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)
.br
File name byte 1: public file (P2DOS,memory location at 0x4b. If it is
zero, only non-privileged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpml ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), background-only commands (Backgrounds (1)
er II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number) are not supported by CP/M 2.2, but (you probably guessed t