JRT Pascal User's Guide Table of Contents Table of Contents ------------------- JRT Pascal version 3.0 . . . . . . . . . . . . . . . . . . . . 1 1. Introduction . . . . . . . . . . . . . . . . . . . . . 2 1.1 JRT Pascal features . . . . . . . . . . . . . . . 2 1.2 Hardware requirements . . . . . . . . . . . . . . 3 1.3 List of files . . . . . . . . . . . . . . . . . . 3 1.4 **** FOR BEGINNERS **** . . . . . . . . . . . . . 5 2. Operating JRT Pascal . . . . . . . . . . . . . . . . . . 11 2.1 Writing Pascal programs . . . . . . . . . . . . . 11 2.1.1 Identifiers . . . . . . . . . . . . . . . . . . . 11 2.1.2 Numbers . . . . . . . . . . . . . . . . . . . . . 12 2.1.3 Comments . . . . . . . . . . . . . . . . . . . . . 12 2.2 Compiling Pascal programs . . . . . . . . . . . . 13 2.3 Executing Pascal programs . . . . . . . . . . . . 14 3. Compiler Directives . . . . . . . . . . . . . . . . . . 16 3.1 Listing control . . . . . . . . . . . . . . . . . 16 3.2 Line trace . . . . . . . . . . . . . . . . . . . . 16 3.3 Procedure trace . . . . . . . . . . . . . . . . . 17 3.4 Source file Include . . . . . . . . . . . . . . . 18 4. Data Types . . . . . . . . . . . . . . . . . . . . . . . 19 4.1 Integers . . . . . . . . . . . . . . . . . . . . . 19 4.2 Real numbers . . . . . . . . . . . . . . . . . . . 19 4.3 Booleans . . . . . . . . . . . . . . . . . . . . . 20 4.4 Char . . . . . . . . . . . . . . . . . . . . . . . 20 4.5 Structured variables . . . . . . . . . . . . . . . 20 4.6 Dynamic strings . . . . . . . . . . . . . . . . . 21 4.7 Sets . . . . . . . . . . . . . . . . . . . . . . . 22 4.8 Pointers . . . . . . . . . . . . . . . . . . . . . 23 4.9 Dynamic arrays . . . . . . . . . . . . . . . . . . 23 5. Built-in functions . . . . . . . . . . . . . . . . . . . 26 5.1 ABS . . . . . . . . . . . . . . . . . . . . . . . 27 5.2 ADDR . . . . . . . . . . . . . . . . . . . . . . . 28 5.3 ARCTAN . . . . . . . . . . . . . . . . . . . . . . 29 5.4 CHR . . . . . . . . . . . . . . . . . . . . . . . 30 5.5 CONCAT . . . . . . . . . . . . . . . . . . . . . . 31 5.6 COPY . . . . . . . . . . . . . . . . . . . . . . . 32 5.7 COS . . . . . . . . . . . . . . . . . . . . . . . 33 5.8 EXP . . . . . . . . . . . . . . . . . . . . . . . 34 5.9 FREE . . . . . . . . . . . . . . . . . . . . . . . 35 5.10 HEX$ . . . . . . . . . . . . . . . . . . . . . . . 36 5.11 LENGTH . . . . . . . . . . . . . . . . . . . . . . 37 JRT Pascal User's Guide Table of Contents 5.12 LN . . . . . . . . . . . . . . . . . . . . . . . . 38 5.13 ODD . . . . . . . . . . . . . . . . . . . . . . . 39 5.14 ORD . . . . . . . . . . . . . . . . . . . . . . . 40 5.15 PORTIN . . . . . . . . . . . . . . . . . . . . . . 41 5.16 POS . . . . . . . . . . . . . . . . . . . . . . . 42 5.17 PRED . . . . . . . . . . . . . . . . . . . . . . . 43 5.18 REAL$ . . . . . . . . . . . . . . . . . . . . . . 44 5.19 ROUND . . . . . . . . . . . . . . . . . . . . . . 45 5.20 SEARCH . . . . . . . . . . . . . . . . . . . . . . 46 5.21 SIN . . . . . . . . . . . . . . . . . . . . . . . 49 5.22 SQR . . . . . . . . . . . . . . . . . . . . . . . 50 5.23 SQRT . . . . . . . . . . . . . . . . . . . . . . . 51 5.24 SUCC . . . . . . . . . . . . . . . . . . . . . . . 52 5.25 TRUNC . . . . . . . . . . . . . . . . . . . . . . 53 5.26 UPCASE . . . . . . . . . . . . . . . . . . . . . . 54 6. Built-in Procedures . . . . . . . . . . . . . . . . . . 55 6.1 CALL . . . . . . . . . . . . . . . . . . . . . . . 56 6.1.1 Calling the CP/M Operating System . . . . . . . . 57 6.2 DELETE . . . . . . . . . . . . . . . . . . . . . . 63 6.3 DISPOSE . . . . . . . . . . . . . . . . . . . . . 64 6.4 FILLCHAR . . . . . . . . . . . . . . . . . . . . . 65 6.5 INSERT . . . . . . . . . . . . . . . . . . . . . . 66 6.6 MAP . . . . . . . . . . . . . . . . . . . . . . . 67 6.7 NEW . . . . . . . . . . . . . . . . . . . . . . . 69 6.8 PORTOUT . . . . . . . . . . . . . . . . . . . . . 71 6.9 SYSTEM . . . . . . . . . . . . . . . . . . . . . . 72 7. Input/Output . . . . . . . . . . . . . . . . . . . . . . 73 7.1 Console input/output . . . . . . . . . . . . . . . 74 7.2 Sequential file processing . . . . . . . . . . . . 76 7.3 Random file processing . . . . . . . . . . . . . . 78 7.4 Indexed file processing . . . . . . . . . . . . . 80 7.4.1 Index file format . . . . . . . . . . . . . . . . 81 7.4.2 Data file format . . . . . . . . . . . . . . . . 82 7.4.3 Using INDEX . . . . . . . . . . . . . . . . . . . 84 7.4.4 INDEX commands . . . . . . . . . . . . . . . . . . 85 7.4.5 INDEX return codes . . . . . . . . . . . . . . . . 87 7.4.7 INDEX2 utility . . . . . . . . . . . . . . . . . . 88 7.4.8 Efficiency notes . . . . . . . . . . . . . . . . . 90 7.4.9 Sample Indexed file program . . . . . . . . . . . 91 7.5 CLOSE . . . . . . . . . . . . . . . . . . . . . . 96 7.5.1 EOF . . . . . . . . . . . . . . . . . . . . . . . 97 7.6 EOLN . . . . . . . . . . . . . . . . . . . . . . . 98 7.7 ERASE . . . . . . . . . . . . . . . . . . . . . . 99 7.8 GET . . . . . . . . . . . . . . . . . . . . . . . 100 7.9 OPEN . . . . . . . . . . . . . . . . . . . . . . . 101 7.10 PICTURE . . . . . . . . . . . . . . . . . . . . . 102 JRT Pascal User's Guide Table of Contents 7.11 PUT . . . . . . . . . . . . . . . . . . . . . . . 109 7.12 READ, READLN . . . . . . . . . . . . . . . . . . . 110 7.13 RENAME . . . . . . . . . . . . . . . . . . . . . . 112 7.14 RESET . . . . . . . . . . . . . . . . . . . . . . 113 7.15 REWRITE . . . . . . . . . . . . . . . . . . . . . 114 7.16 WRITE, WRITELN . . . . . . . . . . . . . . . . . . 115 8. Linker . . . . . . . . . . . . . . . . . . . . . . . . . 118 9. Customiz . . . . . . . . . . . . . . . . . . . . . . . . 119 10. Assembler . . . . . . . . . . . . . . . . . . . . . . . 120 10.1 Entry codes . . . . . . . . . . . . . . . . . . . 120 10.2 Operating JRTASM . . . . . . . . . . . . . . . . . 121 10.3 Directives . . . . . . . . . . . . . . . . . . . . 121 10.4 Expressions . . . . . . . . . . . . . . . . . . . 123 10.5 Parameters and return values . . . . . . . . . . . 124 10.6 Debugging assembler procedures . . . . . . . . . . 126 10.7 Convertm program . . . . . . . . . . . . . . . . . 127 10.8 Sample assemble programs . . . . . . . . . . . . . 127 11. Storage Management . . . . . . . . . . . . . . . . . . . 131 11.1 Main storage . . . . . . . . . . . . . . . . . . . 131 11.2 Dynamic storage . . . . . . . . . . . . . . . . . 134 12. External Procedures and Functions . . . . . . . . . . . 136 12.1 Coding external procedures and functions . . . . . 137 12.2 Referencing external procedures . . . . . . . . . 139 13. Debugging . . . . . . . . . . . . . . . . . . . . . . . 140 13.1 Trace options . . . . . . . . . . . . . . . . . . 140 13.2 DEBUG procedure . . . . . . . . . . . . . . . . . 141 13.3 System status display . . . . . . . . . . . . . . 143 13.4 Run-time messages . . . . . . . . . . . . . . . . 147 13.5 Common problems . . . . . . . . . . . . . . . . . 149 14. Extended CASE Statement . . . . . . . . . . . . . . . . 154 15. CRT Formatting . . . . . . . . . . . . . . . . . . . . . 156 15.1 Structure of external procedure . . . . . . . . . 157 15.2 Map Definition File . . . . . . . . . . . . . . . 159 15.3 Operating CRTMAP . . . . . . . . . . . . . . . . . 161 15.4 CRTMAP example . . . . . . . . . . . . . . . . . 161 JRT Pascal User's Guide Table of Contents A. Reserved words . . . . . . . . . . . . . . . . . . . . . 170 B. Activity Analyzer ACTIVAN . . . . . . . . . . . . . . . 173 C. Block Letters . . . . . . . . . . . . . . . . . . . . . 174 D. JSTAT . . . . . . . . . . . . . . . . . . . . . . . . . 176 E. JGRAF . . . . . . . . . . . . . . . . . . . . . . . . . 177 F. Restrictions . . . . . . . . . . . . . . . . . . . . . . 184  E. JGRAF . . . . . . . . . .