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.