- @ -
@
equivalent to ^, 17, 134
@BDOS
source, 212
@ERR, 114, 115
@INI, 8, 125, 128
@OVL, 65
@OVS, 66
@RNC, 8, 129
@SFP, 124
@WNC, 8, 129
- A -
ABSOLUTE variables, 103, 109
ADDR, 79
AMD 9511, 7, 118, 211
AND
and 16 bit variables, 143
ARCTAN, 153
ARRAY
as procedural parameters, 151
storage, 53
Assembly language
access to Pascal variables, 52
and Pascal program interface, 51
assemblers, 51
functions, 55
identifier names, 51
parameter example, 54
parameter passing, 54
PUBLIC, 52
stack, 54
ASSIGN, 88, 164
Assignment compatibility, 139
Available memory message, 18
- B -
B switch, 17, 118
BCD REAL, 17, 118
BCDREALS.ERL, 7
BDOS, 9 111
Bit and byte manipulation, 143
BLOCKREAD, 91, 182
BLOCKWRITE, 91, 182
BOOLEAN, 117
Built-in procedures
(see individual listings)o
ADDR, 79
ASSIGN, 88
BLOCKREAD, 91
BLOCKWRITE, 91
CLOSE, 93
CLRBIT, 76
CONCAT, 83
COPY, 84
DELETE, 86
EXIT, 74
FILLCHAR, 81
GNB, 90
HI, 78
INSERT, 87
IORESULT, 95
LENGTH, 82
LO, 78
MAXAVAIL, 98
MEMAVAIL, 98
MOVE, 72
MOVELEFT, 72
MOVERIGHT, 72
OPEN, 92
POS, 85
READHEX, 97
RIM, 100
SEEKREAD, 96
SEEKWRITE, 96
SETBIT, 76
SHL, 77
SHR, 77
SIM, 100
SIZEOF, 80
summary of, 101
SWAP, 78
TSTBIT, 76
WAIT, 99
WNB, 90
WRITEHEX, 97
PURGE, 94
BYTE, 119, 136
Byte manipulation
(see Bit and byte manipulation)
- C -
CALC.SRC, 7
Chaining,, 103
Chaining
absolute variable communication, 103
example, 103
global variable communication, 103
how-to, 103
maintain heap, 103
source file, 8
CHAR, 117
CHN.MAC, 8
CHR, 117, 140, 154
CLOSE, 93, 166
CLOSEDEL, 93, 189
CLRBIT, 76
Comments
syntax, 133
Compiler control toggles
entry point control $E, 19
hardware stack pointer initialization $Z, 20
listing controls $P/$L, 21
real arithmetic space reduction toggle $C, 21
recursive/static Variable control $S, 19
recursion space reduction toggle $Q, 21
run-time range checking control $R, 20
run-time exception checking control $X, 20
source code include mechanism $I, 19
strict/relaxed type checking control $T/$W, 20
summary, 23
symbol table control $K, 21
syntax, 19
Compiler
# output, 18
+ output, 18
available memory, 13
command line switch syntax, 16
command line switches, 16
compile time informational output, 13, 18
execution, 16
input files, 16
installation, 11
operational description, 16
PHASE 1, 18, 24.
PHASE 2, 18, 24
remaining memory, 13
sample output, 13
separate compilation, 47
step-by-step instructions, 12
system requirements, 5
user table space, 13
CON:, 88
CONCAT, 83
Conformant arrays, 151, 152
Constant data at compile-time, 112
COPY, 84
CP/M
devices supported, 88
CPMRD.SRC, 8
- D -
Data storage, 124
Data types
BOOLEAN, 117
BYTE, 119
CHAR, 117
INTEGER, 118
range, 117
REAL, 118
SET, 123
size, 117
STRING, 120
WORD, 119
DBUGHELP.TXT, 7
Debugger
and compiler D switch, 39
and recursion, 40
command summary, 42
command syntax, 40
compiler switch, 17
instructions, 39
non-CP/M use, 39
overview, 39
PSY, 39
sample link command line, 39
SYP, 39
undefined symbols, 40
DEBUGGER.ERL, 7
DELETE, 86
DIS8080.COM, 7
Disassembler
example, 32
instructions, 31
introduction, 31
output, 33
DISPOSE, 216
Distribution disk
contents, 6
minimum configuragion, 9
DIVMOD.MAC, 8
- E -
End of file, 161, 168, 170
EOF, 109, 154, 161, 164, 166, 167, 168, 170
EOLN, 109, 164, 166, 169
Error handling
run-time, 114
Error message
type conflict, 139
Error messages, 24
Exception checking
(see Compiler control toggles)
EXIT, 74
Extensions to ISO standard
(see ISO standard extensions)
Extensions
summary, 131
EXTERNAL
and assembly language modules, 52
and entry point symbols, 19
and modular compilation, 47
and overlays, 59, 65
and procedures/functions, 48
and variables, 47
routines as parameters, 48
- F -
FIB
(see File Information Block)
FIBDEF.LIB, 8, 160
File Information Block, 160
File variable, 161
File variableUntyped files are allowed., 139
Filename
definition, 159
Filenames
associating external and internal, 88
compiler input, 16
linker input, 25
Files
sector I/O, 182
ASCII text, 139
ASSIGN procedure, 88
associating files with external names, 150
built-in procedures, 150
chaining, 139
closing, 93, 166
creating, 164
definition, 159
deleting, 93, 94
devices CON:, LST:, TRM:, KBD:, 88
error handling, 95, 164
example, 163
fast byte routines, 90, 183
formatted output, 156, 171
hex input, 97
hex output, 97
I/O error handling, 116
implied conversions, 139
input/output table, 188
interactive, 88
local, 88, 151, 164, 189
local files and linker /D switch, 26
non-echo console input, 88
opening (see also RESET), 92
pre-defined type TEXT, 139
primitive file access, 91
printer output, 88, 158
random access, 5, 96, 175, 178
redirected I/O capabilities, 108, 180
temporary, (see local)
text, 160, 169, 183
untyped, 139
window variable, 160, 161, 165, 166, 167, 173, 178, 183
writing to printer, 174
FILLCHAR, 81
Floating Point REAL, 118, 211
Formatted output, 156, 171
FORWARD, 151
FPREALS.ERL, 7, 119
FULLHEAP.ERL, 7, 98
- G -
GET, 167 GNB, 90, 183 GOTO, 146
- H -
Heap management
ISO standard, 216
MEMAVAIL and MAXAVAIL, 98
on the stack, 216
parameters, 154
Hexadecimal numbers, 134
Hexadecimal output from linker, 27
HI, 78
HLT.SRC, 8
- I -
I/O
(see also Files)
INP and OUT arrays description, 108
INP and OUT examples, 108
re-directed I/O capabilities, 108
Identifers overlay filenames, 63
Identifers
and assembly language modules, 51
Identifiers
and @, 133, 134
and assembly language modules, 51
and overlays, 59
converting to L80, 44
external signifigance, 48
legal Pascal, 134
Include files, 19
INLINE
and recursion, 112
branching, 110
code examples, 111
constant data example, 112
mini-assembler, 110
syntax, 110
INP, 108
INSERT, 87
INTEGER, 118
Interrupt procedure, 150
Interrupt procedures
8080/Z80, 105
declaration, 105
example, 105
in ROM, 127
Z80 mode 2, 105
Interrupt
hardware stack, 125
IOERR.SRC, 9
IORESULT, 95, 164
ISO standard extensions
additions to assignment compatibility rules, 145
assembly language interfacing, 51
BNF syntax description of Pascal/MT+, 199
chaining, 103
consise list of MT+ facilities, 1
ELSE clause on CASE statement, 147
INLINE and mini assembler, 110
interrupt procedures, 105
interrupt procedure example, 106
interrupt procedures, 150
modular compilation, 47
operators, 143
WRD type transfer function, 153
ISO standard
assigment compatibility, 140
changes from Jensen and Wirth for FOR loops, 148
draft used by MT MicroSYSTEMS, 1
extensions for conformant arrays, 151
summary of features, 131
type compatibility, 140
- K -
KBD:, 88
- L -
LENGTH, 82
LIBMT.COM, 7
Librarian
.BLD file, 43
L80 conversion, 44
linker searching, 43
overview, 43
Line, 169
Linker
/D and chaining, 103
attributes of compatible modules, 30
auto chain switch, 17
command file facility switch /F, 27
data origin switch /D, 26
effects of /P and /D on .COM file contents, 26
effects of using /D on local files, 26
extended map switch /E, 26
gaining memory space, 26
hex output switch /H, 27
input filenames, 25
invocation, 25
library search switch /s, 25
linking an overlay, 62
linking root, 61
load map switch /L, 26
memory map switch /M, 26
other linkers, 30
overlay area switch /V, 60
overlay example, 67
overlay group switch /0:, 60
overlay local storage /X:, 61
program origin switch /P, 26
restrictions, 55
sample, 14
sample output, 14
saving space by using /D, 26
switch summary, 28
switches, 25
LINKMT.COM, 7
Listing, 17, 21
LO, 78
Local files
(see Files)
Local variable stack, 124
LST:, 88, 174
- M -
MAXAVAIL, 98, 216
MAXINT, 118
MEMAVAIL, 98, 124, 216
Mini-assembler, 110
Modular compilation
and $E toggle, 47
and EXTERNAL, 47
example, 48
overview, 47
syntax, 47
MOVE, 72
MOVELEFT, 72
MOVERIGHT, 72
MTERRS.TXT, 6
MTPLUS.COM, 6, 9, 16
- N -
NEW, 216
NOT
and 16 bit variables, 143
Number to string routine, 181
- O -
ODD, 117, 154
OPEN, 92, 189
Operators
AND, 118
and 16 bit variables, 143
NOT, 118
OR, 118
Option Switches
compiler, 16
compiler example, 18
Option switches
linker, 25
OR
and 16 bit vairables, 143
ORD, 117, 118, 140, 154
OUT, 108
Output
formatted, 171
Overlay
@OVS, 66
and /D switch, 62, 64
and /P switch, 62, 64
and root run-time routines, 67
and run-time routines, 67
area, 58, 59
area numbers, 59
area switch /V, 60, 64
calling from root, 65
calling on non-default drive, 66
calling other overlays, 66
contents of, 59
declaration in program, 65
entry points, 59
error messages, 67
EXTERNAL, 65
features, 58
filenames, 63
group, 58, 59, 61, 65
group switch /0, 60
linking an overlay, 62, 64
linking example, 67
linking root, 61, 64
memory map, 62
number of groups, 59
re-linking, 63
reload, 66
root, 58
root symbol file, 60, 62, 64
sample overlay link, 70
sample root link, 70
space reduction, 67
static variables, 59, 62, 64, 66, 70
static variables /X:, 61
OVL files, 9
OVLMGR.MAC, 9
- P -
PACKED, 117, 137
PASLIB, 44
PASLIB.ERL, 7
PINI.SRC, 8
Pointers, 139
Portability, 20
POS, 85
Printer
writing example, 174
writing to, 174
PRN
(see Listing)
Program sample
@CMD_DEMO, 75
CHAIN1, 104
CONCAT_DEMO, 83
CONV_DEMO (redirected I/O, strings), 181
DEMOCON (conformant arrays), 152
DEMO_INLINE, 112
Demo prog (Overlays), 68
External Demo (Modular compilation), 49
FILE_TRANSFER (Block I/O), 184
FILE_TRANSFER (Byte I/O), 185
FILE_TRANSFER (Random I/O), 186
FILE_TRANSFER (GET/PUT), 187
FILE TRANSFER (Main Program Body), 188
Function @BDOS (inline demo), 111
Function KEYPRESSED, 212
INT_DEMO (interrupt procedures), 106
Module Overlay1, 69
Module Overlay2, 69
Module_Demo (Modular compilation, 50
PEEK_POKE (assembly language), 56
PPRIME, 32
PRINTER, 174
Procedure @INI, 128
Procedure @RNC, 129
Procedure @WNC, 129
Procedure ACCESS (strings), 121
Procedure ADDR_DEMO, 79
Procedure ASSIGN (strings), 120
Procedure COMPARE (strings), 122
Procedure COPY_DEMO, 84
Procedure DELETE_DEMO, 86
Procedure EXITTEST, 74
Procedure FILL_DEMO, 81
Procedure HI_LO_SWAP, 78
Procedure INSERT_DEMO, 87
Procedure LENGTH_DEMO, 82
Procedure MOVE_DEMO, 73
Procedure P0S_DEMO, 85
Procedure SHIFT_DEMO, 77
Procedure SIZE_DEMO, 80
Procedure TST_SET_CLR_BITS, 76
Procedure WAIT_DEMO, 99
RANDOM_DEMO, 176
TEXTIO_DEMO, 172
WRITE_READ_FILE_DEMO, 163
PSY, 39
PUN:, 88
PURGE, 94, 189
PUT, 165
- R -
Random file I/O, 186
RANDOMIO.ERL, 8
Range checking
(see Compiler control toggles)
(see Run-time)
RDR:, 88
READ, 168
READHEX, 97
READLN, 173
REAL
B switch, 17
BCD, 118
floating point, 118
RECORD
storage, 53
Recursion stack overflow, 24
Recursion
and debugger, 40
and GOTO, 146
compiler toggle, 19
INLINE, 112
INP and OUT, 108
local files, 88, 151
space reduction, 21
vs. non-recursion, 113
Redirected I/O
and strings, 109
ROM, 126
sample, 180
syntax, 108
Remaining memory message, 18
Requirements
host system, 5
run-time, 5
Reserved words, 198
RESET, 166
REWRITE, 164
RIM, 100
ROM, 126
ROVLMGR.ERL, 7, 66
Run-time Library
source, 8
Run-time
error handling, 114
exception checking, 20
range checking, 20
ROM based considerations, 126
routines, 207
- S -
Scalars
storage, 52
SEEKREAD, 96, 178, 183
SEEKWRITE, 96, 178, 183
SET, 53
SETBIT, 76
SHL, 77
SHR, 77
SIM, 100
SIZEOF, 80, 182
Space reduction
and @INI, 126
and linker /D switch, 26
and overlays, 67
and real arithmetic, 21
and recursion, 21
in symbol table, 21
Stack, 125
Storage of variables, 52
STRING, 169
STRING implementation details, 120
String to number routine, 181
STRING
access, 121
and interrupt procedures, 105
and READLN, 173
and redirected I/O, 109
assignment, 120
below $100H, 109
comparison, 122
CONCAT, 83
COPY, 84
default length, 137
definition, 120, 136
explicit length declaration, 137
null string, 135
run-time error, 114
use as arrays of characters, 141
Strings
DELETE, 86
INSERT, 87
LENGTH, 82
P0S, 85
SWAP, 78
Symbols nested comments, 133
Symbols
identifier significance, 134
use of @ in identifiers, 133
use of hexadecimal numeric literals, 134
use of underscore in identifiers, 134
SYP, 39
SYSMEM, 62, 124, 216
- T -
TEXT files
definition, 169
TPA, 5
TRANCEND.ERL, 7
TRM:, 88
TSTBIT, 76
Type checking toggle, 20
Type conflict
error, 139
Types
ABSOLUTE attribute for variables, 109
data implementation, 117
extended, 136
file types, 139
implementation of PACKED, 137
pointers, 139
pre-defined, 136
range of SET type, 138
restrictions on use of ABSOLUTE with strings, 109
- U -
User table space, 18
- V -
Variable access
assembly language variables from Pascal modules, 52
Pascal variables from assembly language modules, 52
Variable allocation, 52
- W -
WAIT, 99
Window variable
(see Files)
WNB, 90, 183
WORD, 119, 136
WRD, 117, 140, 153, 154
WRITE, 165
WRITEHEX, 97
WRITELN
and text files, 170