B E T T E R C P / M
SYSTEM DESIGN AND ENGINEERING
DOCUMENTATION
-------------
(DIR) 1. Architecture Specification
(TXT) 2. Baseline Platform Specification
(DIR) 3. Compatibility & Conformance
(DIR) 4. Future Ideas
Additional engineering specifications will be added as the
design develops.
INTRODUCTION
------------
BetterCP/M is a new Z80 operating system designed initially as
a fully compatible replacement for CP/M 2.2.
The first development goal is to reproduce the behavior and
interfaces expected by CP/M 2.2 software while permitting the
internal implementation to be redesigned in native Z80 assembly.
CP/M 2.2 compatibility defines the initial implementation, but
it does not define the ultimate limits of BetterCP/M. The
architecture is intended to provide a foundation upon which
later versions may improve and extend the system.
PROJECT GOALS
-------------
The principal goals of BetterCP/M are:
* CP/M 2.2 Compatibility
Reproduce the observable behavior and interfaces required
by CP/M 2.2 applications and system software.
* Native Z80 Implementation
Implement BetterCP/M specifically for the Z80 rather than
retaining compatibility with the Intel 8080 instruction set.
* Simplicity and Comprehensibility
Keep the architecture and implementation understandable,
documented, and suitable for detailed study.
* Engineering Completeness
Develop the specifications and engineering design to a level
of detail at which implementation in Z80 assembly becomes
largely mechanical.
* Extensibility
Avoid unnecessary architectural assumptions that would
prevent later improvement or expansion of BetterCP/M.
DEVELOPMENT STRATEGY
--------------------
Development proceeds in stages. The first stage is concerned
with producing a complete CP/M 2.2-compatible implementation.
New user-visible capabilities are not a primary objective of the
initial implementation. Improvements may be considered after
the compatible baseline has been established and validated.
Known future possibilities may be considered when making
architectural decisions, but they shall not expand the initial
implementation merely because they have been identified.
METHODOLOGY
-----------
BetterCP/M is being designed through detailed investigation of
CP/M 2.2 documentation and source code.
For each subsystem, the original CP/M behavior and implementation
are examined to determine which characteristics are required for
compatibility and which are implementation details that may be
redesigned.
The design process distinguishes documented behavior, observed
implementation, architectural inference, and BetterCP/M design
decisions.
TERMINOLOGY
-----------
The terminology used by BetterCP/M will develop as the
architecture is defined. The following terms establish several
basic distinctions used throughout the current documentation.
BetterCP/M
The operating system being designed by this project.
BetterCP/M is initially intended to provide a fully CP/M
2.2-compatible operating environment implemented natively
for the Z80.
CP/M 2.2
The Digital Research operating system that defines the
compatibility target for the initial BetterCP/M
implementation.
Compatibility-Visible Behavior
Any behavior, interface, data structure, convention, or
other system characteristic that software operating under
CP/M 2.2 can observe or depend upon and which therefore may
need to be reproduced by BetterCP/M.
Implementation-Private Behavior
Internal organization or behavior that is not part of the
CP/M 2.2 compatibility contract and may therefore be
redesigned by BetterCP/M.
Initial Implementation
The first complete BetterCP/M implementation. Its primary
objective is CP/M 2.2 compatibility rather than the
introduction of major new operating-system capabilities.
Deferred Capability
A possible future BetterCP/M capability that is not a
requirement of the initial implementation. Deferred
capabilities may be considered when making architectural
decisions but do not themselves create implementation
requirements.
NON-GOALS FOR THE INITIAL IMPLEMENTATION
----------------------------------------
The initial BetterCP/M implementation is not intended to
implement every enhancement that may eventually be desirable.
In particular, proposed capabilities such as bank switching,
new storage technologies, broader hardware portability, and
application debugging facilities are not requirements merely
because they have been identified as possible future work.
Such possibilities are recorded separately in Future Ideas.
DOCUMENT OVERVIEW
-----------------
(DIR) 1. Architecture Specification
Defines the architectural principles, system organization,
major components, boundaries, interfaces, and constraints
of BetterCP/M.
(TXT) 2. Baseline Platform Specification
Defines the initial machine environment used to develop,
test, and bring up BetterCP/M.
(DIR) 3. Compatibility & Conformance
Defines and records the compatibility requirements used to
determine whether BetterCP/M reproduces the CP/M 2.2
operating environment sufficiently for existing software.
(DIR) 4. Future Ideas
Records possible capabilities and areas of investigation
that are not requirements of the current specification.
Additional compatibility and detailed engineering specifications
will be added as the design develops.
READING GUIDE
-------------
Readers seeking an overview of the BetterCP/M design should
begin with the Architecture Specification.
The Baseline Platform Specification defines the initial cpmsim
machine environment on which BetterCP/M will be developed and
tested.
Compatibility & Conformance records the observable CP/M 2.2
behavior that BetterCP/M must reproduce and the methods used
to validate compatibility claims.
Future Ideas is intentionally non-normative. Material appearing
there should not be treated as part of the BetterCP/M design
unless it is subsequently incorporated into a specification.