Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 3.X/CPM 3.0/3ON2/HBIOS.ASM
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

195 lines
5.9 KiB
NASM
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.

;--------------------------------------------------------
;
; PROGRAM ID: GBIOS3.ASM
; GENERIC LOADER AND BIOS FOR CP/M PLUS
; FOR CP/M-80 V2.2 SYSTEMS
; UNBANKED
; NO HASHING
; BIOS PERFORMS BLOCKING/DEBLOCKING
;
;--------------------------------------------------------
;
; ORGANIZATIONAL COMMENTARY
;
;--------------------------------------------------------
; This BIOS is designed to be the user's first step
;in making an upgrade from CP/M-80 v2.2 to CP/M Plus v3.0.
;This BIOS will function properly in most CP/M-2 systems,
;even those with the BIOS in PROM.
;
;FUNCTION:
; This PROGRAM implements an UNBANKED, NON-HASHED,
;UNBUFFERED BIOS for CP/M Plus version 3.0.
;
;METHOD:
; CP/M Plus allows many levels of sophistocation in
;the implementation of the BIOS. At the highest levels,
;the BIOS allows CP/M Plus to manage a potentially large
;memory pool which acts like an instant access disk drive;
;a substantial performence enhancement. At the lowest level,
;the performance of CP/M Plus is the same as that of CP/M-80
;version 2.2. This interface program is a simple implementation
;of a CP/M Plus BIOS which operates as a parasite to the user's
;existing BIOS for CP/M-80 version 2.2.
;
;PURPOSE:
; This BIOS allows the CP/M-80 v2.2 user to easily
;upgrade to CP/M Plus v3.0 and enjoy its logical enhancements
;at the same level of performance he has enjoyed with v2.2.
;This BIOS can be an end-point since system performance
;will be satisfactory. For users who own the hardware
;required to implement hashing and buffering, this BIOS
;will serve as a welcome starting point for further enhancement.
;
;ORGANIZATION:
; This BIOS is organized as follows:
;
; CONSTANTS
; CONFIGURATION CONSTANTS AND CONDITIONS ***
; EXTERNAL REFERENCES
; PUBLIC DECLARATIONS (NULL)
; RAM DEFINITIONS
; CP/M 2.2 LINKAGE EQUATES
;
; CP/M PLUS JUMP TABLE
; INITIALIZATION PROCESSES
; LOCAL AND NULL PROCESSES
; SIMPLE INDEXED PROCESSES
; COMPLEX INDEXED PROCESSES
; LOCAL SUBROUTINES
; INITIALIZED STORAGE
; UNINITIALIZED STORAGE
; END
;
; *** edit these
;--------------------------------------------------------
;
; OPERATIONAL COMMENTARY
;
;--------------------------------------------------------
;
; Digital Research owes much of its success to the
;foresight of its operating system designers who have seen
;fit to make their products upward compatible with one
;another. CP/M Plus is no exception, and so it is no
;surprise that the CP/M Plus BIOS shares many constructs
;with the earlier CP/M-80 v2.2.
;
; The CP/M Plus BIOS implements 32 entry points in
;its jump table. Of these, the first 17 correspond to the
;17 entries in the CP/M-80 v2.2 jump table. 14 of these
;are treated as identical to those in 2.2. These index
;directly into the 2.2 jump table. The remaining three in the
;2.2 set are BOOT, which is null, WBOOT, which loads CCP.COM,
;and SELDSK which creates all of the necessary disk data
;structures required by CP/M Plus based on those in the 2.2 BIOS.
;The remaining 15 entries in the CP/M Plus BIOS, with the
;single exception of MOVE, are implemented in one of
;the following ways:
;
; 1.) null, simply return.
; 2.) nearly null, do something really simple.
; 3.) tell a white lie.
;
;--------------------------------------------------------
;
; constants
;
;--------------------------------------------------------
;--------------------------------------------------------
;
; configuration constants and conditions
;
;--------------------------------------------------------
;ldrbios equ true
;--------------------------------------------------------
;
; external references
;
;--------------------------------------------------------
;--------------------------------------------------------
;
; public declarations
;
;--------------------------------------------------------
;
;currently null
;
;--------------------------------------------------------
;
; ram definitions
;
;--------------------------------------------------------
;--------------------------------------------------------
;
; cp/m v2.2 linkage equates
;
;--------------------------------------------------------
;--------------------------------------------------------
;
; cp/m plus version 3.0 jump table
;
;--------------------------------------------------------
; org (bios-(200h+64*drives)) and 0ff00h
;
;
;
;--------------------------------------------------------
;
; initialization processes
;
;--------------------------------------------------------
;
; initialize low memory jumps
;
;
; load ccp.com into tpa
;
;
; the load loop
;
;
;
;
;
;--------------------------------------------------------
;
; local and null processes
;
;--------------------------------------------------------
; z80 users may code as:
; xchg
; db 0edh,0b0h ;ldir
; xchg
; ret
;
;--------------------------------------------------------
;
; simple indexed processes
;
;--------------------------------------------------------
;--------------------------------------------------------
;
; complex indexed functions
;
;--------------------------------------------------------
;--------------------------------------------------------
;
; local subroutines
;
;--------------------------------------------------------
;--------------------------------------------------------
;
; initialized storage
;
;--------------------------------------------------------
;--------------------------------------------------------
;
; uninitialized storage
;
;--------------------------------------------------------
;--------------------------------------------------------
;cp/m is a registered trademark of digital research, inc.
;you already knew that, but they wanted us to remind you.
;--------------------------------------------------------