INDEX

@ A B C D E F G H I K L M N O P R S T U V W

- @ -

@
        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