1 /BASIC.L8E 2 / L A B - 8 \ E B A S I C 3 / 4 / COPYRIGHT 1971, DIGITAL EQUIPMENT CORPORATION 5 / MAYNARD, MASS. (01754) 6 / 7 / WRITTEN BY JACK BURNESS 8 / THIS BASIC IS A COMBINATION OF LAB-8/E BASIC 9 / AND 8K-BASIC FOR THE PDP-8. TO CREATE IT 10 / FOR THE LAB-8/E SET "MACHINE=1", TO CREATE IT FOR 11 / THE PDP-8 SET "MACHINE=0". 12 MACHINE=0 13 LIMIT=1000 14 / THIS CODE OVERLAYS THE BINARY LOADER IN FIELD 15 / ONE TO MAKE LAB-8/E BASIC SELF STARTING. 16 /BASIC4.52 17 FIELD 0 /TO HELP BINARY LOADER IN CASE HE BLOWS IT. 18 /00000 +----------+ 19 / ! SYSTEM ! 20 /11000 +----------+ 21 / ! ARRAY ! 22 / ! SPACE ! 23 / +----------+ 24 / ! FREE ! 25 / +----------+ 26 / ! CODIFIED ! 27 / ! BASIC ! 28 / +----------+ 29 / ! SYMBOL ! 30 / ! TABLE ! 31 / +----------+ 32 / ! LINEBUF ! 33 / +----------+ 34 / ! STACK ! 35 / +----------+ 36 / ! FORLIST ! 37 / +----------+ 38 / ! GOLIST ! 39 /17756 +----------+ 40 / ! RIM ! 41 / ! LOADER ! 42 /17777 +----------+ 43 /4200 + 44 /4201 - 45 /4302 * 46 /4303 / 47 /4404 ^ 48 /4105 = 49 /4106 < 50 /4107 > 51 /4110 <= 52 /4110 =< 53 /4111 >= 54 /4111 => 55 /4112 <> 56 /4213 (UMINUS) 57 /4014 (DONE) 58 /4015 , 59 /4016 ; 60 /4017 ) 61 /4021 TO 62 /4022 STEP 63 /4023 ( 64 /4024 FN 65 /4025 COS 66 /4026 TAN 67 /4027 ATN 68 /4030 LOG 69 /4031 EXP 70 /4032 SQR 71 /4033 ABS 72 /4034 SGN 73 /4035 INT 74 /4036 RND 75 /4037 SIN 76 /6000 (CRLF) 77 /6000 \ 78 /6001 END 79 /6002 FOR 80 /6003 GOSUB 81 /6004 GOTO 82 /6004 THEN 83 /6005 IF 84 /6006 INPUT 85 /6007 LET 86 /6010 NEXT 87 /6011 PRINT 88 /6012 RETURN 89 /6013 STOP 90 /6014 DIM 91 /6015 RESTORE 92 /6017 DEF 93 /6020 READ 94 /6021 DATA 95 /6022 (EXIT) 96 /6023 (EOF) 97 FEXIT=0000 98 FSNE=0040 99 FSEQ=0050 100 FSGE=0100 101 FSLT=0110 102 FSGT=0140 103 FSLE=0150 104 FJMP=1000 105 FJMPI=1400 106 FST=2000 107 FSTI=2400 108 FLD=3000 109 FLDI=3400 110 FAD=4000 111 FADI=4400 112 FSB=5000 113 FSBI=5400 114 FMP=6000 115 FMPI=6400 116 FDV=7000 117 FDVI=7400 118 FWD=200 119 BKWD=600 120 ADCL=6530 121 ADLM=6531 122 ADST=6532 123 ADRB=6533 124 ADSK=6534 125 ADSE=6535 126 ADLE=6536 127 ADRS=6537 128 DILC=6050 129 DICD=6051 130 DISD=6052 131 DILX=6053 132 DILY=6054 133 DIXY=6055 134 DILE=6056 135 DIRE=6057 136 CLEN=6134 137 CLAB=6133 138 CLOE=6132 139 CLZE=6130 140 CLSK=6131 141 CLCA=6137 142 CLSA=6135 143 CLBA=6136 144 *0 145 000000 0000 0 /INTERUPT ROUTINES. 146 000001 5402 JMP I .+1 /UP, UP AND AWAY. 147 000002 6600 INTER 148 000003 0000 ARRLOC, 0 149 000004 0000 CODELOC,0 150 000005 0000 PSYMTAB,0 151 000006 0000 NSYMTAB,0 152 000007 0215 O215, 215 153 000010 0212 O212, 212 154 000011 0260 O260, 260 155 000012 0000 OV, 0 156 000013 0000 INDEX1, 0 157 000014 0000 INDEX2, 0 158 000015 0000 DISAUTO,0 159 000016 0000 AC3, 0 160 000017 0000 AC2, 0 161 000020 0000 AC1, 0 162 000021 0000 OP3, 0 163 000022 0000 OP2, 0 164 000023 0000 OP1, 0 165 000024 0000 ACS, 0 166 000025 0000 ACE, 0 167 000026 0000 OPS, 0 168 000027 0177 O177, 177 169 000030 0000 OPE, 0 170 000031 0000 TMP, 0 171 000032 7201 PGETCH, GETCH 172 000033 0741 PPUTCH, PUTCH 173 000034 0000 DIMFLAG,0 174 000035 4200 FENTER=JMS I .;FPT 175 000036 0000 PDL, 0 176 000037 7512 PLINBUF,LINBUF 177 000040 0266 MLINBUF,-LINBUF 178 000041 0135 MENDLIN,-ENDLIN 179 000042 0000 PRTEMP, 0 180 000043 0000 DECEXP, 0 181 000044 5335 PNUMBUF,NUMBUF 182 000045 0000 LOCCTR, 0 183 000046 0000 READLOC,0 184 000047 7363 PARGERR,ARGERR 185 000050 0000 WORD, 0 186 000051 0240 O240, 240 187 000052 0000 LINENO, 0 188 000053 0000 GOTEMP, 0 189 000054 7740 O7740, 7740 190 000055 7770 O7770, 7770 191 000056 0000 EPTR, 0 192 000057 0000 FPTR, 0 193 000060 0000 GPTR, 0 194 000061 0000 HPTR, 0 195 000062 0002 O2, 2 196 000063 0000 FORCT, 0 197 000064 0000 SNUMFLG,0 198 000065 0012 O12, 12 199 000066 0000 OLDOP, 0 200 000067 0000 ADDRESS,0 201 000070 0077 O77, 77 202 000071 0377 O377, 377 203 000072 0007 O7, 7 204 000073 0000 OPERAND,0;0;0 000074 0000 000075 0000 205 000076 7501 PTEXT, XXTEXT 206 000077 4142 PERROR, ERROR 207 000100 6441 PSXERR, SXERR 208 000101 1004 PEVAL, EVAL 209 000102 1400 PGETADD,GETADDR 210 000103 0213 PEXECUT,EXECUTE 211 000104 2364 PPUSH, PUSH 212 000105 3551 PPOP, POP 213 000106 4744 PFIX, FIX 214 000107 1202 PGOTOPR,GOTOPR 215 000110 0472 PPASSCR,PASSCR 216 000111 1015 PGETOPR,GETOPR 217 000112 0341 PSTOVAR,STOVAR 218 000113 0311 PGETVAR,GETVAR 219 000114 3702 PPRINTX,PRINTXT 220 000115 1674 PGETBLK,GETBLK 221 000116 2707 PSLOOP, SLOOP 222 000117 5000 POUTNUM,OUTNUM 223 000120 2405 PEDIT, EDIT 224 000121 6430 PSTICKI,STICKIT 225 000122 3110 PNONBLN,NONBLNK 226 000123 3747 PPRINUM,PRINUM 227 000124 2603 PGETLIN,GETLIN 228 000125 7644 PPDLIST,PDLIST 229 000126 0000 COLUMN, 0 230 000127 0000 INDEV, 0 231 000130 0000 OUTD2, 0 232 000131 0000 OUTDEV, 0 233 000132 0000 ODEV, 0 234 000133 0000 CNTLO, 0 235 000134 0000 NOINT, 0 /THIS PREVENTS INTERUPTS DURING CRITICAL TIMES. 236 000135 0000 RBSWCH, 0 237 000136 0000 DISB, 0 238 000137 7116 PRESET, RESET1 239 000140 7465 SPECINT,CCINTK 240 000141 7326 PCOWT, COWT 241 000142 7146 DELOUT, OUTDEL 242 000143 0360 CNCLR, CLRCNT 243 000144 6413 SPLEFT, RMLEFT 244 000145 0000 PTEN, TEN 245 000146 4600 PANORM, ANORM 246 000147 4402 PAR1, AR1 247 000150 4654 PAL1, AL1 248 000151 2014 ONE, 2014 249 000152 0000 ZERO, 0;0;0 000153 0000 000154 0000 250 000155 0200 O200, 200 251 000156 0000 FPFLAG, 0 252 000157 4435 POADD, OADD 253 000160 0004 O4, 4 254 000161 2330 PLINFIX,LINFIX 255 000162 7745 O7745, 7745 256 000163 6400 PCHKFIT,CHKFIT 257 000164 7725 PGOLIST,GOLIST 258 000165 0000 GSBPTR, 0 259 GET=1 260 000166 4073 ISIT=JMS I .;XISIT;XGISIT 000167 4066 261 000170 7352 MUSTBE=JMS I .;XMUST;XGMUST 000171 7345 262 000172 7563 PLBEGIN,LBEGIN 263 000173 0214 MLBEGIN,-LBEGIN-1 264 000174 0074 MLEND, -ENDPDL 265 000175 4104 PISITLI,ISITLIT 266 PAGE 267 *.-1 268 000177 0000 GETWD, 0 269 000200 1445 TAD I LOCCTR 270 000201 3050 DCA WORD 271 000202 2045 ISZ LOCCTR 272 000203 5577 JMP I GETWD 273 000204 0205 PLETDO, LETDO 274 000205 4570 LETDO, MUSTBE /'=' 275 000206 3673 3673 276 000207 4501 JMS I PEVAL 277 000210 4570 MUSTBE /(CR) OR '\' 278 000211 2000 2000 279 000212 4341 JMS STOVAR 280 000213 4177 EXECUTE,JMS GETWD 281 000214 1204 TAD PLETDO 282 000215 3311 DCA GETVAR 283 000216 1450 TAD I WORD 284 000217 7510 SPA 285 000220 5231 JMP KEYWD 286 000221 7640 SZA CLA /IS IT A LINENO 287 000222 5313 JMP NOTKWD /NO 288 000223 1050 TAD WORD 289 000224 3052 DCA LINENO 290 000225 4177 JMS GETWD 291 000226 1450 TAD I WORD 292 000227 7700 SMA CLA 293 000230 5313 JMP NOTKWD 294 000231 7332 KEYWD, CLA CLL CML RTR 295 000232 1450 TAD I WORD 296 000233 7420 SNL /IS IT A STATEMENT WORD 297 000234 5500 JMP I PSXERR /NO 298 000235 1240 TAD SJUMP 299 000236 3237 DCA .+1 300 000237 7402 HLT 301 000240 5641 SJUMP, JMP I .+1 302 000241 0213 EXECUTE 303 000242 2567 END 304 000243 0413 FOR 305 000244 0505 GOSUB 306 000245 0517 GOTO 307 000246 0375 IF 308 000247 4007 INPUT 309 000250 0312 LET 310 000251 0600 NEXT 311 000252 2173 PRINT 312 000253 0677 RETURN 313 000254 2570 STOP 314 000255 6472 DIM 315 000256 3773 RESTORE 316 000257 0467 SKIPIT 317 000260 1576 DEF 318 000261 1623 READ 319 000262 0467 SKIPIT 320 000263 2402 EXIT 321 000264 2570 STOP 322 000265 7173 TTYIN 323 000266 7165 TTYOUT 324 000267 7163 LPTOUT 325 000270 7164 PTPOUT 326 000271 7172 PTRIN 327 000272 6441 SXERR /THIS SLOT IS NOW FREE. (6031) 328 000273 5573 RUBO 329 000274 5574 NORUBO 330 IFNZRO MACHINE< 331 CLEAR 332 DELAY 333 USE 334 PLOT 335 REALTIME 336 SETRATE 337 SETCLOCK 338 WAITC 339 WAIT 340 SXERR /"UCOM" --- USER COMMAND. 341 ACCEPT 342 REJECT> 343 IFZERO MACHINE< 344 000275 6441 SXERR 345 000276 6441 SXERR 346 000277 6441 SXERR 347 000300 6441 SXERR 348 000301 6441 SXERR 349 000302 6441 SXERR 350 000303 6441 SXERR 351 000304 6441 SXERR 352 000305 6441 SXERR 353 000306 6441 SXERR 354 000307 6441 SXERR 355 000310 6441 SXERR 356 > 357 000311 0000 GETVAR, 0 358 000312 4177 LET, JMS GETWD 359 000313 4570 NOTKWD, MUSTBE /A VARIABLE 360 000314 7000 7000 361 000315 1050 TAD WORD 362 000316 3343 DCA VAR 363 000317 3344 DCA SSONE 364 000320 3345 DCA SSTWO 365 000321 4567 GET+ISIT /'(' 366 000322 3755 3755 367 000323 5711 JMP I GETVAR /NO 368 000324 4501 JMS I PEVAL 369 000325 4506 JMS I PFIX 370 000326 3344 DCA SSONE 371 000327 4566 ISIT /',' 372 000330 3763 3763 373 000331 5335 JMP NOCOMMA /NO 374 000332 4501 JMS I PEVAL 375 000333 4506 JMS I PFIX 376 000334 3345 DCA SSTWO 377 000335 4570 NOCOMMA,MUSTBE /')' 378 000336 3761 3761 379 000337 4177 JMS GETWD 380 000340 5711 JMP I GETVAR 381 000341 0000 STOVAR, 0 382 000342 4502 JMS I PGETADDR 383 000343 0000 VAR, 0 384 000344 0000 SSONE, 0 385 000345 0000 SSTWO, 0 386 000346 4435 FENTER 387 000347 2467 FSTI ADDRESS 388 000350 0000 FEXIT 389 000351 5741 JMP I STOVAR 390 000352 4477 FNERR, JMS I PERROR 391 000353 0625 TEXT 'FUNCTION' 000354 1603 000355 2411 000356 1716 000357 0000 392 000360 0000 CLRCNT, 0 /ROUTINE WHICH CHECKS STATUS OF CONTROL C FLAG. 393 000361 7201 CLA IAC 394 000362 1134 TAD NOINT /WAS IT SET TO -1? 395 000363 7650 SNA CLA 396 000364 5767 JMP I PBOMB /YEP. GIVE STOP MESSAGE. 397 000365 3134 DCA NOINT /NOPE. RESET IT. 398 000366 5760 JMP I CLRCNT /AND EXIT 399 000367 6670 PBOMB, CNTLCR 400 000370 4477 SPACERR,JMS I PERROR 401 000371 2417 TEXT 'TOO-BIG' 000372 1755 000373 0211 000374 0700 402 000375 4501 IF, JMS I PEVAL 403 000376 4435 FENTER 404 000377 2073 FST OPERAND 405 000400 0000 FEXIT 406 000401 4570 MUSTBE /'THEN' 407 000402 1774 1774 408 000403 1073 TAD OPERAND 409 000404 7750 SPA SNA CLA 410 000405 5267 JMP SKIPIT 411 000406 4567 GET+ISIT /A LINENO 412 000407 0000 0000 413 000410 5612 JMP I XEXECU 414 000411 5320 JMP GOTO+1 415 000412 0214 XEXECU, EXECUTE+1 416 000413 4571 FOR, GET+MUSTBE /A VARIABLE 417 000414 7000 7000 418 000415 4357 JMS FINDIT 419 000416 5235 JMP NOTHERE 420 000417 7201 CLA IAC 421 000420 1013 TAD INDEX1 422 000421 3014 DCA INDEX2 423 000422 7240 CLA CMA 424 000423 1013 TAD INDEX1 425 000424 3013 DCA INDEX1 426 000425 5232 JMP INLUPF 427 000426 1414 LUPF, TAD I INDEX2 428 000427 3413 DCA I INDEX1 429 000430 1414 TAD I INDEX2 430 000431 3413 DCA I INDEX1 431 000432 2053 INLUPF, ISZ GOTEMP 432 000433 5226 JMP LUPF 433 000434 2063 ISZ FORCT 434 000435 1063 NOTHERE,TAD FORCT 435 000436 1304 TAD O11 436 000437 7750 SPA SNA CLA /CAN'T FIT 9 IN FORLIST 437 000440 5301 JMP FORERR 438 000441 1050 TAD WORD 439 000442 7041 CIA 440 000443 3413 DCA I INDEX1 441 000444 1050 TAD WORD 442 000445 3252 DCA FORVAR 443 000446 4571 GET+MUSTBE /'=' 444 000447 3673 3673 445 000450 4501 JMS I PEVAL 446 000451 4502 JMS I PGETADDR 447 000452 0000 FORVAR, 0 448 000453 0000 0 449 000454 0000 0 450 000455 4435 FENTER 451 000456 2467 FSTI ADDRESS 452 000457 0000 FEXIT 453 000460 4570 MUSTBE /'TO' 454 000461 3757 3757 455 000462 1045 TAD LOCCTR 456 000463 3413 DCA I INDEX1 457 000464 7240 CLA CMA 458 000465 1063 TAD FORCT 459 000466 3063 DCA FORCT 460 000467 4671 SKIPIT, JMS I PIGNORE /LOOK FOR "\" OR C.R. 461 000470 5503 JMP I PEXECUTE /AND EXECUTEPTHE NEXT STATEMENT. 462 000471 2115 PIGNORE,IGNORE 463 000472 0000 PASSCR, 0 /THIS LOOKS FOR A REAL C.R. 464 000473 4671 JMS I PIGNORE /LOOK FOR "\" OR C.R. 465 000474 2050 ISZ WORD 466 000475 4566 ISIT 467 000476 4100 4100 /A REAL C.R. ? 468 000477 5273 JMP .-4 /NOPE. A SLASH. 469 000500 5672 JMP I PASSCR /AND RETURN TO CALLER. 470 000501 4477 FORERR, JMS I PERROR 471 000502 0617 TEXT 'FOR' 000503 2200 472 000504 0011 O11, 11 473 000505 4177 GOSUB, JMS GETWD 474 000506 4332 JMS GOBOTH 475 000507 1165 TAD GSBPTR 476 000510 1325 TAD MGSBEND 477 000511 7650 SNA CLA 478 000512 5326 JMP DEEPERR 479 000513 1045 TAD LOCCTR 480 000514 3565 DCA I GSBPTR 481 000515 2165 ISZ GSBPTR 482 000516 5321 JMP GOTO+2 483 000517 4177 GOTO, JMS GETWD 484 000520 4332 JMS GOBOTH 485 000521 2053 ISZ GOTEMP 486 000522 1453 TAD I GOTEMP 487 000523 3045 DCA LOCCTR 488 000524 5503 JMP I PEXECUTE 489 000525 0023 MGSBEND,-GSBEND 490 000526 4477 DEEPERR,JMS I PERROR 491 000527 0717 TEXT 'GOSUB' 000530 2325 000531 0200 492 000532 0000 GOBOTH, 0 493 000533 4570 MUSTBE /A LINENO 494 000534 0000 0000 495 000535 1050 TAD WORD 496 000536 3053 DCA GOTEMP 497 000537 2050 ISZ WORD 498 000540 4566 ISIT /DEFINED 499 000541 0000 0000 500 000542 5350 JMP ISITDF 501 000543 4477 JMS I PERROR 502 000544 1411 TEXT 'LINENO' 000545 1605 000546 1617 000547 0000 503 000550 4571 ISITDF, GET+MUSTBE /(CR) OR '\' 504 000551 2000 2000 505 000552 5732 JMP I GOBOTH 506 000553 0000 VARTEMP,0;0;0 000554 0000 000555 0000 507 000556 7704 PXFORLI,FORLIST-1 508 000557 0000 FINDIT, 0 509 000560 1063 TAD FORCT 510 000561 3053 DCA GOTEMP 511 000562 1356 TAD PXFORLIST 512 000563 3013 DCA INDEX1 513 000564 5372 JMP INLOOP 514 000565 1413 FINDLUP,TAD I INDEX1 515 000566 1050 TAD WORD 516 000567 7650 SNA CLA 517 000570 5375 JMP FOUND 518 000571 2013 ISZ INDEX1 519 000572 2053 INLOOP, ISZ GOTEMP 520 000573 5365 JMP FINDLUP 521 000574 5757 JMP I FINDIT 522 000575 2357 FOUND, ISZ FINDIT 523 000576 5757 JMP I FINDIT 524 PAGE 525 000600 4571 NEXT, GET+MUSTBE /A VARIABLE 526 000601 7000 7000 527 000602 4672 JMS I PFINDIT 528 000603 5273 JMP NEXTERR 529 000604 1050 TAD WORD 530 000605 3237 DCA NEXTVAR 531 000606 4571 GET+MUSTBE /(CR) OR '\' 532 000607 2000 2000 533 000610 1045 TAD LOCCTR 534 000611 3271 DCA LOCTEMP 535 000612 1413 TAD I INDEX1 536 000613 3045 DCA LOCCTR 537 000614 4501 JMS I PEVAL 538 000615 4435 FENTER 539 000616 2303 FST+FWD+FORLIM-. 540 000617 0000 FEXIT 541 000620 4566 ISIT /(CR) OR '\' 542 000621 2000 2000 543 000622 5226 JMP TRYSTEP /NO 544 000623 4435 FENTER 545 000624 3151 FLD ONE 546 000625 1207 FJMP+FWD+GOTSTEP-. 547 000626 4570 TRYSTEP,MUSTBE /'STEP' 548 000627 3756 3756 549 000630 4501 JMS I PEVAL 550 000631 4570 MUSTBE /(CR) OR '\' 551 000632 2000 2000 552 000633 4435 FENTER 553 000634 2270 GOTSTEP,FST+FWD+FORSTEP-. 554 000635 0000 FEXIT 555 000636 4502 JMS I PGETADDR 556 000637 0000 NEXTVAR,0 557 000640 0000 0 558 000641 0000 0 559 000642 4435 FENTER 560 000643 3467 FLDI ADDRESS 561 000644 4260 FAD+FWD+FORSTEP-. 562 000645 2672 FST+BKWD+.-VARTEMP 563 000646 5253 FSB+FWD+FORLIM-. 564 000647 0000 FEXIT 565 000650 1024 TAD ACS 566 000651 1324 TAD FORSTEP 567 000652 7700 SMA CLA 568 000653 1020 TAD AC1 569 000654 7640 SZA CLA 570 000655 5263 JMP FORDONE 571 000656 4435 FENTER 572 000657 3704 FLD+BKWD+.-VARTEMP 573 000660 2467 FSTI ADDRESS 574 000661 0000 FEXIT 575 000662 5503 JMP I PEXECUTE 576 000663 1271 FORDONE,TAD LOCTEMP 577 000664 3045 DCA LOCCTR 578 000665 2063 ISZ FORCT 579 000666 2053 ISZ GOTEMP 580 000667 5265 JMP .-2 581 000670 5503 JMP I PEXECUTE 582 000671 0000 LOCTEMP,0 583 000672 0557 PFINDIT,FINDIT 584 000673 4477 NEXTERR,JMS I PERROR 585 000674 1605 TEXT 'NEXT' 000675 3024 000676 0000 586 000677 4571 RETURN, GET+MUSTBE /(CR) OR '\' 587 000700 2000 2000 588 000701 1165 TAD GSBPTR 589 000702 1320 TAD MGOLIST 590 000703 7650 SNA CLA 591 000704 5313 JMP RETNERR 592 000705 7240 CLA CMA 593 000706 1165 TAD GSBPTR 594 000707 3165 DCA GSBPTR 595 000710 1565 TAD I GSBPTR 596 000711 3045 DCA LOCCTR 597 000712 5503 JMP I PEXECUTE 598 000713 4477 RETNERR,JMS I PERROR 599 000714 2205 TEXT 'RETURN' 000715 2425 000716 2216 000717 0000 600 000720 0053 MGOLIST,-GOLIST 601 000721 0000 FORLIM, 0;0;0 000722 0000 000723 0000 602 000724 0000 FORSTEP,0;0 000725 0000 603 000726 0000 SGN, 0 604 000727 4435 FENTER 605 000730 0100 FSGE 606 000731 3205 FLD+FWD+MNSONE-. 607 000732 0150 FSLE 608 000733 3151 FLD ONE 609 000734 0000 FEXIT 610 000735 5726 JMP I SGN 611 000736 6014 MNSONE, 6014;0;0 000737 0000 000740 0000 612 000741 0000 PUTCH, 0 613 000742 3326 DCA SGN 614 000743 1326 TAD SGN 615 000744 0027 PCCUNT, AND O177 616 000745 1374 TAD O7763A 617 000746 7640 SZA CLA /IS IT A C.R. 618 000747 5357 JMP PNOCR /NOPE. 619 000750 1344 TAD PCCUNT /ADD IN EXTRA PLACES FOR GOOD LUCK. 620 000751 1126 TAD COLUMN /SAVE COLUMN POSITION 621 000752 3237 DCA NEXTVAR 622 000753 3126 DCA COLUMN 623 000754 1237 TAD NEXTVAR /REGET WHERE WE WERE. 624 000755 0376 AND PUTXRA /ARE WE INSERTING NULL CHARACTERS? 625 000756 7110 CLL RAR /NOW DIVIDE BY 2. 626 000757 7170 PNOCR, CLL CML CMA RAR /AND NOW INVERT AND DIVIDE BY 2 AGAIN. 627 000760 3237 DCA NEXTVAR /SAVE FOR LATER USE. THIS IS NULL COUNTER. 628 000761 1326 TAD SGN /RECALL THE CHARACTER. 629 000762 0375 AND O140A 630 000763 7440 SZA 631 000764 1365 TAD O7640A 632 000765 7640 O7640A, SZA CLA 633 000766 2126 ISZ COLUMN 634 000767 1326 TAD SGN 635 000770 4777 JMS I JPUTCH 636 000771 2237 ISZ NEXTVAR /INCREMENT THE COUNTER 637 000772 5370 JMP .-2 /GIVE NULLS UNTIL IT'S SATISFIED. 638 000773 5741 JMP I PUTCH 639 000774 7763 O7763A, 7763 640 000775 0140 O140A, 140 641 000776 0000 PUTXRA, 0 /NULL AFTER C.R. WORD. 642 000777 7000 JPUTCH, PUTER 643 PAGE 644 001000 4603 START, JMS I XRESTA /REST FLAGS AND DEVICES. 645 001001 5602 JMP I .+1 646 001002 2440 SCRATCH 647 001003 7407 XRESTA, ISET 648 001004 0000 EVAL, 0 649 001005 4177 JMS GETWD 650 001006 1204 TAD EVAL 651 001007 4504 EVALGO, JMS I PPUSH 652 001010 1363 TAD O4014 653 001011 4504 JMS I PPUSH 654 001012 5216 JMP GETOPR+1 655 001013 1364 ISUMIN, TAD O4213 656 001014 4504 JMS I PPUSH 657 001015 4177 GETOPR, JMS GETWD 658 001016 4566 ISIT /'-' 659 001017 3577 3577 660 001020 7410 SKP 661 001021 5213 JMP ISUMIN 662 001022 4566 ISIT /'+' 663 001023 3600 3600 664 001024 7410 SKP 665 001025 5215 JMP GETOPR 666 001026 4566 ISIT /'(' 667 001027 3755 3755 668 001030 5235 JMP NOPAREN /NO 669 001031 4204 JMS EVAL 670 001032 4570 MUSTBE /')' 671 001033 3761 3761 672 001034 5507 JMP I PGOTOPR 673 001035 4566 NOPAREN,ISIT /A VARIABLE 674 001036 7000 7000 675 001037 5305 JMP NOTVAR /NO 676 001040 3276 DCA ONESS 677 001041 3277 DCA TWOSS 678 001042 1050 TAD WORD 679 001043 3275 DCA WDTEMP 680 001044 4567 GET+ISIT /'(' 681 001045 3755 3755 682 001046 5274 JMP GOTSS /NO 683 001047 1275 TAD WDTEMP 684 001050 4504 JMS I PPUSH 685 001051 4204 JMS EVAL 686 001052 4566 ISIT /',' 687 001053 3763 3763 688 001054 5264 JMP ONEDIM 689 001055 4506 JMS I PFIX 690 001056 4504 JMS I PPUSH 691 001057 4204 JMS EVAL 692 001060 4506 JMS I PFIX 693 001061 3277 DCA TWOSS 694 001062 4505 JMS I PPOP 695 001063 5266 JMP .+3 696 001064 3277 ONEDIM, DCA TWOSS 697 001065 4506 JMS I PFIX 698 001066 3276 DCA ONESS 699 001067 4570 MUSTBE /')' 700 001070 3761 3761 701 001071 4505 JMS I PPOP 702 001072 3275 DCA WDTEMP 703 001073 4177 JMS GETWD 704 001074 4502 GOTSS, JMS I PGETADDR 705 001075 0000 WDTEMP, 0 706 001076 0000 ONESS, 0 707 001077 0000 TWOSS, 0 708 001100 4435 FENTER 709 001101 3467 FLDI ADDRESS 710 001102 0000 FEXIT 711 001103 5704 JMP I .+1 712 001104 1203 OPDONE 713 001105 4575 NOTVAR, JMS I PISITLIT /ISIT A LITERAL 714 001106 5310 JMP ISITFUN /NO 715 001107 5507 JMP I PGOTOPR /IT IS IN THE AC NOW 716 001110 1450 ISITFUN,TAD I WORD 717 001111 1362 TAD O3754 /-4024, WHICH IS BEGINNING OF FUNCTIONS. 718 001112 7510 SPA /IS IT A LEGAL FUNCTION? 719 001113 5500 JMP I PSXERR /NO. EXIT WITH MESSAGE. 720 001114 7450 SNA /WAS IT 'FN' 721 001115 4177 JMS GETWD /YES,SKIP OVER LETTER 722 001116 4504 JMS I PPUSH 723 001117 4571 GET+MUSTBE /'(' 724 001120 3755 3755 725 001121 4204 JMS EVAL 726 001122 4505 JMS I PPOP 727 001123 1330 TAD FJUMP 728 001124 3325 DCA .+1 729 001125 7402 HLT 730 001126 5727 JMP I .+1 731 001127 1200 FNEXIT 732 001130 4731 FJUMP, JMS I FUNTAB 733 001131 5453 FUNTAB, FN 734 001132 5616 COS 735 001133 5600 TAN 736 001134 6200 ATN 737 001135 6114 LOG 738 001136 6000 EXP 739 001137 5412 SQR 740 001140 6425 ABS 741 001141 0726 SGN 742 001142 6434 INT 743 001143 5353 RND 744 001144 5624 SIN 745 001145 1761 PUTJ /POINTER TO PUT CHAR ROUTINE. 746 001146 6441 SXERR /FOR THE MISC. FUNCTIONS. 747 001147 6441 SXERR 748 001150 6441 SXERR 749 001151 1770 GETJ /GET A CHAR FROM THE TTY. 750 751 IFZERO MACHINE< 752 001152 6441 SXERR 753 001153 7421 TST 754 001154 6441 SXERR 755 > 756 001155 5547 TAB /TAB FUNCTION IS IMPLEMENTED. 757 001156 6441 SXERR /UNIMPLEMENTED USER FUNCTION. 758 759 IFZERO MACHINE< 760 001157 6441 SXERR 761 001160 6441 SXERR 762 001161 6441 SXERR 763 > 764 001162 3754 O3754, 3754 765 001163 4014 O4014, 4014 766 001164 4213 O4213, 4213 767 OBLOW=. 768 OBHIGH=FNEXIT-1 769 PAGE 770 001200 4570 FNEXIT, MUSTBE /')' 771 001201 3761 3761 772 001202 4177 GOTOPR, JMS GETWD 773 001203 4505 OPDONE, JMS I PPOP 774 001204 3066 DCA OLDOP 775 001205 1450 TAD I WORD 776 001206 0272 AND O700 777 001207 7650 SNA CLA 778 001210 5220 JMP ITSOP 779 001211 1450 TAD I WORD 780 001212 0275 AND O7077 781 001213 1273 TAD O3755 782 001214 7100 CLL 783 001215 1366 TAD O23 784 001216 7620 SNL CLA 785 001217 5500 JMP I PSXERR 786 001220 1066 ITSOP, TAD OLDOP 787 001221 0272 AND O700 788 001222 3271 DCA OTEMP 789 001223 1450 TAD I WORD 790 001224 0272 AND O700 791 001225 7041 CIA 792 001226 1271 TAD OTEMP 793 001227 7700 SMA CLA 794 001230 5247 JMP DOITNOW 795 001231 1066 TAD OLDOP 796 001232 4504 JMS I PPUSH 797 001233 4435 FENTER 798 001234 2073 FST OPERAND 799 001235 0000 FEXIT 800 001236 1073 TAD OPERAND 801 001237 4504 JMS I PPUSH 802 001240 1074 TAD OPERAND+1 803 001241 4504 JMS I PPUSH 804 001242 1075 TAD OPERAND+2 805 001243 4504 JMS I PPUSH 806 001244 1450 TAD I WORD 807 001245 4504 JMS I PPUSH 808 001246 5511 JMP I PGETOPR 809 001247 1066 DOITNOW,TAD OLDOP 810 001250 0070 AND O77 811 001251 1274 TAD O7764A 812 001252 7450 SNA 813 001253 5363 JMP UDOPER 814 001254 7001 IAC 815 001255 7650 SNA CLA 816 001256 5321 JMP UMOPER 817 001257 1066 TAD OLDOP 818 001260 0070 AND O77 819 001261 1276 TAD OJUMP 820 001262 3271 DCA OTEMP 821 001263 4505 JMS I PPOP 822 001264 3075 DCA OPERAND+2 823 001265 4505 JMS I PPOP 824 001266 3074 DCA OPERAND+1 825 001267 4505 JMS I PPOP 826 001270 3073 DCA OPERAND 827 001271 7402 OTEMP, HLT 828 001272 0700 O700, 700 829 001273 3755 O3755, 3755 830 001274 7764 O7764A, 7764 831 001275 7077 O7077, 7077 832 001276 5677 OJUMP, JMP I .+1 833 001277 1312 PLUS 834 001300 1316 MINUS 835 001301 1327 STAR 836 001302 1332 SLASH 837 001303 5740 UPARRX /OR 'UPARROW' IF NO EXTENDED FNS 838 001304 1342 RELATE 839 001305 1342 RELATE 840 001306 1342 RELATE 841 001307 1342 RELATE 842 001310 1342 RELATE 843 001311 1342 RELATE 844 001312 4435 PLUS, FENTER 845 001313 4073 FAD OPERAND 846 001314 0000 FADEXT, FEXIT 847 001315 5203 JMP OPDONE 848 001316 4435 MINUS, FENTER 849 001317 5073 FSB OPERAND 850 001320 0000 FEXIT 851 001321 1020 UMOPER, TAD AC1 852 001322 7640 SZA CLA 853 001323 7330 CLA CLL CML RAR 854 001324 1024 TAD ACS 855 001325 3024 DCA ACS /DIRECT REF TO FLOATING AC 856 001326 5203 JMP OPDONE 857 001327 4435 STAR, FENTER 858 001330 6073 FMP OPERAND 859 001331 1615 FJMP+BKWD+.-FADEXT 860 001332 4435 SLASH, FENTER 861 001333 2204 FST+FWD+SLSHTMP-. 862 001334 3073 FLD OPERAND 863 001335 7202 FDV+FWD+SLSHTMP-. 864 001336 1622 FJMP+BKWD+.-FADEXT 865 001337 0000 SLSHTMP,0;0;0 001340 0000 001341 0000 866 001342 1066 RELATE, TAD OLDOP 867 001343 1367 TAD CONST 868 001344 3353 DCA THESKIP 869 001345 6201 CDF 0 /''''''''' 8 K INSERT. 870 001346 1753 TAD I THESKIP 871 001347 6211 CDF 10 /''''''''' 8 K INSERT. 872 001350 3353 DCA THESKIP 873 001351 4435 FENTER 874 001352 5073 FSB OPERAND 875 001353 7402 THESKIP,HLT 876 001354 1204 FJMP+FWD+4 877 001355 3151 FLD ONE 878 001356 0000 FEXIT 879 001357 5203 JMP OPDONE 880 001360 3152 FLD ZERO 881 001361 0000 FEXIT 882 001362 5203 JMP OPDONE 883 001363 4505 UDOPER, JMS I PPOP 884 001364 3066 DCA OLDOP 885 001365 5466 JMP I OLDOP 886 001366 0023 O23, 23 887 001367 5263 CONST, .-4104 888 001370 0050 FSEQ / = 889 001371 0140 FSGT / < 890 001372 0110 FSLT / > 891 001373 0100 FSGE / <= 892 001374 0150 FSLE / >= 893 001375 0040 FSNE / <> 894 PAGE 895 001400 0000 GETADDR,0 896 001401 6201 CDF 0 /''''''''''' 8 K INSERT. 897 001402 1600 TAD I GETADDR 898 001403 3014 DCA INDEX2 899 001404 2200 ISZ GETADDR 900 001405 1600 TAD I GETADDR 901 001406 3362 DCA GSS1 902 001407 2200 ISZ GETADDR 903 001410 1600 TAD I GETADDR 904 001411 3363 DCA GSS2 905 001412 2200 ISZ GETADDR 906 001413 6211 CDF 10 /''''''''''' 8 K INSERT. 907 001414 1414 TAD I INDEX2 908 001415 3067 DCA ADDRESS 909 001416 2067 ISZ ADDRESS 910 001417 1362 TAD GSS1 911 001420 7650 SNA CLA 912 001421 5260 JMP NOSS1 913 001422 1414 TAD I INDEX2 914 001423 7450 SNA 915 001424 5261 JMP ALLOC 916 001425 7140 CLL CMA 917 001426 1362 TAD GSS1 918 001427 7630 SZL CLA 919 001430 5370 JMP SSERR 920 001431 1414 TAD I INDEX2 921 001432 3364 DCA GDIM2 922 001433 1363 TAD GSS2 923 001434 7450 SNA 924 001435 5253 JMP NOSS2 925 001436 7141 CLL CIA 926 001437 1364 TAD GDIM2 927 001440 7620 SNL CLA 928 001441 5370 JMP SSERR 929 001442 1362 TAD GSS1 930 001443 7041 CIA 931 001444 3362 DCA GSS1 932 001445 7410 SKP 933 001446 1364 TAD GDIM2 934 001447 2362 ISZ GSS1 935 001450 5246 JMP .-2 936 001451 1363 TAD GSS2 937 001452 3362 DCA GSS1 938 001453 1362 NOSS2, TAD GSS1 939 001454 7104 CLL RAL 940 001455 1362 TAD GSS1 941 001456 1067 TAD ADDRESS 942 001457 3067 DCA ADDRESS 943 001460 5600 NOSS1, JMP I GETADDR 944 001461 2034 ALLOC, ISZ DIMFLAG 945 001462 7410 SKP 946 001463 5273 JMP ISDIM 947 001464 3034 DCA DIMFLAG 948 001465 1363 TAD GSS2 949 001466 7640 SZA CLA 950 001467 1367 TAD O13 951 001470 3363 DCA GSS2 952 001471 1367 TAD O13 953 001472 3362 DCA GSS1 954 001473 1363 ISDIM, TAD GSS2 955 001474 7450 SNA 956 001475 7201 CLA IAC 957 001476 7041 CIA 958 001477 3364 DCA GDIM2 959 001500 2134 ISZ NOINT /FORBID INTERUPTS NOW. 960 001501 7301 CLA CLL IAC 961 001502 1362 TAD GSS1 962 001503 7430 SZL 963 001504 5765 JMP I PSPACERR 964 001505 2364 ISZ GDIM2 965 001506 5302 JMP .-4 966 001507 3364 DCA GDIM2 967 001510 1364 TAD GDIM2 968 001511 7124 CLL CML RAL 969 001512 7420 SNL 970 001513 1364 TAD GDIM2 971 001514 3364 DCA GDIM2 972 001515 1364 TAD GDIM2 973 001516 7430 SZL 974 001517 5765 JMP I PSPACERR 975 001520 4544 JMS I SPLEFT 976 001521 7410 SKP 977 001522 5765 JMP I PSPACERR 978 001523 7344 CLA CLL CMA RAL 979 001524 1014 TAD INDEX2 980 001525 3014 DCA INDEX2 981 001526 1003 TAD ARRLOC 982 001527 3414 DCA I INDEX2 983 001530 1362 TAD GSS1 984 001531 3414 DCA I INDEX2 985 001532 1363 TAD GSS2 986 001533 3414 DCA I INDEX2 987 001534 7240 CLA CMA 988 001535 1067 TAD ADDRESS 989 001536 3067 DCA ADDRESS 990 001537 1366 TAD O7774 991 001540 3363 DCA GSS2 992 001541 1467 TAD I ADDRESS 993 001542 2067 ISZ ADDRESS 994 001543 4521 JMS I PSTICKIT 995 001544 2363 ISZ GSS2 996 001545 5341 JMP .-4 997 001546 1364 TAD GDIM2 998 001547 7041 CIA 999 001550 1160 TAD O4 1000 001551 3364 DCA GDIM2 1001 001552 4521 JMS I PSTICKIT 1002 001553 2364 ISZ GDIM2 1003 001554 5352 JMP .-2 1004 001555 7346 CLA CLL CMA RTL 1005 001556 1200 TAD GETADDR 1006 001557 3200 DCA GETADDR 1007 001560 4543 JMS I CNCLR /CHECK FOR CONTROL C. 1008 001561 5201 JMP GETADDR+1 1009 001562 0000 GSS1, 0 1010 001563 0000 GSS2, 0 1011 001564 0000 GDIM2, 0 1012 001565 0370 PSPACER,SPACERR 1013 001566 7774 O7774, 7774 1014 001567 0013 O13, 13 /(12) IF 1 ORG INDEXING 1015 001570 4477 SSERR, JMS I PERROR 1016 001571 2325 TEXT 'SUBSCRIPT' 001572 0223 001573 0322 001574 1120 001575 2400 1017 001576 1052 DEF, TAD LINENO 1018 001577 3013 DCA INDEX1 1019 001600 1413 TAD I INDEX1 1020 001601 3220 DCA USERFN 1021 001602 4571 GET+MUSTBE /'FN' 1022 001603 3754 3754 1023 001604 4571 GET+MUSTBE /A VARIABLE 1024 001605 7000 7000 1025 001606 4571 GET+MUSTBE /'(' 1026 001607 3755 3755 1027 001610 4571 GET+MUSTBE /A VARIABLE 1028 001611 7000 7000 1029 001612 4571 GET+MUSTBE /')' 1030 001613 3761 3761 1031 001614 4571 GET+MUSTBE /'=' 1032 001615 3673 3673 1033 001616 5617 JMP I PSKIPIT 1034 001617 0467 PSKIPIT,SKIPIT 1035 001620 0000 USERFN, 0 1036 001621 4570 MORERD, MUSTBE /',' 1037 001622 3763 3763 1038 001623 4513 READ, JMS I PGETVAR 1039 001624 7240 CLA CMA 1040 001625 1045 TAD LOCCTR 1041 001626 3273 DCA LOCTMP 1042 001627 1046 TAD READLOC 1043 001630 3045 DCA LOCCTR 1044 001631 4567 GET+ISIT /(CR) OR '\' 1045 001632 2000 2000 1046 001633 7410 SKP 1047 001634 5260 JMP SEARCH 1048 001635 4566 ISIT /A LINENO 1049 001636 0000 0000 1050 001637 7410 SKP 1051 001640 5260 JMP SEARCH 1052 001641 4566 ISIT /',' 1053 001642 3763 3763 1054 001643 5267 JMP DATAERR 1055 001644 4501 ISSOME, JMS I PEVAL 1056 001645 7240 CLA CMA 1057 001646 1045 TAD LOCCTR 1058 001647 3046 DCA READLOC 1059 001650 1273 TAD LOCTMP 1060 001651 3045 DCA LOCCTR 1061 001652 4512 JMS I PSTOVAR 1062 001653 4567 GET+ISIT /(CR) OR '\' 1063 001654 2000 2000 1064 001655 5221 JMP MORERD 1065 001656 5503 JMP I PEXECUTE 1066 001657 4177 SCHMOR, JMS GETWD 1067 001660 4566 SEARCH, ISIT /'DATA' 1068 001661 1757 1757 1069 001662 7410 SKP 1070 001663 5244 JMP ISSOME 1071 001664 4566 ISIT /(EOF) 1072 001665 1755 1755 1073 001666 5257 JMP SCHMOR 1074 001667 4477 DATAERR,JMS I PERROR 1075 001670 0401 TEXT 'DATA' 001671 2401 001672 0000 1076 001673 0000 LOCTMP, 0 1077 001674 0000 GETBLK, 0 1078 001675 4563 JMS I PCHKFIT 1079 001676 1004 TAD CODELOC 1080 001677 3045 DCA LOCCTR 1081 001700 1004 TAD CODELOC 1082 001701 1356 TAD ABCDEF 1083 001702 3004 DCA CODELOC 1084 001703 1004 TAD CODELOC 1085 001704 3357 DCA BCDEFG 1086 001705 1005 TAD PSYMTAB /UPDATE SYMBOL TABLE NOW. 1087 001706 1356 TAD ABCDEF /BY ADDING IN CORRECTION FACTOR. 1088 001707 3005 DCA PSYMTAB 1089 001710 1445 GTBKLP, TAD I LOCCTR /MOVE TEXT NOW. 1090 001711 2045 ISZ LOCCTR 1091 001712 3757 DCA I BCDEFG 1092 001713 2357 ISZ BCDEFG 1093 001714 1357 TAD BCDEFG /NOW CHECK FOR END. 1094 001715 7041 CIA 1095 001716 1005 TAD PSYMTAB 1096 001717 7640 SZA CLA 1097 001720 5310 JMP GTBKLP 1098 001721 7240 CLA CMA 1099 001722 1006 TAD NSYMTAB 1100 001723 3006 DCA NSYMTAB 1101 001724 1165 TAD GSBPTR 1102 001725 7040 CMA 1103 001726 1164 TAD PGOLIST 1104 001727 3357 DCA BCDEFG 1105 001730 1164 TAD PGOLIST 1106 001731 3050 DCA WORD 1107 001732 1356 TAD ABCDEF 1108 001733 1450 TAD I WORD 1109 001734 3450 DCA I WORD 1110 001735 2050 ISZ WORD 1111 001736 2357 ISZ BCDEFG 1112 001737 5332 JMP .-5 1113 001740 1063 TAD FORCT 1114 001741 3357 DCA BCDEFG 1115 001742 1360 TAD PPFORLIS 1116 001743 3050 DCA WORD 1117 001744 5352 JMP .+6 1118 001745 1356 TAD ABCDEF 1119 001746 1450 TAD I WORD 1120 001747 3450 DCA I WORD 1121 001750 2050 ISZ WORD 1122 001751 2050 ISZ WORD 1123 001752 2357 ISZ BCDEFG 1124 001753 5345 JMP .-6 1125 001754 1005 TAD PSYMTAB 1126 001755 5674 JMP I GETBLK 1127 001756 7774 ABCDEF, -4 1128 001757 0000 BCDEFG, 0 1129 001760 7706 PPFORLI,FORLIST+1 1130 001761 0000 PUTJ, 0 1131 001762 4506 JMS I PFIX 1132 001763 7200 CLA 1133 001764 1016 TAD AC3 1134 001765 4433 JMS I PPUTCH 1135 001766 4546 JMS I PANORM 1136 001767 5761 JMP I PUTJ 1137 001770 0000 GETJ, 0 /GETS A CHARACTER FROM THE TTY. 1138 001771 4776 JMS I PBEGFIX /CLEAN UP THE FAC 1139 001772 4432 JMS I PGETCH /FECTH A CHAR. 1140 001773 3016 DCA AC3 /SAVE IT, BABY! 1141 001774 4546 JMS I PANORM /AND NORMALIZE AC. 1142 001775 5770 JMP I GETJ /AND RETURN NOW. 1143 001776 3762 PBEGFIX,BEGFIX 1144 PAGE 1145 002000 2134 NOTNOW, ISZ NOINT /RESET ^C SWITCH SO NO INTERUPT NOW. 1146 002001 2050 ISZ WORD 1147 002002 1450 TAD I WORD 1148 002003 7450 SNA 1149 002004 5232 JMP INSERT 1150 002005 3371 DCA LOWLOC 1151 002006 3450 DCA I WORD 1152 002007 1371 TAD LOWLOC 1153 002010 3045 DCA LOCCTR 1154 002011 4510 JMS I PPASSCR 1155 002012 1371 MOVE, TAD LOWLOC 1156 002013 7041 CIA 1157 002014 1004 TAD CODELOC 1158 002015 7650 SNA CLA 1159 002016 5230 JMP INSRT5 1160 002017 7340 CLA CLL CMA 1161 002020 1371 TAD LOWLOC 1162 002021 3371 DCA LOWLOC 1163 002022 7340 CLA CLL CMA 1164 002023 1045 TAD LOCCTR 1165 002024 3045 DCA LOCCTR 1166 002025 1771 TAD I LOWLOC 1167 002026 3445 DCA I LOCCTR 1168 002027 5212 JMP MOVE 1169 002030 1045 INSRT5, TAD LOCCTR 1170 002031 3004 DCA CODELOC 1171 002032 1057 INSERT, TAD FPTR 1172 002033 1040 TAD MLINBUF 1173 002034 7040 CMA 1174 002035 3057 DCA FPTR 1175 002036 7326 CLA CLL CML RTL 1176 002037 1057 TAD FPTR 1177 002040 7450 SNA 1178 002041 5313 JMP FIXLIN 1179 002042 7040 CMA 1180 002043 4563 JMS I PCHKFIT 1181 002044 1004 TAD CODELOC 1182 002045 3045 DCA LOCCTR 1183 002046 1437 TAD I PLINBUF 1184 002047 7001 IAC 1185 002050 3013 DCA INDEX1 1186 002051 1413 TAD I INDEX1 1187 002052 3073 DCA OPERAND 1188 002053 1413 TAD I INDEX1 1189 002054 3074 DCA OPERAND+1 1190 002055 4336 JMS COMPARE 1191 002056 5261 JMP NOTFRST 1192 002057 4361 JMS SUBRA 1193 002060 5303 JMP TRANSF 1194 002061 4510 NOTFRST,JMS I PPASSCR 1195 002062 4336 JMS COMPAR 1196 002063 5261 JMP NOTFRST 1197 002064 1045 TAD LOCCTR 1198 002065 3360 DCA LSTLOC 1199 002066 1004 TAD CODELOC 1200 002067 3045 DCA LOCCTR 1201 002070 4361 JMS SUBRA 1202 002071 4177 JMS GETWD 1203 002072 1050 MOVLUP, TAD WORD 1204 002073 3772 DCA I PUTLOC 1205 002074 2372 ISZ PUTLOC 1206 002075 4177 JMS GETWD 1207 002076 1360 TAD LSTLOC 1208 002077 7041 CIA 1209 002100 1045 TAD LOCCTR 1210 002101 7640 SZA CLA 1211 002102 5272 JMP MOVLUP 1212 002103 1037 TRANSF, TAD PLINBUF 1213 002104 3060 DCA GPTR 1214 002105 1460 TRALUP, TAD I GPTR 1215 002106 2060 ISZ GPTR 1216 002107 3772 DCA I PUTLOC 1217 002110 2372 ISZ PUTLOC 1218 002111 2057 ISZ FPTR 1219 002112 5305 JMP TRALUP 1220 002113 4561 FIXLIN, JMS I PLINFIX 1221 002114 5520 JMP I PEDIT 1222 002115 0000 IGNORE, 0 /THIS ROUTINE LOOKS FOR A "\" OR A C.R. 1223 002116 4567 GET+ISIT 1224 002117 5000 5000 /TEXT? 1225 002120 5327 JMP NOTBAD /NOPE. 1226 002121 4177 JMS GETWD 1227 002122 1050 TAD WORD 1228 002123 0070 AND O77 1229 002124 7640 SZA CLA /END OF TEXT? 1230 002125 5321 JMP .-4 /NOPE. 1231 002126 5316 JMP IGNORE+1 /YEP. GET NEXT ITEM. 1232 002127 4575 NOTBAD, JMS I PISITLIT /IS IT A LITERAL? 1233 002130 7410 SKP 1234 002131 5316 JMP IGNORE+1 /YES. 1235 002132 4566 ISIT 1236 002133 2000 2000 /"\" OR C.R. 1237 002134 5316 JMP IGNORE+1 / N O 1238 002135 5715 JMP I IGNORE /YES. RETURN TO CALLER. 1239 002136 0000 COMPARE,0 1240 002137 4567 GET+ISIT /A LINENO 1241 002140 0000 0000 1242 002141 5356 JMP IAMLESS 1243 002142 1050 TAD WORD 1244 002143 7001 IAC 1245 002144 3013 DCA INDEX1 1246 002145 1413 TAD I INDEX1 1247 002146 7141 CLL CIA 1248 002147 1073 TAD OPERAND 1249 002150 7640 SZA CLA 1250 002151 5355 JMP FRSTNE 1251 002152 1413 TAD I INDEX1 1252 002153 7141 CLL CIA 1253 002154 1074 TAD OPERAND+1 1254 002155 7620 FRSTNE, SNL CLA /IS OPERAND 3466 006617 6041 TSF /IS IT THE TELEPRINTER. 3467 006620 5223 JMP .+3 /NO 3468 006621 6042 TCF 3469 006622 5310 JMP INODUN /YEP. CLEAN IT UP. 3470 006623 6661 LSF /PRINTER? 3471 006624 5227 JMP .+3 3472 006625 6662 LCF /YEP. 3473 006626 5310 JMP INODUN 3474 006627 6021 PSF /PUNCH? 3475 006630 5233 JMP .+3 3476 006631 6022 PCF 3477 006632 5310 JMP INODUN 3478 006633 6011 RSF /READER? 3479 006634 5241 JMP INOPPP /NOPE. 3480 006635 7330 CLA CLL CML RAR /4000 TO AC 3481 006636 6012 RRB /READ IN THE CHARACTER. 3482 006637 3740 DCA I PHRCHAR 3483 006640 5344 JMP INTEXT /EXIT FROM THE INTERUPT. 3484 006641 6663 INOPPP, 6663 /LINE PRINTER ERROR? 3485 006642 5245 JMP INOTTT /NOPE. 3486 006643 6667 6667 /YEP. INGORE THE LINE PRINTER NOW. 3487 006644 5344 JMP INTEXT /AND EXIT. 3488 006645 6031 INOTTT, KSF /IS IT THE KEYBOARD. 3489 006646 7402 HLT /NOPE. A BADDY. WE'RE F--KED. 3490 006647 6036 KRB /READ IN THE CHARACTER. 3491 006650 0027 AND O177 /CHOP OFF THE CRAP. 3492 006651 3336 DCA INTEMP /SAVE IN THE INTERUPT TEMPORARY. 3493 006652 1336 TAD INTEMP /RECALL IT NOW, BUBBY. 3494 006653 1376 TAD O7775 /IS IT A ^C 3495 006654 7450 SNA /? 3496 006655 5265 JMP FCNTLC /YES! 3497 006656 1377 TAD O7764D /^O? 3498 006657 7650 SNA CLA 3499 006660 5303 JMP FCNTLO 3500 006661 7330 CLA CLL CML RAR 3501 006662 1336 TAD INTEMP /SET HIGH ORDER BIT ON FOR SAFETY. 3502 006663 3741 DCA I PINCHAR /PUT IT AWAY 3503 006664 5344 JMP INTEXT /AND EXIT FROM INTERUPT. 3504 006665 1134 FCNTLC, TAD NOINT /CHECK IF OK TO INTERUPT. 3505 006666 7640 SZA CLA 3506 006667 5300 JMP CNTLCF /NOT OK. 3507 006670 6002 CNTLCR, IOF /TURN OFF INTERUPTS TO BE SURE. 3508 006671 4542 JMS I DELOUT /DELETE OUTPUT BUFFERS. 3509 006672 4537 JMS I PRESET /RESET ALL I/O DEVICES. 3510 006673 4514 JMS I PPRINTXT /GIVE THE STOP MESSAGE 3511 006674 6522 BREAK /I DON'T LIKE "THOSE PEOPLE" LOOKING OVER MY SHOULDER WHILE I TYPE. 3512 006675 1125 TAD PPDLIST /RESET PUSH DOWN POINTER 3513 006676 3036 DCA PDL 3514 006677 5520 JMP I PEDIT /AND RESTART CISAB 3515 006700 7040 CNTLCF, CMA /RESET ^C FOUND SWITCH. 3516 006701 3134 DCA NOINT 3517 006702 5344 JMP INTEXT 3518 006703 4542 FCNTLO, JMS I DELOUT /DELETE THE OUTPUT NOW, BABY. 3519 006704 1133 TAD CNTLO /NEGATE CNTLO SWITCH. 3520 006705 7040 CMA 3521 006706 3133 DCA CNTLO 3522 006707 5344 JMP INTEXT 3523 006710 3742 INODUN, DCA I POFLAG /RESET OUTPUT FLAG. 3524 006711 4743 JMS I POUTIT /PREFORM THE NEXT OPERATION. 3525 006712 5344 JMP INTEXT 3526 006713 0000 BIDLE, 0 /THE IDLE ROUTINE 3527 006714 6002 IOF 3528 006715 7201 CLA IAC 3529 006716 3337 DCA BUSY /RESET THE IDLE TASK FLAG. 3530 006717 6214 RDF /SAVE THE DATA FIELD NOW. 3531 006720 1215 TAD O6201A 3532 006721 3362 DCA INTECDF /AND PLACE IN WHERE TO GO ON IDLE EXIT. 3533 006722 1331 TAD IDLELK /RESTORE THE IDLE ROUTINES PARAMETERS. 3534 006723 7104 CLL RAL 3535 006724 1332 TAD IDLEAC 3536 006725 6211 IDLECD, CDF 10 3537 006726 6202 IDLECI, CIF 0 3538 006727 6001 ION /AND DO THE IDLE STUFF 3539 006730 5733 JMP I IDLEPC 3540 006731 0000 IDLELK, 0 3541 006732 0000 IDLEAC, 0 3542 006733 7415 IDLEPC, NULJOB 3543 006734 0000 INTAC, 0 3544 006735 0000 INTL, 0 3545 006736 0000 INTEMP, 0 3546 006737 0000 BUSY, 0 3547 006740 7256 PHRCHAR,HRCHAR 3548 006741 7255 PINCHAR,INCHAR 3549 006742 7100 POFLAG, OFLAG 3550 006743 7043 POUTIT, OUTIT 3551 006744 1337 INTEXT, TAD BUSY /GET STATUS. 3552 006745 7650 SNA CLA 3553 006746 5365 JMP INTOU /WE WERE NOT IDLE. EXIT NOW. 3554 006747 3337 DCA BUSY /RESET BUSY FLAG. 3555 006750 1000 TAD 0 3556 006751 3333 DCA IDLEPC 3557 006752 1334 TAD INTAC /SAVE SH-T. 3558 006753 3332 DCA IDLEAC 3559 006754 1335 TAD INTL 3560 006755 3331 DCA IDLELK 3561 006756 1371 TAD INTCIF 3562 006757 3326 DCA IDLECIF 3563 006760 1370 TAD INTCDF 3564 006761 3325 DCA IDLECDF 3565 006762 7402 INTECD, HLT /IDLE ROUTINES CALLING CDF. 3566 006763 6001 ION 3567 006764 5713 JMP I BIDLE /AND GO BACK NOW. 3568 006765 1335 INTOU, TAD INTL 3569 006766 7104 CLL RAL 3570 006767 1334 TAD INTAC 3571 006770 7402 INTCDF, HLT 3572 006771 7402 INTCIF, HLT 3573 006772 6001 ION 3574 006773 5400 JMP I 0 3575 006774 0070 O70, 70 3576 006775 6202 O6202, 6202 3577 006776 7775 O7775, 7775 3578 006777 7764 O7764D, 7764 3579 PAGE 3580 007000 0000 PUTER, 0 /THE CHARACTER PUTTER. 3581 007001 3241 DCA OPUTC /SAVE THE CHARACTER NOW. 3582 007002 6214 RDF /READ THE DATA FIELD NOW. 3583 007003 1205 TAD O6201B /CREATE PROPER CDF INSTRUCTION. 3584 007004 3237 DCA PUTCDF /SAVE CDF INSTRUCTION. 3585 007005 6201 O6201B, CDF 0 /RESET CDF TO THIS DATA FIELD. 3586 007006 7410 SKP 3587 007007 4761 PUTLP, JMS I PBIDLE /CALL IN THE IDLE ROUTINE NOW. 3588 007010 1242 TAD OCOUNT /GET NUMBER OF CHARACTERS IN THE BUFFER. 3589 007011 7450 SNA 3590 007012 5223 JMP PUTCIN /PUT IT IN NOW, BABY. 3591 007013 1315 TAD OCMLIM /TEST FOR TOO MANY IN BUFFER. 3592 007014 7650 SNA CLA 3593 007015 5207 JMP PUTLP /YEP. WAIT AWHILE. 3594 007016 1131 TAD OUTDEV 3595 007017 7041 CIA 3596 007020 1132 TAD ODEV /CHECK FOR A MATCH. 3597 007021 7640 SZA CLA 3598 007022 5207 JMP PUTLP /NOPE. WAIT FOR BUFFER TO BECOME EMTPY. 3599 007023 6002 PUTCIN, IOF /TURN THEM OFF, BABY. 3600 007024 1133 TAD CNTLO /CHECK FOR CONTROL "O" ACTIVE. 3601 007025 7650 SNA CLA 3602 007026 1131 TAD OUTDEV /MOVE OVER OUTPUT DEVICE. 3603 007027 3132 DCA ODEV 3604 007030 2242 ISZ OCOUNT 3605 007031 1241 TAD OPUTC /STICK A CHARACTER IN THE BUFFER. 3606 007032 3634 DCA I IPOINT 3607 007033 4301 JMS OBOP /BOP UP THE POINTER NOW. 3608 007034 1165 IPOINT, OBLOW 3609 007035 4243 JMS OUTIT /SEND IT OUT 3610 007036 6001 ION /RESTORE INTERUPTS. 3611 007037 7402 PUTCDF, HLT /USER'S CORRECT CDF 3612 007040 5600 JMP I PUTER 3613 007041 0000 OPUTC, 0 3614 007042 0000 OCOUNT, 0 3615 007043 0000 OUTIT, 0 3616 007044 1300 TAD OFLAG 3617 007045 7640 SZA CLA 3618 007046 5643 JMP I OUTIT /FLAG STILL UP. EXIT. 3619 007047 1242 TAD OCOUNT 3620 007050 7450 SNA 3621 007051 5643 JMP I OUTIT /NO CHARS TO GO. SO WE WILL. 3622 007052 1314 TAD O7777 /PLEASE IGNORE THE COMMENTS OF A DERANGED MIND. 3623 007053 3242 DCA OCOUNT 3624 007054 1132 TAD ODEV 3625 007055 1273 TAD OPOTAB /MAP DEVICE INTO TABEL TOO ET WHAT TO DO. 3626 007056 3300 DCA OFLAG /AND ALSO RESET FLAG AT THE SAME TIME. 3627 007057 1700 TAD I OFLAG /GET THE MAGIC INSTUCTION. 3628 007060 3262 DCA .+2 /AND PLACE IT HERE. 3629 007061 1665 TAD I OPOINT /GET THE CHARACTER. 3630 007062 7402 HLT /AND HALT. 3631 007063 7200 CLA /AFTER PRINTING THE CHARACTER, 3632 007064 4301 JMS OBOP /WE SHALL INCREMENT THE POINTER. 3633 007065 1165 OPOINT, OBLOW 3634 007066 5643 JMP I OUTIT /AND EXIT. 3635 007067 7200 OPNUL, CLA /RESET OFLAG 3636 007070 3300 DCA OFLAG /SO DEVICES INACTIVE. 3637 007071 4542 JMS I DELOUT /DELETE ANY STRAY CHARACTERS IN THE BUFFER. 3638 007072 5643 JMP I OUTIT /AND RETURN NOW. 3639 007073 7074 OPOTAB, .+1 3640 007074 5267 JMP OPNUL /NUL DEVICE (NO ECHOING) 3641 007075 6046 TLS 3642 007076 6026 PLS 3643 007077 6666 LLS 3644 007100 0000 OFLAG, 0 3645 007101 0000 OBOP, 0 3646 007102 1701 TAD I OBOP 3647 007103 1312 TAD OTST1 3648 007104 7450 SNA 3649 007105 1315 TAD OFLOW 3650 007106 1313 TAD OCOR 3651 007107 3701 DCA I OBOP 3652 007110 2301 ISZ OBOP 3653 007111 5701 JMP I OBOP 3654 007112 6601 OTST1, -OBHIGH 3655 007113 1200 OCOR, OBHIGH+1 3656 007114 7777 O7777, 7777 3657 007115 7765 OFLOW, -OBHIGH-1+OBLOW 3658 OCMLIM=OFLOW 3659 007116 0000 RESET1, 0 3660 007117 7201 CLA IAC 3661 007120 3131 DCA OUTDEV 3662 007121 7201 CLA IAC 3663 007122 3130 DCA OUTD2 3664 007123 7201 CLA IAC 3665 007124 3127 DCA INDEV 3666 007125 3133 DCA CNTLO 3667 007126 3134 DCA NOINT /CLEAR NO-INTERUPT FLAG. 3668 007127 6201 CDF 0 /RESET DATA FIELD TO HERE. 3669 007130 3756 DCA I QHRCHAR /CLEAR ALL INPUT FLAGS. 3670 007131 3762 DCA I SINCHAR 3671 007132 3757 DCA I PBUSY /AND ALSO THE BUSY FLAG. 3672 007133 3760 DCA I PPXRA /RESET NULL AFTER C.R. FLAG. 3673 IFZERO MACHINE< 3674 007134 6211 CDF 10 3675 007135 6001 ION 3676 > 3677 007136 6665 6665 /TELL LPT IT'S OK TO INTERUPT NOW. 3678 007137 5716 JMP I RESET1 3679 007140 0352 LLLUUU, UUULLL /POINTER TO UPPER CORE RESETER. 3680 007141 0000 RESET2, 0 3681 007142 4537 JMS I PRESET 3682 007143 4542 JMS I DELOUT 3683 007144 3300 DCA OFLAG 3684 007145 5741 JMP I RESET2 3685 007146 0000 OUTDEL, 0 3686 007147 3242 DCA OCOUNT 3687 007150 1355 TAD OPRST 3688 007151 3265 DCA OPOINT 3689 007152 1355 TAD OPRST 3690 007153 3234 DCA IPOINT 3691 007154 5746 JMP I OUTDEL 3692 007155 1165 OPRST, OBLOW 3693 007156 7256 QHRCHAR,HRCHAR 3694 007157 6737 PBUSY, BUSY 3695 007160 0776 PPXRA, PUTXRA 3696 007161 6713 PBIDLE, BIDLE 3697 007162 7255 SINCHAR,INCHAR 3698 007163 7201 LPTOUT, CLA IAC /LINE PRINTER OUTPUT 3699 007164 7001 PTPOUT, IAC /PUNCH OUT 3700 007165 7001 TTYOUT, IAC /TTY OUT 3701 007166 3131 DCA OUTDEV /AND SET IT UP 3702 007167 1131 TAD OUTDEV /ALSO MOVE OVER TO SECONDARY DEVICE. 3703 007170 3130 DCA OUTD2 3704 007171 5375 JMP DEVCOM /AND CHECK FOR END. 3705 007172 7201 PTRIN, CLA IAC 3706 007173 7001 TTYIN, IAC 3707 007174 3127 DCA INDEV 3708 007175 4177 DEVCOM, JMS GETWD 3709 007176 4570 DEVCON, MUSTBE 3710 007177 2000 2000 /C.R. OR \ 3711 007200 5503 JMP I PEXECUTE 3712 007201 0000 GETCH, 0 3713 007202 4270 JMS GWHERE 3714 007203 4657 JMS I QBIDLE 3715 007204 1255 TAD INCHAR 3716 007205 7450 SNA 3717 007206 5203 JMP GETCH+2 3718 007207 0027 AND O177 3719 007210 3254 DCA GTEMP 3720 007211 3255 DCA INCHAR 3721 007212 3256 DCA HRCHAR 3722 007213 1135 TAD RBSWCH 3723 007214 7650 SNA CLA 3724 007215 5224 JMP GRB 3725 007216 1254 TAD GTEMP 3726 007217 1260 TAD O7601 3727 007220 7640 SZA CLA 3728 007221 5224 JMP GRB 3729 007222 1261 GRDELA, TAD O137 3730 007223 5601 JMP I GETCH 3731 007224 1254 GRB, TAD GTEMP 3732 007225 1055 TAD O7770 3733 007226 7450 SNA 3734 007227 5222 JMP GRDELA 3735 007230 1262 TAD O7612 3736 007231 7450 SNA 3737 007232 5247 JMP GALT 3738 007233 1266 TAD O143 3739 007234 7650 SNA CLA 3740 007235 5247 JMP GALT 3741 007236 1254 TAD GTEMP 3742 007237 1263 TAD O7640C 3743 007240 7510 SPA 3744 007241 5251 JMP GOUT 3745 007242 1264 TAD O7746 3746 007243 7500 SMA 3747 007244 5251 JMP GOUT 3748 007245 1265 TAD O132 3749 007246 5601 JMP I GETCH 3750 007247 1267 GALT, TAD O175 3751 007250 5601 JMP I GETCH 3752 007251 7200 GOUT, CLA 3753 007252 1254 TAD GTEMP 3754 007253 5601 JMP I GETCH 3755 007254 0000 GTEMP, 0 3756 007255 0000 INCHAR, 0 3757 007256 0000 HRCHAR, 0 3758 007257 6713 QBIDLE, BIDLE 3759 007260 7601 O7601, 7601 3760 007261 0137 O137, 137 3761 007262 7612 O7612, 7612 3762 007263 7640 O7640C, 7640 3763 007264 7746 O7746, 7746 3764 007265 0132 O132, 132 3765 007266 0143 O143, 143 3766 007267 0175 O175, 175 3767 007270 0000 GWHERE, 0 3768 007271 7240 CLA CMA 3769 007272 1127 TAD INDEV 3770 007273 2270 ISZ GWHERE 3771 007274 7750 SPA SNA CLA 3772 007275 5670 JMP I GWHERE /INPUT=TTY 3773 007276 1264 TAD O7746 3774 007277 3254 DCA GTEMP 3775 007300 3256 DCA HRCHAR 3776 007301 6014 RFC /START THE READER NOW. 3777 007302 1256 HRLOP, TAD HRCHAR 3778 007303 7440 SZA 3779 007304 5321 JMP HFOUND /GOT IT. 3780 007305 2255 ISZ INCHAR 3781 007306 5302 JMP HRLOP 3782 007307 2254 ISZ GTEMP 3783 007310 5302 JMP HRLOP 3784 007311 7201 CLA IAC 3785 007312 3131 DCA OUTDEV /RESET OUTPUT DEVICE FOR A SECOND. 3786 007313 3133 DCA CNTLO /RESET THE CONTROL "O" SWITCH ALSO. 3787 007314 4514 JMS I PPRINTXT /GIVE THE MESSAGE. 3788 007315 7323 HRMES 3789 007316 7201 CLA IAC 3790 007317 3127 DCA INDEV 3791 007320 5670 JMP I GWHERE 3792 007321 2270 HFOUND, ISZ GWHERE 3793 007322 5670 JMP I GWHERE 3794 007323 3724 HRMES, TEXT '_TTY_' 007324 2431 007325 3700 3795 007326 0000 COWT, 0 /THIS ROUTINE WAITS FOR OUTPUT TO STOP. 3796 007327 6201 CDF 0 /SET D.F. TO THIS FIELD. 3797 007330 3742 DCA I CCXRA /SET OR RESET NULL AFTER C.R. FLAG. 3798 007331 1743 COWTLP, TAD I COWTFP /GET OUTPUT FLAG STATUS. 3799 007332 6211 CDF 10 /RESET D.F. 3800 007333 7650 SNA CLA /IS OUTPUT DONE? 3801 007334 5340 JMP COWTO /YEP. EXIT. 3802 007335 4744 JMS I COWTW /NOPE. IDLE LOOP TILL INTERUPT. 3803 007336 6201 CDF 0 /RESET D.F. TO ZERO. 3804 007337 5331 JMP COWTLP /AND LOOP. 3805 007340 3133 COWTO, DCA CNTLO /CLEAR CONTROL O STATE. 3806 007341 5726 JMP I COWT 3807 007342 0776 CCXRA, PUTXRA 3808 007343 7100 COWTFP, OFLAG 3809 007344 6713 COWTW, BIDLE 3810 007345 0000 XGMUST, 0 3811 007346 4177 JMS GETWD 3812 007347 1345 TAD XGMUST 3813 007350 3352 DCA XMUST 3814 007351 5353 JMP XMUST+1 3815 007352 0000 XMUST, 0 3816 007353 1450 TAD I WORD 3817 007354 6201 CDF 0 /''''''''' 8 K INSERT. 3818 007355 1752 TAD I XMUST 3819 007356 6211 CDF 10 /''''''''' 8 K INSERT. 3820 007357 2352 ISZ XMUST 3821 007360 7650 SNA CLA 3822 007361 5752 JMP I XMUST 3823 007362 5500 JMP I PSXERR 3824 007363 4477 ARGERR, JMS I PERROR 3825 007364 0122 TEXT 'ARGUMENT' 007365 0725 007366 1505 007367 1624 007370 0000 3826 007371 5660 DOTZERO,TEXT '.0' 007372 0000 3827 007373 4477 RTERR, JMS I PERROR /GIVE RATE ERROR FOR CLOCK. 3828 007374 2201 TEXT 'RATE' 007375 2405 007376 0000 3829 PAGE 3830 IFZERO MACHINE< 3831 NOPUNCH> 3832 007400 1136 PLOT, TAD DISB /GET BUFFER ADDRESS. 3833 007401 7640 SZA CLA /IS THERE ONE? 3834 007402 5220 JMP DBGOT 3835 007403 1240 TAD PASSUME /GET ASSUMMED LENGTH. 3836 007404 4544 JMS I SPLEFT /ROOM LEFT TO FIT IT IN. 3837 007405 7410 SKP 3838 007406 5755 JMP I NPSPERR /NO. 3839 007407 1003 TAD ARRLOC /GET A USABLE ADDRESS. 3840 007410 3311 DCA DLAST /SAVE AWAY. 3841 007411 1003 TAD ARRLOC /NOW UPDATE OUR ARRAY. 3842 007412 1240 TAD PASSUME 3843 007413 3003 DCA ARRLOC 3844 007414 7240 CLA CMA 3845 007415 1003 TAD ARRLOC /GET LAST WORD OF OUR BUFFER NOW. 3846 007416 3312 DCA DDLAST /AND GO. 3847 007417 4314 JMS PLOTB /FIGURE OUT OUR CRAP NOW. 3848 007420 3313 DBGOT, DCA DBAD /TELL IT POINT IS ON SCREEN 3849 007421 4177 JMS GETWD /GET NEXT SYNTATICAL ELEMENT. 3850 007422 4641 JMS I PMEVAL /EVALUATE OUR EXPRESSION. 3851 007423 4435 FENTER 3852 007424 6217 FMP+FSHIFT+FWD-. /CORRECT NUMBER FOR SYMETRICAL SCREEN. 3853 007425 0000 FEXIT 3854 007426 4326 JMS DBLIT /PUT IT IN THE BUFFER. 3855 007427 4641 JMS I PMEVAL /GET Y COORDINATE. 3856 007430 4326 JMS DBLIT /PUT IT IN THE BUFFER. 3857 007431 1313 TAD DBAD /IS IT A BAD ONE? 3858 007432 7041 CIA 3859 007433 1311 TAD DINP 3860 007434 3311 DCA DINP 3861 007435 7330 CLA CLL CML RAR /4000=END OF BUFFER CHARACTER. 3862 007436 3711 DCA I DINP 3863 007437 5642 JMP I PDEVCON 3864 007440 1750 PASSUME,1750 3865 007441 7415 PMEVAL, MEVAL 3866 007442 7176 PDEVCON,DEVCON 3867 007443 2007 FSHIFT, 2007;1600;0000 /MAGIC CONSTANT FOR SYMETRICAL SCREEN. 007444 1600 007445 0000 3868 007446 1136 USE, TAD DISB /IS DISPLAY BUFFER ASSIGNED. 3869 007447 7640 SZA CLA 3870 007450 5661 JMP I USKIPIT /YES. EXIT. 3871 007451 4262 JMS GETARY /GET THE ARRAY DATA 3872 007452 1020 TAD AC1 /GET FIRST FREE LOCATION 3873 007453 3311 DCA DLAST 3874 007454 1017 TAD AC2 /GET SECOND FREE LOCATION 3875 007455 3312 DCA DDLAST /SAVE AWAY. 3876 007456 4314 JMS PLOTB /SET UP STUFF. 3877 007457 4177 JMS GETWD /GET NEXT ELIMAENT AFTER VARIABLE. 3878 007460 5642 JMP I PDEVCON 3879 007461 0467 USKIPIT,SKIPIT 3880 007462 0000 GETARY, 0 /THIS ROUTINE GETS THE FIRST AND LAST LOCATIONS OF AN ARRAY. 3881 007463 4571 GET+MUSTBE /MUST BE A VARIABLE. 3882 007464 7000 7000 3883 007465 1050 TAD WORD /GET POINTER TO VARIABLE. 3884 007466 3302 DCA UVP 3885 007467 2050 ISZ WORD 3886 007470 1450 TAD I WORD /GET POINTER NOW. 3887 007471 7001 IAC 3888 007472 3020 DCA AC1 /SAVE AWAY. 3889 007473 2050 ISZ WORD 3890 007474 1450 TAD I WORD 3891 007475 3303 DCA U1P 3892 007476 2050 ISZ WORD 3893 007477 1450 TAD I WORD 3894 007500 3304 DCA U2P 3895 007501 4502 JMS I PGETADD 3896 007502 0000 UVP, 0 3897 007503 0000 U1P, 0 3898 007504 0000 U2P, 0 3899 007505 7326 CLA CLL CML RTL /+2 3900 007506 1067 TAD ADDRESS 3901 007507 3017 DCA AC2 3902 007510 5662 JMP I GETARY 3903 007511 0000 DLAST, 0 3904 DINP=DLAST 3905 007512 0000 DDLAST, 0 3906 007513 0000 DBAD, 0 3907 007514 0000 PLOTB, 0 3908 007515 7240 CLA CMA 3909 007516 1311 TAD DLAST 3910 007517 3136 DCA DISB 3911 007520 1325 TAD O4001 3912 007521 3712 DCA I DDLAST 3913 007522 7330 CLA CLL CML RAR 3914 007523 3711 DCA I DLAST 3915 007524 5714 JMP I PLOTB 3916 007525 4001 O4001, 4001 3917 007526 0000 DBLIT, 0 3918 007527 1024 TAD ACS 3919 007530 7700 SMA CLA 3920 007531 5335 JMP .+4 3921 007532 7326 DBBAD, CLA CLL CML RTL 3922 007533 3313 DCA DBAD 3923 007534 5347 JMP DBISRT 3924 007535 1025 TAD ACE 3925 007536 1354 TAD O7577B 3926 007537 7700 SMA CLA 3927 007540 5332 JMP DBBAD 3928 007541 1025 TAD ACE 3929 007542 1065 TAD O12 3930 007543 3025 DCA ACE 3931 007544 4506 JMS I PFIX 3932 007545 7200 CLA 3933 007546 1016 TAD AC3 3934 007547 4356 DBISRT, JMS DBPUT 3935 007550 7330 CLA CLL CML RAR 3936 007551 2311 ISZ DINP 3937 007552 4356 JMS DBPUT 3938 007553 5726 JMP I DBLIT 3939 007554 7577 O7577B, 7577 3940 007555 0370 NPSPERR,SPACERR 3941 007556 0000 DBPUT, 0 3942 007557 3017 DCA AC2 3943 007560 7350 CLA CLL CMA RAR /-4001=3777 3944 007561 1711 TAD I DINP 3945 007562 7650 SNA CLA 3946 007563 5755 JMP I NPSPERR /NO ROOM IN BUFFER. BOMB HIM. 3947 007564 1017 TAD AC2 3948 007565 3711 DCA I DINP 3949 007566 5756 JMP I DBPUT 3950 007567 4477 UUDATA, JMS I PERROR 3951 007570 0155 TEXT 'A-D FULL' 007571 0440 007572 0625 007573 1414 007574 0000 3952 ENPUNCH 3953 3954 IFZERO MACHINE< 3955 *PLOT> 3956 007400 0000 SETUP, 0 3957 007401 1005 TAD PSYMTAB 3958 007402 3056 DCA EPTR 3959 007403 1006 TAD NSYMTAB 3960 007404 3057 DCA FPTR 3961 007405 3136 DCA DISB 3962 007406 5600 JMP I SETUP 3963 3964 IFZERO MACHINE< 3965 CDEVCOM=0 3966 > 3967 007407 0000 ISET, 0 3968 007410 6050 DILC 3969 007411 6055 DIXY 3970 007412 4614 JMS I IIXR 3971 007413 5607 JMP I ISET 3972 007414 7141 IIXR, RESET2 3973 3974 IFZERO MACHINE< 3975 NOPUNCH> 3976 007415 0000 MEVAL, 0 3977 007416 4566 ISIT /IS IT A C.R. 3978 007417 2000 2000 3979 007420 7410 SKP 3980 007421 5500 JMP I PSXERR 3981 007422 4566 ISIT 3982 007423 3763 3763 /, 3983 007424 5227 JMP .+3 3984 007425 4177 JMS GETWD 3985 007426 5216 JMP MEVAL+1 3986 007427 1215 TAD MEVAL 3987 007430 5631 JMP I MEVALGO 3988 007431 1007 MEVALGO,EVALGO 3989 007432 1136 CLEAR, TAD DISB 3990 007433 7450 SNA /IS IT THERE? 3991 007434 5400 JMP I CDEVCOM /NOPE. 3992 007435 3013 DCA INDEX1 3993 007436 7330 CLA CLL CML RAR /4000 3994 007437 3413 DCA I INDEX1 3995 007440 6201 CDF 0 /RESET INPUT POINTER ALSO. 3996 007441 1013 TAD INDEX1 3997 007442 3645 DCA I CDINP 3998 007443 6211 CDF 10 3999 007444 5400 JMP I CDEVCOM 4000 007445 7511 CDINP, DINP 4001 007446 0000 LLLJMS, 0 4002 007447 1646 TAD I LLLJMS 4003 007450 2246 ISZ LLLJMS 4004 007451 3257 DCA LLLJMP 4005 007452 4657 JMS I LLLJMP 4006 007453 7410 SKP /IN CASE OF SKIPPING RETURN. 4007 007454 2246 ISZ LLLJMS 4008 007455 6213 CIF CDF 10 4009 007456 5646 JMP I LLLJMS 4010 007457 0000 LLLJMP, 0 4011 007460 1657 TAD I LLLJMP 4012 007461 3257 DCA LLLJMP 4013 007462 5657 JMP I LLLJMP 4014 007463 7326 DELAY, CLA CLL CML RTL /+2 4015 007464 3220 DCA NDELAY /SET UP DEALY TIME (ONE TIME THROUGH). 4016 4017 IFZERO MACHINE< 4018 ENPUNCH 4019 *MEVAL 4020 007415 7001 NULJOB, IAC 4021 007416 5215 JMP NULJOB 4022 NOPUNCH> 4023 007417 3015 DCA DISAUTO /WITH POINTER TO OUR BUFFER. 4024 007420 1220 TAD NDELAY /UPDATE DELAY WORD. 4025 007421 7110 CLL RAR 4026 007422 3220 DCA NDELAY 4027 007423 7430 SZL /ARE WE FINISHED WITH DELAY COMMAND? 4028 007424 5400 JMP I CDEVCOM /YEP. EXIT NOW. 4029 007425 1136 TAD DISB /GET OUR WORD NOW. 4030 007426 7650 SNA CLA /ZERO? 4031 007427 5215 JMP NULJOB /YEP. WAIT AWHILE. 4032 007430 1415 NULLOP, TAD I DISAUTO 4033 007431 7510 SPA 4034 007432 5254 JMP NULCMD 4035 007433 1256 TAD O7000C /BRING DOWN INTO RANGE OF SCREEN. 4036 007434 6052 DISD 4037 007435 5234 JMP .-1 4038 007436 6053 DILX 4039 007437 7200 CLA 4040 007440 1415 TAD I DISAUTO 4041 007441 7510 SPA 4042 007442 5254 JMP NULCMD 4043 007443 1256 TAD O7000C /CENTER AGAIN. 4044 007444 6052 DISD 4045 007445 5244 JMP .-1 4046 007446 6054 DILY 4047 007447 7200 CLA 4048 007450 6052 DISD 4049 007451 5250 JMP .-1 4050 007452 6055 DIXY 4051 007453 5230 JMP NULLOP 4052 007454 7200 NULCMD, CLA 4053 007455 5215 JMP NULJOB 4054 007456 7000 O7000C, 7000 4055 007457 6762 NINTECDF,INTECDF 4056 007460 4477 UUNOAD, JMS I PERROR 4057 007461 1617 TEXT 'NO A-D' 007462 4001 007463 5504 007464 0000 4058 007465 0000 CCINTK, 0 4059 007466 6131 6131 4060 007467 5665 JMP I CCINTK 4061 007470 6213 CIF CDF 10 4062 007471 5672 JMP I .+1 4063 007472 0175 CLOCKI 4064 REALTI=. 4065 SETRAT=. 4066 SETCLO=. 4067 WAITC=. 4068 WAIT=. 4069 REJECT=. 4070 ACCEPT=. 4071 4072 007473 1450 TAD I WORD 4073 007474 6213 CDF CIF 10 4074 007475 5676 JMP I .+1 4075 007476 0731 UPCOMDO 4076 TIM=. 4077 CLC=. 4078 CLS=. 4079 ADC=. 4080 ADB=. 4081 007477 0000 0 4082 007500 1436 TAD I PDL /RECALL CORRECT FUNCTION NUMBER (IT'S ON THE STACK) 4083 007501 6213 CIF CDF 10 4084 007502 4704 JMS I .+2 4085 007503 5677 JMP I ADB 4086 007504 0747 UPFUN 4087 ENPUNCH 4088 IFZERO MACHINE< 4089 *NULJOB+2> 4090 007417 3762 TSTFX, BEGFIX 4091 007420 0000 NDELAY, 0 4092 007421 0000 TST, 0 4093 007422 4617 JMS I TSTFX 4094 007423 6201 CDF 0 4095 007424 1631 TAD I TSTP 4096 007425 6211 CDF 10 4097 007426 3016 DCA AC3 4098 007427 4546 JMS I PANORM 4099 007430 5621 JMP I TST 4100 007431 7255 TSTP, INCHAR 4101 FIELD 1 4102 *0 4103 010000 2045 TEN, 2045;0000;0000 /INSERTED IN UPPER CORE BECAUSE OF FEEBILITY. 010001 0000 010002 0000 4104 010003 0000 CLKSTS, 0 4105 010004 0000 TIM1, 0 4106 010005 0000 TIM2, 0 4107 010006 0000 ABDGET, 0 4108 010007 0000 ADACPT, 0 4109 010010 0000 ADCUNT, 0 4110 010011 0000 CLTEMP, 0 4111 010012 0000 ADCX, 0 4112 010013 0100 U100, 100 4113 010014 0000 CT3, 0 4114 010015 0000 CT2, 0 4115 010016 0000 CT1, 0 4116 010017 0177 U177, 177 4117 010020 4707 U4707, 4707 4118 010021 7775 U7775, 7775 4119 010022 0000 ACOUNT, 0 4120 010023 0000 APUT1, 0 4121 010024 0000 APUT2, 0 4122 010025 0000 ADA1, 0 4123 010026 0000 ADA2, 0 4124 010027 0000 ADA3, 0 4125 010030 0550 UUSETF, USETF 4126 010031 0673 UMEVAL, UUMEVAL 4127 010032 0677 UPFIX, UUPFIX 4128 010033 0007 U7, 7 4129 010034 5010 U5010, 5010 4130 010035 7767 U7767, 7767 4131 010036 0010 U10, 10 4132 010037 0654 UAC1, UUAC1 4133 010040 0661 UAC2, UUAC2 4134 010041 0666 UAC3, UUAC3 4135 010042 0020 PPAC1, AC1 4136 010043 0017 PPAC2, AC2 4137 010044 0016 PPAC3, AC3 4138 010045 0025 PPACE, ACE 4139 010046 0024 PPACS, ACS 4140 010047 0017 U17, 17 4141 010050 7777 U7777, 7777 4142 010051 0362 UDOAD, DOAD 4143 010052 7760 U7760, 7760 4144 010053 0000 UTEMP, 0 4145 010054 0722 UJMP, UUJMP 4146 010055 0707 UJMS, UUJMS 4147 010056 0705 UDEVCON,UUDEVCON 4148 010057 6000 UGETWD, 6000 4149 010060 4455 JMS I UJMS 4150 010061 0177 GETWD 4151 010062 5457 JMP I UGETWD 4152 010063 0000 AUTEMP, 0 4153 010064 7767 ADCCOR, -11 /ABOUT 512 FOR FUDGE. 4154 PAGE 4155 *.-3 4156 010175 6135 CLOCKI, 6135 /CLEAR CLOCK FLAG. 4157 010176 3003 DCA CLKSTS /AND SAVE STATUS. 4158 010177 2005 ISZ TIM2 /INCREMENT CLOCK. 4159 010200 5203 JMP .+3 4160 010201 2004 ISZ TIM1 4161 010202 7000 NOP 4162 010203 1006 TAD ABDGET /IS REAL TIME OPTION RUNNING? 4163 010204 7750 SPA SNA CLA 4164 010205 5234 JMP UIEXT /NOPE. 4165 010206 1007 TAD ADACPT /IT SO, ARE WE NOW ACCEPTING DATA? 4166 010207 7650 SNA CLA 4167 010210 5234 JMP UIEXT /NOPE. 4168 010211 1010 TAD ADCUNT /YEP. GET NUMBER OF CHANNELS TO DO. 4169 010212 3011 DCA CLTEMP /SET UP OUR COUNTER. 4170 010213 1012 TAD ADCX /GET STARTING CHANNEL NUMBER. 4171 010214 6531 6531 /SEND TO TO CONTROLLER. 4172 010215 1013 TAD U100 /TELL IT TO INCREMENT MULTIPLEXOR WHEN DONE. 4173 010216 6536 6536 4174 010217 4451 UCLOOP, JMS I UDOAD /PREFORM A-D INSTRUCTION. 4175 010220 4263 JMS APUT /STORE IN USERS BUFFER. 4176 010221 2011 ISZ CLTEMP /ALL DONE? 4177 010222 5217 JMP UCLOOP /NOPE. WAIT. 4178 010223 2014 ISZ CT3 /DONE. INCREMENT TOTAL NUMBER OF SAMPLES. 4179 010224 5234 JMP UIEXT 4180 010225 2015 ISZ CT2 4181 010226 5234 JMP UIEXT 4182 010227 2016 ISZ CT1 4183 010230 5234 JMP UIEXT 4184 010231 7240 CLA CMA /ALL DONE. STOP SAMPLING. 4185 010232 3006 DCA ABDGET 4186 010233 3007 DCA ADACPT /AND GO INTO "REJECT" MODE. 4187 010234 6031 UIEXT, 6031 /HAS HE TYPED A CONTROL C? 4188 010235 5243 JMP UIEXT2 /NO. 4189 010236 6034 6034 4190 010237 0017 AND U177 4191 010240 1021 TAD U7775 /^C? 4192 010241 7650 SNA CLA 4193 010242 5245 JMP UIEXT3 /YES! BOMB HIM. 4194 010243 6131 UIEXT2, 6131 4195 010244 5260 JMP UIEXT4 /CLOCK HAS NOT COME UP AGAIN. ALL IS WELL. 4196 010245 1020 UIEXT3, TAD U4707 /STOP CLOCK IMMEADIATATELY. 4197 010246 6132 6132 4198 010247 6135 6135 4199 010250 6130 6130 4200 010251 7240 CLA CMA 4201 010252 6130 6130 /CLEAR ALL AFTER PARTIAL ENABLE. 4202 010253 6032 6032 /CLEAT TTY FLAG. 4203 010254 3006 DCA ABDGET /FREE BUFFER AND ACCEPT MODE. 4204 010255 3007 DCA ADACPT 4205 010256 4454 JMS I UJMP 4206 010257 7373 RTERR 4207 010260 6203 UIEXT4, CIF CDF 0 /INTERUPT EXIT. 4208 010261 5662 JMP I .+1 4209 010262 6744 INTEXT /AND DO WHATEVER GOD INTENDED. 4210 010263 0000 APUT, 0 /THIS ROUTINE PUTS A SAMPLE IN THE BUFFER. 4211 010264 3423 DCA I APUT1 /PLACE IN BUFFER. 4212 010265 2022 ISZ ACOUNT /INCREMENT COUNTER. 4213 010266 4325 JMS ABOP /BOP UP POINTER. 4214 010267 0023 APUT1 4215 010270 1023 TAD APUT1 /GET INPUT POINTER. 4216 010271 7041 CIA 4217 010272 1024 TAD APUT2 /DOES IT MATCH OUTPUT POINTER? 4218 010273 7640 SZA CLA 4219 010274 5663 JMP I APUT /NOPE. ALL IS WELL. 4220 010275 3006 DCA ABDGET /FREE BUFFER. 4221 010276 3007 DCA ADACPT /AND ACCEPT. 4222 010277 4454 JMS I UJMP /GIVE ERROR. 4223 010300 7567 UUDATA /A-D ERROR. 4224 010301 0000 AGET, 0 /THIS GETS A DATA ITEM FROM BUFFER. 4225 010302 7240 CLA CMA /DECREMENT COUNTER. 4226 010303 1022 TAD ACOUNT 4227 010304 7500 SMA /OR SHOULD WE? 4228 010305 5312 JMP .+5 /YEP. STILL ITEMS LEFT. 4229 010306 7200 CLA 4230 010307 4455 JMS I UJMS /PUT TO SLEEP 4231 010310 6713 BIDLE 4232 010311 5302 JMP AGET+1 /AND CHECK AGAIN WHEN AWAKE. 4233 010312 3022 DCA ACOUNT /SAVE COUNTER. 4234 010313 1424 TAD I APUT2 /GET THE SAMPLE. 4235 010314 3323 DCA ATEMP /SAVE WHILE UPDATE TAKES PLACE. 4236 010315 6002 IOF 4237 010316 4325 JMS ABOP 4238 010317 0024 APUT2 4239 010320 6001 ION /ABOP WILL F--K YOU UP IF CALLED RE-ENTRENTLY. 4240 010321 1323 TAD ATEMP 4241 010322 5701 JMP I AGET 4242 010323 0000 ATEMP, 0 4243 010324 0000 ATEMP2, 0 4244 010325 0000 ABOP, 0 4245 010326 1725 TAD I ABOP 4246 010327 3324 DCA ATEMP2 /SAVE POINTER NOW. 4247 010330 1724 TAD I ATEMP2 4248 010331 2325 ISZ ABOP /GET VALUE AND SKIP PAST POINTER #1. 4249 010332 1025 TAD ADA1 /TEST AGAINST UPPER. 4250 010333 7450 SNA 4251 010334 1026 TAD ADA2 /CORRECT TO LOWER. 4252 010335 1027 TAD ADA3 /AND ADD IN UPPER. 4253 010336 3724 DCA I ATEMP2 /AND THEN SAVE AWAY. 4254 010337 5725 JMP I ABOP /AND THEN EXIT. 4255 010340 0000 UCLS, 0 /GETS STATUS AFTER LAST CLOCK INTERUPT. 4256 010341 1003 TAD CLKSTS 4257 010342 4430 JMS I UUSETF 4258 010343 0000 0 4259 010344 5740 JMP I UCLS /RETURN WHEN DONE. 4260 010345 0000 UCLC, 0 /READS IN AS A CLCA 4261 010346 6137 6137 /GET COUNT REGISTER. 4262 010347 4430 JMS I UUSETF 4263 010350 0000 0 /FIX IT UP. 4264 010351 5745 JMP I UCLC /AND RETURN NOW. 4265 010352 0000 UUULLL, 0 4266 010353 7200 CLA 4267 010354 3022 DCA ACOUNT 4268 010355 3006 DCA ABDGET 4269 010356 3007 DCA ADACPT 4270 010357 6001 ION 4271 010360 6202 CIF 0 4272 010361 5752 JMP I UUULLL 4273 010362 0000 DOAD, 0 4274 010363 1052 TAD U7760 /PLENTY OF DELAY 4275 010364 3375 DCA DSCREW /SAVE IN A COUNTER WORD. 4276 010365 6532 6532 /START CONVERSION. 4277 010366 6534 DOADLP, 6534 /WAIT UNTIL DONE. 4278 010367 7410 SKP /IF NOT DONE, WAIT SOME. 4279 010370 5373 JMP .+3 /IF DONE, READ IT IN. 4280 010371 2375 ISZ DSCREW 4281 010372 5366 JMP DOADLP /WAIT UNTIL DONE OR TOO LONG. 4282 010373 6533 6533 /THEN READ IN THE CONVERTED NUMBER. 4283 010374 5762 JMP I DOAD /AND RETURN. 4284 010375 0000 DSCREW, 0 4285 PAGE 4286 010400 4057 USETR, JMS UGETWD /BOP PAST CHAR. 4287 010401 4431 JMS I UMEVAL /THIS ROUTINE SETS UP CLOCK TO A GIVEN TIME. 4288 010402 4432 JMS I UPFIX /FIX UP AC. 4289 010403 0033 AND U7 /JUST GET SIGNIFICANT BITS (0-7). 4290 010404 7106 CLL RTL /NOW MOVE TO TIME PORTION (3-5) 4291 010405 7006 RTL 4292 010406 7006 RTL 4293 010407 1034 TAD U5010 /SET OTHER CORRECT BITS NOW. 4294 010410 5216 JMP USETM 4295 010411 4057 USETC, JMS UGETWD /BOP PAST BAD POINTER. 4296 010412 4431 JMS I UMEVAL /THIS ROUTINE LOADS CLOCK WITH USERS COMMAND REGISTER. 4297 010413 4432 JMS I UPFIX 4298 010414 0035 AND U7767 /MAKE SURE TO TURN INTERUPTS ON. 4299 010415 1036 TAD U10 4300 010416 3053 USETM, DCA UTEMP /SAVE ENABLE REGISTER FOR A SECOND. 4301 010417 7240 CLA CMA /CLEAR CLOCK NOW. 4302 010420 6130 6130 4303 010421 7200 CLA /SO WE CAN LOAD IN CORRECT STUFF. 4304 010422 4431 JMS I UMEVAL /EVALUATE HIS TIME SETTING. 4305 010423 4432 JMS I UPFIX 4306 010424 7041 CIA 4307 010425 6002 IOF /MAKE SURE INTERUPTS ARE OFF. 4308 010426 6133 6133 4309 010427 7200 CLA 4310 010430 3004 DCA TIM1 /CLEAR OUT THE TIM NOW. 4311 010431 3005 DCA TIM2 4312 010432 1053 TAD UTEMP /RECALL DESIRED ENABLE REGISTER. 4313 010433 6132 6132 /SEND IT OUT. 4314 010434 6001 ION /TURN ON INTERUPTS NOW. 4315 010435 7200 CLA 4316 010436 5456 JMP I UDEVCON /AND EXIT NOW. 4317 010437 7240 UWAIT, CLA CMA /WAITS FOR AN INTERUPT. SET TO LOOK LIKE CLOCK DID IT. 4318 010440 1005 UWAITC, TAD TIM2 /GET LOW ORDER WORD. 4319 010441 3053 DCA UTEMP /SAVE FOR AWHILE. 4320 010442 4455 JMS I UJMS 4321 010443 6713 BIDLE /PUT TO SLEEP. 4322 010444 1053 TAD UTEMP /WAS IT CLOCK (OR OTHER IF CLOCK FUDGED?) 4323 010445 7041 CIA 4324 010446 1005 TAD TIM2 /COMPARE AGAINST PRESENT CLOCK. 4325 010447 7650 SNA CLA 4326 010450 5242 JMP UWAITC+2 /NOT CORRECT. WAIT SOME MORE. 4327 010451 4454 RANDAE, JMS I UJMP 4328 010452 7175 DEVCOM 4329 010453 1006 UACCPT, TAD ABDGET /IS BUFFER ASSIGNED? 4330 010454 7740 SZA SMA CLA 4331 010455 7201 CLA IAC /YEP. WE CAN ACCEPT NOW. 4332 010456 3007 UREJT, DCA ADACPT /OR REJECT. 4333 010457 5251 JMP RANDAE /AND THEN EXIT. 4334 /REAL TIME DECODING FUNCTION. 4335 010460 1007 UREAL, TAD ADACPT /ARE WE ACCEPTING NOW? 4336 010461 7650 SNA CLA 4337 010462 5265 JMP .+3 4338 010463 4454 JMS I UJMP 4339 010464 0467 SKIPIT 4340 010465 4455 JMS I UJMS 4341 010466 7462 GETARY /PICK UP BUFFER ITEMS. 4342 010467 4437 JMS I UAC1 /GET WE FIRST WORD OF ARRAY. 4343 010470 3023 DCA APUT1 /SAVE AWAY NOW. 4344 010471 1023 TAD APUT1 /ALSO SET UP OUTPUT POINTER. 4345 010472 3024 DCA APUT2 4346 010473 4440 JMS I UAC2 /GET LAST WORD OF ARRAY. 4347 010474 7041 CIA 4348 010475 3025 DCA ADA1 /SAVE IN UPPER LIMIT TESTER. 4349 010476 4440 JMS I UAC2 /GET AGAIN. 4350 010477 7001 IAC /ADD ONE. 4351 010500 3027 DCA ADA3 /AND SAVE AWAY IN BOPPER WORD. 4352 010501 1027 TAD ADA3 /FINALLY GET THE RESET WORD. 4353 010502 7041 CIA 4354 010503 1023 TAD APUT1 4355 010504 3026 DCA ADA2 /AND SAVE AWAY FOR WRAP AROUND CONDITION. 4356 010505 4057 JMS UGETWD /BYPASS REAL TIME STATEMENT. 4357 010506 4431 JMS I UMEVAL /EVALUATE AN EXPRESSION 4358 010507 4432 JMS I UPFIX /FIX THE AC NOW. 4359 010510 0047 AND U17 /JUST GET CHANNEL NUMBER. 4360 010511 3012 DCA ADCX /SAVE AWAY. 4361 010512 4431 JMS I UMEVAL /EVALUATE ANOTHER ITEM. 4362 010513 4432 JMS I UPFIX /FIX IT UP. 4363 010514 7440 SZA /IF ZERO, DO NOT SUBTRACT ONE. 4364 010515 1050 TAD U7777 /SUBTRACT ONE TO BRING INTO 0-17 RANGE. 4365 010516 0047 AND U17 /MAKE INTO 0-17. 4366 010517 7040 CMA /NOW NEGATE AND SUBTRACT ONE. 4367 010520 3010 DCA ADCUNT /AND SAVE AWAY CORRECT ISZ COUNTER. 4368 010521 4431 JMS I UMEVAL /NOW GET NUMBER OF SAMPLES (CLOCK TICKS) 4369 010522 4432 JMS I UPFIX 4370 010523 7161 CLL CML CIA 4371 010524 3014 DCA CT3 /SET UP LOW ORDER WORD OF COUNTER. 4372 010525 7004 RAL /AND PRESERVE CARRY. 4373 010526 4440 JMS I UAC2 4374 010527 7161 CLL CML CIA 4375 010530 3015 DCA CT2 4376 010531 7004 RAL 4377 010532 4437 JMS I UAC1 4378 010533 7161 CLL CML CIA 4379 010534 3016 DCA CT1 4380 010535 3022 DCA ACOUNT /CLEAR PRESENT BUFFER COUNTER. 4381 010536 7201 CLA IAC 4382 010537 3006 DCA ABDGET /SET UP BUFFER. 4383 010540 5456 JMP I UDEVCON 4384 010541 0000 UTIM, 0 /RETURNS CLOCK TICK. 4385 010542 1004 TAD TIM1 4386 010543 3346 DCA .+3 4387 010544 1005 TAD TIM2 4388 010545 4430 JMS I UUSETF 4389 010546 0000 0 4390 010547 5741 JMP I UTIM 4391 010550 0000 USETF, 0 4392 010551 3053 DCA UTEMP /SAVE LOW ORDER WORD OF FAC. 4393 010552 4455 JMS I UJMS 4394 010553 3762 BEGFIX /PREPARE TO INTERGIZE IT. 4395 010554 1750 TAD I USETF /GET MIDDLE WORD. 4396 010555 6201 CDF 0 4397 010556 3443 DCA I PPAC2 /PLACE IN FAC. 4398 010557 1053 TAD UTEMP /GET LOW WORD. 4399 010560 3444 DCA I PPAC3 /PLACE IN FAC. 4400 010561 6211 CDF 10 4401 010562 4455 JMS I UJMS 4402 010563 4600 ANORM 4403 010564 2350 ISZ USETF /BYPASS VALUE 4404 010565 5750 JMP I USETF /RETURN NOW. 4405 PAGE 4406 010600 0000 UADCB, 0 /THIS RETURNS A VALUE FROM THE A-D. 4407 010601 7710 SPA CLA /BUFFERED OR DIRECT? 4408 010602 5222 JMP UADCN /DIRECT. 4409 010603 1006 TAD ABDGET /CHECK TO SEE WHETHER BUFFER ASSGINED. 4410 010604 7450 SNA 4411 010605 5220 JMP UABAD /NO BUFFER ASSIGNED. 4412 010606 7710 SPA CLA /IS BUFFER ACTIVE? 4413 010607 5215 JMP UADCMY /NO. GET COUNT. 4414 010610 1007 TAD ADACPT /ACTIVE. ARE WE ACCEPTING DATA? 4415 010611 7650 SNA CLA 4416 010612 5215 JMP UADCMY /NO. CHECK COUNT IN BUFFER. 4417 010613 4653 UADCIN, JMS I UPAGET /GET VALUE FROM A-D BUFFER. 4418 010614 5231 JMP UINAC /AND FIX IT UP. 4419 010615 1022 UADCMY, TAD ACOUNT /GET BUFFER COUNTER NOW. 4420 010616 7640 SZA CLA /=0? 4421 010617 5213 JMP UADCIN /NOPE. WE CAN RETURN SOME DATA. 4422 010620 4454 UABAD, JMS I UJMP 4423 010621 7460 UUNOAD /NO A-D DATA IN BUFFER. HE'S F--KED. 4424 010622 4432 UADCN, JMS I UPFIX /NON-REAL TIME. 4425 010623 0047 AND U17 /JUST GET CHANNEL NUMBER. 4426 010624 6002 IOF /WE CANNOT BE INTERUPTTED HERE. 4427 010625 6531 6531 4428 010626 6536 6536 4429 010627 4451 JMS I UDOAD /PREFORM THE CONVERSION NOW. 4430 010630 6001 ION /RESTORE INTERUPTS. 4431 010631 3063 UINAC, DCA AUTEMP /SAVE FOR A SECOND. 4432 010632 1063 TAD AUTEMP /PLACE ABSOLUTE VALUE IN FAC. 4433 010633 7510 SPA 4434 010634 7041 CIA 4435 010635 4430 JMS I UUSETF 4436 010636 0000 0 4437 010637 1063 TAD AUTEMP /NOW SET SIGN OF FAC. 4438 010640 6201 CDF 0 /SET TO PICK UP FIELD 0. NO COOLNESS LEFT, DESPITE COMMENTS. 4439 010641 7710 SPA CLA /IF POSITVE LEAVE ALONE. 4440 010642 7330 CLA CLL CML RAR /SET LEFT MOST BIT ON TO INDICATE NEGATIVE. 4441 010643 3446 DCA I PPACS 4442 010644 1445 TAD I PPACE /GET EXPONENT NOW. 4443 010645 1064 TAD ADCCOR /BRING INTO CORRECT RANGE NOW. 4444 010646 7500 SMA /IF TOO FAR, 4445 010647 3445 DCA I PPACE /DON'T CORRECT. 4446 010650 7200 CLA 4447 010651 6211 CDF 10 /RESET CDF. 4448 010652 5600 JMP I UADCB /RETURN TO FIELD ONE (COOL ,UGH!) 4449 010653 0301 UPAGET, AGET 4450 010654 0000 UUAC1, 0 4451 010655 6201 CDF 0 4452 010656 1442 TAD I PPAC1 4453 010657 6211 CDF 10 4454 010660 5654 JMP I UUAC1 4455 010661 0000 UUAC2, 0 4456 010662 6201 CDF 0 4457 010663 1443 TAD I PPAC2 4458 010664 6211 CDF 10 4459 010665 5661 JMP I UUAC2 4460 010666 0000 UUAC3, 0 4461 010667 6201 CDF 0 4462 010670 1444 TAD I PPAC3 4463 010671 6211 CDF 10 4464 010672 5666 JMP I UUAC3 4465 010673 0000 UUMEVAL,0 4466 010674 4455 JMS I UJMS 4467 010675 7415 MEVAL 4468 010676 5673 JMP I UUMEVAL 4469 010677 0000 UUPFIX, 0 4470 010700 4455 JMS I UJMS 4471 010701 4744 FIX 4472 010702 7200 CLA 4473 010703 4441 JMS I UAC3 4474 010704 5677 JMP I UUPFIX 4475 010705 4454 UUDEVC, JMS I UJMP 4476 010706 7176 DEVCON 4477 010707 0000 UUJMS, 0 4478 010710 6202 CIF 0 4479 010711 1707 TAD I UUJMS 4480 010712 3314 DCA .+2 4481 010713 4721 JMS I UUUJMS 4482 010714 0000 0 4483 010715 7410 SKP /IN CASE OF SKIPPING RETURN 4484 010716 2307 ISZ UUJMS 4485 010717 2307 ISZ UUJMS 4486 010720 5707 JMP I UUJMS 4487 010721 7446 UUUJMS, LLLJMS 4488 010722 0000 UUJMP, 0 4489 010723 6202 CIF 0 4490 010724 1722 TAD I UUJMP 4491 010725 3327 DCA .+2 4492 010726 4730 JMS I UUUJMP 4493 010727 0000 0 4494 010730 7457 UUUJMP, LLLJMP 4495 010731 1335 UPCOMDO,TAD UUFUDGE 4496 010732 1336 TAD UPJMP 4497 010733 3334 DCA .+1 4498 010734 7402 HLT 4499 010735 1740 UUFUDGE,-6040 4500 010736 5737 UPJMP, JMP I .+1 4501 010737 0460 UREAL 4502 010740 0400 USETR 4503 010741 0411 USETC 4504 010742 0440 UWAITC 4505 010743 0437 UWAIT 4506 010744 0000 0000 /NOT USED NOW. 4507 010745 0453 UACCPT 4508 010746 0456 UREJT 4509 010747 0000 UPFUN, 0 4510 010750 1356 TAD UFFUD 4511 010751 1357 TAD UFJMP 4512 010752 3353 DCA .+1 4513 010753 7402 HLT 4514 010754 6202 CIF 0 4515 010755 5747 JMP I UPFUN 4516 010756 7757 UFFUD, -21 4517 010757 4760 UFJMP, JMS I .+1 4518 010760 0770 ZZADC 4519 010761 0000 0000 4520 010762 0541 UTIM 4521 010763 0000 0000 4522 010764 0000 0000 4523 010765 0340 UCLS 4524 010766 0345 UCLC 4525 010767 0775 ZZADB 4526 010770 0000 ZZADC, 0 4527 010771 7240 CLA CMA 4528 010772 4774 JMS I .+2 4529 010773 5770 JMP I ZZADC 4530 010774 0600 UADCB 4531 010775 0000 ZZADB, 0 4532 010776 4774 JMS I ZZADB-1 4533 010777 5775 JMP I ZZADB 4534 PAGE 4535 IFZERO MACHINE< 4536 LIMIT=TEN+3 4537 > 4538 4539 *7022 4540 017022 0000 PERMSYM,0 4541 017023 4200 XXPLUS, 4200;TEXT '+' 017024 5300 4542 017025 4201 XXMINUS,4201;TEXT '-' 017026 5500 4543 017027 4302 XXSTAR, 4302;TEXT '*' 017030 5200 4544 017031 4303 XXSLASH,4303;TEXT '/' 017032 5700 4545 017033 4404 XXUPARR,4404;TEXT '^' 017034 3600 4546 017035 4110 XXLE, 4110;TEXT '<=' 017036 7475 017037 0000 4547 017040 4111 XXGE, 4111;TEXT '>=' 017041 7675 017042 0000 4548 017043 4112 XXNE, 4112;TEXT '<>' 017044 7476 017045 0000 4549 017046 4111 XXEG, 4111;TEXT '=>' 017047 7576 017050 0000 4550 017051 4110 XXEL, 4110;TEXT '=<' 017052 7574 017053 0000 4551 017054 4105 XXEQ, 4105;TEXT '=' 017055 7500 4552 017056 4106 XXLT, 4106;TEXT '<' 017057 7400 4553 017060 4107 XXGT, 4107;TEXT '>' 017061 7600 4554 017062 4015 XXCOMMA,4015;TEXT ',' 017063 5400 4555 017064 4016 XXSEMI, 4016;TEXT ';' 017065 7300 4556 017066 4017 XXCLOSE,4017;TEXT ')' 017067 5100 4557 017070 4017 XXRBRAK,4017;TEXT ']' 017071 3500 4558 017072 4021 XXTO, 4021;TEXT ' TO ' 017073 4024 017074 1740 017075 0000 4559 017076 4022 XXSTEP, 4022;TEXT ' STEP ' 017077 4023 017100 2405 017101 2040 017102 0000 4560 017103 4023 XXOPEN, 4023;TEXT '(' 017104 5000 4561 017105 4023 XXLBRAK,4023;TEXT '[' 017106 3300 4562 017107 4024 XXFN, 4024;TEXT 'FN' 017110 0616 017111 0000 4563 017112 4025 XXCOS, 4025;TEXT 'COS' 017113 0317 017114 2300 4564 017115 4026 XXTAN, 4026;TEXT 'TAN' 017116 2401 017117 1600 4565 017120 4027 XXATN, 4027;TEXT 'ATN' 017121 0124 017122 1600 4566 017123 4030 XXLOG, 4030;TEXT 'LOG' 017124 1417 017125 0700 4567 017126 4031 XXEXP, 4031;TEXT 'EXP' 017127 0530 017130 2000 4568 017131 4032 XXSQR, 4032;TEXT 'SQR' 017132 2321 017133 2200 4569 017134 4033 XXABS, 4033;TEXT 'ABS' 017135 0102 017136 2300 4570 017137 4034 XXSGN, 4034;TEXT 'SGN' 017140 2307 017141 1600 4571 017142 4035 XXINT, 4035;TEXT 'INT' 017143 1116 017144 2400 4572 017145 4036 XXRND, 4036;TEXT 'RND' 017146 2216 017147 0400 4573 017150 4037 XXSIN, 4037;TEXT 'SIN' 017151 2311 017152 1600 4574 017153 4040 XXPUT, 4040;TEXT 'PUT' 017154 2025 017155 2400 4575 017156 4041 XXLIST, 4041;TEXT 'LIST' 017157 1411 017160 2324 017161 0000 4576 017162 4041 XXLIS, 4041;TEXT 'LIS' 017163 1411 017164 2300 4577 017165 4042 XXRUN, 4042;TEXT 'RUN' 017166 2225 017167 1600 4578 017170 4043 XXSCR, 4043;TEXT 'SCR' 017171 2303 017172 2200 4579 017173 4044 XXGET, 4044;TEXT 'GET' 017174 0705 017175 2400 4580 017176 4045 XXADC, 4045;TEXT 'ADC' 017177 0104 017200 0300 4581 017201 4046 XXTTY, 4046;TEXT 'TST' 017202 2423 017203 2400 4582 017204 4047 XXTIME, 4047;TEXT 'TIM' 017205 2411 017206 1500 4583 017207 4050 XXTAB, 4050;TEXT 'TAB' 017210 2401 017211 0200 4584 017212 4051 XXUUF, 4051;TEXT 'UUF' 017213 2525 017214 0600 4585 017215 4052 XXCLS, 4052;TEXT 'CLS' 017216 0314 017217 2300 4586 017220 4053 XXCLC, 4053;TEXT 'CLC' 017221 0314 017222 0300 4587 017223 4054 XXADB, 4054;TEXT 'ADB' 017224 0104 017225 0200 4588 017226 6000 XXCRLF, 6000;TEXT '_' 017227 3700 4589 017230 6000 XXBSLSH,6000;TEXT '\' 017231 3400 4590 017232 6001 XXEND, 6001;TEXT 'END' 017233 0516 017234 0400 4591 017235 6002 XXFOR, 6002;TEXT 'FOR ' 017236 0617 017237 2240 017240 0000 4592 017241 6003 XXGOSUB,6003;TEXT 'GOSUB ' 017242 0717 017243 2325 017244 0240 017245 0000 4593 017246 6004 XXGOTO, 6004;TEXT 'GO TO ' 017247 0717 017250 4024 017251 1740 017252 0000 4594 017253 6004 XXTHEN, 6004;TEXT ' THEN ' 017254 4024 017255 1005 017256 1640 017257 0000 4595 017260 6005 XXIF, 6005;TEXT 'IF ' 017261 1106 017262 4000 4596 017263 6006 XXINPUT,6006;TEXT 'INPUT ' 017264 1116 017265 2025 017266 2440 017267 0000 4597 017270 6007 XXLET, 6007;TEXT 'LET ' 017271 1405 017272 2440 017273 0000 4598 017274 6010 XXNEXT, 6010;TEXT 'NEXT ' 017275 1605 017276 3024 017277 4000 4599 017300 6011 XXPRINT,6011;TEXT 'PRINT ' 017301 2022 017302 1116 017303 2440 017304 0000 4600 017305 6012 XXRETRN,6012;TEXT 'RETURN' 017306 2205 017307 2425 017310 2216 017311 0000 4601 017312 6013 XXSTOP, 6013;TEXT 'STOP' 017313 2324 017314 1720 017315 0000 4602 017316 6014 XXDIM, 6014;TEXT 'DIM ' 017317 0411 017320 1540 017321 0000 4603 017322 6015 XXRSTOR,6015;TEXT 'RESTORE' 017323 2205 017324 2324 017325 1722 017326 0500 4604 017327 6016 XXREM, 6016;TEXT 'REM ' 017330 2205 017331 1540 017332 0000 4605 017333 6017 XXDEF, 6017;TEXT 'DEF ' 017334 0405 017335 0640 017336 0000 4606 017337 6020 XXREAD, 6020;TEXT 'READ ' 017340 2205 017341 0104 017342 4000 4607 017343 6021 XXDATA, 6021;TEXT 'DATA ' 017344 0401 017345 2401 017346 4000 4608 017347 6024 XXTTYI, 6024;TEXT 'TTY IN' 017350 2424 017351 3140 017352 1116 017353 0000 4609 017354 6025 XXTTYO, 6025;TEXT 'TTY OUT' 017355 2424 017356 3140 017357 1725 017360 2400 4610 017361 6026 XXLPT, 6026;TEXT 'LPT' 017362 1420 017363 2400 4611 017364 6027 XXPTP, 6027;TEXT 'PTP' 017365 2024 017366 2000 4612 017367 6030 XXPTR, 6030;TEXT 'PTR' 017370 2024 017371 2200 4613 /6031 HAS BEEN REMOVED. 4614 017372 6032 XXRUB, 6032;TEXT 'RUBOUTS' 017373 2225 017374 0217 017375 2524 017376 2300 4615 017377 6033 XXNRUB, 6033;TEXT 'NO RUBOUTS' 017400 1617 017401 4022 017402 2502 017403 1725 017404 2423 017405 0000 4616 017406 6034 XXCLEAR,6034;TEXT 'CLEAR' 017407 0314 017410 0501 017411 2200 4617 017412 6035 XXDELAY,6035;TEXT 'DELAY' 017413 0405 017414 1401 017415 3100 4618 017416 6036 XXUSE, 6036;TEXT 'USE ' 017417 2523 017420 0540 017421 0000 4619 017422 6037 XXPLOT, 6037;TEXT 'PLOT ' 017423 2014 017424 1724 017425 4000 4620 017426 6040 XXREAL, 6040;TEXT 'REAL TIME ' 017427 2205 017430 0114 017431 4024 017432 1115 017433 0540 017434 0000 4621 017435 6041 XXSETR, 6041;TEXT 'SET RATE ' 017436 2305 017437 2440 017440 2201 017441 2405 017442 4000 4622 017443 6042 XXSETC, 6042;TEXT 'SET CLOCK ' 017444 2305 017445 2440 017446 0314 017447 1703 017450 1340 017451 0000 4623 017452 6043 XXWAITC,6043;TEXT 'WAITC' 017453 2701 017454 1124 017455 0300 4624 017456 6044 YYWAIT, 6044;TEXT 'WAIT' 017457 2701 017460 1124 017461 0000 4625 017462 6045 XXUCOM, 6045;TEXT 'UCOM ' 017463 2503 017464 1715 017465 4000 4626 017466 6046 XXACPT, 6046;TEXT 'ACCEPT' 017467 0103 017470 0305 017471 2024 017472 0000 4627 017473 6047 XXREJT, 6047;TEXT 'REJECT' 017474 2205 017475 1205 017476 0324 017477 0000 4628 017500 0000 0 4629 017501 3000 XXTEXT, 3000 4630 017502 6023 XXEOF, 6023 4631 017503 4113 XXUNARY,4113 4632 017504 4014 XXFINI, 4014 4633 017505 6022 XXEXIT, 6022 4634 017506 2000 XXLIT0, 2000;2001;2002;2003 017507 2001 017510 2002 017511 2003 4635 NOPUNCH 4636 017512 0000 LINBUF, ZBLOCK 51 017513 0000 017514 0000 017515 0000 017516 0000 017517 0000 017520 0000 017521 0000 017522 0000 017523 0000 017524 0000 017525 0000 017526 0000 017527 0000 017530 0000 017531 0000 017532 0000 017533 0000 017534 0000 017535 0000 017536 0000 017537 0000 017540 0000 017541 0000 017542 0000 017543 0000 017544 0000 017545 0000 017546 0000 017547 0000 017550 0000 017551 0000 017552 0000 017553 0000 017554 0000 017555 0000 017556 0000 017557 0000 017560 0000 017561 0000 017562 0000 4637 017563 0000 LBEGIN, ZBLOCK 60 017564 0000 017565 0000 017566 0000 017567 0000 017570 0000 017571 0000 017572 0000 017573 0000 017574 0000 017575 0000 017576 0000 017577 0000 017600 0000 017601 0000 017602 0000 017603 0000 017604 0000 017605 0000 017606 0000 017607 0000 017610 0000 017611 0000 017612 0000 017613 0000 017614 0000 017615 0000 017616 0000 017617 0000 017620 0000 017621 0000 017622 0000 017623 0000 017624 0000 017625 0000 017626 0000 017627 0000 017630 0000 017631 0000 017632 0000 017633 0000 017634 0000 017635 0000 017636 0000 017637 0000 017640 0000 017641 0000 017642 0000 4638 017643 0000 ENDLIN, 0 4639 017644 0000 PDLIST, ZBLOCK 40 017645 0000 017646 0000 017647 0000 017650 0000 017651 0000 017652 0000 017653 0000 017654 0000 017655 0000 017656 0000 017657 0000 017660 0000 017661 0000 017662 0000 017663 0000 017664 0000 017665 0000 017666 0000 017667 0000 017670 0000 017671 0000 017672 0000 017673 0000 017674 0000 017675 0000 017676 0000 017677 0000 017700 0000 017701 0000 017702 0000 017703 0000 4640 017704 0000 ENDPDL, 0 4641 017705 0000 FORLIST,ZBLOCK 20 017706 0000 017707 0000 017710 0000 017711 0000 017712 0000 017713 0000 017714 0000 017715 0000 017716 0000 017717 0000 017720 0000 017721 0000 017722 0000 017723 0000 017724 0000 4642 017725 0000 GOLIST, ZBLOCK 30 017726 0000 017727 0000 017730 0000 017731 0000 017732 0000 017733 0000 017734 0000 017735 0000 017736 0000 017737 0000 017740 0000 017741 0000 017742 0000 017743 0000 017744 0000 017745 0000 017746 0000 017747 0000 017750 0000 017751 0000 017752 0000 017753 0000 017754 0000 4643 017755 0000 GSBEND, 0 4644 ENPUNCH 4645 $