1 / SPACE WAR 2 / 3 / INTERPLANETARY DEATH AND DESTRUCTION ON YOUR PDP8 4 / 5 / HARDWARE NEEDED: 6 / PDP8/E /F /M /A 7 / VC8E M869/M855 8 / DK8EA M882 9 / DR8EA M863 (OPTIONAL FOR /E /F /M TO CONNECT JOYSTICKS) 10 / 11 / ORIGINAL WRITTEN BY EVAN SUITS 12 / MODIFIED BY ROLAND HUISMAN FOR VC8E, DK8EA, DR8EA 13 / 14 / THIS VERSION WORKS OFF EITHER THE M863 DR8EA OR THE SR. 15 / WHEN THE PROGRAM IS STARTED (AT 0200) OR RESTARTED THE 16 / SR WILL BE TESTED AND IF =0000 WILL BE USED FOR THE COMMAND 17 / INPUT. OTHERWISE, THE M863 DR8EA INPUTS WILL BE USED. 18 / 19 / WHEN THE PROGRAM IS STARTED THE TWO SHIPS SHOULD 20 / APPEAR ON THE SCREEN WITH SHIP 'ONE' ON THE LEFT, SHIP 21 / 'TWO' ON THE RIGHT. 22 / 23 / THE COMMAND WORD BIT ASSIGNMENTS ARE: 24 / 25 / SR BIT: M863: FUNCTION: 26 / 27 / 0 0 SHIP ONE ROTATES LEFT 28 / 1 1 SHIP ONE ROTATES RIGHT 29 / 2 2 SHIP ONE ACCELERATES 30 / 3 3 SHIP ONE FIRES 31 / 32 / 8 4 SHIP TWO ROTATES LEFT 33 / 9 5 SHIP TWO ROTATES RIGHT 34 / 10 6 SHIP TWO ACCELERATES 35 / 11 7 SHIP TWO FIRES 36 / 37 / 38 / NOTE THAT TURNING RIGHT AND LEFT SIMULTANEOUSLY THROWS 39 / THE SHIP INTO HYPERSPACE. IN THE CURRENT VERSION THE ODDS 40 / ARE IN FAVOR OF YOUR MAKING IT BACK SAFELY. THE GAME IS OVER 41 / WHEN ONE OR BOTH OF THE SHIPS HAVE BEEN DESTROYED AND THE 42 / WINNER (IF ANY) IS IN NORMAL SPACE. WHEN THE WINNER 43 / HAS BEEN ANNOUNCED, HIT ANY TTY KEY TO RESTART. 44 / 45 46 47 48 / SYMBOL DEFINITIONS FOR PAL8-PAL10 49 50 /DK8-EA DEFINITIONS 51 CLEI=6131 / ENABLE INTERRUPTS FROM M882 52 CLDI=6132 / CLEAR INTERRUPT 53 CLSK=6133 / SKIP ON CLOCK FLAG AND CLEAR FLAG 54 55 IFDEF DR8E < 56 /DR8-EA DEFINITIONS 57 DBDI=6500 / DISABLE INTERRUPUS CAUSED BY LOGICAL ONES 58 DBCI=6503 / CLEAR SELECTIVE INPUT REGISTER. ONES IN AC CLEAR CORRESPONDING BITS 59 DBRI=6504 / TRANSFERS ALL INPUT BITS TO AC 60 > 61 /VC8E DEFINITIONS 62 DILC=6050 / DISPLAY LOGIC CLEAR 63 DICD=6051 / DISPLAY CLEAR DONE FLAG 64 DISD=6052 / WAIT FOR SETTLING 65 DILX=6053 / LOAD X FROM AC 66 DILY=6054 / LOAD Y FROM AC 67 DIXY=6055 / INTENSIFY POINT 68 69 70 71 72 73 / 74 / THIS PROGRAM RELIES ON THE PROGRAM INTERUPT FACILITY FOR 75 / REAL WORLD TIMING PURPOSES. 76 / 77 78 *0 79 80 00000 0000 0 /EFFECTIVE JMS 0 ON PROGRAM INTERUPT 81 00001 5402 JMP I 2 /EXIT IMMEDIATLY TO SERVICE ROUTINE 82 00002 0330 INTSER 83 84 00003 0000 EMPTY, 0 /THESE LOCATIONS ARE RESERVED FOR 85 00004 0000 ODT1, 0 /DEBUGGERS, ETC. 86 00005 0000 ODT2, 0 87 00006 0000 ODT3, 0 88 89 / 90 / ALL THE AUTO INDEX REGISTERS ARE NAMED BUT NOT ALL OF 91 / THEM ARE USED. THE STATUS OF ANY GIVEN REGISTER CANNOT 92 / BE DETERMINED AT ANY TIME EXCEPT BY CAREFUL INSPECTION OF 93 / THE CODE. 94 / 95 96 *10 97 98 00010 0000 AUTO10, 0 99 00011 0000 AUTO11, 0 100 00012 0000 AUTO12, 0 101 00013 0000 AUTO13, 0 102 00014 0000 AUTO14, 0 103 00015 0000 AUTO15, 0 104 00016 0000 AUTO16, 0 105 00017 0000 AUTO17, 0 106 107 / 108 / THE FOLLOWING ARE THE DATA FILES FOR THE TWO SPACE SHIPS 109 / AS WELL AS CERTAIN OTHER PARAMETERS FOR CALCULATING POSITIONS 110 / AND SO ON. THE ORDER OF THE LOCATIONS MUST BE PRESERVED 111 / ALTHOUGH THE SIZE OF THE TABLES MAY BE VARIED 112 / 113 114 *20 115 116 00020 0000 ONEOUT, 0 /IF NON-ZERO CONTAINS REAMINING TIME OF EXPLOSION 117 00021 0000 ONECNT, 0 /NUMBER OF POINTS IN FIGURE TO BE DISPLAYED 118 00022 0000 ONEFLG, 0 /IN OR OUT OF NORMAL SPACE 119 00023 0000 ONETHE, 0 /ANGLE OF ORIENTATION ON SCREEN 120 00024 0000 ONEVEX, 0 /X COMPONENT OF VELOCITY 121 00025 0000 ONEVEY, 0 /Y COMPONENT OF VELOCITY 122 00026 0000 ONEPEX, 0 /X POSITION (12 BITS) 123 00027 0000 ONEPEY, 0 /Y POSITION (12 BITS) 124 00030 0000 ONESIN, 0 /SINE OF ANGLE 125 00031 0000 ONECOS, 0 /COSINE OF ANGLE 126 00032 0000 ONEFIN, 0 /SET WHEN EXPLOSION DIES OUT 127 128 00033 0000 TWOOUT, 0 /SAME CONTENT AND ORDER 129 00034 0000 TWOCNT, 0 /AS ABOVE 130 00035 0000 TWOFLG, 0 131 00036 0000 TWOTHE, 0 132 00037 0000 TWOVEX, 0 133 00040 0000 TWOVEY, 0 134 00041 0000 TWOPEX, 0 135 00042 0000 TWOPEY, 0 136 00043 0000 TWOSIN, 0 137 00044 0000 TWOCOS, 0 138 00045 0000 TWOFIN, 0 139 140 141 / 142 / THESE LOCATIONS ARE USED BY THE "VECTOR GENERATOR" IN 143 / DISPLAYING THE FIGURES. A FOUR DOT VECTOR WILL BE DRAWN 144 / FROM XONE,YONE TO XTWO,YTWO WITH STEPS OF SIZE DIXTEM,DIYTEM 145 / 146 147 00046 0000 XONEDS, 0 148 00047 0000 YONEDS, 0 149 00050 0000 XTWODS, 0 150 00051 0000 YTWODS, 0 151 00052 0000 DIXTEM, 0 152 00053 0000 DIYTEM, 0 153 00054 0000 DISCNT, 0 154 155 156 / 157 / THE NEXT LOCATIONS ARE USED BY CALPOS TO DO A FAST 158 / MULTIPLY TO HELP CALCULATE THE DISPLAY FILES. 159 / 160 00055 0000 T10SIN, 0 161 00056 0000 T20SIN, 0 162 00057 0000 T30SIN, 0 163 00060 0000 T10COS, 0 164 00061 0000 T20COS, 0 165 00062 0000 T30COS, 0 166 167 00063 0000 CALSIN, 0 168 00064 0000 CALCOS, 0 169 170 171 / 172 / NOW COME THE VARIOUS ODDS AND ENDS ONE USUALLY FINDS ON 173 / PAGE ZERO 174 / 175 176 00065 6400 SINE, SINEIN 177 00066 6463 COSINE, COSINI 178 00067 6621 MULT, MULTI 179 00070 6675 RSHIFT, SHIFTR 180 00071 1474 VECTOR, DISPLY 181 00072 6703 CALPOS, POSCAL 182 00073 0000 INTWRD, 0 183 00074 0000 CLOCK, 0 184 00075 2200 HYPER, HYPSET 185 00076 7000 MESOUT, CHARS 186 00077 2510 THEADJ, THEAJI 187 00100 2464 VEESCL, VEELIM 188 00101 1547 ISHFT, DISHFT 189 00102 1712 RESET1, RESE1 190 00103 0000 GAMOVR, 0 191 00104 0000 ACCFLG, 0 192 00105 7750 ACCPER, -30 193 00106 7400 MEXP, -400 194 195 00107 0000 PROX, 0 196 00110 0000 PROY, 0 197 00111 7420 PROLIF, -360 198 00112 0000 BUFTMP, 0 199 00113 7400 ONEFIL, DISBUF 200 00114 7440 TWOFIL, DISBUF+40 201 202 00115 0005 P5, 5 203 00116 0010 P10, 10 204 00117 0017 P17, 17 205 00120 0020 P20, 20 206 00121 0037 P37, 37 207 00122 0040 P40, 40 208 00123 0100 P100, 100 209 00124 0132 P132, 132 210 00125 0200 P200, 200 211 00126 0400 P400, 400 212 00127 0550 P550, 550 213 00130 3777 P3777, 3777 214 215 00131 7774 M4, -4 216 00132 7772 M6, -6 217 00133 7770 M10, -10 218 00134 7767 M11, -11 219 00135 7514 M264, -264 220 00136 7600 M200, -200 221 00137 7400 M400, -400 222 00140 7230 M550, -550 223 00141 1000 TWOCOMP, 1000 224 225 226 / 227 / THE PROGRAM MAY BE STARTED OR RESTARTED AT ANYTIME AT 0200. 228 / THE DATA FILE ON PAGE ZERO IS CLEARED, ALL FLAGS INITIALIZED, 229 / AND THE SR EXAMINED. IF THE SR=0 THE DISPLAY UPDATE ROUTINES 230 / ARE SET TO PICK UP THE STATUS WORD FROM THE SR. IF THE SR 231 / DOES NOT EQUAL ZERO, THE STATUS WORD IS READ FROM THE EIGHT 232 / CONTINGENCY INPUTS ON THE BLUE RIBBON CONNECTOR OF THE AX08 233 / (XR OPTION ONLY). JUMP IS THEN TO THE DISPLAY 234 / FILE UPDATE TO START OFF THE GAME. 235 / 236 237 *200 238 239 00200 7300 START, CLA CLL /START OR RESTART HERE ANY OLD TIME 240 IFDEF DR8E < 241 LAS /SR 242 SNA CLA 243 TAD SWRD /USE THE SR 244 TAD XROPT /USE THE BLUE RIBBON CONNECTOR 245 DCA COLDST /AND LEAVE IN THE TRAP LOCATION 246 > 247 248 RESTRT, 249 IFDEF DR8E < 250 CLA CMA 251 DBCI /CLEAR INPUT REGISTER M863 252 DBDI /DISABLE INTERRUPTS FROM M863 253 > 254 00201 7300 CLA CLL 255 256 00202 1117 TAD P17 /FIRST CLEAR THE POSITION AND DATA 257 00203 3010 DCA AUTO10 /TABLES OF THE TWO SHIPS 258 00204 1315 TAD TABLEN 259 00205 3011 DCA AUTO11 260 00206 3410 DCA I AUTO10 261 00207 2011 ISZ AUTO11 262 00210 5206 JMP .-2 263 264 00211 1321 TAD STRT1 /SET THE STARTING POSITIONS OF THE 265 00212 3026 DCA ONEPEX /TWO SHIPS 266 00213 1322 TAD STRT2 267 00214 3041 DCA TWOPEX 268 00215 1323 TAD STRTY 269 00216 3027 DCA ONEPEY 270 00217 1323 TAD STRTY 271 00220 3042 DCA TWOPEY 272 00221 1121 TAD P37 /SET TRIG FUNCTIONS JUST IN CASE 273 00222 3031 DCA ONECOS 274 00223 1121 TAD P37 275 00224 3044 DCA TWOCOS /ZERO DEGREES IS POINTING STRAIGHT UP 276 00225 1105 TAD ACCPER /SET COUNT FOR VELOCITY INCREASE 277 00226 3104 DCA ACCFLG 278 00227 3032 DCA ONEFIN /CLEAR ALL GAME END FLAGS 279 00230 3045 DCA TWOFIN 280 00231 3103 DCA GAMOVR 281 00232 4714 JMS I BUFSET /RESET ALL PROJECTILE DISPLAY BUFFERS 282 00233 6131 CLEI /START UP THE M882 CLOCK 283 00234 6042 TCF /CLEAR OTHER REMAINING LIKELY FLAGS 284 00235 6022 PCF 285 00236 6012 RRB 286 00237 6050 DILC 287 00240 6051 DICD 288 00241 7200 CLA 289 00242 5244 JMP COLDST /AND GO TO IT 290 291 292 / 293 / UPDATE IS REACHED WHENEVER THE PROGRAM IS STARTED OR THE 294 / CLOCK COUNT OVERFLOWS INDICATING TIME TO RECALCULATE THE 295 / THE DISPLAY FILES AND REFRESH THE DISPLAY. THE INTERUPT 296 / COUNT IS RESTORED, THE STATUS WORD IS PICKED UP FROM EITHER 297 / THE SR OR BRC, AND THE RECALCULATION PROCESS BEGUN. 298 / 299 300 00243 7300 UPDATE, CLA CLL /HERE ON CLOCK COUNT OVERFLOW. 301 /START NEXT SWEEP 302 COLDST, 303 IFDEF DR8E < 304 0 /TRAP TO READ SR OR BRC 305 > 306 00244 7604 LAS /HERE FOR /SR 307 IFNDEF DR8E < 308 00245 6144 6144 /VRS: READ M1703, IF ANY 309 /VRS: BITS FROM MY JOYSTICKS ARE ORDERED FRLA, NOT LRAF AS 310 /VRS: EXPECTED. FIX THAT UP HERE. 311 00246 3073 DCA INTWRD /VRS: SAVE CONTROL BITS 312 00247 1073 TAD INTWRD /VRS: GET CONTROL BITS 313 00250 0324 AND C4010 /VRS: EXTRACT F BITS 314 00251 7112 CLL RTR; RAR /VRS: ...AND MOVE THEM DOWN 00252 7010 315 00253 3316 DCA INTTEM /VRS: SAVE THEM A MOMENT 316 00254 1073 TAD INTWRD /VRS: GET CONTROL BITS AGAIN 317 00255 0325 AND C3006 /VRS: GET RL BITS 318 00256 3327 DCA RLBITS /VRS: SAVE RL BITS 319 00257 1327 TAD RLBITS /VRS: GET RL BITS 320 00260 7112 CLL RTR /VRS: REPOSITION 321 00261 1327 TAD RLBITS /VRS: FORM RLRL 322 00262 7104 CLL RAL /VRS: REPOSITION 323 00263 0325 AND C3006 /VRS: GET LR BITS 324 00264 3327 DCA RLBITS /VRS: SAVE LR BITS 325 00265 1073 TAD INTWRD /VRS: GET CONTROL BITS AGAIN 326 00266 0326 AND C0401 /VRS: ISOLATE A BITS 327 00267 1327 TAD RLBITS /VRS: MERGE SAVED LR BITS 328 00270 7104 CLL RAL /VRS: REPOSITION A BITS 329 00271 1316 TAD INTTEM /VRS: MERGE SAVED F BITS 330 > 331 00272 3073 DCA INTWRD /STORE TEMPORARILY 332 00273 1073 TAD INTWRD /MASK OUT LEFTMOST 4 BITS 333 00274 7012 RTR /FOR NUMBER ONE 334 00275 7012 RTR 335 00276 0317 AND LFTHAF 336 00277 3316 DCA INTTEM /AND STORE 337 00300 1073 TAD INTWRD /MASK OUT RIGHTMOST BITS FOR NUMBER TWO 338 00301 0320 AND RYTHAF 339 00302 1316 TAD INTTEM /ADD TOGETHER 340 IFDEF DR8E < 341 JMP .+2 /AND CONTINUE 342 CODST, DBRI /HERE FOR BRC - PICK UP AND CLEAR 343 > 344 00303 3073 DCA INTWRD /CONTINUE 345 00304 1140 TAD M550 /RESTORE INTERUPT COUNT BEFORE NEXT 346 00305 6001 ION /GET READY FOR THE NEXT CYCLE 347 00306 7200 CLA /COUNTER BYPASSED TO RUN ON 100HZ INSTEAD OF 10KHZ 348 00307 7540 SMA SZA /(SKIP ON MINUS AC /SKIP ON ZERO AC) 349 00310 1105 TAD ACCPER /IF ZERO, RESET COUNT 350 00311 3104 DCA ACCFLG 351 352 00312 5713 JMP I .+1 /NOW GET DOWN TO WORK. 353 00313 0400 ONEUP 354 355 00314 1743 BUFSET, SETBUF 356 00315 7733 TABLEN, AUTO17-CALCOS 357 00316 0000 INTTEM, 0 358 00317 0360 LFTHAF, 0360 359 00320 0017 RYTHAF, 0017 360 00321 1000 STRT1, 1000 / X START POSITION SHIP 1 361 00322 7000 STRT2, -1000 / X START POSITION SHIP 2 362 00323 3000 STRTY, 3000 / Y START POSITION 363 IFDEF DR8E < 364 SWRD, 2000-CODST 365 XROPT, JMP CODST 366 > 367 IFNDEF DR8E < 368 00324 4010 C4010, 4010 /VRS: FIRE BITS 369 00325 3006 C3006, 3006 /VRS: RIGHT-LEFT BITS 370 00326 0401 C0401, 0401 /VRS: ACCELERATE BITS 371 00327 0000 RLBITS, .-. /VRS: SAVED RIGHT-LEFT BITS 372 > 373 374 / 375 / THIS IS THE INTERUPT SERVICE ROUTINE. MOST OF THE 376 / INTERUPTS WILL BE FROM THE CRYSTAL CLOCK WHICH WILL BE 377 / COUNTED AND UNLESS THE COUNT OVERFLOWS THE INTERUPT IS 378 / DISMISSED IMMEDIATLY. IF THE COUNT OVER FLOWS, JMP IS TO 379 / UPDATE WITH IOF. 380 / 381 / SPECIAL CASE IS KEYBOARD INTERUPT WHEN THE GAMOVR FLAG IS 382 / SET IN WHICH CASE THE GAME IS RESTARTED. 383 / 384 / UNEXPECTED INTERUPTS ARE COUNTED AND AFTER ENOUGH OF THEM 385 / HAPPEN THE PROGRAM HALTS. IF THIS HAPPENS RELOAD OR FIND THE 386 / STRANGE FLAG 387 / 388 389 00330 3365 INTSER, DCA INTACC /HERE RIGHT AFTER INTERUPT - STORE 390 00331 7010 RAR /AC AND LINK 391 00332 3366 DCA INTLNK /FOR POSSIBLE CONTINUATION 392 00333 6133 CLSK /WAS IT THE CRYSTAL CLOCK? 393 00334 5340 JMP INTBUS /NO TRY SOMETHING ELSE 394 00335 2074 ISZ CLOCK /AND BUMP CLOCK COUNTER 395 00336 7000 NOP /IGNORE OVERFLOW 396 00337 5243 JMP UPDATE /YES, GO TO IT 397 398 399 00340 6031 INTBUS, KSF /HERE ON NON-CLOCK INTERUPT 400 00341 5353 JMP SPURIO /NOT THE KEYBOARD 401 00342 6036 KRB /CLEAR KEYBOARD FLAG 402 00343 1352 TAD N203 /VRS: ^C? 403 00344 7650 SNA CLA 404 00345 5746 JMP I .+1 /VRS: YES: TRY FOR OS/8 405 00346 7600 7600 /VRS: CLA 406 00347 1103 TAD GAMOVR /IS THE GAMEOVER 407 00350 7640 SZA CLA 408 00351 5201 JMP RESTRT /YES, RESTART 409 00352 7575 N203, -203 /VRS: -'^C 410 00353 6042 SPURIO, TCF /NO, HELL WITH IT 411 00354 2367 ISZ INTGLH /COUNT ONE BADDIE 412 00355 7410 SKP 413 00356 7402 HLT /HALT IF TOO MANY BADDIES 414 415 00357 7300 INTRET, CLA CLL /HERE TO DISMISS THE INTERUPT 416 00360 1366 TAD INTLNK 417 00361 7004 RAL 418 00362 1365 TAD INTACC 419 00363 6001 ION 420 00364 5400 JMP I 0 421 422 00365 0000 INTACC, 0 423 00366 0000 INTLNK, 0 424 00367 0000 INTGLH, 0 425 426 427 428 429 430 / 431 / NOW BEGINS THE GREAT UPDATE PROCEEDURE, FIRST FOR SHIP 432 / NUMBER ONE (THE DELTA SHAPED SHIP WHICH APPEARS ON 433 / THE LEFT AT THE START OF THE GAME). IF ALIVE THE STATUS 434 / WORD (INTWRD) IS TESTED FOR REQUESTS FOR LEFT TURN, 435 / RIGHT TURN, THRUST ON, AND LAUNCH PROJECTILE. THESE ACTIONS 436 / MAY OR MAY NOT BE ACTED UPON DEPENDING ON COUNTS AND FLAGS. 437 / WHEN THIS IS COMPLETE THE SAME OPERATION IS PERFORMED FOR 438 / NUMBER TWO. 439 / 440 441 *400 442 443 00400 1022 ONEUP, TAD ONEFLG /FIRST SEE IF IT'S IN NORMAL SPACE 444 00401 7450 SNA 445 00402 5210 JMP ONEOK /YES IT IS 446 00403 7001 IAC /NO, BUT IS IT JUST COMING OUT? 447 00404 7450 SNA 448 00405 1032 TAD ONEFIN /YES, THROW BACK IN IF ALREADY DESTROYED 449 00406 3022 DCA ONEFLG /OTHERWISE JUST COUNT ONE 450 00407 5752 JMP I ITWOUP /AND GO TO FIX UP NUMBER TWO 451 452 00410 1020 ONEOK, TAD ONEOUT /IN NORMAL SPACE - IS IT EXPLODING? 453 00411 7640 SZA CLA 454 00412 5237 JMP ONEFIG /IF YES, ALLOW NO CONTROLS 455 00413 1045 TAD TWOFIN /HAS THE ENEMY BEEN VANQUISHED? 456 00414 7640 SZA CLA 457 00415 4756 JMS I ONEWN /YES, SIGNAL VICTORY 458 00416 1073 TAD INTWRD /NOW BEGIN TEST OF REQUEST 459 00417 0354 AND OP300 /LEFT AND RIGHT TURN TOGETHER MEAN HYPERSPACE! 460 00420 1355 TAD OM300 /TEST BITS 4 AND 5 461 00421 7640 SZA CLA 462 00422 5225 JMP ONELEF /NOPE, CONTINUE 463 00423 7040 CMA /YES, CALL HYPER WITH AC=-1 FOR NUMBER ONE 464 00424 5475 JMP I HYPER 465 00425 1073 ONELEF, TAD INTWRD /REQUEST FOR LEFT TURN? 466 00426 0125 AND P200 /TEST BIT 4 467 00427 7650 SNA CLA 468 00430 5233 JMP ONERYT /NO 469 00431 7340 CLA CLL CMA /YES DECREMENT ANGLE 470 00432 5237 JMP ONEFIG 471 472 00433 1073 ONERYT, TAD INTWRD /HOW ABOUT RIGHT TURN 473 00434 0123 AND P100 /TEST BIT 5 474 00435 7640 SZA CLA 475 00436 7001 IAC /YES, INCREMENT ANGLE 476 477 00437 1023 ONEFIG, TAD ONETHE /PICK UP AND ADJUST ANGLE (MAYBE) 478 00440 4477 JMS I THEADJ /BRING BACK WITHIN LIMITS OF TRIG FUNCTIONS 479 00441 3023 DCA ONETHE /AND STORE 480 00442 1023 TAD ONETHE /FIND THEM TRIG FUNCTIONS 481 00443 4465 JMS I SINE /AND STORE ONCE AND FOR ALL 482 00444 3030 DCA ONESIN /IN THE APPROPRIATE PLACES 483 00445 1023 TAD ONETHE 484 00446 4466 JMS I COSINE 485 00447 3031 DCA ONECOS 486 00450 1020 TAD ONEOUT /DO NOT ALLOW THRUST IF EXPLODING 487 00451 7640 SZA CLA 488 00452 5272 JMP ONEVEL 489 490 491 492 00453 1104 ONEMOV, TAD ACCFLG /ALLOW ANY VELOCITY INCREASE THIS CYCLE? 493 00454 7640 SZA CLA 494 00455 5272 JMP ONEVEL /NOPE 495 00456 1073 TAD INTWRD /YES, ANY REQUESTED? 496 00457 0122 AND P40 /TEST BIT 6 497 00460 7650 SNA CLA 498 00461 5272 JMP ONEVEL /NONE REQUESTED 499 00462 1031 TAD ONECOS /YES, ADD IN VELOCITY INCREMENT DEPENDING 500 00463 1025 TAD ONEVEY /ON ORIENTATION 501 00464 4500 JMS I VEESCL /BUT DO NOT ALLOW TO EXCEED MAXIMUM 502 00465 3025 DCA ONEVEY /AND STORE 503 00466 1030 TAD ONESIN /DO THE SAME FOR THE OTHER (X) COMPONENT 504 00467 1024 TAD ONEVEX 505 00470 4500 JMS I VEESCL 506 00471 3024 DCA ONEVEX 507 508 509 510 00472 1024 ONEVEL, TAD ONEVEX /NOW UPDATE THE POSITION WITH THE 511 00473 4501 JMS I ISHFT /VELOCITY COMPONENTS DIVIDED BY 4 512 00474 4501 JMS I ISHFT /THIS MAINTAINS MAXIMUM RESOLUTION 513 00475 1026 TAD ONEPEX 514 00476 3026 DCA ONEPEX /IGNORE ANY OVERFLOW 515 00477 1025 TAD ONEVEY /DO THE SAME FOR Y COORDINATE 516 00500 4501 JMS I ISHFT /AND VELOCITY COMPONENT 517 00501 4501 JMS I ISHFT 518 00502 1027 TAD ONEPEY 519 00503 3027 DCA ONEPEY 520 00504 1020 TAD ONEOUT /DO NOT ALLOW PROJECTILE LAUNCH IF 521 00505 7640 SZA CLA /EXPLODING 522 00506 5752 JMP I ITWOUP 523 524 525 526 00507 1353 ONELNC, TAD LNC1FG /OTHERWISE, SEE IF RELOAD IS FINISHED 527 00510 7650 SNA CLA 528 00511 5314 JMP .+3 529 00512 2353 ISZ LNC1FG /NO, CONTINUE RELOADING 530 00513 5752 JMP I ITWOUP /AND EXIT 531 00514 1073 TAD INTWRD /YES, READY TO LAUNCH, TRIGGER BEEN PULLED? 532 00515 0120 AND P20 /TEST BIT7 533 00516 7650 SNA CLA 534 00517 5752 JMP I ITWOUP /NO, WAIT FOR A BETTER SHOT 535 /.....I GUESS..... 536 00520 1111 TAD PROLIF /YES, SET CYCLE COUNT FOR THIS LAUNCH 537 00521 3416 DCA I AUTO16 /AUTO16 ALWAYS POINTS AT THE NEXT SLOT IN THE FILE 538 00522 1024 TAD ONEVEX /ADD SHIPS VELOCITY (SCALED OF COURSE) 539 00523 4501 JMS I ISHFT /TO ORIENTATION TO EXTABLISH X VELOCITY 540 00524 4470 JMS I RSHIFT /COMPONENT OF PROJECTILE 541 00525 1030 TAD ONESIN 542 00526 4470 JMS I RSHIFT /AND STICK IT IN THE FILE 543 00527 3416 DCA I AUTO16 544 00530 1030 TAD ONESIN /MOVE THE LAUNCH POINT OUTSIDE THE 545 00531 7106 CLL RTL /SHIP OF ORIGIN 546 00532 1026 TAD ONEPEX 547 00533 3416 DCA I AUTO16 /AND STORE X POSITION 548 00534 1025 TAD ONEVEY /NOW DO THE SAME FOR THE Y VELOCITY AND 549 00535 4501 JMS I ISHFT /POSITION 550 00536 4470 JMS I RSHIFT 551 00537 1031 TAD ONECOS 552 00540 4470 JMS I RSHIFT 553 00541 3416 DCA I AUTO16 554 00542 1031 TAD ONECOS 555 00543 7106 CLL RTL 556 00544 1027 TAD ONEPEY 557 00545 3416 DCA I AUTO16 558 00546 1136 TAD M200 /START RELOAD CYCLE 559 00547 3353 DCA LNC1FG 560 00550 4502 JMS I RESET1 /RESET AUTO16 TO NEXT HOLE 561 562 00551 5752 JMP I .+1 /NOW TO FIX IT UP WITH NUMBER TWO 563 00552 0600 ITWOUP, TWOUP 564 565 00553 0000 LNC1FG, 0 /PROJECTILE LAUNCH ENABLE 566 567 00554 0300 OP300, 300 /HYPERSPACE REQUEST CODE BITS 4 AND 5 568 00555 7500 OM300, -300 569 00556 2522 ONEWN, ONEWIN /POINTER TO VICTORY MESSAGE 570 571 572 / 573 / HERE BEGINS THE UPDATE PROCEEDURE FOR SHIP NUMBER TWO. 574 / OPERATION IS THE SAME AS FOR NUMBER ONE ABOVE. 575 / 576 577 *600 578 579 00600 1035 TWOUP, TAD TWOFLG /FIRST SEE IF IT'S IN NORMAL SPACE 580 00601 7450 SNA 581 00602 5210 JMP TWOOK /YES, CONTINUE 582 00603 7001 IAC /NO, BUMP COUNT AND TEST FOR REENTRY 583 00604 7450 SNA 584 00605 1045 TAD TWOFIN /IF RE-ENTERING THROW BACK OUT IF FINISHED 585 00606 3035 DCA TWOFLG /AND CONTINUE 586 00607 5750 JMP I IONEST 587 588 00610 1033 TWOOK, TAD TWOOUT /HERE WHEN READY TO UPDATE IN NORMAL SPACE 589 00611 7640 SZA CLA /IS IT EXPLODING? 590 00612 5235 JMP TWOFIG /YES DO NOT ALLOW HYPERSPACE 591 00613 1032 TAD ONEFIN /DID WE JUST WIN? 592 00614 7640 SZA CLA 593 00615 4754 JMS I TWOWN /YES ENABLE END OF GAME MESSAGE 594 00616 1073 TAD INTWRD /TEST FOR HYPERSPACE REQUEST 595 00617 0352 AND OP14 596 00620 1353 TAD OM14 /BITS 8 AND 9 MUST BE SET 597 00621 7650 SNA CLA 598 00622 5475 JMP I HYPER /8 AND 9 SET. ENTER HYPER ROUTINE WITH AC=0 599 /FOR SHIP NUMBER 2 600 00623 1073 TWOLEF, TAD INTWRD /TEST FOR LEFT TURN - BIT 8 601 00624 0116 AND P10 602 00625 7650 SNA CLA 603 00626 5231 JMP TWORYT /NOT SET 604 00627 7340 CLA CLL CMA /SET, DECREMENT TWOTHE BY 1 DEGREE 605 00630 5235 JMP TWOFIG /SKIP TEST FOR RIGHT TURN 606 607 00631 7307 TWORYT, CLA CLL IAC RTL /TEST FOR RIGHT TURN - BIT 9 608 00632 0073 AND INTWRD 609 00633 7640 SZA CLA 610 00634 7001 IAC /IF SET INCREMENT TWOTHE BY 1 DEGREE 611 612 00635 1036 TWOFIG, TAD TWOTHE /UPDTAE TWOTHE 613 00636 4477 JMS I THEADJ /BRING TO WITHIN LIMITS OF SINE,COSINE 614 00637 3036 DCA TWOTHE /AND STORE 615 00640 1036 TAD TWOTHE 616 00641 4465 JMS I SINE /CALCULATE SINE AND COSINE FUNCTIONS 617 00642 3043 DCA TWOSIN /AND STORE IN DATA TABLE 618 00643 1036 TAD TWOTHE 619 00644 4466 JMS I COSINE 620 00645 3044 DCA TWOCOS 621 00646 1033 TAD TWOOUT /DO NOT ALLOW VELOCITY CHANGE IF EXPLODING 622 00647 7640 SZA CLA 623 00650 5270 JMP TWOVEL 624 625 626 627 00651 1104 TWOMOV, TAD ACCFLG /NOW FOR ACCELERATION. TEST TO SEE IF ALLOWED 628 00652 7640 SZA CLA /DURING THIS UPDATE CYCLE 629 00653 5270 JMP TWOVEL /NOPE 630 00654 7105 CLL IAC RAL /YES, TEST FOR BIT 2 SET 631 00655 0073 AND INTWRD 632 00656 7650 SNA CLA 633 00657 5270 JMP TWOVEL /NOT SET 634 635 00660 1043 TAD TWOSIN /UPDATE X VELOCITY COMPONENT BY SINE OF 636 00661 1037 TAD TWOVEX /ANGLE OF ORIENTATION 637 00662 4500 JMS I VEESCL /AND SCALE TO NOT EXCEED MAX 638 00663 3037 DCA TWOVEX /UPDATE Y COMPONENT WITH COSINE 639 640 00664 1044 TAD TWOCOS 641 00665 1040 TAD TWOVEY 642 00666 4500 JMS I VEESCL 643 00667 3040 DCA TWOVEY 644 645 646 647 00670 1037 TWOVEL, TAD TWOVEX /NOW UPDATE THE POSITION WITH THE VELOCITY 648 00671 4501 JMS I ISHFT /COMPONENTS/16 649 00672 4501 JMS I ISHFT 650 00673 1041 TAD TWOPEX 651 00674 3041 DCA TWOPEX 652 00675 1040 TAD TWOVEY 653 00676 4501 JMS I ISHFT 654 00677 4501 JMS I ISHFT 655 00700 1042 TAD TWOPEY 656 00701 3042 DCA TWOPEY 657 00702 1033 TAD TWOOUT 658 00703 7640 SZA CLA 659 00704 5750 JMP I IONEST 660 661 662 663 00705 1351 TWOLNC, TAD LNC2FG /NOW CHECK FOR PROJECTILE LAUNCH. FIRST 664 00706 7650 SNA CLA /TEST TO SEE IF RELOAD COMPLETE 665 00707 5312 JMP .+3 666 00710 2351 ISZ LNC2FG /NO, COUNT ONE CYCLE AND EXIT 667 00711 5750 JMP I IONEST 668 00712 7001 IAC /YES, TEST TRIGGER BIT 11 669 00713 0073 AND INTWRD 670 00714 7650 SNA CLA 671 00715 5750 JMP I IONEST /NOT SET, HELL WITH IT 672 673 00716 1111 TAD PROLIF /OK, SET PROJECTILE LIFE 674 00717 3416 DCA I AUTO16 /AUTO16 IS ALWAYS POINTING AT THE NEXT SLOT 675 00720 1037 TAD TWOVEX /ADD SHIPS VELOCITY 676 00721 4501 JMS I ISHFT /(ADJUSTED) 677 00722 4470 JMS I RSHIFT 678 00723 1043 TAD TWOSIN /TO THAT OF PROJECTILE - AGAIN X COMPONENT 679 00724 4470 JMS I RSHIFT /FROM SINE OF ANGLE OF ORIENTATION 680 00725 3416 DCA I AUTO16 681 00726 1043 TAD TWOSIN /SET INITIAL POSITION TO BE JUST AHEAD 682 00727 7106 CLL RTL /OF THE SHIP 683 00730 1041 TAD TWOPEX /X COMPONENT 684 00731 3416 DCA I AUTO16 685 00732 1040 TAD TWOVEY /NOW THE Y COMPONENTS FROM Y VELOCITY 686 00733 4501 JMS I ISHFT /Y POSITION AND COSINE 687 00734 4470 JMS I RSHIFT 688 00735 1044 TAD TWOCOS 689 00736 4470 JMS I RSHIFT 690 00737 3416 DCA I AUTO16 691 00740 1044 TAD TWOCOS 692 00741 7106 CLL RTL 693 00742 1042 TAD TWOPEY 694 00743 3416 DCA I AUTO16 695 00744 1136 TAD M200 696 00745 3351 DCA LNC2FG /200 CYCLES OF RELOAD 697 00746 4502 JMS I RESET1 /DRINK LEADEN DEATH, NUMBER ONE! 698 699 00747 5750 JMP I .+1 /FINAL EXIT TO DISPLAY FILE CALCULATIONS 700 00750 1000 IONEST, ONESET 701 702 00751 0000 LNC2FG, 0 /RELOAD COUNT 703 704 00752 0014 OP14, 14 /HYPERSPACE CODE 705 00753 7764 OM14, -14 706 00754 2530 TWOWN, TWOWIN 707 708 709 / 710 / HERE BEGINS THE DISPLAY CALCULATIONS FOR THE TWO SHIPS. AT 711 / THIS POINT ONLY THE POSITION AND ORIENTATION OF EACH VESSEL 712 / IS ONF INTEREST SINCE THE VELOCITY AND ALL THAT HAVE ALREADY 713 / BEEN TAKEN CARE OF. FOR THE BOTH SHIPS THE DISPLAY FILES ARE 714 / CALCULATED AS A SERIES OF PAIRS OF X,Y COORDINATES. BETWEEN 715 / EACH PAIR OF POINTS A FOUR POINT VECTOR WILL BE DRAWN. THE 716 / ACTUAL COORDINATES ARE CALCULATED AS DISPLACEMENTS 717 / FROM THE CENTRAL PSOTION OF THE SHIP, TAKING INTO ACCOUNT THE 718 / ANGLE OF ORIENTATION. THE FORMULAS FOLLOWED ARE: 719 / 720 / X(POINT)=X(BASE)+X(REL)*COS[THE]+Y(REL)*SINE[THE] 721 / 722 / Y(POINT)=Y(BASE)+Y(REL)*COS[THE]-X(REL)*SINE[THE] 723 / 724 / WHERE SINE[THE] AND COS[THE] ARE THE FUNCTIONS OF THE 725 / ANGLE OF ORIENTATION, X(BASE) AND Y(BASE) ARE THE 726 / COORDINATES OF THE SHIPS POSITION AND X(REL) AND Y(REL) 727 / CORRESPOND TO DISPLACEMENT PAIRS DEPENDING ON THE SHAPE 728 / OF THE FIGURE. ALL X AND Y RELS LIE WITHIN THE RANGE 0-3 AND 729 / THERE FORE ALL NECESSARY DISPLACEMENTS FROM BASE COORDINATES 730 / MAY BE CALCULATEDFROM DIFFERENT COMBINATIONS OF T10SIN, T20COS 731 / ETC. THESE VALUES ARE CALCULATED BY A CALL TO POSCAL WITH THE SINE 732 / AND COSINE OF THE ANGLE OF INTEREST IN CALSIN AND CALCOS. 733 / 734 / FOLLOWING THIS METHOD ANY FIGURE DESCRIBABLE WITH A 7 BY 7 735 / MATRIX OF POINTS MAY BE QUICKLY CALCULATED. 736 / 737 / BEGINNING AT ONESET DIFFERENT DISPLACEMENT PAIRS ARE CALCULATED 738 / AND DEPOSITIED THROUGH AUTO10 TO FORM THE DISPLAY FILE FOR SHIP NUMBER ONE. 739 / 740 741 742 *1000 743 744 01000 7300 ONESET, CLA CLL /BEGIN DISPLAY FILE FOR NUMBER ONE 745 01001 1022 TAD ONEFLG /DONT BOTHER IF NOT IN NORMAL SPACE 746 01002 7640 SZA CLA 747 01003 5753 JMP I ITWOST 748 01004 1030 TAD ONESIN /SET UP FOR MATRIX COMPONENT CALCULATIONS 749 01005 3063 DCA CALSIN 750 01006 1031 TAD ONECOS 751 01007 3064 DCA CALCOS 752 01010 4472 JMS I CALPOS /CALL THE CALCULATOR 753 754 / 755 / CONSIDER THE 7 BY 7 MATRIX OF DISPLACEMENT POINTS WITH THE 756 / CENTER AT 0,0 CORRESPONDING TO THE SHIPS POSITION. A SERIES 757 / OF POINTS IS NOW DESCRIBED AROUND THIS CENTER USING THE 758 / MULTIPLES OF THE TRIG FUNCTIONS JUST CALCULATED 759 / SO THAT ANY POINT ON THE OUTLINE IS DESCRIBABLE AS X,Y 760 / DISPLACED BY X,Y OF THE SHIP ITSELF 761 / 762 763 01011 1113 TAD ONEFIL /SET UP AUTO10 AS THE DISPLAY FILE 764 01012 3010 DCA AUTO10 /POINTER 765 01013 1026 TAD ONEPEX /THE FIRST POINT OF THE OUTLINE IS 766 01014 1057 TAD T30SIN 767 01015 3410 DCA I AUTO10 / 0,3 OR TOP CENTER 768 01016 1027 TAD ONEPEY 769 01017 1062 TAD T30COS 770 01020 3410 DCA I AUTO10 771 772 01021 1060 TAD T10COS 773 01022 7041 CIA /THE SECOND IS 774 01023 1026 TAD ONEPEX 775 01024 3410 DCA I AUTO10 / -1,0 776 01025 1055 TAD T10SIN /OR JUST LEFT OF DEAD CENTER 777 01026 1027 TAD ONEPEY /AND SO ON 778 01027 3410 DCA I AUTO10 779 780 01030 1057 TAD T30SIN 781 01031 1062 TAD T30COS /THE THIRD POINT IS 782 01032 7041 CIA 783 01033 1026 TAD ONEPEX / -3,-3 784 01034 3410 DCA I AUTO10 785 01035 1062 TAD T30COS /OR BOTTOM LEFT HAND CORNER 786 01036 7041 CIA 787 01037 1057 TAD T30SIN 788 01040 1027 TAD ONEPEY 789 01041 3410 DCA I AUTO10 790 791 792 793 01042 1055 TAD T10SIN 794 01043 7041 CIA /FOURTH POINT 795 01044 1026 TAD ONEPEX 796 01045 3410 DCA I AUTO10 / 0,-1 797 01046 1060 TAD T10COS 798 01047 7041 CIA /OR JUST BELOW CENTER 799 01050 1027 TAD ONEPEY 800 01051 3410 DCA I AUTO10 801 802 01052 1073 FLAM1, TAD INTWRD /TEST FOR POWER ON. IF ON, DRAW THE 803 01053 0122 AND P40 /FLAME WITH AN EXTRA POINT SOME 804 01054 7650 SNA CLA /DISTANCE DIRECTLY BELOW THE SHIP 805 01055 5321 JMP ONECON /POWER NOT ON - CONTINUE 806 01056 1020 TAD ONEOUT /DO NOT ALLOW IF EXPLODING 807 01057 7640 SZA CLA 808 01060 5321 JMP ONECON 809 810 01061 1354 TAD ONFG1 /USE ONFG1 TO TURN THE FLAME ON AND 811 01062 7450 SNA /OFF TO MAKE IT FLICKER. DISPLAY THE 812 01063 7344 CLA CLL CMA RAL /FLAME ONE TIME OUT OF THREE 813 01064 3354 DCA ONFG1 814 815 01065 2354 ISZ ONFG1 816 01066 5321 JMP ONECON /ONE OUT OF THREE TIMES THIS WILL SKIP 817 818 01067 1355 TAD ONFG2 /VARY ALSO THE LENGHT OF THE FLAME 819 01070 7040 CMA /WITH LONG SHORT LONG SHORT 820 01071 3355 DCA ONFG2 821 822 01072 1355 TAD ONFG2 /TIP OF FLAME AT EITHER 823 01073 7650 SNA CLA 824 01074 1055 TAD T10SIN / 0,-4 OR 825 01075 1057 TAD T30SIN / 0,-3 826 01076 7041 CIA 827 01077 1026 TAD ONEPEX 828 01100 3410 DCA I AUTO10 829 01101 1355 TAD ONFG2 830 01102 7650 SNA CLA 831 01103 1060 TAD T10COS 832 01104 1062 TAD T30COS 833 01105 7041 CIA 834 01106 1027 TAD ONEPEY 835 01107 3410 DCA I AUTO10 836 837 01110 1055 TAD T10SIN 838 01111 7041 CIA 839 01112 1026 TAD ONEPEX /RETURN DISPLAY TO 0,-1 840 01113 3410 DCA I AUTO10 841 01114 1060 TAD T10COS 842 01115 7041 CIA 843 01116 1027 TAD ONEPEY 844 01117 3410 DCA I AUTO10 845 01120 7344 CLA CLL CMA RAL /ADD -2 TO POINT COUNT 846 847 848 849 01121 1132 ONECON, TAD M6 /SET POINT COUNT TO -6 OR -8 850 01122 3021 DCA ONECNT 851 852 01123 1057 TAD T30SIN /CONTINUE WITH DISPLAY FILE - THIS POINT 853 01124 7041 CIA 854 01125 1062 TAD T30COS / AT 3,-3 855 01126 1026 TAD ONEPEX / 856 01127 3410 DCA I AUTO10 /OR LOWER RIGHT HAND CORNER 857 01130 1057 TAD T30SIN 858 01131 1062 TAD T30COS 859 01132 7041 CIA 860 01133 1027 TAD ONEPEY 861 01134 3410 DCA I AUTO10 862 863 01135 1060 TAD T10COS /NEXT 864 01136 1026 TAD ONEPEX / 865 01137 3410 DCA I AUTO10 / 1,0 866 01140 1055 TAD T10SIN / 867 01141 7041 CIA / OR JUST RIGHT OF CENTER 868 01142 1027 TAD ONEPEY 869 01143 3410 DCA I AUTO10 870 871 01144 1057 TAD T30SIN /FINALLY BACK TO 872 01145 1026 TAD ONEPEX / 873 01146 3410 DCA I AUTO10 / 0,3 874 01147 1062 TAD T30COS / 875 01150 1027 TAD ONEPEY / TOP CENTE 876 01151 3410 DCA I AUTO10 877 878 01152 5753 JMP I ITWOST /NOW FOR NUMBER TWO 879 01153 1200 ITWOST, TWOSET 880 881 01154 0000 ONFG1, 0 /USED TO COUNT FLICKERS 882 01155 0000 ONFG2, 0 /SHORT OR LONG FLAG 883 884 885 / 886 / HERE BEGINS THE DISPLAY FILE GENERATOR FOR SHIP TWO. 887 / IT WORKS JUST LIKE THE ONE FOR NUMBER ONE BUT WITH 888 / DIFFERENT DISPLACEMENT PAIRS AND TWO EXTRA POINTS 889 / 890 891 *1200 892 893 01200 7300 TWOSET, CLA CLL /DONT BOTHER IF NOT IN NORMAL SPACE 894 01201 1035 TAD TWOFLG 895 01202 7640 SZA CLA 896 01203 5775 JMP I IFILDS 897 01204 1043 TAD TWOSIN /SET UP TO HAVE DISPLACEMENT INCREMENTS 898 01205 3063 DCA CALSIN /CALCULATED 899 01206 1044 TAD TWOCOS 900 01207 3064 DCA CALCOS 901 01210 4472 JMS I CALPOS 902 903 01211 1114 TAD TWOFIL /SET AUTO10 TO POINT TO SECOND DISPLAY 904 01212 3010 DCA AUTO10 /FILE 905 01213 1057 TAD T30SIN /FIRST POINT AT 906 01214 1041 TAD TWOPEX / 907 01215 3410 DCA I AUTO10 / 0,3 908 01216 1062 TAD T30COS / 909 01217 1042 TAD TWOPEY / OR TOP CENTER 910 01220 3410 DCA I AUTO10 911 912 01221 1061 TAD T20COS 913 01222 7041 CIA 914 01223 1056 TAD T20SIN 915 01224 1041 TAD TWOPEX 916 01225 3410 DCA I AUTO10 917 01226 1056 TAD T20SIN 918 01227 1061 TAD T20COS /SECOND POINT 919 01230 1042 TAD TWOPEY / -2,2 920 01231 3410 DCA I AUTO10 921 922 01232 1061 TAD T20COS /THIRD POINT 923 01233 7041 CIA / -2,0 924 01234 1041 TAD TWOPEX 925 01235 3410 DCA I AUTO10 926 01236 1056 TAD T20SIN 927 01237 1042 TAD TWOPEY 928 01240 3410 DCA I AUTO10 929 930 931 932 01241 1061 TAD T20COS 933 01242 1057 TAD T30SIN 934 01243 7041 CIA 935 01244 1041 TAD TWOPEX /FOURTH POINT 936 01245 3410 DCA I AUTO10 / -2,-3 937 01246 1062 TAD T30COS 938 01247 7041 CIA 939 01250 1056 TAD T20SIN 940 01251 1042 TAD TWOPEY 941 01252 3410 DCA I AUTO10 942 943 944 945 01253 1056 TAD T20SIN 946 01254 7041 CIA /NEXT 947 01255 1041 TAD TWOPEX / 0,-2 948 01256 3410 DCA I AUTO10 949 01257 1061 TAD T20COS 950 01260 7041 CIA 951 01261 1042 TAD TWOPEY 952 01262 3410 DCA I AUTO10 953 954 01263 7305 FLAM2, CLA CLL IAC RAL /NOW THE FLAME BIT. CHECK FOR POWER ON 955 01264 0073 AND INTWRD 956 01265 7650 SNA CLA 957 01266 5332 JMP TWOCON /NO, FORGET IT 958 01267 1033 TAD TWOOUT /NOT ALLOWED IF EXPLODING 959 01270 7640 SZA CLA 960 01271 5332 JMP TWOCON 961 962 01272 1376 TAD TWFG1 /SET THE 1-3 FLICKER AS WITH #1 963 01273 7450 SNA 964 01274 7344 CLA CLL CMA RAL 965 01275 3376 DCA TWFG1 966 967 01276 2376 ISZ TWFG1 /ALSO THE LENGHT VARIATION 968 01277 5332 JMP TWOCON 969 970 01300 1377 TAD TWFG2 /EVERY OTHER TIME LONG 971 01301 7040 CMA 972 01302 3377 DCA TWFG2 973 /FLAME TIP AT EITHER 974 01303 1377 TAD TWFG2 / 0,-3 975 01304 7650 SNA CLA /OR 976 01305 1056 TAD T20SIN / 0,-5 977 01306 1057 TAD T30SIN 978 01307 7041 CIA 979 01310 1041 TAD TWOPEX 980 01311 3410 DCA I AUTO10 981 01312 1377 TAD TWFG2 982 01313 7650 SNA CLA 983 01314 1061 TAD T20COS 984 01315 1062 TAD T30COS 985 01316 7041 CIA 986 01317 1042 TAD TWOPEY 987 01320 3410 DCA I AUTO10 988 989 01321 1056 TAD T20SIN /NOW BACK UP TO THE SHIP 990 01322 7041 CIA 991 01323 1041 TAD TWOPEX 992 01324 3410 DCA I AUTO10 993 01325 1061 TAD T20COS 994 01326 7041 CIA 995 01327 1042 TAD TWOPEY 996 01330 3410 DCA I AUTO10 997 998 01331 7344 CLA CLL CMA RAL /ADD -2 TO POINT COUNT 999 1000 1001 1002 01332 1133 TWOCON, TAD M10 /SET POINT COUNT TO -8 OR -10 1003 01333 3034 DCA TWOCNT 1004 1005 01334 1057 TAD T30SIN /CONTINUE WITH DISPLAY FILE 1006 01335 7041 CIA /NEXT POINT AT 2,-3 1007 01336 1061 TAD T20COS 1008 01337 1041 TAD TWOPEX 1009 01340 3410 DCA I AUTO10 1010 01341 1062 TAD T30COS 1011 01342 1056 TAD T20SIN 1012 01343 7041 CIA 1013 01344 1042 TAD TWOPEY 1014 01345 3410 DCA I AUTO10 1015 1016 1017 1018 01346 1061 TAD T20COS /NEXT POINT 1019 01347 1041 TAD TWOPEX / 1020 01350 3410 DCA I AUTO10 / 2,0 1021 01351 1056 TAD T20SIN 1022 01352 7041 CIA 1023 01353 1042 TAD TWOPEY 1024 01354 3410 DCA I AUTO10 1025 1026 01355 1061 TAD T20COS /AND THE NEXT AT 1027 01356 1056 TAD T20SIN 1028 01357 1041 TAD TWOPEX / 2,2 1029 01360 3410 DCA I AUTO10 1030 01361 1056 TAD T20SIN 1031 01362 7041 CIA 1032 01363 1061 TAD T20COS 1033 01364 1042 TAD TWOPEY 1034 01365 3410 DCA I AUTO10 1035 1036 01366 1057 TAD T30SIN 1037 01367 1041 TAD TWOPEX 1038 01370 3410 DCA I AUTO10 1039 01371 1062 TAD T30COS /AND THE LAST AT 1040 01372 1042 TAD TWOPEY / 1041 01373 3410 DCA I AUTO10 / 0,3 1042 1043 01374 5775 JMP I IFILDS /NOW TO DISPLAY THE WHOLE MESS 1044 01375 1400 IFILDS, FILDIS 1045 1046 01376 0000 TWFG1, 0 /FLIK THE FLAME 1047 01377 0000 TWFG2, 0 /LONG OR SHORT 1048 1049 1050 / 1051 / HERE TO DISPLAY THE TWO SHIPS. CHECK FIRST FOR COLLISION 1052 / AND THEN SET THE TWO PAIRS OF COORDENATES FOR THE END 1053 / POINTS AND CALL THE "VECTOR GENERATOR" TO DRAW THE DOTS 1054 / IN BETWEEN. WHEN THE COUNT OVERFLOWS DO THE SAME FOR 1055 / NUMBER TWO. THEN EXIT TO DISPLAY ALL THE PROJECTILES. 1056 / 1057 1058 *1400 1059 1060 01400 7300 FILDIS, CLA CLL /ALL SET TO GO 1061 01401 4671 JMS I COLIDE /TEST FOR COLLISION FIRST 1062 01402 1022 TAD ONEFLG /SKIP NUMBER ONE IF NOT IN NORMAL 1063 01403 7640 SZA CLA /SPACE 1064 01404 5235 JMP TWODIS 1065 1066 01405 1113 TAD ONEFIL /SET UP POINTERS TO DISPLAY FILE 1067 01406 3010 DCA AUTO10 /FOR NUMBER ONE 1068 01407 1021 TAD ONECNT /ALONG WITH VECTOR COUNT 1069 01410 3011 DCA AUTO11 1070 01411 1410 TAD I AUTO10 /SET OUT THE FIRST POINT PAIR 1071 01412 3046 DCA XONEDS 1072 01413 1410 TAD I AUTO10 1073 01414 3047 DCA YONEDS 1074 01415 1020 TAD ONEOUT /NORMAL DISPLAY OR EXPLOSION? 1075 01416 7640 SZA CLA 1076 01417 5672 JMP I IONEEX /GO ELSE WHERE FOR EXPLOSION 1077 1078 01420 1410 FILONE, TAD I AUTO10 /STEP TO NEXT PAIR OF POINTS 1079 01421 3050 DCA XTWODS /SET X AND Y TO NEW POINT 1080 01422 1410 TAD I AUTO10 1081 01423 3051 DCA YTWODS 1082 01424 4471 JMS I VECTOR /CALL THE DOT DRAWING MACHINE 1083 01425 2011 ISZ AUTO11 1084 01426 7410 SKP /COUNT 1085 01427 5235 JMP TWODIS /DO NUMBER TWO ON OVERFLOW 1086 01430 1050 TAD XTWODS /SWAP POINTS FOR NEXT PAIR 1087 01431 3046 DCA XONEDS 1088 01432 1051 TAD YTWODS /THE GENERATOR DRAWS FROM ONE 1089 01433 3047 DCA YONEDS /TOWARDS TWO 1090 01434 5220 JMP FILONE 1091 1092 1093 1094 01435 1035 TWODIS, TAD TWOFLG /HERE TO DO NUMBER TWO 1095 01436 7640 SZA CLA /BUT NOT IF IN HYPER SPACE 1096 01437 5663 JMP I IPRODS 1097 1098 01440 1114 TAD TWOFIL /SET UP FILE POINTER AS IN ONE 1099 01441 3010 DCA AUTO10 1100 01442 1034 TAD TWOCNT /AND THE COUNT 1101 01443 3011 DCA AUTO11 1102 01444 1410 TAD I AUTO10 /I SUPPOSE THIS COULD BE A SUBROUTINE TOO 1103 01445 3046 DCA XONEDS 1104 01446 1410 TAD I AUTO10 1105 01447 3047 DCA YONEDS 1106 01450 1033 TAD TWOOUT /IS IT EXPLODING? 1107 01451 7640 SZA CLA 1108 01452 5673 JMP I ITWOEX /YES, HOW EXCITING 1109 1110 01453 1410 TWDLOP, TAD I AUTO10 /NO HOW DULL, STICK IN NEXT PAIR OF 1111 01454 3050 DCA XTWODS /POINTS 1112 01455 1410 TAD I AUTO10 1113 01456 3051 DCA YTWODS /AND CALL THE VECTOR SEQUENCE 1114 01457 4471 JMS I VECTOR 1115 01460 2011 ISZ AUTO11 1116 01461 5264 JMP .+3 1117 1118 01462 5663 JMP I .+1 /WHEN COUNT OVERFLOWS GO ON TO 1119 01463 1600 IPRODS, PRODIS /DO THE PROJECTILE THING 1120 1121 01464 1050 TAD XTWODS /OTHERWISE SWAP ON TO THE NEXT PAIR 1122 01465 3046 DCA XONEDS /OF POINTS 1123 01466 1051 TAD YTWODS 1124 01467 3047 DCA YONEDS 1125 01470 5253 JMP TWDLOP 1126 1127 01471 2074 COLIDE, COLLID 1128 01472 2271 IONEEX, ONEEXP 1129 01473 2310 ITWOEX, TWOEXP 1130 1131 1132 / 1133 / THIS IS THE SO CALLED "VECTOR GENERATOR" WHICH DRAWS A 1134 / SERIES OF DOTS FROM XONEDS,YONEDS TO XTWODS,YTWODS. 1135 / THE COORDINATE COMPONENTS ARE DIVIDED INTO FOURTHS AND 1136 / FOUR DOTS DRAWN ON THE SCOPE SCREEN. NOTE THAT NO DOT 1137 / IS DRAWN AT XONEDS,YONEDS. THIS IS COMPENSATED FOR ELSEWHERE. 1138 / 1139 1140 1141 01474 0000 DISPLY, 0 /ENTER TO DRAW A FOUR POINT VECTOR 1142 01475 1046 TAD XONEDS /FROM XONEDS,YONEDS 1143 01476 7041 CIA /TO XTWODS,YTWODS 1144 01477 1050 TAD XTWODS /DIVIDE COORDINATE DIFERENCES INTO 1145 01500 4347 JMS DISHFT /FOURTHS 1146 01501 3052 DCA DIXTEM /AND STORE INCREMENT 1147 01502 1047 TAD YONEDS 1148 01503 7041 CIA 1149 01504 1051 TAD YTWODS 1150 01505 4347 JMS DISHFT 1151 01506 3053 DCA DIYTEM 1152 01507 1131 TAD M4 /FOR FOUR DOTS 1153 01510 3054 DCA DISCNT 1154 1155 01511 1046 DISLOP, TAD XONEDS /ADD INCREMENT TO CURRENT X AND Y 1156 01512 1052 TAD DIXTEM 1157 01513 3046 DCA XONEDS /NOTE THAT THIS ROUTINE DESTROYS 1158 01514 1047 TAD YONEDS /XONEDS AND YONEDS 1159 01515 1053 TAD DIYTEM 1160 01516 3047 DCA YONEDS 1161 01517 1046 TAD XONEDS 1162 01520 7012 RTR /DIVIDE BY 8 TO FIT SCREEN SIZE 1163 01521 7010 RAR 1164 01522 7100 CLL 1165 01523 7004 RAL / SHIFT ONE BIT TO THE LEFT TO MAKE A 10 BIT PICTURE 1166 01524 1141 TAD TWOCOMP / MAKE DATA SUITABLE FOR VC8E TWO COMPLEMENT 1167 01525 7100 CLL 1168 01526 6053 DILX /SET X VALUE 1169 01527 7200 CLA 1170 01530 1047 TAD YONEDS /DO THE SAME FOR Y 1171 01531 7012 RTR 1172 01532 7010 RAR 1173 01533 7100 CLL 1174 01534 7004 RAL / SHIFT ONE BIT TO THE LEFT TO MAKE A 10 BIT PICTURE 1175 01535 1141 TAD TWOCOMP / MAKE DATA SUITABLE FOR VC8E TWO COMPLEMENT 1176 01536 7100 CLL 1177 01537 6054 DILY /SET Y VALUE 1178 1179 01540 6052 DISD / CHECK VC8E READY 1180 01541 5340 JMP .-1 / 1181 01542 6055 DIXY /AT LAST SOMETHING TO SEE!! 1182 01543 7200 CLA 1183 01544 2054 ISZ DISCNT /DONE YET? 1184 01545 5311 JMP DISLOP /NOPE 1185 01546 5674 JMP I DISPLY /YUP 1186 1187 1188 01547 0000 DISHFT, 0 /A GENERALIZED SHIFT ROUTINE CALLED 1189 01550 7100 CLL /FROM EVERYWHERE TO DIVIDE THE 1190 01551 7510 SPA /AC BY FOUR WITH AN ASR RIGHT 1191 01552 7021 CML IAC /NOTE THAT NEGATIVE NUMBERS ARE 1192 01553 7010 RAR /ROUNDED UPWARDS (TOWARD ZERO) 1193 01554 7100 CLL /TO MAKE IT COME OUT RIGHT 1194 01555 7510 SPA 1195 01556 7021 CML IAC /EVEN SO THERE ARE SOME ROUNDING ERRORS 1196 01557 7010 RAR /SOMEWHERE. SO MUCH FOR 12 BIT MACHINES 1197 01560 5747 JMP I DISHFT 1198 1199 1200 / 1201 / HERE TO DISPLAY ALL THE PROJECTILES AND TEST FOR HITS. 1202 / THE PROJECTILE DISPLAY FILE IS SEARCHED FOR PROJECTILES WITH 1203 / NON-ZERO COUNTS AND WHEN ONE IS FOUND THE POSITION IS 1204 / UPDATED BY THE VELOCITY, THE POINT DISPLAYED AND TESTED FOR 1205 / A HIT. 1206 / 1207 1208 *1600 1209 1210 01600 7300 PRODIS, CLA CLL / BEGIN DISPLAY OF THE PROJECTILES 1211 01601 1307 TAD BUFST /POINT TO BEGINNING OF DISPLAY FILE 1212 01602 3112 DCA BUFTMP 1213 1214 01603 1512 PROLOP, TAD I BUFTMP /PICK UP NEXT COUNT 1215 01604 7450 SNA 1216 01605 5277 JMP EXPIRE /THIS ONE IS DEAD - GO TO THE NEXT 1217 01606 7001 IAC /INCREMENT COUNT AND REPLACE 1218 01607 3512 DCA I BUFTMP 1219 01610 2112 ISZ BUFTMP /BUMP POINTER TO X VELOCITY 1220 01611 1512 TAD I BUFTMP 1221 01612 2112 ISZ BUFTMP /THEN TO XPOSITION AND UPDATE X POSITION 1222 01613 1512 TAD I BUFTMP /WITH THE VELOCITY WHICH IS CONSTANT 1223 01614 3512 DCA I BUFTMP 1224 01615 1512 TAD I BUFTMP 1225 01616 3107 DCA PROX /AND STORE X POSITION FOR DISPLAY AND TEST 1226 01617 2112 ISZ BUFTMP /NOW TO Y POSITION AND VELOCITY 1227 01620 1512 TAD I BUFTMP 1228 01621 2112 ISZ BUFTMP 1229 01622 1512 TAD I BUFTMP /SAME LITTLE GAME 1230 01623 3512 DCA I BUFTMP 1231 01624 1512 TAD I BUFTMP 1232 01625 3110 DCA PROY /STORE THE NEW Y VALUE 1233 1234 01626 1107 TAD PROX /DISPLAY THE POINT WITH 1235 01627 7012 RTR /THE SAME SHIFT AS FOR THE SHIPS 1236 01630 7010 RAR /FOR THE SMALL SCREEN 1237 01631 7104 CLL RAL / SHIFT ONE BIT TO THE LEFT TO MAKE A 10 BIT PICTURE 1238 01632 1141 TAD TWOCOMP / MAKE DATA SUITABLE FOR VC8E TWO COMPLEMENT 1239 01633 7100 CLL 1240 01634 6053 DILX /SET X VALUE 1241 01635 7200 CLA 1242 01636 1110 TAD PROY 1243 01637 7012 RTR 1244 01640 7010 RAR 1245 01641 7104 CLL RAL / SHIFT ONE BIT TO THE LEFT TO MAKE A 10 BIT PICTURE 1246 01642 1141 TAD TWOCOMP 1247 01643 7100 CLL 1248 01644 6054 DILY /SET Y VALUE 1249 01645 6052 DISD / CHECK VC8E READY 1250 01646 5245 JMP .-1 / 1251 01647 6055 DIXY /THERE IT IS!! 1252 01650 7200 CLA 1253 01651 4711 JMS I CHKOUT /TEST FOR A HIT 1254 01652 2112 ISZ BUFTMP /MOVE POINTER ON AND TEST FOR END 1255 01653 1112 TAD BUFTMP /OF BUFFER 1256 01654 1310 TAD BUFLIM 1257 01655 7640 SZA CLA 1258 01656 5203 JMP PROLOP /NOT AT END - CONTINUE 1259 1260 1261 1262 1263 / 1264 / HERE AT THE END OF THE PROJECTILE DISPLAY. IF THE GAMOVR 1265 / FLAG IS SET, GO ON TO THE MESSAGE DISPLAY - VICTORY LAP 1266 / SECTION. OTHERWISE PICK UP THE REMAINING CLOCK COUNT 1267 / TO GIVE THE FANS SOMETHING TO LOOK AT, AND MOVE THE 1268 / ELECTRON BEAM TO A LOWER CORNER. THE COUNT DISPLAYED 1269 / IN THE AC IS THE NUMBER OF 100 USEC CLOCK TICKS REMAINING 1270 / WHEN THIS CODE IS REACHED BEFORE THE NEXT UPDATE WOULD 1271 / BEGIN. TURNS OUT THAT ROUGHLY 2/3 OF THE CPU IS LEFT 1272 / OVER SHOULD ANYONE WANT TO DO ANYTHING VERY FANCY. 1273 / 1274 1275 1276 01657 1103 FINISH, TAD GAMOVR /IS THIS THE VICTORY LAP OR WHAT? 1277 01660 7640 SZA CLA 1278 01661 5676 JMP I ENDGAM /YES, GO TO PUT UP THE MESSAGE 1279 01662 1137 TAD M400 /MOVE THE BEAM OFF SCREEN 1280 01663 7100 CLL 1281 01664 7004 RAL / SHIFT ONE BIT TO THE LEFT TO MAKE A 10 BIT PICTURE 1282 01665 1141 TAD TWOCOMP / MAKE DATA SUITABLE FOR VC8E TWO COMPLEMENT 1283 01666 7100 CLL 1284 / DILY / SET Y VALUE 1285 01667 7200 CLA 1286 01670 7100 CLL 1287 01671 7004 RAL / SHIFT ONE BIT TO THE LEFT TO MAKE A 10 BIT PICTURE 1288 01672 1141 TAD TWOCOMP / MAKE DATA SUITABLE FOR VC8E TWO COMPLEMENT 1289 01673 7100 CLL 1290 / DILX / SET X VALYE 1291 / DISD / CHECK VC8E READY 1292 / JMP .-1 / CHECK VC8E READY 1293 01674 7041 CIA 1294 01675 5275 JMP . 1295 1296 1297 01676 2542 ENDGAM, JOBLOP 1298 1299 1300 1301 01677 1112 EXPIRE, TAD BUFTMP /HERE TO ADVANCE THE BUFFER 1302 01700 1115 TAD P5 /POINTER TO THE NEXT PROJECTILE 1303 01701 3112 DCA BUFTMP /UNLESS THE END 1304 01702 1112 TAD BUFTMP /OF THE BUFFER 1305 01703 1310 TAD BUFLIM /IS REACHED 1306 01704 7640 SZA CLA /IN WHICH CASE 1307 01705 5203 JMP PROLOP /IT 1308 01706 5257 JMP FINISH /QUITS 1309 1310 01707 7501 BUFST, DISBUF+101 1311 01710 0203 BUFLIM, -DISBUF-175 1312 01711 2000 CHKOUT, CHECK 1313 1314 01712 0000 RESE1, 0 /THIS IS CALLED TO SET THE POINTER 1315 01713 1340 TAD MRES /(AUTO16) TO THE NEXT FREE SLOT 1316 01714 3341 DCA RESCNT /FOR A PROJECTILE LAUNCH. 12 POSSIBLE 1317 1318 01715 1342 RESLOP, TAD RESPNT /MOVE THE POINTER TO THE NEXT SLOT 1319 01716 1115 TAD P5 1320 01717 3342 DCA RESPNT 1321 01720 1342 TAD RESPNT /RESTE IF AT END OF BUFFER 1322 01721 1310 TAD BUFLIM 1323 01722 7640 SZA CLA 1324 01723 5326 JMP RESCON 1325 01724 1307 TAD BUFST 1326 01725 3342 DCA RESPNT 1327 1328 01726 1742 RESCON, TAD I RESPNT /FIND A HOLE YET? 1329 01727 7650 SNA CLA 1330 01730 5334 JMP RESFND /YES, SET UP AUTO16 1331 01731 2341 ISZ RESCNT /NO COUNT 1332 01732 5315 JMP RESLOP /AND TRY AGAIN 1333 01733 7402 HLT /NO HOLES AT ALL? 1334 1335 01734 7040 RESFND, CMA /BACK THE POINTER FOR AUTO INDEXING 1336 01735 1342 TAD RESPNT 1337 01736 3016 DCA AUTO16 1338 01737 5712 JMP I RESE1 1339 1340 01740 7764 MRES, -14 1341 01741 0000 RESCNT, 0 1342 01742 0000 RESPNT, 0 1343 1344 01743 0000 SETBUF, 0 1345 01744 7040 CMA /THIS ROUTINE IS CALLED FROM THE 1346 01745 1307 TAD BUFST /STARTING SEQUENCE TO INITIALIZE ALL 1347 01746 3016 DCA AUTO16 /THE BUFFER POINTERS AND SO ON 1348 01747 1307 TAD BUFST 1349 01750 3112 DCA BUFTMP 1350 01751 1307 TAD BUFST 1351 01752 3342 DCA RESPNT 1352 01753 1307 TAD BUFST 1353 01754 3364 DCA SETPNT 1354 01755 3764 SETLOP, DCA I SETPNT 1355 01756 2364 ISZ SETPNT 1356 01757 1364 TAD SETPNT 1357 01760 1310 TAD BUFLIM 1358 01761 7640 SZA CLA 1359 01762 5355 JMP SETLOP 1360 01763 5743 JMP I SETBUF 1361 1362 01764 0000 SETPNT, 0 1363 1364 1365 / 1366 / THIS HERE NOW THING CHECKS THE COORDINATES OF THE MOST RECENTLY 1367 / DISPLAYED PROJECTILE AGAINST THOSE OF THE SHIPS ON THE SCREEN. 1368 / IF WITH A COLLISION LIMIT A HIT IS RECORDED AND THE LIFE 1369 / COUNT OF THE PROJECTILE ZEROED TO REMOVE IT. A HIT SHIP 1370 / IS SUITABLY FLAGGED 1371 / 1372 1373 *2000 1374 1375 02000 0000 CHECK, 0 /HERE TO TEST FOR A PROJECTILE HIT 1376 02001 1022 TAD ONEFLG /CANT HIT SOMETHING IN HYPERSPACE 1377 02002 7640 SZA CLA 1378 02003 5232 JMP CHECK2 1379 02004 1020 TAD ONEOUT /OR SOMETHING THAT'S BEEN HIT 1380 02005 7640 SZA CLA 1381 02006 5232 JMP CHECK2 1382 1383 02007 1107 TAD PROX /CHECK X COORDINATES OF SHIP ONE 1384 02010 7041 CIA /AND PROJECTILE 1385 02011 1026 TAD ONEPEX /THIS SORT OF THING IS WHY THE 1386 02012 7510 SPA /COORDINATES HAVE TO BE MAINTAINED TO 12 1387 02013 7041 CIA /BITS 1388 02014 1264 TAD LIMIT /CLOSE ENOUGH? 1389 02015 7700 SMA CLA 1390 02016 5232 JMP CHECK2 /IF X ISN' CLOSE ENOUGH THEN NO HIT 1391 02017 1110 TAD PROY /X WAS CLOSE ENOUGH, HOW ABOUT Y? 1392 02020 7041 CIA 1393 02021 1027 TAD ONEPEY 1394 02022 7510 SPA 1395 02023 7041 CIA 1396 02024 1264 TAD LIMIT 1397 02025 7700 SMA CLA 1398 02026 5232 JMP CHECK2 /NO HIT 1399 1400 02027 1106 TAD MEXP /DEPOSIT EXPLOSION COUNT IN ONEOUT 1401 02030 3020 DCA ONEOUT /ALL THAT IS NECESSARY 1402 02031 4265 JMS CUTOUT /REMOVE PROJECTILE 1403 1404 1405 1406 02032 1035 CHECK2, TAD TWOFLG /NO HIT ON NUMBER ONE, TRY NUMBER TWO 1407 02033 7640 SZA CLA 1408 02034 5600 JMP I CHECK /BUT NOT IF IN HYPERSPACE 1409 02035 1033 TAD TWOOUT /OR IF ALREADY HIT 1410 02036 7640 SZA CLA 1411 02037 5600 JMP I CHECK 1412 1413 02040 1107 TAD PROX /CHECK X'S FIRST 1414 02041 7041 CIA 1415 02042 1041 TAD TWOPEX 1416 02043 7510 SPA /GET ABSOLUTE VALUE OF DIFFERENCE 1417 02044 7041 CIA 1418 02045 1264 TAD LIMIT /AND TEST MAGNITUDE AGAINST PROXIMITY 1419 02046 7700 SMA CLA /LIMIT 1420 02047 5600 JMP I CHECK /NOWHERE NEAR CLOSE 1421 1422 02050 1110 TAD PROY /NYAH, NYAH 1423 02051 7041 CIA /TRY THE Y'S 1424 02052 1042 TAD TWOPEY 1425 02053 7510 SPA 1426 02054 7041 CIA /ABSOLUTE VALUE OF DIFFERENCE 1427 02055 1264 TAD LIMIT 1428 02056 7700 SMA CLA 1429 02057 5600 JMP I CHECK /CLEAN MISS! 1430 1431 02060 1106 TAD MEXP /HIT ON TWO - END EVERYTHING BY SETTING 1432 02061 3033 DCA TWOOUT /TWOOUT TO NON-ZERO EXPLOSION COUNT 1433 02062 4265 JMS CUTOUT 1434 02063 5600 JMP I CHECK /EXIT AFTER DESTOYING PROJECTILE 1435 1436 02064 7660 LIMIT, -120 /PROXIMITY LIMIT FOR WHAT CONSTITUTES A HIT 1437 1438 02065 0000 CUTOUT, 0 /THIS ROUTINE ZEROES OUT THE MOST RECENTLY 1439 02066 1131 TAD M4 /DISPLAYED PROJECTILE BY ZEROEING THE 1440 02067 1112 TAD BUFTMP /COUNT 1441 02070 3273 DCA CUTPNT 1442 02071 3673 DCA I CUTPNT 1443 02072 5665 JMP I CUTOUT 1444 1445 02073 0000 CUTPNT, 0 1446 1447 1448 / 1449 / THIS ROUTINE IS CALLED TO TEST FOR A COLLISION BETWEEN THE 1450 / TWO SHIPS. THE COORDINATES OF BOTH ARE COMPARED 1451 / AND IFF SUFFICIENTLY CLOSE BOTH ARE DESTROYED BY SETTING 1452 / THEIR EXPLOSION COUNTS NON-ZERO. 1453 / 1454 1455 1456 02074 0000 COLLID, 0 /HERE TO TEST FOR COLLISION 1457 02075 1022 TAD ONEFLG /NO TEST IF EITHER SHIP IS IN 1458 02076 7640 SZA CLA /HYPERSPACE OR EXPLODING 1459 02077 5674 JMP I COLLID 1460 02100 1035 TAD TWOFLG 1461 02101 7640 SZA CLA 1462 02102 5674 JMP I COLLID 1463 02103 1020 TAD ONEOUT 1464 02104 7640 SZA CLA 1465 02105 5674 JMP I COLLID 1466 02106 1033 TAD TWOOUT 1467 02107 7640 SZA CLA 1468 02110 5674 JMP I COLLID 1469 1470 02111 1026 TAD ONEPEX /BOTH SHIPS AVAILABLE FOR COLLISION 1471 02112 7041 CIA /CHECK X COORDINATES FIRST 1472 02113 1041 TAD TWOPEX 1473 02114 7510 SPA /GET ABSOLUTE VALUE OF DIFFERENCE 1474 02115 7041 CIA 1475 02116 1336 TAD COLLIM /CLOSE ENOUGH? 1476 02117 7700 SMA CLA 1477 02120 5674 JMP I COLLID /NOPE, FORGET IT 1478 1479 02121 1027 TAD ONEPEY /YES, NOW TRY THE Y COORDINATES 1480 02122 7041 CIA 1481 02123 1042 TAD TWOPEY 1482 02124 7510 SPA 1483 02125 7041 CIA /GET MAGNITUDE ONLY 1484 02126 1336 TAD COLLIM 1485 02127 7700 SMA CLA /CLOSE ENOUGH? 1486 02130 5674 JMP I COLLID 1487 02131 1106 TAD MEXP /YES, SET BOTH EXPLOSION COUNTS 1488 02132 3020 DCA ONEOUT 1489 02133 1106 TAD MEXP 1490 02134 3033 DCA TWOOUT 1491 02135 5674 JMP I COLLID 1492 1493 02136 7500 COLLIM, -300 1494 1495 / 1496 / THIS ROUTINE IS CALLED TO SET ONE OF THE TWO SHIPS INTO 1497 / HYPERSPACE. ON ENTRY THE AC=-1 FOR SHIP #1, 0 FOR SHIP 1498 / NUMBER 2. THE LOCATION CLOCK IS USED FOR A RANDOM 1499 / ADDRESS POINTER FROM WHICH WILL BE DRAWN THE 1500 / VARIOUS PARAMETERS FOR REENTRY. 1501 / 1502 1503 *2200 1504 1505 02200 3253 HYPSET, DCA RTNFLG /HERE WITH AC=-1 OR 0 1506 02201 1253 TAD RTNFLG /SET UP LIST POINTER 1507 02202 7640 SZA CLA 1508 02203 1251 TAD ONEDIF /TO APPROPRIATE SHIP FILE 1509 02204 1252 TAD TWOLST 1510 02205 3015 DCA AUTO15 1511 1512 02206 1074 TAD CLOCK /SET UP "RANDOM NUMBER GENERATOR" 1513 02207 3017 DCA AUTO17 1514 02210 1417 TAD I AUTO17 /PICK UP FIRST THE AMOUNT OF TIME 1515 02211 0250 AND TIMOUT /OUT OF NOMAL SPACE LIMITED TO -777 1516 02212 7041 CIA /UPDATE CYCLES ( ABOUT 15 SECONDS) 1517 02213 3415 DCA I AUTO15 /AND STORE IN ONEOUT OR TWO OUT 1518 1519 02214 1417 TAD I AUTO17 /THE NEXT RANDOM NUMBER BECOMES THE 1520 02215 4477 JMS I THEADJ /ANGLE OR ORIENTATION ON REENTRY 1521 02216 3415 DCA I AUTO15 1522 02217 1417 TAD I AUTO17 /AND THE NEXT BECOMES THE X VELOCITY 1523 02220 4260 JMS VEESET /COMPONENT 1524 02221 3415 DCA I AUTO15 1525 02222 1417 TAD I AUTO17 /AND THEN THE Y COMPONENT 1526 02223 4260 JMS VEESET 1527 02224 3415 DCA I AUTO15 1528 02225 1417 TAD I AUTO17 1529 02226 3415 DCA I AUTO15 1530 1531 02227 1417 TAD I AUTO17 1532 02230 3415 DCA I AUTO15 1533 1534 02231 1417 TAD I AUTO17 /FINALLY SEE IF RETURN WILL BE SUCCESSFLY 1535 02232 0250 AND TIMOUT 1536 02233 1257 TAD MHYP /ABOUT 3/4 CHANCE 1537 02234 7700 SMA CLA 1538 02235 5245 JMP HYPRET /OK 1539 02236 1253 TAD RTNFLG /THIS IS THE ONE TIME IN FOUR. SET 1540 02237 7640 SZA CLA /UP FOR EXPLOSION ON REENTRY 1541 02240 1251 TAD ONEDIF 1542 02241 1256 TAD OUTLOC 1543 02242 3260 DCA VEESET 1544 02243 1106 TAD MEXP 1545 02244 3660 DCA I VEESET 1546 1547 02245 2253 HYPRET, ISZ RTNFLG 1548 02246 5655 JMP I TWORTN 1549 02247 5654 JMP I ONERTN 1550 1551 02250 0777 TIMOUT, 777 1552 02251 7765 ONEDIF, ONEFLG-TWOFLG 1553 02252 0034 TWOLST, TWOFLG-1 1554 02253 0000 RTNFLG, 0 1555 02254 0600 ONERTN, TWOUP 1556 02255 1000 TWORTN, ONESET 1557 02256 0033 OUTLOC, TWOOUT 1558 02257 7600 MHYP, -200 1559 1560 1561 1562 02260 0000 VEESET, 0 /HERE TO LIMIT VELOCITY COMPONENTS 1563 02261 7100 CLL 1564 02262 7510 SPA /GET MAGNITUDE 1565 02263 7020 CML 1566 02264 0270 AND HM177 /LIMIT TO 177 1567 02265 7530 SZL CLL 1568 02266 7041 CIA 1569 02267 5660 JMP I VEESET /AND EXIT 1570 1571 02270 0177 HM177, 177 1572 1573 02271 7300 ONEEXP, CLA CLL /HERE TO DISPLAY SHIP NUMBER ONE AS 1574 02272 1023 TAD ONETHE /AN EXPLOSION 1575 02273 1333 TAD INCONE /FIRST ROTATE IT BY A GOOD DOLLOP 1576 02274 3023 DCA ONETHE 1577 02275 4732 JMS I IXPDIS /THEN CALL THE EXPLOSION GENERATOR 1578 02276 2020 ISZ ONEOUT /DONE WITH THE EXPLOSION? 1579 02277 5727 JMP I NOWTWO /NO, NORMAL RETURN 1580 1581 02300 7001 IAC /YES, SET INTO PSEUDO HYPER SPACE 1582 02301 3022 DCA ONEFLG 1583 02302 7001 IAC /DISABLE RETURN FROM HYPER SPACE 1584 02303 3032 DCA ONEFIN 1585 1586 02304 1045 TAD TWOFIN /IS NUMBER TWO STILL AROUND? 1587 02305 7650 SNA CLA 1588 02306 5727 JMP I NOWTWO /YES, RETURN 1589 02307 5731 JMP I TIEUP /NO, TIE BALL GAME 1590 1591 1592 02310 7300 TWOEXP, CLA CLL /HERE TO DISPLAY SHIP NUMBER TWO 1593 02311 1036 TAD TWOTHE /AS AN EXPLOSION. BASH IT AROUND 1594 02312 1334 TAD INCTWO 1595 02313 3036 DCA TWOTHE 1596 02314 4732 JMS I IXPDIS /THEN DISPLAY IT 1597 02315 2033 ISZ TWOOUT /DONE WITH EXPLOSION? 1598 02316 5730 JMP I NOWPRO /NO, NORMAL RETURN 1599 1600 02317 7001 IAC /YES, SEND INTO PSEUDO HYPER SPACE 1601 02320 3035 DCA TWOFLG 1602 02321 7001 IAC /DISABLE NORMAL RETURN FROM HYPERSPACE 1603 02322 3045 DCA TWOFIN 1604 /CHECK NUMBER ONE 1605 02323 1032 TAD ONEFIN 1606 02324 7640 SZA CLA /STILL ALIVE AND WELL? 1607 02325 5731 JMP I TIEUP /NO, TIE GAME 1608 02326 5730 JMP I NOWPRO /YES, CONTINUE ON 1609 02327 1435 NOWTWO, TWODIS 1610 02330 1600 NOWPRO, PRODIS 1611 02331 2536 TIEUP, NOWIN 1612 02332 2400 IXPDIS, EXPDIS 1613 02333 0055 INCONE, 55 1614 02334 0055 INCTWO, 55 1615 1616 1617 / 1618 / HERE TO DISPLAY THE FIGURE POINTED TO BY AUTO10 AS 1619 / AN EXPLOSION. THIS WORKS THE SAME WAY AS THE NORMAL 1620 / DISPLAY ROUTINE EXCEPT THAT THE COORDINATE INCREMENTS 1621 / ARE INVERTED TURNING THE FIGURE INSIDE OUT FOR S 1622 / A SORT OF CLOBBY EXPLOSION. 1623 / 1624 1625 *2400 1626 1627 02400 0000 EXPDIS, 0 /HERE TO DISPLAY A FIGURE INSIDE OUT 1628 02401 1410 TAD I AUTO10 /WITH THE POINTERS AND COUNTS ALREADY 1629 02402 3050 DCA XTWODS /SET UP BY FILDIS OR TWODIS 1630 02403 1410 TAD I AUTO10 /STICK NEXT TWO POINTS INTO LINE 1631 02404 3051 DCA YTWODS 1632 1633 02405 1050 TAD XTWODS 1634 02406 7041 CIA /CALCULATE INCREMENT THE WRONG WAY 1635 02407 1046 TAD XONEDS 1636 02410 3052 DCA DIXTEM /AND STORE 1637 02411 1051 TAD YTWODS 1638 02412 7041 CIA 1639 02413 1047 TAD YONEDS 1640 02414 3053 DCA DIYTEM /SAME FOR Y 1641 1642 02415 1131 TAD M4 /4 DOTS IN THE VECTOR" 1643 02416 3054 DCA DISCNT /COULD HAVE CALLED THE OTHER 1644 /VECTOR GENERATOR I SUPPOSE 1645 02417 1046 EXPLOP, TAD XONEDS 1646 02420 1052 TAD DIXTEM /ADD X AND Y INCREMENTS TO THE RUNNING 1647 02421 3046 DCA XONEDS /TOTALS AND DISPLAY THE RUNNING 1648 02422 1047 TAD YONEDS /TOTALS NORMAL SIZE 1649 02423 1053 TAD DIYTEM 1650 02424 3047 DCA YONEDS 1651 1652 02425 1046 TAD XONEDS 1653 02426 7012 RTR /COULD MAKE TWICE AS BIG BY NOP-ING 1654 02427 7010 RAR /THE RAR'S BUT THE SCREEN IS SMALL ENOUGH 1655 02430 7100 CLL 1656 02431 7004 RAL / SHIFT ONE BIT TO THE LEFT TO MAKE A 10 BIT PICTURE 1657 02432 1141 TAD TWOCOMP / MAKE DATA SUITABLE FOR VC8E TWO COMPLEMENT 1658 02433 7100 CLL 1659 02434 6053 DILX / SET X POSITION 1660 02435 7200 CLA 1661 02436 1047 TAD YONEDS 1662 02437 7012 RTR 1663 02440 7010 RAR 1664 02441 7100 CLL 1665 02442 7004 RAL / SHIFT ONE BIT TO THE LEFT TO MAKE A 10 BIT PICTURE 1666 02443 1141 TAD TWOCOMP / MAKE DATA SUITABLE FOR VC8E TWO COMPLEMENT 1667 02444 7100 CLL 1668 02445 6054 DILY / SET Y POSITION 1669 02446 6052 DISD / CHECK VC8E READY 1670 02447 5246 JMP .-1 / 1671 02450 6055 DIXY / DISPLAY DATA 1672 02451 7200 CLA 1673 02452 2054 ISZ DISCNT /DONE 4 DOTS? 1674 02453 5217 JMP EXPLOP /NO 1675 1676 02454 2011 ISZ AUTO11 /DONE ALL VECTORS IN THE FILE? 1677 02455 7410 SKP 1678 02456 5600 JMP I EXPDIS /YES, EXIT 1679 1680 02457 1050 TAD XTWODS /NO SWAP TO NEXT PAIR OF POINTS 1681 02460 3046 DCA XONEDS 1682 02461 1051 TAD YTWODS 1683 02462 3047 DCA YONEDS 1684 02463 5201 JMP EXPDIS+1 1685 1686 1687 1688 / 1689 / VEELIM IS THE SCALING ROUTINE FOR VELOCITY COMPONENTS. 1690 / THE COMPONENTS ARE SCALED TO REMAIN IN THE RANGE 140 1691 / TO -140. THIS IS NECESSARY TO AVOID ASTRONOMICAL SPPED 1692 / BUILDUP ON THE SMALL SCREEN. UNFORTUNATELY THE X AND Y 1693 / COMPONENTS ARE SCALED SEPARATELY WHICH GIVES SLIGHT BUT 1694 / NOTICABLE DISTORTIONS IN DIAGONAL FLIGHT PATHS. IN THE 1695 / NORMAL HEAT OF THE BATTLE NO ONE WILL REALLY NOTICE. 1696 / 1697 1698 1699 02464 0000 VEELIM, 0 /ENTER TO SCALE VELOCITY HELD IN 1700 02465 3305 DCA VEEHLD /AC 1701 02466 1305 TAD VEEHLD 1702 02467 7500 SMA /BRANCH FOR POSITIVE OR NEGATIV 1703 02470 5276 JMP VEEPOS 1704 02471 1307 TAD VEEMAX 1705 02472 7700 SMA CLA /GREATER THAN MAXIMUM POSITIVE? 1706 02473 5303 JMP VEECLR /NO 1707 02474 1306 TAD VEEMIN /I MEAN MAXIMUM NEGATIVE - YES SET 1708 02475 5664 JMP I VEELIM /TO MAX NEGATIV 1709 1710 02476 1306 VEEPOS, TAD VEEMIN /GREATER THAN MAX? 1711 02477 7710 SPA CLA 1712 02500 5303 JMP VEECLR /NO 1713 02501 1307 TAD VEEMAX /YES SET TO MAX 1714 02502 5664 JMP I VEELIM 1715 1716 02503 1305 VEECLR, TAD VEEHLD /IT WAS IN RANGE ALL ALONG 1717 02504 5664 JMP I VEELIM 1718 1719 02505 0000 VEEHLD, 0 1720 02506 7640 VEEMIN, -140 1721 02507 0140 VEEMAX, 140 1722 1723 02510 0000 THEAJI, 0 /HERE TO ADJUST THE ANGLE TO A RANGE 1724 02511 7500 SMA /0-550 OR 0-360 DEGREES. THIS IS 1725 02512 5315 JMP .+3 /NECESSARY TO INSURE THAT PUSHDOWN OVERFLOW 1726 02513 1127 TAD P550 /WILL NOT HAPPEN IN THE SINE AND COSINE 1727 02514 5311 JMP .-3 /ROUTINES. THIS SIMPLY TAKES THE AC 1728 02515 1140 TAD M550 /MODULO 360 AND EXITS 1729 02516 7500 SMA 1730 02517 5315 JMP .-2 1731 02520 1127 TAD P550 /FOLLOW IT THROUGH AND SEE IF IT DOESN'T 1732 02521 5710 JMP I THEAJI 1733 1734 1735 / 1736 / ONE OF THESE ROUTINE IS ENTERED WHEN A WINNER IS DECLARED. 1737 / THE ADDRESS OF THE VICTORY MESSAGE IS PLACED IN MESS AND 1738 / THE GAMOVR FLAG SET TO CAUSE A BRANCH TO JOBLOP WHEN THE 1739 / DISPLAY CYCLE IS COMPLETED. THE ROUTINE WILL THEN DISPLAY 1740 / THE APPROPRIATE MESSAGE OVER THE REMAINING SHIPS IF 1741 / ANY UNTIL THE KEYBOARD IS MOLESTED OR THE CLOCK RUNS OUT 1742 / AND THE NEXT DISPLAY UPDATE CYCLE IS SET. AT ANY RATE THE 1743 / PROGRAM WILL REACH HERE ONLY WHEN SOMEONE HAS BITTEN THE 1744 / INTERGALACTIC DUST. 1745 / 1746 1747 1748 02522 0000 ONEWIN, 0 /THIS IS CALLED WHEN TWOFIN IS SET 1749 02523 1355 TAD MES1 /AND ONE FIN IS NOT. SET ONE TO VICTOR 1750 02524 3362 DCA MESS /AND SET GAMOVR FLAG 1751 02525 7001 IAC 1752 02526 3103 DCA GAMOVR 1753 02527 5722 JMP I ONEWIN /THEN RETURN TO UPDATE CYCLE 1754 1755 02530 0000 TWOWIN, 0 /THIS IS CALLED WHEN ONEFIN IS SET 1756 02531 1356 TAD MES2 /AND TWO FIN IS NOT 1757 02532 3362 DCA MESS /SET ALSO GAMOVR 1758 02533 7001 IAC 1759 02534 3103 DCA GAMOVR 1760 02535 5730 JMP I TWOWIN 1761 1762 02536 1360 NOWIN, TAD MES4 /GET HERE WHEN BOTH ONEFIN AND TWOFIN 1763 02537 3362 DCA MESS /ARE SET . 1764 02540 7001 IAC 1765 02541 3103 DCA GAMOVR /NOBODY EVER REALLY WINDS 1766 /UP THE WINNER IN THESE THINGS 1767 02542 0000 JOBLOP, 0 /THIS IS ENTERED FROM FINISH WHEN 1768 02543 1354 TAD MES0 /GAMOVR IS SET AND SERVES TO DISPLAY 1769 02544 4476 JMS I MESOUT /THE VICTORY MESSAGE ON THE SCREEN 1770 02545 1362 TAD MESS /USING THE CHARACTER GENERATOR SOMEWHAT 1771 02546 4476 JMS I MESOUT /FURTHER ON UNTIL THE GAME IS RESTARTED 1772 02547 1361 TAD MES5 /OR UNTIL THE INTERRUPT COUNT OVERFLOWS 1773 02550 4476 JMS I MESOUT /AND THE UPDATE CYCLE IS RESTARTED 1774 02551 1357 TAD MES3 1775 02552 4476 JMS I MESOUT 1776 02553 5342 FINITO, JMP JOBLOP 1777 1778 02554 7344 MES0, MESS0 1779 02555 7351 MES1, MESS1 1780 02556 7353 MES2, MESS2 1781 02557 7355 MES3, MESS3 1782 02560 7360 MES4, MESS4 1783 02561 7345 MES5, MESS5 1784 02562 0000 MESS, 0 1785 1786 1787 / 1788 / THE FOLLOWING ARE THE SINE AND COSINE ROUTINES CUSTOMIZED 1789 / FOR THIS PROGRAM FROM ANOTHER I WORKED ON. CALL EITHER 1790 / SINE OR COSINE WITH ANGLE IN DEGREES IN AC. THE ARGUEMENT 1791 / IS REDUCED THROUGH RECURSION UNTIL BETWEEN 0-89 DEGREES 1792 / AND THEN A TABLE LOOKUP DONE TO OBTAIN THE VALUE. IT TAKES 1793 / UP A FAIR AMOUNT OF SPACE BUT IT WORKS JUST FASTER 1794 / THAN SHEEP. THE COSINE CALL JUST TRANSFORMS THE ARGUEMENT 1795 / THROUGH SOME TRIGONOMETRIC GARBAGE AND CALLS THE SINE 1796 / ROUTINE. NOTE THAT CALLING EITHER ROUTINE WITH TOO 1797 / LARGE AN ARGUEMENT WILL CAUSE PUSHDOWN OVERFLOW AND THEN 1798 / ALL HELL WILL BREAK LOOSE. THE ORIGINAL ROUTINE FROM WHICH 1799 / THIS WAS STOLEN HAD FULL WORD PRECISION. 1800 / 1801 1802 *6400 1803 1804 06400 0000 SINEIN, 0 /I REALLY CANT BRING MYSELF TO COMMENT 1805 06401 3252 DCA SINARG /THIS. IT'S VERY STRAIGHFORWARD 1806 06402 1200 TAD SINEIN 1807 06403 3653 DCA I SINPSH 1808 06404 2253 ISZ SINPSH 1809 06405 1252 TAD SINARG 1810 06406 7440 SZA 1811 06407 5217 JMP SINNG2 1812 1813 06410 7340 SINPOP, CLA CLL CMA 1814 06411 1253 TAD SINPSH 1815 06412 3253 DCA SINPSH 1816 06413 1653 TAD I SINPSH 1817 06414 3200 DCA SINEIN 1818 06415 1252 TAD SINARG 1819 06416 5600 JMP I SINEIN 1820 1821 06417 7500 SINNG2, SMA 1822 06420 5226 JMP SINPOS 1823 06421 7041 CIA 1824 06422 4200 JMS SINEIN 1825 1826 06423 7041 SINNEG, CIA 1827 06424 3252 DCA SINARG 1828 06425 5210 JMP SINPOP 1829 1830 06426 1135 SINPOS, TAD M264 1831 06427 7510 SPA 1832 06430 5232 JMP .+2 1833 06431 5222 JMP SINNEG-1 1834 06432 1124 TAD P132 1835 06433 7510 SPA 1836 06434 5244 JMP SINELK 1837 06435 7640 SZA CLA 1838 06436 5241 JMP .+3 1839 06437 1121 TAD P37 1840 06440 5224 JMP SINNEG+1 1841 1842 06441 1252 TAD SINARG 1843 06442 1135 TAD M264 1844 06443 5222 JMP SINNEG-1 1845 1846 06444 1124 SINELK, TAD P132 1847 06445 1262 TAD SINTAB 1848 06446 3200 DCA SINEIN 1849 06447 1600 TAD I SINEIN 1850 06450 3252 DCA SINARG 1851 06451 5210 JMP SINPOP 1852 1853 1854 1855 06452 0000 SINARG, 0 1856 06453 6454 SINPSH, SINLST 1857 06454 0000 SINLST, 0 1858 06455 0000 0 1859 06456 0000 0 1860 06457 0000 0 1861 06460 0000 0 1862 06461 0000 0 1863 1864 06462 6467 SINTAB, SINES-1 1865 1866 06463 0000 COSINI, 0 1867 06464 7041 CIA 1868 06465 1124 TAD P132 1869 06466 4200 JMS SINEIN 1870 06467 5663 JMP I COSINI 1871 1872 1873 1874 06470 0000 SINES, 00 /1 1875 06471 0001 01 /2 1876 06472 0001 01 /3 1877 06473 0002 02 /4 1878 06474 0002 02 /5 1879 06475 0003 03 /6 1880 06476 0003 03 /7 1881 06477 0004 04 /8 1882 06500 0005 05 /9 1883 06501 0005 05 /10 1884 06502 0006 06 /11 1885 06503 0006 06 /12 1886 06504 0007 07 /13 1887 06505 0007 07 /14 1888 06506 0010 10 /15 1889 06507 0010 10 /16 1890 06510 0011 11 /17 1891 06511 0011 11 /18 1892 06512 0012 12 /19 1893 06513 0012 12 /20 1894 06514 0013 13 /21 1895 06515 0013 13 /22 1896 06516 0014 14 /23 1897 06517 0015 15 /24 1898 06520 0015 15 /25 1899 06521 0016 16 /26 1900 06522 0016 16 /27 1901 06523 0017 17 /28 1902 06524 0017 17 /29 1903 06525 0020 20 /30 1904 06526 0020 20 /31 1905 06527 0020 20 /32 1906 06530 0021 21 /33 1907 06531 0021 21 /34 1908 06532 0022 22 /35 1909 06533 0022 22 /36 1910 06534 0023 23 /37 1911 06535 0023 23 /38 1912 06536 0024 24 /39 1913 06537 0024 24 /40 1914 06540 0025 25 /41 1915 06541 0025 25 /42 1916 06542 0025 25 /43 1917 06543 0026 26 /44 1918 06544 0026 26 /45 1919 06545 0027 27 /46 1920 06546 0027 27 /47 1921 06547 0027 27 /48 1922 06550 0030 30 /49 1923 06551 0030 30 /50 1924 06552 0030 30 /51 1925 06553 0031 31 /52 1926 06554 0031 31 /53 1927 06555 0031 31 /54 1928 06556 0032 32 /55 1929 06557 0032 32 /56 1930 06560 0032 32 /57 1931 06561 0033 33 /58 1932 06562 0033 33 /59 1933 06563 0033 33 /60 1934 06564 0033 33 /61 1935 06565 0034 34 /62 1936 06566 0034 34 /63 1937 06567 0034 34 /64 1938 06570 0035 35 /65 1939 06571 0035 35 /66 1940 06572 0035 35 /67 1941 06573 0035 35 /68 1942 06574 0035 35 /69 1943 06575 0036 36 /70 1944 06576 0036 36 /71 1945 06577 0036 36 /72 1946 06600 0036 36 /73 1947 06601 0036 36 /74 1948 06602 0036 36 /75 1949 06603 0037 37 /76 1950 06604 0037 37 /77 1951 06605 0037 37 /78 1952 06606 0037 37 /79 1953 06607 0037 37 /80 1954 06610 0037 37 /81 1955 06611 0037 37 /82 1956 06612 0037 37 /83 1957 06613 0037 37 /84 1958 06614 0037 37 /85 1959 06615 0037 37 /86 1960 06616 0037 37 /87 1961 06617 0037 37 /88 1962 06620 0037 37 /89 1963 1964 1965 1966 06621 0000 MULTI, 0 /THIS IS STANDARD SINGLE PRECISION 1967 06622 7100 CLL /MULTIPLY ROUTINE WHICH WAS ONCE 1968 06623 7510 SPA /USED. I'VE LEFT IT IN SINCE 1969 06624 7061 CMA CML IAC /THERE IS LOTS OF CORE LEFT OVER AND 1970 06625 3271 DCA MULMP1 /MAYBLE SOMEDAY I'LL NEED IT TO PUT 1971 06626 3272 DCA MULMP5 /IN A SUN OR SOMETHING. THIS IS THE 1972 06627 1621 TAD I MULTI /STANDARD DEC SUBROUTINE WITH DIFFERENT 1973 06630 7450 SNA /LABELS 1974 06631 5255 JMP MULPSN+2 1975 06632 7510 SPA 1976 06633 7061 CMA CML IAC 1977 06634 3273 DCA MULMP2 1978 06635 1270 TAD MULTHR 1979 06636 3274 DCA MULMP3 1980 1981 06637 1271 MULMP4, TAD MULMP1 1982 06640 7010 RAR 1983 06641 3271 DCA MULMP1 1984 06642 1272 TAD MULMP5 1985 06643 7430 SZL 1986 06644 1273 TAD MULMP2 1987 06645 7110 CLL RAR 1988 06646 3272 DCA MULMP5 1989 06647 2274 ISZ MULMP3 1990 06650 5237 JMP MULMP4 1991 06651 1271 TAD MULMP1 1992 06652 7010 RAR 1993 06653 7430 MULPSN, SZL 1994 06654 5261 JMP MULCMP 1995 06655 3271 DCA MULMP1 1996 06656 1272 TAD MULMP5 1997 06657 2221 MULMPZ, ISZ MULTI 1998 06660 5621 JMP I MULTI 1999 2000 06661 7141 MULCMP, CMA CLL IAC 2001 06662 3271 DCA MULMP1 2002 06663 1272 TAD MULMP5 2003 06664 7040 CMA 2004 06665 7430 SZL 2005 06666 7001 IAC 2006 06667 5257 JMP MULMPZ 2007 2008 06670 7764 MULTHR, 7764 2009 06671 0000 MULMP1, 0 2010 06672 0000 MULMP5, 0 2011 06673 0000 MULMP2, 0 2012 06674 0000 MULMP3, 0 2013 2014 2015 / 2016 / SHIFTR DIVIDES THE AC BY TWO WHETHER POSITIVE OR NEGATIVE 2017 / AND IS CALLED FROM VARIOUS PLACES. NOT ENTIRELY MYSTERIOUS 2018 / 2019 2020 2021 06675 0000 SHIFTR, 0 2022 06676 7100 CLL 2023 06677 7510 SPA 2024 06700 7021 CML IAC 2025 06701 7010 RAR 2026 06702 5675 JMP I SHIFTR 2027 2028 2029 / 2030 / POSCAL IS CALLED TO CALCULATE THE COORDINATE INCREMENTS 2031 / NECESSARY TO PRODUCE THE SHIP FIGURES. RATHER THAN DOING 2032 / A LOT OF EXPENSIVE MATH THIS DOES A QUICK PRODUCTION 2033 / OF 1, 2, AND 3 TIMES THE SIN AND COSINE VALUES FOUND 2034 / IN CALSIN AND CALCOS LEAVING THEM IN THE TABLE FOR 2035 / ONESET AND TWOSET. IF THE SCOPE WERE ANY BETTER 2036 / THIS PROBABLY WOULDN'T BE NEAR GOOD ENOUGH BUT.... 2037 / 2038 2039 06703 0000 POSCAL, 0 2040 06704 1063 TAD CALSIN 2041 2042 06705 3055 DCA T10SIN 2043 06706 1055 TAD T10SIN 2044 06707 7104 CLL RAL 2045 06710 3056 DCA T20SIN 2046 06711 1055 TAD T10SIN 2047 06712 1056 TAD T20SIN 2048 06713 3057 DCA T30SIN 2049 2050 06714 1064 TAD CALCOS 2051 2052 06715 3060 DCA T10COS 2053 06716 1060 TAD T10COS 2054 06717 7104 CLL RAL 2055 06720 3061 DCA T20COS 2056 06721 1060 TAD T10COS 2057 06722 1061 TAD T20COS 2058 06723 3062 DCA T30COS 2059 06724 5703 JMP I POSCAL 2060 2061 2062 *7000 2063 2064 /GENERAL PURPOSE SYMBOL GENERATOR 2065 / 2066 07000 0000 CHARS, 0 /ENTRY TO PLOT CHARACTER STRING 2067 07001 3335 DCA ADDR /STORE STRING ADDRESS 2068 07002 1735 TAD I ADDR /FETCH DOUBLE CHARACTER 2069 07003 7012 RTR /SHIFT 2070 07004 7012 RTR / FOR FIRST 2071 07005 7012 RTR / CHARACTER 2072 07006 4216 JMS CHAR /PLOT CHARACTER 2073 07007 7410 SKP /NORMAL RETURN -- SKIP 2074 07010 5600 JMP I CHARS /TERMINATION RETURN -- EXIT 2075 07011 1735 TAD I ADDR /RECALL DOUBLE CHARACTER 2076 07012 2335 ISZ ADDR /ADVANCE STRING ADDRESS 2077 07013 4216 JMS CHAR /PLOT CHARACTER 2078 07014 5202 JMP CHARS+2 /NORMAL RETURN -- REPEAT 2079 07015 5600 JMP I CHARS /TERMINATION RETURN -- EXIT 2080 / 2081 07016 0000 CHAR, 0 /ENTRY TO PLOT SINGLE CHARACTER 2082 07017 0341 AND K77 /MASK OUT UPPER BITS 2083 07020 7104 CLL RAL /MULTIPLY CODE BY TWO 2084 07021 1343 TAD TABLE /ADD TABLE BASE ADDRESS 2085 07022 3342 DCA POINT /CONSTRUCT POINTER TO 24-BIT CODE 2086 07023 7040 CMA /INITIALIZE COUNTER FOR 2087 07024 3337 DCA COUNT2 / TWO PLOT WORDS 2088 07025 1742 TAD I POINT /FETCH FIRST PLOT WORD 2089 07026 2342 ISZ POINT /INCREMENT POINTER FOR NEXT ONE 2090 07027 7450 SNA /SKIP IF NOT SPECIAL CHARACTER 2091 07030 5301 JMP SPCHAR /ELSE GO PROCESS IT 2092 07031 3334 DCA CURPLT /SAVE CURRENT PLOT BITS 2093 07032 1340 XPLOT, TAD KM6 /INITIALIZE 6-BIT 2094 07033 3336 DCA COUNT6 / COUNTER 2095 07034 1330 TAD YVALUE /RESET Y TEMPORARY 2096 07035 3333 DCA YTEMP / VALUE FOR CHARACTER 2097 07036 1327 TAD XVALUE /OUTPUT CURRENT 2098 07037 7100 CLL 2099 07040 6053 DILX / X-VALUE TO CRT 2100 07041 1331 TAD XINCR /INCREMENT 2101 07042 3327 DCA XVALUE / ABSCISSA 2102 07043 1334 YPLOT, TAD CURPLT /RECALL CURRENT PLOT BITS 2103 07044 7104 CLL RAL /GET NEXT BIT 2104 07045 3334 DCA CURPLT /SAVE REMAINING PLOT BITS 2105 07046 7420 SNL /SKIP IF POINT TO PLOT 2106 07047 5262 JMP CNTINU /ELSE JUMP AHEAD 2107 07050 1333 TAD YTEMP /OUTPUT CURRENT 2108 07051 7100 CLL 2109 07052 6054 DILY / Y-VALUE TO CRT 2110 07053 6052 DISD / CHECK VC8E READY 2111 07054 5253 JMP .-1 / 2112 07055 6055 DIXY / SHOW IT 2113 07056 7300 CLA CLL /CLEAR AC 2114 07057 1334 TAD CURPLT /RECALL CURRENT PLOT BITS 2115 07060 7650 SNA CLA /SKIP IF POINTS REMAINING 2116 07061 5270 JMP WRDEND /ELSE WORD IS FINISHED 2117 07062 1333 CNTINU, TAD YTEMP /INCREMENT TEMPORARY 2118 07063 1332 TAD YINCR / Y-VALUE FOR NEXT 2119 07064 3333 DCA YTEMP / CHARACTER STEP 2120 07065 2336 ISZ COUNT6 /SKIP IF 6 BITS PLOTTED 2121 07066 5243 JMP YPLOT /ELSE PLOT NEXT ONE 2122 07067 5232 JMP XPLOT /GO UPDATE X-VALUE 2123 07070 2337 WRDEND, ISZ COUNT2 /SKIP IF ANOTHER BIT WORD 2124 07071 5275 JMP EXIT /ELSE EXIT 2125 07072 1742 TAD I POINT /FETCH SECOND BIT WORD 2126 07073 7440 SZA /SKIP IF NO PLOT POINTS 2127 07074 5231 JMP XPLOT-1 /ELSE GO PLOT THEM 2128 07075 1327 EXIT, TAD XVALUE /INCREMENT ABSCISSA 2129 07076 1331 TAD XINCR / FOR SPACE BETWEEN 2130 07077 3327 DCA XVALUE / SYMBOLS 2131 07100 5616 JMP I CHAR /EXIT FROM CHAR 2132 / 2133 07101 1742 SPCHAR, TAD I POINT /FETCH TRANSFER VECTOR 2134 07102 3342 DCA POINT /STORE AS INDIRECT ADDRESS 2135 07103 5742 JMP I POINT /GO TO APPROPRIATE ROUTINE 2136 07104 1331 SPACE, TAD XINCR /FETCH BASIC ABSCISSA INCREMENT 2137 07105 7106 CLL RTL /MULTIPLY BY FOUR AND 2138 07106 5275 JMP EXIT / GO CREATE SPACE 2139 07107 1325 CRLF, TAD INITX /"CARRIAGE RETURN" RESETS X 2140 07110 3327 DCA XVALUE / TO ITS ORIGINAL VALUE 2141 07111 1332 LF, TAD YINCR /"LINE FEED" 2142 07112 7106 CLL RTL / DECREMENTS THE 2143 07113 7145 CLL CIA RAL / Y-VALUE BY 2144 07114 1330 TAD YVALUE / EIGHT SCALE 2145 07115 3330 DCA YVALUE / STEPS 2146 07116 5616 JMP I CHAR /EXIT FROM CHAR 2147 07117 1325 RESET, TAD INITX /"RESET" RESETS 2148 07120 3327 DCA XVALUE / X AND Y TO 2149 07121 1326 TAD INITY / THEIR ORIGINAL 2150 07122 5315 JMP RESET-2 / VALUES 2151 07123 2216 TERM, ISZ CHAR /TERMINATE CODE CAUSES 2152 07124 5616 JMP I CHAR / EXIT TO P+2 2153 / 2154 07125 0000 INITX, 0 /INITIAL X-VALUE 2155 07126 0327 INITY, 327 /INITIAL Y-VALUE 2156 07127 0000 XVALUE, 0 /CURRENT X-VALUE 2157 07130 0000 YVALUE, 0 /CURRENT Y-VALUE 2158 07131 0006 XINCR, 6 /BASIC X INCREMENT VALUE 2159 07132 0010 YINCR, 10 /BASIC Y INCREMENT VALUE 2160 07133 0000 YTEMP, 0 /TEMPORARY Y-VALUE 2161 07134 0000 CURPLT, 0 /CURRENT PLOT BITS 2162 07135 0000 ADDR, 0 /CURRENT STRING ADDRESS 2163 07136 0000 COUNT6, 0 /6-BIT COUNTER 2164 07137 0000 COUNT2, 0 /2-WORD COUNTER 2165 07140 7772 KM6, -6 /CONSTANT FOR COUNT6 2166 07141 0077 K77, 77 /CHARACTER CODE MASK 2167 07142 0000 POINT, 0 /TABLE POINTER 2168 / 2169 2170 / 2171 07143 7144 TABLE, .+1 /TABLE BASE ADDRESS 2172 07144 0000 0 /SPECIAL CHARACTER (00) 2173 07145 7123 TERM /TERMINATION CODE 2174 07146 7611 7611 / A 2175 07147 1176 1176 2176 07150 7745 7745 / B 2177 07151 4532 4532 2178 07152 3641 3641 / C 2179 07153 4122 4122 2180 07154 7741 7741 / D 2181 07155 4136 4136 2182 07156 7745 7745 / E 2183 07157 4541 4541 2184 07160 7705 7705 / F 2185 07161 0501 501 2186 07162 7741 7741 / G 2187 07163 5173 5173 2188 07164 7710 7710 / H 2189 07165 1077 1077 2190 07166 4177 4177 / I 2191 07167 4100 4100 2192 07170 2040 2040 / J 2193 07171 4037 4037 2194 07172 7714 7714 / K 2195 07173 2241 2241 2196 07174 7740 7740 / L 2197 07175 4040 4040 2198 07176 7702 7702 / M 2199 07177 0277 277 2200 07200 7706 7706 / N 2201 07201 3077 3077 2202 07202 7741 7741 / O 2203 07203 4177 4177 2204 07204 7705 7705 / P 2205 07205 0502 502 2206 07206 3641 3641 / Q 2207 07207 6176 6176 2208 07210 7715 7715 / R 2209 07211 2542 2542 2210 07212 2245 2245 / S 2211 07213 5122 5122 2212 07214 0177 177 / T 2213 07215 0100 100 2214 07216 3740 3740 / U 2215 07217 4037 4037 2216 07220 1720 1720 / V 2217 07221 4037 4037 2218 07222 7730 7730 / W 2219 07223 3077 3077 2220 07224 4136 4136 / X 2221 07225 3641 3641 2222 07226 0374 374 / Y 2223 07227 7403 7403 2224 07230 6151 6151 / Z 2225 07231 4543 4543 2226 07232 7741 7741 / [ 2227 07233 0000 0 2228 07234 0204 204 / \ 2229 07235 1020 1020 2230 07236 4177 4177 / ] 2231 07237 0000 0 2232 07240 0436 436 / ^ 2233 07241 0400 400 2234 07242 0000 0 /SPECIAL CHARACTER (37) 2235 07243 7117 RESET /RESET 2236 07244 0000 0 /SPECIAL CHARACTER (40) 2237 07245 7104 SPACE /SPACE 2238 07246 5600 5600 / ! 2239 07247 0000 0 2240 07250 0303 303 / " 2241 07251 0000 0 2242 07252 1477 1477 / # 2243 07253 7714 7714 2244 07254 2277 2277 / MARKER 2245 07255 2200 2200 2246 07256 2313 2313 / % 2247 07257 6462 6462 2248 07260 7777 7777 / BLOCK 2249 07261 7777 7777 2250 07262 0300 300 / ' 2251 07263 0000 0 2252 07264 3641 3641 / ( 2253 07265 0000 0 2254 07266 4136 4136 / ) 2255 07267 0000 0 2256 07270 4040 4040 / UNDERSCORE (52) 2257 07271 4040 4040 2258 07272 1034 1034 / + 2259 07273 1000 1000 2260 07274 0000 0 /SPECIAL CHARACTER (54) 2261 07275 7111 LF /LINE FEED 2262 07276 1010 1010 / - 2263 07277 1000 1000 2264 07300 4000 4000 / . 2265 07301 0000 0 2266 07302 2010 2010 / / 2267 07303 0402 402 2268 07304 3641 3641 / 0 2269 07305 4136 4136 2270 07306 4442 4442 / 1 2271 07307 7740 7740 2272 07310 4261 4261 / 2 2273 07311 5146 5146 2274 07312 2145 2145 / 3 2275 07313 5321 5321 2276 07314 1710 1710 / 4 2277 07315 1077 1077 2278 07316 4745 4745 / 5 2279 07317 4531 4531 2280 07320 7750 7750 / 6 2281 07321 5070 5070 2282 07322 6111 6111 / 7 2283 07323 0503 503 2284 07324 2255 2255 / 8 2285 07325 5522 5522 2286 07326 0705 705 / 9 2287 07327 0577 577 2288 07330 2400 2400 / : 2289 07331 0000 0 2290 07332 0000 0 /SPECIAL CHARACTER (73) 2291 07333 7107 CRLF /CARRIAGE RETURN; LINE FEED 2292 07334 1024 1024 / > 2293 07335 4200 4200 2294 07336 1212 1212 / = 2295 07337 1200 1200 2296 07340 4224 4224 / < 2297 07341 1000 1000 2298 07342 0255 255 / ? 2299 07343 0300 300 2300 2301 2302 / 2303 / HERE FOLLOW THE PACKED ASCII TEXTS FOR THE VARIOUS 2304 / VICTORY MESSAGES. PERSONS ADVENTEROUS TO FIND THIS MIGH CARE 2305 / TO TOGGLE IN SOME CUTE LITTLE MESSAGES OF THEIR OWN. 2306 / 2307 2308 07344 3773 MESS0, 3773 2309 07345 7340 MESS5, 7340 2310 07346 4040 4040 2311 07347 4040 4040 2312 07350 4000 4000 2313 2314 07351 1716 MESS1, 1716 2315 07352 0500 0500 2316 2317 07353 2427 MESS2, 2427 2318 07354 1700 1700 2319 2320 07355 2711 MESS3, 2711 2321 07356 1623 1623 2322 07357 4100 4100 2323 2324 07360 1617 MESS4, 1617 2325 07361 0217 0217 2326 07362 0431 0431 2327 07363 0000 0000 2328 2329 2330 *7400 2331 2332 07400 0000 DISBUF, 0 2333 2334 / THE DISPLAY BUFFERS BEGIN HERE AND EXTEND UP SOMEWHERE TO 2335 / AROUND 7575 OR SO. 2336 / 2337 / 2338 / 2339 / 2340 / 2341 2342 $ ACCFLG 0104 ACCPER 0105 ADDR 7135 AUTO10 0010 AUTO11 0011 AUTO12 0012 unreferenced AUTO13 0013 unreferenced AUTO14 0014 unreferenced AUTO15 0015 AUTO16 0016 AUTO17 0017 BUFLIM 1710 BUFSET 0314 BUFST 1707 BUFTMP 0112 C0401 0326 C3006 0325 C4010 0324 CALCOS 0064 CALPOS 0072 CALSIN 0063 CHAR 7016 CHARS 7000 CHECK 2000 CHECK2 2032 CHKOUT 1711 CLDI 6132 unreferenced CLEI 6131 CLOCK 0074 CLSK 6133 CNTINU 7062 COLDST 0244 COLIDE 1471 COLLID 2074 COLLIM 2136 COSINE 0066 COSINI 6463 COUNT2 7137 COUNT6 7136 CRLF 7107 CURPLT 7134 CUTOUT 2065 CUTPNT 2073 DICD 6051 DILC 6050 DILX 6053 DILY 6054 DISBUF 7400 DISCNT 0054 DISD 6052 DISHFT 1547 DISLOP 1511 DISPLY 1474 DIXTEM 0052 DIXY 6055 DIYTEM 0053 EMPTY 0003 unreferenced ENDGAM 1676 EXIT 7075 EXPDIS 2400 EXPIRE 1677 EXPLOP 2417 FILDIS 1400 FILONE 1420 FINISH 1657 FINITO 2553 unreferenced FLAM1 1052 unreferenced FLAM2 1263 unreferenced GAMOVR 0103 HM177 2270 HYPER 0075 HYPRET 2245 HYPSET 2200 IFILDS 1375 INCONE 2333 INCTWO 2334 INITX 7125 INITY 7126 INTACC 0365 INTBUS 0340 INTGLH 0367 INTLNK 0366 INTRET 0357 unreferenced INTSER 0330 INTTEM 0316 INTWRD 0073 IONEEX 1472 IONEST 0750 IPRODS 1463 ISHFT 0101 ITWOEX 1473 ITWOST 1153 ITWOUP 0552 IXPDIS 2332 JOBLOP 2542 K77 7141 KM6 7140 LF 7111 LFTHAF 0317 LIMIT 2064 LNC1FG 0553 LNC2FG 0751 M10 0133 M11 0134 unreferenced M200 0136 M264 0135 M4 0131 M400 0137 M550 0140 M6 0132 MES0 2554 MES1 2555 MES2 2556 MES3 2557 MES4 2560 MES5 2561 MESOUT 0076 MESS 2562 MESS0 7344 MESS1 7351 MESS2 7353 MESS3 7355 MESS4 7360 MESS5 7345 MEXP 0106 MHYP 2257 MRES 1740 MULCMP 6661 MULMP1 6671 MULMP2 6673 MULMP3 6674 MULMP4 6637 MULMP5 6672 MULMPZ 6657 MULPSN 6653 MULT 0067 unreferenced MULTHR 6670 MULTI 6621 N203 0352 NOWIN 2536 NOWPRO 2330 NOWTWO 2327 ODT1 0004 unreferenced ODT2 0005 unreferenced ODT3 0006 unreferenced OM14 0753 OM300 0555 ONECNT 0021 ONECON 1121 ONECOS 0031 ONEDIF 2251 ONEEXP 2271 ONEFIG 0437 ONEFIL 0113 ONEFIN 0032 ONEFLG 0022 ONELEF 0425 ONELNC 0507 unreferenced ONEMOV 0453 unreferenced ONEOK 0410 ONEOUT 0020 ONEPEX 0026 ONEPEY 0027 ONERTN 2254 ONERYT 0433 ONESET 1000 ONESIN 0030 ONETHE 0023 ONEUP 0400 ONEVEL 0472 ONEVEX 0024 ONEVEY 0025 ONEWIN 2522 ONEWN 0556 ONFG1 1154 ONFG2 1155 OP14 0752 OP300 0554 OUTLOC 2256 P10 0116 P100 0123 P132 0124 P17 0117 P20 0120 P200 0125 P37 0121 P3777 0130 unreferenced P40 0122 P400 0126 unreferenced P5 0115 P550 0127 POINT 7142 POSCAL 6703 PRODIS 1600 PROLIF 0111 PROLOP 1603 PROX 0107 PROY 0110 RESCNT 1741 RESCON 1726 RESE1 1712 RESET 7117 RESET1 0102 RESFND 1734 RESLOP 1715 RESPNT 1742 RESTRT 0201 RLBITS 0327 RSHIFT 0070 RTNFLG 2253 RYTHAF 0320 SETBUF 1743 SETLOP 1755 SETPNT 1764 SHIFTR 6675 SINARG 6452 SINE 0065 SINEIN 6400 SINELK 6444 SINES 6470 SINLST 6454 SINNEG 6423 SINNG2 6417 SINPOP 6410 SINPOS 6426 SINPSH 6453 SINTAB 6462 SPACE 7104 SPCHAR 7101 SPURIO 0353 START 0200 unreferenced STRT1 0321 STRT2 0322 STRTY 0323 T10COS 0060 T10SIN 0055 T20COS 0061 T20SIN 0056 T30COS 0062 T30SIN 0057 TABLE 7143 TABLEN 0315 TERM 7123 THEADJ 0077 THEAJI 2510 TIEUP 2331 TIMOUT 2250 TWDLOP 1453 TWFG1 1376 TWFG2 1377 TWOCNT 0034 TWOCOM 0141 TWOCON 1332 TWOCOS 0044 TWODIS 1435 TWOEXP 2310 TWOFIG 0635 TWOFIL 0114 TWOFIN 0045 TWOFLG 0035 TWOLEF 0623 unreferenced TWOLNC 0705 unreferenced TWOLST 2252 TWOMOV 0651 unreferenced TWOOK 0610 TWOOUT 0033 TWOPEX 0041 TWOPEY 0042 TWORTN 2255 TWORYT 0631 TWOSET 1200 TWOSIN 0043 TWOTHE 0036 TWOUP 0600 TWOVEL 0670 TWOVEX 0037 TWOVEY 0040 TWOWIN 2530 TWOWN 0754 UPDATE 0243 VECTOR 0071 VEECLR 2503 VEEHLD 2505 VEELIM 2464 VEEMAX 2507 VEEMIN 2506 VEEPOS 2476 VEESCL 0100 VEESET 2260 WRDEND 7070 XINCR 7131 XONEDS 0046 XPLOT 7032 XTWODS 0050 XVALUE 7127 YINCR 7132 YONEDS 0047 YPLOT 7043 YTEMP 7133 YTWODS 0051 YVALUE 7130