Files
RomWBW/Tools/unix/cpmtools/badfs/hugecom
b1ackmai1er 78f65522b7 Dev (#108)
* added hack to handle tunes

* quiet clean

* added chmod for execution

* suppress warnings

* Multi-boot fixes

* the windows build somehow thinks that these filesystems are cpm3.

* credit and primitive instructions

* Update sd.asm

Cosmetic fix.

* make compile shut up about conditionals

* Add bin2asm for linus and update build to process font files under linix

* fixed quoted double quote bug, added tests

* added tests

* added bin2asm for font file source creation

* Revert linux bin2asm font stuff

* added rule for font source generation

* build fonts

* added directory mapping cache.  if the same directory is being hit
as last run, we don't need to rebuild the map.  will likely break if
you are running more than one at a time, in that the cache will be
ineffective.  also, if the directory contents change, this will also break.

* removed strip.  breaks osx

* added directory tag so . isn't matched all over the place

* added real cache validation

* fixed build

* this file is copied from optdsk.lib or optcmd.lib

* install to ../HBIOS

* prerequisite verbosity

* diff soft failure and casefn speedup

* added lzsa

* added lzsa

* removed strip. breaks on osx

* added clobber

* added code to handle multiple platform rom builds with rom size override

* added align and 0x55 hex syntax

* default to hd64180

* added N8 capability

* added SBC_std.rom to default build

* added support for binary diff

* diff fixes

* clean, identical build.  font source generator emitted .align.  this does not match the windows build

* Upgrade NZCOM to latest

* Misc. Cleanup

* fixed expression parser bug : ~(1|2) returned 0xfe

* added diff build option

* Update Makefile

Makefile enhancement to better handle ncurses library from Bob Dunlop.

* Update sd.asm

Back out hack for uz80as now that Curt fixed it.

* Misc. Cleanup

* UNA Catchup

UNA support was lacking some of the more recent behavior changes.  This corrects most of it.

* Add github action for building RomWBW

* Bump Pre-release Version

* Update build.yml

Added "make clean" which will remove temporary files without removing final binary outputs.

* Update Makefile

Build all ROM variants by default in Linux/Mac build.

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update for GitHub Build

Case issue in TASM includes showing up in GitHub build.  This should correct that.

* Added an gitignore files to exclude generated files

* Removed Tunes/clean.cmd and Tunes/ReadMe.txt - as make clean removes them

* Build.sh: marked as executable

chmod +x Build.sh

* Fix to HBIOS/build.sh

When adding files to rom disk, if files were missing, it would error out.

It appears the intent is to skip non-existing files.

Updated to log out correctly for missing files - and continue operation.

* Update Microsoft NASCOM BASIC.docx

Nascom manual, text version by Jan S (full name unknown)

* Fix issue with Apps/Tune not making

If dest directory does not exist, fails to make Apps

* Create ReadMe.txt

* Update Makefile

* Update Build.sh

* Make .gitignores for Tools/unix more specific

* cpmtools Update

Updated cpmtools applications (Windows only).  Removed hack in diskdefs that is no longer required.

* HBIOS Proxy Temp Stack Enhancement

Reuse the bounce buffer area as the temporary stack space required briefly in HBX_INVOKE when transitioning banks.  Increases size of temporary stack space to 64 bytes.

* Update ReadMe.txt

* HBIOS - clean up TMPSTK

* Update hbios.asm

Minor cosmetic changes.

* Build Process Updates

Minor udpates to build process to improve consistency between Windows and Mac/Linux builds.

* Update hbios.asm

Add improved interrupt protection to HBIOS PEEK, POKE, and BNKCPY functions.

* hbios - wrap hbx_bnkcpy

* hbios - adjust hbx_peek hbx_poke guards

* Update hbios.asm

Adjusted used of DI/EI for PEEK and POKE to regain a bit of INTSTK space.  Added code so that HB_INVBNK can be used as a flag indicating if HBIOS is active, $FF is inactive, anything else means active.

* Add HBIOS MuTex

* Initial Nascom basic ecb-vdu graphics

set and reset for 80x25b screen with 256 character mod

* Finalize Pre-release 34

Final support for FreeRTOS

* Update nascom.asm

Optimization, cleanup, tabs and white spaces

* IDE & PPIDE Cleanup

* Clean up

Make version include files common.

* Update Makefile

* Update Makefile

* Build Test

* Build Test

* Build Fixes

* Update nascom.asm

Cleanup

* Update nascom.asm

Optimization

* hbios - temp stack tweak

* Update hbios.asm

Comments on HBX_BUF usage.

* Update nascom.asm

Optimization

* Update nascom.asm

Setup ECB-VDU build option, remove debug code

* Update nascom.asm

Set default build. update initialization

* Update nascom.asm

Make CLS clear vdu screen

* Update nascom.asm

Fixup top screen line not showing

* Add SC131 Support

Also cleaned up some ReadMe files.

* HBIOS SCZ180 - remove mutex special files

* HBIOS SCZ180 - adjust mutex comment

* Misc. Cleanup

Includes some minor improvements to contents in some disk images.

* Delete FAT.COM

Changing case of FAT.COM extension to lowercase.

* Create FAT.com

Completing change of case in extension of FAT.com.

* Update Makefile

Remove ROM variants that just have the HBIOS MUTEX enabled.  Users can easily enable this in a custom build.

* Cleanup

Removed hack from Images Makefile.  Fixed use of DEFSERCFG in various places.

* GitHub CI Updates

Adds automation of build and release assets upon release.

* Prerelease 36

General cleanup

* Build Script Cleanups

* Config File Cleanups

* Update RomWBW Architecture

General refresh for v2.9.2

* Update vdu.asm

Removed a hack in VDU driver that has existed for 8 years.  :-)

