1 / DATAPLAN FOCAL V40.1 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 /COPYRIGHT (C) 1979,1980 BY DATAPLAN GMBH, LAUDA, BRD 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE 23 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DATAPLAN GMBH. 24 /DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR 25 /IN THIS DOCUMENT. 26 / 27 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER 28 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED 29 /(WITH INCLUSION OF DATAPLAN'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH 30 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DATAPLAN. 31 / 32 /DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY 33 /OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DATAPLAN. 34 / 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 / undefined ^ undefined ^ 106 XLIST 107 FIELD 1 108 109 /MISCELLANEOUS ITEMS 110 *0 111 10000 0001 ECHO, 1 112 10001 0000 TABC, 0 /TABCOUNTER 113 10002 0240 SPC, 240 /CONSTANT 114 10003 0000 ATSW, 0 115 10004 0000 0 116 10005 0000 0 /FOR OD 117 10006 0000 0 118 T=20 /TEXT FIELD NO. 119 P=10 /PROGRAM FIELD NO. 120 L=00 /LIBRARY FIELD NO. 121 V=10 /VARIABLE FIELD NO. 122 FPNT /ADRESS OF FLOATING POINT(LOC*7) undefined ^ 10007 0000 123 124 /AUTO INDEX REGISTERS 125 126 AXIN, LINE4 /STORAGE INDEX(LOC*10) undefined ^ 10010 0000 127 10011 0000 XRT, 0 /EXTRA XR 128 10012 0000 XRT2, 0 /EXTRA XR 129 10013 0256 PER, 256 /LET'S HOPE IT IS NOT INDIRECTLY ADRESSED! 130 10014 0000 FLTXR, 0 /XR FOR FLOATING POINT 131 10015 0000 FLTXR2, 0 /EXTRA FOR F.P. 132 10016 7522 MPER, -256 /CONSTANT 133 134 TEXTP=. /TEXT POINTERS(LOC*17) 135 AXOUT, LINE4 /OUTPUT INDEX undefined ^ 10017 0000 136 10020 7777 XCT, 7777 /UNPACK SWITCH;THESE 4 ARE PUSHED 137 10021 0000 GTEM, 0 /UNPACK STORAGE 138 PC, PC0 /PROGRAM COUNTER undefined ^ 10022 0000 139 140 10023 0000 THISLN, 0 /LINE POINTER FROM 'FINDLN' 141 10024 0000 THISOP, 0 /CURRENT 'EVAL' OPERATION 142 10025 0000 LASTLN, 0 /BACK POINTER FROM 'FINDLN' 143 10026 0001 DEBGSW, 1 /DEBUG SWITCH;NON ZERO FOR LITERAL 144 10027 0000 PACKST, 0 /RUBOUT PROTECTION 145 10030 0000 PT1, 0 /VARIABLE POINTER 146 LASTV, STVAR /ADRESS OF LAST VARIABLE undefined ^ 10031 0000 147 10032 0000 T1, 0 /TEMP. REGISTER - MAIN 148 10033 0000 T2, 0 /TEMP FOR NEW INSTR. 149 10034 0000 T3, 0 /TEMP. REGISTER FOR OUTPUT 150 10035 0000 INSUB, 0 /0=GETC;#0=READC 151 10036 0000 SUBS, 0 /VARIABLE SUBSCRIPT 152 10037 0177 P177, 177 /STEP MASK;DON'T MOVE;AND P177=37!! 153 *40 /FLOATING POINT 154 155 10040 0000 EX1, 0 /OPERAND STORAGE 156 10041 0000 AC1H, 0 157 10042 0000 AC1L, 0 158 10043 0000 OVER1, 0 159 160 FLAC=. /FLOATING ACCUMULATOR 161 10044 0000 EXP, 0 162 10045 0000 HORD, 0 163 10046 0000 LORD, 0 164 10047 0000 OVER2, 0 165 166 10050 0000 SIGNF, 0 /FLOATING SIGN 167 168 MINSKI, ACMINS /NEGATE FLAC SUBROUTINE undefined ^ 10051 0000 169 10052 0001 FISW, 1 /OUTPUT FORMAT 1=FIXED,0=FLOAT 170 INTEGE, FIX /FIX FLAC undefined ^ 10053 0000 171 172 *54 /VARIABLES - INITIALIZED FOR THE DIALOGUE 173 174 CELSO=. /ECALL PUSHES THESE FOUR 175 10054 6213 POPFP, CIF CDF P /+ECALL=15 BIT POPJ 176 10055 0000 EFOP, 0 /FUNCTION CODE 177 10056 0000 LASTOP, 0 /LAST OPERATION FOR EVAL 178 10057 0000 SORTCN, 0 /NUMBER IN TABLE FROM SORTC 179 180 BUFR, LINE4 /NEXT LOC. IN BUFFER=LAST LOC. IN TEXT undefined ^ 10060 0000 181 182 10061 4300 ADD, 4300 /CHAR. BUF. IN 183 10062 0000 XCTIN, 0000 /PACK SWITCH 184 SPLAT, "\ /OR 210=BS FOR SCOPE illegal char ^ expression ^ undefined ^ 10063 0000 illegal char ^ 10064 0000 185 INDEV, LOWIN /POINTER TO IN. SUB. undefined ^ 10065 0000 186 187 10066 0000 CNTR, 0 /DELETE AND FP 188 189 LIST6=. /INPUT LIST FOR "SFOUND" 190 10067 0213 CVT, 213 /V.T. (^K) 191 10070 0207 207 /BELL 192 LIST7=. 193 10071 0375 375 /ALT MODE 194 10072 0233 233 /ESCAPE 195 10073 0225 225 /^U 196 10074 0337 P337, 337 /LEFT ARROW 197 10075 0212 CLF, 212 /L.F. 198 LIST3=. /EXCRETION LIST 199 10076 0215 CCR, 215 /LIST BRANCHER 200 10077 7402 DMPSW, HLT /(SEARCH CHAR)-VARIABLE 201 /=0000 FOR TRACE ON 202 10100 7600 P7600, 7600 /ENDS LISTS 203 10101 0077 P77, 77 /DON'T MOVE;AND P77=100!!! 204 /CONSTANTS 205 206 10102 0013 P13, 13 /USEFUL CONSTANT 207 10103 0200 C200, 200 208 10104 7701 M77, -77 /EXTEND CODE TEST 209 10105 0017 P17, 17 /BCD MASK 210 10106 0277 P277, 277 /"?" 211 10107 7776 M2, -2 /CONSTANT 212 ERROR2=JMS I . /FIELD 1 ERROR ADRESS 213 ERROR /KEEP IT AT LOC. 107;SAME ADRESS IN USR;VOL!! undefined ^ 10110 0000 214 10111 0260 C260, 260 /ASCII FOR ZERO 215 10112 7773 M5, -5 /PAREN TEST 216 10113 7767 M11, -11 /PAREN TEST 217 10114 0040 P40, 40 218 10115 0010 FSIZE, 10 219 10116 0004 DECP, 4 220 10117 0012 DIGITS, 12 221 10120 7774 MFLT, -WORDS /=-4 FOR 4-WORD 222 223 10121 0001 NAGSW, 0001 /4000=ONE;1=ALL;0=GROUP;ALSO PUSHED 224 10122 0215 CHAR, 215 /THE MOST IMPORTANT REGISTER 225 10123 0000 LINENO, 0000 /LINE NUMBER READ BY GETLN 226 10124 0006 GINC, WORDS+2 /=6 FOR 4-WORD-CONSTANT 227 /POINTERS ETC. 228 229 PAXPNT, PDLXR /POINTER FOR RESET undefined ^ 10125 0000 230 FLARGP, FLARG /DATA ADRESS undefined ^ 10126 0000 231 CFRSX, FLTZER /POINTER TO ZERO DATA & undefined ^ 10127 0000 232 DOUBLE, MULT2 /MULTIPLY FLAC BY 2 undefined ^ 10130 0000 233 FOUTPU, FLOUTP /FLOATING OUTPUT undefined ^ 10131 0000 234 FINPUT, FLINTP /FLOATING INPUT undefined ^ 10132 0000 235 CFRS, LINE0 /ADRESS OF DUMMY LINE undefined ^ 10133 0000 236 END, STVAR /FIRST LOCATION undefined ^ 10134 0000 237 DECALL, ECALL /RECURSIVE EVAL undefined ^ 10135 0000 238 DPART, PARTES /PAREN COMPARE ETC. undefined ^ 10136 0000 239 ENDT, LINE1 undefined ^ 10137 0000 240 241 WORDS=4 242 243 /PDL INSTRUCTIONS 244 245 POPA=JMS I . /RESTORE AC 246 10140 0417 XPOPA 247 PUSHJ=JMS I . /RECURSIVE SUB. CALL 248 XPUSHJ undefined ^ 10141 0000 249 POPJ=JMP I . /SUB. RETURN 250 10142 0447 XPOPJ 251 PUSHA=JMS I . /SAVE AC 252 10143 0425 XPUSHA 253 PUSHF=JMS I . /SAVE GROUP OF DATA 254 10144 0433 XPUSHF 255 POPF=JMS I . /RESTORE GROUP 256 10145 0441 XPOPF 257 /NEW INSTRUCTIONS: 258 259 STOCHR=JMS I . 260 CHRSTO /STORE A CHARACTER undefined ^ 10146 0000 261 TSTCHR=JMS I . 262 10147 0560 CHRTST /SKIPS IF CHAR=ARG 263 GETC=JMS I . /UNPACK A CHARACTER 264 UTRA undefined ^ 10150 0000 265 PACKC=JMS I . /PACK A CHARACTER 266 PACBUF undefined ^ 10151 0000 267 SORTJ=JMS I . /SORT AND BRANCH ON AC OR CHAR 268 10152 1153 SORTB 269 SORTC=JMS I . /SORT CHAR 270 10153 0717 XSORTC 271 PRINTC=JMS I . /PRINT AC OR CHAR 272 OUT undefined ^ 10154 0000 273 READC=JMS I . /READ DATA INTO CHAR AND PRINT IT 274 10155 0527 IN 275 PRNTLN=JMS I . /PRINT C(LINENO) 276 XPRNT undefined ^ 10156 0000 277 GETLN=JMS I . /UNPACK AND FORM A LINENUMBER 278 10157 0243 CNUM, XGETLN 279 FINDLN=JMS I . /SEARCH FOR A GIVEN LINE 280 XFIND undefined ^ 10160 0000 281 SPNOR=JMS I . /IGNORE SPACES AND LEADING ZEROS 282 XSPNOR undefined ^ 10161 0000 283 TESTN=JMS I . /PERIOD;OTHER;NUMBER 284 XTESTN undefined ^ 10162 0000 285 TSTLPR=JMS I . /SKIP IF 5.L.SORTCN.L.E.11(I.E. AN L-PAR) 286 LPRTST undefined ^ 10163 0000 287 TSTGRP=JMS I . /SKIP IF G(AC)=G(LINENO) 288 10164 0745 GRPTST 289 TESTC=JMS I . /TERM;NUMBER;FUNCTION;LETTER- AND IGNORE SPACES 290 10165 0677 XTESTC 291 DELETE=JMS I . /REMOVE OLD TEXT LINE 292 XDELETE undefined ^ 10166 0000 293 DRONEP=JMS I . 294 XDRONE undefined ^ 10167 0000 295 /VARIOUS NEW POINTERS ETC. 296 297 DPC, PCD /PC undefined ^ 10170 0000 298 DTHIS, THISD /THISLN undefined ^ 10171 0000 299 DPT1, PT1D /PT1 undefined ^ 10172 0000 300 DXRT, XRTD /(TAD I XRT) undefined ^ 10173 0000 301 DAXIN, AXIND /(DCA I AXIN) undefined ^ 10174 0000 302 SECRTV, STSECR /FOR SECRET VARIABLES undefined ^ 10175 0000 303 10176 0000 EOL, 0 /END OF LINE SWITCH 304 PDLSTR, PDLEND-1 /START OF PDL undefined ^ 10177 7777 305 /FOCAL'S COMMAND/INPUT DRIVER 306 307 *177 308 10177 0200 START, NEW /PROGRAM START FROM SELF (INDIRECT)(OR TO FORLEX) 309 10200 1103 NEW, TAD C200 310 10201 3022 DCA PC /FOR COMMAND MODE 311 10202 7001 IAC /USE ONE IN THE AC TO 312 10203 3077 DCA DMPSW /INIT UNPACK AND TRACE SWITCH 313 10204 3026 DCA DEBGSW /ENABLE TRACE FOR INPUT OF (?) 314 10205 1177 TAD PDLSTR /SET HIGH LIMIT FOR PDL 315 10206 6221 CDF T 316 10207 3525 DCA I PAXPNT 317 10210 6211 CDF P 318 10211 3000 DCA ECHO /PRINT ONLY IF ECHO 319 10212 2176 ISZ EOL /CHECK IF CR TERMINATED 320 10213 5324 JMP IBAR /NO;($) TREAT LIKE ^U,_ 321 10214 1157 IBAR1, TAD CNUM /ANNOUNCE PRESENCE WITH # 322 10215 4554 PRINTC 323 10216 2000 ISZ ECHO 324 10217 1060 TAD BUFR /COMMAND INPUT BUFFER 325 10220 3010 DCA AXIN /FOR UNPACKING 326 10221 3062 DCA XCTIN 327 10222 1060 TAD BUFR /RUBOUT PROTECTION 328 10223 3027 DCA PACKST 329 10224 4555 IGNOR, READC /READ COMMAND STRING 330 10225 4552 SORTJ 331 10226 0070 LIST7-1 332 INLIST-LIST7 undefined ^ 10227 7707 333 10230 4551 PACKC /SAVE STRING CHARACTER 334 10231 5224 JMP IGNOR 335 336 10232 4541 INPUTX, PUSHJ /PROCESS IMMEDIATE COMMAND 337 10233 0614 PROC 338 10234 4570 JMS I DPC /TAD I PC 339 10235 7450 SNA /END OF PROGRM? 340 10236 5577 JMP I START /YES 341 10237 3022 DCA PC /SAVE NEW LINE NO 342 10240 1022 TAD PC /START NEW LINE 343 10241 7001 IAC 344 10242 5337 JMP GONE /PROCESS OTHER COMMANDS 345 346 /TEXT LINE BUFFER FORMAT 347 /#1 : POINTER OR ZERO IN LAST 348 /#2 : LINENO 349 /#3 - #N+1 : TEXT 350 /#N : C.R. 351 /LINE NUMBER FORMATION;RANGE OF ACCEPTIBLE LINE NUMBERS 352 /=1.01 TO 31.99 353 10243 0000 XGETLN, 0 /COMPUTED LINE #'S 354 10244 4561 SPNOR /IGNORE SPACES 355 10245 4547 TSTCHR /'A' IS SPECIAL 356 -"A illegal char ^ expression ^ undefined ^ 10246 0000 undefined ^ 10247 0000 357 10250 7410 SKP 358 10251 5276 JMP TESTA 359 10252 4541 PUSHJ /EVALUATE NUMBER OR EXPRESSION 360 EVAL undefined ^ 10253 0000 361 10254 4453 JMS I INTEGER /GET GROUP PART 362 10255 1310 TAD P7740 /CHECK IF TOO BIG 363 10256 7700 SMA CLA 364 10257 4510 GZERR, ERROR2 /BAD GROUP # 365 10260 0206 206 /IG 366 10261 1046 TAD LORD /GET GROUP AGAIN 367 10262 7002 BSW 368 10263 7104 CLL RAL 369 10264 3123 DCA LINENO /SAVE IT 370 10265 4451 JMS I MINSKI 371 10266 7000 NOP /CDF V AFTER FENT 372 10267 4407 FENT 373 10270 1526 FADD I FLARGP /GET FRACTION 374 10271 4315 FMUL FL100 375 10272 1320 FADD FLP5 /ROUND UP 376 10273 0000 FEXT 377 10274 4453 JMS I INTEGER 378 10275 1123 TAD LINENO /ADD GROUP 379 10276 3123 TESTA, DCA LINENO 380 10277 7300 CLA CLL 381 10300 1123 TAD LINENO /CHECK FOR ERROR 382 10301 0100 AND P7600 383 10302 7640 SZA CLA 384 10303 7020 CML 385 10304 1123 TAD LINENO 386 10305 0037 AND P177 387 10306 7460 SNL SZA 388 10307 5257 JMP GZERR /ILLEGAL GROUP ZERO USAGE 389 10310 7740 P7740, SMA SZA CLA /SMA FOR 7740 390 10311 1321 TAD P2000 /SET NAGSW;GROUP=0,LINE=4000,ALL=1 391 10312 7024 CML RAL 392 10313 3121 DCA NAGSW 393 10314 5643 JMP I XGETLN 394 10315 0007 FL100, 0007 395 10316 3100 3100 396 10317 0000 0000 397 10320 0000 FLP5, 0000 398 10321 2000 P2000, 2000 399 10322 0000 0000 400 10323 0000 0000 401 10324 1076 IBAR, TAD CCR /ALTESC AND ^U,_ COME HERE 402 10325 4554 PRINTC 403 10326 5214 JMP IBAR1 404 405 /COMMAND/INPUT PROCESSOR 406 407 10327 1076 ESRETN, TAD CCR 408 10330 4546 STOCHR /ESCAPE CONVERTED TO CR 409 10331 7240 CLA CMA 410 10332 7040 IRETN, CMA 411 10333 3176 DCA EOL /EOL REMEMBERS WHICH 412 10334 4551 PACKC /START TO PACK C.R. 413 10335 4551 PACKC /FINISH C.R. 414 10336 1060 TAD BUFR /INITIALIZE FOR UNPACKING 415 10337 3017 GONE, DCA AXOUT /SETUP CURRENT LINE 416 10340 3020 DCA XCT 417 10341 4550 GETC /READ FIRST CHARACTER 418 10342 1310 TAD P7740 419 10343 1177 TAD PDLSTR /SET LOW LIMIT FOR PDL 420 10344 6221 CDF T 421 10345 3525 DCA I PAXPNT 422 10346 6211 CDF P 423 10347 4561 SPNOR /IGNOR LEADING BLANKC 424 10350 4562 TESTN /DOES THE LINE BEGIN WITH 1-9? 425 10351 5257 JMP GZERR /PERIOD =ILLEGAL GROUP ZERO USAGE 426 10352 5232 JMP INPUTX /NO 427 10353 2026 ISZ DEBGSW /YES, DISABLE TRACE FOR REPACKING 428 10354 4557 GETLN /READ THIS LINE NUMBER 429 10355 7330 CLA CLL CML RAR /TEST FOR SINGLE LINE 430 10356 1121 TAD NAGSW 431 10357 7640 SZA CLA 432 10360 4510 ERROR2 /ILLEGAL LINE NUMBER ON INPUT 433 10361 0213 213 /IL 434 10362 1060 TAD BUFR /SET POINTERS 435 10363 3010 DCA AXIN 436 10364 3062 DCA XCTIN 437 10365 1123 TAD LINENO /SAVE LINE # 438 10366 4574 JMS I DAXIN /DCA I AXIN 439 10367 4561 SPNOR /IGNORE SPACES AFTER LINE NUMBER 440 10370 7410 SKP 441 10371 4550 GETC /READ 1ST AFTER LINENO TERMINATOR 442 10372 4551 SRETN, PACKC /SAVE TEXT AND RESTORE DATA FIELD 443 10373 4547 TSTCHR /TEST FOR END OF INPUT STRING 444 10374 7563 -215 /-C.R. 445 10375 5371 JMP .-4 446 10376 4566 DELETE /REMOVE OLD LINE, IF ANY 447 10377 6221 CDF T /TERMINATE THE BUFFER LINE:OLD "ENDLN" 448 10400 1425 TAD I LASTLN 449 10401 3460 DCA I BUFR 450 10402 1060 TAD BUFR /POINT TO NEW NEXT LINE 451 10403 3425 DCA I LASTLN 452 10404 1061 TAD ADD /CHECK FOR EXTRA INFO. 453 10405 7440 SZA 454 10406 3410 DCA I AXIN 455 10407 1010 TAD AXIN /COMPUTE NEW END OF BUFFER 456 10410 7001 IAC 457 10411 3060 DCA BUFR 458 10412 6201 GOKILL, CDF L 459 10413 3616 DCA I LIBN /WE'VE CHANGED SOMETHING 460 10414 6211 CDF P 461 10415 5577 START1, JMP I START /POINTERS MUST BE REINITIALIZED 462 LIBN, LIBFIL undefined ^ 10416 0000 463 /PUSHDOWN LIST SATELLITES 464 465 FLD1=CLA CLL IAC 466 467 10417 0000 XPOPA, 0 468 MQL undefined ^ 10420 0000 469 10421 7301 FLD1 470 10422 6222 CIF T 471 10423 4624 JMS I .+1 472 ZPOPA undefined ^ 10424 0000 473 474 10425 0000 XPUSHA, 0 475 MQL undefined ^ 10426 0000 476 10427 7301 FLD1 477 10430 6222 CIF T 478 10431 4632 JMS I .+1 479 ZPUSHA undefined ^ 10432 0000 480 481 10433 0000 XPUSHF, 0 482 MQL undefined ^ 10434 0000 483 10435 7301 FLD1 484 10436 6222 CIF T 485 10437 4640 JMS I .+1 486 ZPUSHF undefined ^ 10440 0000 487 488 10441 0000 XPOPF, 0 489 MQL undefined ^ 10442 0000 490 10443 7301 FLD1 491 10444 6222 CIF T 492 10445 4646 JMS I .+1 493 ZPOPF undefined ^ 10446 0000 494 495 10447 6223 XPOPJ, CIF CDF T 496 10450 5651 JMP I .+1 497 ZPOPJ undefined ^ 10451 0000 498 /RECURSIVE OPERATE, EXECUTE, OR CALL 499 500 10452 4557 DO, GETLN /EXECUTE ONE LUNE, A GROUP, OR ALL 501 10453 4544 PUSHF /SAVE REST OF THIS LINE 502 10454 0017 TEXTP /AXOUT,XCT,GTEM,PC 503 10455 4544 DGRP, PUSHF /SAVE NAGSW; CHAR; AND LINENO 504 10456 0121 NAGSW 505 10457 1121 TAD NAGSW /CHECK DATA FROM GETLN 506 10460 7710 SPA CLA /SKIP IF GROUP OR ALL 507 10461 5314 JMP DOONE /DO ONE LINE 508 10462 4560 FINDLN /INIT FOR GROUP AND SET THISLN 509 10463 0233 INDOL, 233 /WILL BE CHANGED TO '$' (PERHAPS) 510 10464 1023 TAD THISLN /TEST FOR GOOD GROUP NUMBER 511 10465 3011 DCA XRT 512 10466 4573 JMS I DXRT /TAD I XRT 513 10467 4564 TSTGRP 514 10470 4510 ERROR2 /NO SUCH GROUP NUMBER 515 10471 0066 66 /DG 516 10472 4541 DGRP1, PUSHJ /EXECUTE OBJECT LINE AND SET PC 517 10473 0611 PROCESS-2 518 10474 4545 POPF /RESTORE THE DATA 519 10475 0121 NAGSW 520 10476 4570 JMS I DPC /CHECK FOR END OF TEXT 521 10477 7450 SNA 522 10500 5323 JMP DCONT /ALL DONE 523 10501 7001 IAC 524 10502 3030 DCA PT1 /SAVE POINTER TO LINENO 525 10503 1121 TAD NAGSW /CHECK FOR GROUP 526 10504 7740 SMA SZA CLA 527 10505 5311 JMP .+4 /DO ALL 528 10506 4572 JMS I DPT1 /TEST GROUP 529 10507 4564 TSTGRP /AGAINST LINENO 530 10510 5323 JMP DCONT /NOT IN GROUP 531 10511 4572 JMS I DPT1 /READ NEXT LINE NO 532 10512 3123 DCA LINENO 533 10513 5255 JMP DGRP /CONTINUE THE SUBROUTINE 534 535 10514 4560 DOONE, FINDLN /FIND THE LINE 536 10515 4510 ERROR2 /NO SUCH LINE NUMBER 537 10516 0073 73 /DL 538 10517 4541 PUSHJ /EXECUTE IT 539 10520 0611 PROCESS-2 /AND SET PC 540 10521 4545 POPF /RESTORE CHAR 541 10522 0121 NAGSW 542 10523 4545 DCONT, POPF /RESTORE TEXT POINTERS 543 10524 0017 TEXTP 544 10525 5726 JMP I .+1 /CONTINUE PROCESSING THIS LINE 545 10526 0614 PROC 546 10527 0000 IN, 0 /READ IN A CHARACTER SUBROUTINE."READC" 547 10530 3354 DCA INCOMP /IF AC # 0 THEN KEEP CHAR TO COMPARE 548 10531 6203 CIF CDF L 549 10532 4465 JMS I INDEV 550 10533 4546 INCONV, STOCHR 551 10534 1122 TAD CHAR 552 10535 7041 CIA /NOW COMPARE 553 10536 1354 TAD INCOMP 554 10537 7650 SNA CLA 555 10540 5542 POPJ /FOUND IT;EXIT FROM 'FIND' 556 10541 3000 DCA ECHO 557 10542 4552 SORTJ 558 ECHOLST-1 /LF. OR RUB.:IGNORE undefined ^ 10543 7777 559 ECHOGO-ECHOLST /ALT.:CHANGE,ESC.:PRINT undefined ^ undefined ^ 10544 0000 560 10545 4554 PRINTC 561 10546 2000 INEX, ISZ ECHO 562 10547 5727 JMP I IN 563 564 10550 4453 FIND, JMS I INTEGE /GET VALUE OF SEARCH CHAR. 565 10551 4555 READC /PASS IT ON TO 'IN' 566 10552 1354 TAD INCOMP 567 10553 5351 JMP .-2 /LOOP;'IN' WILL GIVE 'POPJ' 568 10554 0000 INCOMP, 0 569 570 10555 2000 INALT, ISZ ECHO /FOR 'FIND' POPJ 571 10556 1263 TAD INDOL 572 10557 5333 JMP INCONV /CONVERT TO ESC 573 574 10560 0000 CHRTST, 0 /TEST CHAR SUB; "TSTCHR" 575 10561 1760 TAD I CHRTST /GET ARG 576 10562 2360 ISZ CHRTST /BUMP PAST ARG 577 10563 1122 TAD CHAR 578 10564 7650 SNA CLA 579 10565 2360 ISZ CHRTST /SKIP IF EQUAL 580 10566 5760 JMP I CHRTST 581 582 10567 4561 TERMER, SPNOR /GOES TO TERMINATOR 583 10570 1122 TAD CHAR /SAVE TEMP. 584 MQL /FASTER THAN PUSHA undefined ^ 10571 0000 585 10572 4553 SORTC 586 GLIST-1 undefined ^ 10573 7777 587 10574 5542 POPJ /FIRST CHAR IN MQ 588 10575 4550 GETC 589 10576 5372 JMP TERMER+3 590 10577 1070 FLIST2, FLIMIT /,=STANDARD 591 10600 1133 FINFIN /;=SHORT 592 10601 1066 FLIMIT-2 /CR=DUMB 593 594 10602 1060 FLIST1, FINCR /,=STANDARD FORMAT 595 10603 0613 PROCESS /;=SET;PLUS,.. 596 10604 0620 PC1 /C.R.=SET COMMAND 597 598 /PRIMARY CONTROL AND TRANSFER 599 600 10605 4557 GOTO, GETLN /READ THE LINE NUMBER REQUESTE 601 10606 4560 FINDLN /LOCATE IT AND RESET TEXTP 602 10607 4510 ERROR2 /NOT THERE 603 10610 0156 156 /GO 604 10611 1023 TAD THISLN /SET PC;DON'T MOVE ;REF. "DO" 605 10612 3022 DCA PC 606 10613 4550 PROCESS,GETC /TEST FOR END OF LINE 607 10614 4567 PROC, DRONEP 608 10615 4547 TSTCHR /FIRST CHARACTER READY = USE PROC 609 10616 7563 -215 /C.R. 610 10617 7410 SKP 611 10620 5542 PC1, POPJ /EXIT "PROCESS" 612 10621 4553 SORTC /IGNORE "SPACE",",", AND ";" 613 GLIST-1 undefined ^ 10622 7777 614 10623 5213 JMP PROCESS 615 10624 4541 PUSHJ /GO TO TERMINATOR 616 10625 0567 TERMER 617 MQA undefined ^ 10626 0000 618 10627 0074 AND P337 /ALLOW LOWER CASE 619 10630 4552 SORTJ /GO DO COMMAND 620 10631 0771 COMLST-1 621 10632 0215 COMGO-COMLST 622 10633 4510 ERROR2 /ILLEGAL COMMAND 623 10634 0202 202 /IC 624 625 COMMENTS=PC1 /ALSO IS CONTINUE 626 /OUTPUT COMMAND TEXT 627 628 10635 4557 WRITE, GETLN /SET LINENO OR 'DCA LINENO' *KEY* 629 10636 2026 ISZ DEBGSW /DISABLE TRACE 630 10637 4560 FINDLN /SEARCG FOR LINE NUMBER 631 10640 5266 JMP WTESTG /NOT THERE OR GROUP OR '0' *KEY* 632 10641 1123 TAD LINENO 633 10642 7640 SZA CLA 634 10643 4556 PRNTLN /PRINT LINE NUMBER AND A SPACE 635 10644 4550 GETC 636 10645 4554 PRINTC /PRINT TEXT OF A LINE 637 10646 4547 TSTCHR 638 10647 7563 -215 /C.R. 639 10650 5244 JMP .-4 640 10651 4571 JMS I DTHIS /TEST FOR END OF TEXT OR '0' *KEY* 641 10652 7450 WTEST2, SNA 642 10653 5270 JMP WX-2 /EXIT;DO NEXT INDIRECT LINE 643 10654 7001 IAC 644 10655 3030 DCA PT1 /SAVE POINTER TO LINENO OF NEXT 645 10656 1121 TAD NAGSW 646 10657 7700 SMA CLA 647 10660 4572 JMS I DPT1 648 10661 4564 TSTGRP /TRY NEXT LINENO FOR GROUP 649 10662 5272 JMP WX 650 10663 4572 WALL, JMS I DPT1 /SET LINENO 651 10664 3123 DCA LINENO 652 10665 5237 JMP WRITE+2 653 654 10666 1023 WTESTG, TAD THISLN /INIT GROUP PRINTOUT 655 10667 5252 JMP WTEST2 656 657 10670 3026 DCA DEBGSW 658 10671 5542 POPJ 659 10672 1121 WX, TAD NAGSW 660 10673 7750 SPA SNA CLA /SKIP IF ALL 661 10674 5270 JMP WX-2 662 10675 4554 PRINTC /PRINT C.R. AGAIN 663 10676 5263 JMP WALL 664 10677 0000 XTESTC, 0 /TEST THE NATURE OF THE NEXT ALPHANUMERIC - "TESTC" 665 10700 4561 SPNOR /IGNORE SPACES 666 10701 4553 SORTC /TEST THE VARIABLE TERMINATORS 667 TERMS-1 undefined ^ 10702 7777 668 10703 5677 JMP I XTESTC /YES - SORTCN IS SET 669 10704 2277 ISZ XTESTC /NO 670 10705 4562 TESTN 671 10706 5677 JMP I XTESTC /. 672 10707 7410 SKP /OTHER 673 10710 5677 JMP I XTESTC /NUMBER 674 10711 4547 TSTCHR 675 -"F /SKIP IF 'F' illegal char ^ expression ^ undefined ^ 10712 0000 undefined ^ 10713 0000 676 10714 2277 ISZ XTESTC 677 10715 2277 ISZ XTESTC /RETURNS:T;N;F;A 678 10716 5677 JMP I XTESTC 679 680 10717 0000 XSORTC, 0 /SORT CHAR OR AC AGAINST TABLE - "SORIC" 681 10720 7450 SNA /AC? 682 10721 1122 TAD CHAR /NO.TAKE CHAR 683 10722 3033 DCA T2 /STORE IN TEMP 684 10723 1717 TAD I XSORTC 685 10724 3012 DCA XRT2 /1ST ARG IS LIST-1 686 10725 1412 TAD I XRT2 687 10726 7510 SPA /LIST IS ENDED BY A NEGATIVE NUMBER 688 10727 5341 JMP SEXC /2AND EXIT = NOT IN LIST 689 10730 7041 CIA 690 10731 1033 TAD T2 691 10732 7640 SZA CLA /COMPARE 692 10733 5325 JMP .-6 693 10734 1717 TAD I XSORTC /COMPUTE INCREMENT : 0 - N 694 10735 7040 CMA 695 10736 1012 TAD XRT2 696 10737 3057 DCA SORTCN 697 10740 7410 SKP /1ST EXIT = YES 698 10741 2317 SEXC, ISZ XSORTC 699 10742 2317 ISZ XSORTC 700 10743 7200 CLA 701 10744 5717 JMP I XSORTC 702 10745 0000 GRPTST, 0 /AC VS LINENO - "TSTGRP" 703 10746 0100 AND P7600 704 10747 7041 CIA 705 10750 3033 DCA T2 706 10751 1123 TAD LINENO 707 10752 0100 AND P7600 708 10753 1033 TAD T2 709 10754 7650 SNA CLA 710 10755 2345 ISZ GRPTST 711 10756 5745 JMP I GRPTST 712 /INPUT FROM TEXT OR KEYBOARD; 713 /IF BACK-ARROW, RESTART INPUT 714 715 10757 0000 INPUT, 0 /INPUT A CHARACTER 716 10760 1035 TAD INSUB /NON/ZERO FOR KEYBOARD 717 10761 7640 SZA CLA 718 10762 5365 JMP .+3 719 10763 4550 GETC 720 10764 5757 JMP I INPUT 721 10765 4555 READC 722 10766 4552 SORTJ 723 SPECIAL-1 undefined ^ 10767 7777 724 INFIX-SPECIAL undefined ^ undefined ^ 10770 0000 725 10771 5757 INPUAC, JMP I INPUT 726 727 COMLST=. /COMMAND DECODING LIST 728 "S /SET illegal char ^ expression ^ undefined ^ 10772 0000 undefined ^ 10773 0000 729 "F /FOR illegal char ^ expression ^ undefined ^ 10774 0000 undefined ^ 10775 0000 730 "I /IF illegal char ^ expression ^ undefined ^ 10776 0000 10777 0400 731 "B /BRANCH illegal char ^ expression ^ undefined ^ 11000 0000 undefined ^ 11001 0000 732 "D /DO illegal char ^ expression ^ undefined ^ 11002 0000 undefined ^ 11003 0000 733 "G /GOTO illegal char ^ expression ^ undefined ^ 11004 0000 undefined ^ 11005 0000 734 "C /COMMENT illegal char ^ expression ^ undefined ^ 11006 0000 undefined ^ 11007 0000 735 "A /ASK illegal char ^ expression ^ undefined ^ 11010 0000 undefined ^ 11011 0000 736 "T /TYPE illegal char ^ expression ^ undefined ^ 11012 0000 11013 0020 737 "L /LIBRARY illegal char ^ expression ^ undefined ^ 11014 0000 11015 0000 738 "E /ERASE illegal char ^ expression ^ undefined ^ 11016 0000 undefined ^ 11017 0000 739 "W /WRITE illegal char ^ expression ^ undefined ^ 11020 0000 undefined ^ 11021 0000 740 "M /MODIFY illegal char ^ expression ^ undefined ^ 11022 0000 undefined ^ 11023 0000 741 "Q /QUIT illegal char ^ expression ^ undefined ^ 11024 0000 undefined ^ 11025 0000 742 "R /RETURN illegal char ^ expression ^ undefined ^ 11026 0000 undefined ^ 11027 0000 743 "O /OPEN illegal char ^ expression ^ undefined ^ 11030 0000 undefined ^ 11031 0000 744 / "X /EXTRA 745 746 /THIS COMMAND LIST IS SPEED OPTIMIZED;"FOR" ENDS IT 747 /LOOP CONTROL STATEMENT 748 749 SET=. /SUBSET OF "FOR" 750 11032 4541 FOR, PUSHJ /LOOPS, ETC. 751 GETARG /LOOK FOR "=" NEXT undefined ^ 11033 0000 752 11034 4561 SPNOR 753 11035 4547 TSTCHR 754 -"= illegal char ^ expression ^ undefined ^ 11036 0000 illegal char ^ 11037 0000 755 11040 4510 ERROR2 /LEFT OF "=" IN ERROR:'FOR' OR 'SET' 756 11041 0324 324 /NE 757 11042 4336 JMS SAVNAM /SAVE NAME OF VARIABLE 758 11043 4541 PUSHJ 759 EVAL-1 /GET INITIAL VALUE EXPRESSION undefined ^ 11044 7777 760 11045 4344 JMS GETNAM /ALL THIS FOR ZEROED VARS 761 11046 7000 NOP /EVENTUALLY FCDF V 762 11047 4407 FINT /INITIALIZE NOW 763 11050 0526 FGET I FLARGP /FLAC GETS KILLED BY GETNAM 764 11051 6430 FPUT I PT1 765 11052 0000 FXIT 766 11053 4552 SORTJ /TEST LAST CHAR FROM "EVAL" 767 TLIST-1 undefined ^ 11054 7777 768 FLIST1-TLIST undefined ^ 11055 0602 769 11056 4510 ERROR2 /EXCESS R-PAR 770 11057 0117 117 /EP 771 11060 4336 FINCR, JMS SAVNAM /SAVE VARIABLE NAME 772 11061 4541 PUSHJ /EVALUATE THE INCREMENT,IF ANY 773 EVAL-1 undefined ^ 11062 7777 774 11063 4552 SORTJ /TEST TERMINATORS 775 TLIST-1 undefined ^ 11064 7777 776 FLIST2-TLIST undefined ^ 11065 0577 777 11066 4510 ERROR2 /ILLEGAL TERMINATOR IN 'FOR' 778 11067 0122 122 /FC=FOR COMMAND 779 11070 6211 FLIMIT, CDF V 780 11071 4544 PUSHF /SAVE THE INCREMENT 781 FLARG undefined ^ 11072 0000 782 11073 4541 PUSHJ /GET THE LIMIT(NO ERROR DETECTION AFTER LIMIT) 783 EVAL-1 undefined ^ 11074 7777 784 11075 6211 FCONT, CDF V 785 11076 4544 PUSHF /SAVE THE LIMIT 786 FLARG undefined ^ 11077 0000 787 11100 4544 PUSHF /SAVE TEXT OF OBJECT STATEMENTS 788 11101 0017 TEXTP 789 11102 4541 PUSHJ /DO THE OBJECT STATEMENTS 790 11103 0613 PROCESS 791 11104 4545 POPF /RESTORE REMAINING TEXT 792 11105 0017 TEXTP 793 11106 6211 CDF V 794 11107 4545 POPF /GET LIMIT 795 FLARG undefined ^ 11110 0000 796 11111 4545 POPF /GET INCREMENT 797 ITER1 undefined ^ 11112 0000 798 11113 4344 JMS GETNAM /GET VARIABLE NAME 799 11114 7000 NOP /FCDF V;IN AFTER FGET 800 11115 4407 FINT /INCREMENT AND TEST 801 11116 0731 FGET I FINKP /LOAD INCREMENT 802 11117 1430 FADD I PT1 /ADD VARIABLE 803 11120 6430 FPUT I PT1 /CHANGE IT 804 11121 2526 FSUB I FLARGP /TEST IT 805 11122 4731 FMUL I FINKP /ABSOLUTE FOR TEST 806 11123 0000 FXIT 807 11124 1045 TAD HORD 808 11125 7740 SMA SZA CLA 809 11126 5542 POPJ /END OF LOOP 810 11127 4336 JMS SAVNAM /SAVE NAME 811 11130 4544 PUSHF /SAVE INCREMENT AGAIN 812 FINKP, ITER1 undefined ^ 11131 0000 813 11132 5275 JMP FCONT 814 815 11133 4544 FINFIN, PUSHF /SET INCREMENT TO ONE 816 FLTONE undefined ^ 11134 0000 817 11135 5275 JMP FCONT 818 819 11136 0000 SAVNAM, 0 /LOCAL SUB TO SAVE NAME AND SUBSCRIPT IN PDL 820 11137 1036 TAD SUBS 821 11140 4543 PUSHA 822 11141 1055 TAD EFOP 823 11142 4543 PUSHA 824 11143 5736 JMP I SAVNAM 825 826 11144 0000 GETNAM, 0 /IDEM FOR GETTING 827 11145 4540 POPA 828 11146 3055 DCA EFOP 829 11147 4540 POPA 830 11150 4541 PUSHJ /PASSES AC 831 GS1 /SETS PT1 undefined ^ 11151 0000 832 11152 5744 JMP I GETNAM 833 834 11153 0000 SORTB, 0 /SORT AND BRANCH ROUTINE. - "SORTJ" 835 11154 7450 SNA 836 11155 1122 TAD CHAR /ASSUME CHAR IF AC=0 837 11156 7041 CIA 838 11157 3033 DCA T2 /SAVE SORT ITEM 839 11160 1753 TAD I SORTB /FIRST ARG IS LIST LESS ONE 840 11161 2353 ISZ SORTB /2AND IS INTRA-LIST LENGTH 841 11162 3012 DCA XRT2 842 11163 1412 TAD I XRT2 843 11164 7510 SPA /**LISTS ENDED BY NEGATIVE NUMBER** 844 11165 5377 JMP SEX /READ EXIT 845 11166 1033 TAD T2 /FIND ADRESS 846 11167 7640 SZA CLA 847 11170 5363 JMP .-5 848 11171 1012 TAD XRT2 /MATCH FOUND 849 11172 1753 TAD I SORTB 850 11173 3033 DCA T2 851 11174 1433 TAD I T2 852 11175 3353 DCA SORTB 853 JMP SEX+1 off page ^ 11176 5777 854 855 11177 2353 SEX, ISZ SORTB /MATCH NOT FOUND 856 11200 7300 CLA CLL 857 11201 6214 RDF 858 11202 1206 TAD .+4 859 11203 3204 DCA .+1 860 11204 7402 HLT 861 JMP I SORTB /RETURN TO CALLING SEQUENCE off page ^ 11205 5776 862 11206 6203 CIF CDF 0 863 864 COMGO=. /COMMAND ROUTINE ADRESSES 865 11207 1032 SET 866 11210 1032 FOR 867 IF undefined ^ 11211 0000 868 BR undefined ^ 11212 0000 869 11213 0452 DO 870 11214 0605 GOTO 871 11215 0620 COMMENT 872 11216 1227 ASK 873 11217 1230 TYPE 874 LIB undefined ^ 11220 0000 875 ERASE undefined ^ 11221 0000 876 11222 0635 WRITE 877 MODIFY undefined ^ 11223 0000 878 11224 0415 START1 /RETURN TO COMMAND MODE VIA 'QUIT' 879 RETRN undefined ^ 11225 0000 880 FILER /OPEN undefined ^ 11226 0000 881 /INPUT OUTPUT STATEMENTS 882 883 11227 7240 ASK, CLA CMA /REMEMBER WHICH CALL 884 11230 3003 TYPE, DCA ATSW 885 11231 3026 TASK, DCA DEBGSW /RE-ENABLE THE TRACE 886 11232 4552 SORTJ /SPECIAL CHARACTER? 887 11233 0075 ALIST-1 888 ATLIST-ALIST undefined ^ 11234 7702 889 11235 1003 TAD ATSW /TEST QUOTE SWITCH 890 11236 7700 SMA CLA 891 11237 5254 JMP TYPE2 892 11240 4541 PUSHJ /DO ASK; SETUP PT1 893 GETARG undefined ^ 11241 0000 894 11242 1122 TAD CHAR /SAVE IN LINE CHARACTER 895 11243 4543 PUSHA 896 11244 3000 DCA ECHO /ONLY IF ECHO 897 11245 1273 TAD DIDO /RING-A-DING-DONG 898 11246 4554 PRINTC 899 11247 2000 ISZ ECHO 900 11250 2035 ISZ INSUB /INDICATE 'READC' 901 11251 7001 IAC /POINT PAST CHAR 902 11252 4532 JMS I FINPUT /READ DATA AND SAVE 903 11253 5263 JMP ENDASK 904 905 11254 4541 TYPE2, PUSHJ /DO TYPE 906 EVAL undefined ^ 11255 0000 907 11256 1122 TAD CHAR 908 11257 4543 PUSHA /SAVE FOR RETEST 909 11260 4531 ENDESC, JMS I FOUTPUT /PRINT 910 11261 7001 IAC 911 11262 3000 DCA ECHO 912 11263 4540 ENDASK, POPA /RETEST LAST TERMINATOR 913 11264 4546 STOCHR 914 11265 5231 JMP TASK /CONTINUE PROCESSING 915 916 11266 3000 ESC, DCA ECHO /ONLY IF ECHO 917 11267 4407 FINT 918 11270 0430 FGET I PT1 919 11271 0000 FEXT 920 11272 5260 JMP ENDESC /ECHO CURRENT VALUE OF LITERAL 921 922 11273 0207 DIDO, 207 /BELL;CAN BE SET BY CD 923 11274 2026 TQUOT, ISZ DEBGSW /DISABLE TRACE 924 11275 4550 GETC /TYPE LITERALS 925 11276 4552 SORTJ 926 TLIST2-1 undefined ^ 11277 7777 927 TLIST3-TLIST2 undefined ^ undefined ^ 11300 0000 928 11301 4554 PRINTC 929 11302 5275 JMP TQUOT+1 930 931 11303 1002 TINTR, TAD SPC 932 11304 3405 DCA I LEADCH /RESET CHARS. 933 11305 1003 TAD SPCMZE 934 11306 3406 DCA I DFILL 935 11307 4550 GETC /PASS PERCENT SIGN 936 11310 4565 TESTC 937 JMP FILL /TERM.,SHOULD BE '*' off page ^ 11311 5775 938 11312 5007 JMP FORMAT /NUMBER;NORMAL FORMAT 939 STRMSP, "*-240 /FALLS THRU illegal char ^ expression ^ undefined ^ 11313 0000 11375 7546 11376 1153 11377 1200 940 17540 4547 TSTCHR /OTHER;SET NO LEADER 941 -"\ /IF %\XXXX illegal char ^ expression ^ undefined ^ 17541 0000 illegal char ^ 17542 0000 942 17543 5007 JMP FORMAT /VARIABLE FORMAT 943 17544 1103 TAD C200 944 JMP TINTR+1 /DELETE LEADER off page ^ 17545 5777 945 17546 4547 FILL, TSTCHR 946 -"* illegal char ^ expression ^ undefined ^ 17547 0000 illegal char ^ 17577 1304 947 10000 5010 JMP FORMFL /TERM., SET FLOAT FORMAT 948 TAD STRMSP /SET "*" off page ^ 10001 1777 949 JMP TINTR+2 /GET NEXT CHAR off page ^ 10002 5776 950 SPCMZE, 240-"0 illegal char ^ expression ^ undefined ^ 10003 0000 10004 0000 951 LEADCH, LEDCHR undefined ^ 10005 0000 952 DFILL, FILLER undefined ^ 10006 0000 953 954 10007 7201 FORMAT, CLA IAC /FIXED POINT 955 10010 3052 FORMFL, DCA FISW /FLOATING 956 10011 4557 GETLN 957 10012 1123 TAD LINENO 958 10013 0100 AND P7600 959 10014 7002 BSW 960 10015 7110 CLL RAR 961 10016 7450 SNA 962 10017 1117 TAD DIGITS /FLOATING 963 10020 3115 DCA FSIZE 964 10021 1123 TAD LINENO 965 10022 0105 AND P17 966 10023 3116 DCA DECP 967 10024 1115 TAD FSIZE 968 10025 7041 CIA 969 10026 1116 TAD DECP 970 10027 7700 SMA CLA 971 10030 4510 FORMER, ERROR2 /FORMAT ERROR 972 10031 0136 136 /FO 973 JMP TASK off page ^ 10032 5775 974 10033 7001 TCRLF, IAC /"!":CR,LF 975 10034 7001 TFOFED, IAC /"&":FOFED 976 10035 7001 TRESET, IAC /"#": RESET PAGE COMMAND 977 10036 1075 TLFEED, TAD CLF /"'":LINE-FEED 978 10037 4554 PRINTC 979 10040 4550 TASK4, GETC /MOVE TO NEXT CHAR 980 JMP TASK off page ^ 10041 5775 981 982 10042 4541 XTAB, PUSHJ 983 EVAL-1 undefined ^ 10043 7777 984 10044 4453 JMS I INTEGE 985 10045 7550 SPA SNA 986 10046 7201 CLA IAC /OVER LEFT MARGIN 987 10047 3046 DCA LORD /AND ALLOW FOR 'T :,' 988 10050 1001 FORW, TAD TABC /'T :1,' IS FIRST POSITION 989 10051 7140 CMA CLL 990 10052 1046 TAD LORD 991 10053 7450 SNA 992 JMP TASK /NO MOVEMENT off page ^ 10054 5775 993 10055 7500 SMA /NEGATIVE IF BACKUP 994 10056 7161 CLL CML CIA /FORWARDS; SET LINK 995 10057 3066 DCA CNTR 996 10060 7430 SZL /FOR TERMINAL WITH BS 997 10061 5066 JMP P216+1 / JMP .+2 998 10062 1065 TAD P216 / TAD M30 999 10063 4554 PRINTC / TAD SPC 1000 10064 5050 JMP FORW / DCA T3 1001 10065 0216 P216, 216 /M30, -30 1002 10066 1002 TAD SPC / TAD T3 1003 10067 4554 PRINTC 1004 10070 2066 ISZ CNTR 1005 10071 5066 JMP .-3 1006 10072 7040 CMA 1007 10073 1046 TAD LORD 1008 10074 3001 DCA TABC 1009 JMP TASK off page ^ 10075 5775 1010 ALIST=. /ASK/TYPE LIST OF CONTROLS 1011 "' illegal char ^ expression ^ undefined ^ 10076 0000 illegal char ^ 10077 0000 1012 "& illegal char ^ expression ^ undefined ^ 10100 0000 illegal char ^ expression ^ undefined ^ 10101 0000 1013 "# illegal char ^ expression ^ undefined ^ 10102 0000 illegal char ^ 10103 0000 1014 ": illegal char ^ expression ^ undefined ^ 10104 0000 illegal char ^ 10105 0000 1015 "% illegal char ^ expression ^ undefined ^ 10106 0000 illegal char ^ 10107 0000 1016 "" illegal char ^ expression ^ undefined ^ 10110 0000 illegal char ^ expression ^ undefined ^ 10111 0000 1017 "! illegal char ^ expression ^ undefined ^ 10112 0000 illegal char ^ 10113 0000 1018 "$ illegal char ^ expression ^ undefined ^ 10114 0000 10175 1231 10176 1305 10177 1313