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