mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 08:24:18 +00:00
358 lines
9.1 KiB
TeX
358 lines
9.1 KiB
TeX
|
|
.op
|
|
.sp 15
|
|
.ce 100
|
|
.sh
|
|
CP/M-8000 \
|
|
.sp
|
|
.sh
|
|
Operating System
|
|
.sp
|
|
.sh
|
|
System Guide
|
|
.qs
|
|
.cs 5
|
|
.sp 10
|
|
Copyright \ \ 1983
|
|
.sp
|
|
Digital Research
|
|
P.O. Box 579
|
|
167 Central Avenue
|
|
Pacific Grove, CA 93950
|
|
(408) 649-3896
|
|
TWX 910 360 5001
|
|
.sp 4
|
|
All Rights Reserved
|
|
.ce 0
|
|
.bp
|
|
.po 17
|
|
.ll 50
|
|
.ce
|
|
COPYRIGHT
|
|
.sp
|
|
Copyright 1983 by Digital Research. All rights reserved.
|
|
No part of this publication may be reproduced, transmitted,
|
|
transcribed, stored in a retrieval system, or translated
|
|
into any language or computer language, in any form or
|
|
by any means, electronic, mechanical, magnetic, optical,
|
|
chemical, manual or otherwise, without the prior written
|
|
permission of Digital Research, Post Office Box 579, Pacific
|
|
Grove, California, 93950.
|
|
.sp 4
|
|
.mb 4
|
|
.fm 1
|
|
.ce
|
|
DISCLAIMER
|
|
.sp
|
|
Digital Research makes no representations or warranties with
|
|
respect to the contents hereof and specifically disclaims
|
|
any implied warranties of merchantability or fitness for
|
|
any particular purpose. Further, Digital Research reserves the
|
|
right to revise this publication and to make changes from
|
|
time to time in the content hereof without obligation of
|
|
Digital Research to notify any person of such revision or
|
|
changes.
|
|
.sp 4
|
|
.ce
|
|
TRADEMARKS
|
|
.sp
|
|
CP/M and CP/M-86 are registered trademarks of Digital Research. CP/M-80,
|
|
CP/M-8000, DDT, and MP/M are trademarks of Digital Research. Z80 and
|
|
Z8000 are trademarks of Zilog, Inc. VAX/VMS is
|
|
a trademark of Digital Equipment Corporation. UNIX is a trademark of
|
|
Bell Laboratories.
|
|
.sp 6
|
|
The \c
|
|
.ul
|
|
CP/M-8000 Operating System System Guide \c
|
|
.qu
|
|
was prepared using the Digital Research TEX Text Formatter and printed
|
|
in the United States of America.
|
|
.sp 2
|
|
.ce 3
|
|
********************************
|
|
* First Edition: March 1983 *
|
|
********************************
|
|
.in 0
|
|
.bp
|
|
.fi
|
|
.cs 5
|
|
.mt 5
|
|
.mb 6
|
|
.pl 66
|
|
.ll 65
|
|
.po 10
|
|
.hm 2
|
|
.fm 2
|
|
.he
|
|
.ft iii
|
|
.ce
|
|
.sh
|
|
FOREWORD
|
|
.sp 2
|
|
.fi
|
|
.pp 5
|
|
CP/M-8000 \ \ is a single-user general purpose operating system.
|
|
It is designed for use with any disk-based computer using a Zilog Z8000 or
|
|
compatible processor. CP/M-8000 is modular in design, and can be modified to
|
|
suit the needs of a particular installation.
|
|
.pp
|
|
The hardware interface for a particular hardware environment is supported by
|
|
the OEM or CP/M-8000 distributer. Digital Research supports the user
|
|
interface to CP/M-8000 as documented in the \c
|
|
.ul
|
|
CP/M-8000 Operating System User's Guide.\c
|
|
.qu
|
|
\ Digital Research does not support any additions or modifications made to
|
|
CP/M-8000 by the OEM or distributer.
|
|
.sp 2
|
|
.sh
|
|
Purpose and Audience
|
|
.pp
|
|
This manual is intended to provide the information needed by a
|
|
systems programmer in adapting CP/M-8000 to a particular hardware
|
|
environment. A substantial degree of programming expertise is
|
|
assumed on the part of the reader, and it is not expected that
|
|
typical users of CP/M-8000 will need or want to read this manual.
|
|
.sp 2
|
|
.sh
|
|
Prerequisites and Related Publications
|
|
.pp
|
|
In addition to this manual, the reader should be familiar with the
|
|
architecture of the Zilog Z8000 as described in the \c
|
|
.ul
|
|
Zilog 16-Bit Microprocessor User's Manual
|
|
.qu
|
|
(third edition), the \c
|
|
.ul
|
|
CP/M-8000 User's and Programmer's Guides,
|
|
.qu
|
|
and, of course, the details of the hardware environment where CP/M-8000 is
|
|
to be implemented.
|
|
.sp 2
|
|
.sh
|
|
How This Book is Organized
|
|
.pp
|
|
Section 1 presents an overview of CP/M-8000 and describes its major
|
|
components. Section 2 discusses the adaptation of CP/M-8000 for your specific
|
|
hardware system. Section 3 discusses bootstrap procedures and related
|
|
information. Section 4 describes each BIOS function including entry
|
|
parameters and return values. Section 5 describes the process of creating a
|
|
BIOS for a custom hardware interface. Section 6 discusses approaches to
|
|
debugging your BIOS. Section 7 provides information on using the distributed
|
|
version of CP/M-8000 if you have a ===???=== system.
|
|
.pp
|
|
Appendix A describes the contents of the CP/M-8000 distribution disks.
|
|
Appendixes B, C, and D are listings of various BIOSes. Appendix E
|
|
contains a listing of the PUTBOOT utility program.
|
|
.bp
|
|
.ft iv
|
|
.sp 50
|
|
.bp
|
|
.cs 5
|
|
.mt 5
|
|
.mb 6
|
|
.pl 66
|
|
.ll 65
|
|
.po 10
|
|
.hm 2
|
|
.fm 2
|
|
.he
|
|
.ft v
|
|
.nf
|
|
.bp
|
|
.ce
|
|
.sh
|
|
Table of Contents
|
|
.sp 3
|
|
.nf
|
|
.sh
|
|
1 System Overview
|
|
.qs
|
|
|
|
=== PAGE NUMBERS ARE TOTAL GARBAGE ===
|
|
|
|
1.1 Introduction . . . . . . . . . . . . . . . . . . . . 1
|
|
|
|
1.2 CP/M-8000 Organization . . . . . . . . . . . . . . . . 3
|
|
|
|
1.3 Memory Layout . . . . . . . . . . . . . . . . . . . . 3
|
|
|
|
1.4 Console Command Processor . . . . . . . . . . . . . . 4
|
|
|
|
1.5 Basic Disk Operating System (BDOS) . . . . . . . . . 5
|
|
|
|
1.6 Basic I/O System (BIOS) . . . . . . . . . . . . . . . 5
|
|
|
|
1.7 I/O Devices . . . . . . . . . . . . . . . . . . . . . 5
|
|
|
|
1.7.1 Character Devices . . . . . . . . . . . . . . 5
|
|
1.7.2 Character Devices . . . . . . . . . . . . . . 5
|
|
|
|
1.8 System Generation and Cold Start Operation . . . . . 6
|
|
.sp 2
|
|
.sh
|
|
2 System Generation
|
|
.qs
|
|
|
|
2.1 Overview . . . . . . . . . . . . . . . . . . . . . . 7
|
|
|
|
2.2 Creating CPM.SYS . . . . . . . . . . . . . . . . . . 7
|
|
|
|
2.3 Relocating Utilities . . . . . . . . . . . . . . . . 8
|
|
.sp 2
|
|
.sh
|
|
3 Bootstrap Procedures
|
|
.qs
|
|
|
|
3.1 Bootstrapping Overview . . . . . . . . . . . . . . . 9
|
|
|
|
3.2 Creating the Cold Boot Loader . . . . . . . . . . . . 10
|
|
|
|
3.2.1 Writing a Loader BIOS . . . . . . . . . . . . 10
|
|
3.2.2 Building CPMLDR.SYS . . . . . . . . . . . . . 11
|
|
.sp 2
|
|
.sh
|
|
4 BIOS Functions
|
|
.qs
|
|
|
|
4.1 Introduction . . . . . . . . . . . . . . . . . . . . 13
|
|
4.2 Memory Management Functions . . . . . . . . . . . . . ??
|
|
.bp
|
|
.ft vi
|
|
.ce 2
|
|
.sh
|
|
Table of Contents
|
|
.sp
|
|
.sh
|
|
(continued)
|
|
.qs
|
|
.sp 3
|
|
.sh
|
|
5 Creating a BIOS
|
|
.qs
|
|
|
|
5.1 Overview . . . . . . . . . . . . . . . . . . . . . . 39
|
|
|
|
5.2 Disk Definition Tables . . . . . . . . . . . . . . . 39
|
|
|
|
5.2.1 Disk Parameter Header . . . . . . . . . . . . 40
|
|
5.2.2 Sector Translate Table . . . . . . . . . . . . 41
|
|
5.2.3 Disk Parameter Block . . . . . . . . . . . . . 42
|
|
|
|
5.3 Disk Blocking Guide . . . . . . . . . . . . . . . . . 45
|
|
|
|
5.3.1 A Simple Approach . . . . . . . . . . . . . . 46
|
|
5.3.2 Some Refinements . . . . . . . . . . . . . . . 46
|
|
5.3.3 Track Buffering . . . . . . . . . . . . . . . 47
|
|
5.3.4 LRU Replacement . . . . . . . . . . . . . . . 47
|
|
5.3.5 The New Block Flag . . . . . . . . . . . . . . 48
|
|
|
|
5.4 Memory Management Guide . . . . . . . . . . . . . . . ??
|
|
|
|
.sp 2
|
|
.sh
|
|
6 Installing and Adapting the Distributed BIOS and CP/M-8000
|
|
.qs
|
|
|
|
6.1 Overview . . . . . . . . . . . . . . . . . . . . . . 49
|
|
|
|
6.2 Booting on an ===???=== . . . . . . . . . . . . . . . 49
|
|
|
|
6.3 Bringing up CP/M-8000 Using ===???=== . . . . . . 50
|
|
.sp 2
|
|
.sh
|
|
7 Cold Boot Automatic Command Execution
|
|
.qs
|
|
|
|
7.1 Overview . . . . . . . . . . . . . . . . . . . . . . 51
|
|
|
|
7.2 Setting up Cold Boot Automatic Command Execution . . 51
|
|
.sp 2
|
|
.sh
|
|
8 The PUTBOOT Utility
|
|
.qs
|
|
|
|
8.1 PUTBOOT Operation . . . . . . . . . . . . . . . . . . 53
|
|
|
|
8.2 Invoking PUTBOOT . . . . . . . . . . . . . . . . . . 53
|
|
.bp
|
|
.ft vii
|
|
.ce
|
|
.sh
|
|
Appendixes
|
|
.qs
|
|
.sp 3
|
|
.sh
|
|
A \c
|
|
.qs
|
|
Contents of Distribution Disks . . . . . . . . . . . . . . 55
|
|
.sp 2
|
|
.sh
|
|
B \c
|
|
.qs
|
|
Sample BIOS Written in C . . . . . . . . . 59
|
|
.sp 2
|
|
.sh
|
|
C \c
|
|
.qs
|
|
Dual-Processor Z8001 BIOS written in C . . . . . 67
|
|
.sp 2
|
|
.sh
|
|
D \c
|
|
.qs
|
|
Dual-Processor Z8002 BIOS Written in C . . . . . . . . . . . . . . . . 73
|
|
.sp 2
|
|
.sh
|
|
E \c
|
|
.qs
|
|
PUTBOOT Utility Assembly Language Source . . . . . . . . . 101
|
|
.sp 2
|
|
.sh
|
|
F \c
|
|
.qs
|
|
CP/M-8000 Error Messages . . . . . . . . . . . . . . . . . 109
|
|
.bp
|
|
.ft viii
|
|
.ce
|
|
.sh
|
|
Tables and Figures
|
|
.qs
|
|
.sp 3
|
|
.sh
|
|
Tables
|
|
.qs
|
|
.sp
|
|
1-1. CP/M-8000 Terms . . . . . . . . . . . . . . . . . . 1
|
|
.sp
|
|
4-1. BIOS Register Usage . . . . . . . . . . . . . . . 14
|
|
4-2. BIOS Functions . . . . . . . . . . . . . . . . . . 14
|
|
4-3. CP/M-8000 Logical Device Characteristics . . . . . 33
|
|
4-4. I/O Byte Field Definitions . . . . . . . . . . . . 34
|
|
.sp
|
|
5-1. Disk Parameter Header Elements . . . . . . . . . . 40
|
|
5-2. Disk Parameter Block Fields . . . . . . . . . . . 42
|
|
5-3. BSH and BLM Values . . . . . . . . . . . . . . . . 44
|
|
5-4. EXM Values . . . . . . . . . . . . . . . . . . . . 45
|
|
.sp
|
|
A-1. Distribution Disk Contents . . . . . . . . . . . . 55
|
|
.sp
|
|
F-1. CP/M-8000 Error Messages . . . . . . . . . . . . . 109
|
|
.sp 2
|
|
.sh
|
|
Figures
|
|
.qs
|
|
.sp
|
|
1-1. CP/M-8000 Interfaces . . . . . . . . . . . . . . . 3
|
|
1-2. Typical CP/M-8000 Memory Layout . . . . . . . . . . 4
|
|
.sp
|
|
4-1. Memory Region Table Format . . . . . . . . . . . . 32
|
|
4-2. I/O Byte Fields . . . . . . . . . . . . . . . . . 34
|
|
.sp
|
|
5-1. Disk Parameter Header . . . . . . . . . . . . . . 40
|
|
5-2. Sample Sector Translate Table . . . . . . . . . . 42
|
|
5-3. Disk Parameter Block . . . . . . . . . . . . . . . 42
|
|
.fi
|
|
.nx one
|
|
|