1. OVERVIEW ----------- 1.1 Role of the VRM ~~~~~~~~~~~~~~~~~~~ The Virtual Resource Manager (VRM) provides the hardware abstraction layer of HyperCP/M. The VRM presents a consistent virtual machine environment to HyperCP/M kernel subsystems regardless of the underlying hardware implementation. The VRM is responsible for abstracting and providing access to hardware resources including: * CPU execution state. * Memory. * Devices. * Interrupts. * Timers. * Storage hardware. The VRM does not provide operating-system services. Instead, it provides the hardware model upon which HyperCP/M kernel services operate. 1.2 Relationship to the HyperCP/M Kernel ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The VRM is a component of the HyperCP/M kernel architecture. The kernel uses VRM services to access and manage hardware resources. Personalities and applications do not directly access the VRM. 1.3 Virtual Machine Model ~~~~~~~~~~~~~~~~~~~~~~~~~ Each HyperCP/M session operates within a virtual Z80 machine environment. The virtual machine environment presented to a session shall be independent of the underlying hardware implementation. A session observes: * A Z80-compatible CPU environment. * A defined Z80-compatible memory address space. * Virtual devices. * Virtual storage resources. * Virtual interrupt sources. The underlying hardware implementation is not visible to the session unless explicitly exposed through a defined virtual device or service. 1.4 Design Principles ~~~~~~~~~~~~~~~~~~~~~ The VRM is designed according to the following principles. Hardware Independence The VRM shall separate HyperCP/M kernel services from specific hardware implementations. Kernel subsystems shall interact with virtual resources rather than directly accessing physical hardware. Personality Compatibility The VRM shall provide the virtual hardware environment required by each supported personality. The VRM shall preserve the hardware assumptions expected by historical operating systems where compatibility is an objective. Resource Abstraction The VRM shall represent hardware capabilities as abstract resources rather than exposing implementation-specific details. Physical resources may be implemented using different hardware mechanisms provided that the defined virtual machine interface is preserved. Isolation Resources assigned to one session shall not interfere with resources assigned to another session except through explicitly defined sharing mechanisms. Extensibility The VRM shall permit additional hardware capabilities and virtual devices to be added without requiring redesign of existing kernel services. Minimal Assumptions The VRM shall expose only those hardware capabilities required by the active personality or HyperCP/M services. Implementation details shall remain hidden unless explicitly exposed through a defined interface.