1 /TIME INTERVAL HISTOGRAM MS- CREATES HISTOGRAMS 2 /FROM SCHMITT TRIGGER INPUT. 3 / 4 /DEC-8E-ATIHA-A-LA 5 / 6 /COPYRIGHT 1972 7 /DIGITAL EQUIPMENT CORPORATION 8 /MAYNARD, MASSACHUSETTS 01754 9 / 10 11 /FILE TIH.2 12 /TIME INTERVAL HISTOGRM PROGRAM FOR THE LAB8/E 13 /FOR PS8,READ AND WRITE DATA VIA MASS STORAGE. 14 15 /IOT REFERENCES FOR THE LAB8/E 16 / 17 / 18 /AD8-EA 10 BIT A/D CONVERTER 19 / 20 ADCL=6530 /CLEAR ALL 21 ADLM=6531 /LOAD MPLXR 22 ADST=6532 /START CONVERSION 23 ADRB=6533 /READ AD BUFFER 24 ADSK=6534 /SKIP ON AD DONE 25 ADSE=6535 /SKIP ON TIMING ERROR 26 ADLE=6536 /LOAD ENABLE REGISTER 27 ADRS=6537 /READ STATUS REGISTER 28 /VC8-E POINT PLOT DISPLAY 29 DILC=6050 /CLEAR ALL 30 DICD=6051 /CLEAR DONE FLAG 31 DISD=6052 /SKIP ON DONE FLAG 32 DILX=6053 /CLEAR DONE FLAG LOAD X 33 DILY=6054 /CLEAR DONE FLAG LOAD Y 34 DIXY=6055 /CLEAR DONE, INTENSIFY, SET DONE 35 DILE=6056 /LOAD ENABLE CLEAR AC 36 DIRE=6057 /ENABLE TO AC 37 / 38 /DK8-EP REAL TIME CLOCK 39 / 40 CLZE=6130 /ZERO TO ENABLE 41 CLSK=6131 /SKP ON CLOCK FG 42 CLOE=6132 /ONES TO ENABLE 43 CLAB=6133 /AC TO CLK BUF AND COUNTER REGISTER 44 CLEN=6134 /ENABLE TO AC 45 CLSA=6135 /STATUS TO AC AND AC ONE'S CLEAR STATUS REG. 46 CLBA=6136 /CLK BUF TO AC 47 CLCA=6137 /CLK CNTR TO AC AND TO AC 48 / 49 /DB8-EA 12 CHANNEL DIGITAL I/O 50 / 51 DBDI=6500 /DISABLE INTERRUPT 52 DBEI=6501 /ENABLE INTERRUPT 53 DBSK=6502 /SKIP ON INPUT 54 DBCI=6503 /CLEAR INPUT BITS WITH SET AC BIT 55 DBRI=6504 /READ INPUT 56 DBCO=6505 /CLEAR OUTPUT BITS WITH AC BITS 57 DBSO=6506 /SET OUTPUT BITS WITH AC BITS 58 DBRO=6507 /READ OUTPUT REGISTER 59 BSW=7002 60 /PAGE ZERO OF THE TIME INTERVAL HISTOGRAM PROGRAM 61 / 62 / 63 *1 64 000001 5402 JMP I .+1 /GET OFF PAGE ZERO 65 000002 2010 INTERP /TO THIS LOCATION 66 / 67 / 68 *10 69 000010 0000 POINTA, 0 70 000011 0000 GETPNT, 0 71 / 72 / 73 *20 74 000020 0000 POINT, 0 /REGULAR POINTER 75 000021 0000 MBINK, 0 /-NUMBER OF COUNTS PER BIN; A CONSTANT 76 000022 0000 MBINW, 0 /THIS IS THE COUNTER 77 000023 0000 MEPOCK, 0 /-NUMBER OF EPOCHS; A CONSTANT 78 000024 0000 MEPOC, 0 /THE COUNTER 79 000025 0000 MBINS, 0 /--NUMBER OF BINS PER EPOCH; CONSTANT 80 000026 0000 MBIN, 0 /COUNTER 81 000027 0000 ORD, 0 /POINTER OF ZEROTH ORDER HISTOGRAM 82 000030 0000 MINTK, 0 /MINIMUM TIME; A CONSTANT 83 000031 0000 MINT, 0 /THE COUNTER 84 000032 7600 MONTR, 7600 /LOCATION OF MONITOR 85 000033 3777 PERMLI, START0-1 86 000034 0553 TTYBUF, BUFFER /LOCATION OF TTY INPUT BUFFER 87 000035 0552 TTYBUA, BUFFER-1 88 000036 0000 LENGTH, 0 89 000037 0000 SFACTR, 0 /SCALE FACTOR 90 000040 0000 SUM, 0 /SUM FACTOR 91 000041 0000 MSUM, 0 /- THE SUM 92 000042 0000 PLSWT, 0 /PLOTTING SWITCH 93 000043 0000 AXSWT, 0 /AXIS OR NO AXIS 94 000044 7775 KDIM, -3 /DIMNESS SWITCH 95 000045 0000 DIM, 0 96 000046 0000 CURSWT, 0 /CURSORS OR NO 97 000047 0001 PNTSWT, 1 /POINT-PLOT DISPLAY OR BARS? 98 000050 0000 ORDER, 0 /WHICH HISTOGRAM TO DISPLAY 99 000051 0000 MLINES, 0 100 000052 0000 BINSTA, 0 101 000053 0000 TEMSTA, 0 102 000054 0000 TEMEND, 0 103 000055 0000 BUSY, 0 /TTY BUSY FLAG 104 000056 0000 FIRST, 0 105 000057 0000 KMUNIT, 0 106 000060 0000 XINC, 0 107 / 108 / 109 /CONSTANTS 110 / 111 000061 0011 K0011, 11 112 000062 0040 K0040, 40 113 000063 0077 K0077, 77 114 000064 0777 K0777, 777 115 000065 7027 K7027, 7027 116 000066 7563 M215, -215 117 000067 7507 M271, -271 118 000070 7751 KM0027, -27 119 000071 5612 KMODE, 5612 /ENABLE SCHMITT #2 TO INTERRUPT, ALSO CLOCK TICK AT 1U SEC 120 / 121 / 122 / 123 /LINKAGES TO FLOATING POINT PACKAGE ROUTINES 124 SHFT=JMS I SHX 125 000072 3300 SHX, SHFTS 126 BRAN=JMS I BRX 127 000073 3337 BRX, BRANS 128 DADD=JMS I DAX 129 000074 3360 DAX, DADDS 130 LOAD=JMS I LOX 131 000075 3400 LOX, LOADS 132 SAVE=JMS I SAX 133 000076 3414 SAX, SAVES 134 DCOM=JMS I DCX 135 000077 3430 DCX, DCOMS 136 NORM=JMS I NOX 137 000100 3443 NOX, NORMS 138 FMUL=JMS I FMX 139 000101 3476 FMX, FMULS 140 FDIV=JMS I FDX 141 000102 3717 FDX, FDIVS 142 FIX=JMS I FIXX 143 000103 3545 FIXX, FIXS 144 DFIX=JMS I DFIXX 145 000104 3563 DFIXX, DFIXS 146 FADD=JMS I FAX 147 000105 3600 FAX, FADDS 148 FLOAT=JMS I FLX 149 000106 3707 FLX, FLOATS 150 / 151 / 152 *115 153 /LINKAGES TO SUBROUTINES 154 000115 3063 CRLFX, CRLF 155 000116 0634 TYPMX, TYPM 156 000117 3044 TYPAX, TYPA 157 000120 1703 OCTIZX, OCTIZ 158 000121 0202 CTRLAX, CTRLA 159 000122 1240 NECHOX, NECHO 160 000123 0437 REASKX, REASK 161 000124 3117 DEFLAX, DEFLAT 162 000125 3111 DEFSIX, DEFSIN 163 000126 0400 TTINX, TTIN 164 000127 0531 INTDLX, INITDL 165 000130 1600 INTDSX, INITDS 166 000131 3077 SETPTX, SETPNT 167 000132 1457 KNOBSX, KNOBS 168 000133 1613 GETDLX, GETDL 169 000134 1736 FIXSTX, FIXSTA 170 000135 3073 SPACEX, SPACE 171 000136 3267 ADDISL, DISL-1 172 000137 0716 DELAYX, DELAY 173 000140 3163 FXMSUM, FSUM 174 / 175 / 176 /LINKAGES TO DISPLAY LISTS 177 000141 4000 STRT0X, START0 /START-1 OF 0TH HISTO 178 000142 4001 END0X, END0 /END-1 OF 0TH HISTO 179 000143 4002 STRT1X, START1 /START-1 OF 1ST HISTO 180 000144 4003 END1X, END1 /USE YOUR IMAGINATION 181 / 182 / 183 / 184 / 185 / 186 /ARITHMETIC REGISTERS 187 000145 0000 ARITH0, 0 188 000146 0000 ARITH1, 0 189 000147 0000 ARITH2, 0 190 000150 0000 ARITH3, 0 191 000151 0000 ARITH4, 0 192 000152 0000 ARITH5, 0 193 000153 0000 FTEM1A, 0 194 000154 0000 FTEM1B, 0 195 000155 0000 FSAM, 0 196 000156 0000 0 197 000157 0000 0 198 000160 0000 TEMP0, 0 199 000161 0000 TEMP01, 0 200 000162 0000 TEMP02, 0 201 000163 0000 TEMP03, 0 202 000164 0000 TEMP04, 0 203 000165 0000 TEMP05, 0 204 000166 0000 TEMP06, 0 205 000167 0000 TEMP07, 0 206 000170 0000 TEMP10, 0 207 000171 0000 TEMP11, 0 208 000172 0000 TEMP12, 0 209 000173 0000 TEMP13, 0 210 000174 0000 TEMP14, 0 211 000175 0567 COMMAX, COMMA 212 *200 213 /THIS IS THE MAIN FRAME OF THE PARAMETER SETUP PROGRAM 214 000200 5601 JMP I .+1 215 000201 7432 ONCE, TRIG 216 000202 3055 CTRLA, DCA BUSY 217 000203 7340 CLA CLL CMA 218 000204 6130 CLZE 219 000205 7200 CLA 220 000206 4515 JMS I CRLFX 221 000207 4516 ABINW, JMS I TYPMX /ASK FOR BIN WIDTH 222 000210 3020 BINW /HERE IS WHERE THE MESSAGE IS STORED 223 000211 4526 JMS I TTINX /ACCEPT REPLY 224 000212 4765 JMS I CBINWX /CHECK IT FOR VALIDITY 225 000213 4516 ABINS, JMS I TYPMX /ASK FOR NUMBER OF BINS 226 000214 3023 BINS 227 000215 4526 JMS I TTINX 228 000216 4317 JMS CBINS /CHECK REPLY 229 000217 4516 AMIN, JMS I TYPMX 230 000220 3026 MIN /WHAT IS MIN TIME 231 000221 4526 JMS I TTINX 232 000222 4770 JMS I CMINX /CHECK AND STORE 233 000223 4516 ATIMUN, JMS I TYPMX /GET BASIC TIME UNIT 234 000224 3233 TIME 235 000225 4526 JMS I TTINX 236 000226 4771 JMS I CTIMX /CHECK AND STORE 237 000227 4516 AUNITS, JMS I TYPMX /GET NUMBER OF TIME UNITS 238 000230 3241 UNITS 239 000231 4526 JMS I TTINX 240 000232 4336 JMS CUNITS 241 /PARAMETERS ENTERED NOW INITIALIZE BUFFERS, POINERS,ETC. 242 000233 1541 CLBUF, TAD I STRT0X 243 000234 3010 DCA POINTA /GET START OF BUFFERS 244 000235 1544 TAD I END1X /GET THE END OF THEM 245 000236 7041 CIA /NEGATE IT 246 000237 1010 TAD POINTA 247 000240 3160 DCA TEMP0 /THIS MINUS NUMBER OF LOCATIONS 248 000241 3410 CLEARL, DCA I POINTA 249 000242 2160 ISZ TEMP0 250 000243 5241 JMP CLEARL /CLEAR SOME MORE LOCATIONS 251 000244 3766 DCA I ER1X /CLEAR ERROR COUNTER 252 000245 4527 JMS I INTDLX /INITIALIZE DISPLAY LISTS 253 000246 4530 JMS I INTDSX /INITIALIZE DISPLAY SWITCHES 254 000247 1762 RETAN, TAD I EXTENX 255 000250 7500 SMA /FIX KBD BRANCH FOR DATA TAKING 256 000251 7041 CIA 257 000252 3762 DCA I EXTENX 258 000253 1021 TAD MBINK /GET NEGATIVE BIN WIDTH 259 000254 3022 DCA MBINW /FIX COUNTER 260 000255 1023 TAD MEPOCK /- OF EPOCHS 261 000256 3024 DCA MEPOC 262 000257 1025 TAD MBINS /- OF BINS IN EPOCH 263 000260 3026 DCA MBIN 264 000261 1541 TAD I STRT0X /START OF 0 ORDER HISTOGRAM 265 000262 7001 IAC 266 000263 3027 DCA ORD /SAVE IN POINTER FOR INCREMENT 267 000264 1030 TAD MINTK /- BINS FOR MIN TIME 268 000265 3031 DCA MINT 269 000266 1057 TAD KMUNIT 270 000267 3774 DCA I MUNITX 271 000270 1772 TAD I SPTX 272 000271 3773 DCA I SPT 273 000272 2056 ISZ FIRST 274 000273 7001 IAC /SET UP ORDER 275 000274 3050 DCA ORDER 276 000275 7040 CMA 277 000276 3045 DCA DIM /FIX BRIGHTNESS OF AXIS 278 000277 3434 DCA I TTYBUF /CLEAN AREA 279 000300 6031 WAIT, KSF /WAIT FOR KBD BEFORE GOING ON 280 000301 5300 JMP .-1 281 000302 6036 KRB /READ IT 282 000303 4473 BRAN /CHECK FOR SPECIAL CHARACTERS 283 000304 2774 STLIST /START BRANCH LIST 284 000305 5312 JMP GO /^S START LISTENING FOR PULSES 285 000306 5432 JMP I MONTR /^C GO TO MONITOR 286 000307 5521 JMP I CTRLAX /^A REDEFINE PARAMETERS 287 000310 5227 JMP AUNITS /LF; REASK QUESTION 288 000311 5300 JMP WAIT /ALL OTHERS WAIT AGAIN 289 000312 7240 GO, CLA CMA 290 000313 3056 DCA FIRST 291 000314 4775 JMS I MODEAX 292 000315 6001 ION /INTERRUPTS ON 293 000316 5763 JMP I DISUX /AND GO!!! 294 /CBINS: SUBROUTINE TO CHECK VALIDITY AND STORE ANSWER 295 /TO NUMBER OF BINS 296 000317 0000 CBINS, 0 297 000320 4764 JMS I FDIGX /CHECK AND OCTIZE 298 000321 7041 CIA /NEGATE ANSWER 299 000322 3025 DCA MBINS 300 000323 7300 CLA CLL /CLEAN AREA 301 000324 1367 TAD AVAIL /GET AMOUNT OF AVAILABLE CORE 302 000325 1025 TAD MBINS /SUBTRACT NUMBER OF BINS 303 000326 7420 SNL /OK? 304 000327 5332 JMP CORECH /NO. BAD BOY 305 000330 3170 DCA AVAILA /YES. HOLD AVAILABLE SPACE 306 AVAILA=TEMP10 307 000331 5717 JMP I CBINS /RETURN 308 000332 7300 CORECH, CLL CLA /CLEAN AC AND LINK 309 000333 4516 JMS I TYPMX /TELL THE USER HE EXCEEDED CORE 310 000334 3032 CORE 311 000335 5523 JMP I REASKX 312 /SUBROUTINE TO CHECK ANSWER TO NUMBER OF EPOCHS 313 /STORE THE ANSWER AND ADJUST POINTERS OF STARTING AND 314 /ENDING POINTS OF HISTOGRAMS 315 000336 0000 CUNITS, 0 316 000337 4764 JMS I FDIGX /CHECK AND OCTIZE 317 000340 7041 CIA 318 000341 3023 DCA MEPOCK /SAVE IT IN THE NEGATIVE 319 000342 7100 CLL /CLEAN LINK 320 000343 1170 TAD AVAILA 321 000344 1023 TAD MEPOCK /UPDATE AVAILABLE CORE 322 000345 7620 SNL CLA /ARE WE STILL OK? 323 000346 5332 JMP CORECH /NO. REASK 324 000347 1023 TAD MEPOCK 325 000350 7041 CIA /READY FOR POINTERS 326 000351 1541 TAD I STRT0X /START +LENGTH=END 327 000352 3542 DCA I END0X 328 000353 1542 TAD I END0X /MARK START OF PST HISTOGRAM 329 000354 3543 DCA I STRT1X /ITS RIGHT AFTER THE 0TH HISTOGRAM 330 000355 1025 TAD MBINS 331 000356 7041 CIA 332 000357 1543 TAD I STRT1X /START +LENGTH=END 333 000360 3544 DCA I END1X 334 000361 5736 JMP I CUNITS 335 000362 7570 EXTENX, EXTEND 336 000363 0656 DISUX, DISUP 337 000364 0464 FDIGX, FDIGC 338 000365 0600 CBINWX, CBINW 339 000366 2142 ER1X, ER1 340 000367 3542 AVAIL, 3542 341 000370 3211 CMINX, CMIN 342 000371 3222 CTIMX, CTIME 343 000372 2147 SPTX, SPOTER 344 000373 2146 SPT, SPOT 345 000374 2141 MUNITX, MUNIT 346 000375 2152 MODEAX, MODEA 347 / 348 / 349 / 350 *400 351 /TTIN: A SUBROUTINE TO ACCEPT KEYBOARD INPUT OF UP TO FIVE CHARACTERS 352 /INPUT IS CHECKED AGAINST A LIST FOR CONTROL CHARACTERS. ^R,^C,^A, 353 /LF,AND CR ARE LOOKED FOR. MORE THAN FIVE CHARACTERS CAUSE THE 354 /QUESTION TO BE REASKED 355 /RUB OUT: ASK THE QUESTION AGAIN (RETURN -3) 356 /^C: RETURN TO MONITOR 357 /^A: ASK ALL QUESTIONS AGAIN 358 /CR: TERMINATE ANSWER 359 /LF: ASK LAST QUESTION 360 000400 0000 TTIN, 0 361 000401 1035 TAD TTYBUA /LOCATION OF INPUT BUFFER 362 000402 3010 DCA POINTA /AUTOINDEX IT 363 000403 3163 DCA ENDA /ZERO END SWITCH 364 000404 3164 DCA CNTR /ZERO COUNTER 365 000405 4727 MORE, JMS I LISNX 366 000406 3160 DCA TEMP0 /SAVE CHARACTER 367 000407 1160 TAD TEMP0 /GET IT BACK FOR CHECKING 368 000410 4473 BRAN /CHECK IT AGAINST THE FOLLOWING LIST 369 000411 0562 SETBRA /SETUP BRANCH 370 000412 5220 JMP CR /CR 371 000413 5237 JMP REASK /RUB OUT 372 000414 5521 JMP I CTRLAX /^A 373 000415 5432 JMP I MONTR /^C 374 000416 5246 JMP LF /LF 375 000417 5221 JMP NOTH /NOTHING SPECIAL 376 000420 2163 CR, ISZ ENDA /BUMP END SWITCH 377 000421 1160 NOTH, TAD TEMP0 378 000422 4517 JMS I TYPAX /ECHO IT 379 000423 1160 TAD TEMP0 380 000424 3410 DCA I POINTA /STORE IT 381 000425 1163 TAD ENDA /ARE WE THOUGH ACCEPTING? 382 000426 7650 SNA CLA 383 000427 5232 JMP .+3 /NO, GO ON 384 000430 4515 JMS I CRLFX /YES, DO A LF 385 000431 5600 JMP I TTIN /AND RETURN 386 000432 2164 ISZ CNTR /NO. RECORD CHARACTER 387 000433 1164 TAD CNTR 388 000434 1262 TAD M006 /NO MORE THAN 5 CHARACTERS PLEASE 389 000435 7640 SZA CLA 390 000436 5205 JMP MORE /OK TO ACCEPT MORE 391 000437 4515 REASK, JMS I CRLFX /TOO MUCH ACTION ON THE KEYBOARD 392 000440 4516 JMS I TYPMX 393 000441 3017 QUES /TYPE QUESTION MARK 394 000442 1200 TAD TTIN 395 000443 1261 TAD M003 /ADJUST THE RETURN 396 000444 3200 DCA TTIN 397 000445 5600 JMP I TTIN 398 000446 4515 LF, JMS I CRLFX 399 000447 1200 TAD TTIN /DO A CR AND A LF AND GO BACK ONE QUESTION 400 000450 1262 TAD M006 401 000451 7041 CMA IAC 402 000452 1330 TAD BEGIN /DONT RETURN TOO FAR 403 000453 7700 SMA CLA 404 000454 5237 JMP REASK /THIS WAS THE FIRST QUESTION 405 000455 1200 TAD TTIN 406 000456 1263 TAD M007 /WE CAN SAFELY GO BACK ONE 407 000457 3200 DCA TTIN 408 000460 5600 JMP I TTIN /RETURN 409 000461 7775 M003, -3 410 000462 7772 M006, -6 411 000463 7771 M007, -7 412 CNTR=TEMP04 413 ENDA=TEMP03 414 /FDIGC; SUBROUTINE TO CHECK TTBUF 415 /FOR UP TO FIVE NUMBERS PLUS A CR 416 /OCTIZE THEM AND EXIT WITH VALUE IN 417 /THE AC. ALL OTHER RETURNS ARE TO 418 /REASK THE QUESTION. 419 / 420 000464 0000 FDIGC, 0 421 000465 4273 JMS CHECK 422 000466 1066 TAD M215 /CR? 423 000467 7640 SZA CLA 424 000470 5237 JMP REASK /NO INVALID 425 000471 4520 JMS I OCTIZX /OK OCTIZE IT 426 000472 5664 JMP I FDIGC /RETURN 427 /CHECK; SUBROUTINE TO CHECK FOR AT LEAST 428 /ONE NUMBER IN TTBUF.QUESTION REASKED IF 429 /FIRST IS NOT A NUMBER. 430 /EXITS WHEN A NON NUMERIC CHARACTER IS 431 /FOUND.ON EXIT: LOCATION UNIT HOLDS NUM- 432 /BER OF DIGITS FOUND AND NON-NUMERIC 433 /CHARACTER IS IN AC. 434 / 435 000473 0000 CHECK, 0 436 000474 3326 DCA UNIT /INITIALIZE 437 000475 1325 TAD RE 438 000476 3310 DCA FIX2 439 000477 1325 TAD RE 440 000500 3304 DCA FIX1 441 000501 4531 JMS I SETPTX /GET FIRST ONE 442 000502 1067 LOOP2, TAD M271 443 000503 7540 SMA SZA 444 000504 5237 FIX1, JMP REASK /NOT VALID 445 000505 1061 TAD K0011 446 000506 7700 SMA CLA 447 000507 5313 JMP VALID 448 000510 5237 FIX2, JMP REASK 449 000511 1420 TAD I POINT /GET VALUE IN AC 450 000512 5673 JMP I CHECK /EXIT 451 000513 2326 VALID, ISZ UNIT 452 000514 2020 ISZ POINT /ADVANCE POINTER 453 000515 1324 TAD CLEAR 454 000516 3310 DCA FIX2 /NON-NUMERIC OK 455 000517 1323 TAD JUMP 456 000520 3304 DCA FIX1 457 000521 1420 TAD I POINT /GET NEXT CHAR 458 000522 5302 JMP LOOP2 459 000523 5310 JUMP, JMP FIX2 460 000524 7300 CLEAR, CLA CLL 461 000525 5237 RE, JMP REASK 462 000526 0000 UNIT, 0 463 000527 3104 LISNX, LISN 464 000530 0207 BEGIN, ABINW 465 000531 0000 INITDL, 0 /S.R TO SET UP DISPLAY WORDS 466 000532 1136 TAD ADDISL /GET ADDRESS 467 000533 3010 DCA POINTA /AUTO INDEX IT 468 000534 1541 TAD I STRT0X /GET START OF BUFFER 469 000535 3410 DCA I POINTA 470 000536 1542 TAD I END0X /GET END ADDRESS 471 000537 3410 DCA I POINTA 472 000540 3410 DCA I POINTA /SCALE=0 473 000541 7001 IAC /SET SUM=1 474 000542 3410 DCA I POINTA 475 000543 1543 TAD I STRT1X /GET START OF 1ST ORDER HISTOGRAM 476 000544 3410 DCA I POINTA 477 000545 1544 TAD I END1X 478 000546 3410 DCA I POINTA 479 000547 3410 DCA I POINTA /SCALE = 0 480 000550 7001 IAC 481 000551 3410 DCA I POINTA /SUM=1 482 000552 5731 JMP I INITDL /RETURN 483 000553 0000 BUFFER, 0 484 000554 0000 0 485 000555 0000 0 486 000556 0000 0 487 000557 0000 0 488 000560 0000 0 489 000561 0000 0 490 000562 0215 SETBRA, 215 /CR 491 000563 0377 377 /RUB OUT 492 000564 0201 201 /^A 493 000565 0203 203 /^C 494 000566 7566 -212 /LF 495 000567 0000 COMMA, 0 496 000570 1373 TAD K0254 497 000571 4517 JMS I TYPAX 498 000572 5767 JMP I COMMA 499 000573 0254 K0254, 254 500 / 501 / 502 / 503 *600 504 /SUBROUTINE TO CHECK AND STORE ANSWER TO BIN WIDTH 505 000600 0000 CBINW, 0 506 000601 4762 JMS I CHEX /MOVE TO FIRST NON NUMERIC 507 000602 1233 TAD M256 /THIS MUST BE A PERIOD 508 000603 7640 SZA CLA /IS IT? 509 000604 5523 JMP I REASKX /NO. REASK QUESTION 510 000605 1020 TAD POINT /YES. 511 000606 3160 DCA TEMP0 /SAVE LOCATION OF PERIOD 512 000607 2020 ISZ POINT 513 000610 1420 TAD I POINT /GET NEXT NUMBER 514 000611 1067 TAD M271 /THIS ALSO MUST BE A NUMBER 515 000612 7540 SMA SZA 516 000613 5523 JMP I REASKX /THE USER IS A DUMMY 517 000614 1061 TAD K0011 518 000615 7710 SPA CLA 519 000616 5523 JMP I REASKX /OR PRODUCT TEST IS NASTY 520 000617 1420 TAD I POINT /OK ITS VALID 521 000620 3560 DCA I TEMP0 /PUT IT WHERE THE PERIOD WAS 522 000621 2020 ISZ POINT /CHECK FOR CR 523 000622 1420 TAD I POINT /GET VALUE 524 000623 1066 TAD M215 525 000624 7640 SZA CLA /OK? 526 000625 5523 JMP I REASKX /NO DUM DUM 527 000626 2765 ISZ I UNTX /YES, INCREASE RADIX COUNTER 528 000627 4520 JMS I OCTIZX /GET OCTAL OF THIS DECIMAL 529 000630 7041 CIA /NEGATE IT 530 000631 3021 DCA MBINK /SAVE THIS ANSWER 531 000632 5600 JMP I CBINW /RETURN 532 000633 7522 M256, -256 533 /TYPM: A SUBROUTINE TO TYPE A MESSAGE WHOSE ADDRESS IS HELD IN 534 /CALL+1 535 000634 0000 TYPM, 0 536 000635 1634 TAD I TYPM /GET ADDRESS OF MESSAGE 537 000636 3020 DCA POINT /MAKE A NONAUTOINDEX POINTER OF IT 538 000637 2234 ISZ TYPM /FIX THE RETURN ADDRESS 539 000640 1420 TLOOP, TAD I POINT 540 000641 7002 BSW /SHIFT IT TO GET LEFT HALF 541 000642 4247 JMS TCHAR /DO MASK AND TYPE ROUTINE 542 000643 1420 TAD I POINT /GET THE SAME WORD FOR THE RIGHT HALF 543 000644 4247 JMS TCHAR 544 000645 2020 ISZ POINT /MOVE POINTER UP TO NEXT LETTERS 545 000646 5240 JMP TLOOP /DO IT AGAIN 546 000647 0000 TCHAR, 0 547 000650 0063 AND K0077 /MASK OUT THE LEFT HALF 548 000651 7450 SNA /A ZERO HERE MEANS THE END OF THE MESSAGE 549 000652 5634 JMP I TYPM /EXIT THIS ROUTINE 550 000653 1062 TAD K0040 /MAKE THIS AN ASCII CHARACTER 551 000654 4517 JMS I TYPAX /TYPE IT 552 000655 5647 JMP I TCHAR /RETURN FROM THIS LITTLE LOOP 553 /DISUP:A ROUTINE TO SET UP DISPLAY POINTERS SUCH AS STARTING 554 /AND ENDING LOCATIONS, DELTA X, SCALE AND SUM FACTORS 555 000656 4533 DISUP, JMS I GETDLX /ADJUST POINTER FOR ORDER 556 000657 3010 DCA POINTA /AUTO INDEX IT 557 000660 1410 TAD I POINTA /GET STATING ADDRESS FOR DISPLAY 558 000661 3011 DCA GETPNT /ANOTHER AUTO POINTER 559 000662 1011 TAD GETPNT 560 000663 7041 CIA 561 000664 1410 TAD I POINTA /AC HOLDS NUMBER OF POINTS 562 000665 7450 SNA /INSURE NON ZERO 563 000666 7001 IAC 564 000667 7041 CIA /AC HOLDS -POINTS. 565 000670 3363 DCA MPOINT 566 000671 1363 TAD MPOINT 567 000672 4506 FLOAT /FLOAT IT 568 000673 4476 SAVE 569 000674 0155 FSAM /AND SAVE IT 570 000675 1366 TAD KDSIZE /GET -DISPLAY SIZE 571 000676 4506 FLOAT 572 000677 4502 FDIV 573 000700 0155 FSAM 574 000701 1367 TAD K0014 /376 575 000702 4504 DFIX 576 000703 0771 DELTAX 577 000704 1065 TAD K7027 /LEFT HAND X EDGE 578 000705 3036 DCA LENGTH 579 000706 3151 DCA ARITH4 580 000707 3152 DCA ARITH5 581 000710 1410 TAD I POINTA /GET SCALE FACTOR 582 000711 3037 DCA SFACTR 583 000712 1410 TAD I POINTA /GET SUM 584 000713 3040 DCA SUM 585 000714 4540 JMS I FXMSUM /SET UP MSUM 586 000715 5764 JMP I AXISX 587 /DELAY: A SUBROUTINE TO DELAY A VARIABLE TIME ACCORDING TO KNOB 3 588 000716 0000 DELAY, 0 589 000717 1042 TAD PLSWT 590 000720 7650 SNA CLA /IF WERE NOT PLOTTING, DONT DELAY 591 000721 5716 JMP I DELAY 592 000722 7325 CLA CLL CML IAC RAL /KNOB 3 593 000723 6531 ADLM /FOR PLOT SPEED 594 000724 6532 ADST 595 000725 6534 ADSK 596 000726 5325 JMP .-1 /GET SAMPLE 597 000727 6533 ADRB 598 000730 7041 CIA 599 000731 1337 TAD K6777 /RANGE -3777,-1 600 000732 6133 CLAB 601 000733 6135 CLSA /LOAD COUNTER 602 000734 7650 SNA CLA /CHECK FLAGS 603 000735 5333 JMP .-2 /WAIT 604 000736 5716 JMP I DELAY 605 000737 6777 K6777, 6777 606 /GETDX: A SUBROUTINE TO GET DELTA X VIA SUM 607 000740 0000 GETDX, 0 608 000741 4540 JMS I FXMSUM /SETUP MSUM 609 000742 1371 TAD DELTAX 610 000743 3146 DCA ARITH1 611 000744 1372 TAD DELTAX+1 612 000745 3147 DCA ARITH2 613 000746 4474 DELOOP, DADD 614 000747 2041 ISZ MSUM /COMBINE DELTA XS THIS MANY TIMES 615 000750 5346 JMP DELOOP 616 000751 1151 TAD ARITH4 /WATCH OUT FOR OVERFLOW 617 000752 7041 CIA /NEGATE 618 000753 1370 TAD K1777A /AND CHECK FOR MAX 619 000754 7700 SMA CLA 620 000755 5360 JMP .+3 /ITS OK 621 000756 1370 TAD K1777A /TOO MUCH; SET TO MAX 622 000757 5740 JMP I GETDX /AND RETURN 623 000760 1151 TAD ARITH4 624 000761 5740 JMP I GETDX /RETURN TO MAIN PROGRAM 625 000762 0473 CHEX, CHECK 626 000763 0000 MPOINT, 0 627 000764 1000 AXISX, AXIS 628 000765 0526 UNTX, UNIT 629 000766 6030 KDSIZE, -1750 630 000767 0014 K0014, 0014 631 000770 1777 K1777A, 1777 632 000771 0000 DELTAX, 0 633 000772 0000 0 634 000773 6213 MSIO, CDF CIF 10 635 000774 5775 JMP I .+1 636 000775 7400 MSSTRT 637 / 638 / 639 / 640 *1000 641 /THIS IS THE START OF THE DISPLAY SECTION 642 001000 1065 AXIS, TAD K7027 643 001001 6054 DILY 644 001002 3755 DCA I YTEMPX /SAVE IT FOR LATER 645 001003 1043 TAD AXSWT 646 001004 7650 SNA CLA /AXSWIT=1 FOR DISPLAY OF AXIS 647 001005 5237 JMP CURDIS /NO AXIS. TRY CURSORS 648 001006 2045 ISZ DIM /IF A POINT PLOT DISPLAY SPEND LESS TIME ON AXIS 649 001007 5237 JMP CURDIS 650 001010 1044 TAD KDIM 651 001011 3045 DCA DIM 652 001012 1064 TAD K0777 /SET X COORDINATE FOR RIGHT HAND EDGE 653 001013 3756 DCA I XTEMPX 654 001014 1065 TAD K7027 /LEFT HAND EDGE FOR X 655 001015 3036 DCA LENGTH /STOP AXIS HERE 656 001016 4757 JMS I XDSPX /DRAW THE LINE 657 001017 4537 JMS I DELAYX /TRY NOT TO SKEW PEN 658 001020 1372 TAD M31 /=-25 FOR HATCH MARKS ON Y AXIS 659 001021 3361 DCA HATCH 660 001022 1367 HACHL, TAD K0050 661 001023 3036 DCA LENGTH /ONE HATCH MARK EQUALS 20 POINTS 662 001024 4760 JMS I YDISPX /DRAW A Y VECTOR 663 001025 4537 JMS I DELAYX /DELAY FOR PEN 664 001026 1374 TAD K7016 /HATCH MARK GOES TO X=7 665 001027 3036 DCA LENGTH 666 001030 4757 JMS I XDSPX /DRAW X VECTOR 667 001031 1065 TAD K7027 /RETURN POSITION 668 001032 3036 DCA LENGTH 669 001033 4757 JMS I XDSPX 670 001034 4537 JMS I DELAYX /DELAY FOR PEN 671 001035 2361 ISZ HATCH 672 001036 5222 JMP HACHL /DRAW SOMEMORE 673 001037 1046 CURDIS, TAD CURSWT /SHOULD WE DISPLAY CURSORS/ 674 001040 7650 SNA CLA /CURSWT=0 FOR NO CURSORS 675 001041 5261 JMP HISDIS /DISPLAY THE HISOGRAM 676 001042 4246 JMS DRCURS /DRAW APPROPRIATE LINE FOR CHAN 677 001043 7201 CLA IAC /KNOB 1 678 001044 4246 JMS DRCURS 679 001045 5261 JMP HISDIS 680 001046 0000 DRCURS, 0 681 001047 4532 JMS I KNOBSX /GET VALUE OF APPROPRIATE KNOB 682 001050 1375 TAD M1000 683 001051 6053 DILX /LOAD X DAC 684 001052 3756 DCA I XTEMPX /THIS IS X COOD 685 001053 1064 TAD K0777 686 001054 3755 DCA I YTEMPX /THIS IS Y COORDINATE 687 001055 1370 TAD M1751 /THIS IS NUMBER OF POINTS TO MOVE DOWN 688 001056 3036 DCA LENGTH 689 001057 4760 JMS I YDISPX 690 001060 5646 JMP I DRCURS 691 001061 1065 HISDIS, TAD K7027 692 001062 6053 DILX 693 001063 3151 DCA ARITH4 694 001064 1151 TAD ARITH4 695 001065 3756 DCA I XTEMPX /INITIALIZE X DAC 696 001066 1047 TAD PNTSWT 697 001067 7640 SZA CLA /POINT PLOT DISPLAY? 698 001070 5330 JMP PPLOT /YES 699 001071 4762 HISLP, JMS I GTDAX /NO, GET SOME DATA 700 001072 4763 JMS I SCLDAX /SCALE IT 701 001073 1755 TAD I YTEMPX /GET LAST Y: RANGE; 777,7026 702 001074 1371 TAD K752 /RANGE IT FROM 0 TO 1751 703 001075 7041 CIA 704 001076 1147 TAD ARITH2 /THIS IS THE NUMBER OF POINTS TO GO 705 001077 3036 DCA LENGTH 706 001100 4760 JMS I YDISPX 707 001101 4765 JMS I GETXX /GET DELTA X 708 001102 3036 DCA LENGTH 709 001103 4757 JMS I XDSPX /DRAW AN X VECTOR 710 001104 1364 TAD LAST /HAVE WE REACHED THE LAST BAR? 711 001105 7650 SNA CLA /AC=1 IF WE HAVE 712 001106 5271 JMP HISLP /GO BACK AND DISPLAY MORE 713 001107 3364 DCA LAST /RESET LAST POINT FLAG 714 001110 1755 TAD I YTEMPX /AND DRAW A LINE TO THE AXIS 715 001111 1371 TAD K752 /CORRECT THE RANGE 716 001112 7041 CIA 717 001113 3036 DCA LENGTH 718 001114 4760 JMS I YDISPX /COME ON DOWN, YOURE FINISHED 719 001115 1042 ON1, TAD PLSWT /FIND OUT IF WE WERE PLOTTING 720 001116 7650 SNA CLA 721 001117 5323 JMP ON /NO PLOTTING TODAY 722 001120 3042 DCA PLSWT /YES WE WERE BUT NOT NO MORE NO-HOW 723 001121 6031 KSF /WAIT FOR SOMEONE TO TURN OFF THE PLOTTER 724 001122 5321 JMP .-1 725 001123 6031 ON, KSF /WAS SOMEONE TALKING TO US? 726 001124 5766 JMP I IKBRAX /NO. CHECK THE INTERRUPT 727 001125 6036 KRB /YES. LETS SEE IF ITS IMPORTANT 728 001126 3434 DCA I TTYBUF 729 001127 5766 JMP I IKBRAX 730 001130 4762 PPLOT, JMS I GTDAX 731 001131 4763 JMS I SCLDAX 732 001132 1147 TAD ARITH2 /RANGE; 0-1000 733 001133 1373 TAD M752 /RANGE; 777-7027 734 001134 6054 DILY 735 001135 7200 CLA 736 001136 4765 JMS I GETXX /GET THE X VALUE FOR THE POINT 737 001137 6053 DILX /DISPLAY THE POINT 738 001140 6052 DISD /WAIT FOR DISPLAY. 739 001141 5340 JMP .-1 740 001142 6055 DIXY 741 001143 7200 CLA 742 001144 1364 TAD LAST /ARE WE DONE 743 001145 7650 SNA CLA 744 001146 5330 JMP PPLOT /NOOO SIR 745 001147 3364 DCA LAST /YOUD BETTER BELIEVE IT 746 001150 5315 JMP ON1 747 001151 6002 PANIC, IOF /THIS IS A PANIC STOP 748 001152 3434 DCA I TTYBUF /CLEAR INPUT AREA 749 001153 5754 JMP I .+1 750 001154 2123 ESTOP 751 001155 1637 YTEMPX, YTEMP 752 001156 1667 XTEMPX, XTEMP 753 001157 1653 XDSPX, XDISP 754 001160 1620 YDISPX, YDISP 755 001161 0000 HATCH, 0 756 001162 1514 GTDAX, GETDAT 757 001163 1531 SCLDAX, SCLDAT 758 001164 0000 LAST, 0 759 001165 0740 GETXX, GETDX 760 001166 1200 IKBRAX, IKBRAS 761 001167 0050 K0050, 50 762 001170 6027 M1751, -1751 763 001171 0752 K752, 752 764 001172 7747 M31, -31 765 001173 7026 M752, -752 766 001174 7016 K7016, 7016 767 / 768 / 769 001175 7000 M1000, -1000 770 / 771 *1200 772 /THIS IS THE BRANCH TO TABLE FOR ALL KEYBOARD COMMANDS 773 001200 1434 IKBRAS, TAD I TTYBUF 774 001201 7450 SNA /SEE IF THERE IS ANYTHING TO PROCESS 775 001202 5240 JMP NECHO /EXIT BY CLEARING BUFFER 776 001203 4473 BRAN /BRANCH ACCORDING TO FOLLOWING LIST 777 001204 7547 IKLIST 778 001205 5242 JMP HIGHER />: INCREASE ORDER OF DISPLAY 779 001206 5244 JMP LOWER /<: DECREASE ORDER OF DISPLAY 780 001207 5257 JMP CTRLZ /^Z: STOP, CLEAR BUFFERS,WAIT RESTART 781 001210 5261 JMP CTROLA /^A: GO AND GET NEW PARAMETERS 782 001211 5263 JMP CTRLQ /^Q: QUIT DATA TAKING AFTER THIS EPOCH 783 001212 5266 JMP CTRLC /^C: RETURN TO MONITOR 784 001213 5656 JMP I PANICX /^P: PANIC STOP 785 001214 5274 JMP SCALUP /U: SCALE Y BY FACTOR OF 2 786 001215 5273 JMP SCALDN /D: SCALE Y BY FACTOR OF 1/2 787 001216 5760 JMP I EXPANX /E: EXPAND AREA BETWEEN CURSORS 788 001217 5305 JMP BNSCAL /B: NEGATE ALL E COMMANDS 789 001220 5320 JMP SUM1 /S: SUM ALL AJACENT BINS 790 001221 5325 JMP ORIG /O: RETURN TO NON SUM MODE 791 001222 5333 RESTRT, JMP UNALT /Z: RETURN TO UNALTERED DISPLAY 792 001223 5761 JMP I AXNAX /A: COMPLEMENT AXIS-NOAXIS SWITCH 793 001224 5762 JMP I CRNCRX /C: COMPLEMENT CURSOR-NOCURSOR SWITCH 794 001225 5763 JMP I VIEWX /V: COMPLEMENT POINT PLOT OR BAR GRAPH SWITCH 795 001226 5756 JMP I USER /^U: USER IMPLEMENTED GROUP I COMMAND 796 001227 5236 JMP ECHO /GROUP I NOT FOUND ECHO AND IGNOR 797 001230 5336 JMP PLOT /P: START OF GROUP II; PLOT HISTOGRAM 798 001231 5764 JMP I KALIBX /K: KALIBRATE THE PLOTTER 799 001232 5766 JMP I TYPOUT /T: TYPE AREA DEFINED BY CURSORS 800 001233 5757 JMP I MSIOX /^W COMMAND TO FIELD 1. 801 001234 5771 JMP I DUMPX /^B: DO A BINARY DUMP OF HISTOGRAM 802 001235 5765 JMP I RETAIN /^R: RETAIN THE DATA AND READY FOR RESTART 803 /A FEW SHORT BRANCH COMMANDS 804 001236 1434 ECHO, TAD I TTYBUF 805 001237 4517 JMS I TYPAX /ECHO THE CHARACTER 806 001240 3434 NECHO, DCA I TTYBUF /CLEAR THE BUFFER 807 001241 5767 JMP I DSUPX 808 001242 2050 HIGHER, ISZ ORDER 809 001243 7410 SKP 810 001244 7340 LOWER, CLA CLL CMA /AC=-1 811 001245 1050 TAD ORDER 812 001246 7510 SPA /INSURE AGAINST DISPLAYING A NONEXISTANT HIST. 813 001247 7300 CLA CLL /MAKE ORDER 0 814 001250 1373 TAD M0001 /CANT BE LARGER THAN 1 815 001251 7700 SMA CLA 816 001252 7001 IAC /MAKE IT JUST 1 817 001253 7000 NOP /FOR FUTURE VERSIONS HAVING MORE THAN TWO ORDERS 818 001254 3050 DCA ORDER 819 001255 5236 JMP ECHO 820 001256 1151 PANICX, PANIC 821 001257 6002 CTRLZ, IOF 822 001260 5770 JMP I CLBUFX /CLEAR ALL BUFFERS 823 001261 6002 CTROLA, IOF 824 001262 5521 JMP I CTRLAX /GO TO START 825 001263 7040 CTRLQ, CMA 826 001264 3024 DCA MEPOC /SET EPOCH COUNTER TO ONE MORE 827 001265 5240 JMP NECHO 828 001266 6002 CTRLC, IOF 829 001267 7240 CLA CMA 830 001270 6130 CLZE 831 001271 7300 CLA CLL 832 001272 5432 JMP I MONTR 833 001273 7344 SCALDN, CLA CMA CLL RAL /AC=-2 834 001274 1037 SCALUP, TAD SFACTR 835 001275 7001 IAC /INCREASE BY ONE 836 001276 3037 DCA SFACTR 837 001277 4533 JMS I GETDLX /GET SCALE FACTOR TO MODIFY 838 001300 1372 TAD K0003 /ADJUST POINTER TO SCALE WORD 839 001301 3020 DCA POINT 840 001302 1037 TAD SFACTR 841 001303 3420 DCA I POINT /STORE NEW SCALE FACTOR 842 001304 5236 JMP ECHO 843 /MORE SHORT COMMANDS 844 001305 4533 BNSCAL, JMS I GETDLX /FORGET ALL E COMMANDS 845 001306 3010 DCA POINTA 846 001307 1050 TAD ORDER 847 001310 7104 CLL RAL 848 001311 1033 TAD PERMLI /ADDRESS OF PERMANENT DISPLAY LIST 849 001312 3011 DCA GETPNT 850 001313 1411 TAD I GETPNT 851 001314 3410 DCA I POINTA 852 001315 1411 TAD I GETPNT 853 001316 3410 DCA I POINTA 854 001317 5236 JMP ECHO 855 001320 7324 SUM1, CLL CLA CML RAL 856 001321 4533 JMS I GETDLX /AC BIAS IN GETTING POINTER 857 001322 3020 DCA POINT 858 001323 2420 ISZ I POINT /SUM IS INCREASED BY ONE FOR THIS HISTOGRAM 859 001324 5236 JMP ECHO 860 001325 7324 ORIG, CLA CLL CML RAL 861 001326 4533 JMS I GETDLX 862 001327 3020 DCA POINT 863 001330 7001 IAC 864 001331 3420 DCA I POINT /SUM IS RETURNED TO 1 865 001332 5236 JMP ECHO 866 001333 4527 UNALT, JMS I INTDLX /RETURN ORIGINAL DISPLAY 867 001334 4530 JMS I INTDSX /RETURN ALL SWITCHES TO NORMAL 868 001335 5236 JMP ECHO 869 001336 3046 PLOT, DCA CURSWT /MAKE SURE THE CURSORS ARE OFF 870 001337 1374 TAD PMODE /SET CLOCK 871 001340 6132 CLOE 872 001341 7040 CMA 873 001342 6130 CLZE /DISABLE SCHMITTS 874 001343 3042 DCA PLSWT /SET PLOTTING SWITCH 875 001344 1064 TAD K0777 /SET DACS 876 001345 6053 DILX /TO LOWER 877 001346 7200 CLA 878 001347 1065 TAD K7027 /RIGHT HAND CONER 879 001350 6054 DILY 880 001351 7200 CLA 881 001352 6031 KSF /WAIT FOR PLOTTER TO BE TURNED ON 882 001353 5352 JMP .-1 883 001354 6032 KCC /KNOCK DOWN THE FLAG 884 001355 5240 JMP NECHO 885 001356 1240 USER, NECHO 886 001357 0773 MSIOX, MSIO 887 001360 1400 EXPANX, EXPAND 888 001361 1434 AXNAX, AXNA 889 001362 1440 CRNCRX, CRNCR 890 001363 1444 VIEWX, VIEW 891 001364 2451 KALIBX, KALIB 892 001365 0247 RETAIN, RETAN 893 001366 2200 TYPOUT, TYPOX 894 001367 0656 DSUPX, DISUP 895 001370 0233 CLBUFX, CLBUF 896 001371 2600 DUMPX, DUMP 897 001372 0003 K0003, 3 898 001373 7777 M0001, -1 899 001374 5400 PMODE, 5400 900 / 901 / 902 001375 3055 COMBK, DCA BUSY /START HERE FOR 903 001376 5222 JMP RESTRT /RESTART 904 / 905 / 906 *1400 907 /THIS ROUTINE EXPANDS THE AREA BETWEEN THE CURSORS 908 001400 4203 EXPAND, JMS TWOKNB /READ THE KNOBS 909 001401 4534 JMS I FIXSTX /FIX THE BOUNDARIES 910 001402 5522 JMP I NECHOX /EXIT WITH NON ECHO 911 001403 0000 TWOKNB, 0 912 001404 4257 JMS KNOBS /READ AND SCALE IT 913 001405 3160 DCA TEMP0 914 001406 7001 IAC 915 001407 4257 JMS KNOBS 916 001410 3161 DCA TEMP01 /SAVE IT FOR A MOMENT 917 001411 1161 TAD TEMP01 /THE MOMENT IS UP 918 001412 7041 CIA /NEGATE THE VALUE 919 001413 1160 TAD TEMP0 920 001414 7700 SMA CLA /WE MUST FIND OUT WHICH IS LEFT 921 001415 5226 JMP KNOB1 /KNOB 0 IS ON THE RIGHT 922 001416 1161 TAD TEMP01 /KNOB 1 IS ON RIGHT 923 001417 1364 TAD M27 924 001420 4272 JMS DELTA /GET INCREMENT TO MOVE BOUNDARY 925 001421 3753 DCA I ENDX 926 001422 1160 TAD TEMP0 927 001423 1364 HARRY, TAD M27 928 001424 4272 JMS DELTA 929 001425 5603 JMP I TWOKNB 930 001426 1160 KNOB1, TAD TEMP0 931 001427 1364 TAD M27 932 001430 4272 JMS DELTA 933 001431 3753 DCA I ENDX 934 001432 1161 TAD TEMP01 935 001433 5223 JMP HARRY 936 001434 1043 AXNA, TAD AXSWT 937 001435 7040 CMA /INVERT THE SWITCH 938 001436 3043 DCA AXSWT 939 001437 5757 JMP I ECHOX 940 001440 1046 CRNCR, TAD CURSWT 941 001441 7040 CMA 942 001442 3046 DCA CURSWT 943 001443 5757 JMP I ECHOX 944 001444 1047 VIEW, TAD PNTSWT 945 001445 7640 SZA CLA /WERE WE DOING POINTS OR BAR 946 001446 5253 JMP BAR /SWITCH TO BARS 947 001447 1352 TAD MXXX 948 001450 3044 DCA KDIM /FIX DIMNESS SWITCHW 949 001451 7001 IAC 950 001452 5255 JMP .+3 951 001453 7240 BAR, CLA CMA 952 001454 3044 DCA KDIM 953 001455 3047 DCA PNTSWT /=0 FOR BAR GRAPH 954 001456 5757 JMP I ECHOX 955 /KNOBS: SUBROUTINE TO READ AN ADC CHANNEL CONTAINED IN THE AC 956 /RETURN A VALUE SCALED FROM 0027-1777 957 001457 0000 KNOBS, 0 958 001460 6531 ADLM /LOAD MUX 959 001461 6532 ADST /START CONVERSION 960 001462 6534 ADSK 961 001463 5262 JMP .-1 962 001464 6533 ADRB /READ RANGE: 7000-777 963 001465 1361 TAD K0751 /RANGE IT, -27,1750 964 001466 7510 SPA 965 001467 7200 CLA /<-27 966 001470 1365 TAD K0027 /RANGE 27,1777 967 001471 5657 JMP I KNOBS 968 /A S.R. TO YIELD THE NUMBER OF POINTS CONTAINED IN THE AC 969 /THIS IS FOUND USING THE CURRENT DELTA X AND SUM VALUES 970 /AT THE END OF THE S.R. LOCATION "MANY" HOLDS THE NUMBER 971 /OF BINS EQUAL TO THE AC VALUE AND THE AC HOLDS THE NUMBER OF 972 /POINTS THE POINTER SHOULD BE MOVED 973 001472 0000 DELTA, 0 974 001473 7041 CIA /NEGATE 975 001474 3166 DCA TEMP06 976 001475 7040 CMA /AC=-1 977 001476 3354 DCA MANY 978 001477 3152 DCA ARITH5 /CLEAR AREA 979 001500 3151 DCA ARITH4 980 001501 4760 EXPNTR, JMS I GETDXX 981 001502 1166 TAD TEMP06 /EACH LOOP WE MOVE ONE MORE DELTA X 982 001503 2354 ISZ MANY 983 001504 7000 NOP /WATCH OUT FOR FIRST SKIP 984 001505 7750 SPA SNA CLA /AND SEE IF WEVE MOVED FAR ENOUGH 985 001506 5301 JMP EXPNTR 986 001507 4540 JMS I FXMSUM /FIX MSUM 987 001510 1354 PNTS, TAD MANY 988 001511 2041 ISZ MSUM 989 001512 5310 JMP .-2 990 001513 5672 JMP I DELTA /RETURN WITH AC=NUMBER OF POINTS 991 /GETDAT: A SUBROUTINE TO GET A CHUNK OF DATA VIA SUM 992 /DATA IS IN AC ON EXIT 993 001514 0000 GETDAT, 0 994 001515 7300 CLL CLA /MAKE SURE LINC IS CLEAN 995 001516 4540 JMS I FXMSUM /FIX MSUM 996 001517 1411 SUML, TAD I GETPNT 997 001520 7430 SZL /IS THE NUMBER GETTING TOO LARGE? 998 001521 7340 CLA CLL CMA /SET IT TO 7777 IF >4096 999 001522 2756 ISZ I MPNTX 1000 001523 5326 JMP .+3 1001 001524 2755 ISZ I LASTX 1002 001525 5714 JMP I GETDAT /FORCE A DROP THROUGH THE LOOP 1003 001526 2041 ISZ MSUM /IS SUM THROUGH? 1004 001527 5317 JMP SUML /NO DO MORE 1005 001530 5714 JMP I GETDAT /RETURN 1006 /SCLDAT: A SUBROUTINE TO SCALE DATA IN ARITH2 ACCORDING TO SCFACTOR 1007 /THIS S.R. ALSO CHECKS FOR VALUES TOO LARGE FOR DISPLAY. IF ANY 1008 /ARE FOUND THE MAXIMUM VALUE IS RETURNED. 1009 001531 0000 SCLDAT, 0 1010 001532 3147 DCA ARITH2 /DATA TO BE SCALED 1011 001533 3146 DCA ARITH1 /CLEAR SCALING AREA 1012 001534 1037 TAD SFACTR /GET THE SCALE FACTOR 1013 001535 4472 SHFT /SHIFT 1014 001536 1146 TAD ARITH1 /LOOK FOR LARGE OVERFLO 1015 001537 7640 SZA CLA 1016 001540 5347 JMP OVFLO /OVERFLOW 1017 001541 1147 TAD ARITH2 /GET INFLATED VALUE 1018 001542 7510 SPA /IS IT TOO LARGE 1019 001543 5346 JMP OVFLO-1 1020 001544 1363 TAD M1751A /-1000 DECIMAL 1021 001545 7540 SMA SZA /TOO LARGE STILL? 1022 001546 7300 CLA CLL /YES. SET TO MAX. 1023 001547 1362 OVFLO, TAD K1751 /THIS IS ORIGINAL VALUE OR MAX. 1024 001550 3147 DCA ARITH2 /SAVE IT HERE 1025 001551 5731 JMP I SCLDAT /GO BACK 1026 001552 7775 MXXX, -3 1027 001553 1770 ENDX, END 1028 001554 0000 MANY, 0 1029 001555 1164 LASTX, LAST 1030 001556 0763 MPNTX, MPOINT 1031 001557 1236 ECHOX, ECHO 1032 001560 0740 GETDXX, GETDX 1033 001561 0751 K0751, 751 1034 001562 1751 K1751, 1751 1035 001563 6027 M1751A, -1751 1036 / 1037 / 1038 001564 7751 M27, -27 1039 001565 0027 K0027, 27 1040 / 1041 *1600 1042 /INITDS: A SUBROUTINE TO INITIALIZE DISPLAY SWITCHES 1043 001600 0000 INITDS, 0 1044 001601 7001 IAC 1045 001602 3047 DCA PNTSWT /NO BAR GRAPH 1046 001603 3046 DCA CURSWT /NO CURSORS 1047 001604 3043 DCA AXSWT /NO AXIS 1048 001605 3042 DCA PLSWT /NO PLOT MODE 1049 001606 7040 CMA 1050 001607 3044 DCA KDIM /DONT GO OUT OF YOUR WAY TO DIM THE AXIS 1051 001610 7040 CMA 1052 001611 3045 DCA DIM /READY FOR PLOT 1053 001612 5600 JMP I INITDS 1054 /GETDL: A SUBROUTINE TO MAKE THE AC EQUAL TO THE LOCATION OF 1055 /THE DISPLAY LIST PERTAINING TO THIS HISTOGRAM 1056 001613 0000 GETDL, 0 1057 001614 1050 TAD ORDER /WHICH HISTOGRAM ARE WE LOOKING AT 1058 001615 7106 CLL RTL /CLEAR LINK AND ROTATE 1059 001616 1136 TAD ADDISL /ADDRESS-1 OF THE FIRST HISTOGRAM 1060 001617 5613 JMP I GETDL 1061 /YDISP: A SUBROUTINE TO DISPLAY OR PLOT A Y VECTOR 1062 /FROM THE CURRENT POSITION WHICH IS HELD IN YTEMP 1063 /TO A NEW POSITION. LENGTH HOLDS THE NUMBER OF POSITIONS 1064 /TO MOVE. THE SIGN OF LENGTH INDICATES THE DIRECTION 1065 /TO MOVE; +UP,-DOWN. 1066 001620 0000 YDISP, 0 1067 001621 7305 CLL CLA IAC RAL 1068 001622 3371 DCA YINC /SET MC. TO +2 INITIALLY 1069 001623 1036 TAD LENGTH 1070 001624 7510 SPA 1071 001625 7120 CLL CML 1072 001626 7010 RAR 1073 001627 7450 SNA /DIVIDE BY 2 1074 001630 5620 JMP I YDISP 1075 001631 7500 SMA 1076 001632 5240 JMP UP /DRAW UP 1077 001633 3036 DCA LENGTH 1078 001634 7344 CLL CLA CMA RAL /AC=-2 1079 001635 3371 DCA YINC 1080 001636 5242 JMP YMOVE 1081 001637 0000 YTEMP, 0 1082 001640 7041 UP, CIA 1083 001641 3036 DCA LENGTH 1084 001642 4537 YMOVE, JMS I DELAYX /CHECK TO SEE IF WE ARE PLOTTING 1085 001643 1237 TAD YTEMP /CURRENT Y POSITION 1086 001644 1371 TAD YINC /ADD INCREMENT 1087 001645 6055 DIXY 1088 001646 6054 DILY 1089 001647 3237 DCA YTEMP /SAVE IT FOR NEXT TIME 1090 001650 2036 ISZ LENGTH /MOVED ENOUGH YET? 1091 001651 5242 JMP YMOVE /NO DO MORE 1092 001652 5620 JMP I YDISP /ALL DONE WITH VECTOR 1093 /XDIS: A SUBROUTINE TO DRAW AN X VECTOR FROM THE CURRENT 1094 /POSITION WHICH IS HELD IN XTEMP TO AN ENDING POSITION 1095 /WHICH IS HELD IN LENGTH. 1096 001653 0000 XDISP, 0 1097 001654 7240 CMA CLA /AC=-1 1098 001655 3060 DCA XINC /SET INITIALLY TO -1 1099 001656 1267 TAD XTEMP /CURRENT POSITION 1100 001657 7041 CIA 1101 001660 1036 TAD LENGTH /AC HOLDS NUMBER OF POSITIONS TO MOVE 1102 001661 7450 SNA /CHECK FOR ZERO 1103 001662 5653 JMP I XDISP /RETURN 1104 001663 7510 SPA 1105 001664 5271 JMP .+5 /MOVE TO THE LEFT 1106 001665 7041 CIA 1107 001666 2060 ISZ XINC /TO MOVE RIGHT XINC MUST BE POSITIVE 1108 001667 0000 XTEMP, 0 /ALWAYS SKIPPED 1109 001670 2060 ISZ XINC 1110 001671 3036 DCA LENGTH 1111 001672 4537 XMOVE, JMS I DELAYX /CHECK TO SEE IF PLOTTING 1112 001673 1267 TAD XTEMP /GET CURRENT POSITION 1113 001674 1060 TAD XINC /INCREMENT OR DECREMENT 1114 001675 6055 DIXY 1115 001676 6053 DILX /DISPLAY THIS POINT 1116 001677 3267 DCA XTEMP /SAVE IT FOR NEXT TIME 1117 001700 2036 ISZ LENGTH /DONE YET? 1118 001701 5272 JMP XMOVE /NO KEEP GOING 1119 001702 5653 JMP I XDISP /RETURN TO MAIN 1120 /OCTIZE: SUBROUTINE TO CONVERT TTYBUFF INTO OCTAL AND LEAVE 1121 /THE RESULT IN THE AC. LOCATION UNIT HOLDS THE NUMBER OF 1122 /DECIMAL PLACES IN THE ARGUMENT. 1123 001703 0000 OCTIZ, 0 1124 001704 1772 TAD I UNITX /GET RADIX 1125 001705 7041 CIA 1126 001706 3772 DCA I UNITX /SAVE THIS NUMBER AS A POINTER 1127 001707 3146 DCA ARITH1 /CLEAR OUT SHIFTING AREA 1128 001710 3147 DCA ARITH2 1129 001711 3151 DCA ARITH4 1130 001712 4531 JMS I SETPTX /GET FIRST VALUE IN AC 1131 001713 0373 OCTIZL, AND K0017 /STRIP THE ASCII 1132 001714 3152 DCA ARITH5 /PUT IT SHIFTER 1133 001715 7201 CLA IAC /AC=1 1134 001716 4472 SHFT 1135 001717 4474 DADD /MUTIPLY BY TWO AND ADD 1136 001720 7305 CLL CLA IAC RAL 1137 001721 4472 SHFT 1138 001722 4474 DADD /NOW MULTIPLY BY FOUR 1139 /2(X) + 8(X) =10(X) 1140 001723 1151 TAD ARITH4 /CHECK FOR OVERFLO 1141 001724 7640 SZA CLA 1142 001725 5523 JMP I REASKX /THERE WAS AN OVERFLO 1143 001726 1152 TAD ARITH5 /GET RESULT OF ADD 1144 001727 2772 ISZ I UNITX /ARE WE DONE CONVERSION? 1145 001730 5332 JMP .+2 /NO 1146 001731 5703 JMP I OCTIZ /YES RETURN FOR MORE INSTRUCTIONS 1147 001732 3147 DCA ARITH2 1148 001733 2020 ISZ POINT /POINTER FOR TTYBUF 1149 001734 1420 TAD I POINT /GET ANOTHER VALUE 1150 001735 5313 JMP OCTIZL /GET MORE INFORMATION 1151 /THIS IS A SUBROUTINE TO INCREMENT THE STARTING ADDRESS OF THE 1152 /DISPLAY BUFFER WITH THE AC VALUE AND ALSO FIX 1153 /THE END OF DISPLAY POINTER WITH THE VALUE FOUND IN END. 1154 001736 0000 FIXSTA, 0 1155 001737 3160 DCA FIXINC /HOLD THIS VALUE 1156 001740 4213 JMS GETDL /GET ADDRESS OF DISPLAY LIST 1157 001741 7001 IAC /MOVE POINTER UP ONE 1158 001742 3020 DCA POINT 1159 001743 1420 TAD I POINT /GET STARTING ADDRESS 1160 001744 1370 TAD END /FIRST FIX THE END 1161 001745 3370 DCA END 1162 001746 1420 TAD I POINT /GET STARTING ADDRESS 1163 001747 1160 TAD FIXINC /ADJUST START 1164 001750 3420 DCA I POINT /AND STORE IT 1165 001751 2020 ISZ POINT /MOVE POINTER TO END DISPLAY ADDRESS 1166 001752 1050 TAD ORDER 1167 001753 7124 CLL CML RAL 1168 001754 1141 TAD STRT0X /GET LOCATION OF ENDING ADDRESS FOR THIS DISPLAY 1169 001755 3174 DCA TEMP14 1170 001756 1574 TAD I TEMP14 /GET ADDRESS 1171 001757 7041 CIA 1172 001760 1370 TAD END /ENSURE CURSOR IS NOT PAST PHYSICAL END 1173 001761 7710 SPA CLA 1174 001762 5365 JMP TADEND 1175 001763 1574 TAD I TEMP14 /USE WHICH EVER IS SMALLEST 1176 001764 5366 JMP TADEND+1 1177 001765 1370 TADEND, TAD END 1178 001766 3420 DCA I POINT 1179 001767 5736 JMP I FIXSTA 1180 001770 0000 END, 0 1181 001771 0000 YINC, 0 1182 001772 0526 UNITX, UNIT 1183 FIXINC=TEMP0 1184 001773 0017 K0017, 17 1185 / 1186 / 1187 1188 *2000 1189 /INTERRUPT SERVICE ROUTINES 1190 1191 002000 7300 INTOUT, CLL CLA /CLEAR VITAL AREAS 1192 002001 1206 TAD LSAVE /GET LINK 1193 002002 7004 RAL /POSITION IT 1194 002003 1207 TAD ASAVE /GET AC 1195 002004 6001 ION 1196 002005 5400 JMP I 0 /RETURN 1197 002006 0000 LSAVE, 0 1198 002007 0000 ASAVE, 0 1199 /ENTRANCE 1200 002010 3207 INTERP, DCA ASAVE /SAVE AC 1201 002011 7010 RAR 1202 002012 3206 DCA LSAVE /AND LINK 1203 002013 6135 CLSA /READ AND CLEAR CLOCK 1204 002014 7004 RAL /ROTATE CLOCK BIT TO LINK 1205 002015 3351 DCA SAFE /SAVE TRIGGER ACTION 1206 002016 7420 SNL /TEST FOR TICK 1207 002017 5261 JMP SCHMIT /NO TICK 1208 002020 2022 ISZ MBINW /RECORD TICK, CHECK BIN WIDTH 1209 002021 5237 JMP TOTT /TALLY TOTAL TIME 1210 002022 1021 TAD MBINK /RESET BIN WIDTH 1211 002023 3022 DCA MBINW 1212 002024 2031 ISZ MINT /DONE WITH MIN TIME? 1213 002025 5237 JMP TOTT /NO, GO TO TALLY TOTAL TIME 1214 002026 7340 CLA CLL CMA /YES 1215 002027 3031 DCA MINT /SET SWITCHES TO "NO MIN TIME" 1216 002030 3346 DCA SPOT 1217 002031 2026 ISZ MBIN /ARE WE OUTSIDE OF THE TIME FRAME? 1218 002032 5236 JMP INCB /NO, INCREMENT BIN POINTER 1219 002033 7340 CLA CLL CMA /YES 1220 002034 3026 DCA MBIN /STOP BIN POINTER AT OVERFLOW BIN. 1221 002035 7410 SKP 1222 002036 2340 INCB, ISZ BIN /INCREMENT BIN POINTER 1223 002037 2341 TOTT, ISZ MUNIT /TALLY TOTAL TIME 1224 002040 5261 JMP SCHMIT 1225 002041 1057 TAD KMUNIT 1226 002042 3341 DCA MUNIT /RESET TOTAL TIME TIMER 1227 002043 2027 ISZ ORD /INCREASE ZERO ORDER POINTER 1228 002044 2024 ISZ MEPOC /IS TOTAL TIME UP? 1229 002045 5261 JMP SCHMIT /NO 1230 002046 5323 JMP ESTOP /YES 1231 002047 6041 KBDC, TSF /TTY DONE? 1232 002050 5254 JMP TYIN /NO 1233 002051 6042 TCF /YES, KNOCK DOWN FLAG 1234 002052 3055 DCA BUSY /AND CLEAR SOFTWARE FLAG 1235 002053 5200 JMP INTOUT /AND LEAVE 1236 002054 6031 TYIN, KSF 1237 002055 5200 JMP INTOUT /NO KEYBOARD 1238 002056 6036 KRB 1239 002057 3434 DCA I TTYBUF /STORE FOR LATER 1240 002060 5200 JMP INTOUT 1241 002061 1351 SCHMIT, TAD SAFE 1242 002062 7650 SNA CLA /NOT HERE 1243 002063 5247 JMP KBDC /TRY KEYBOARD 1244 002064 1350 TAD M144 /RESET CLOCK 1245 002065 6133 CLAB 1246 002066 7200 CLA 1247 002067 1056 TAD FIRST /IS THIS THE FIRST PULSE OF THE RUN? 1248 002070 7640 SZA CLA 1249 002071 5307 JMP FST /YES, DON'T RECORD IT BUT RESET EVERYTHING 1250 002072 1340 TAD BIN /NO, RECORD PULSE 1251 002073 1543 TAD I STRT1X /GET START OF HISTOGRAM 1252 002074 3345 DCA INTTEM 1253 002075 2745 ISZ I INTTEM /AND RECORD FIRING 1254 002076 5304 JMP NOURFL /NO OVERFLOW OF BIN 1255 002077 1346 TAD SPOT /OVERFLOW OF BIN 1256 002100 7650 SNA CLA /BUT THIS IS OK IF IN MIN TIME 1257 002101 2342 ISZ ER1 /THIS IS AN ERROR 1258 002102 7040 CMA 1259 002103 3745 DCA I INTTEM /SET BIN TO MAX 1260 002104 1346 NOURFL, TAD SPOT 1261 002105 7650 SNA CLA /IF IN MIN TIME, DON'T RECORD PULSE 1262 002106 2427 ISZ I ORD /IN 0 ORDER HISTOGRAM 1263 002107 3056 FST, DCA FIRST /TURN OFF 1ST PULSE SWITCH 1264 002110 7001 IAC 1265 002111 3340 DCA BIN /RESET BIN POINTER 1266 002112 1021 TAD MBINK /RESET BIN WIDTH 1267 002113 3022 DCA MBINW 1268 002114 1030 TAD MINTK /RESET MINTIM 1269 002115 3031 DCA MINT 1270 002116 1347 TAD SPOTER /RESET MINTIM SWITCH 1271 002117 3346 DCA SPOT 1272 002120 1025 TAD MBINS /ALSO OVERFLOW COUNTER 1273 002121 3026 DCA MBIN 1274 002122 5200 JMP INTOUT 1275 002123 1743 ESTOP, TAD I EXTEX /STOP THE RUN 1276 002124 7510 SPA /EXTEND KEY BOARD 1277 002125 7041 CIA /BRANCH LIST 1278 002126 3743 DCA I EXTEX 1279 002127 4515 JMS I CRLFX 1280 002130 4516 JMS I TYPMX /TYPE "OPM" 1281 002131 3042 OPM 1282 002132 4515 JMS I CRLFX 1283 002133 1342 TAD ER1 1284 002134 4525 JMS I DEFSIX /TYPE OUT NUMBER OF ERRORS 1285 002135 3005 SINGLE-1 1286 002136 4515 JMS I CRLFX 1287 002137 5744 JMP I DISUPX 1288 1289 002140 0001 BIN, 1 1290 002141 0000 MUNIT, 0 1291 002142 0000 ER1, 0 1292 002143 7570 EXTEX, EXTEND 1293 002144 0656 DISUPX, DISUP 1294 002145 0000 INTTEM, 0 1295 002146 0000 SPOT, 0 1296 002147 0000 SPOTER, 0 1297 / 1298 002150 7634 M144, -144 1299 002151 0000 SAFE, 0 1300 002152 0000 MODEA, 0 1301 002153 1350 TAD M144 /-100 1302 002154 6133 CLAB /TO PRESET 1303 002155 7300 CLA CLL /CLEAR AC 1304 002156 1071 TAD KMODE /CLOCK MODE + RATE 1305 002157 6132 CLOE 1306 002160 7040 CMA 1307 002161 6130 CLZE 1308 002162 6135 CLSA /CLEAR CLOCK 1309 002163 7200 CLA 1310 002164 5752 JMP I MODEA 1311 / 1312 / 1313 *2200 1314 /THIS ROUTINE TYPES OUT THE VALUES OF THE BINS FOUND BETWEEN THE 1315 /CURSORS 1316 002200 4533 TYPOX, JMS I GETDLX 1317 002201 3010 DCA POINTA /AUTO INDEX POINTER 1318 002202 1410 TAD I POINTA 1319 002203 3053 DCA TEMSTA /SAVE VALUES FOR USE LATER 1320 002204 1410 TAD I POINTA 1321 002205 3054 DCA TEMEND 1322 002206 4766 JMS I TWOKNX /READ THE KNOBS 1323 002207 4534 JMS I FIXSTX /FIX DISPLAY POINTERS ACCORDINGLY 1324 002210 4533 JMS I GETDLX 1325 002211 3010 DCA POINTA 1326 002212 1410 TAD I POINTA /GET STARTING LOCATION OF FIRST VALUE 1327 002213 3011 DCA GETPNT 1328 002214 1011 TAD GETPNT 1329 002215 3373 DCA STAT 1330 002216 1410 TAD I POINTA 1331 002217 3354 DCA ENDCUR 1332 002220 4515 JMS I CRLFX /DO A CR LF 1333 002221 1050 TAD ORDER 1334 002222 4774 JMS I TYPNUM /TYPE THE ORDER NUMBER 1335 002223 4575 JMS I COMMAX 1336 002224 4535 JMS I SPACEX 1337 002225 1040 TAD SUM 1338 002226 4525 JMS I DEFSIX /TYPE SUM FACTOR 1339 002227 3005 SINGLE-1 1340 002230 4535 JMS I SPACEX 1341 002231 4535 JMS I SPACEX 1342 002232 1354 TAD ENDCUR 1343 002233 7041 CIA 1344 002234 1011 TAD GETPNT /AC HOLDS -NUMBER OF POINTS 1345 002235 7450 SNA /INSURE NON ZERO 1346 002236 7040 CMA /SET -1 1347 002237 3355 DCA MDATPN 1348 002240 4753 JMS I TADVAX /SUM THE POINTS 1349 002241 3357 DCA CURSLO /THIS IS THE LO ORDER 1350 002242 1151 TAD ARITH4 /THIS IS HIGH ORDER 1351 002243 3356 DCA CURSHI 1352 002244 1152 TAD ARITH5 1353 002245 4524 JMS I DEFLAX 1354 002246 2777 DOUBLE-1 /DEFLATE THIS DOULBLE PRECISION WORD 1355 002247 1050 TAD ORDER 1356 002250 7104 CLL RAL 1357 002251 1033 TAD PERMLI /PERMANENT DISPLAY LIST 1358 002252 3010 DCA POINTA 1359 002253 1410 TAD I POINTA 1360 002254 3011 DCA GETPNT /SET UP FOR SUM OF ALL 1361 002255 1410 TAD I POINTA 1362 002256 7041 CIA 1363 002257 1011 TAD GETPNT /AC HOLDS -OF POINTS TO SUM 1364 002260 7450 SNA /INSURE NON ZERO 1365 002261 7040 CMA 1366 002262 3355 DCA MDATPN 1367 002263 4753 JMS I TADVAX /GET SUM OF ALL ACTIVITY 1368 002264 3154 DCA HISLO /SAVE LO ORDER FOR LATER 1369 HISLO=FTEM1B 1370 002265 1151 TAD ARITH4 1371 002266 3153 DCA HISHI /AND THE HIGH ORDER 1372 HISHI=FTEM1A 1373 002267 1152 TAD ARITH5 1374 002270 4524 JMS I DEFLAX /DEFLATE AND TYPE OUT 1375 002271 2777 DOUBLE-1 /IN DOUBLE PRECISION 1376 002272 4767 JMS I DOUBLX /FLOAT A DOUBLE PRECISION WORD 1377 002273 0152 HISHI-1 /STARTING HERE 1378 002274 4476 SAVE 1379 002275 2360 DIVSRH /SAVE IT HERE 1380 002276 4767 JMS I DOUBLX 1381 002277 2355 CURSHI-1 1382 002300 4476 SAVE 1383 002301 2363 DIVSRC /SAVE THE FLOATED QUANTITY 1384 002302 4502 FDIV 1385 002303 2360 DIVSRH /" DA DIVSRH /FORM RATIO OF ACTIVITY INSIDE CUSORS TO ALL 1386 002304 4770 JMS I FRCOUX /TYPE OUT THE FRACTION 1387 /TYPE OUT BIN #'S DELIMETED BY CURSORS 1388 002305 1050 TAD ORDER 1389 002306 7104 CLL RAL 1390 002307 1352 TAD KTAD 1391 002310 3311 DCA .+1 1392 002311 0000 0 /GET THE ABSOLUTE STARTING LOCATION OF THIS HISTOGRAM 1393 002312 7041 CIA /NEGATE 1394 002313 1373 TAD STAT /GET THE STARTING LOCATION OF 1ST CURSOR 1395 002314 3052 DCA BINSTA /SAVE THE BIN NUMBER OF STARTING ADDRESS 1396 002315 1052 TAD BINSTA 1397 002316 4525 JMS I DEFSIX /TYPE OUT THE LEFT HAND BIN #. 1398 002317 3005 SINGLE-1 1399 002320 1373 TAD STAT /NOW FIND THE ENDING BIN # 1400 002321 7041 CIA 1401 002322 1354 TAD ENDCUR /BY SUBTRACTING THE STARTING FROM ENDING ADDRESS 1402 002323 3372 DCA BINSTP /THIS IS # OF BINS BEING OUTPUT 1403 002324 7040 CMA 1404 002325 1372 TAD BINSTP 1405 002326 1052 TAD BINSTA /ADD TO THE STARTING BIN #. 1406 002327 4525 JMS I DEFSIX /TYPE OUT END BIN 1407 002330 3005 SINGLE-1 1408 002331 4515 JMS I CRLFX /DO CARRIAGE RETURN LINEFEED 1409 002332 3051 DCA MLINES /NOW FIND OUT HOW MANY LINES OF OUTPUT 1410 002333 4540 JMS I FXMSUM 1411 002334 1372 TAD BINSTP /GET NUMBER OF POINTS 1412 002335 1041 JOE, TAD MSUM /SUBTRACT SUMFACTOR 1413 002336 2051 ISZ MLINES 1414 002337 7540 SMA SZA 1415 002340 5335 JMP JOE 1416 002341 7300 CLA CLL 1417 002342 1051 TAD MLINES /THIS IS NUMBER OF LINES 1418 002343 7041 CIA 1419 002344 3051 DCA MLINES 1420 002345 1372 TAD BINSTP /ALSO HAVE A POINT COUNTER 1421 002346 7041 CIA /FOR FETCHING ROUTINE 1422 002347 3775 DCA I MPNTXX 1423 002350 1373 TAD STAT 1424 002351 5377 JMP SETGET 1425 1426 002352 1541 KTAD, TAD I STRT0X 1427 002353 2541 TADVAX, TADVAL 1428 002354 0000 ENDCUR, 0 1429 002355 0000 MDATPN, 0 1430 002356 0000 CURSHI, 0 1431 002357 0000 CURSLO, 0 1432 002360 0000 DIVSRH, 0 1433 002361 0000 0 1434 002362 0000 0 1435 002363 0000 DIVSRC, 0 1436 002364 0000 0 1437 002365 0000 0 1438 002366 1403 TWOKNX, TWOKNB 1439 002367 2526 DOUBLX, DOUBLD 1440 002370 2477 FRCOUX, FRCOUT 1441 002371 1472 DELTX, DELTA 1442 002372 0000 BINSTP, 0 1443 002373 0000 STAT, 0 1444 002374 2473 TYPNUM, TYPNUX 1445 002375 0763 MPNTXX, MPOINT 1446 1447 *2377 1448 1449 002377 3011 SETGET, DCA GETPNT 1450 002400 4755 BGLOOP, JMS I GETDAX /GET A BIN INTO ARITH2 1451 002401 7450 SNA /YES? NO? 1452 002402 5226 JMP RIEN /NO! NOTHING 1453 002403 3154 DCA HOLD /YES! A NEURON HAS BEEN FIRING 1454 HOLD=FTEM1B 1455 002404 3153 DCA HOLD-1 /SINGLE PRECISION 1456 002405 1052 TAD BINSTA 1457 002406 4525 JMS I DEFSIX /TYPE OUT THE BIN NUMBER 1458 002407 3005 SINGLE-1 /IN SINGLE PRECISION 1459 002410 1154 TAD HOLD /FIRST TELL US DIRECTLY ABOUT THE ACTION 1460 002411 4525 JMS I DEFSIX /I.E. HOW MUCH ABSOLUTE ACTIVITY 1461 002412 3005 SINGLE-1 1462 002413 4326 JMS DOUBLD /LETS GET A FEW RATIOS ALSO 1463 002414 0152 HOLD-2 1464 002415 4502 FDIV 1465 002416 2363 DIVSRC /ACIVITY OVER CURSOR ACTIVITY 1466 002417 4277 JMS FRCOUT /TYPE IT OUT 1467 002420 4326 JMS DOUBLD 1468 002421 0152 HOLD-2 /AGAIN FLOAT THE ACTION 1469 002422 4502 FDIV 1470 002423 2360 DIVSRH /DIVIDE BY ALL THE ACTION 1471 002424 4277 JMS FRCOUT /TYPE OUT THE FRACTION 1472 002425 4515 JMS I CRLFX 1473 002426 4540 RIEN, JMS I FXMSUM /FIX MSUM 1474 002427 2052 ISZ BINSTA /INCREMENT BIN POINTER 1475 002430 2041 ISZ MSUM /THIS MANY TIMES 1476 002431 5227 JMP .-2 1477 002432 6031 KSF /IS SOMEONE TRYING TO TELL US SOMETHING? 1478 002433 5240 JMP SILENC /NO 1479 002434 6036 KRB /YES! IS IT IMPORTANT? 1480 002435 1360 TAD M221 /I.E. ^Q 1481 002436 7650 SNA CLA 1482 002437 5242 JMP QUIT /WHOA!! 1483 002440 2051 SILENC, ISZ MLINES /ARE WE DONE YET? 1484 002441 5200 JMP BGLOOP /NO. GO BACK TO THE BIG LOOP 1485 002442 4533 QUIT, JMS I GETDLX /YES. RESTORE THE DISPLAY 1486 002443 3010 DCA POINTA 1487 002444 1053 TAD TEMSTA 1488 002445 3410 DCA I POINTA 1489 002446 1054 TAD TEMEND 1490 002447 3410 DCA I POINTA 1491 002450 5522 JMP I NECHOX 1492 /THIS ROUTINE WILL CALIBRATE AN X Y PLOTTER 1493 002451 1272 KALIB, TAD K1001 /SET DACS TO LOWER LEFT 1494 002452 6054 DILY 1495 002453 6053 DILX 1496 002454 4262 JMS WAIT1 /WAIT FOR KEYBOARD 1497 002455 1064 TAD K0777 /SET DACS TO UPPER RIGHT 1498 002456 6054 DILY 1499 002457 6053 DILX 1500 002460 4262 JMS WAIT1 1501 002461 5251 JMP KALIB 1502 002462 0000 WAIT1, 0 1503 002463 6031 KSF 1504 002464 5263 JMP .-1 1505 002465 6036 KRB 1506 002466 1360 TAD M221 /WAIT FOR ^Q 1507 002467 7650 SNA CLA 1508 002470 5522 JMP I NECHOX 1509 002471 5662 JMP I WAIT1 1510 002472 1001 K1001, 1001 1511 /SOME SUBROUTINES THAT GO WITH THE TYPE OUT ROUTINE 1512 002473 0000 TYPNUX, 0 1513 002474 1356 TAD K0060 1514 002475 4517 JMS I TYPAX 1515 002476 5673 JMP I TYPNUX 1516 002477 0000 FRCOUT, 0 1517 002500 4503 FIX /IF ANS. IS 1 AC WILL EQUAL 1 OTHERWISE 1518 002501 7440 SZA /FAC IS LEFT UNCHANGED AND AC=0 1519 002502 5315 JMP UNITY /TYPE OUT A ONE 1520 002503 1145 TAD FAC 1521 002504 4472 SHFT /FIX FAC WHERE IT LIES 1522 002505 1357 TAD K0256 /ASCII FOR . 1523 002506 4517 JMS I TYPAX 1524 002507 1146 TAD ARITH1 1525 002510 3151 DCA ARITH4 1526 002511 1147 TAD ARITH2 1527 002512 4524 JMS I DEFLAX 1528 002513 3177 FRACTN-1 1529 002514 5677 JMP I FRCOUT /EXIT 1530 002515 4273 UNITY, JMS TYPNUX 1531 002516 4575 JMS I COMMAX 1532 002517 4535 JMS I SPACEX 1533 002520 4535 JMS I SPACEX 1534 002521 4535 JMS I SPACEX 1535 002522 4535 JMS I SPACEX 1536 002523 4535 JMS I SPACEX 1537 002524 4535 JMS I SPACEX 1538 002525 5677 JMP I FRCOUT 1539 /DOUBLD: A S.R TO FLOAT AND LOAD A DOUBLE PRECISION 1540 /WORD TO FAC. LOCATION OF HI ORDER WORD IS CALL+1 1541 002526 0000 DOUBLD, 0 1542 002527 1726 TAD I DOUBLD 1543 002530 2326 ISZ DOUBLD /FIX RETURN 1544 002531 3010 DCA POINTA 1545 002532 1410 TAD I POINTA 1546 002533 3146 DCA ARITH1 1547 002534 1410 TAD I POINTA /LO ORDER 1548 002535 3147 DCA ARITH2 1549 002536 4500 NORM 1550 002537 3145 DCA FAC /PUT THE EXPONENT AWAY 1551 002540 5726 JMP I DOUBLD 1552 /TADVAL: A S.R. TO ADD ALL THE VALUES FROM LOCATION GETPNT 1553 /TO LOCATION GETPNT + (-(MDATPN)) 1554 002541 0000 TADVAL, 0 1555 002542 3146 DCA ARITH1 1556 002543 3151 DCA ARITH4 1557 002544 3152 DCA ARITH5 1558 002545 1411 TADLP, TAD I GETPNT 1559 002546 3147 DCA ARITH2 1560 002547 4474 DADD /KEEP A RUNNING DOUBLE PRECISION SUM 1561 002550 2754 ISZ I MDATX /ENOUGH ADDED? 1562 002551 5345 JMP TADLP /NO GO BACK 1563 002552 1152 TAD ARITH5 /HI ORDER IS PLACED FOR DEFLATION 1564 002553 5741 JMP I TADVAL /EXIT WITH LOW ORDER IN AC 1565 002554 2355 MDATX, MDATPN 1566 002555 1514 GETDAX, GETDAT 1567 002556 0060 K0060, 60 1568 002557 0256 K0256, 256 1569 002560 7557 M221, -221 1570 002561 0331 YESNO, 331 /Y 1571 002562 7462 -316 /N 1572 / 1573 / 1574 / 1575 *2600 1576 /MTSB: MORE KEY BOARD COMMAND 1577 002600 4515 DUMP, JMS I CRLFX 1578 002601 4516 JMS I TYPMX 1579 002602 3035 HIGH /ASK FOR HI OR LOW SPEED PUNCH 1580 002603 6031 KSF 1581 002604 5203 JMP .-1 /WAIT HERE FOR THE ANSWER 1582 002605 6036 KRB 1583 002606 4473 BRAN 1584 002607 2561 YESNO 1585 002610 7040 CMA /HIGH SPEED 1586 002611 7000 NOP /LO SPEED 1587 002612 3170 DCA SPEED /LOW SPEED 1588 SPEED=TEMP10 1589 002613 4515 JMS I CRLFX 1590 002614 4516 JMS I TYPMX 1591 002615 3040 ID /ASK FOR ID NUMBER 1592 002616 4526 JMS I TTINX /ACCEPT ID NUMBER 1593 002617 4323 JMS LEADER /TYPE SOME LEADER TRAILER 1594 002620 1034 TAD TTYBUF /GET LOCATION OF BUFFER 1595 002621 3020 DCA POINT 1596 002622 1420 IDLOOP, TAD I POINT /GET A VALUE 1597 002623 1066 TAD M215 /LOOK FOR END OF ID 1598 002624 7650 CLA SNA 1599 002625 5232 JMP ENDID 1600 002626 1420 TAD I POINT 1601 002627 2020 ISZ POINT /MOVE POINTER ON 1602 002630 4344 JMS PUNCH /PUNCH OUT THAT CHARACTER 1603 002631 5222 JMP IDLOOP 1604 002632 4323 ENDID, JMS LEADER /DO LEADER BEFORE BINARY 1605 002633 3322 DCA CHECKS /CLEAR CHECK SUM AREA 1606 002634 4275 JMS ADDRES 1607 002635 4000 K4, 4000 /PUNCH THE ADDRESS OF DISPLAY LIST 1608 002636 1033 TAD PERMLI 1609 002637 4310 JMS PO /PUNCH DATA STARTING AT PERMLI+1 1610 002640 7774 -4 /FOUR CHARACTERS 1611 002641 1050 TAD ORDER 1612 002642 7104 CLL RAL /TIMES TWO 1613 002643 1033 TAD PERMLI 1614 002644 3010 DCA POINTA 1615 002645 1410 TAD I POINTA /GET STARTING ADDRESS 1616 002646 3161 DCA HISTA 1617 HISTA=TEMP01 1618 002647 1410 TAD I POINTA /AND ENDING ADDRESS 1619 002650 7041 CIA 1620 002651 1161 TAD HISTA /AC HOLDS MINUS NUMBER OF POINTS TO PUNCH 1621 002652 3262 DCA HGRAM 1622 002653 1161 TAD HISTA 1623 002654 7001 IAC 1624 002655 3257 DCA AD 1625 002656 4275 JMS ADDRES /PUNCH ADDRESS 1626 002657 0000 AD, 0 1627 002660 1161 TAD HISTA 1628 002661 4310 JMS PO 1629 002662 0000 HGRAM, 0 /PUNCH THIS MANY POINTS 1630 /NOW DO CHECK SUM 1631 002663 1322 TAD CHECKS 1632 002664 4333 JMS OUTPUT 1633 002665 4323 JMS LEADER /STICK IN SOME LEADER TRAILER 1634 002666 5522 JMP I NECHOX 1635 002667 0000 ROT, 0 1636 002670 7012 RTR 1637 002671 7012 RTR 1638 002672 7012 RTR 1639 002673 0063 AND K0077 1640 002674 5667 JMP I ROT 1641 002675 0000 ADDRES, 0 /SUB TO PUNCH OUT ADDRESS CONTAINED IN CALL+1 1642 002676 1675 TAD I ADDRES 1643 002677 4267 JMS ROT /ROTATE IT 1644 002700 1307 TAD K0100 /ADDRESS CODE 1645 002701 4344 JMS PUNCH 1646 002702 1675 TAD I ADDRES 1647 002703 0063 AND K0077 1648 002704 4344 JMS PUNCH 1649 002705 2275 ISZ ADDRES /ADJUST RETURN 1650 002706 5675 JMP I ADDRES /AND RETURN 1651 002707 0100 K0100, 100 1652 002710 0000 PO, 0 /S.R. TO PUNCH OUT BUNCH OF DATA 1653 002711 3010 DCA POINTA /AUTO INDEX AC 1654 002712 1710 TAD I PO /GET NUMBER OF POINTS 1655 002713 3163 DCA TEMP03 1656 002714 2310 ISZ PO /FIX RETURN 1657 002715 1410 LUCY, TAD I POINTA /GET A VALUE 1658 002716 4333 JMS OUTPUT /OUTPUT IT 1659 002717 2163 ISZ TEMP03 1660 002720 5315 JMP LUCY 1661 002721 5710 JMP I PO 1662 002722 0000 CHECKS, 0 1663 002723 0000 LEADER, 0 1664 002724 1373 TAD M100 1665 002725 3162 DCA LEAD 1666 LEAD=TEMP02 1667 002726 1372 TAD K0200 1668 002727 4344 JMS PUNCH 1669 002730 2162 ISZ LEAD 1670 002731 5326 JMP .-3 1671 002732 5723 JMP I LEADER 1672 /OUTPUT A SUBROUTINE TO OUTPUT WORD IN AC TO HI OR LO 1673 /SPEED PUNCH LEFT HALF THEN RIGHT HALF 1674 002733 0000 OUTPUT, 0 1675 002734 3371 DCA OUTBUF /SAVE THE CHARACTER 1676 002735 1371 TAD OUTBUF 1677 002736 4267 JMS ROT 1678 002737 4344 JMS PUNCH /CHARACTER WILL BE STRIPPED 1679 002740 1371 TAD OUTBUF 1680 002741 0063 AND K0077 1681 002742 4344 JMS PUNCH 1682 002743 5733 JMP I OUTPUT 1683 002744 0000 PUNCH, 0 1684 002745 3165 DCA OUT 1685 OUT=TEMP05 1686 002746 1162 TAD LEAD /ARE WE PUNCH THINGS WHICH SHOULD 1687 002747 7640 SZA CLA /BE INCLUDED IN THE CHECKSUM? 1688 002750 5354 JMP SPD /NO 1689 002751 1165 TAD OUT /YES GET CHARACTER 1690 002752 1322 TAD CHECKS /ADD TO CHECKSUM 1691 002753 3322 DCA CHECKS /STORE IT AGAIN 1692 002754 1170 SPD, TAD SPEED /HIGH OR LOW SPEED PUNCH 1693 002755 7640 SZA CLA 1694 002756 5362 JMP HI /HIGH SPEED GO! 1695 002757 1165 TAD OUT /LOW SPEED HURRY UP 1696 002760 4517 JMS I TYPAX 1697 002761 5744 JMP I PUNCH 1698 002762 1165 HI, TAD OUT 1699 002763 6026 PLS /PUNCH IT 1700 002764 6021 PSF 1701 002765 5364 JMP .-1 /WAIT TIL ITS DONE 1702 002766 6022 PCF /KNOCK DOWN THE FLAG 1703 002767 7200 CLA 1704 002770 5744 JMP I PUNCH 1705 002771 0000 OUTBUF, 0 1706 002772 0200 K0200, 0200 1707 002773 7700 M100, -100 1708 / 1709 / 1710 / 1711 / 1712 / 1713 /THIS IS THE KEY BOARD BRANCH LIST FOR THE WAIT BEFORE START UP 1714 002774 0223 STLIST, 223 /^S 1715 002775 0203 203 /^C 1716 002776 0201 201 /^A 1717 002777 7566 -212 /LF AND END OF LIST 1718 /DEFLATION TABLES FOR DOUBLE, SINGLE PRECISION 1719 003000 7413 DOUBLE, 7413 /1 MILLION HI ORDER 1720 003001 6700 6700 /LO ORDER 1721 003002 7747 7747 /100,000 HI ORDER 1722 003003 4545 4545 1723 003004 7775 7775 /10,000 HI ORDER 1724 003005 4360 4360 1725 003006 7777 SINGLE, 7777 /1,000 HI ORDER 1726 003007 6030 6030 1727 003010 7777 7777 /100 HI ORDER 1728 003011 7634 7634 1729 003012 7777 7777 /10 HI ORDER 1730 003013 7766 7766 1731 003014 7777 7777 /1 HI ORDER 1732 003015 7777 7777 1733 003016 0000 0 /END OF LIST 1734 /MESSAGES THAT ARE TO BE TYPED ARE STORED HERE 1735 /LETTERS ARE STORED TWO TO A WORD. 40 MUST BE ADDED TO 1736 /THE HALF WORD TO GET A VALID ASCII CHARACTER 1737 /A ZERO WILL TERMINATE THE MESSAGE. 1738 003017 3700 QUES, 3700 /? END 1739 003020 4251 BINW, 4251 /BI 1740 003021 5667 5667 /NW 1741 003022 3500 3500 /= END 1742 003023 4251 BINS, 4251 /BI 1743 003024 5663 5663 /NS 1744 003025 3500 3500 /= END 1745 003026 5551 MIN, 5551 /MI 1746 003027 5664 5664 /NT 1747 003030 5155 5155 /IM 1748 003031 3500 3500 /= END 1749 003032 4357 CORE, 4357 /CO 1750 003033 6245 6245 /RE 1751 003034 3700 3700 /? END 1752 003035 5051 HIGH, 5051 /HI 1753 003036 4750 4750 /GH 1754 003037 3700 3700 /? END 1755 003040 5144 ID, 5144 /ID 1756 003041 1600 1600 /. END 1757 003042 5760 OPM, 5760 /OP 1758 003043 5500 5500 /M END 1759 /COMMON SUBROUTINES (SUBS) 1760 / 1761 / 1762 /TYPA; TYPE CONTENTS OF AC 1763 /RETURN WITH AC=0 1764 003044 0000 TYPA, 0 1765 003045 3160 DCA TEMP0 /SAVE THING TO BE TYPED 1766 003046 1055 OTTY, TAD BUSY /TTY BUSY? 1767 003047 7640 SZA CLA 1768 003050 5256 JMP COOLIT 1769 003051 1160 NOW, TAD TEMP0 /DO IT 1770 003052 6046 TLS 1771 003053 7300 CLA CLL 1772 003054 2055 ISZ BUSY /SET FLAG 1773 003055 5644 JMP I TYPA /RETURN 1774 003056 6041 COOLIT, TSF 1775 003057 5246 JMP OTTY /STILL BUSY 1776 003060 6042 TCF /DONE 1777 003061 3055 DCA BUSY /CLEAR FLAG 1778 003062 5251 JMP NOW /AND TYPE 1779 / 1780 / 1781 /CRLF; TYPE CR AND LF 1782 /RETURN AC=0 1783 003063 0000 CRLF, 0 1784 003064 1271 TAD K15 1785 003065 4244 JMS TYPA 1786 003066 1272 TAD K12 1787 003067 4244 JMS TYPA 1788 003070 5663 JMP I CRLF 1789 003071 0015 K15, 15 1790 003072 0012 K12, 12 1791 / 1792 / 1793 /SPACE;TYPE A SPACE 1794 003073 0000 SPACE, 0 1795 003074 1062 TAD K0040 1796 003075 4244 JMS TYPA 1797 003076 5673 JMP I SPACE 1798 / 1799 / 1800 /SETPNT;SET POINTR TO START OF TTYBUF 1801 /RETURN WITH FIRST VALUE IN AC 1802 003077 0000 SETPNT, 0 1803 003100 1034 TAD TTYBUF 1804 003101 3020 DCA POINT 1805 003102 1420 TAD I POINT 1806 003103 5677 JMP I SETPNT 1807 / 1808 / 1809 /LISN; GET CHARACTER FROM KEYBOARD 1810 003104 0000 LISN, 0 1811 003105 6031 KSF 1812 003106 5305 JMP .-1 1813 003107 6036 KRB 1814 003110 5704 JMP I LISN 1815 /DEFLAT: A ROUTINE TO DEFLATE A NUMBER IN ARITH4 AND 5 1816 /BY A TABLE OF VALUES WHOSE LOCATION IS FOUND IN 1817 /CALL +1. AC HOLDS THE LOW ORDER OF THE WORD TO BE DEFLATED 1818 /A ZERO IN THE TABLE INDICATES THE END OF DEFLATION 1819 003111 0000 DEFSIN, 0 /ENTRANCE FOR SINGLE PRECISION DEFLATE 1820 003112 3152 DCA ARITH5 1821 003113 1311 TAD DEFSIN 1822 003114 3317 DCA DEFLAT /CORRECT EXIT 1823 003115 3151 DCA ARITH4 /CLEAR THE AREA 1824 003116 5321 JMP .+3 /GET INTO THE ROUTINE 1825 003117 0000 DEFLAT, 0 1826 003120 3152 DCA ARITH5 /STORE LOW ORDER 1827 003121 1717 TAD I DEFLAT /GET LOCATION OF TABLE 1828 003122 3010 DCA POINTA 1829 003123 2317 ISZ DEFLAT /ADJUST RETURN 1830 003124 1410 DRADIX, TAD I POINTA 1831 003125 7450 SNA /ARE WE AT THE END OF THE LIST? 1832 003126 5356 JMP NOMORE /YES 1833 003127 3146 DCA ARITH1 /NO SET UP NEW DEFLATOR 1834 003130 1410 TAD I POINTA 1835 003131 3147 DCA ARITH2 /HI AND LO ORDER 1836 003132 3362 DCA RADIX /CLEAR THE RADIX INDICATOR 1837 003133 4474 DEFLOP, DADD 1838 003134 1151 TAD ARITH4 /CHECK TO SEE WHEN THE RESULT TURNS NEGATIVE 1839 003135 7710 SPA CLA 1840 003136 5341 JMP NEG 1841 003137 2362 ISZ RADIX /OK LETS GO SOME MORE 1842 003140 5333 JMP DEFLOP 1843 003141 7100 NEG, CLL /CLEANSE THE LINC 1844 003142 1147 TAD ARITH2 1845 003143 7041 CIA /WE MUST CORRECT THE OVER INFLATION 1846 003144 3147 DCA ARITH2 1847 003145 1146 TAD ARITH1 1848 003146 7040 CMA 1849 003147 7430 SZL /ACCOUNT FOR ANY CARRIES 1850 003150 7001 IAC 1851 003151 3146 DCA ARITH1 1852 003152 4474 DADD /NOW FAC HOLDS ORIGINAL VALUE 1853 003153 1362 TAD RADIX /GET NUMBER OF GOOD DEFLATIONS 1854 003154 4761 JMS I TYPNX 1855 003155 5324 JMP DRADIX 1856 003156 4575 NOMORE, JMS I COMMAX /ALL DONE STICK IN A SPACE 1857 003157 4273 JMS SPACE /AND ANOTHER 1858 003160 5717 JMP I DEFLAT 1859 003161 2473 TYPNX, TYPNUX 1860 003162 0000 RADIX, 0 1861 003163 0000 FSUM, 0 1862 003164 1040 TAD SUM 1863 003165 7041 CIA 1864 003166 3041 DCA MSUM 1865 003167 5763 JMP I FSUM 1866 1867 *3200 1868 /FRACTIONS 1869 003200 7463 FRACTN, 7463 /0.1/10 HI ORDER 1870 003201 1464 1464 /LO ORDER 1871 003202 7753 7753 /0.1/100 HI ORDER 1872 003203 4122 4122 1873 003204 7775 7775 /0.1/1,000 HI ORDER 1874 003205 7473 7473 1875 003206 7777 7777 /0.1/10,000 1876 003207 6271 6271 1877 003210 0000 0 /END OF DEFLATION LIST 1878 /CMIN: CHECK ANSWER TO MIN TIME AND STORE 1879 003211 0000 CMIN, 0 1880 003212 4647 JMS I FIGX 1881 003213 7040 CMA 1882 003214 3030 DCA MINTK /STORE NEGATIVE AWAY 1883 003215 4647 JMS I FIGX 1884 003216 7640 SZA CLA /SET UP FOR 1885 003217 7001 IAC 1886 003220 3645 DCA I SPOTX /NO MIN TIME 1887 003221 5611 JMP I CMIN /RETURN FOR SOME FUN NOW 1888 003222 0000 CTIME, 0 1889 003223 1021 TAD MBINK 1890 003224 3172 DCA TMBIN 1891 TMBIN=TEMP12 1892 003225 4646 JMS I CBINNX 1893 003226 1021 TAD MBINK 1894 003227 3057 DCA KMUNIT /STORE 1895 003230 1172 TAD TMBIN 1896 003231 3021 DCA MBINK 1897 003232 5622 JMP I CTIME 1898 003233 6451 TIME, 6451 /TI 1899 003234 5545 5545 /ME 1900 003235 7465 7465 / U 1901 003236 5651 5651 /NI 1902 003237 6435 6435 /T= 1903 003240 0000 0000 /END 1904 1905 003241 0365 UNITS, 0365 /#U 1906 003242 5651 5651 /NI 1907 003243 6463 6463 /TS 1908 003244 3500 3500 /=END 1909 1910 003245 2147 SPOTX, SPOTER 1911 003246 0600 CBINNX, CBINW 1912 003247 0464 FIGX, FDIGC 1913 *3270 1914 003270 0000 DISL, 0 /DISPLAY LIST 1915 003271 0000 0 /FOR HISTOGRAMS 1916 003272 0000 0 /BEING DISPLAYED 1917 003273 0000 0 /STARTING ADDRESS 1918 003274 0000 0 /THEN END ADDRESS 1919 003275 0000 0 /SCALE FACTOR 1920 003276 0000 0 /AND SUM FACTOR FOR EACH 1921 003277 0000 0 /HISTOGRAM 1922 / 1923 *3300 1924 /BASIC SUBROUTINES SHFT, DADD, AND BRAN [SU63AB] 1925 /SUBROUTINE TO SHIFT DOUBLE PRECISION WORD (SHFR): SHFT (10+6N) 1926 /CALL:TAD KXXXX/AC HOLDS SHFT COUNT, RIGHT IS NEGATIVE 1927 /SHFT 1928 /RETURN/LINK=0, AC=0 1929 /FORMAT OF DOUBLE WORD IS (HI,LO) HI(0)-ONLY-HOLDS SIGN 1930 /SIGN BIT WILL BE REPLICATED IN RIGHT SHIFTS 1931 /TEMPORARY STORAGE ALLOCATION 1932 SHCNT=TEMP01 1933 /ARITHMETIC REGISTER ALLOCATION 1934 SHFR=ARITH1 /ARITH1-2 ARE FOR SHIFTING 1935 003300 0000 SHFTS, 0 1936 003301 7100 CLL 1937 003302 7450 SNA /IF SHIFT COUNT=0. EXIT 1938 003303 5700 JMP I SHFTS 1939 003304 7500 SMA /SHIFT RIGHT OR LEFT 1940 003305 7061 CML CMA IAC /LEFT-SET LINK=1 AND COUNT NEGATIVE 1941 003306 3161 DCA SHCNT 1942 003307 7430 SZL /RIGHT SHIFT? 1943 003310 5325 JMP SHLEFT /NO-SHIFT LEFT 1944 003311 1146 SHRIHT, TAD SHFR /SHIFT DONE ON ARITH1-2 1945 003312 7510 SPA /SET L=1 IF NEGATIVE 1946 003313 7020 CML 1947 003314 7010 RAR 1948 003315 3146 DCA SHFR /SHIFT WITH SIGN REPLICATION 1949 003316 1147 TAD SHFR+1 /SHIFT LO ORDER HALF 1950 003317 7010 RAR 1951 003320 3147 DCA SHFR+1 1952 003321 7100 CLL 1953 003322 2161 ISZ SHCNT /ENOUGH SHIFTS? 1954 003323 5311 JMP SHRIHT /NO-CONTINUE 1955 003324 5700 JMP I SHFTS /YES-EXIT 1956 003325 1147 SHLEFT, TAD SHFR+1 /SHIFT LO-ORDER 1957 003326 7104 CLL RAL /0 TO LSB 1958 003327 3147 DCA SHFR+1 1959 003330 1146 TAD SHFR /SHIFT HI-ORDER 1960 003331 7004 RAL 1961 003332 3146 DCA SHFR 1962 003333 7100 CLL 1963 003334 2161 ISZ SHCNT /ENOUGH? 1964 003335 5325 JMP SHLEFT /NO-CONTINUE 1965 003336 5700 JMP I SHFTS 1966 / 1967 / 1968 / 1969 /SUBROUTINE FOR BRANCHING ON MATCH OF AC AGAINST TABLE: BRAN 1970 /BRAN 1971 /ADDRESS OF TABLE 1972 /RETURN HERE IF FIRST ENTRY MEETS MATCH 1973 /ETC. 1974 /NONE MATCH 1975 /TABLE,FIRST ENTRY 1976 /SECOND ENTRY 1977 /-LAST ENTRY 1978 /TEMPORARY STORAGE ALLOCATION 1979 BPNT=TEMP01 1980 BSAVE=TEMP02 1981 003337 0000 BRANS, 0 1982 003340 3162 DCA BSAVE 1983 003341 1737 TAD I BRANS /GET ADDRESS OF FIRST ENTRY OF MATCH LIST 1984 003342 3161 DCA BPNT 1985 003343 1561 BRLOOP, TAD I BPNT /LOOK AT ENTRY 1986 003344 7500 SMA /GET MAGNITUDE 1987 003345 7041 CMA IAC 1988 003346 2337 ISZ BRANS /INDEX RETURN ADDRESS 1989 003347 1162 TAD BSAVE /MATCH FOUND? 1990 003350 7650 SNA CLA 1991 003351 5737 JMP I BRANS /YES-EXIT TO RETURN AS CALCULATED 1992 003352 1561 TAD I BPNT /NO-TEST FOR LAST ENTRY. 1993 003353 2161 ISZ BPNT /INDEX ENTRY POINTER 1994 003354 7700 SMA CLA /-INDICATES THIS WAS LAST ENTRY 1995 003355 5343 JMP BRLOOP /NOT LAST-CONTINUE 1996 003356 2337 ISZ BRANS /EXIT, NOT IN LIST, NONE MATCH 1997 003357 5737 JMP I BRANS 1998 /SUBROUTINE TO DO DOUBLE PRECISION ADD OF ARITH1-2, AND 4-5: DADD (21) 1999 /ARITHMETIC REGISTER ALLOCATION 2000 DBLAC=ARITH1 2001 DBLARG=ARITH4 2002 003360 0000 DADDS, 0 /ADD LO-ORDER 2003 003361 7300 CLL CLA 2004 003362 1147 TAD DBLAC+1 2005 003363 1152 TAD DBLARG+1 2006 003364 3152 DCA DBLARG+1 2007 003365 7004 RAL /CARRY 2008 003366 1146 TAD DBLAC /ADD HI-ORDER 2009 003367 1151 TAD DBLARG 2010 003370 3151 DCA DBLARG /LEAVE IN ARITH4-5. 2011 003371 7100 CLL 2012 003372 5760 JMP I DADDS 2013 /FLOATING CONSTANT USED BY [SU54A] 2014 003373 0033 K100MF, 0033 /100,000,000(10) 2015 003374 2765 2765 2016 003375 7020 7020 2017 2018 *3400 2019 /2-PAGE FLOATING POINT PACKAGE [SU64AB] - REQUIRES [SU63A] 2020 /LOAD, SAVE, DCOM, NORM, FMUL, FIX, DFIX, FADD, FDIV, FLOAT 2021 /FLOATING POINT FORMAT 2022 /WORD1:EXPONENT (2S COMPLEMENT) 2023 /WORD2:HI ORDER MANTISSA 2024 /WORD3:LO ORDER MANTISSA 2025 / 2026 /MANTISSA IS REPRESENTED IN 24 BIT, 2S COMPLEMENT NOTATION 2027 /A FLOATING POINT IS STORED AS MANTISSA*2^ EXPONENT 2028 /ZERO IS ALWAYS STORED AS 0*2^0 2029 /0.5 .LE. .ABS. MANTISSA .LT. 1.0 2030 /FLOATING POINT ACCUMULATOR 2031 FAC=ARITH0 2032 /FLOATING POINT OPERATOR 2033 FOP=ARITH3 2034 /SUBROUTINE TO LOAD FLOATING ACCUMULATOR: LOAD 2035 /TEMPORARY STORAGE ALLOCATION 2036 LDPNT=17 2037 003400 0000 LOADS, 0 2038 003401 7360 CLL CML CLA CMA /CALL: LOAD 2039 003402 1600 TAD I LOADS /ADDRESS 2040 003403 3017 DCA LDPNT /GETS ADDRESS, ADDRESS+1, ADDRESS+2 TO FAC 2041 003404 2200 ISZ LOADS 2042 003405 1417 TAD I LDPNT /ORDER IN MEMORY IS ASSUMED TO BE: 2043 003406 3145 DCA FAC /WORD1 2044 003407 1417 TAD I LDPNT 2045 003410 3146 DCA FAC+1 /WORD2 2046 003411 1417 TAD I LDPNT 2047 003412 3147 DCA FAC+2 /WORD3 2048 003413 5600 JMP I LOADS 2049 /SUBROUTINE TO SAVE FLOATING ACCUMULATOR: SAVE 2050 /TEMPORARY STORAGE ALLOCATION 2051 SVPNT=17 2052 003414 0000 SAVES, 0 2053 003415 7360 CLL CML CLA CMA /CALL: SAVE 2054 003416 1614 TAD I SAVES /ADDRESS 2055 003417 3017 DCA SVPNT 2056 003420 2214 ISZ SAVES /SAVES FAC IN ADDRESS, ADDRESS+1, ADDRESS+2 2057 003421 1145 TAD FAC /ORDER:WORD1 2058 003422 3417 DCA I SVPNT 2059 003423 1146 TAD FAC+1 /ORDER:WORD2 2060 003424 3417 DCA I SVPNT 2061 003425 1147 TAD FAC+2 /ORDER:WORD3 2062 003426 3417 DCA I SVPNT 2063 003427 5614 JMP I SAVES 2064 /SUBROUTINE TO FORM NEGATIVE OF ARITH1-2: DCOM 2065 003430 0000 DCOMS, 0 2066 003431 7300 CLL CLA 2067 003432 1147 TAD ARITH2 2068 003433 7041 CMA IAC 2069 003434 3147 DCA ARITH2 /-ARITH2 TO ARITH2 2070 003435 1146 TAD ARITH1 /CARRY IS IN LINK BIT 2071 003436 7040 CMA 2072 003437 7430 SZL /DO CARRY 2073 003440 7001 IAC 2074 003441 3146 DCA ARITH1 2075 003442 5630 JMP I DCOMS 2076 /SUBROUTINE TO NORMALIZE MANTISSA IN FAC: NORM 2077 /MODIFIES ARITH 1-2 (NORHI,NORLO), TEMP01(IN SHFT), TEMP02(NORCNT) 2078 /LEAVES FAC MANTISSA NORMALIZED, 2079 /SIGN OF MANTISSA IN LINK BIT, EXPONENT IN AC 2080 /TEMPORARY STORAGE ALLOCATION 2081 NORCNT=TEMP02 2082 /ARITHMETIC REGISTER ALLOCATION 2083 NORHI=FAC+1 2084 NORLO=FAC+2 2085 003443 0000 NORMS, 0 2086 003444 7300 CLL CLA 2087 003445 1070 TAD KM0027 /-23(10) 2088 003446 3162 DCA NORCNT 2089 003447 1146 NORLV, TAD NORHI 2090 003450 7104 CLL RAL 2091 003451 7520 SMA SNL /TEST FOR L,AC0 2092 003452 5265 JMP NORSH /0,0 - SHIFT IT 2093 003453 7060 CMA CML /1,1 TO 0,0 2094 003454 7730 SPA SZL CLA /TEST FOR 1,1 2095 003455 5271 JMP NOREX /0,1 OR 1,0 - DONE 2096 003456 1146 TAD NORHI /1,1 - TEST FOR 6000 2097 003457 0275 AND K1777 2098 003460 7640 SZA CLA 2099 003461 5265 JMP NORSH /NO - CONTINUE 2100 003462 1147 TAD NORLO /YES - TEST FOR 6000 0000 2101 003463 7650 SNA CLA 2102 003464 5271 JMP NOREX /YES AND L HOLD 1 FOR - 2103 003465 7301 NORSH, CLL CLA IAC 2104 003466 4472 SHFT /1 LEFT 2105 003467 2162 ISZ NORCNT /23 TIMES? 2106 003470 5247 JMP NORLV /NO - LOOK AGAIN 2107 003471 7020 NOREX, CML /23 SHIFTS IS ENOUGH - OR DONE 2108 003472 1162 TAD NORCNT 2109 003473 7041 CMA IAC /L GETS COMPLEMENTED IF=0, NORM OF 0 LEAVES 0 IN L. 2110 003474 5643 JMP I NORMS 2111 /LOCAL CONSTANT 2112 003475 1777 K1777, +1777 2113 / 2114 / 2115 / 2116 /SUBROUTINE FOR FLOATING POINT MULTIPLICATION: FMUL 2117 /CALL:FMUL/ONE ARGUMENT 2118 /ARG ADDRESS/ARG IS THE OTHER 2119 /(RETURN)/AC=0, L UNSPECIFIED 2120 /MODIFIES ARITH0-5(FAC,FOP), TEMP01-12 2121 /USES SUBROUTINES NORM,SHFT,DADD,DCOM,SAVE,LOAD 2122 /LEAVES RESULT IN FAC 2123 /TEMPORARY STORAGE ALLOCATION 2124 FMULP=TEMP10 /11 AND 12 2125 003476 0000 FMULS, 0 2126 003477 1676 TAD I FMULS 2127 003500 4744 JMS I GARGX /GET ARG AND FAC MAGNITUDE, SET SIGN 2128 003501 2276 ISZ FMULS /FIX UP RETURN ADDRESS 2129 003502 4476 SAVE 2130 003503 0170 FMULP 2131 003504 3151 DCA FOP+1 /CLEAR PRODUCT ACCUMULATION 2132 003505 3152 DCA FOP+2 2133 003506 4475 MULOOP, LOAD /SHIFT MULTIPLIER TO TEST 2134 003507 0170 FMULP /WHETHER TO INCREASE PRODUCT 2135 003510 7001 IAC /(FIRST TIME THRU IS ZERO SO WE 2136 003511 4472 SHFT /SKIP IT) 2137 003512 4476 SAVE 2138 003513 0170 FMULP 2139 003514 4475 LOAD /DECREASE POSSIBLE PRODUCT 2140 003515 0165 FARG /INCREMENT BY A FACTOR OF 2 2141 003516 7240 CLA CMA 2142 003517 4472 SHFT 2143 003520 4476 SAVE 2144 003521 0165 FARG 2145 003522 1171 TAD FMULP+1 /BIT 0 IS FLAG FOR INCREASING 2146 003523 7710 SPA CLA /PRODUCT ACCUMULATION 2147 003524 4474 DADD /BY CURRENT INCREMENT 2148 003525 2164 ISZ FCNTR /DO THIS 23 TIMES 2149 003526 5306 JMP MULOOP 2150 003527 4475 LOAD /NORMALIZE RESULT MANTISSA 2151 003530 0150 FOP 2152 003531 4243 JMS NORMS /ADJUST EXPONENT 2153 003532 7450 SNA 2154 003533 5337 JMP FMEXP /MANTISSA WAS ZERO 2155 003534 1170 TAD FMULP 2156 003535 1165 TAD FARG 2157 003536 1070 TAD KM0027 2158 003537 3145 FMEXP, DCA FAC 2159 003540 1163 TAD FLSIGN /FIX SIGN OF RESULT 2160 003541 7640 SZA CLA 2161 003542 4477 DCOM 2162 003543 5676 JMP I FMULS 2163 /LOCAL CROSSPAGE 2164 003544 3660 GARGX, GARG 2165 / 2166 / 2167 / 2168 /THIS SUBROUTINE FIXES FAC TO AC: FIX 2169 003545 0000 FIXS, 0 2170 003546 1145 TAD FAC /AC BIASES FIX 2171 003547 7550 SPA SNA /FIX OF FAC .LT. 1 GIVES 0 IN AC 2172 003550 5360 JMP FIXNG 2173 003551 1362 TAD KM14 2174 003552 7500 SMA /FIX OF .ABS. FAC .GE. 2^11; EXITS 0 IN AC 2175 003553 5360 JMP FIXNG 2176 003554 7001 IAC 2177 003555 4472 SHFT 2178 003556 1146 TAD SHFR 2179 003557 5745 JMP I FIXS 2180 003560 7300 FIXNG, CLL CLA 2181 003561 5745 JMP I FIXS 2182 /LOCAL CONSTANT 2183 003562 7764 KM14, -0014 2184 /SUBROUTINE TO FIX FAC TO DBL PREC IN FAC+1 AND FAC+2 2185 DFIXL=TEMP01 2186 003563 0000 DFIXS, 0 2187 003564 1145 TAD FAC /AC BIASES FIX 2188 003565 1070 TAD KM0027 2189 003566 4472 SHFT 2190 003567 1763 TAD I DFIXS /CALL+1 HOLDS ADDRESS OF HI ORDER FIX 2191 003570 2363 ISZ DFIXS 2192 003571 3161 DCA DFIXL 2193 003572 1146 TAD FAC+1 /STORE AT C(CALL+1) AND C(CALL+1)+1 2194 003573 3561 DCA I DFIXL 2195 003574 2161 ISZ DFIXL 2196 003575 1147 TAD FAC+2 2197 003576 3561 DCA I DFIXL 2198 003577 5763 JMP I DFIXS /EXIT TO CALL+2 2199 / 2200 / 2201 / 2202 003577 0200 *.-1 177+1 2203 /PAGE 2 OF 2 PAGE FLOATING POINT PACKAGE [SU64A] 2204 /FADD, FDIV, FLOAT 2205 /SUBROUTINE TO FLOATING ADD TO FAC: FADD 2206 /CALL: FADD 2207 /ADDRESS 2208 /MODIFIES ARITH 0-5 (FAC,FOP), TEMP01(FADSHF),TEMP02-04(ADDEND), 2209 /TEMP05-07(AUGEND) 2210 /USES SUBROUTINES: NORM, SHFT, DADD, SAVE, LOAD 2211 /RESULT IN FAC (RE-NORMALIZED),AC=0,L=U 2212 /TEMPORARY STORAGE ALLOCATION: 2213 FADSHF=TEMP01 2214 ADDEND=TEMP02 /03 AND 04 2215 AUGEND=TEMP05 /06 AND 07 2216 /ARITHMETIC REGISTER ALLOCATION 2217 BIGGER=FOP 2218 003600 0000 FADDS, 0 2219 003601 7240 CLA CMA 2220 003602 4472 SHFT /PREPARE FOR POSSIBLE DADD OVERFLOW 2221 003603 4476 SAVE /LOSES LSB OF MANTISSA 2222 003604 0162 ADDEND 2223 003605 1600 TAD I FADDS /GET ARGUMENT ADDRESS 2224 003606 3210 DCA .+2 2225 003607 4475 LOAD /ARGUMENT TO FAC 2226 003610 0000 0 2227 003611 7240 CLA CMA /SHIFT FOR POSSIBLE OVERFLOW ALSO 2228 003612 4472 SHFT 2229 003613 4476 SAVE /SUM HAS 23 BITS PRECISION 2230 003614 0165 AUGEND 2231 003615 2200 ISZ FADDS /SETUP FOR EXIT 2232 003616 1162 TAD ADDEND /COMPARE EXPONENTS 2233 003617 7041 CMA IAC /WHICH TO SHIFT (SMALLER ARGUMENT) 2234 003620 1165 TAD AUGEND /TO ALIGN BINARY POINTS 2235 003621 7510 SPA /EXP DIFFERENCE IN AC 2236 003622 5234 JMP FADADD /EXP OF AUGEND SMALLER 2237 003623 7041 CMA IAC /MAKE DIFFERENCE NEGATIVE 2238 003624 3161 DCA FADSHF /TO SHIFT RIGHT 2239 003625 4475 LOAD /AUGEND (OLD FAC) IS LARGER 2240 003626 0165 AUGEND 2241 003627 4476 SAVE 2242 003630 0150 BIGGER 2243 003631 4475 LOAD /PREPARE TO SHIFT ADDEND 2244 003632 0162 ADDEND 2245 003633 5243 JMP FADFIN 2246 / 2247 / 2248 / 2249 003634 3161 FADADD, DCA FADSHF /AUGEND (OLD FAC) IS SMALLER 2250 003635 4475 LOAD 2251 003636 0162 ADDEND 2252 003637 4476 SAVE /SAVE ADDEND AS LARGER ARGUMENT 2253 003640 0150 BIGGER 2254 003641 4475 LOAD /PREPARE TO SHIFT SMALLER ARG 2255 003642 0165 AUGEND 2256 003643 1161 FADFIN, TAD FADSHF 2257 003644 4472 SHFT /ALIGN ARGUMENTS 2258 003645 4474 DADD /ADD MANTISSAS 2259 003646 4475 LOAD /NORMALIZE RESULT 2260 003647 0150 FOP 2261 003650 4500 NORM 2262 003651 7450 SNA /0 IF MANISSAS ADDED TO 0 2263 003652 5255 JMP FADEXP /ZERO SHOWN AS 0*2^0 2264 003653 1257 TAD KM0026 /-22(10) 2265 003654 1150 TAD BIGGER /ADD +1 TO -21(10) TO LARGER EXP 2266 003655 3145 FADEXP, DCA FAC /SAVE AS NEW EXPONENT 2267 003656 5600 JMP I FADDS 2268 /LOCAL CONSTANT 2269 003657 7752 KM0026, -0026 2270 /SUBROUTINE TO INITIALIZE COUNTERS AND SWITCHES USED IN FMUL AND FDIV 2271 FLSIGN=TEMP03 2272 FCNTR=TEMP04 2273 FARG=TEMP05 /06 AND 07 2274 003660 0000 GARG, 0 2275 003661 3273 DCA LOCARG /AC HOLDS LOCATION OF ARGUMENT 2276 003662 1146 TAD FAC+1 2277 003663 7700 SMA CLA /SET FLSIGN WITH SIGN OF FAC 2278 003664 7040 CMA 2279 003665 3163 DCA FLSIGN 2280 003666 2163 ISZ FLSIGN /LEAVE FLSIGN=0 FOR +, 1 FOR - 2281 003667 4477 DCOM /GET .ABS. FAC 2282 003670 4476 SAVE 2283 003671 0165 FARG 2284 003672 4475 LOAD 2285 003673 0000 LOCARG, 0 2286 003674 1146 TAD FAC+1 /GET SIGN OF ARGUMENT 2287 003675 7710 SPA CLA 2288 003676 7240 CLA CMA 2289 003677 1163 TAD FLSIGN /+OP+=+, -OP-=+, +OP-=-, -OP+=- 2290 003700 3163 DCA FLSIGN /FLSIGN = 0 FOR +, .NE. 0 FOR - 2291 003701 1146 TAD FAC+1 /GET .ABS. ARG 2292 003702 7710 SPA CLA 2293 003703 4477 DCOM /.LT. 0: GET COMPLEMENT AND SET L=0 2294 003704 1070 TAD KM0027 /-23(10) 2295 003705 3164 DCA FCNTR 2296 003706 5660 JMP I GARG 2297 /THIS SUBROUTINE FLOATS AC TO FAC: FLOAT 2298 003707 0000 FLOATS, 0 2299 003710 3146 DCA FAC+1 2300 003711 1316 TAD KM014 /SHIFT TO GET SIGN EXTENSION 2301 003712 4472 SHFT 2302 003713 4500 NORM 2303 003714 3145 DCA FAC /NORMALIZE 2304 003715 5707 JMP I FLOATS 2305 /LOCAL CONSTANT 2306 003716 7764 KM014, -0014 2307 /SUBROUTINE TO FLOATING DIVIDE FAC BY ARGUMENT- FDIV 2308 /CALL:FDIV 2309 /ARG ADDRESS/ARG ADDRESS HOLD ARGUMENT 2310 /(RETURN)/AC=0, L UNSPECIFIED 2311 /MODIFIES ARITH0-5 (FAC,FOP), TEMP01-14, REMAINDER IN FOP 2312 /TEMPORARY STORAGE ALLOCATION 2313 DVSOR=TEMP10 /11 AND 12 2314 QUO=TEMP05 /06 AND 07 2315 003717 0000 FDIVS, 0 2316 003720 1717 TAD I FDIVS /GET ADDRESS OF ARGUMENT 2317 003721 2317 ISZ FDIVS /EXIT TO CALL+2 2318 003722 4260 JMS GARG /GET .ABS. FAC, .ABS. ARG, SIGN OF RESULT 2319 003723 4477 DCOM 2320 003724 4476 SAVE /ARG IS DIVISOR 2321 003725 0170 DVSOR 2322 003726 4475 LOAD /.ABS. FAC: DIVIDEND 2323 003727 0165 FARG 2324 003730 4476 SAVE 2325 003731 0150 FOP 2326 003732 3146 DCA FAC+1 /FAC WILL HOLD QUOTIENT 2327 003733 3147 DCA FAC+2 2328 003734 7001 DVLOOP, IAC /QUO*2 2329 003735 4472 SHFT 2330 003736 4476 SAVE 2331 003737 0165 QUO 2332 003740 4475 LOAD 2333 003741 0170 DVSOR /TRIAL SUBTRACTION 2334 003742 4474 DADD 2335 003743 1151 TAD FOP+1 /CHECK FOR - AS RESULT OF TRIAL 2336 003744 7700 SMA CLA 2337 003745 5352 JMP DVOK /POSITIVE, INCREASE QUOTIENT 2338 003746 4477 DCOM /NEGATIVE, REVERSE 2339 003747 4474 DADD 2340 003750 4477 DCOM 2341 003751 7410 SKP /BUT DONT INCREASE QUOTIENT 2342 003752 2167 DVOK, ISZ QUO+2 /MARK QUOTIENT 2343 003753 7240 CLA CMA /NEXT TIME REDUCE DIMINISHER 2344 003754 4472 SHFT 2345 003755 4476 SAVE 2346 003756 0170 DVSOR 2347 003757 4475 LOAD /MAKE READY TO MULTIPLY QUOTIENT 2348 003760 0165 QUO 2349 003761 2164 ISZ FCNTR /DO THIS 23 TIMES 2350 003762 5334 JMP DVLOOP /CONTINUE 2351 003763 4500 NORM /NORMALIZE MANTISSA 2352 003764 7450 SNA 2353 003765 5373 JMP DVEXP /0 MANTISSA IMPLIES ZERO - EXIT IMMEDIATELY 2354 003766 1150 TAD FOP /ADJUST EXPONENT 2355 003767 1257 TAD KM0026 2356 003770 7041 CMA IAC 2357 003771 1170 TAD DVSOR 2358 003772 7041 CMA IAC 2359 003773 3145 DVEXP, DCA FAC 2360 003774 1163 TAD FLSIGN /ADJUST SIGN 2361 003775 7640 SZA CLA /FLSIGN=0 FOR POSITIVE QUOTIENT 2362 003776 4477 DCOM 2363 003777 5717 JMP I FDIVS 2364 *4000 2365 004000 4003 START0, 4003 /START-1 2366 004001 0000 END0, 0 2367 004002 0000 START1, 0 2368 004003 0000 END1, 0 2369 2370 *7432 2371 /ROUTINE TO LISTEN FOR SCHMITT TRIGGER 2372 /WHEN TRIGGER FOUND A SWEEP IS MADE OF ANALOG CHANNEL 2 2373 /THIS FEATURE IS OF USE WHEN AN ANALOG 2374 /SIGNAL IS USED TO FIRE THE SCHMITT TRIGGER. 2375 007432 1121 TRIG, TAD CTRLAX 2376 007433 3742 DCA I ONCEX 2377 007434 3055 DCA BUSY /INCASE THIS IS DONE AGAIN 2378 007435 4516 JMS I TYPMX 2379 007436 7543 TRIGG /TYPE OUT THE MESSAGE 2380 007437 7305 SETCLK, CLA CLL IAC RAL /AC=2 2381 007440 6132 CLOE 2382 007441 7040 CMA 2383 007442 6130 CLZE /CLOCK ENABLES ONLY SCHMITT 2 2384 007443 7041 CMA IAC 2385 007444 6531 ADLM /LOAD MUX TO CHANNEL 3 2386 007445 1334 TAD K0200A 2387 007446 6536 ADLE /A/D START ON CLOCK OVERFLOW 2388 007447 6050 DILC /CLEAR DISPLAY 2389 007450 6532 ADST 2390 007451 6534 ADSK 2391 007452 5251 JMP .-1 2392 007453 6533 ADRB /READ THE A/D 2393 007454 1335 TAD K6677 /RANGE: -102,-2101 2394 007455 6133 CLAB 2395 007456 6135 CLSA 2396 007457 6031 KBD, KSF 2397 007460 5265 JMP S1T /NO ACTION, TRY TRIGGER 2398 007461 6036 KRB /ACTION! READ IT! 2399 007462 1066 TAD M215 /CHECK FOR 2400 007463 7650 CLA SNA 2401 007464 5521 JMP I CTRLAX /PROCEED TO MAIN PROGRAM 2402 007465 6135 S1T, CLSA /CHECK FOR SCHMITT 2403 007466 7450 SNA 2404 007467 5257 JMP KBD 2405 007470 6531 ADLM /LOAD MUX WITH 2 2406 007471 6532 ADST 2407 007472 1336 TAD K5640 2408 007473 6132 CLOE 2409 007474 7040 CMA 2410 007475 6130 CLZE 2411 007476 6534 ADSK 2412 007477 5276 JMP .-1 2413 007500 6533 ADRB 2414 007501 3341 DCA BASE /THIS IS THE BASE LINE 2415 007502 1333 TAD M2000 2416 007503 3160 DCA TEMP0 2417 007504 1337 TAD KM1000 2418 007505 7001 TSAM, IAC 2419 007506 6053 DILX 2420 007507 3340 DCA XCORD 2421 007510 6534 ADSK 2422 007511 5310 JMP .-1 2423 007512 6533 ADRB 2424 007513 6054 DILY 2425 007514 6052 DISD 2426 007515 5314 JMP .-1 2427 007516 6055 DIXY 2428 007517 7200 CLA 2429 007520 1341 TAD BASE 2430 007521 6054 DILY 2431 007522 6052 DISD 2432 007523 5322 JMP .-1 2433 007524 6055 DIXY 2434 007525 7200 CLA 2435 007526 1340 TAD XCORD 2436 007527 2160 ISZ TEMP0 2437 007530 5305 JMP TSAM 2438 007531 7200 CLA 2439 007532 5237 JMP SETCLK 2440 007533 6000 M2000, -2000 2441 007534 0200 K0200A, 200 2442 007535 6677 K6677, 6677 2443 007536 5640 K5640, 5640 2444 007537 7000 KM1000, -1000 2445 007540 0000 XCORD, 0 2446 007541 0000 BASE, 0 2447 007542 0201 ONCEX, ONCE 2448 007543 6462 TRIGG, 6462 /TR 2449 007544 5147 5147 /IG 2450 007545 4745 4745 /GE 2451 007546 6200 6200 /R END 2452 /THIS IS THE MAJOR BRANCHING LIST 2453 007547 0276 IKLIST, 276 /> 2454 007550 0274 274 /< 2455 007551 0232 232 /^Z 2456 007552 0201 201 /^A 2457 007553 0221 221 /^Q 2458 007554 0203 203 /^C 2459 007555 0220 220 /^P 2460 007556 0325 325 /U 2461 007557 0304 304 /D 2462 007560 0305 305 /E 2463 007561 0302 302 /B 2464 007562 0323 323 /S 2465 007563 0317 317 /O 2466 007564 0332 332 /Z 2467 007565 0301 301 /A 2468 007566 0303 303 /C 2469 007567 0326 326 /V 2470 007570 0225 EXTEND, 225 /^U AND LIST EXPANDER 2471 007571 0000 000 /DUMMY FOR SKIP OF ECHO 2472 007572 0320 320 /P 2473 007573 0313 313 /K 2474 007574 0324 324 /T 2475 007575 0227 227 /^W 2476 007576 0202 202 /^B 2477 007577 7556 -222 /^R 2478 / 2479 /ROUTINE TO READ AND WRITE DATA TO MASS STORAGE. 2480 2481 FIELD 1 2482 *7400 2483 2484 017400 6201 MSSTRT, CDF 0 2485 017401 1377 TAD (2001 2486 017402 3776 DCA I (7746 /SET JOB CONTROL WORD 0 2487 017403 6213 CDF CIF 10 2488 017404 4775 JMS I (7700 /CALL COMMAND DECODER. 2489 017405 0005 5 2490 017406 0000 0 2491 017407 0000 0 2492 2493 2494 017410 1374 TAD (7601 /SET FILE NAME ADD. 2495 017411 3220 DCA MSTR2 2496 017412 1773 TAD I (7600 /CREATE FILE. 2497 017413 7650 SNA CLA /TEST FOR INPUT 2498 017414 5321 JMP MSTR7 /INPUT. 2499 017415 1372 TAD (221 /MAX. SIZE OF FILE IS 9. 2500 017416 4775 JMS I (7700 /CALL FILE CREATE. 2501 017417 0003 3 2502 017420 7601 MSTR2, 7601 /RETURN START BLOCK OF FILE. 2503 017421 0000 MSTR3, 0 /RETURN -BLOCK LENGTH. 2504 017422 5315 JMP ERRO 2505 2506 017423 1371 TAD (2 /SET LOCATION 0=2 FOR TIH CODE. 2507 017424 6201 CDF 0 2508 017425 3770 DCA I (0 2509 017426 6211 CDF 10 2510 017427 1220 TAD MSTR2 /SET ARG. TO WRITE PAGE 0 2511 017430 3312 DCA MARG3 2512 017431 1367 TAD (4200 2513 017432 3310 DCA MARG1 2514 017433 3311 DCA MARG2 2515 017434 4305 JMS MSTRW /WRITE PAGE 0. 2516 2517 017435 1366 TAD (-3577 /SET UP WRITE THE DATA 2518 /WRITE FROM 3600 TO INSURE FULL BLOCK 2519 /WRITES WHEN MAX HISTOGRAM USED. 2520 017436 6201 CDF 0 /CALCULATE SIZE OF DATA. 2521 017437 1765 TAD I (END1 /WRITE FROM 4000 TO END OF DATA 2522 /END1 HAS END OF DATA ADD. 2523 017440 6211 CDF 10 2524 017441 3305 DCA MSTRW /SAVE # OF WORDS TO WRITE. 2525 017442 1305 TAD MSTRW /CALCULATE # OF 128 RECORDA TO WRITE. 2526 017443 0373 AND (7600 2527 017444 7110 CLL RAR 2528 017445 3310 DCA MARG1 2529 017446 1305 TAD MSTRW 2530 017447 0364 AND (177 /TEST FOR PARTIAL RECORD. 2531 017450 7640 SZA CLA 2532 017451 1363 TAD (100 2533 017452 1310 TAD MARG1 2534 017453 1362 TAD (4000 2535 017454 3310 DCA MARG1 2536 017455 1361 TAD (3600 2537 017456 3311 DCA MARG2 2538 017457 2312 ISZ MARG3 2539 017460 4305 JMS MSTRW /WRITE DATA. 2540 2541 017461 1310 TAD MARG1 /FIND # OF 256 BLOCKS USED. 2542 017462 7112 CLL RTR 2543 017463 7012 RTR 2544 017464 7012 RTR /SHIFT INTO BITS 7-11. 2545 017465 7010 RAR /DIVIDE BY 2. 2546 017466 0360 AND (17 /SAVE ONLY BITS 8-11. 2547 017467 7430 SZL 2548 017470 7001 IAC /ADD 1 FOR HALF A BLOCK. 2549 017471 7001 IAC /ADD 1 FOR BLOCK 1. 2550 017472 3277 DCA MARG4 2551 2552 017473 7201 CLA IAC /CLOSE FILE ON SYS: 2553 017474 4775 JMS I (7700 2554 017475 0004 4 2555 017476 7601 7601 /NAME ADDRESS. 2556 017477 0000 MARG4, 0 /NUMBER OF BLOCKS. 2557 017500 5315 JMP ERRO 2558 2559 017501 6203 MEXIT, CDF CIF 0 2560 017502 7300 CLA CLL 2561 017503 5704 JMP I .+1 2562 017504 1375 COMBK 2563 2564 MSTMP1, 2565 017505 0000 MSTRW, 0 /WRITE SUBROUTINE. 2566 017506 6202 CIF 0 2567 017507 4757 JMS I (7607 /SYS: ONLY. 2568 017510 0000 MARG1, 0 2569 017511 0000 MARG2, 0 2570 017512 0000 MARG3, 0 2571 017513 5315 JMP ERRO 2572 017514 5705 JMP I MSTRW 2573 2574 017515 6211 ERRO, CDF 10 2575 017516 4775 JMS I (7700 2576 017517 0007 7 2577 017520 0001 1 2578 2579 017521 1756 MSTR7, TAD I (7620 /READ PAGE 0 2580 017522 7450 SNA /TEST FOR NO INPUT. 2581 017523 5315 JMP ERRO 2582 017524 3312 DCA MARG3 2583 017525 1355 TAD (200 2584 017526 3310 DCA MARG1 2585 017527 3311 DCA MARG2 2586 017530 4305 JMS MSTRW /READ EXECUTE. 2587 2588 017531 2312 ISZ MARG3 /READ DATA 2589 017532 1754 TAD I (7617 /CALCULAT # 0F 128 BLOCKS TO READ. 2590 017533 7040 CMA /SET POSITIVE,DON'T ADD 20 2591 017534 0353 AND (7760 /TO SUBTRACT 1ST BLOCK. 2592 017535 7106 CLL RTL /ROTATE TO BITS 1-5. 2593 017536 7004 RAL 2594 017537 3310 DCA MARG1 2595 017540 1361 TAD (3600 2596 017541 3311 DCA MARG2 2597 017542 4305 JMS MSTRW 2598 017543 5301 JMP MEXIT 2599 2600 017553 7760 $ 017554 7617 017555 0200 017556 7620 017557 7607 017560 0017 017561 3600 017562 4000 017563 0100 017564 0177 017565 4003 017566 4201 017567 4200 017570 0000 017571 0002 017572 0221 017573 7600 017574 7601 017575 7700 017576 7746 017577 2001 ABINS 0213 unreferenced ABINW 0207 AD 2657 ADCL 6530 unreferenced ADDEND 0162 ADDISL 0136 ADDRES 2675 ADLE 6536 ADLM 6531 ADRB 6533 ADRS 6537 unreferenced ADSE 6535 unreferenced ADSK 6534 ADST 6532 AMIN 0217 unreferenced ARITH0 0145 ARITH1 0146 ARITH2 0147 ARITH3 0150 ARITH4 0151 ARITH5 0152 ASAVE 2007 ATIMUN 0223 unreferenced AUGEND 0165 AUNITS 0227 AVAIL 0367 AVAILA 0170 AXIS 1000 AXISX 0764 AXNA 1434 AXNAX 1361 AXSWT 0043 BAR 1453 BASE 7541 BEGIN 0530 BGLOOP 2400 BIGGER 0150 BIN 2140 BINS 3023 BINSTA 0052 BINSTP 2372 BINW 3020 BNSCAL 1305 BPNT 0161 BRAN 4473 BRANS 3337 BRLOOP 3343 BRX 0073 BSAVE 0162 BUFFER 0553 BUSY 0055 CBINNX 3246 CBINS 0317 CBINW 0600 CBINWX 0365 CHECK 0473 CHECKS 2722 CHEX 0762 CLAB 6133 CLBA 6136 unreferenced CLBUF 0233 CLBUFX 1370 CLCA 6137 unreferenced CLEAR 0524 CLEARL 0241 CLEN 6134 unreferenced CLOE 6132 CLSA 6135 CLSK 6131 unreferenced CLZE 6130 CMIN 3211 CMINX 0370 CNTR 0164 COMBK 1375 COMMA 0567 COMMAX 0175 COOLIT 3056 CORE 3032 CORECH 0332 CR 0420 CRLF 3063 CRLFX 0115 CRNCR 1440 CRNCRX 1362 CTIME 3222 CTIMX 0371 CTRLA 0202 CTRLAX 0121 CTRLC 1266 CTRLQ 1263 CTRLZ 1257 CTROLA 1261 CUNITS 0336 CURDIS 1037 CURSHI 2356 CURSLO 2357 CURSWT 0046 DADD 4474 DADDS 3360 DAX 0074 DBCI 6503 unreferenced DBCO 6505 unreferenced DBDI 6500 unreferenced DBEI 6501 unreferenced DBLAC 0146 DBLARG 0151 DBRI 6504 unreferenced DBRO 6507 unreferenced DBSK 6502 unreferenced DBSO 6506 unreferenced DCOM 4477 DCOMS 3430 DCX 0077 DEFLAT 3117 DEFLAX 0124 DEFLOP 3133 DEFSIN 3111 DEFSIX 0125 DELAY 0716 DELAYX 0137 DELOOP 0746 DELTA 1472 DELTAX 0771 DELTX 2371 unreferenced DFIX 4504 DFIXL 0161 DFIXS 3563 DFIXX 0104 DICD 6051 unreferenced DILC 6050 DILE 6056 unreferenced DILX 6053 DILY 6054 DIM 0045 DIRE 6057 unreferenced DISD 6052 DISL 3270 DISUP 0656 DISUPX 2144 DISUX 0363 DIVSRC 2363 DIVSRH 2360 DIXY 6055 DOUBLD 2526 DOUBLE 3000 DOUBLX 2367 DRADIX 3124 DRCURS 1046 DSUPX 1367 DUMP 2600 DUMPX 1371 DVEXP 3773 DVLOOP 3734 DVOK 3752 DVSOR 0170 ECHO 1236 ECHOX 1557 END 1770 END0 4001 END0X 0142 END1 4003 END1X 0144 ENDA 0163 ENDCUR 2354 ENDID 2632 ENDX 1553 ER1 2142 ER1X 0366 ERRO 7515 ESTOP 2123 EXPAND 1400 EXPANX 1360 EXPNTR 1501 EXTEND 7570 EXTENX 0362 EXTEX 2143 FAC 0145 FADADD 3634 FADD 4505 unreferenced FADDS 3600 FADEXP 3655 FADFIN 3643 FADSHF 0161 FARG 0165 FAX 0105 FCNTR 0164 FDIGC 0464 FDIGX 0364 FDIV 4502 FDIVS 3717 FDX 0102 FIGX 3247 FIRST 0056 FIX 4503 FIX1 0504 FIX2 0510 FIXINC 0160 FIXNG 3560 FIXS 3545 FIXSTA 1736 FIXSTX 0134 FIXX 0103 FLOAT 4506 FLOATS 3707 FLSIGN 0163 FLX 0106 FMEXP 3537 FMUL 4501 unreferenced FMULP 0170 FMULS 3476 FMX 0101 FOP 0150 FRACTN 3200 FRCOUT 2477 FRCOUX 2370 FSAM 0155 FST 2107 FSUM 3163 FTEM1A 0153 FTEM1B 0154 FXMSUM 0140 GARG 3660 GARGX 3544 GETDAT 1514 GETDAX 2555 GETDL 1613 GETDLX 0133 GETDX 0740 GETDXX 1560 GETPNT 0011 GETXX 1165 GO 0312 GTDAX 1162 HACHL 1022 HARRY 1423 HATCH 1161 HGRAM 2662 HI 2762 HIGH 3035 HIGHER 1242 HISDIS 1061 HISHI 0153 HISLO 0154 HISLP 1071 HISTA 0161 HOLD 0154 ID 3040 IDLOOP 2622 IKBRAS 1200 IKBRAX 1166 IKLIST 7547 INCB 2036 INITDL 0531 INITDS 1600 INTDLX 0127 INTDSX 0130 INTERP 2010 INTOUT 2000 INTTEM 2145 JOE 2335 JUMP 0523 K0003 1372 K0011 0061 K0014 0767 K0017 1773 K0027 1565 K0040 0062 K0050 1167 K0060 2556 K0077 0063 K0100 2707 K0200 2772 K0200A 7534 K0254 0573 K0256 2557 K0751 1561 K0777 0064 K1001 2472 K100MF 3373 unreferenced K12 3072 K15 3071 K1751 1562 K1777 3475 K1777A 0770 K4 2635 unreferenced K5640 7536 K6677 7535 K6777 0737 K7016 1174 K7027 0065 K752 1171 KALIB 2451 KALIBX 1364 KBD 7457 KBDC 2047 KDIM 0044 KDSIZE 0766 KM0026 3657 KM0027 0070 KM014 3716 KM1000 7537 KM14 3562 KMODE 0071 KMUNIT 0057 KNOB1 1426 KNOBS 1457 KNOBSX 0132 KTAD 2352 LAST 1164 LASTX 1555 LDPNT 0017 LEAD 0162 LEADER 2723 LENGTH 0036 LF 0446 LISN 3104 LISNX 0527 LOAD 4475 LOADS 3400 LOCARG 3673 LOOP2 0502 LOWER 1244 LOX 0075 LSAVE 2006 LUCY 2715 M0001 1373 M003 0461 M006 0462 M007 0463 M100 2773 M1000 1175 M144 2150 M1751 1170 M1751A 1563 M2000 7533 M215 0066 M221 2560 M256 0633 M27 1564 M271 0067 M31 1172 M752 1173 MANY 1554 MARG1 7510 MARG2 7511 MARG3 7512 MARG4 7477 MBIN 0026 MBINK 0021 MBINS 0025 MBINW 0022 MDATPN 2355 MDATX 2554 MEPOC 0024 MEPOCK 0023 MEXIT 7501 MIN 3026 MINT 0031 MINTK 0030 MLINES 0051 MODEA 2152 MODEAX 0375 MONTR 0032 MORE 0405 MPNTX 1556 MPNTXX 2375 MPOINT 0763 MSIO 0773 MSIOX 1357 MSSTRT 7400 MSTMP1 7505 unreferenced MSTR2 7420 MSTR3 7421 unreferenced MSTR7 7521 MSTRW 7505 MSUM 0041 MULOOP 3506 MUNIT 2141 MUNITX 0374 MXXX 1552 NECHO 1240 NECHOX 0122 NEG 3141 NOMORE 3156 NORCNT 0162 NOREX 3471 NORHI 0146 NORLO 0147 NORLV 3447 NORM 4500 NORMS 3443 NORSH 3465 NOTH 0421 NOURFL 2104 NOW 3051 NOX 0100 OCTIZ 1703 OCTIZL 1713 OCTIZX 0120 ON 1123 ON1 1115 ONCE 0201 ONCEX 7542 OPM 3042 ORD 0027 ORDER 0050 ORIG 1325 OTTY 3046 OUT 0165 OUTBUF 2771 OUTPUT 2733 OVFLO 1547 PANIC 1151 PANICX 1256 PERMLI 0033 PLOT 1336 PLSWT 0042 PMODE 1374 PNTS 1510 unreferenced PNTSWT 0047 PO 2710 POINT 0020 POINTA 0010 PPLOT 1130 PUNCH 2744 QUES 3017 QUIT 2442 QUO 0165 RADIX 3162 RE 0525 REASK 0437 REASKX 0123 RESTRT 1222 RETAIN 1365 RETAN 0247 RIEN 2426 ROT 2667 S1T 7465 SAFE 2151 SAVE 4476 SAVES 3414 SAX 0076 SCALDN 1273 SCALUP 1274 SCHMIT 2061 SCLDAT 1531 SCLDAX 1163 SETBRA 0562 SETCLK 7437 SETGET 2377 SETPNT 3077 SETPTX 0131 SFACTR 0037 SHCNT 0161 SHFR 0146 SHFT 4472 SHFTS 3300 SHLEFT 3325 SHRIHT 3311 SHX 0072 SILENC 2440 SINGLE 3006 SPACE 3073 SPACEX 0135 SPD 2754 SPEED 0170 SPOT 2146 SPOTER 2147 SPOTX 3245 SPT 0373 SPTX 0372 START0 4000 START1 4002 STAT 2373 STLIST 2774 STRT0X 0141 STRT1X 0143 SUM 0040 SUM1 1320 SUML 1517 SVPNT 0017 TADEND 1765 TADLP 2545 TADVAL 2541 TADVAX 2353 TCHAR 0647 TEMEND 0054 TEMP0 0160 TEMP01 0161 TEMP02 0162 TEMP03 0163 TEMP04 0164 TEMP05 0165 TEMP06 0166 TEMP07 0167 unreferenced TEMP10 0170 TEMP11 0171 unreferenced TEMP12 0172 TEMP13 0173 unreferenced TEMP14 0174 TEMSTA 0053 TIME 3233 TLOOP 0640 TMBIN 0172 TOTT 2037 TRIG 7432 TRIGG 7543 TSAM 7505 TTIN 0400 TTINX 0126 TTYBUA 0035 TTYBUF 0034 TWOKNB 1403 TWOKNX 2366 TYIN 2054 TYPA 3044 TYPAX 0117 TYPM 0634 TYPMX 0116 TYPNUM 2374 TYPNUX 2473 TYPNX 3161 TYPOUT 1366 TYPOX 2200 UNALT 1333 UNIT 0526 UNITS 3241 UNITX 1772 UNITY 2515 UNTX 0765 UP 1640 USER 1356 VALID 0513 VIEW 1444 VIEWX 1363 WAIT 0300 WAIT1 2462 XCORD 7540 XDISP 1653 XDSPX 1157 XINC 0060 XMOVE 1672 XTEMP 1667 XTEMPX 1156 YDISP 1620 YDISPX 1160 YESNO 2561 YINC 1771 YMOVE 1642 YTEMP 1637 YTEMPX 1155