* Fix CONSOLE Constant

Rename CIODEV_CONSOLE constant to CIO_CONSOLE because it is a unit code, not a device type code.

Retabify TastyBasic.

* Minor Bug Fixes

- Disk assignment edge case
- CP/M 3 accidental fall thru
- Cosmetic updates

* Update util.z80

* Documentation Cleanup

* Documentation Update

* Documentation Update

* Documentation Updates

* Documentation Updates

* Create Common.inc

* Documentation Updates

* Documentation Updates

* doc - a few random fixes

* Documentation Cleanup

* Fix IM 0 Build Error in ACIA

* Documentation Updates

* Documentation Cleanup

* Remove OSLDR

The OSLDR application was badly broken and almost impossible to fix with new expanded OS support.

* Bug Fixes

- Init RAM disk at boot under CP/M 3
- Fix ACR activation in TUNE

* FD Motor Timeout

- Made FDC motor timeout smaller and more consistent across different speed CPUs
- Added "boot" messaging to RTC

* Cleanup

* Cleanup

- Fix SuperZAP to work under NZCOM and ZPM3
- Finalize standard config files

* Minor Changes

- Slight change to ZAP configuration
- Added ZSDOS.ZRL to NZCOM image

* ZDE Upgrade

- Upgraded ZDE 1.6 -> 1.6a

* Config File Tuning

* Pre-release for Testing

* cfg - mutex consistent config language

* Bump to Version 3.0

* Update SD Card How-To

Thanks David!

* update ReadMe.md

