Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 8000 (CPM8K)/P-CP M-Z8K SOURCES/pg/pgmtofc.tex
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

169 lines
11 KiB
TeX

.nf
1 Introduction to CP/M-8000 . . . . . . . . . . . . . . . . . 1
1.1 CP/M-8000 System Architecture . . . . . . . . . . . . 1
1.2 Transient Programs . . . . . . . . . . . . . . . . . . 2
1.3 File System Access . . . . . . . . . . . . . . . . . 2
1.4 Programming Tools and Commands . . . . . . . . . . . 2
1.5 CP/M-8000 File Specification . . . . . . . . . . . . . 5
1.6 Wildcards . . . . . . . . . . . . . . . . . . . . . . 6
1.7 CP/M-8000 Terminology . . . . . . . . . . . . . . . . . 7
2 The CCP and Transient Programs . . . . . . . . . . . . . . 9
2.1 CCP Built-In and Transient Commands . . . . . . . . . 9
2.2 Loading A Program In Memory . . . . . . . . . . . . . . 10
2.2.1 Base Page Initialization By The CCP . . . . . 10
2.2.2 Loading Multiple Programs . . . . . . . . . . 10
2.2.3 Base Page Initialization By A Transient Progra 11
2.3 Exiting Transient Programs . . . . . . . . . . . . . . 11
2.4 Transient Program Execution Model . . . . . . . . . . 12
3 Command File Format . . . . . . . . . . . . . . . . . . . 15
3.1 The Header and Program Segments . . . . . . . . . . . 15
3.2 The Symbol Table . . . . . . . . . . . . . . . . . . 17
3.2.1 Printing The Symbol Table . . . . . . . . . . 19
3.3 Relocation Information . . . . . . . . . . . . . . . 19
3.3.1 The Format of A Relocation Word . . . . . . . 20
4 Basic Disk Operating System Functions . . . . . . . . . . 23
4.1 BDOS Functions and Parameters . . . . . . . . . . . . 24
4.1.1 Invoking BDOS Functions . . . . . . . . . . . . 24
4.1.2 Organization Of BDOS Functions . . . . . . . . 25
4.2 File Access Functions . . . . . . . . . . . . . . . . 25
4.2.1 A File Control Block (FCB) . . . . . . . . . . 26
4.2.2 File Processing Errors . . . . . . . . . . . . 28
4.2.3 Open File Function . . . . . . . . . . . . . . 31
4.2.4 Close File Function . . . . . . . . . . . . . . 32
4.2.5 Search For First Function . . . . . . . . . . 33
4.2.6 Search For Next Function . . . . . . . . . . . 34
4.2.7 Delete File Function . . . . . . . . . . . . . 35
4.2.8 Read Sequential Function . . . . . . . . . . . 36
4.2.9 Write Sequential Function . . . . . . . . . . 37
4.2.10 Make File Function . . . . . . . . . . . . . 39
4.2.11 Rename File Function . . . . . . . . . . . . 40
4.2.12 Set Direct Memory Access (DMA) Address . . . 41
4.2.13 Set File Attributes Function . . . . . . . . 42
4.2.14 Read Random Function . . . . . . . . . . . . 44
4.2.15 Write Random Function . . . . . . . . . . . . 46
4.2.16 Compute File Size Function . . . . . . . . . . 48
4.2.17 Set Random Record Function . . . . . . . . . 49
4.2.18 Write Random With Zero Fill Function . . . . 51
4.3 Drive Functions . . . . . . . . . . . . . . . . . . . 52
4.3.1 Reset Disk System Function . . . . . . . . . . 53
4.3.2 Select Disk Function . . . . . . . . . . . . . 54
4.3.3 Return Login Vector Function . . . . . . . . . 55
4.3.4 Return Current Disk Function . . . . . . . . . 56
4.3.5 Write Protect Disk Function . . . . . . . . . 57
4.3.6 Get Read-Only Vector Function . . . . . . . . 58
4.3.7 Get Disk Parameters Function . . . . . . . . . 59
4.3.8 Reset Drive Function . . . . . . . . . . . . . 61
4.3.9 Get Disk Free Space Function . . . . . . . . . 62
4.3 Character I/O Functions . . . . . . . . . . . . . . . 62
4.4.1 Console I/O Functions . . . . . . . . . . . . 64
Console Input Function . . . . . . . . . . . . 64
Console Output Function . . . . . . . . . . . 65
Direct Console I/O Function . . . . . . . . . 66
Print String Function . . . . . . . . . . . . 68
Read Console Buffer Function . . . . . . . . . 69
Get Console Status Function . . . . . . . . . 71
4.4.2 Additional Serial I/O Functions . . . . . . . . 72
Auxiliary Input Function . . . . . . . . . . . 72
Auxiliary Output Function . . . . . . . . . . 73
List Output Function . . . . . . . . . . . . . 74
4.4.3 I/O Byte Functions . . . . . . . . . . . . . . 74
Get I/O Byte Function . . . . . . . . . . . . 76
Set I/O Byte Function . . . . . . . . . . . . 77
4.5 System/Program Control Functions . . . . . . . . . . 77
4.5.1 System Reset Function . . . . . . . . . . . . 78
4.5.2 Return Version Number Function . . . . . . . . 79
4.5.3 Set/Get User Code . . . . . . . . . . . . . . 81
4.5.4 Chain To Program Function . . . . . . . . . . 82
4.5.5 Flush Buffers Function . . . . . . . . . . . . 83
4.5.6 Direct BIOS Call Function . . . . . . . . . . 84
4.5.7 Program Load Function . . . . . . . . . . . . 85
4.6 Exception Functions . . . . . . . . . . . . . . . . . 87
4.6.1 Set Exception Vector Function . . . . . . . . 88
4.6.2 Set Supervisor State . . . . . . . . . . . . . 91
4.6.3 Get/Set TPA Limits . . . . . . . . . . . . . . 92
5 AS68 Assembler . . . . . . . . . . . . . . . . . . . . . . 97
5.1 Assembler Operation . . . . . . . . . . . . . . . . . 97
5.2 Initializing AS68 . . . . . . . . . . . . . . . . . . 97
5.3 Invoking the Assembler (AS68) . . . . . . . . . . . . 97
5.4 Assembly Language Directives . . . . . . . . . . . . 100
5.5 Sample Commands Invoking AS68 . . . . . . . . . . . . 106
5.6 Assembly Language Differences . . . . . . . . . . . . 106
5.7 Assembly Language Extensions . . . . . . . . . . . . 108
5.8 Error Messages . . . . . . . . . . . . . . . . . . . 109
6.0 L068 Linker . . . . . . . . . . . . . . . . . . . . . . 111
6.1 Linker Operation . . . . . . . . . . . . . . . . . . 111
6.2 Invoking the Linker (L068) . . . . . . . . . . . . . 111
6.3 Sample Commands Invoking L068 . . . . . . . . . . . . 114
6.4 L068 Error Messages . . . . . . . . . . . . . . . . . 114
7.1 Archive Utility . . . . . . . . . . . . . . . . . . . 115
7.1.1 AR68 Syntax . . . . . . . . . . . . . . . . . 115
7.1.2 AR68 Operation . . . . . . . . . . . . . . . . 117
7.1.3 AR68 Commands and Options . . . . . . . . . . 117
7.1.4 Errors . . . . . . . . . . . . . . . . . . . . 122
7.2 DUMP Utility . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 Invoking DUMP . . . . . . . . . . . . . . . . 122
7.2.2 DUMP Output . . . . . . . . . . . . . . . . . 123
7.2.3 DUMP Examples . . . . . . . . . . . . . . . . 124
7.3 Relocation Utility . . . . . . . . . . . . . . . . . 124
7.3.1 Invoking RELOC . . . . . . . . . . . . . . . . 124
7.3.2 RELOC Examples . . . . . . . . . . . . . . . . 125
7.4 SIZE68 Utility . . . . . . . . . . . . . . . . . . . 126
7.4.1 Invoking SIZE68 . . . . . . . . . . . . . . . 126
7.4.2 SIZE68 Output . . . . . . . . . . . . . . . . 126
7.4.3 SIZE68 Examples . . . . . . . . . . . . . . . 127
7.5 SENDC68 Utility . . . . . . . . . . . . . . . . . . . 128
7.5.1 Invoking SENDC68 . . . . . . . . . . . . . . . 128
7.5.2 SENDC68 Example . . . . . . . . . . . . . . . 129
8 DDT-8000 . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.1 DDT-8000 Operation . . . . . . . . . . . . . . . . . . 131
8.1.1 Invoking DDT-8000 . . . . . . . . . . . . . . . 131
8.1.2 DDT-8000 Command Conventions . . . . . . . . . 131
8.1.3 Specifying Address . . . . . . . . . . . . . . 132
8.1.4 Terminating DDT-8000 . . . . . . . . . . . . . 132
8.1.5 DDT-8000 Operation with Interrupts . . . . . . 132
8.2 DDT-8000 Commands . . . . . . . . . . . . . . . . . . 133
8.2.1 The D (Display) Command . . . . . . . . . . . 133
8.2.2 The E (Load for Execution) Command . . . . . . 134
8.2.3 The F (Fill) Command . . . . . . . . . . . . . 134
8.2.4 The G (Go) Command . . . . . . . . . . . . . . 135
8.2.5 The H (Hexadecimal Math) Command . . . . . . . 135
8.2.6 The I (Input Command Tail) Command . . . . . . 135
8.2.7 The L (List) Command . . . . . . . . . . . . . 136
8.2.8 The M (Move) Command . . . . . . . . . . . . . 136
8.2.9 The R (Read) Command . . . . . . . . . . . . . 137
8.2.10 The S (Set) Command . . . . . . . . . . . . . 137
8.2.11 The T (Trace) Command . . . . . . . . . . . . 138
8.2.12 The U (Untrace) Command . . . . . . . . . . . 138
8.2.13 The V (Value) Command . . . . . . . . . . . . 139
8.2.14 The W (Write) Command . . . . . . . . . . . . 139
8.2.15 The X (Examine CPU State) Command . . . . . . 139
8.3 Assembly Language Syntax for A and L Commands . . . . 141
E.1 AR68 Error Messages . . . . . . . . . . . . . . . . . 157
E.1.1 Fatal Diagnostic Error Messages . . . . . . . 157
E.1.2 AR68 Internal Logic Error Messages . . . . . . 160
E.2 AS68 Error Messages . . . . . . . . . . . . . . . . . 161
E.2.1 AS68 Diagnostic Error Messages . . . . . . . . 161
E.2.2 User-recoverable Fatal Error Messages . . . . 167
E.2.3 AS68 Internal Logic Error Messages . . . . . . 171
E.3 BDOS Error Messages . . . . . . . . . . . . . . . . . 171
E.4 BIOS Error Messages . . . . . . . . . . . . . . . . . 175
E.5 CCP Error Messages . . . . . . . . . . . . . . . . . 176
E.5.1 Diagnostic Error Messages . . . . . . . . . . 176
E.5.2 CCP Internal Logic Error Messages . . . . . . 179
E.6 DDT-8000 Error Messages . . . . . . . . . . . . . . . 180
E.6.1 Diagnostic Error Messages . . . . . . . . . . 180
E.6.2 DDT-8000 Internal Logic Error Messages . . . . 186
E.7 DUMP Error Messages . . . . . . . . . . . . . . . . . 187
E.8 LO68 Error Messages . . . . . . . . . . . . . . . . . 187
E.8.1 Fatal Diagnostic Error Messages . . . . . . . 187
E.8.2 LO68 Internal Logic Error Messages . . . . . . 191
E.9 NM68 Error Messages . . . . . . . . . . . . . . . . . 191
E.10 RELOC Error Messages . . . . . . . . . . . . . . . . 192
E.11 SENDC68 Error Messages . . . . . . . . . . . . . . . 195
E.11.1 Diagnostic Error Messages . . . . . . . . . . 196
E.11.2 SENDC68 Internal Logic Error Messages . . . . 197
E.12 SIZE68 Error Messages . . . . . . . . . . . . . . . . 197
F New Functions and Implementation Changes . . . . . . . . . 199
F.1 BDOS Function and Data Structure Changes . . . . . . 199
F.2 BDOS Functions Not Supported By CP/M-8000 . . . . . . 200