1 / PDP-12 TANK GAME 2 3 / THIS IS A TANK GAME FOR THE PDP-12. AT THIS POINT THE ORIGINAL AUTHOR 4 / IS UNKNOWN. 5 / THE SAVE IMAGE INDICATES IT LOADS INTO LESS THAN 4K OF MEMORY. 6 7 / IF THE MOOD STRIKES, MORE WORK CAN BE DONE TO FIGURE OUT WHAT IS GOING 8 / ON IN A MORE COHERENT MANNER. 9 10 / EDITS: 11 / 30-NOV-2018 CJL 12 / INITIAL DISASSEMBLY AND CLEANUP: CHARLES LASNER 13 / MAY-2025 VRS 14 / IDENTIFIED CRUFT AND SEVERAL KEY ROUTINES AND TABLES. 15 16 / CONFIGURATION STUFF: 17 / LIKESV FORCES PDP12 AND EAE, AND TURNS ON CRUFT, SO THAT THE 18 / OUPUT WILL EXACTLY MATCH THE .SV FILE. 19 / PDP12 GENERATES CODE FOR VR12. IF ZERO, VC8E IS USED. 20 / EAE IF NON-ZERO, EAE HARDWARE IS USED INSTEAD OF 21 / SOFTWARE EMULATION. (TODO) 22 23 / THE OPTIONS ARE FAIRLY INDEPENDENT, SO IF YOU WANT TO YOU 24 / CAN REORDER THINGS TO FORCE "LIKE THE .SV, BUT WITH VC8E AND 25 / EAE EMULATION" OR WHATEVER. 26 27 LIKESV=1 28 IFNDEF LIKESV /DEFAULT TO GENERATE ORIGINAL VERSION. 29 IFNZRO LIKESV /THE .SV IS FOR PDP-12. 30 IFNZRO LIKESV /THE .SV IS FOR EAE HARDWARE. 31 32 IFNDEF PDP12 /DEFAULT TO VR-12, NOT VC8E. 33 PDP12=0 /FORCE VC8E 34 35 IFNDEF EAE /DEFAULT TO EAE EMULATION. 36 EAE=0 / FORCE EAE EMULATION 37 38 /PDP12/VR12 REQUIRES LINC SUPPORT. CHECK FOR IT. 39 IFNZRO PDP12 < 40 IFNZRO HLT-7402 41 LMODE /TRY FOR LINC MODE. 42 IFNZRO HLT /NO PDP-12 SUPPORT 43 PMODE /START IN PDP-8 MODE. 44 > 45 46 /INPUT CONVERSION WHEN NOT USING SWITCH REGISTER: 47 /RICM12 ENABLES RICM STYLE INPUTS USING SXL INSTRUCTIONS. 48 /THIS OBVIOUSLY ONLY WORKS ON A PDP-12. 49 RICM12=0 50 IFZERO PDP12 51 /SIMILARLY, M1703 PROBABLY ONLY WORKS ON A PDP-8. 52 M1703=1 53 IFNZRO PDP12 54 55 / 56 /AT MOST ONE ALTERNATE INPUT MAY BE ENABLED. 57 / 58 SUM=M1703+RICM12 59 IFNZRO SUM < 60 IFNZRO 1-SUM /PICK AT MOST ONE ALTERNATE 61 > 62 63 / NOTES TO FUTURE MAINTAINERS: 64 65 / 1) THIS IS A DISASSEMBLY OF A PARTICULARLY "DIRTY" CORE IMAGE OF THE 66 / PROGRAM. AS A RESULT LARGE AREAS OF CRUFT WHICH WERE PART OF THE 67 / SAVE IMAGE (BUT NOT PART OF THE PROGRAM) HAVE BEEN IDENTIFIED. 68 / THE "LIKESV" SYMBOL CONTROLS WHETHER THESE WORDS ARE INCLUDED. 69 / SOME WORDS DOUBTLESS REMAIN THAT SHOULD BE IDENTIFIED AS CRUFT. 70 PAGE 0 /START AT THE BEGINNING. 71 72 000000 0003 Z00, Z03 73 000001 5001 Z01, JMP . /HANG IF INTERRUPT 74 000002 1053 Z02, D53 75 000003 3033 Z03, 3033 76 000004 4500 Z04, R100 77 000005 2331 I131 78 000006 0000 Z06, 0000 79 000007 0000 Z07, 0000 80 81 *10 /GET TO AUTO-INDEX AREA. 82 83 000010 0000 Z10, 0000 84 000011 0000 Z11, 0000 85 000012 0000 Z12, 0000 86 000013 0000 Z13, 0000 87 000014 7773 Z14, 7773 88 000015 1714 Z15, 1714 89 000016 7514 Z16, 7514 90 000017 0000 Z17, 0000 91 92 *20 /GET PAST AUTO-INDEX AREA. 93 94 000020 0000 Z20, 0000 95 000021 0000 Z21, 0000 96 000022 0000 Z22, 0000 97 000023 0024 Z23, Z24 98 000024 0002 Z24, 0002 99 000025 0001 Z25, 0001 100 000026 0001 Z26, Z01 101 000027 0202 Z27, A02 /SIGNED MULTIPLY 102 000030 0234 Z30, A34 /SIGNED DIVIDE -- UNUSED? 103 000031 0260 Z31, A60 /THE MAIN DRAWING ROUTINE 104 000032 0325 Z32, A125 /COS() 105 000033 0306 Z33, A106 /SIN() 106 000034 0331 Z34, A131 107 000035 1000 Z35, D00 108 000036 0000 0000 109 000037 0000 Z37, 0000 110 000040 0034 Z40, Z34 111 000041 7610 Z41, 7610 112 000042 5046 Z42, 5046 113 000043 0002 Z43, Z02 114 000044 0034 Z44, 0034 115 000045 7777 Z45, 7777 116 000046 6203 Z46, 6203 117 000047 5450 Z47, 5450 118 000050 1255 Z50, E55 119 000051 6600 Z51, 6600 120 000052 6544 Z52, 6544 121 000053 7605 Z53, 7605 122 000054 4000 Z54, P00 123 000055 3700 Z55, O100 124 000056 2020 Z56, 2020 125 000057 0070 Z57, 0070 126 000060 0603 0603 127 000061 0600 Z61, C00 128 000062 0434 Z62, 434 129 000063 0067 0067 130 000064 6003 6003 131 000065 0244 0244 132 000066 0100 0100 133 000067 0336 0336 134 000070 0334 0334 135 000071 7001 7001 136 000072 6670 6670 137 000073 0212 A12 138 000074 0215 0215 139 000075 0403 403 140 000076 0010 Z10 141 000077 7700 Z77, 7700 142 000100 0330 Z100, A130 143 000101 0306 Z101, 0306 144 000102 0564 0564 145 000103 1745 1745 146 000104 0527 0527 147 000105 0300 Z105, 0300 148 000106 1671 1671 149 000107 7404 7404 150 000110 7600 Z110, 7600 151 000111 7403 Z111, 7403 152 000112 7402 Z112, 7402 153 000113 7401 7401 154 000114 1610 1610 155 000115 7400 Z115, 7400 156 000116 0526 Z116, 0526 157 000117 0200 Z117, START 158 000120 0007 Z120, Z07 159 000121 7757 Z121, 7757 160 000122 7764 Z122, 7764 161 000123 7762 Z123, 7762 162 000124 0033 Z124, Z33 163 000125 7761 Z125, 7761 164 000126 7760 7760 165 000127 7756 7756 166 000130 7775 7775 167 000131 7745 7745 168 000132 1665 1665 169 000133 1000 1000 170 000134 7744 Z134, 7744 171 000135 1113 Z135, D113 172 000136 0370 Z136, 370 173 000137 0120 Z137, Z120 174 000140 4535 Z140, R134+1 175 000141 7700 Z141, 7700 176 000142 4157 Z142, 4157 177 000143 7757 Z143, 7757 178 000144 7740 Z144, 7740 179 000145 2613 Z145, K13 180 000146 1200 Z146, E00 181 000147 7776 Z147, 7776 182 000150 0002 Z150, Z02 183 000151 7770 Z151, 7770 184 000152 0600 Z152, C00 185 000153 3000 Z153, L00 186 000154 2636 Z154, K36 187 000155 7777 Z155, 7777 188 000156 4534 Z156, R134 189 000157 7612 Z157, 7612 190 000160 4156 Z160, 4156 191 000161 7622 Z161, 7622 192 000162 3400 Z162, N00 193 000163 0230 Z163, 0230 194 000164 0077 Z164, 0077 195 000165 2623 Z165, 2623 196 000166 2600 Z166, K00 197 000167 2000 Z167, H00 198 PAGE /GET TO STARTING PAGE. 199 200 / STUB TO ALLOW THE USUAL STARTING ADDRESS. 201 202 000200 5601 START, JMP I .+1 /GO TO THE REAL INTERNAL 203 000201 1400 F00 /STARTING ADDRESS. 204 205 000202 0000 A02, .-. /SIGNED MULTIPLY USING EAE 206 000203 7100 CLL /CLEAR SIGN 207 000204 7510 SPA /POSITIVE? 208 000205 7061 CIA CML /NO, SET LINK, TAKE ABS() 209 000206 4526 MQL /LOAD INTO MQ 210 000207 1602 TAD I A02 /GET ARGUMENT 211 000210 2202 ISZ A02 /SKIP ARG ON RETURN 212 000211 7510 SPA /ARG POSITIVE? 213 000212 7061 A12, CIA CML /NO, ADJUST LINK, TAKE ABS() 214 000213 3217 DCA A17 /STORE MULTIPLICAND 215 000214 7044 CMA RAL /GET SIGN OF RESULT 216 000215 3233 DCA A33 /SAVE FOR LATER 217 000216 4530 MUY /MULTIPLY MQ 218 000217 0000 A17, 0000 /BY THE MULTIPLICAND 219 000220 4531 SHL /DOUBLE RESULT 220 000221 0000 0000 221 000222 3217 DCA A17 /STORE RESULT FOR A MOMENT 222 000223 4532 A23, MQA /GET LOW RESULT 223 000224 7710 SPA CLA /WAS IT POSITIVE? 224 000225 7001 IAC /NO, ADD ONE 225 000226 1217 TAD A17 /TO HIGH RESULT 226 000227 2233 ISZ A33 /NEED TO NEGATE? 227 000230 5602 JMP I A02 /NO, JUST RETURN 228 000231 7041 CIA /NEGATE 229 000232 5602 JMP I A02 /RETURN 230 000233 0000 A33, .-. /SIGN OF MULTIPLY RESULT 231 232 000234 0000 A34, .-. /SIGNED DIVIDE USING EAE 233 000235 7100 CLL /SET UP RESULT SIGN 234 000236 7510 SPA /POSITIVE 235 000237 7061 CIA CML /NO, REMEMBER SIGN AND NEGATE 236 000240 4526 MQL /SAVE IN MQ 237 000241 7044 CMA RAL /GET RESULT SIGN 238 000242 3233 DCA A33 /SAVE IT 239 000243 1634 TAD I A34 /GET OPERAND 240 000244 2234 ISZ A34 /SKIP OPERAND ON RETURN 241 000245 7450 SNA /OPERAND ZERO? 242 000246 5634 JMP I A34 /YES, ERROR RETURN 243 000247 2234 ISZ A34 /NO, SET FOR NON-ERROR RETURN 244 000250 3252 DCA A52 /SAVE OPERAND 245 000251 4527 DVI /DO THE DIVIDE 246 000252 0000 A52, 0000 247 000253 7732 CLA MQA /GET RESULT 248 000254 2233 ISZ A33 /NEED TO NEGATE? 249 000255 5634 JMP I A34 /NO, JUST RETURN 250 000256 7041 CIA /YES, DO IT 251 000257 5634 JMP I A34 /RETURN 252 253 /THIS SUBROUTINE DISPLAYS POINTS STARTING AT AC. 254 /UNTIL THE ARGUMENT SIZED BUFFER IS EXHAUSTED. 255 000260 0000 A60, 0000 256 000261 3012 DCA Z12 /STORE PIXEL POINTER 257 000262 1660 TAD I A60 /GET ARGUMENT 258 000263 2260 ISZ A60 /SKIP ARG WHEN RETURN 259 000264 7450 SNA /DOING 0? 260 000265 5660 JMP I A60 /YES, JUST RETURN. 261 000266 7130 STL RAR /NO, ARITH. SHIFT RIGHT 262 000267 3020 DCA Z20 /SET UP COUNTER 263 000270 6201 CDF 00 /FETCH POINTS FROM FIELD 0 264 000271 6002 IOF 265 000272 1412 A72, TAD I Z12 /GET X COORD 266 000273 1377 TAD (400 /OFFSET IT 267 000274 3007 DCA Z07 /PREPARE TO DISPLAY 268 000275 1412 TAD I Z12 /GET Y COORD 269 IFNZRO PDP12 < 270 LINC 271 LMODE 272 DIS 7 /INTENSIFY THE POINT AT ([7], AC). 273 PDP 274 PMODE 275 > 276 IFZERO PDP12 < 277 000276 6141 6141 278 000277 0147 0147 279 000300 0002 0002 280 > 281 000301 7300 CLA CLL 282 000302 2020 ISZ Z20 /DONE ALL POINTS? 283 000303 5272 JMP A72 /NO, GO AGAIN 284 000304 6201 CDF 00 /YES, RETURN 285 000305 5660 JMP I A60 /TO CALLER 286 287 / 288 /THESE TABLE LOOKUPS COMPUTE SIN() AND COS() 289 /THE UNIT CIRCLE IS CARVED INTO 256 PIECES. 290 /THE ARGUMENT IS AN ANGLE BETWEEN 0 AND 255. 291 /THE RESULT IS BETWEEN 0000 AND 3777. 292 / 293 000306 0000 A106, .-. /SIN() 294 000307 3021 DCA Z21 /STORE ARGUMENT 295 000310 1021 TAD Z21 296 000311 0376 AND (177 /MASK WITH 177 297 000312 1377 TAD (B00 /ADD TABLE BASE (0400) 298 000313 3022 DCA Z22 /STORE POINTER 299 000314 1021 TAD Z21 /GET ARGUMENT 300 000315 0375 AND (200 /CHECK 0200 301 000316 7100 CLL /CLEAR NEGATION FLAG 302 000317 7640 SZA CLA /0200 SET? 303 000320 7120 STL /YES, SET FLAG 304 000321 1422 TAD I Z22 /FETCH VIA POINTER 305 000322 7430 SZL /NEED TO NEGATE? 306 000323 7041 CIA /YES, DO IT 307 000324 5706 JMP I A106 /RETURN TO CALLER 308 309 000325 0000 A125, .-. /COS() 310 000326 1374 TAD (100 /ADD 0100 (PI/2) 311 000327 4306 JMS A106 /LOOK UP RESULT 312 000330 5725 A130, JMP I A125 /RETURN 313 314 000331 0000 A131, 0000 315 000332 1355 TAD A155 /ADD PREVIOUS 316 000333 4526 MQL /LOAD INTO MQ 317 000334 4530 MUY /MULTIPLY 318 000335 4003 4003 319 000336 3353 DCA A153 /STORE 320 000337 4532 MQA /GET OTHER HALF 321 000340 3355 DCA A155 /STORE FOR ADD 322 000341 1354 TAD A154 /GET ?? 323 000342 4526 MQL /LOAD INTO MQ 324 000343 4530 MUY /MULTIPLY 325 000344 4003 4003 326 000345 7200 CLA /TOSS 327 000346 4532 MQA /GET OTHER HALF 328 000347 1353 TAD A153 /ADD FIRST PRODUCT 329 000350 3354 DCA A154 /STORE ?? 330 000351 1354 TAD A154 /RETURN ?? 331 000352 5731 JMP I A131 332 000353 0000 A153, 0 333 000354 0000 A154, 0 334 000355 0001 A155, 1 335 336 000356 0000 A156, 0000 337 000357 7100 CLL /SET UP SIGN 338 000360 0373 AND (7770 /LOSE LOW BITS 339 000361 7510 SPA /NEGATIVE? 340 000362 7121 STL IAC /YES, SET FLAG AND ROUND UP 341 000363 7012 RTR /DIVIDE BY FOUR? 342 000364 7510 SPA /NEGATIVE? 343 000365 7120 STL /YES, SET FLAG 344 000366 7010 RAR /DIVIDE BY TWO 345 000367 5756 JMP I A156 /RETURN TO CALLER 346 347 IFNZRO LIKESV < 348 / THE FOLLOWING ARE LIKELY CRUFT. 349 000370 1413 1413; 7450; 5767 000371 7450 000372 5767 350 > 351 000373 7770 PAGE /NEXT PAGE. 000374 0100 000375 0200 000376 0177 000377 0400 352 / 353 /THIS IS THE TABLE USED BY FIXED-POINT SIN() AND COS(). 354 /THE UNIT CIRCLE IS DIVIDED INTO 256 EQUAL ANGLES. 355 /THE POSITIVE PORTION OF SIN(X) IS REPRESENTED HERE IN 356 /BINARY, BETWEEN 0 AND 3777. 357 / 358 000400 0000 B00, 0000; 0062; 0145; 0227; 0311; 0373; 0455; 0536 000401 0062 000402 0145 000403 0227 000404 0311 000405 0373 000406 0455 000407 0536 359 000410 0620 0620; 0701; 0762; 1042; 1123; 1203; 1262; 1341 000411 0701 000412 0762 000413 1042 000414 1123 000415 1203 000416 1262 000417 1341 360 000420 1420 1420; 1476; 1554; 1631; 1706; 1762; 2035; 2110 000421 1476 000422 1554 000423 1631 000424 1706 000425 1762 000426 2035 000427 2110 361 000430 2162 2162; 2233; 2304; 2354; 2423; 2472; 2537; 2604 000431 2233 000432 2304 000433 2354 000434 2423 000435 2472 000436 2537 000437 2604 362 000440 2650 2650; 2713; 2756; 3017; 3057; 3117; 3155; 3213 000441 2713 000442 2756 000443 3017 000444 3057 000445 3117 000446 3155 000447 3213 363 000450 3247 3247; 3302; 3335; 3366; 3416; 3445; 3473; 3520 000451 3302 000452 3335 000453 3366 000454 3416 000455 3445 000456 3473 000457 3520 364 000460 3544 3544; 3567; 3610; 3631; 3650; 3666; 3703; 3716 000461 3567 000462 3610 000463 3631 000464 3650 000465 3666 000466 3703 000467 3716 365 000470 3731 3731; 3742; 3752; 3761; 3766; 3773; 3776; 3777 000471 3742 000472 3752 000473 3761 000474 3766 000475 3773 000476 3776 000477 3777 366 000500 3777 3777; 3777; 3776; 3773; 3766; 3761; 3752; 3742 000501 3777 000502 3776 000503 3773 000504 3766 000505 3761 000506 3752 000507 3742 367 000510 3731 3731; 3716; 3703; 3666; 3650; 3631; 3610; 3567 000511 3716 000512 3703 000513 3666 000514 3650 000515 3631 000516 3610 000517 3567 368 000520 3544 3544; 3520; 3473; 3445; 3416; 3366; 3335; 3302 000521 3520 000522 3473 000523 3445 000524 3416 000525 3366 000526 3335 000527 3302 369 000530 3247 3247; 3213; 3155; 3117; 3057; 3017; 2756; 2713 000531 3213 000532 3155 000533 3117 000534 3057 000535 3017 000536 2756 000537 2713 370 000540 2650 2650; 2604; 2537; 2472; 2423; 2354; 2304; 2233 000541 2604 000542 2537 000543 2472 000544 2423 000545 2354 000546 2304 000547 2233 371 000550 2162 2162; 2110; 2035; 1762; 1706; 1631; 1554; 1476 000551 2110 000552 2035 000553 1762 000554 1706 000555 1631 000556 1554 000557 1476 372 000560 1420 1420; 1341; 1262; 1203; 1123; 1042; 0762; 0701 000561 1341 000562 1262 000563 1203 000564 1123 000565 1042 000566 0762 000567 0701 373 000570 0620 0620; 0536; 0455; 0373; 0311; 0227; 0145; 0062 000571 0536 000572 0455 000573 0373 000574 0311 000575 0227 000576 0145 000577 0062 374 375 PAGE /NEXT PAGE. 376 /THIS SURE DOES A LOT OF SOMETHING. THE SIN() AND 377 /COS() CALLS SUGGEST IT HAS SOMETHING TO DO WITH 378 /TANK MOVEMENT OR ROTATION. 379 000600 0000 C00, 0000 380 000601 3353 DCA C153 /SAVE ARG 381 000602 1353 TAD C153 /SAVE ARG+1 382 000603 7001 IAC 383 000604 3357 DCA C157 384 000605 1357 TAD C157 /ARG+1 385 000606 1377 TAD (3 /SAVE ARG+4 386 000607 3360 DCA C160 387 000610 1360 TAD C160 /ARG+4 388 000611 1377 TAD (3 /SAVE ARG+7 389 000612 3356 DCA C156 390 000613 1356 TAD C156 /ARG+7 391 000614 1376 TAD (2 /SAVE ARG+9 392 000615 3351 DCA C151 393 000616 1351 TAD C151 /ARG+9 394 000617 1377 TAD (3 /SAVE ARG+12 395 000620 3352 C20, DCA C152 396 000621 1352 TAD C152 /ARG+12 397 000622 7001 IAC /SAVE ARG+13 398 000623 3354 DCA C154 399 000624 1752 TAD I C152 /GET FROM ARG+12 400 000625 3352 DCA C152 /SAVE IT 401 000626 1600 TAD I C00 /GET OTHER ARG 402 000627 2200 ISZ C00 /BUMP FOR RETURN 403 000630 7450 SNA /IS IT ZERO? 404 000631 5305 JMP C105 /YES, GO DEAL 405 000632 7200 C32, CLA /CLEAR AC 406 000633 1756 TAD I C156 /GET FROM ARG+7 407 000634 7450 SNA /ZERO? 408 000635 5600 JMP I C00 /YES, RETURN 409 000636 7001 IAC /NO, INCREMENT 410 000637 7450 SNA /ZERO NOW? 411 000640 5300 JMP C100 /YES, GO DEAL 412 000641 3756 DCA I C156 /UPDATE ARG+7 413 000642 1757 TAD I C157 /GET FROM ARG+1 414 000643 7041 CIA /SUBTRACT FROM 415 000644 1760 TAD I C160 /ARG+4 416 000645 7001 IAC /INCREMENT 417 000646 3350 DCA C150 /STORE A[4]-A[1]+1 418 000647 1754 TAD I C154 /GET A[13] 419 000650 1751 TAD I C151 /A[13]+A[9] 420 000651 3754 DCA I C154 /STORE IN A[13] 421 000652 1754 TAD I C154 /GET NEW A[13] 422 000653 4577 JMS I [A156 /??? 423 000654 3750 DCA I C150 /STORE WITH COMPUTED POINTER 424 000655 1750 TAD I C150 /GET IT BACK 425 000656 4526 MQL /SAVE IN MQ 426 000657 2354 ISZ C154 /BUMP A[13] POINTER 427 000660 2350 ISZ C150 /BUMP STORE POINTER 428 000661 2351 ISZ C151 /BUMP A[9] POINTER 429 000662 1754 TAD I C154 /A[14] 430 000663 1751 TAD I C151 /A[14]+A[10] 431 000664 3754 DCA I C154 /STORE NEW A[14] 432 000665 1754 TAD I C154 /GET IT BACK 433 000666 4577 JMS I [A156 /??? 434 000667 3750 DCA I C150 /SAVE WITH STORE POINTER 435 000670 1750 TAD I C150 /GET IT BACK 436 000671 7521 SWP /SWAP WITH MQ 437 000672 2350 ISZ C150 /BUMP STORE POINTER 438 000673 3750 DCA I C150 /STORE NEW VALUE 439 000674 2350 ISZ C150 /BUMP STORE POINTER 440 000675 4532 MQA /GET MQ VALUE 441 000676 3750 DCA I C150 /STORE NEW VALUE 442 000677 5600 JMP I C00 /RETURN TO CALLER 443 444 000700 2351 C100, ISZ C151 /BUMP A[9] POINTER 445 000701 2351 ISZ C151 /TWICE 446 000702 3751 DCA I C151 /A[10] = 0 447 000703 3756 DCA I C156 /A[1] = 0 448 000704 5600 JMP I C00 /RETURN TO CALLER 449 450 000705 1756 C105, TAD I C156 /GET A[1] 451 000706 7440 SZA /ZERO? 452 000707 5232 JMP C32 /NO, GO RESUME ABOVE 453 000710 1753 TAD I C153 /GET A[0] 454 000711 4433 JMS I Z33 /SIN() 455 000712 7041 CIA /NEGATE 456 000713 3316 DCA C116 /SAVE AS MULTIPLICAND 457 000714 1355 TAD C155 /GET 65 458 000715 4427 JMS I Z27 /MULTIPLY 459 000716 0000 C116, 0000 /BY -SIN(A[0]) 460 000717 3751 DCA I C151 /STORE IN A[9] 461 000720 2351 ISZ C151 /BUMP A[9] POINTER 462 000721 1753 TAD I C153 /GET A[0] 463 000722 4432 JMS I Z32 /COS() 464 000723 3326 DCA C126 /SAVE AS MULTIPLICAND 465 000724 1355 TAD C155 /GET 65 466 000725 4427 JMS I Z27 /MULTIPLY 467 000726 0000 C126, 0000 /BY COS(A[0]) 468 000727 3751 DCA I C151 /STORE IN A[10] 469 000730 2351 ISZ C151 /BUMP POINTER 470 000731 1375 TAD (-4 /STORE -4 471 000732 3751 DCA I C151 /IN A[11] 472 000733 1374 TAD (-70 /STORE -70 473 000734 3756 DCA I C156 /STORE AS A[1] 474 000735 1752 TAD I C152 /GET A[12] 475 000736 7006 RTL /ROTATE 3 LEFT 476 000737 7004 RAL 477 000740 3754 DCA I C154 /STORE AS A[13] 478 000741 2352 ISZ C152 /BUMP A[12] POINTER 479 000742 2354 ISZ C154 /BUMP A[13] POINTER 480 000743 1752 TAD I C152 /GET NEW A[12] 481 000744 7006 RTL /ROTATE 3 LEFT 482 000745 7004 RAL 483 000746 3754 DCA I C154 /STORE NEW A[13] 484 000747 5232 JMP C32 /GO RESUME ABOVE 485 000750 0000 C150, 0000 486 000751 0000 C151, 0000 487 000752 0000 C152, 0000 488 000753 0000 C153, 0000 489 000754 0000 C154, 0000 490 000755 0065 C155, 65 491 000756 0000 C156, 0000 492 000757 0000 C157, 0000 493 000760 0000 C160, 0000 494 495 IFNZRO LIKESV < 496 /PROBABLY CRUFT 497 000761 4566 4566; 5756; 0077; 0037; 7477; 7540; 0777 000762 5756 000763 0077 000764 0037 000765 7477 000766 7540 000767 0777 498 000770 0330 0330; 7607; 0200; 7746 000771 7607 000772 0200 000773 7746 499 > 500 000774 7710 PAGE /NEXT PAGE. 000775 7774 000776 0002 000777 0003 501 001000 0000 D00, 0000 502 001001 3322 DCA D122 503 001002 1722 TAD I D122 504 001003 2322 ISZ D122 505 001004 3316 DCA D116 506 001005 1316 TAD D116 507 001006 4433 JMS I Z33 /SIN() 508 001007 3272 DCA D72 509 001010 1272 TAD D72 510 001011 3302 DCA D102 511 001012 1316 TAD D116 512 001013 4432 JMS I Z32 /COS() 513 001014 3265 DCA D65 514 001015 1265 TAD D65 515 001016 3306 DCA D106 516 001017 1722 TAD I D122 517 001020 7120 STL 518 001021 7010 RAR 519 001022 3315 DCA D115 520 001023 2322 ISZ D122 521 001024 1722 TAD I D122 522 001025 7100 CLL 523 001026 0377 AND (7774 524 001027 7510 SPA 525 001030 7121 STL IAC 526 001031 7012 RTR 527 001032 7510 SPA 528 001033 7120 STL 529 001034 7010 RAR 530 001035 3320 DCA D120 531 001036 2322 ISZ D122 532 001037 1722 TAD I D122 533 001040 7100 CLL 534 001041 0377 AND (7774 535 001042 7510 SPA 536 001043 7121 STL IAC 537 001044 7012 RTR 538 001045 7510 SPA 539 001046 7120 STL 540 001047 7010 RAR 541 001050 3321 DCA D121 542 001051 2322 ISZ D122 543 001052 1722 TAD I D122 544 001053 3324 D53, DCA D124 545 001054 2322 ISZ D122 546 001055 1722 TAD I D122 547 001056 3323 DCA D123 548 001057 2323 D57, ISZ D123 549 001060 2324 ISZ D124 550 001061 1723 TAD I D123 551 001062 3317 DCA D117 552 001063 1317 TAD D117 553 001064 4427 JMS I Z27 /MULTIPLY 554 001065 0000 D65, 0000 555 001066 3316 DCA D116 556 001067 2323 ISZ D123 557 001070 1723 TAD I D123 558 001071 4427 JMS I Z27 /MULTIPLY 559 001072 0000 D72, 0000 560 001073 7041 CIA 561 001074 1316 TAD D116 562 001075 1320 TAD D120 563 001076 3724 DCA I D124 564 001077 2324 ISZ D124 565 001100 1317 TAD D117 566 001101 4427 JMS I Z27 /MULTIPLY 567 001102 0000 D102, 0000 568 001103 3316 DCA D116 569 001104 1723 TAD I D123 570 001105 4427 JMS I Z27 /MULTIPLY 571 001106 0000 D106, 0000 572 001107 1316 TAD D116 573 001110 1321 TAD D121 574 001111 3724 DCA I D124 575 001112 2315 ISZ D115 576 001113 5257 D113, JMP D57 577 001114 5600 JMP I D00 578 579 001115 0000 D115, 0000 580 001116 0000 D116, 0000 581 001117 0000 D117, 0000 582 001120 0000 D120, 0000 583 001121 0000 D121, 0000 584 001122 0000 D122, 0000 585 001123 0000 D123, 0000 586 001124 0000 D124, 0000 587 588 IFNZRO LIKESV < 589 /UNREACHABLE? CRUFT? 590 001125 1042 TAD Z42 591 001126 3021 DCA Z21 592 001127 5312 JMP 1112 593 001130 1040 TAD Z40 594 001131 0120 AND Z120 595 001132 7106 CLL RTL 596 001133 7004 RAL 597 001134 1361 TAD D161 598 001135 3566 DCA I Z166 599 001136 1021 TAD Z21 600 001137 5740 JMP I .+1 601 001140 0616 0616 602 001141 0000 D141, .-. 603 001142 1021 TAD Z21 /GET LOW WORD 604 001143 7104 CLL RAL /SHIFT LEFT 605 001144 3021 DCA Z21 606 001145 1040 TAD Z40 /GET HIGH WORD 607 001146 7004 RAL /SHIFT LEFT 608 001147 3040 DCA Z40 609 001150 5741 JMP I D141 /RETURN TO CALLER 610 /UNREACHABLE? CRUFT? 611 001151 1154 TAD Z154 /SET UP AUTOINDEX 612 001152 3014 DCA Z14 613 001153 1125 TAD Z125 /SET UP COUNT 614 001154 3041 DCA Z41 615 001155 6211 CDF 10 616 001156 3414 DCA I Z14 /ZERO SOME WORDS 617 001157 2041 ISZ Z41 618 001160 5356 JMP .-2 619 001161 6203 D161, CIF CDF 00 620 001162 5475 JMP I 75 621 /UNREACHABLE? CRUFT? 622 001163 6211 CDF 10 623 001164 3441 DCA I Z41 624 001165 5361 JMP D161 625 /PROBABLY CRUFT 626 001166 1253 1253; 1074 001167 1074 627 001170 3034 3034; 4776; 1073; 4423; 5766; 1546; 1262 001171 4776 001172 1073 001173 4423 001174 5766 001175 1546 001176 1262 628 > 629 001177 7774 PAGE /NEXT PAGE. 630 001200 0000 E00, 0000 631 001201 3364 DCA E164 632 001202 1377 TAD (6 633 001203 1364 TAD E164 634 001204 3356 DCA E156 635 001205 1376 TAD (2 636 001206 1364 TAD E164 637 001207 3360 DCA E160 638 001210 1375 TAD (3 639 001211 1364 TAD E164 640 001212 3361 DCA E161 641 001213 1374 TAD (10 642 001214 1364 TAD E164 643 001215 3362 DCA E162 644 001216 1762 TAD I E162 645 001217 7012 RTR 646 001220 7420 SNL 647 001221 5341 JMP E141 648 001222 7010 RAR 649 001223 7420 SNL 650 001224 5277 JMP E77 651 001225 7200 CLA 652 001226 1762 TAD I E162 653 001227 7012 RTR 654 001230 7012 RTR 655 001231 7200 CLA 656 001232 1024 TAD Z24 657 001233 7430 SZL 658 001234 7041 CIA 659 001235 1756 TAD I E156 660 001236 3363 DCA E163 661 001237 1363 TAD E163 662 001240 7500 SMA 663 001241 7041 CIA 664 001242 3357 DCA E157 665 001243 1762 TAD I E162 666 001244 0373 AND (20 667 001245 7650 SNA CLA 668 001246 1023 TAD Z23 669 001247 1357 TAD E157 670 001250 1023 TAD Z23 671 001251 7510 SPA 672 001252 5345 JMP E145 673 001253 7200 CLA 674 001254 1363 TAD E163 675 001255 3756 E55, DCA I E156 676 001256 5277 JMP E77 677 001257 7200 E57, CLA 678 001260 1756 TAD I E156 679 001261 7500 SMA 680 001262 7041 CIA 681 001263 1025 TAD Z25 682 001264 7500 SMA 683 001265 5327 JMP E127 684 001266 7200 CLA 685 001267 1756 TAD I E156 686 001270 7004 RAL 687 001271 7200 CLA 688 001272 1026 TAD Z26 689 001273 7420 SNL 690 001274 7041 CIA 691 001275 1756 TAD I E156 692 001276 3756 DCA I E156 693 001277 7200 E77, CLA 694 001300 1764 TAD I E164 695 001301 4432 JMS I Z32 /COS() 696 001302 3305 DCA E105 697 001303 1756 TAD I E156 698 001304 4427 JMS I Z27 /MULTIPLY 699 001305 0000 E105, 0000 700 001306 7100 CLL 701 001307 1761 TAD I E161 702 001310 3761 DCA I E161 703 001311 1764 TAD I E164 704 001312 4433 JMS I Z33 /SIN() 705 001313 7041 CIA 706 001314 3317 DCA E117 707 001315 1756 TAD I E156 708 001316 4427 JMS I Z27 /MULTIPLY 709 001317 0000 E117, 0000 710 001320 7100 CLL 711 001321 1760 TAD I E160 712 001322 3760 DCA I E160 713 001323 7200 E123, CLA 714 001324 1364 TAD E164 715 001325 4772 JMS I (D00 /NOT Z35? 716 001326 5600 JMP I E00 717 001327 7200 E127, CLA 718 001330 3756 DCA I E156 719 001331 1762 TAD I E162 720 001332 7012 RTR 721 001333 7430 SZL 722 001334 5323 JMP E123 723 001335 7010 RAR 724 001336 7430 SZL 725 001337 5323 JMP E123 726 001340 5323 JMP E123 727 728 001341 7010 E141, RAR 729 001342 7420 SNL 730 001343 5257 E143, JMP E57 731 001344 5277 JMP E77 732 001345 1756 E145, TAD I E156 733 001346 7004 RAL 734 001347 7200 CLA 735 001350 1024 TAD Z24 736 001351 7420 SNL 737 001352 7041 CIA 738 001353 1756 TAD I E156 739 001354 3756 DCA I E156 740 001355 5277 JMP E77 741 742 001356 0000 E156, 0000 743 001357 0000 E157, 0000 744 001360 0000 E160, 0000 745 001361 0000 E161, 0000 746 001362 0000 E162, 0000 747 001363 0000 E163, 0000 748 001364 0000 E164, 0000 749 750 IFNZRO LIKESV < 751 /LIKELY CRUFT TO END OF PAGE 752 001365 3375 DCA (3 753 001366 5372 JMP (D00 754 001367 1031 TAD Z31 755 001370 7650 SNA CLA 756 001371 5462 JMP I Z62 757 > 758 001372 1000 PAGE /NEXT PAGE. 001373 0020 001374 0010 001375 0003 001376 0002 001377 0006 759 / 760 /THE CODE AT 0200 JUMPS HERE! 761 001400 1377 F00, TAD (7400 /COMPUTE 07600 AWKWARDLY 762 001401 7130 STL RAR 763 001402 3256 DCA F56 /SET UP COUNT FOR COPY 764 001403 1376 TAD (S134 /SET UP SOURCE POINTER 765 001404 3257 DCA F57 766 001405 1375 TAD (U134 /SET UP DEST POINTER 767 001406 3260 DCA F60 768 001407 1657 F07, TAD I F57 /GET A WORD 769 001410 3660 F10, DCA I F60 /MAKE A COPY 770 001411 2260 ISZ F60 /BUMP TO POINTER 771 001412 2257 ISZ F57 /BUMP FROM POINTER 772 001413 1657 TAD I F57 /GET NEXT WORD 773 001414 1377 TAD (7400 /NEGATE HIGH BITS 774 001415 7041 CIA 775 001416 3660 DCA I F60 /STORE A WORD 776 001417 2260 ISZ F60 /BUMP TO 777 001420 2257 ISZ F57 /BUMP FROM 778 001421 2256 ISZ F56 /BUMP COUNT 779 001422 5207 JMP F07 /LOOP UNTIL DONE 780 001423 1376 TAD (S134 /RESET SOURCE POINTER 781 001424 3257 DCA F57 782 001425 1377 TAD (7400 /RESET COUNTER 783 001426 7104 CLL RAL /TO 7200 784 001427 3256 DCA F56 785 001430 1657 F30, TAD I F57 /GET A WORD 786 001431 7041 CIA /NEGATE IT 787 001432 3660 DCA I F60 /STORE 788 001433 2257 ISZ F57 /BUMP "FROM" 789 001434 2260 ISZ F60 /BUMP "TO" 790 001435 2256 ISZ F56 /BUMP COUNT 791 001436 5230 JMP F30 /LOOP UNTIL DONE 792 001437 1176 TAD [6745 /RESET POINTER 793 001440 3257 DCA F57 794 001441 1374 TAD (7501 /INIT COUNT 795 001442 3255 DCA F55 796 001443 1373 TAD (6571 /??? 797 001444 4434 F44, JMS I Z34 /CALL A131 (RAND()?) 798 001445 0372 AND (4007 /MASK RESULT 799 001446 7510 SPA /NEGATIVE? 800 001447 1371 TAD (3770 /YES, ADD ??? 801 001450 3657 F50, DCA I F57 /STORE USING POINTER 802 001451 2257 ISZ F57 /BUMP POINTER 803 001452 2255 ISZ F55 /BUMP COUNT 804 001453 5244 JMP F44 /LOOP UNTIL DONE 805 001454 5770 JMP I (G00 /PROCEED TO G00 806 807 001455 0000 F55, 0000 808 001456 0000 F56, 0000 809 001457 0000 F57, 0000 810 001460 0000 F60, 0000 811 812 813 001461 0000 F61, 0000 814 001462 1575 TAD I [K25 815 001463 7041 CIA 816 001464 1574 TAD I [K02 817 001465 7710 SPA CLA 818 001466 5273 JMP F73 819 001467 1173 TAD [Z04 820 001470 1574 TAD I [K02 821 001471 3574 DCA I [K02 822 001472 5276 JMP F76 823 001473 1173 F73, TAD [Z04 824 001474 1575 TAD I [K25 825 001475 3575 DCA I [K25 826 001476 1572 F76, TAD I [K26 827 001477 7041 CIA 828 001500 1571 TAD I [K03 829 001501 7700 SMA CLA 830 001502 5307 JMP F107 831 001503 1173 TAD [Z04 832 001504 1572 TAD I [K26 833 001505 3572 DCA I [K26 834 001506 5661 JMP I F61 835 001507 1173 F107, TAD [Z04 836 001510 1571 TAD I [K03 837 001511 3571 DCA I [K03 838 001512 5661 JMP I F61 839 /UNREACHABLE? 840 001513 7130 STL RAR 841 001514 3356 DCA F156 842 001515 4354 JMS F154 /ONLY REFERENCE TO F154 BELOW 843 001516 7332 CLA CLL CML RTR /2000 844 001517 3357 DCA F157 845 001520 1356 TAD F156 846 001521 0055 AND Z55 847 001522 7041 CIA 848 001523 1041 TAD Z41 849 001524 7500 SMA 850 001525 1054 TAD Z54 851 001526 3356 DCA F156 852 001527 4354 JMS F154 853 001530 2461 ISZ I Z61 854 001531 5256 JMP F56 855 001532 4562 JMS I Z162 856 001533 0610 AND I F10 857 001534 0000 0000 858 001535 0013 AND Z13 859 001536 5001 JMP Z01 860 001537 7240 CLA CMA 861 001540 6211 CDF 10 862 001541 3477 DCA I Z77 863 001542 5453 JMP I Z53 864 /UNREACHABLE? 865 001543 0000 F143, 0000 866 001544 2350 ISZ F150 867 001545 5743 JMP I F143 868 001546 4562 JMS I Z162 869 001547 1010 TAD Z10 870 001550 7777 F150, 7777 871 001551 0033 AND Z33 872 001552 5001 JMP Z01 873 001553 5743 JMP I F143 874 875 /REACHABLE ONLY FROM UNREACHABLE ABOVE 876 001554 0000 F154, 0000 877 001555 4426 JMS I Z26 878 001556 4101 F156, JMS Z101 879 001557 0600 F157, AND I F00 880 001560 0000 F160, 0000 881 001561 5367 JMP F167 882 001562 1356 TAD F156 883 001563 4776 JMS I (S134 /UNLIKELY 884 001564 1360 TAD F160 885 001565 3360 DCA F160 886 001566 5754 JMP I F154 887 001567 4500 F167, JMS I Z100 888 889 001570 1600 PAGE /NEXT PAGE. 001571 3770 001572 4007 001573 6571 001574 7501 001575 5334 001576 4734 001577 7400 890 / 891 /REACH HERE AFTER TABLE COPY AT F00. 892 001600 7200 G00, CLA 893 001601 3777 DCA I (K06 894 001602 3776 DCA I (K13 895 001603 1170 TAD [5600 896 001604 3775 DCA I (K02 897 001605 1167 TAD Z167 898 001606 3774 DCA I (K03 899 001607 1166 TAD Z166 900 001610 4435 JMS I Z35 /D00 901 001611 7200 CLA 902 001612 3773 DCA I (K31 903 001613 3772 DCA I (K36 904 001614 1371 TAD (I00 905 001615 3770 DCA I (K25 906 001616 1367 TAD (5600 907 001617 3766 DCA I (K26 908 001620 1165 TAD Z165 909 001621 4435 JMS I Z35 /D00 910 001622 7200 G22, CLA 911 001623 2765 ISZ I (H21 912 001624 7410 SKP 913 001625 4771 JMS I (I00 914 001626 7200 CLA 915 001627 2764 ISZ I (H22 916 001630 7410 SKP 917 001631 4763 JMS I (I76 918 001632 7200 CLA 919 001633 2762 ISZ I (H23 920 001634 7410 SKP 921 001635 4761 JMS I (J00 922 001636 7200 CLA 923 001637 2760 ISZ I (H24 924 001640 7410 SKP 925 001641 4757 JMS I (J76 926 001642 6031 KSF /KEYBOARD READY? 927 001643 5252 JMP G52 /NEVER MIND 928 001644 6036 KRB /YES, READ IT 929 001645 1356 TAD (7575 /^C? 930 001646 7440 SZA 931 001647 5200 JMP G00 /NO, NEVER MIND 932 001650 5651 JMP I .+1 /YES, TRY TO EXIT 933 001651 7600 7600 934 935 001652 4477 G52, LAS /READ THE SWITCHES 936 001653 7040 CMA 937 001654 0164 AND Z164 /MASK WITH 0077 938 001655 3755 DCA I (K33 /SAVE RESULT 939 001656 4477 LAS /READ SWITCHES AGAIN 940 001657 7012 RTR /SHIFT RIGHT SIX 941 001660 7012 RTR 942 001661 7012 RTR 943 001662 7040 CMA 944 001663 0164 AND Z164 /MASK WITH 0077 945 001664 3754 DCA I (K10 /SAVE LEFT SWITCHES 946 001665 7200 CLA 947 001666 1753 TAD I (K44 948 001667 7450 SNA 949 001670 5275 JMP G75 950 001671 1752 TAD I (K21 951 001672 7440 SZA 952 001673 5324 JMP G124 953 001674 7200 CLA 954 001675 1575 G75, TAD I [K25 955 001676 7041 CIA 956 001677 1574 TAD I [K02 957 001700 7500 SMA 958 001701 7041 CIA 959 001702 1163 TAD Z163 960 001703 7510 SPA 961 001704 5324 JMP G124 962 001705 1572 TAD I [K26 963 001706 7041 CIA 964 001707 1571 TAD I [K03 965 001710 7500 SMA 966 001711 7041 CIA 967 001712 1163 TAD Z163 968 001713 7510 SPA 969 001714 5324 JMP G124 970 001715 7200 G115, CLA 971 001716 4751 JMS I (F61 972 001717 7200 CLA 973 001720 7040 CMA 974 001721 3753 DCA I (K44 975 001722 7040 CMA 976 001723 3752 DCA I (K21 977 001724 4562 G124, JMS I Z162 978 001725 5750 JMP I (H00 979 980 001726 3334 DCA G134 981 001727 2351 ISZ (F61 982 001730 1751 TAD I (F61 983 001731 3333 DCA G133 984 001732 4755 JMS I (K33 985 001733 0000 G133, 0000 986 001734 0000 G134, 0000 987 001735 0000 G135, 0000 988 001736 5345 JMP G145 989 001737 1333 TAD G133 990 001740 4365 JMS (H21 991 001741 1335 TAD G135 992 001742 3335 DCA G135 993 001743 2351 ISZ (F61 994 001744 5315 JMP G115 995 001745 6212 G145, CIF 10 996 001746 4754 JMS I (K10 997 001747 0007 AND Z07 998 001750 2000 PAGE /NEXT PAGE. 001751 1461 001752 2621 001753 2644 001754 2610 001755 2633 001756 7575 001757 2476 001760 2024 001761 2400 001762 2023 001763 2276 001764 2022 001765 2021 001766 2626 001767 5600 001770 2625 001771 2200 001772 2636 001773 2631 001774 2603 001775 2602 001776 2613 001777 2606 999 002000 7200 H00, CLA /CLEAN UP. 1000 002001 1161 H01, TAD Z161 1001 002002 1777 TAD I (K36 1002 002003 3206 H03, DCA H06 /SET UP # OF POINTS 1003 002004 1160 TAD Z160 /DISPLAY SOME POINTS (4156) 1004 002005 4431 JMS I Z31 1005 002006 7622 H06, -67-67 /067 OF THEM 1006 002007 1157 TAD Z157 1007 002010 1776 H10, TAD I (K13 1008 002011 3214 DCA H14 /SET UP # OF POINTS 1009 002012 1156 TAD Z156 /DISPLAY SOME POINTS (4534) 1010 002013 4431 JMS I Z31 1011 002014 7612 H14, -73-73 /073 OF THEM 1012 002015 1375 TAD (4733 /DISPLAY SOME POINTS (4733) 1013 002016 4431 JMS I Z31 1014 002017 6000 -1000-1000 /01000 OF THEM 1015 002020 5774 H20, JMP I (G22 /ONWARD 1016 002021 7777 H21, 7777 1017 002022 7777 H22, 7777 1018 002023 7777 H23, 7777 1019 002024 7576 H24, 7576 1020 002025 0401 AND I Z01 1021 002026 0603 AND I H03 1022 002027 1011 TAD Z11 1023 002030 1177 TAD [A156 1024 002031 0263 AND H63 1025 002032 0306 AND H106 1026 002033 0253 AND H53 1027 002034 0324 AND H124 1028 002035 0341 AND H141 1029 002036 0400 AND I Z00 1030 002037 1343 H37, E143 1031 002040 0620 H40, C20 1032 002041 6213 H41, CIF CDF 10 1033 002042 3600 DCA I H00 1034 002043 6213 CIF CDF 10 1035 002044 5640 JMP I H40 1036 1037 002045 2057 ISZ Z57 1038 002046 2057 H46, ISZ Z57 1039 002047 2057 ISZ Z57 1040 002050 2057 ISZ Z57 1041 002051 2057 ISZ Z57 1042 002052 2057 ISZ Z57 1043 002053 7200 H53, CLA 1044 002054 6202 CIF 00 1045 002055 4575 JMS I [K25 1046 002056 0210 AND H10 1047 002057 1400 F00 1048 002060 0056 AND Z56 1049 002061 7402 HLT 1050 002062 5657 JMP I .-3 1051 002063 7330 H63, CLA CLL CML RAR /4000 1052 002064 4351 JMS H151 1053 002065 4220 JMS H20 1054 002066 3041 DCA Z41 1055 002067 6202 CIF 00 1056 002070 4575 JMS I [K25 1057 002071 0601 AND I H01 1058 002072 0000 0000 1059 002073 0051 AND Z51 1060 002074 5246 JMP H46 1061 002075 1241 TAD H41 1062 002076 6203 CIF CDF 00 1063 002077 4574 JMS I [K02 1064 002100 3241 DCA H41 1065 002101 1241 TAD H41 1066 002102 3345 DCA H145 1067 002103 4351 JMS H151 1068 002104 7120 STL 1069 002105 5637 JMP I H37 1070 002106 4220 H106, JMS H20 1071 002107 3041 DCA Z41 1072 002110 6202 CIF 00 1073 002111 4575 JMS I [K25 1074 002112 0101 AND Z101 1075 002113 7400 H113, 7400 1076 002114 0057 AND Z57 1077 002115 5246 JMP H46 1078 002116 1041 TAD Z41 1079 002117 6203 CDF CIF 00 1080 002120 5713 JMP I H113 1081 002121 7200 CLA 1082 002122 2200 ISZ H00 1083 002123 1040 TAD Z40 1084 002124 7110 H124, CLL RAR 1085 002125 1200 H125, TAD H00 1086 002126 3573 DCA I [Z04 1087 002127 1241 TAD H41 1088 002130 3572 DCA I [K26 1089 002131 7221 CLA CML IAC 1090 002132 6201 CDF 00 1091 002133 0571 AND I [K03 1092 002134 6211 CDF 10 1093 002135 7010 RAR 1094 002136 7730 SPA SZL CLA 1095 002137 5572 JMP I [K26 1096 002140 5570 JMP I [5600 1097 002141 7120 H141, STL 1098 002142 5325 JMP H125 1099 002143 0223 H143, A23 1100 002144 3240 DCA H40 1101 002145 6213 H145, CIF CDF 10 1102 002146 1640 TAD I H40 1103 002147 6213 CIF CDF 10 1104 002150 5743 JMP I H143 1105 1106 002151 0000 H151, 0000 1107 002152 1374 TAD (G22 1108 002153 3364 DCA H164 1109 002154 6201 CDF 00 1110 002155 1571 TAD I [K03 1111 002156 6211 CDF 10 1112 002157 7012 RTR 1113 002160 7630 SZL CLA 1114 002161 5751 JMP I H151 1115 002162 6202 CIF 00 1116 002163 4575 JMS I [K25 1117 002164 0000 H164, 0000 1118 002165 0000 0000 1119 002166 0033 AND Z33 1120 002167 5246 JMP H46 1121 002170 5751 JMP I H151 1122 002171 6202 CIF 00 1123 002172 4575 JMS I [K25 1124 002173 0111 AND Z111 1125 1126 002174 1622 PAGE /NEXT PAGE. 002175 4733 002176 2613 002177 2636 1127 002200 0000 I00, 0000 1128 002201 1155 TAD Z155 1129 002202 3777 DCA I (H21 1130 002203 1154 TAD Z154 1131 002204 4553 I04, JMS I Z153 1132 002205 0020 AND Z20 1133 002206 5211 JMP .+3 1134 002207 7200 CLA 1135 002210 3776 DCA I (K36 1136 002211 1775 TAD I (K33 /GET RIGHT USER SWITCHES 1137 002212 7040 CMA 1138 002213 0374 AND (1 /RIGHTMOST SET? 1139 002214 3217 DCA I17 /REMEMBER IT 1140 002215 1165 TAD Z165 1141 002216 4552 JMS I Z152 1142 002217 0000 I17, 0000 /RIGHT USER "FIRE" 1143 002220 7200 CLA 1144 002221 1773 TAD I (K44 1145 002222 7440 SZA 1146 002223 5243 JMP I43 1147 002224 7200 CLA 1148 002225 1165 TAD Z165 1149 002226 4553 JMS I Z153 1150 002227 0110 AND Z110 1151 002230 5243 JMP I43 1152 002231 7200 I31, CLA 1153 002232 1772 TAD I (K31 1154 002233 7510 SPA 1155 002234 1151 TAD Z151 1156 002235 1173 TAD [Z04 1157 002236 7041 CIA 1158 002237 3772 DCA I (K31 1159 002240 7040 CMA 1160 002241 3773 DCA I (K44 1161 002242 5600 JMP I I00 1162 1163 002243 1165 I43, TAD Z165 1164 002244 4553 JMS I Z153 1165 002245 0140 AND Z140 1166 002246 5250 JMP .+2 1167 002247 5600 JMP I I00 1168 002250 7200 CLA 1169 002251 1775 TAD I (K33 /GET RIGHT USER'S SWITCHES 1170 002252 7012 RTR /GET SECOND SWITCH 1171 002253 7430 SZL /IS IT SET? 1172 002254 5266 JMP I66 /YES, GO DEAL 1173 002255 7010 RAR /NO, GET NEXT SWITCH 1174 002256 7420 SNL /IS IT SET? 1175 002257 5600 JMP I I00 /NEITHER WAS SET, RETURN 1176 002260 7200 CLA /THIRD SWITCH SET 1177 002261 1150 TAD Z150 /GET 0002? 1178 002262 7041 CIA /SUBTRACT FROM 1179 002263 1771 TAD I (K23 /ANGLE 1180 002264 3771 DCA I (K23 1181 002265 5600 JMP I I00 /RETURN TO CALLER 1182 1183 002266 7010 I66, RAR /NEXT SWITCH 1184 002267 7430 SZL /ALSO SET? 1185 002270 5275 JMP I75 /YES, NEVER MIND 1186 002271 7200 CLA /NO 1187 002272 1150 TAD Z150 /GET 0002? 1188 002273 1771 TAD I (K23 /ADD TO ANGLE 1189 002274 3771 DCA I (K23 1190 002275 5600 I75, JMP I I00 /RETURN TO CALLER 1191 1192 002276 0000 I76, 0000 1193 002277 1147 TAD Z147 1194 002300 3770 DCA I (H22 1195 002301 1165 I101, TAD Z165 1196 002302 4546 I102, JMS I Z146 1197 002303 7200 I103, CLA 1198 002304 1773 TAD I (K44 1199 002305 7650 SNA CLA 1200 002306 5676 JMP I I76 1201 002307 3772 I107, DCA I (K31 1202 002310 3773 DCA I (K44 1203 002311 5676 JMP I I76 1204 002312 1302 TAD I102 1205 002313 7130 STL RAR 1206 002314 1301 TAD I101 1207 002315 7700 SMA CLA 1208 002316 3441 DCA I Z41 1209 002317 4334 JMS I134 1210 002320 7041 CIA 1211 002321 1303 TAD I103 1212 002322 7640 SZA CLA 1213 002323 5330 I123, JMP I130 1214 002324 1442 TAD I Z42 1215 002325 0153 AND Z153 1216 002326 1302 TAD I102 1217 002327 3441 DCA I Z41 1218 002330 2044 I130, ISZ Z44 1219 002331 5307 I131, JMP I107 1220 002332 1447 TAD I Z47 1221 002333 5552 JMP I Z152 1222 002334 0520 I134, 0520 1223 002335 1442 TAD I Z42 1224 002336 7106 CLL RTL 1225 002337 7006 RTL 1226 002340 7006 RTL 1227 002341 0151 AND Z151 1228 002342 1150 TAD Z150 1229 002343 5734 JMP I I134 1230 1231 002344 0511 I144, 0511 1232 002345 0151 AND Z151 1233 002346 7450 SNA 1234 002347 5547 JMP I Z147 1235 002350 3052 DCA Z52 1236 002351 1052 TAD Z52 1237 002352 1146 TAD Z146 1238 002353 3042 DCA Z42 1239 002354 1052 TAD Z52 1240 002355 1145 TAD Z145 1241 002356 3041 DCA Z41 1242 002357 1052 TAD Z52 1243 002360 1144 TAD Z144 1244 002361 3050 DCA Z50 1245 002362 1441 TAD I Z41 1246 002363 5744 JMP I I144 1247 002364 4631 JMS I I31 1248 002365 5723 JMP I I123 1249 002366 0406 AND I Z06 1250 002367 5604 JMP I I04 1251 1252 002370 2022 PAGE /NEXT PAGE. 002371 2623 002372 2631 002373 2644 002374 0001 002375 2633 002376 2636 002377 2021 1253 002400 0000 J00, 0000 1254 002401 1155 TAD Z155 1255 002402 3777 DCA I (H23 1256 002403 1145 TAD Z145 1257 002404 4553 JMS I Z153 1258 002405 0020 AND Z20 1259 002406 5211 JMP .+3 1260 002407 7200 CLA 1261 002410 3776 J10, DCA I (K13 1262 002411 1775 TAD I (K10 /GET LEFT SWITCHES 1263 002412 7040 CMA 1264 002413 0374 AND (1 /SAVE BOTTOM SWITCH 1265 002414 3217 DCA J17 1266 002415 1166 TAD Z166 1267 002416 4552 JMS I Z152 /"LEFT" TANK FIRE? 1268 1269 002417 0000 J17, 0000 /CURRENT "LEFT" FIRE 1270 002420 7200 CLA 1271 002421 1773 TAD I (K21 1272 002422 7440 SZA 1273 002423 5243 JMP J43 1274 002424 7200 CLA 1275 002425 1166 TAD Z166 1276 002426 4553 JMS I Z153 1277 002427 0110 AND Z110 1278 002430 5243 JMP J43 1279 002431 7200 CLA 1280 002432 1772 TAD I (K06 1281 002433 7510 SPA 1282 002434 1151 TAD Z151 1283 002435 1173 TAD [Z04 1284 002436 7041 CIA 1285 002437 3772 DCA I (K06 1286 002440 7040 CMA 1287 002441 3773 DCA I (K21 1288 002442 5600 JMP I J00 1289 002443 1166 J43, TAD Z166 1290 002444 4553 JMS I Z153 1291 002445 0140 AND Z140 1292 002446 5250 JMP .+2 1293 002447 5600 JMP I J00 1294 002450 7200 CLA 1295 002451 1775 J51, TAD I (K10 /GET LEFT SWITCHES 1296 002452 7012 RTR /CHECK SECOND BIT 1297 002453 7430 SZL 1298 002454 5266 JMP J66 /SET, GO DO IT 1299 002455 7010 RAR /CHECK THIRD SWITCH 1300 002456 7420 SNL /SET? 1301 002457 5600 JMP I J00 /NO, RETURN TO CALLER 1302 002460 7200 CLA 1303 002461 1150 TAD Z150 /SUBTRACT 0002 1304 002462 7041 CIA 1305 002463 1771 TAD I (K00 /FROM ANGLE 1306 002464 3771 DCA I (K00 1307 002465 5600 JMP I J00 1308 002466 7010 J66, RAR /THIRD SWITCH ALSO SET? 1309 002467 7430 SZL 1310 002470 5275 JMP J75 /YES, IGNORE IT 1311 002471 7200 CLA 1312 002472 1150 TAD Z150 /NO, ADD 0002 TO 1313 002473 1771 TAD I (K00 /ANGLE 1314 002474 3771 DCA I (K00 1315 002475 5600 J75, JMP I J00 /RETURN TO CALLER 1316 1317 002476 0000 J76, 0000 1318 002477 1147 TAD Z147 1319 002500 3770 DCA I (H24 1320 002501 1166 J101, TAD Z166 1321 002502 4546 J102, JMS I Z146 1322 002503 7200 CLA 1323 002504 1773 TAD I (K21 1324 002505 7650 SNA CLA 1325 002506 5676 JMP I J76 1326 002507 3773 DCA I (K21 1327 002510 3772 DCA I (K06 1328 002511 5676 JMP I J76 1329 002512 1044 TAD Z44 1330 002513 3047 DCA Z47 1331 002514 1047 J114, TAD Z47 1332 002515 4536 JMS I Z136 1333 002516 7041 CIA 1334 002517 1417 TAD I Z17 1335 002520 7640 SZA CLA 1336 002521 5335 JMP J135 1337 002522 2047 ISZ Z47 1338 002523 2046 ISZ Z46 1339 002524 5314 JMP J114 1340 002525 4352 JMS J152 1341 002526 1417 TAD I Z17 1342 002527 7450 SNA 1343 002530 5341 JMP J141 1344 002531 7041 CIA 1345 002532 3046 DCA Z46 1346 002533 2301 ISZ J101 1347 002534 5701 JMP I J101 1348 002535 1046 J135, TAD Z46 1349 002536 7001 IAC 1350 002537 4352 JMS J152 1351 002540 1417 TAD I Z17 1352 002541 1045 J141, TAD Z45 1353 002542 3045 DCA Z45 1354 002543 2053 ISZ Z53 1355 002544 5302 JMP J102 1356 002545 3045 DCA Z45 1357 002546 1535 TAD I Z135 1358 002547 7440 SZA 1359 002550 5251 JMP J51 1360 002551 5701 JMP I J101 1361 002552 0000 J152, 0000 1362 002553 1540 TAD I Z140 1363 002554 7041 CIA 1364 002555 1017 TAD Z17 1365 002556 3017 DCA Z17 1366 002557 5752 JMP I J152 1367 002560 0000 0000 1368 002561 1134 TAD Z134 1369 002562 3365 DCA J165 1370 002563 6202 CIF 00 1371 002564 4451 JMS I Z51 1372 002565 4210 J165, JMS J10 1373 002566 1400 TAD I Z00 1374 002567 0001 AND Z01 1375 1376 002570 2024 PAGE /NEXT PAGE. 002571 2600 002572 2606 002573 2621 002574 0001 002575 2610 002576 2613 002577 2023 1377 002600 0020 K00, AND Z20 /LEFT TANK ANGLE? 1378 002601 7612 SKP HLT CLA 1379 002602 7760 K02, SMA SZA SNL CLA 1380 002603 7740 K03, SMA SZA CLA 1381 002604 4534 JMS I Z134 1382 002605 4345 JMS K145 1383 002606 0000 K06, 0000 1384 002607 0000 K07, 0000 1385 002610 0000 K10, 0000 1386 002611 0000 0000 1387 002612 0000 0000 1388 002613 0000 K13, 0000 1389 002614 4575 JMS I [K25 1390 002615 0000 K15, 0000 1391 002616 0000 K16, 0000 1392 002617 0000 K17, 0000 1393 002620 0000 0000 1394 002621 0000 K21, 0000 1395 002622 0000 K22, 0000 1396 002623 0000 K23, 0000 /RIGHT TANK ANGLE? 1397 002624 7622 SNL HLT CLA 1398 002625 1000 K25, TAD Z00 1399 002626 0512 K26, AND I Z112 1400 002627 4156 JMS Z156 1401 002630 3777 3777 1402 002631 0000 K31, 0000 1403 002632 0000 K32, 0000 1404 002633 0000 K33, 0000 /RIGHT USER SWITCHES 1405 002634 0000 0000 1406 002635 0000 0000 1407 002636 0000 K36, 0000 1408 002637 4217 JMS K17 1409 002640 0000 K40, 0000 1410 002641 0000 K41, 0000 1411 002642 0000 0000 1412 002643 0000 0000 1413 002644 0000 K44, 0000 1414 002645 0000 K45, 0000 1415 002646 5263 JMP K63 1416 002647 1535 TAD I Z135 1417 002650 7440 SZA 1418 002651 5524 JMP I Z124 1419 002652 1044 TAD Z44 1420 002653 4536 JMS I Z136 1421 002654 7640 SZA CLA 1422 002655 1046 TAD Z46 1423 002656 7650 SNA CLA 1424 002657 5566 JMP I Z166 1425 002660 1054 TAD Z54 1426 002661 2056 ISZ Z56 1427 002662 5524 JMP I Z124 1428 002663 1017 K63, TAD Z17 1429 002664 3041 DCA Z41 1430 002665 1137 TAD Z137 1431 002666 4525 JMS I Z125 1432 002667 1540 TAD I Z140 1433 002670 7041 CIA 1434 002671 1017 TAD Z17 1435 002672 1123 TAD Z123 1436 002673 7700 SMA CLA 1437 002674 5522 JMP I Z122 1438 002675 1441 K75, TAD I Z41 1439 002676 3417 DCA I Z17 1440 002677 7240 CLA CMA 1441 002700 1041 TAD Z41 1442 002701 3041 DCA Z41 1443 002702 7344 CLA CLL CMA RAL /7776 1444 002703 1017 TAD Z17 1445 002704 3017 DCA Z17 1446 002705 1041 TAD Z41 1447 002706 7161 STL CIA 1448 002707 1052 TAD Z52 1449 002710 7640 SZA CLA 1450 002711 5275 JMP K75 1451 002712 1137 TAD Z137 1452 002713 3041 DCA Z41 1453 002714 1052 TAD Z52 1454 002715 3017 DCA Z17 1455 002716 1044 K116, TAD Z44 1456 002717 4536 JMS I Z136 1457 002720 3417 DCA I Z17 1458 002721 2044 ISZ Z44 1459 002722 2041 ISZ Z41 1460 002723 5316 JMP K116 1461 002724 1521 TAD I Z121 1462 002725 3417 DCA I Z17 1463 002726 7001 IAC 1464 002727 4525 JMS I Z125 1465 002730 3417 DCA I Z17 1466 002731 1017 TAD Z17 1467 002732 3520 DCA I Z120 1468 002733 7240 CLA CMA 1469 002734 1541 TAD I Z141 1470 002735 3541 DCA I Z141 1471 002736 1450 TAD I Z50 1472 002737 1054 TAD Z54 1473 002740 3450 DCA I Z50 1474 002741 4517 JMS I Z117 1475 002742 5516 JMP I Z116 1476 002743 1417 TAD I Z17 1477 002744 7141 CLL CIA 1478 002745 3041 K145, DCA Z41 1479 002746 1043 TAD Z43 1480 002747 1046 TAD Z46 1481 002750 7200 CLA 1482 002751 1043 TAD Z43 1483 002752 7450 SNA 1484 002753 7020 CML 1485 002754 1041 TAD Z41 1486 002755 7220 CLA CML 1487 002756 1041 TAD Z41 1488 002757 7041 CIA 1489 002760 1046 TAD Z46 1490 002761 7670 SNA SZL CLA 1491 002762 5374 JMP K174 1492 002763 1041 TAD Z41 1493 002764 3046 DCA Z46 1494 002765 7344 CLA CLL CMA RAL /7776 1495 002766 1017 TAD Z17 1496 002767 3052 DCA Z52 1497 002770 1515 TAD I Z115 1498 002771 3054 DCA Z54 1499 002772 1042 TAD Z42 1500 002773 3045 DCA Z45 1501 002774 1041 K174, TAD Z41 1502 002775 7041 CIA 1503 002776 5240 JMP K40 1504 IFNZRO LIKESV < 1505 002777 4532 4532 /LIKELY JUNK. 1506 > 1507 PAGE /NEXT PAGE. 1508 003000 0000 L00, 0000 1509 003001 1377 TAD (2 1510 003002 3273 DCA L73 1511 003003 1673 TAD I L73 1512 003004 7510 SPA 1513 003005 7041 CIA 1514 003006 3776 DCA I (M116 1515 003007 2273 ISZ L73 1516 003010 1673 TAD I L73 1517 003011 7510 L11, SPA 1518 003012 7041 CIA 1519 003013 3775 DCA I (M117 1520 003014 1600 TAD I L00 1521 003015 2200 ISZ L00 1522 003016 3774 DCA I (M120 1523 003017 1373 TAD (7777 1524 003020 1273 TAD L73 1525 003021 3273 DCA L73 1526 003022 1673 TAD I L73 1527 003023 7004 RAL 1528 003024 7200 CLA 1529 003025 2273 ISZ L73 1530 003026 1673 L26, TAD I L73 1531 003027 7510 SPA 1532 003030 7020 CML 1533 003031 7630 SZL CLA 1534 003032 5600 JMP I L00 1535 003033 1775 TAD I (M117 1536 003034 1774 TAD I (M120 1537 003035 7041 CIA 1538 003036 1372 TAD (B00 1539 003037 7700 SMA CLA 1540 003040 5600 JMP I L00 1541 003041 1775 TAD I (M117 1542 003042 7041 CIA 1543 003043 1774 TAD I (M120 1544 003044 1371 TAD (3400 1545 003045 7710 SPA CLA 1546 003046 5600 JMP I L00 1547 003047 1776 TAD I (M116 1548 003050 7041 CIA 1549 003051 1774 TAD I (M120 1550 003052 1371 TAD (3400 1551 003053 7710 SPA CLA 1552 003054 5600 JMP I L00 1553 003055 1776 TAD I (M116 1554 003056 1774 TAD I (M120 1555 003057 7041 CIA 1556 003060 1370 TAD (600 1557 003061 7700 SMA CLA 1558 003062 5767 JMP I (M115 1559 003063 1776 TAD I (M116 1560 003064 7041 CIA 1561 003065 1774 TAD I (M120 1562 003066 1366 TAD (H00 1563 003067 7710 SPA CLA 1564 003070 5765 JMP I (M46 1565 003071 5764 JMP I (M00 1566 1567 003072 5600 L72, JMP I L00 1568 003073 0000 L73, 0000 1569 003074 5772 JMP I (B00 1570 003075 1031 TAD Z31 1571 003076 3030 DCA Z30 1572 003077 1033 TAD Z33 1573 003100 4553 JMS I Z153 1574 003101 3014 DCA Z14 1575 003102 5550 JMP I Z150 1576 003103 4545 JMS I Z145 1577 003104 3062 DCA Z62 1578 003105 1022 TAD Z22 1579 003106 7710 SPA CLA 1580 003107 5435 JMP I Z35 1581 003110 1040 TAD Z40 1582 003111 1371 TAD (3400 1583 003112 7450 SNA 1584 003113 5321 JMP L121 1585 003114 1370 TAD (600 1586 003115 7650 SNA CLA 1587 003116 5767 JMP I (M115 1588 003117 7330 CLA CLL CML RAR /4000 1589 003120 5226 JMP L26 1590 1591 003121 4574 L121, JMS I [K02 1592 003122 2062 ISZ Z62 1593 003123 5340 JMP L140 1594 003124 1027 TAD Z27 1595 003125 3035 DCA Z35 1596 003126 4543 JMS I Z143 1597 003127 1020 L127, TAD Z20 1598 003130 3014 DCA Z14 1599 003131 1021 TAD Z21 1600 003132 3015 DCA Z15 1601 003133 1022 TAD Z22 1602 003134 3016 DCA Z16 1603 003135 1035 TAD Z35 1604 003136 3017 DCA Z17 1605 003137 5211 JMP L11 1606 003140 1027 L140, TAD Z27 1607 003141 7041 CIA 1608 003142 1035 TAD Z35 1609 003143 7650 SNA CLA 1610 003144 5327 JMP L127 1611 003145 4542 JMS I Z142 1612 003146 5144 JMP Z144 1613 003147 5211 JMP L11 1614 003150 7041 CIA 1615 003151 5766 JMP I (H00 1616 003152 1033 TAD Z33 1617 003153 4566 JMS I Z166 1618 003154 0157 AND Z157 1619 003155 1033 TAD Z33 1620 003156 7040 CMA 1621 003157 0034 AND Z34 1622 003160 5766 JMP I (H00 1623 1624 003161 4574 JMS I [K02 1625 003162 5763 JMP I (M132 1626 1627 003163 3332 PAGE /NEXT PAGE. 003164 3200 003165 3246 003166 2000 003167 3315 003170 0600 003171 3400 003172 0400 003173 7777 003174 3320 003175 3317 003176 3316 003177 0002 1628 003200 1317 M00, TAD M117 1629 003201 7041 CIA 1630 003202 1320 TAD M120 1631 003203 1377 TAD (1400 1632 003204 7710 SPA CLA 1633 003205 5231 JMP M31 1634 003206 1317 TAD M117 1635 003207 7041 CIA 1636 003210 1320 TAD M120 1637 003211 1376 TAD (600 1638 003212 7700 SMA CLA 1639 003213 5313 JMP M113 1640 003214 1316 M14, TAD M116 1641 003215 1320 TAD M120 1642 003216 7041 CIA 1643 003217 1375 TAD (1200 1644 003220 7700 SMA CLA 1645 003221 5774 JMP I (L72 1646 003222 1316 TAD M116 1647 003223 7041 CIA 1648 003224 1320 TAD M120 1649 003225 1377 TAD (1400 1650 003226 7710 SPA CLA 1651 003227 5774 JMP I (L72 1652 003230 5313 JMP M113 1653 003231 1317 M31, TAD M117 1654 003232 1320 TAD M120 1655 003233 7041 CIA 1656 003234 1373 TAD (2400 1657 003235 7700 SMA CLA 1658 003236 5774 JMP I (L72 1659 003237 1317 TAD M117 1660 003240 1320 TAD M120 1661 003241 7041 CIA 1662 003242 1372 TAD (3200 1663 003243 7700 SMA CLA 1664 003244 5214 JMP M14 1665 003245 5313 JMP M113 1666 003246 1316 M46, TAD M116 1667 003247 1320 TAD M120 1668 003250 7041 CIA 1669 003251 1371 TAD (K00 1670 003252 7700 SMA CLA 1671 003253 5774 JMP I (L72 1672 003254 1317 TAD M117 1673 003255 7041 CIA 1674 003256 1320 TAD M120 1675 003257 1376 TAD (600 1676 003260 7700 SMA CLA 1677 003261 5313 JMP M113 1678 003262 1317 TAD M117 1679 003263 1320 TAD M120 1680 003264 7041 CIA 1681 003265 1372 TAD (3200 1682 003266 7710 SPA CLA 1683 003267 5313 JMP M113 1684 003270 1316 TAD M116 1685 003271 1320 TAD M120 1686 003272 7041 CIA 1687 003273 1372 TAD (3200 1688 003274 7700 M74, SMA CLA 1689 003275 5774 JMP I (L72 1690 003276 1317 TAD M117 1691 003277 7041 CIA 1692 003300 1320 M100, TAD M120 1693 003301 1377 M101, TAD (1400 1694 003302 7700 SMA CLA 1695 003303 5313 JMP M113 1696 003304 1317 TAD M117 1697 003305 1320 TAD M120 1698 003306 7041 CIA 1699 003307 1373 TAD (2400 1700 003310 7710 SPA CLA 1701 003311 5313 JMP M113 1702 003312 5774 JMP I (L72 1703 1704 003313 2770 M113, ISZ I (L00 1705 003314 5774 JMP I (L72 1706 003315 5774 M115, JMP I (L72 1707 1708 003316 0000 M116, 0000 1709 003317 0000 M117, 0000 1710 003320 0000 M120, 0000 1711 003321 3043 DCA Z43 1712 003322 4574 JMS I [K02 1713 003323 4505 M123, JMS I Z105 1714 003324 5301 JMP M101 1715 003325 1043 TAD Z43 1716 003326 3035 M126, DCA Z35 1717 003327 1033 M127, TAD Z33 1718 003330 1361 TAD M161 1719 003331 3043 DCA Z43 1720 003332 1443 M132, TAD I Z43 1721 003333 3043 DCA Z43 1722 003334 5443 JMP I Z43 1723 003335 4546 JMS I Z146 1724 003336 5323 JMP M123 1725 003337 4574 JMS I [K02 1726 003340 1027 TAD Z27 1727 003341 5326 JMP M126 1728 003342 2037 ISZ Z37 1729 003343 1437 TAD I Z37 1730 003344 1137 TAD Z137 1731 003345 7650 SNA CLA 1732 003346 5353 JMP M153 1733 003347 1437 TAD I Z37 1734 003350 3035 DCA Z35 1735 003351 4574 JMS I [K02 1736 003352 5327 JMP M127 1737 003353 4542 M153, JMS I Z142 1738 003354 5143 JMP Z143 1739 003355 7240 CLA CMA 1740 003356 3040 DCA Z40 1741 003357 5771 JMP I (K00 1742 003360 3753 DCA I M153 1743 003361 3556 M161, DCA I Z156 1744 003362 7520 SMA SNL 1745 003363 7510 SPA 1746 003364 0274 AND M74 1747 003365 0002 AND Z02 1748 003366 7753 7753 1749 003367 0064 AND 64 1750 1751 003370 3000 PAGE /NEXT PAGE. 003371 2600 003372 3200 003373 2400 003374 3072 003375 1200 003376 0600 003377 1400 1752 003400 0000 N00, 0000 1753 003401 7200 N01, CLA 1754 003402 1777 TAD I (K45 1755 003403 7650 SNA CLA 1756 003404 5247 JMP N47 1757 003405 2777 ISZ I (K45 1758 003406 5214 JMP N14 1759 003407 1144 TAD Z144 1760 003410 3776 DCA I (K32 1761 003411 1144 TAD Z144 1762 003412 3775 DCA I (K07 1763 003413 5774 JMP I (O00 1764 1765 003414 3773 N14, DCA I (K13 1766 003415 3775 DCA I (K07 1767 003416 3772 DCA I (K31 1768 003417 1771 TAD I (K33 /GET RIGHT USER SWITCHES? 1769 003420 0147 AND Z147 /MASK 7776 1770 003421 7040 CMA 1771 003422 0143 AND Z143 /MASK 7757 1772 003423 7040 CMA 1773 003424 3771 DCA I (K33 /PUT THEM BACK 1774 003425 1770 TAD I (K10 1775 003426 0147 AND Z147 1776 003427 3770 DCA I (K10 1777 003430 1161 TAD Z161 1778 003431 3303 DCA N103 1779 003432 1301 TAD N101 1780 003433 2301 ISZ N101 1781 003434 3300 DCA N100 1782 003435 1142 TAD Z142 1783 003436 3302 DCA N102 1784 003437 1700 N37, TAD I N100 1785 003440 1702 TAD I N102 1786 003441 3702 DCA I N102 1787 003442 2300 ISZ N100 1788 003443 2302 ISZ N102 1789 003444 2303 ISZ N103 1790 003445 5237 JMP N37 1791 003446 5774 JMP I (O00 1792 003447 7200 N47, CLA 1793 003450 1773 TAD I (K13 1794 003451 7650 SNA CLA 1795 003452 5774 JMP I (O00 1796 003453 1767 TAD I (K15 1797 003454 7041 CIA 1798 003455 1766 TAD I (K25 1799 003456 7500 SMA 1800 003457 7041 CIA 1801 003460 1365 TAD (120 1802 003461 7710 SPA CLA 1803 003462 5774 JMP I (O00 1804 003463 1764 TAD I (K16 1805 003464 7041 CIA 1806 003465 1763 TAD I (K26 1807 003466 7500 SMA 1808 003467 7041 CIA 1809 003470 1365 TAD (120 1810 003471 7710 SPA CLA 1811 003472 5774 JMP I (O00 1812 003473 1176 TAD [6745 1813 003474 3301 DCA N101 1814 003475 1141 TAD Z141 1815 003476 3777 DCA I (K45 1816 003477 5201 JMP N01 1817 1818 003500 0000 N100, 0000 1819 003501 0000 N101, 0000 1820 003502 0000 N102, 0000 1821 003503 0000 N103, 0000 1822 003504 5600 N104, JMP I N00 1823 1824 IFNZRO LIKESV < 1825 /POSSIBLE CRUFT 1826 003505 1034 TAD Z34 1827 003506 4776 JMS I (K32 1828 003507 3034 DCA Z34 1829 003510 1313 TAD N113 1830 003511 3070 DCA 70 1831 003512 2075 ISZ 75 1832 003513 0700 N113, AND I N100 1833 003514 7410 SKP 1834 003515 5447 JMP I Z47 1835 003516 4343 JMS N143 1836 003517 1176 N117, TAD [6745 1837 003520 1035 TAD Z35 1838 003521 3035 DCA Z35 1839 003522 1056 TAD Z56 1840 003523 0175 AND [K25 1841 003524 7650 SNA CLA 1842 003525 5330 JMP .+3 1843 003526 4542 JMS I Z142 1844 003527 5172 JMP [K26 1845 003530 1056 TAD Z56 1846 003531 0157 AND Z157 1847 003532 7640 SZA CLA 1848 003533 4343 JMS N143 1849 003534 1034 TAD Z34 1850 003535 0155 AND Z155 1851 003536 1035 TAD Z35 1852 003537 3034 DCA Z34 1853 003540 1410 TAD I Z10 1854 003541 3043 DCA Z43 1855 003542 5443 JMP I Z43 1856 1857 003543 3517 N143, N117 1858 003544 1035 TAD Z35 1859 003545 7040 CMA 1860 003546 0127 AND 127 1861 003547 7440 SZA 1862 003550 5353 JMP .+3 1863 003551 4542 JMS I Z142 1864 003552 5151 JMP Z151 1865 003553 1035 TAD Z35 1866 003554 3035 DCA Z35 1867 003555 5743 JMP I N143 1868 003556 3600 DCA I N00 1869 003557 3656 DCA I 3456 1870 003560 5435 JMP I Z35 1871 003561 3644 DCA I 3444 1872 003562 3664 DCA I 3464 1873 > 1874 003563 2626 PAGE /NEXT PAGE. 003564 2616 003565 0120 003566 2625 003567 2615 003570 2610 003571 2633 003572 2631 003573 2613 003574 3600 003575 2607 003576 2632 003577 2645 1875 003600 7200 O00, CLA 1876 003601 1777 TAD I (K22 1877 003602 7650 SNA CLA 1878 003603 5246 JMP O46 1879 003604 2777 ISZ I (K22 1880 003605 5213 JMP O13 1881 003606 1144 TAD Z144 1882 003607 3776 DCA I (K32 1883 003610 1144 TAD Z144 1884 003611 3775 DCA I (K07 1885 003612 5774 JMP I (N104 1886 003613 3773 O13, DCA I (K36 1887 003614 3776 O14, DCA I (K32 1888 003615 3772 O15, DCA I (K06 1889 003616 1771 TAD I (K10 1890 003617 0147 AND Z147 1891 003620 7040 CMA 1892 003621 0143 AND Z143 1893 003622 7040 CMA 1894 003623 3771 DCA I (K10 1895 003624 1770 TAD I (K33 1896 003625 0147 AND Z147 1897 003626 3770 DCA I (K33 1898 003627 1157 TAD Z157 1899 003630 3302 DCA O102 1900 003631 1301 TAD O101 1901 003632 3277 DCA O77 1902 003633 2301 ISZ O101 1903 003634 1140 TAD Z140 1904 003635 3300 DCA O100 1905 003636 1677 O36, TAD I O77 1906 003637 1700 TAD I O100 1907 003640 3700 DCA I O100 1908 003641 2277 ISZ O77 1909 003642 2300 ISZ O100 1910 003643 2302 ISZ O102 1911 003644 5236 JMP O36 1912 003645 5774 JMP I (N104 1913 1914 003646 7200 O46, CLA 1915 003647 1773 TAD I (K36 1916 003650 7650 SNA CLA 1917 003651 5774 JMP I (N104 1918 003652 1767 TAD I (K40 1919 003653 7041 CIA 1920 003654 1766 TAD I (K02 1921 003655 7500 SMA 1922 003656 7041 O56, CIA 1923 003657 1137 TAD Z137 1924 003660 7710 SPA CLA 1925 003661 5774 JMP I (N104 1926 003662 1765 TAD I (K41 1927 003663 7041 CIA 1928 003664 1764 TAD I (K03 1929 003665 7500 SMA 1930 003666 7041 CIA 1931 003667 1137 TAD Z137 1932 003670 7710 SPA CLA 1933 003671 5774 JMP I (N104 1934 003672 1176 TAD [6745 1935 003673 3301 DCA O101 1936 003674 1141 TAD Z141 1937 003675 3777 DCA I (K22 1938 003676 5200 JMP O00 1939 003677 0000 O77, 0000 1940 003700 0000 O100, 0000 1941 003701 0000 O101, 0000 1942 003702 0000 O102, 0000 1943 003703 1364 TAD (K03 1944 003704 7450 SNA 1945 003705 5336 JMP O136 1946 003706 7001 IAC 1947 003707 7450 SNA 1948 003710 5352 JMP O152 1949 003711 2763 ISZ I (5200 /UNLIKELY 1950 003712 1362 TAD (214 1951 003713 3333 DCA O133 1952 003714 1051 TAD Z51 1953 003715 7750 SPA SNA CLA 1954 003716 5323 JMP O123 1955 003717 2334 ISZ O134 1956 003720 5327 JMP O127 1957 003721 7240 O121, CLA CMA 1958 003722 3334 DCA O134 1959 003723 1763 O123, TAD I (5200 1960 003724 3043 DCA Z43 1961 003725 1333 TAD O133 1962 003726 5443 JMP I Z43 1963 1964 003727 2335 O127, ISZ O135 1965 003730 1333 TAD O133 1966 003731 3735 DCA I O135 1967 003732 5323 JMP O123 1968 1969 003733 0215 O133, AND O15 1970 003734 7777 O134, 7777 1971 003735 1450 O135, F50 1972 1973 003736 1354 O136, TAD O154 1974 003737 7650 SNA CLA 1975 003740 5347 JMP O147 1976 003741 3354 DCA O154 1977 003742 2042 ISZ Z42 1978 003743 3041 DCA Z41 1979 003744 1051 TAD Z51 1980 003745 7740 SMA SZA CLA 1981 003746 4535 JMS I Z135 1982 003747 1134 O147, TAD Z134 1983 003750 3333 DCA O133 1984 003751 5321 JMP O121 1985 1986 003752 2354 O152, ISZ O154 1987 003753 5766 JMP I (K02 1988 003754 0001 O154, AND Z01 1989 003755 3155 DCA Z155 1990 003756 5434 JMP I Z34 1991 1992 003757 3656 DCA I O56 1993 003760 3145 DCA Z145 1994 003761 0214 AND O14 1995 1996 003762 0214 PAGE /NEXT PAGE. 003763 5200 003764 2603 003765 2641 003766 2602 003767 2640 003770 2633 003771 2610 003772 2606 003773 2636 003774 3504 003775 2607 003776 2632 003777 2622 1997 /THIS LOOKS LIKE [X, Y] data. 1998 004000 7767 P00, -11; 1 004001 0001 1999 004002 7767 -11; 3 004003 0003 2000 004004 7767 -11; 5 004005 0005 2001 004006 7767 -11; 7 004007 0007 2002 004010 7771 -7; 7 004011 0007 2003 004012 7673 -105; 7 004013 0007 2004 004014 7673 -105; 5 004015 0005 2005 004016 7673 -105; 3 004017 0003 2006 004020 7774 -4; 4 004021 0004 2007 004022 7776 -2; 5 004023 0005 2008 004024 7777 -1; 5 004025 0005 2009 004026 7777 -1; 6 004027 0006 2010 004030 7777 -1; 7 004031 0007 2011 004032 7777 -1; 11 004033 0011 2012 004034 7777 -1; 13 004035 0013 2013 004036 7776 -2; 14 004037 0014 2014 004040 0000 0; 14 004041 0014 2015 004042 0002 2; 14 004043 0014 2016 004044 0001 1; 13 004045 0013 2017 004046 0001 1; 11 004047 0011 2018 004050 0001 1; 7 004051 0007 2019 004052 0001 1; 5 004053 0005 2020 004054 0002 2; 5 004055 0005 2021 004056 0004 4; 4 004057 0004 2022 004060 0005 5; 3 004061 0003 2023 004062 0005 5; 5 004063 0005 2024 004064 0005 5; 7 004065 0007 2025 004066 0007 7; 7 004067 0007 2026 004070 0011 11; 7 004071 0007 2027 004072 0011 11; 5 004073 0005 2028 004074 0011 11; 3 004075 0003 2029 004076 0011 11; 1 004077 0001 2030 004100 0011 11; -1 004101 7777 2031 004102 0011 11; -103 004103 7675 2032 004104 0011 11; -105 004105 7673 2033 004106 0011 11; -7 004107 7771 2034 004110 0011 11; -10 004111 7770 2035 004112 0007 7; -10 004113 7770 2036 004114 0005 5; -10 004115 7770 2037 004116 0005 5; -6 004117 7772 2038 004120 0005 5; -4 004121 7774 2039 004122 0004 4; -105 004123 7673 2040 004124 0002 2; -6 004125 7772 2041 004126 0000 0; -6 004127 7772 2042 004130 7776 -2; -6 004131 7772 2043 004132 7774 -4; -105 004133 7673 2044 004134 7673 -105; -4 004135 7774 2045 004136 7673 -105; -6 004137 7772 2046 004140 7673 -105; -10 004141 7770 2047 004142 7771 -7; -10 004143 7770 2048 004144 7767 -11; -10 004145 7770 2049 004146 7767 -11; -7 004147 7771 2050 004150 7767 -11; -105 004151 7673 2051 004152 7767 -11; -103 004153 7675 2052 004154 7767 -11; 7777 004155 7777 2053 2054 IFNZRO LIKESV < 2055 / 2056 /WHAT FOLLOWS IS PROBABLY CRUFT 2057 004156 4156 4156 2058 004157 0000 0000;2320 004160 2320 2059 004161 0327 0327;2202 004162 2202 2060 004163 5423 5423;2003 004164 2003 2061 004165 2722 2722;0454 004166 0454 2062 004167 2320 2320;0327 004170 0327 2063 004171 2201 2201;5422 004172 5422 2064 004173 1324 1324;2402 004174 2402 2065 004175 1400 1400;7566 004176 7566 2066 004177 7567 7567 /CRUFT? 2067 > 2068 PAGE /NEXT PAGE. 2069 2070 IFNZRO LIKESV < 2071 004200 0000 ZBLOCK 4346-. 004201 0000 004202 0000 004203 0000 004204 0000 004205 0000 004206 0000 004207 0000 004210 0000 004211 0000 004212 0000 004213 0000 004214 0000 004215 0000 004216 0000 004217 0000 004220 0000 004221 0000 004222 0000 004223 0000 004224 0000 004225 0000 004226 0000 004227 0000 004230 0000 004231 0000 004232 0000 004233 0000 004234 0000 004235 0000 004236 0000 004237 0000 004240 0000 004241 0000 004242 0000 004243 0000 004244 0000 004245 0000 004246 0000 004247 0000 004250 0000 004251 0000 004252 0000 004253 0000 004254 0000 004255 0000 004256 0000 004257 0000 004260 0000 004261 0000 004262 0000 004263 0000 004264 0000 004265 0000 004266 0000 004267 0000 004270 0000 004271 0000 004272 0000 004273 0000 004274 0000 004275 0000 004276 0000 004277 0000 004300 0000 004301 0000 004302 0000 004303 0000 004304 0000 004305 0000 004306 0000 004307 0000 004310 0000 004311 0000 004312 0000 004313 0000 004314 0000 004315 0000 004316 0000 004317 0000 004320 0000 004321 0000 004322 0000 004323 0000 004324 0000 004325 0000 004326 0000 004327 0000 004330 0000 004331 0000 004332 0000 004333 0000 004334 0000 004335 0000 004336 0000 004337 0000 004340 0000 004341 0000 004342 0000 004343 0000 004344 0000 004345 0000 2072 > 2073 *4346 2074 / 2075 /WHAT FOLLOWS ARE [X, Y] CORDINATE PAIRS. 2076 004346 7767 -11; 1 004347 0001 2077 004350 7767 -11; 3 004351 0003 2078 004352 7767 -11; 5 004353 0005 2079 004354 7767 -11; 7 004355 0007 2080 004356 7771 -7; 7 004357 0007 2081 004360 7673 -105; 7 004361 0007 2082 004362 7673 -105; 5 004363 0005 2083 004364 7673 -105; 3 004365 0003 2084 004366 7774 -4; 4 004367 0004 2085 004370 7776 -2; 5 004371 0005 2086 004372 7777 -1; 5 004373 0005 2087 004374 7777 -1; 6 004375 0006 2088 004376 7777 -1; 7 004377 0007 2089 004400 7777 -1; 11 004401 0011 2090 004402 7777 -1; 13 004403 0013 2091 004404 7776 -2; 14 004405 0014 2092 004406 0000 0; 14 004407 0014 2093 004410 0002 2; 14 004411 0014 2094 004412 0001 1; 13 004413 0013 2095 004414 0001 1; 11 004415 0011 2096 004416 0001 1; 7 004417 0007 2097 004420 0001 1; 5 004421 0005 2098 004422 0002 2; 5 004423 0005 2099 004424 0004 4; 4 004425 0004 2100 004426 0005 5; 3 004427 0003 2101 004430 0005 5; 5 004431 0005 2102 004432 0005 5; 7 004433 0007 2103 004434 0007 7; 7 004435 0007 2104 004436 0011 11; 7 004437 0007 2105 004440 0011 11; 5 004441 0005 2106 004442 0011 11; 3 004443 0003 2107 004444 0011 11; 1 004445 0001 2108 004446 0011 11; -1 004447 7777 2109 004450 0011 11; -103 004451 7675 2110 004452 0011 11; -105 004453 7673 2111 004454 0011 11; -7 004455 7771 2112 004456 0011 11; -10 004457 7770 2113 004460 0007 7; -10 004461 7770 2114 004462 0005 5; -10 004463 7770 2115 004464 0005 5; -6 004465 7772 2116 004466 0005 5; -4 004467 7774 2117 004470 0004 4; -105 004471 7673 2118 004472 0002 2; -6 004473 7772 2119 004474 0000 0; -6 004475 7772 2120 004476 7776 -2; -6 004477 7772 2121 004500 7774 R100, -4; -105 004501 7673 2122 004502 7673 -105; -4 004503 7774 2123 004504 7673 -105; -6 004505 7772 2124 004506 7673 -105; -10 004507 7770 2125 004510 7771 -7; -10 004511 7770 2126 004512 7767 -11; -10 004513 7770 2127 004514 7767 -11; -7 004515 7771 2128 004516 7767 -11; -105 004517 7673 2129 004520 7767 -11; -103 004521 7675 2130 004522 7767 -11; -1 004523 7777 2131 004524 7777 -1; 1 004525 0001 2132 004526 0001 1; 1 004527 0001 2133 004530 0001 1; -1 004531 7777 2134 004532 7777 -1; -1 004533 7777 2135 R134=. 2136 IFNZRO LIKESV < 2137 / 2138 / I (VRS) THINK THESE MAY ALSO BE DATA, 2139 / OR PERHAPS JUST CRUFT. Z140 AND Z156 2140 / SEEM TO POINT HERE 2141 004534 4534 R134, 4534; 0000 004535 0000 2142 004536 1236 1236; 3607 004537 3607 2143 004540 6203 6203; 5674 004541 5674 2144 004542 6141 6141; 0436 004543 0436 2145 004544 0017 0017; 0261 004545 0261 2146 004546 0003 0003; 0002 004547 0002 2147 004550 7420 7420; 5317 004551 5317 2148 004552 7101 7101; 7207 004553 7207 2149 004554 0315 0315; 7650 004555 7650 2150 004556 5304 5304; 1374 004557 1374 2151 004560 0206 0206; 1335 004561 1335 2152 004562 7450 7450; 5371 004563 5371 2153 004564 3374 3374; 1207 004565 1207 2154 004566 3375 3375; 2316 004567 2316 2155 004570 5304 5304; 6213 004571 6213 2156 004572 5601 5601; 2233 004573 2233 2157 004574 0100 0100; 1600 004575 1600 2158 004576 6201 6201; 5763 004577 5763 2159 > 2160 PAGE /NEXT PAGE. 2161 2162 004600 4204 JMS S04 2163 004601 4204 JMS S04 2164 004602 5777 5777 2165 004603 5776 5776 2166 2167 004604 4603 S04, .-1 /VRS - LOOKS LIKE A SUBROUTINE 2168 004605 2204 ISZ S04 /SKIP ON RETURN (DIDN'T USE ARG) 2169 004606 7300 CLA CLL 2170 004607 6201 CDF 00 2171 004610 1775 TAD I S175 /GET A140 2172 004611 0374 AND S174 /MASK WITH 160 2173 004612 1254 TAD S54 /BUILD A CIF 2174 004613 3300 DCA S100 /SAVE FOR LATER EXECUTION 2175 004614 1775 TAD I S175 /GET A140 2176 004615 6211 CDF 10 /SET FIELD 1 2177 004616 7006 RTL /DOUBLE IT 2178 004617 7620 SNL CLA /CARRY? 2179 004620 5230 JMP S30 /NO, ONWARD 2180 004621 1276 S21, TAD S76 /GET SKP 2181 004622 3675 DCA I S75 /STORE IT AT M100 2182 004623 2221 ISZ S21 /ADJUST TAD ABOVE 2183 004624 2275 ISZ S75 /BUMP STORE POINTER 2184 004625 2274 ISZ S74 /BUMP COUNT 2185 004626 5221 JMP S21 /LOOP UNTIL DONE 2186 004627 7240 CLA CMA /SET S73 FLAG 2187 004630 3273 S30, DCA S73 2188 004631 1670 S31, TAD I S70 /FETCH A WORD 2189 004632 6201 CDF 00 2190 004633 3671 DCA I S71 /STORE IN FIELD 0 2191 004634 6211 CDF 10 2192 004635 1667 TAD I S67 /GET FIELD 1 WORD 2193 004636 6201 CDF 00 2194 004637 3667 DCA I S67 /STORE IN FIELD 0 2195 004640 6211 CDF 10 2196 004641 2267 ISZ S67 /BUMP COPY POINTER 2197 004642 2270 ISZ S70 /BUMP FETCH POINTER 2198 004643 2271 ISZ S71 /BUMP STORE POINTER 2199 004644 2272 ISZ S72 /BUMP COUNT 2200 004645 5231 JMP S31 /LOOP UNTIL DONE 2201 004646 1377 TAD S177 /GET A140 (FIELD 1) 2202 004647 6201 CDF 00 2203 004650 3773 DCA I S173 /STORE IT 2204 004651 1372 TAD S172 /GET 0154? 2205 004652 3771 DCA I S171 /STORE IT 2206 004653 6211 CDF 10 /SET DF FIELD 1 2207 004654 6202 S54, CIF 00 /BUT CALL FIELD 0 2208 004655 4770 JMS I S170 2209 004656 1273 TAD S73 /GET FLAG 2210 004657 1375 TAD S175 /ADD A140 2211 004660 7640 SZA CLA /GOT ZERO? 2212 004661 5604 JMP I S04 /NO, RETURN TO CALLER 2213 004662 1367 TAD S167 /YES, GET A140 2214 004663 3766 DCA I S166 /STORE 2215 004664 1365 TAD S165 /GET A140 2216 004665 3764 DCA I S164 /STORE 2217 004666 5604 JMP I S04 /RETURN TO CALLER 2218 004667 4667 S67, . /COPY POINTER 2219 004670 5070 S70, 5070 /FETCH POINTER 2220 004671 7271 S71, 7271 /STORE POINTER 2221 004672 7472 S72, -306 /COUNT 2222 004673 0000 S73, 0000 /FLAG 2223 004674 7774 S74, -4 /COUNT 2224 004675 3300 S75, M100 /PLACE TO STORE SKP 2225 004676 7410 S76, SKP /CONSTANT 2226 004677 7400 7400 2227 004700 6202 S100, CIF 00 /HOW IS THIS USED? 2228 2229 IFNZRO LIKESV < 2230 /SEEMS TO BE CRUFT? DATA? 2231 004701 4701 4701; 4656; 1355; 6214; 3350; 6201; 1775 004702 4656 004703 1355 004704 6214 004705 3350 004706 6201 004707 1775 2232 004710 0374 0374; 7450; 5316; 7112; 7010; 5350; 6201; 1354; 004711 7450 004712 5316 004713 7112 004714 7010 004715 5350 004716 6201 004717 1354 2233 004720 7106 7106; 7004; 0333; 1316; 3325; 7777; 1752; 7000; 004721 7004 004722 0333 004723 1316 004724 3325 004725 7777 004726 1752 004727 7000 2234 004730 3325 3325; 1327; 3752; 0070 004731 1327 004732 3752 004733 0070 2235 > 2236 *4734 2237 / 2238 /THIS IS THE TABLE UNPACKED DURING INITIALIZATION. 2239 004734 0060 S134, 0060; 0340; 0064; 0340; 0070; 0340; 0074; 0340 004735 0340 004736 0064 004737 0340 004740 0070 004741 0340 004742 0074 004743 0340 2240 004744 0100 0100; 0340; 0104; 0340; 0110; 0340; 0114; 0340 004745 0340 004746 0104 004747 0340 004750 0110 004751 0340 004752 0114 004753 0340 2241 004754 0120 0120; 0340; 0124; 0340; 0130; 0340; 0134; 0340 004755 0340 004756 0124 004757 0340 004760 0130 004761 0340 004762 0134 004763 0340 2242 004764 0140 S164, 0140; 0340; 0144; 0340; 0150; 0340; 0154; 0340 004765 0340 004766 0144 004767 0340 004770 0150 004771 0340 004772 0154 004773 0340 2243 004774 0160 S174, 0160; 0340; 0164; 0340; 0170; 0340; 0174; 0340 004775 0340 004776 0164 004777 0340 005000 0170 005001 0340 005002 0174 005003 0340 2244 S165=S174-7 2245 S166=S174-6 2246 S167=S174-5 2247 S170=S174-4 2248 S171=S174-3 2249 S172=S174-2 2250 S173=S174-1 2251 S175=S174+1 2252 S177=S174+3 2253 005004 0200 0200; 0340; 0200; 0334; 0200; 0330; 0200; 0324 005005 0340 005006 0200 005007 0334 005010 0200 005011 0330 005012 0200 005013 0324 2254 005014 0200 0200; 0320; 0140; 0320; 0144; 0320; 0150; 0320 005015 0320 005016 0140 005017 0320 005020 0144 005021 0320 005022 0150 005023 0320 2255 005024 0154 0154; 0320; 0160; 0320; 0164; 0320; 0170; 0320 005025 0320 005026 0160 005027 0320 005030 0164 005031 0320 005032 0170 005033 0320 2256 005034 0174 0174; 0320; 0140; 0240; 0140; 0244; 0140; 0250 005035 0320 005036 0140 005037 0240 005040 0140 005041 0244 005042 0140 005043 0250 2257 005044 0140 0140; 0254; 0140; 0260; 0140; 0264; 0140; 0270 005045 0254 005046 0140 005047 0260 005050 0140 005051 0264 005052 0140 005053 0270 2258 005054 0140 0140; 0274; 0140; 0300; 0140; 0304; 0140; 0310 005055 0274 005056 0140 005057 0300 005060 0140 005061 0304 005062 0140 005063 0310 2259 005064 0140 0140; 0314; 0120; 0240; 0124; 0240; 0130; 0240 005065 0314 005066 0120 005067 0240 005070 0124 005071 0240 005072 0130 005073 0240 2260 005074 0134 0134; 0240; 0120; 0320; 0120; 0244; 0120; 0250 005075 0240 005076 0120 005077 0320 005100 0120 005101 0244 005102 0120 005103 0250 2261 005104 0120 0120; 0254; 0120; 0260; 0120; 0264; 0120; 0270 005105 0254 005106 0120 005107 0260 005110 0120 005111 0264 005112 0120 005113 0270 2262 005114 0120 0120; 0274; 0120; 0300; 0120; 0304; 0120; 0310 005115 0274 005116 0120 005117 0300 005120 0120 005121 0304 005122 0120 005123 0310 2263 005124 0120 0120; 0314; 0060; 0320; 0064; 0320; 0070; 0320 005125 0314 005126 0060 005127 0320 005130 0064 005131 0320 005132 0070 005133 0320 2264 005134 0074 0074; 0320; 0100; 0320; 0104; 0320; 0110; 0320 005135 0320 005136 0100 005137 0320 005140 0104 005141 0320 005142 0110 005143 0320 2265 005144 0114 0114; 0320; 0060; 0324; 0060; 0330; 0060; 0334 005145 0320 005146 0060 005147 0324 005150 0060 005151 0330 005152 0060 005153 0334 2266 005154 0260 0260; 0320; 0260; 0324; 0260; 0330; 0260; 0334 005155 0320 005156 0260 005157 0324 005160 0260 005161 0330 005162 0260 005163 0334 2267 005164 0260 0260; 0340; 0264; 0320; 0270; 0320; 0274; 0320 005165 0340 005166 0264 005167 0320 005170 0270 005171 0320 005172 0274 005173 0320 2268 005174 0300 0300; 0320; 0304; 0320; 0310; 0320; 0314; 0320 005175 0320 005176 0304 005177 0320 005200 0310 005201 0320 005202 0314 005203 0320 2269 005204 0320 0320; 0320; 0320; 0240; 0320; 0244; 0320; 0250 005205 0320 005206 0320 005207 0240 005210 0320 005211 0244 005212 0320 005213 0250 2270 005214 0320 0320; 0254; 0320; 0260; 0320; 0264; 0320; 0270 005215 0254 005216 0320 005217 0260 005220 0320 005221 0264 005222 0320 005223 0270 2271 005224 0320 0320; 0274; 0320; 0300; 0320; 0304; 0320; 0310 005225 0274 005226 0320 005227 0300 005230 0320 005231 0304 005232 0320 005233 0310 2272 005234 0320 0320; 0314; 0324; 0240; 0330; 0240; 0334; 0240 005235 0314 005236 0324 005237 0240 005240 0330 005241 0240 005242 0334 005243 0240 2273 005244 0340 0340; 0240; 0340; 0244; 0340; 0250; 0340; 0254 005245 0240 005246 0340 005247 0244 005250 0340 005251 0250 005252 0340 005253 0254 2274 005254 0340 0340; 0260; 0340; 0264; 0340; 0270; 0340; 0274 005255 0260 005256 0340 005257 0264 005260 0340 005261 0270 005262 0340 005263 0274 2275 005264 0340 0340; 0300; 0340; 0304; 0340; 0310; 0340; 0314 005265 0300 005266 0340 005267 0304 005270 0340 005271 0310 005272 0340 005273 0314 2276 005274 0340 0340; 0320; 0340; 0324; 0340; 0330; 0340; 0334 005275 0320 005276 0340 005277 0324 005300 0340 005301 0330 005302 0340 005303 0334 2277 005304 0340 0340; 0340; 0264; 0340; 0270; 0340; 0274; 0340 005305 0340 005306 0264 005307 0340 005310 0270 005311 0340 005312 0274 005313 0340 2278 005314 0300 0300; 0340; 0304; 0340; 0310; 0340; 0314; 0340 005315 0340 005316 0304 005317 0340 005320 0310 005321 0340 005322 0314 005323 0340 2279 005324 0320 0320; 0340; 0324; 0340; 0330; 0340; 0334; 0340 005325 0340 005326 0324 005327 0340 005330 0330 005331 0340 005332 0334 005333 0340 2280 2281 /U134 IS WHERE THINGS ARE UNPACKED INTO. 2282 U134=. 2283 2284 IFNZRO LIKESV < 2285 /MORE CRUFT 2286 005334 5334 5334; 1000; 1335; 7025 005335 1000 005336 1335 005337 7025 2287 005340 7640 7640; 3032; 1325; 4426; 2354; 3062; 7240; 7024 005341 3032 005342 1325 005343 4426 005344 2354 005345 3062 005346 7240 005347 7024 2288 005350 6213 6213; 2476; 4735; 7000; 0002; 2175; 4056; 0404 005351 2476 005352 4735 005353 7000 005354 0002 005355 2175 005356 4056 005357 0404 2289 005360 5160 5160; 4443; 0251; 0651; 3076; 1400; 3002; 7352 005361 4443 005362 0251 005363 0651 005364 3076 005365 1400 005366 3002 005367 7352 2290 005370 4702 4702; 0432; 6403; 0433; 0070; 0401; 2003; 6400 005371 0432 005372 6403 005373 0433 005374 0070 005375 0401 005376 2003 005377 6400 2291 > 2292 /RESERVE THE BUFFER FOR THE UNPACK, THEN START NEXT PAGE 2293 *U134+1000 2294 2295 IFNZRO LIKESV < 2296 / 2297 / THIS IS ALMOST CERTAINLY CRUFT, BECAUSE THIS MEMORY GETS 2298 / OVER-WRITTEN DURING STARTUP (BUT I DON'T KNOW WHY). 2299 / (AS A RESULT, EAE EMULATION WAS MOVED TO 07400.) 2300 PAGE 2301 006400 6212 XB00, CIF 10 2302 006401 4777 XB01, JMS I (XC110 2303 006402 6621 6621 /DFSE RF08 SKIP ON NO ERROR (BUFFER ADDR?) 2304 006403 4205 JMS XB05 2305 006404 5776 JMP I (6247 2306 2307 006405 0000 XB05, 0000 2308 006406 6211 CDF 10 2309 006407 1775 TAD I (7644 2310 006410 6201 CDF 00 2311 006411 0374 AND (1000 2312 006412 7650 SNA CLA 2313 006413 5773 JMP I (7605 2314 006414 6212 CIF 10 2315 006415 4777 JMS I (XC110 2316 006416 6664 6664 /LINE PRINTER TPC (OR POINTER?) 2317 006417 5605 JMP I XB05 2318 2319 006420 0000 0000 2320 006421 0000 0000 2321 006422 0000 0000 2322 006423 0000 0000 2323 006424 0000 0000 2324 006425 1520 1520 2325 006426 6000 6000 2326 006427 4000 4000 2327 006430 2000 2000 2328 006431 0001 0001 2329 006432 7601 7601 2330 006433 7401 7401 2331 006434 7201 7201 2332 006435 7001 7001 2333 006436 6437 6437 2334 006437 6437 6437 2335 006440 0000 0000 2336 006441 6437 6437 2337 006442 0000 0000 2338 006443 0000 0000 2339 006444 0000 0000 2340 006445 0000 0000 2341 006446 0000 0000 2342 006447 7300 XB47, CLA CLL 2343 006450 6212 CIF 10 2344 006451 4777 JMS I (XC110 2345 006452 6600 6600 2346 006453 5773 JMP I (7605 2347 006454 6212 XB54, CIF 10 2348 006455 4777 JMS I (XC110 2349 006456 6632 6632 2350 006457 5773 JMP I (7605 2351 2352 006460 6212 CIF 10 2353 006461 4777 JMS I (XC110 2354 006462 6672 6672 2355 006463 5773 JMP I (7605 2356 2357 006464 0000 XB64, 0000 2358 006465 1772 TAD I (J10 2359 006466 3317 DCA XB117 2360 006467 1771 TAD I (2403 2361 006470 1317 TAD XB117 2362 006471 3324 DCA XB124 2363 006472 3770 DCA I (2002 2364 006473 1767 TAD I (CIF 10) 2365 006474 3315 DCA XB115 2366 006475 4715 JMS I XB115 2367 006476 4200 JMS XB00 2368 006477 6516 6516 2369 006500 0001 AND Z01 2370 006501 5247 JMP XB47 2371 006502 4715 JMS I XB115 2372 006503 5001 XB103, 5001 2373 006504 0000 0000 2374 006505 0002 AND Z02 2375 006506 5247 JMP XB47 2376 006507 4715 JMS I XB115 2377 006510 4201 JMS XB01 2378 006511 2400 ISZ I Z00 2379 006512 0006 AND Z06 2380 006513 5247 JMP XB47 2381 2382 006514 5664 XB114, JMP I XB64 2383 2384 006515 0000 XB115, 0000 2385 006516 7777 7777 2386 006517 0000 XB117, 0000 2387 006520 0000 0000 2388 006521 0000 0000 2389 006522 7777 7777 2390 006523 0000 0000 2391 006524 0000 XB124, 0000 2392 006525 7777 7777 2393 006526 1766 TAD I (2031 2394 006527 7450 SNA 2395 006530 1365 TAD (241 2396 006531 0364 AND (77 2397 006532 3351 DCA XB151 2398 006533 1763 TAD I (H00 2399 006534 7510 SPA 2400 006535 7200 CLA 2401 006536 1362 TAD (60 2402 006537 7106 CLL RTL 2403 006540 7006 RTL 2404 006541 7006 RTL 2405 006542 1351 TAD XB151 2406 006543 6201 CDF 00 2407 006544 3761 DCA I (7374 2408 006545 6212 CIF 10 2409 006546 4777 JMS I (XC110 2410 2411 / ASSUMING THIS IS ACTUALLY PART OF THE INTENDED SOURCE CODE: 2412 2413 / 1) OS/8 SUPPORTS THE STANDARD EXIT TO 07600. BY USING THE NON-STANDARD 2414 / EXIT TO 07605, THE PROGRAM HAS TO BE NEEDLESSLY MODIFIED TO USE ANY 2415 / OTHER OPERATING SYSTEM. 2416 2417 / NOTE: AT THIS POINT IT IS NOT CLEAR IF ANY CONSTRUCTIVE DEPENDENCE ON 2418 / OS/8 ACTUALLY EXISTS IN THIS PROGRAM. 2419 2420 / 2) ALL EXITS TO ALL RATIONAL OPERATING SYSTEMS DO NOT CARE ABOUT THE 2421 / STATE OF THE AC OR LINK WHEN EXITING. THERE IS NO NEED FOR ANY 2422 / INSTRUCTION TO EFFECT A CHANGE. 2423 2424 / 3) THE OPERATION USED IS A POINTLESS EXERCISE IN THE LONG WAY AROUND TO DO 2425 / WHAT IT ACCOMPLISHES, AND INCLUDES POINTLESS OPR STATES; ADDITIONALLLY, 2426 / THE COMBINATION IS NOT LEGITIMATE ON CERTAIN PDP-8 MODELS. 2427 2428 006547 7365 CLA CLL CMA CML IAC RAL /NEEDLESSLY CLEAR AC, LINK A HARD WAY. 2429 2430 006550 5773 JMP I (7605 2431 006551 0000 XB151, 0000 2432 006552 6331 6331 2433 006553 1703 TAD I XB103 2434 006554 4314 JMS XB114 2435 006555 4654 JMS I XB54 2436 006556 6306 6306 2437 006557 6311 6311 2438 006560 6305 6305 2439 2440 006561 7374 PAGE 006562 0060 006563 2000 006564 0077 006565 0241 006566 2031 006567 6212 006570 2002 006571 2403 006572 2410 006573 7605 006574 1000 006575 7644 006576 6247 006577 6710 2441 006600 1001 XC00, TAD Z01 2442 006601 1604 XC01, 1604 2443 006602 1405 TAD I 5 2444 006603 2240 XC03, 2240 2445 006604 0522 0522 2446 006605 2217 XC05, ISZ XC17 2447 006606 2200 ISZ XC00 2448 006607 1617 XC07, 1617 2449 006610 4020 JMS Z20 2450 006611 0122 XC11, Z122 2451 006612 0115 AND Z115 2452 006613 0524 AND I Z124 2453 006614 0522 AND I Z122 2454 006615 4002 JMS Z02 2455 006616 1417 TAD I Z17 2456 006617 0313 XC17, 0313 2457 006620 0000 0000 2458 006621 1617 TAD I XC17 2459 006622 4042 XC22, JMS Z42 2460 006623 3205 DCA XC05 2461 006624 2217 ISZ XC17 2462 006625 4240 JMS XC40 2463 006626 0114 AND 114 2464 006627 1417 TAD I Z17 2465 006630 2705 ISZ I XC105 2466 006631 0400 AND I Z00 2467 006632 0411 AND I Z11 2468 006633 2205 ISZ XC05 2469 006634 0324 AND XC124 2470 006635 1722 TAD I XC122 2471 006636 3140 DCA Z140 2472 006637 1001 TAD Z01 2473 006640 2340 XC40, 2340 2474 006641 0310 AND XC110 2475 006642 0116 AND Z116 2476 006643 0705 AND I XC105 2477 006644 0440 AND I Z40 2478 006645 2311 ISZ XC111 2479 006646 1603 TAD I XC03 2480 006647 0540 XC47, 0540 2481 006650 1401 TAD I Z01 2482 006651 2324 ISZ XC124 2483 006652 4032 JMS Z32 /COS() 2484 006653 0522 AND I Z122 2485 006654 1740 TAD I XC140 2486 006655 1617 TAD I XC17 2487 006656 4057 JMS Z57 2488 006657 2240 ISZ XC40 2489 006660 0114 AND 114 2490 006661 1417 TAD I Z17 2491 006662 2705 ISZ I XC105 2492 006663 0400 AND I Z00 2493 006664 1726 TAD I XC126 2494 006665 0522 AND I Z122 2495 006666 2211 ISZ XC11 2496 006667 0411 AND I Z11 2497 006670 1607 TAD I XC07 2498 006671 0000 0000 2499 006672 0301 AND XC101 2500 006673 1647 TAD I XC47 2501 006674 2440 ISZ I Z40 2502 006675 1726 TAD I XC126 2503 006676 0522 AND I Z122 2504 006677 2211 XC77, ISZ XC11 2505 006700 0405 XC100, AND I 5 2506 006701 4016 XC101, 4016 2507 006702 1716 TAD I XC116 2508 006703 5523 XC103, JMP I Z123 2509 006704 2401 ISZ I Z01 2510 006705 1604 XC105, 1604 2511 006706 0122 AND Z122 2512 006707 0440 AND I Z40 2513 006710 0405 XC110, AND I 5 2514 006711 2611 XC111, ISZ I XC11 2515 006712 0305 AND XC105 2516 006713 2300 ISZ XC100 2517 006714 4305 JMS XC105 2518 006715 2222 ISZ XC22 2519 006716 1722 XC116, 1722 2520 006717 4011 XC117, JMS Z11 2521 006720 1640 TAD I XC40 2522 006721 0317 AND XC117 2523 006722 1515 XC122, TAD I Z115 2524 006723 0116 AND Z116 2525 006724 0400 XC124, AND I Z00 2526 006725 4303 JMS XC103 2527 006726 0314 XC126, 0314 2528 006727 4063 JMS 63 2529 006730 1140 TAD Z140 2530 006731 1726 TAD I XC126 2531 006732 0522 AND I Z122 2532 006733 1401 TAD I Z01 2533 006734 3140 DCA Z140 2534 006735 0116 AND Z116 2535 006736 0440 AND I Z40 2536 006737 1517 TAD I Z117 2537 006740 1611 XC140, 1611 2538 006741 2417 ISZ I Z17 2539 006742 2240 ISZ XC40 2540 006743 1116 TAD Z116 2541 006744 0317 AND XC117 2542 006745 0000 0000 2543 006746 0124 AND Z124 2544 006747 1102 TAD 102 2545 006750 1405 TAD I 5 2546 006751 0000 0000 2547 006752 1617 TAD I XC17 2548 006753 2440 ISZ I Z40 2549 006754 2701 ISZ I XC101 2550 006755 2277 ISZ XC77 2551 006756 0000 0000 2552 006757 0611 AND I XC11 2553 006760 1405 TAD I 5 2554 006761 2340 ISZ XC140 2555 006762 0405 AND I 5 2556 006763 1405 TAD I 5 2557 006764 2405 ISZ I 5 2558 006765 0472 AND I 72 2559 006766 0000 0000 2560 006767 0611 AND I XC11 2561 006770 1405 TAD I 5 2562 006771 2340 ISZ XC140 2563 006772 2205 ISZ XC05 2564 006773 1601 TAD I XC01 2565 006774 1505 TAD I Z105 2566 006775 0472 AND I 72 2567 006776 0000 0000 2568 006777 0611 AND I XC11 2569 > 2570 2571 // That's it for the dis-assembly. Next up, a 2572 // patch for the VC8E. 2573 IFZERO PDP12 < 2574 *273 2575 000273 7000 NOP 2576 *276 2577 000276 4064 JMS VC8EPT 2578 *64 2579 000064 0000 VC8EPT, .-. 2580 000065 7104 CLL RAL / Scale by 2X 2581 000066 6054 6054 / DILY 2582 000067 7200 CLA 2583 000070 1007 TAD 0007 / Get X 2584 000071 7104 CLL RAL / Scale by 2X 2585 000072 6053 6053 / DILX 2586 000073 6052 6052 / Wait for ready 2587 000074 5073 JMP .-1 2588 000075 6055 6055 / DIXY 2589 000076 5464 JMP I VC8EPT / Return 2590 > 2591 2592 // Now, a patch to emulate the EAE, if needed. 2593 IFZERO EAE < 2594 OCTAL 2595 000170 5600 FIELD 0 000171 2603 000172 2626 000173 0004 000174 2602 000175 2625 000176 6745 000177 0356 2596 / DIGITAL-8-17 EAE EMULATION FOLLOWS. 2597 / (PAGE ZERO LAYOUT IS CHANGED AND CODE RELOCATED.) 2598 *126 2599 MQL=JMS I . 2600 000126 7407 PSDMQL 2601 DVI=JMS I . 2602 000127 7514 PSDDVI 2603 MUY=JMS I . 2604 000130 7550 PSDMUY 2605 SHL=JMS I . 2606 000131 7431 PSDSHL 2607 MQA=JMS I . 2608 000132 7400 PSDMQA 2609 000133 0000 SUDOMQ, 0 2610 000134 0000 SUDOSC, 0 2611 2612 *7400 2613 007400 0000 PSDMQA, 0 /MQA 2614 007401 3207 DCA PSDMQL /INCLUSIVE OR 2615 007402 1207 TAD PSDMQL /MQ 2616 007403 7040 CMA /AND AC 2617 007404 0133 AND SUDOMQ 2618 007405 1207 TAD PSDMQL 2619 007406 5600 JMP I PSDMQA 2620 2621 007407 0000 PSDMQL, 0 /MQL 2622 007410 3133 DCA Z SUDOMQ 2623 007411 5607 JMP I PSDMQL 2624 2625 007412 0000 PSDCAM, 0 /CAM (CLA!MQL) 2626 007413 7200 CLA 2627 007414 3133 DCA Z SUDOMQ 2628 007415 5612 JMP I PSDCAM 2629 2630 007416 0000 MQLMUY, 0 /MQL!MUY 2631 007417 3133 DCA Z SUDOMQ 2632 007420 1216 TAD MQLMUY /SET UP 2633 007421 3350 DCA PSDMUY /FOR MUY SUBROUTINE 2634 007422 5351 JMP PSDMUY+1 2635 007423 0000 MQLDVI, 0 /MQL!DVI 2636 007424 3133 DCA Z SUDOMQ 2637 007425 1223 TAD MQLDVI /SET UP 2638 007426 3314 DCA PSDDVI /FOR DVI SUBROUTINE 2639 007427 5315 JMP PSDDVI+1 2640 007430 0037 37 2641 007431 0000 PSDSHL, 0 /SHL 2642 007432 3212 DCA PSDCAM /SAVE AC 2643 007433 1631 TAD I PSDSHL /SHIFT COUNT 2644 007434 2231 ISZ PSDSHL /EXIT POINT 2645 007435 0230 AND PSDSHL-1 /5 BIT COUNTER 2646 007436 7040 CMA 2647 007437 3134 DCA SUDOSC 2648 007440 1133 TAD SUDOMQ /SHIFT COMBINED 2649 007441 7104 CLL RAL /AC AND MQ 2650 007442 3133 DCA SUDOMQ /1 BIT TO THE 2651 007443 1212 TAD PSDCAM /LEFT 2652 007444 7004 RAL 2653 007445 3212 DCA PSDCAM 2654 007446 2134 ISZ SUDOSC 2655 007447 5240 JMP .-7 /MORE SHIFTING 2656 007450 1212 TAD PSDCAM 2657 007451 5631 JMP I PSDSHL /EXIT 2658 007452 0000 PSDLSR, 0 /LSR 2659 007453 3212 DCA PSDCAM /SAVE AC 2660 007454 1252 TAD PSDLSR /USE ASR 2661 007455 3260 DCA PSDASR /ROUTINE 2662 007456 7100 CLL 2663 007457 5265 JMP PSDASR+5 2664 2665 007460 0000 PSDASR, 0 /ASR 2666 007461 7100 CLL /SET LINK=SIGN 2667 007462 7510 SPA 2668 007463 7020 CML 2669 007464 3212 DCA PSDCAM /SAVE AC 2670 007465 1660 TAD I PSDASR /SHIFT COUNT 2671 007466 2260 ISZ PSDASR /EXIT POINT 2672 007467 0230 AND PSDSHL-1 /5 BIT COUNTER 2673 007470 7040 CMA 2674 007471 3134 DCA SUDOSC 2675 007472 1212 TAD PSDCAM /RESTORE AC 2676 007473 5277 JMP .+4 2677 007474 1212 TAD PSDCAM 2678 007475 7510 SPA 2679 007476 7020 CML 2680 007477 7010 RAR 2681 007500 3212 DCA PSDCAM 2682 007501 1133 TAD SUDOMQ 2683 007502 7010 RAR 2684 007503 3133 DCA SUDOMQ 2685 007504 7100 CLL 2686 007505 2134 ISZ SUDOSC 2687 007506 5274 JMP .-12 /MORE SHIFTING 2688 007507 1212 TAD PSDCAM 2689 007510 7510 SPA 2690 007511 7020 CML /LINK=AC0 2691 007512 5660 JMP I PSDASR 2692 007513 7763 7763 2693 007514 0000 PSDDVI, 0 /DVI 2694 007515 3212 DCA PSDCAM /SAVE HIGH ORDER DIVIDEND 2695 007516 1714 TAD I PSDDVI /DIVISOR 2696 007517 2314 ISZ PSDDVI /EXIT POINT 2697 007520 7141 CLL CMA IAC 2698 007521 3216 DCA MQLMUY /2'S COMPLEMENT OF DIVISOR 2699 007522 1212 TAD PSDCAM /HIGH ORDER DIVIDEND 2700 007523 1216 TAD MQLMUY 2701 007524 7630 SZL CLA 2702 007525 5714 JMP I PSDDVI /DIVIDE OVERFLOW 2703 007526 1313 TAD PSDDVI-1 /7763 2704 007527 3252 DCA PSDLSR /COUNTER 2705 007530 5341 JMP .+11 2706 007531 1212 TAD PSDCAM 2707 007532 7004 RAL 2708 007533 3212 DCA PSDCAM 2709 007534 1212 TAD PSDCAM 2710 007535 1216 TAD MQLMUY 2711 007536 7430 SZL 2712 007537 3212 DCA PSDCAM 2713 007540 7200 CLA 2714 007541 1133 TAD SUDOMQ 2715 007542 7004 RAL 2716 007543 3133 DCA SUDOMQ 2717 007544 2252 ISZ PSDLSR 2718 007545 5331 JMP .-14 2719 007546 1212 TAD PSDCAM /COUNT EXHAUSTED 2720 007547 5714 JMP I PSDDVI /EXIT 2721 2722 007550 0000 PSDMUY, 0 /MUY 2723 007551 7300 CLA CLL 2724 007552 3223 DCA MQLDVI /CLEAR PRODUCT (MOST SIG.) REGISTER 2725 007553 1313 TAD PSDDVI-1 2726 007554 3252 DCA PSDLSR /LOOP COUNTER 2727 007555 1750 TAD I PSDMUY 2728 007556 3207 DCA PSDMQL /OPERAND 2729 007557 2350 ISZ PSDMUY /EXIT POINT 2730 007560 5370 JMP .+10 2731 007561 1223 TAD MQLDVI 2732 007562 7420 SNL 2733 007563 5366 JMP .+3 2734 007564 7100 CLL 2735 007565 1207 TAD PSDMQL 2736 007566 7010 RAR 2737 007567 3223 DCA MQLDVI 2738 007570 1133 TAD SUDOMQ 2739 007571 7010 RAR 2740 007572 3133 DCA SUDOMQ /LOW ORDER PRODUCT 2741 007573 2252 ISZ PSDLSR 2742 007574 5361 JMP .-13 2743 007575 1223 TAD MQLDVI /HIGH ORDER PRODUCT 2744 007576 5750 JMP I PSDMUY /EXIT 2745 PAGE /NEXT PAGE 2746 > 2747 IFNZRO EAE < 2748 MUY= 7405 /EAE MULTIPLY 2749 DVI= 7407 /EAE DIVIDE 2750 SHL= 7413 /EAE SHIFT LEFT 2751 MQL= 7421 /LOAD MQ;CLEAR AC 2752 MQA= 7501 /READ MQ 2753 > 2754 2755 / 2756 /THESE ROUTINES MAP VARIOUS USER INTERFACES TO THE TANK 2757 /SWITCH REGISTER LAYOUT. USING THE ACTUAL FRONT PANEL 2758 /SWITCHES IS NOT RECOMMENDED, AS THEY ARE SOMEWHAT FRAGILE. 2759 /THE TANK GAME USES THE FOLLOWING BIT ASSIGNMENTS: 2760 / 0 UNASSIGNED 2761 / 1 UNASSIGNED 2762 / 2 BACKWARDS/FORWARDS 2763 / 3 STEER LEFT (CCW) 2764 / 4 STEER RIGHT (CW) 2765 / 5 FIRE 2766 /THE OTHER PLAYER USES THE OTHER HALF OF THE REGISTER, 2767 /WITH BITS 8-11 CORRESPONDING TO BITS 2-5. 2768 RFORW= 10 2769 RCCW= 04 2770 RCW= 02 2771 RFIRE= 01 2772 LFORW= 10^100 2773 LCCW= 04^100 2774 LCW= 02^100 2775 LFIRE= 01^100 2776 2777 / 2778 /WHERE POSSIBLE, WE ALSO USE OSR TO MERGE THE VALUE FROM THE 2779 /SWITCHES, ALLOWING GAME PLAY WITHOUT THE SPECIAL HARDWARE. 2780 / 2781 *1130 2782 IFNZRO RICM12 < 2783 / 2784 /THE RHODE ISLAND COMPUTER MUSEUM HAS BUILT SOME GAME CONTROLLERS. 2785 /THESE CONTROLLERS ARE CONNECTED TO THE SXL INSTRUCTION: 2786 / COLOR SXL ACTION 2787 / ----- --- ------ 2788 / WHITE 0,10 FIRE 2789 / RED 1,11 ROTATE CCW 2790 / BLUE 2,12 ROTATE CLOCKWISE 2791 / YELLOW 3,13 THRUST 2792 / BLACK UNASSIGNED 2793 / ORANGE UNASSIGNED 2794 / 2795 GETBUT, .-. /Return Address goes here 2796 CLA /Clear the AC 2797 LINC /Enter LINC Mode 2798 LMODE /Inform assembler 2799 SXL 0 /See if Button 0 is closed 2800 JMP BUT1 /Don't set the AC bits if the button is not pressed 2801 BSE+20 /Set the corresponding bit in the AC 2802 LFIRE /Left Fire rockets 2803 BUT1, SXL 1 /See if Button 1 is closed 2804 JMP BUT2 /Don't set the AC bits if the button is not pressed 2805 BSE+20 /Set the corresponding bit in the AC 2806 LCCW /Left Rotate the ship counter clockwise 2807 BUT2, SXL 2 /See if Button 2 is closed 2808 JMP BUT3 /Don't set the AC bits if the button is not pressed 2809 BSE+20 /Set the corresponding bit in the AC 2810 LCW /Left Rotate the ship clockwise 2811 BUT3, SXL 3 /See if Button 3 is closed 2812 JMP BUT10 /Don't set the AC bits if the button is not pressed 2813 BSE+20 /Set the corresponding bit in the AC 2814 LFORW /Left Fire thrust 2815 BUT10, SXL 10 /See if Button 10 is closed 2816 JMP BUT11 /Don't set the AC bits if the button is not pressed 2817 BSE+20 /Set the corresponding bit in the AC 2818 RFIRE /Right Fire rockets 2819 BUT11, SXL 11 /See if Button 11 is closed 2820 JMP BUT12 /Don't set the AC bits if the button is not pressed 2821 BSE+20 /Set the corresponding bit in the AC 2822 RCCW /Right Rotate the ship counter clockwise 2823 BUT12, SXL 12 /See if Button 12 is closed 2824 JMP BUT13 /Don't set the AC bits if the button is not pressed 2825 BSE+20 /Set the corresponding bit in the AC 2826 RCW /Right Rotate the ship clockwise 2827 BUT13, SXL 13 /See if Button 13 is closed 2828 JMP BUT99 /Don't set the AC bits if the button is not pressed 2829 BSE+20 /Set the corresponding bit in the AC 2830 RFORW /Right Fire rockets 2831 BUT99, PDP /Enter PDP Mode 2832 PMODE /Inform assembler 2833 OSR /OR in the switch register because we might 2834 /not have control boxes 2835 JMP I GETBUT /Go back to the caller 2836 > 2837 2838 IFNZRO M1703 < 2839 / 2840 /THE M1703 EMULATION ON THE SPACEWAR BOARD IS SET UP FOR SPCWR3. 2841 /WHICH IS TO SAY, THE BITS ARE: 2842 / 0,8 /FIRE 2843 / 1,9 /CCW 2844 / 2,10 /CW 2845 / 3,11 /FORWARD 2846 /WE DESIRE TO SWAP FORWARD AND FIRE, AND ALSO TO SHIFT THE HIGH BITS 2847 /RIGHT. 2848 001130 0000 GETBUT, .-. 2849 001131 3373 DCA SWR /INITIALIZE RESULT 2850 001132 6144 6144 /GET M1703 INPUT 2851 001133 7404 OSR /OR IN THE SWITCH REGISTER 2852 001134 4361 JMS BIT /IF TOP BIT SET 2853 001135 0100 LFIRE /FIRE 2854 001136 4361 JMS BIT /IF NEXT BIT SET 2855 001137 0400 LCCW /TURN 2856 001140 4361 JMS BIT /IF NEXT BIT SET 2857 001141 0200 LCW /TURN 2858 001142 4361 JMS BIT /IF NEXT BIT SET 2859 001143 1000 LFORW /FORWARD 2860 001144 7006 RTL /SHIFT PAST DEAD BITS 2861 001145 7006 RTL 2862 001146 4361 JMS BIT /IF TOP BIT SET 2863 001147 0001 RFIRE /FIRE 2864 001150 4361 JMS BIT /IF NEXT BIT SET 2865 001151 0004 RCCW /TURN 2866 001152 4361 JMS BIT /IF NEXT BIT SET 2867 001153 0002 RCW /TURN 2868 001154 4361 JMS BIT /IF NEXT BIT SET 2869 001155 0010 RFORW /FORWARD 2870 001156 7200 CLA /LOAD RESULT 2871 001157 1373 TAD SWR 2872 001160 5730 JMP I GETBUT /RETURN TO CALLER 2873 001161 0000 BIT, .-. /LOOK AT NEXT BIT 2874 001162 7004 RAL /SHIFT NEXT BIT 2875 001163 3374 DCA SAVEA /SAVE AC 2876 001164 7430 SZL /NEED TO ADD TO RESULT? 2877 001165 1761 TAD I BIT /YES, GET AMOUNT TO ADD 2878 001166 2361 ISZ BIT /SET UP FOR RETURN 2879 001167 1373 TAD SWR /UPDATE RESULT 2880 001170 3373 DCA SWR 2881 001171 1374 TAD SAVEA /GET AC BACK 2882 001172 5761 JMP I BIT /RETURN TO CALLER 2883 001173 0000 SWR, .-. /RESULT BITS IN SWR ORDER 2884 001174 0000 SAVEA, .-. /SAVED INPUT BITS 2885 > 2886 IFNZRO SUM < 2887 *77 2888 000077 1130 GTBUT, GETBUT /POINTER TO BUTTON ROUTINE 2889 LAS= JMS I GTBUT /READ THE BUTTONS 2890 > 2891 $ A02 0202 A106 0306 A12 0212 A125 0325 A130 0330 A131 0331 A153 0353 A154 0354 A155 0355 A156 0356 A17 0217 A23 0223 A33 0233 A34 0234 A52 0252 A60 0260 A72 0272 B00 0400 BIT 1161 C00 0600 C100 0700 C105 0705 C116 0716 C126 0726 C150 0750 C151 0751 C152 0752 C153 0753 C154 0754 C155 0755 C156 0756 C157 0757 C160 0760 C20 0620 C32 0632 D00 1000 D102 1102 D106 1106 D113 1113 D115 1115 D116 1116 D117 1117 D120 1120 D121 1121 D122 1122 D123 1123 D124 1124 D141 1141 D161 1161 D53 1053 D57 1057 D65 1065 D72 1072 DVI 4527 E00 1200 E105 1305 E117 1317 E123 1323 E127 1327 E141 1341 E143 1343 E145 1345 E156 1356 E157 1357 E160 1360 E161 1361 E162 1362 E163 1363 E164 1364 E55 1255 E57 1257 E77 1277 EAE 0000 F00 1400 F07 1407 F10 1410 F107 1507 F143 1543 F150 1550 F154 1554 F156 1556 F157 1557 F160 1560 F167 1567 F30 1430 F44 1444 F50 1450 F55 1455 F56 1456 F57 1457 F60 1460 F61 1461 F73 1473 F76 1476 G00 1600 G115 1715 G124 1724 G133 1733 G134 1734 G135 1735 G145 1745 G22 1622 G52 1652 G75 1675 GETBUT 1130 GTBUT 0077 H00 2000 H01 2001 H03 2003 H06 2006 H10 2010 H106 2106 H113 2113 H124 2124 H125 2125 H14 2014 H141 2141 H143 2143 H145 2145 H151 2151 H164 2164 H20 2020 H21 2021 H22 2022 H23 2023 H24 2024 H37 2037 H40 2040 H41 2041 H46 2046 H53 2053 H63 2063 I00 2200 I04 2204 I101 2301 I102 2302 I103 2303 I107 2307 I123 2323 I130 2330 I131 2331 I134 2334 I144 2344 I17 2217 I31 2231 I43 2243 I66 2266 I75 2275 I76 2276 J00 2400 J10 2410 J101 2501 J102 2502 J114 2514 J135 2535 J141 2541 J152 2552 J165 2565 J17 2417 J43 2443 J51 2451 J66 2466 J75 2475 J76 2476 K00 2600 K02 2602 K03 2603 K06 2606 K07 2607 K10 2610 K116 2716 K13 2613 K145 2745 K15 2615 K16 2616 K17 2617 K174 2774 K21 2621 K22 2622 K23 2623 K25 2625 K26 2626 K31 2631 K32 2632 K33 2633 K36 2636 K40 2640 K41 2641 K44 2644 K45 2645 K63 2663 K75 2675 L00 3000 L11 3011 L121 3121 L127 3127 L140 3140 L26 3026 L72 3072 L73 3073 LAS 4477 LCCW 0400 LCW 0200 LFIRE 0100 LFORW 1000 LIKESV 0001 M00 3200 M100 3300 M101 3301 M113 3313 M115 3315 M116 3316 M117 3317 M120 3320 M123 3323 M126 3326 M127 3327 M132 3332 M14 3214 M153 3353 M161 3361 M1703 0001 M31 3231 M46 3246 M74 3274 MQA 4532 MQL 4526 MQLDVI 7423 MQLMUY 7416 MUY 4530 N00 3400 N01 3401 N100 3500 N101 3501 N102 3502 N103 3503 N104 3504 N113 3513 N117 3517 N14 3414 N143 3543 N37 3437 N47 3447 O00 3600 O100 3700 O101 3701 O102 3702 O121 3721 O123 3723 O127 3727 O13 3613 O133 3733 O134 3734 O135 3735 O136 3736 O14 3614 O147 3747 O15 3615 O152 3752 O154 3754 O36 3636 O46 3646 O56 3656 O77 3677 P00 4000 PDP12 0000 PSDASR 7460 PSDCAM 7412 PSDDVI 7514 PSDLSR 7452 PSDMQA 7400 PSDMQL 7407 PSDMUY 7550 PSDSHL 7431 R100 4500 R134 4534 RCCW 0004 RCW 0002 RFIRE 0001 RFORW 0010 RICM12 0000 S04 4604 S100 4700 S134 4734 S164 4764 S165 4765 S166 4766 S167 4767 S170 4770 S171 4771 S172 4772 S173 4773 S174 4774 S175 4775 S177 4777 S21 4621 S30 4630 S31 4631 S54 4654 S67 4667 S70 4670 S71 4671 S72 4672 S73 4673 S74 4674 S75 4675 S76 4676 SAVEA 1174 SHL 4531 START 0200 SUDOMQ 0133 SUDOSC 0134 SUM 0001 SWR 1173 U134 5334 VC8EPT 0064 XB00 6400 XB01 6401 XB05 6405 XB103 6503 XB114 6514 XB115 6515 XB117 6517 XB124 6524 XB151 6551 XB47 6447 XB54 6454 XB64 6464 XC00 6600 XC01 6601 XC03 6603 XC05 6605 XC07 6607 XC100 6700 XC101 6701 XC103 6703 XC105 6705 XC11 6611 XC110 6710 XC111 6711 XC116 6716 XC117 6717 XC122 6722 XC124 6724 XC126 6726 XC140 6740 XC17 6617 XC22 6622 XC40 6640 XC47 6647 XC77 6677 Z00 0000 Z01 0001 Z02 0002 Z03 0003 Z04 0004 Z06 0006 Z07 0007 Z10 0010 Z100 0100 Z101 0101 Z105 0105 Z11 0011 Z110 0110 Z111 0111 Z112 0112 Z115 0115 Z116 0116 Z117 0117 Z12 0012 Z120 0120 Z121 0121 Z122 0122 Z123 0123 Z124 0124 Z125 0125 Z13 0013 Z134 0134 Z135 0135 Z136 0136 Z137 0137 Z14 0014 Z140 0140 Z141 0141 Z142 0142 Z143 0143 Z144 0144 Z145 0145 Z146 0146 Z147 0147 Z15 0015 Z150 0150 Z151 0151 Z152 0152 Z153 0153 Z154 0154 Z155 0155 Z156 0156 Z157 0157 Z16 0016 Z160 0160 Z161 0161 Z162 0162 Z163 0163 Z164 0164 Z165 0165 Z166 0166 Z167 0167 Z17 0017 Z20 0020 Z21 0021 Z22 0022 Z23 0023 Z24 0024 Z25 0025 Z26 0026 Z27 0027 Z30 0030 Z31 0031 Z32 0032 Z33 0033 Z34 0034 Z35 0035 Z37 0037 Z40 0040 Z41 0041 Z42 0042 Z43 0043 Z44 0044 Z45 0045 Z46 0046 Z47 0047 Z50 0050 Z51 0051 Z52 0052 Z53 0053 Z54 0054 Z55 0055 Z56 0056 Z57 0057 Z61 0061 Z62 0062 Z77 0077