Remove some odd `\`.

* Update ReadMe.txt

* Update ReadMe.md

* Update Generated Doc Files

* Improve XModem Startup

- Extended startup timeout for XM.COM so that it doesn't timeout so quickly while host is selecing a file to send.
- Updated SD Card How-To from David Reese.

* XModem Timing Refinements

* TMS Driver Z180 Improvements

- TMS driver udpated to insert Z180 I/O waitstates internally so other code can run at full speed.
- Updated How-To documents from David.
- Fixed TUNE app to properly restore Z180 I/O waitstates after manipulating them.

* CLRDIR and ZDE updates

- CLRDIR has been updated by Max Scane for CP/M 3 compatibility.
- A minor issue in the preconfigured ZDE VT100 terminal escape sequences was corrected.

* Fix Auto CRT Console Switch on CP/M 3

* Handle lack of RTC better

DSRTC driver now correctly returns an error if there is no RTC present.

* Minor RTC Updates

* Finalize v3.0.1

Cleanup release for v3.0

* New ROMLDR and INTRTC driver

- Refactored romldr.asm
- Added new periodic timer based RTC driver

* CP/M 3 Date Hack

- Hack to allow INTRTC to increment time without destroying the date

* Update romldr.asm

Work around minor Linux build inconsistency

* Update Apps for New Version

* Revert "Update Apps for New Version"

This reverts commit ad80432252.

* Revert "Update romldr.asm"

This reverts commit 4a9825cd57.

* Revert "CP/M 3 Date Hack"

This reverts commit 153b494e61.

* Revert "New ROMLDR and INTRTC driver"

This reverts commit d9bed4563e.

* Start v3.1 Development

* Update FDISK80.COM

Updated FDISK80 to allow reserving up to 256 slices.

* Update sd.asm

For Z180 CSIO, ensure that xmit is finished, before asserting CS for next transaction.

* Add RC2014 UART, Improve SD protocol fix

- RC2014 and related platforms will autodetect a UART at 0xA0 and 0xA8
- Ensure that CS fully brackets all SD I/O

* ROMLDR Improvements

.com files can now be started from CP/M and size of .com files has been reduced so they always fit.

* Update commit.yml

Run commit build in all branches

* Update commit.yml

Run commit build for master and dev branches

* Improved clock driver auto-detect/fallback

* SIO driver now CTC aware

The SIO driver can now use a CTC (if available) to provide much more flexible baud rate programming.

* CTC driver fine tuning

* Update xmdm125.asm

Fixed a small issue in core XM125 code that caused a file write error message to not be displayed when it should be.

* CF Card compatibility improvement

Older CF Cards did not reset IDE registers to defaults values when reset.  Implemented a work around.

* Update ACIA detection

ACIA should no longer be detected if there is also a UART module in the system.

* Handle CTC anomaly

Small update to accommodate CTC behavior that occurs when the CTC trigger is more than half the CTC clock.

* Update acia.asm

Updated ACIA detection to use primary ACIA port instead of phantom port.

* Update acia.asm

Fix bug in ACIA detection.

Thanks Alan!

* MacOS Build Improvement

Build script updated to improve compatibility with MacOS.

Credit to Fredrik Axtelius for this.

* HBIOS Makefile - use env vars for target

Allow build ROM targets to be restricted to just one platform thru use of ENV vars:

ROM_PLATFORM - if defined to a known platform, only this platform is build - defaults to std config
ROM_CONFIG - sets the desired platform config - defaults to std

if the above ENVs are not defined, builds all ROMs

* Added some more gitignores

* Whitespace changes (crlf)

* HBIOS: Force the assembly to fail for vdu drivers if function table count is not correct

* Whitespace: trailing whitespaces

* makefile: updated some make scripts to use  when calling subdir makefiles

* linux build: update to Build.sh fix for some platforms

The initialization of the Rom dat file used the pipe (|) operator to build an initial empty file.

But the pipe operator | may sometimes return a non-zero exit code for some linux platforms, if the
the streams are closed before dd has fully processed the stream.

This issue occured on a travis linux ubuntu image.

Solution was to change to redirection.

* Bump version

* Enhance CTC periodic timer

Add ability to use TIMER mode in CTC driver to generate priodic interrupts.

* HBIOS: Added support for sound drivers

New sound driver support with initial support for the SN76489 chip

New build configuration entry:
* SN76489ENABLE

Ports are currently locked in with:
* SN76489_PORT_LEFT       .EQU    $FC     ; PORTS FOR ACCESSING THE SN76489 CHIP (LEFT)
* SN76489_PORT_RIGHT      .EQU    $F8     ; PORTS FOR ACCESSING THE SN76489 CHIP (LEFT)

* Miscellaneous Cleanup

No functional changes.

Co-authored-by: curt mayer <curt@zen-room.org>
Co-authored-by: Wayne Warthen <wwarthen@gmail.com>
Co-authored-by: ed <linux@maidavale.org>
Co-authored-by: Dean Netherton <dnetherton@dius.com.au>
Co-authored-by: ed <ed@maidavale.org>
Co-authored-by: Phillip Stevens <phillip.stevens@gmail.com>
Co-authored-by: Dean Netherton <dean.netherton@gmail.com>
2020-04-24 06:17:22 +08:00

2314 lines
75 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹FOO COM€
FOO COM€ !FOO COM€"#$%&'()*+,-./01FOO COM€23456789:;<=>?@A裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹are stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹scribed by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
FOO COMBC裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹
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裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹ats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space for system tracks.
Note that there is裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹ocatable 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裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹cation 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 tiary 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Each CP/M disk format . , ; : = ? * [ ]\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 is described by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Blocks
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 stamp size
.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system tracks
.sp
.RE
A block is the smalle 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. Eachst allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format sre 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)
.\" 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 "Januttle-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
Extensipecification is not stored on the disk and there are lots of
formats. Accessing a block is performed by accessing its sectors, ut there 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 s, 8 little-endian two-byte values else)
.sp
.RE
File name and extension may consist of any printable 7 bit ASCII character
but: grounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1: system file
.sp
Eirectory.
.LP
The directory is a sequence of directory entries (also called extents), which have the following
structure:
.RS
.s Each 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 which
are stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (optional)
.br
Directoupport time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entry, which contains the update and cre\fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one directory entry, if it contains morextension byte 2: archived
.RE
Public files (visible under each user number) are not supported by CP/M
2.2, but (you probably guep
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blin BCD format
.sp
.RE
The highest bit of each character of the file name and extension is used
as attribute. The attributes havry
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to save
disk space, there are non-bootablate time
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-la blocks
than an extent can hold. In this case, more extents are allocated and each
of them is numbered sequentially (extent numssed that by now) there is a patch and some
free CP/M clones support them without any patches.
.LP
The wheel byte is (by defaultanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.br
2 bytes unused
.br
1 byte record e the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)
.br
File name byte 1: public file (e formats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space for system tracks.
Note that thst directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entry
.br
2 bytes unused
.br
8 bytes timeber). 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, b) the memory location at 0x4b. If it is
zero, only non-privileged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.Icount for this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte values if disk capacity less than 256
KP2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), background-only commands (Backere is no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M builds this bitmap in core from the d stamp 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.R cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5ecord count for this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte values if disk capacity less thanhat there is no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M builds this bitmap in core froms time stamp for last directory entry
.sp
.RE
A time stamp consists of the two dates of the last update and of the creation
of armat specification is not stored on the disk and there are lots of
formats. Accessing a block is performed by accessing its secn15, but there 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 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Each CP/M disk 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extension may consist of any printable 7 bit ASCII character the directory.
.LP
The directory is a sequence of directory entries (also called extents), which have the following
structure:
file. Each 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 mtors, which
are stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (optional)
.br
D not support time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entry, which contains the update aformat is described by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one directory entry, if it contain.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes file name, padded winute in BCD format
.sp
.RE
The highest bit of each character of the file name and extension is used
as attribute. The attributirectory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to save
disk space, there are non-bnd create time
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for th
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system tracks
.sp
.RE
A block is the s more blocks
than an extent can hold. In this case, more extents are allocated and each
of them is numbered sequentially (exteith blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.br
2 bytes unused
.br
1 byte res have the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)
.br
File name byte 1: public ootable formats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space for system tracks.
Note tird-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entry
.br
2 bytes unused
.br
8 bytesmallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
font number). 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\*(efile (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), background-only commands non-bootable formats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space for system tracks.
s the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, t (extent number). One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/M 2.2 only supports user numbers from1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en -
.if t .ds en \(en
.THbyte record count for this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte values if disk capacity les (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1: system fileNote that there is no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M builds this bitmap in corhis
format specification is not stored on the disk and there are lots of
formats. Accessing a block is performed by accessing i 0\*(en15, but there is a patch for
extending this to 31 and some free CP/M clones support 0\*(en31 without
patches.
.LP
CP/M 2. CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Each CP/Ms than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extension may consist of any printable 7 bit ASCII cha
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number) are not supported by CP/M
2.2, but (you probabe from the directory.
.LP
The directory is a sequence of directory entries (also called extents), which have the following
structs sectors, which
are stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (optional)2 does not support time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entry, which contains the up disk format is described by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectoracter
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one directory entry, if it cly guessed that by now) there is a patch and some
free CP/M clones support them without any patches.
.LP
The wheel byte is (by dture:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes file name, pa
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to save
disk space, there aredate and create time
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp rs
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system tracks
.sp
.RE
A block iontains more blocks
than an extent can hold. In this case, more extents are allocated and each
of them is numbered sequentiallyefault) the memory location at 0x4b. If it is
zero, only non-privileged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (dded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.br
2 bytes unused
.br
1 for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entry
.br
2 bytes unused
.br
sectors
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system tracks
.sp
.RE
A b (by default) the memory location at 0x4b. If it is
zero, only non-privileged commands may be executed.
.SH "SEE ALSO"
.IR mkfsme, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.br
2 bytes unused
ublic file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), background-only core are non-bootable formats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space for system tr8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists of the two dates of the last update and of the creatiolock is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunat.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en -
.if t .ds en \(.br
1 byte record count for this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte values if disk capacimmands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1: systeacks.
Note that there is no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M builds this bitmap n
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
.br
1 byte hour in BCD format
.br
1 ely, this
format specification is not stored on the disk and there are lots of
formats. Accessing a block is performed by accesen
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Eacty less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extension may consist of any printable 7 bit ASCm file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number) are not supported by CP/M
2.2, but (you in core from the directory.
.LP
The directory is a sequence of directory entries (also called extents), which have the followingbyte minute in BCD format
.sp
.RE
The highest bit of each character of the file name and extension is used
as attribute. The atsing its sectors, which
are stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (opth CP/M disk format is described by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number ofII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one directory entry, iprobably guessed that by now) there is a patch and some
free CP/M clones support them without any patches.
.LP
The wheel byte is
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes file natributes have the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)
.br
File name byte 1: pional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to save
disk space, thef it contains more blocks
than an extent can hold. In this case, more extents are allocated and each
of them is numbered sequen (you probably guessed that by now) there is a patch and some
free CP/M clones support them without any patches.
.LP
The wheel bThe attributes have the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)
.br
File name byts (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to save
disk spacstamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entry
.br
2 bytes unuseber of sectors
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system tracks
.sp
.tially (extent number). One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/M 2.2 only supports user numberyte is (by default) the memory location at 0x4b. If it is
zero, only non-privileged commands may be executed.
.SH "SEE ALSO"
.Ie 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), background-oe, there are non-bootable formats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space for sysd
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists of the two dates of the last update and of the cRE
A block is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfos from 0\*(en15, but there is a patch for
extending this to 31 and some free CP/M clones support 0\*(en31 without
patches.
.LP
CR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en -
.if t .dsnly commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1:tem tracks.
Note that there is no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M builds this breation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
.br
1 byte hour in BCD format
rtunately, this
format specification is not stored on the disk and there are lots of
formats. Accessing a block is performed byP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entry, which contains en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTI system file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number) are not supported by CP/M
2.2, butitmap in core from the directory.
.LP
The directory is a sequence of directory entries (also called extents), which have the fol.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character of the file name and extension is used
as attribute. accessing its sectors, which
are stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System trackthe update and create time
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte status
.br
8 bytes time ON
Each CP/M disk format is described by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Numlowing
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character of the file name and extension is used
as attribtains the update and create time
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte status
.br
8 bytesCRIPTION
Each CP/M disk format is described by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.try, if it contains more blocks
than an extent can hold. In this case, more extents are allocated and each
of them is numbered 2, but (you probably guessed that by now) there is a patch and some
free CP/M clones support them without any patches.
.LP
The wile name, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.br
2 bytes uute. The attributes have the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)
.br
File na time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entry
.br
2 bytesbr
Number of sectors
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system trackssequentially (extent number). One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/M 2.2 only supports user heel byte is (by default) the memory location at 0x4b. If it is
zero, only non-privileged commands may be executed.
.SH "SEE ALnused
.br
1 byte record count for this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte values if disk me byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), backgr unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists of the two dates of the last update and of
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes.numbers from 0\*(en15, but there is a patch for
extending this to 31 and some free CP/M clones support 0\*(en31 without
patches.SO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en -
.ifcapacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extension may consist of any printable 7 bound-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension b the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
.br
1 byte hour in BCD f Unfortunately, this
format specification is not stored on the disk and there are lots of
formats. Accessing a block is perfor
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entry, which con t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one directory enyte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number) are not supported by CP/M
2.med by accessing its sectors, which
are stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
Systemtches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entry, while 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one directsion byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number) are not supported by Che following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 b BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character of the file name and extension is used
as tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to save
disch contains the update and create time
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte status
.br
8ory entry, if it contains more blocks
than an extent can hold. In this case, more extents are allocated and each
of them is numP/M
2.2, but (you probably guessed that by now) there is a patch and some
free CP/M clones support them without any patches.
.LPytes file name, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.br
2 battribute. The attributes have the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)
.br
Fk space, there are non-bootable formats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the space f bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entry
.br
2bered sequentially (extent number). One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/M 2.2 only supports
The wheel byte is (by default) the memory location at 0x4b. If it is
zero, only non-privileged commands may be executed.
.SH "ytes unused
.br
1 byte record count for this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte values ifile name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), or system tracks.
Note that there is no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M builds bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists of the two dates of the last update user numbers from 0\*(en15, but there is a patch for
extending this to 31 and some free CP/M clones support 0\*(en31 without
paSEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extension may consist of any printabbackground-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extenthis bitmap in core from the directory.
.LP
The directory is a sequence of directory entries (also called extents), which have tand of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
.br
1 byte hour in -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system format
.ues if disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extension may consist of any puilds this bitmap in core from the directory.
.LP
The directory is a sequence of directory entries (also called extents), which pdate and of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
.br
1 byte hperformed by accessing its sectors, which
are stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
out
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directory entrSH DESCRIPTION
Each CP/M disk format is described by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number of trrintable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more than one have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestamps)
.our in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character of the file name and extension is usSystem tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In order to say, which contains the update and create time
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte statusacks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved system directory entry, if it contains more blocks
than an extent can hold. In this case, more extents are allocated and each
of them br
8 bytes file name, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this file
.ed
as attribute. The attributes have the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgrounder II)ve
disk space, there are non-bootable formats which omit those system tracks.
The term \fIdisk capacity\fP always excludes the s
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directory entrytracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 is numbered sequentially (extent number). One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/M 2.2 only subr
2 bytes unused
.br
1 byte record count for this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 byte val
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date stamp (ZSpace for system tracks.
Note that there is no bitmap or list for free blocks. When accessing a
drive for the first time, CP/M b
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists of the two dates of the last ubytes. Unfortunately, this
format specification is not stored on the disk and there are lots of
formats. Accessing a block is pports user numbers from 0\*(en15, but there is a patch for
extending this to 31 and some free CP/M clones support 0\*(en31 withDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-only
.br the space for system tracks.
Note that there is no bitmap or list for free blocks. When accessing a
drive for the first time, 16384 bytes. Unfortunately, this
format specification is not stored on the disk and there are lots of
formats. Accessing a blonly supports user numbers from 0\*(en15, but there is a patch for
extending this to 31 and some free CP/M clones support 0\*(en3.ds en -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file system fote values if disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extension may consist of
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number) are not supporteCP/M builds this bitmap in core from the directory.
.LP
The directory is a sequence of directory entries (also called extents), ck is performed by accessing its sectors, which
are stored with the given logical skew.
.LP
A CP/M disk contains three areas:
.R1 without
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are stored in
each fourth directorrmat
.SH DESCRIPTION
Each CP/M disk format is described by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
Number any printable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use more thad by CP/M
2.2, but (you probably guessed that by now) there is a patch and some
free CP/M clones support them without any patchewhich have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> timestaS
.sp
System tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. In ordery entry, which contains the update and create time
stamps for the files in the previous three directory entries:
.RS
.sp
1 byte of tracks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Number of reserved sn one directory entry, if it contains more blocks
than an extent can hold. In this case, more extents are allocated and each
ofs.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it is
zero, only non-privileged commands may be executed.mps)
.br
8 bytes file name, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent number for this to save
disk space, there are non-bootable formats which omit those system tracks.
The term \fIdisk capacity\fP always excludesstatus
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last directoryystem tracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and them is numbered sequentially (extent number). One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/M 2.2 o
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n file
.br
2 bytes unused
.br
1 byte record count for this extent (a record contains 128 bytes)
.br
16 bytes block pointers (16 by entry
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists of the two dates of the rved system tracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 819cuted.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do not know \(en
this file
.br
2 bytes unused
.br
1 byte record count for this extent (a record contains 128 bytes)
.br
16 bytes block pointers mp (ZSDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: read-oncludes the space for system tracks.
Note that there is no bitmap or list for free blocks. When accessing a
drive for the first last update and of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
.br
1 2 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and there are lots of
formats. Accessing.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and file sys(16 byte values if disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extension may consly
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number) are not sutime, CP/M builds this bitmap in core from the directory.
.LP
The directory is a sequence of directory entries (also called extebyte hour in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character of the file name and extension a block is performed by accessing its sectors, which
are stored with the given logical skew.
.LP
A CP/M disk contains three aretem format
.SH DESCRIPTION
Each CP/M disk format is described by the following specific sizes:
.RS
.sp
Sector size in bytes
.br
ist of any printable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may use mopported by CP/M
2.2, but (you probably guessed that by now) there is a patch and some
free CP/M clones support them without any nts), which have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 \(-> t is used
as attribute. The attributes have the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backgroundas:
.RS
.sp
System tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itself. InNumber of tracks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Number of resere than one directory entry, if it contains more blocks
than an extent can hold. In this case, more extents are allocated and epatches.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it is
zero, only non-privileged commands may be exeimestamps)
.br
8 bytes file name, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent number forer II)
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: date sta order to save
disk space, there are non-bootable formats which omit those system tracks.
The term \fIdisk capacity\fP always exach
of them is numbered sequentially (extent number). One extent may store up to
128 records, thus using at most 16 K.
.LP
CP/Mt any patches.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it is
zero, only non-privileged commands may grounder II)
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name byte 2: daf. In order to save
disk space, there are non-bootable formats which omit those system tracks.
The term \fIdisk capacity\fP alwectory entry
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists of the two dates of reserved system tracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 409 2.2 only supports user numbers from 0\*(en15, but there is a patch for
extending this to 31 and some free CP/M clones support 0be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do not knowte stamp (ZSDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension byte 0: rays excludes the space for system tracks.
Note that there is no bitmap or list for free blocks. When accessing a
drive for the f the last update and of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-01-1978
6, 8192 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and there are lots of
formats. Acc\*(en31 without
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are stored in
each fourth di \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk and fiead-only
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number) are first time, CP/M builds this bitmap in core from the directory.
.LP
The directory is a sequence of directory entries (also calle.br
1 byte hour in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character of the file name and extessing a block is performed by accessing its sectors, which
are stored with the given logical skew.
.LP
A CP/M disk contains thrrectory entry, which contains the update and create time
stamps for the files in the previous three directory entries:
.RS
.sp
1le system format
.SH DESCRIPTION
Each CP/M disk format is described by the following specific sizes:
.RS
.sp
Sector size in bytenot supported by CP/M
2.2, but (you probably guessed that by now) there is a patch and some
free CP/M clones support them withoud extents), which have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 0x21 ension is used
as attribute. The attributes have the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte (Backee areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/M itsel byte status
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-last dirs
.br
Number of tracks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Number o\(-> timestamps)
.br
8 bytes file name, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extent numbnd extension is used
as attribute. The attributes have the following meaning:
.RS
.sp
File name byte 0: requires set wheel byte
.sp
1 byte status
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for second-lan bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
.br
Nu and each
of them is numbered sequentially (extent number). One extent may store up to
128 records, thus using at most 16 K.
.Lwithout any patches.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it is
zero, only non-privileged commander for this file
.br
2 bytes unused
.br
1 byte record count for this extent (a record contains 128 bytes)
.br
16 bytes block poi (Backgrounder II)
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File name bytest directory entry
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists of the two dmber of reserved system tracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 204P
CP/M 2.2 only supports user numbers from 0\*(en15, but there is a patch for
extending this to 31 and some free CP/M clones sups may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs which do nonters (16 byte values if disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extension ma 2: date stamp (ZSDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extension bytates of the last update and of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) days since 01-018, 4096, 8192 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and there are lots of
formatsport 0\*(en31 without
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are stored in
each fout know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/M disk y consist of any printable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A file may e 0: read-only
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user number-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character of the file name a. Accessing a block is performed by accessing its sectors, which
are stored with the given logical skew.
.LP
A CP/M disk contairth directory entry, which contains the update and create time
stamps for the files in the previous three directory entries:
.RSand file system format
.SH DESCRIPTION
Each CP/M disk format is described by the following specific sizes:
.RS
.sp
Sector size iuse more than one directory entry, if it contains more blocks
than an extent can hold. In this case, more extents are allocated) are not supported by CP/M
2.2, but (you probably guessed that by now) there is a patch and some
free CP/M clones support them ns three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader and CP/Mch fourth directory entry, which contains the update and create time
stamps for the files in the previous three directory entriee may use more than one directory entry, if it contains more blocks
than an extent can hold. In this case, more extents are allnumber) are not supported by CP/M
2.2, but (you probably guessed that by now) there is a patch and some
free CP/M clones support 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte extenname and extension is used
as attribute. The attributes have the following meaning:
.RS
.sp
File name byte 0: requires set whee itself. In order to save
disk space, there are non-bootable formats which omit those system tracks.
The term \fIdisk capacity\s:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for secocated and each
of them is numbered sequentially (extent number). One extent may store up to
128 records, thus using at most 16 them without any patches.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it is
zero, only non-privileged ct number for this file
.br
2 bytes unused
.br
1 byte record count for this extent (a record contains 128 bytes)
.br
16 bytes blol byte (Backgrounder II)
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
File namfP always excludes the space for system tracks.
Note that there is no bitmap or list for free blocks. When accessing a
drive foond-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists of the K.
.LP
CP/M 2.2 only supports user numbers from 0\*(en15, but there is a patch for
extending this to 31 and some free CP/M clonommands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs whichck pointers (16 byte values if disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and extense byte 2: date stamp (ZSDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Extensir the first time, CP/M builds this bitmap in core from the directory.
.LP
The directory is a sequence of directory entries (also two dates of the last update and of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) days sincees support 0\*(en31 without
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are stored in
ea do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \- CP/Mion may consist of any printable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP
A filon byte 0: read-only
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible under each user called extents), which have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, used and 01-01-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character of the file disk and file system format
.SH DESCRIPTION
Each CP/M disk format is described by the following specific sizes:
.RS
.sp
Sector extension may consist of any printable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blanks.
.LP (also called extents), which have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user number, us since 01-01-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character of thecontains three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loader an in
each fourth directory entry, which contains the update and create time
stamps for the files in the previous three directory size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
.br
Logical sector skew
A file may use more than one directory entry, if it contains more blocks
than an extent can hold. In this case, more extents aed and 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
1 byte file name and extension is used
as attribute. The attributes have the following meaning:
.RS
.sp
File name byte 0: requires sed CP/M itself. In order to save
disk space, there are non-bootable formats which omit those system tracks.
The term \fIdisk capentries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp f.br
Number of reserved system tracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports block
sizes of 102re allocated and each
of them is numbered sequentially (extent number). One extent may store up to
128 records, thus using at m extent number for this file
.br
2 bytes unused
.br
1 byte record count for this extent (a record contains 128 bytes)
.br
16 bytt wheel byte (Backgrounder II)
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
.br
Fiacity\fP always excludes the space for system tracks.
Note that there is no bitmap or list for free blocks. When accessing a
dror second-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp consists 4, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and there are lots of
fost 16 K.
.LP
CP/M 2.2 only supports user numbers from 0\*(en15, but there is a patch for
extending this to 31 and some free CP/es block pointers (16 byte values if disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File name and le name byte 2: date stamp (ZSDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS)
.br
Eive for the first time, CP/M builds this bitmap in core from the directory.
.LP
The directory is a sequence of directory entriesof the two dates of the last update and of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endian) daysormats. Accessing a block is performed by accessing its sectors, which
are stored with the given logical skew.
.LP
A CP/M disk M clones support 0\*(en31 without
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are storedxtension byte 0: read-only
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible under eachg a
drive for the first time, CP/M builds this bitmap in core from the directory.
.LP
The directory is a sequence of directory es of
formats. Accessing a block is performed by accessing its sectors, which
are stored with the given logical skew.
.LP
A CP/Mee CP/M clones support 0\*(en31 without
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stamps are - CP/M disk and file system format
.SH DESCRIPTION
Each CP/M disk format is described by the following specific sizes:
.RS
.sp
Se and extension may consist of any printable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded with blank user number) are not supported by CP/M
2.2, but (you probably guessed that by now) there is a patch and some
free CP/M clones sntries (also called extents), which have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> user numb disk contains three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the boot loastored in
each fourth directory entry, which contains the update and create time
stamps for the files in the previous three direector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
.br
Logical sectors.
.LP
A file may use more than one directory entry, if it contains more blocks
than an extent can hold. In this case, more extupport them without any patches.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it is
zero, only non-priviler, used and 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blanks
.br
3 bytes file extension, padded with blanks
.br
der and CP/M itself. In order to save
disk space, there are non-bootable formats which omit those system tracks.
The term \fIdictory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes time s skew
.br
Number of reserved system tracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports block
sizes ents are allocated and each
of them is numbered sequentially (extent number). One extent may store up to
128 records, thus usineged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are nroffs1 byte extent number for this file
.br
2 bytes unused
.br
1 byte record count for this extent (a record contains 128 bytes)
.br
sk capacity\fP always excludes the space for system tracks.
Note that there is no bitmap or list for free blocks. When accessintamp for second-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stamp conof 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and there are lotg at most 16 K.
.LP
CP/M 2.2 only supports user numbers from 0\*(en15, but there is a patch for
extending this to 31 and some fr which do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME
cpm \16 bytes block pointers (16 byte values if disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
File namsists of the two dates of the last update and of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-endiansizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and there anroffs which do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SH NAME)
.br
16 bytes block pointers (16 byte values if disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
.RE
Fi
.br
Extension byte 0: read-only
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visible undecessing a
drive for the first time, CP/M builds this bitmap in core from the directory.
.LP
The directory is a sequence of direc) days since 01-01-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each character re lots of
formats. Accessing a block is performed by accessing its sectors, which
are stored with the given logical skew.
.LP
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Each CP/M disk format is described by the following specific sizes:
.RSle name and extension may consist of any printable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are padded withr each user number) are not supported by CP/M
2.2, but (you probably guessed that by now) there is a patch and some
free CP/M cltory entries (also called extents), which have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(-> useof the file name and extension is used
as attribute. The attributes have the following meaning:
.RS
.sp
File name byte 0: requiA CP/M disk contains three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store the bo
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
.br
Logical blanks.
.LP
A file may use more than one directory entry, if it contains more blocks
than an extent can hold. In this case, moones support them without any patches.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it is
zero, only non-r number, used and 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blanks
.br
3 bytes file extension, padded with blankres set wheel byte (Backgrounder II)
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgrounder II)
ot loader and CP/M itself. In order to save
disk space, there are non-bootable formats which omit those system tracks.
The termsector skew
.br
Number of reserved system tracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports block
re extents are allocated and each
of them is numbered sequentially (extent number). One extent may store up to
128 records, thuprivileged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly there are s
.br
1 byte extent number for this file
.br
2 bytes unused
.br
1 byte record count for this extent (a record contains 128 bytes.br
File name byte 2: date stamp (ZSDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (ZSDOS) \fIdisk capacity\fP always excludes the space for system tracks.
Note that there is no bitmap or list for free blocks. When acs using at most 16 K.
.LP
CP/M 2.2 only supports user numbers from 0\*(en15, but there is a patch for
extending this to 31 and sy non-privileged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedly therr II)
.br
File name byte 2: date stamp (ZSDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheel protect (e term \fIdisk capacity\fP always excludes the space for system tracks.
Note that there is no bitmap or list for free blocks. Wmp consists of the two dates of the last update and of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (little-block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and tome free CP/M clones support 0\*(en31 without
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its time stampe are nroffs which do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File formats"
.SZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (visiblhen accessing a
drive for the first time, CP/M builds this bitmap in core from the directory.
.LP
The directory is a sequence ofendian) days since 01-01-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of each charhere are lots of
formats. Accessing a block is performed by accessing its sectors, which
are stored with the given logical skews are stored in
each fourth directory entry, which contains the update and create time
stamps for the files in the previous threH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Each CP/M disk format is described by the following specific sizee under each user number) are not supported by CP/M
2.2, but (you probably guessed that by now) there is a patch and some
free C directory entries (also called extents), which have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(en31 \(acter of the file name and extension is used
as attribute. The attributes have the following meaning:
.RS
.sp
File name byte 0:.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks store e directory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 bytes s:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
.br
LoP/M clones support them without any patches.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it is
zero, onl-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blanks
.br
3 bytes file extension, padded with requires set wheel byte (Backgrounder II)
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgroundethe boot loader and CP/M itself. In order to save
disk space, there are non-bootable formats which omit those system tracks.
Thtime stamp for second-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A time stagical sector skew
.br
Number of reserved system tracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M supports blanks
.br
1 byte extent number for this file
.br
2 bytes unused
.br
1 byte record count for this extent (a record contains 128yte 0: requires set wheel byte (Backgrounder II)
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command (Backgbytes time stamp for second-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.RE
A ti.br
Logical sector skew
.br
Number of reserved system tracks
.sp
.RE
A block is the smallest allocatable storage unit. CP/M sups, thus using at most 16 K.
.LP
CP/M 2.2 only supports user numbers from 0\*(en15, but there is a patch for
extending this to 31o, only non-privileged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
.\" Believe it or not, reportedl bytes)
.br
16 bytes block pointers (16 byte values if disk capacity less than 256
K, 8 little-endian two-byte values else)
.sp
rounder II)
.br
File name byte 2: date stamp (ZSDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheel prome stamp consists of the two dates of the last update and of the creation
of a file. Each date is stored as:
.RS
.sp
2 bytes (lports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and some free CP/M clones support 0\*(en31 without
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
Its timey there are nroffs which do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "January 16, 1997" "CP/M tools" "File forma.RE
File name and extension may consist of any printable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both are paddetect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public files (ittle-endian) days since 01-01-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit of eac and there are lots of
formats. Accessing a block is performed by accessing its sectors, which
are stored with the given logica stamps are stored in
each fourth directory entry, which contains the update and create time
stamps for the files in the previouts"
.SH NAME
cpm \- CP/M disk and file system format
.SH DESCRIPTION
Each CP/M disk format is described by the following specifid with blanks.
.LP
A file may use more than one directory entry, if it contains more blocks
than an extent can hold. In this cavisible under each user number) are not supported by CP/M
2.2, but (you probably guessed that by now) there is a patch and some
h character of the file name and extension is used
as attribute. The attributes have the following meaning:
.RS
.sp
File name bl skew.
.LP
A CP/M disk contains three areas:
.RS
.sp
System tracks (optional)
.br
Directory
.br
Data
.sp
.RE
The system tracks s three directory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
.br
8 c sizes:
.RS
.sp
Sector size in bytes
.br
Number of tracks
.br
Number of sectors
.br
Block size
.br
Number of directory entries
se, more extents are allocated and each
of them is numbered sequentially (extent number). One extent may store up to
128 recordfree CP/M clones support them without any patches.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it is
zerstore the boot loader and CP/M itself. In order to save
disk space, there are non-bootable formats which omit those system tracrevious three directory entries:
.RS
.sp
1 byte status
.br
8 bytes time stamp for third-last directory entry
.br
2 bytes unused
his case, more extents are allocated and each
of them is numbered sequentially (extent number). One extent may store up to
128 some
free CP/M clones support them without any patches.
.LP
The wheel byte is (by default) the memory location at 0x4b. If it d with blanks
.br
1 byte extent number for this file
.br
2 bytes unused
.br
1 byte record count for this extent (a record containame byte 0: requires set wheel byte (Backgrounder II)
.br
File name byte 1: public file (P2DOS, ZSDOS), forground-only command ks.
The term \fIdisk capacity\fP always excludes the space for system tracks.
Note that there is no bitmap or list for free bloc.br
8 bytes time stamp for second-last directory entry
.br
2 bytes unused
.br
8 bytes time stamp for last directory entry
.sp
.Rrecords, thus using at most 16 K.
.LP
CP/M 2.2 only supports user numbers from 0\*(en15, but there is a patch for
extending thisis
zero, only non-privileged commands may be executed.
.SH "SEE ALSO"
.IR mkfs.cpm (1),
.IR cpmls (1)
ns 128 bytes)
.br
16 bytes block pointers (16 byte values if disk capacity less than 256
K, 8 little-endian two-byte values else(Backgrounder II)
.br
File name byte 2: date stamp (ZSDOS), background-only commands (Backgrounder II)
.br
File name byte 7: wheks. When accessing a
drive for the first time, CP/M builds this bitmap in core from the directory.
.LP
The directory is a sequeE
A time stamp consists of the two dates of the last update and of the creation
of a file. Each date is stored as:
.RS
.sp
2 by to 31 and some free CP/M clones support 0\*(en31 without
patches.
.LP
CP/M 2.2 does not support time stamps, but P2DOS does.
It)
.sp
.RE
File name and extension may consist of any printable 7 bit ASCII character
but: \fB< > . , ; : = ? * [ ]\fP. Both areel protect (ZSDOS)
.br
Extension byte 0: read-only
.br
Extension byte 1: system file
.sp
Extension byte 2: archived
.RE
Public fnce of directory entries (also called extents), which have the following
structure:
.RS
.sp
1 byte status (0xe5 \(-> free, 0\*(etes (little-endian) days since 01-01-1978
.br
1 byte hour in BCD format
.br
1 byte minute in BCD format
.sp
.RE
The highest bit s time stamps are stored in
each fourth directory entry, which contains the update and create time
stamps for the files in the p padded with blanks.
.LP
A file may use more than one directory entry, if it contains more blocks
than an extent can hold. In tiles (visible under each user number) are not supported by CP/M
2.2, but (you probably guessed that by now) there is a patch andn31 \(-> user number, used and 0x21 \(-> timestamps)
.br
8 bytes file name, padded with blanks
.br
3 bytes file extension, paddeof each character of the file name and extension is used
as attribute. The attributes have the following meaning:
.RS
.sp
File