First Commit main
authorHistorical Source <49599193+historicalsource@users.noreply.github.com>
Thu, 14 Oct 2021 21:18:41 +0000 (17:18 -0400)
committerHistorical Source <49599193+historicalsource@users.noreply.github.com>
Thu, 14 Oct 2021 21:18:41 +0000 (17:18 -0400)
A33689.1A [new file with mode: 0644]
A33689.1B [new file with mode: 0644]
A33689.1C [new file with mode: 0644]
A33689.1D [new file with mode: 0644]
A33711.ROM [new file with mode: 0644]
A33712.ROM [new file with mode: 0644]
A33713.ROM [new file with mode: 0644]
ORBIT.DOC [new file with mode: 0644]
ORBIT.MAP [new file with mode: 0644]
TBL2.BAS [new file with mode: 0644]

diff --git a/A33689.1A b/A33689.1A
new file mode 100644 (file)
index 0000000..031903b
Binary files /dev/null and b/A33689.1A differ
diff --git a/A33689.1B b/A33689.1B
new file mode 100644 (file)
index 0000000..6b8ae6c
--- /dev/null
+++ b/A33689.1B
@@ -0,0 +1,3536 @@
+       .TITLE SPACWR-SPACE WAR 6/8/78 ORR\r
+       .ASECT\r
+       .RADIX 16\r
+       .SBTTL GAME DESCRIPTION & ALLOCATION\r
+       ;****************************\r
+       ;****************************\r
+       ;THE GAME OF SPACE WAR\r
+       ;\r
+       ;STARTED 6/8/78\r
+       ;****************************\r
+       .REPT 0\r
+*PROJECT #:    5U211\r
+*\r
+*DISK #:       29\r
+*\r
+*\r
+*HARDWARE:     MODIFIED MACH 8/16\r
+*\r
+*MEMORY:       SEE BELOW UNDER DEFINITIONS\r
+*\r
+*\r
+*INTERRUPTS:   NMI 4/FRAME IRQ-VBLANK (FOR OUTPUT)\r
+*\r
+*ASSEMBLY:     UNDER MAC68\r
+*              FILE: SPACWR\r
+*\r
+*LINK:         UNDER LINKM\r
+*              LINK WITH: SPACGR,SPAC68\r
+*\r
+*DESCRIPTION:  THIS IS A 2 PLAYER GAME OF SPACE WAR.  PLAYERS\r
+*              TRY TO DESTROY OPPONENTS SHIP BY SHOOTING PHOTON\r
+*              TORPEDOES AT EACH OTHER.  A COMPLETELY DESTROYED\r
+*              SHIP SCORES 1 POINT.\r
+       ;****************************\r
+       .ENDR\r
+\f\r
+       .SBTTL  PAGE 0 BLOCK ALLOCATION\r
+       ;PAGE 0:\r
+       ;\r
+       .GLOBL GRV1,GRV2        ;GRAVITY EQUATES FROM SPACGR\r
+;COIN ROUTINE GLOBLS\r
+       .GLOBL  $COINA,$LAM,$LMBIT\r
+       .GLOBL  $CNSTT,$PSTSL\r
+       .GLOBL  $LMTIM,$CNCT\r
+       .GLOBL  COIN68\r
+;DIAGNOSTIC GLOBLS\r
+       .GLOBL  DIAG,PLAYF,TOO,CLRS,TESTPAT,VBLANK,PICTURE,PANL2\r
+       .GLOBL  WTDOG,X1,X2,X3,R0,NMI,IRQ,START\r
+;\r
+;PAGE 0 ALLOCATION\r
+;\r
+OBJH:  .BLKB 10                ;16 ORJECT HORIZ\r
+OBJV:  .BLKB 10                ;VERTICAL\r
+OBJHL: .BLKB 10                ;LSBH (POSITION)\r
+OBJVL: .BLKB 10                ;LSBV (POSITION)\r
+OBJHV: .BLKB 10                ;HORIZ VELOCITY\r
+OBJHVL:        .BLKB 10                ;LSB H VELOCITY\r
+OBJVV: .BLKB 10                ;VERT VELOCITY\r
+OBJVVL:        .BLKB 10                ;LSB VERT VELOCITY\r
+DIR:   .BLKB 10                ;DIRECTION (PICTURE)\r
+STAT:  .BLKB 10                ;OBJECT'S STATUS (SEE PAGE 4)\r
+J:     .BLKB 1                 ;HOLDS COSINE FROM TABLE\r
+R0:    .BLKB 1                 ;TEMP REGISTER\r
+R1:    .BLKB 1                 ;MOTHER REGISTER\r
+TPTR:  .BLKB 2                 ;USED TO BUILD TABLE POINTERS\r
+X1:    .BLKB 2                 ;TEMPORARY IX HOLDERS\r
+X2:    .BLKB 2\r
+X3:    .BLKB 2\r
+HOLDHV:        .BLKB 1                 ;HOLD HORIZ VELOCITY IN \r
+HOLDVV:        .BLKB 1                 ;AS ABOVE FOR VERTICAL\r
+TSTHV: .BLKB 1                 ;COLLISION PARAMETERS HOLD\r
+TSTHVL:        .BLKB 1                 ;AND DECELERATION HOLD BYTES\r
+TSTVV: .BLKB 1\r
+TSTVVL:        .BLKB 1\r
+TSTV:  .BLKB 1\r
+TSTH:  .BLKB 1\r
+ROCKD: .BLKB 1                 ;DELAY ON NEXT SPACE ROCK\r
+TIME:  .BLKB 1                 ;FRAME COUNTER\r
+SYNC:  .BLKB 1                 ;VBLANK SYNC WORD\r
+TSP:   .BLKB 2                 ;NMI STACK POINTER HOLDER\r
+TIX:   .BLKB 2                 ;NMIIX HOLDER #1\r
+TIX2:  .BLKB 2                 ;NMI IX HOLDER #2\r
+SPEED: .BLKB 1                 ;BULLETS SPEED (CALLS TO ACEL)\r
+ACCEL: .BLKB 1                 ;ACCEL SPEED TIME MASK\r
+MAXV:  .BLKB 1                 ;DECEL SPEED TIME MASK\r
+WRNMK: .BLKB 1                 ;WARN MASK (IF BIT SET, ALREADY WARNED)\r
+                               ;D3=SHIP 1, LOW SHOTS\r
+                               ;D2=SHIP 1, LOW FUEL\r
+                               ;D1=SHIP 0, LOW SHOTS\r
+                               ;D0=SHIP 0, LOW FUEL\r
+OPEN:  .BLKB 1                 ;OPTION STATUS BYTE 1 (SELECTED IF BIT=1)\r
+                               ;D7 = 0 = FREE SPACE / 1 = REBOUND\r
+                               ;D6=NEG GRAV\r
+                               ;D5=NO GRAVITY\r
+                               ;D4=BLACK HOLE\r
+                               ;D3=SPACE STATIONS (1=YES,0=NO)\r
+                               ;D2=UNLIMITED FUEL & SHOTS (1=Y,0=NO)\r
+                               ;D1=STARS (1=YES, 0=NO)\r
+                               ;D0=STRONG GRAV (1=STRONG,0=EASY)\r
+OPEN2: .BLKB 1                 ;OPTION BYTE 2\r
+                               ;D7=INSTANT FULL SPEED (FOR GAMES 0, 1 & 2)\r
+                               ;D6=NO GRAV UNTILL THRUST,SHIP 0\r
+                               ;D5=SAME AS D6, SHIP 1\r
+                               ;D0=PARTIAL BRAKES (GAMES 3 & 4)\r
+TIMES: .BLKB 1                 ;LENGTH (TIME) OF ACTIVE SHELLS\r
+ROTS:  .BLKB 1                 ;ROTATION SPEED MASK\r
+ENDDLY:        .BLKB 1                 ;TIME BEFORE NEXT HEAT (AFTER A SHIP DESTRUCTION)\r
+POLY:  .BLKB 1                 ;POLY COUNTER BYTE\r
+FLAG:  .BLKB 1                 ;GEN PURPOSE FLAG (DON'T BET ON THIS BEING ANYTHING)\r
+SHOT0: .BLKB 1                 ;SHOTS REMAINING\r
+SHOT1: .BLKB 1\r
+FUEL0: .BLKB 1                 ;FUEL REMAINING\r
+FUEL1: .BLKB 1\r
+HYPT0: .BLKB 1                 ;HYPERSPACE TIMERS\r
+HYPT1: .BLKB 1\r
+SNDLR:  .BLKB 1                ;RIGHT & LEFT SOUND LEVELS (EXPLOSIVE)\r
+SNDLL: .BLKB 1\r
+FIRES:  .BLKB 1                        ;FIRE SHOT SOUND TIMER\r
+MOD:   .BLKB 1                 ;IF NOT 0, PANEL ENTRY IS A MOD, 0=SELECT MOD ONLY\r
+DELAY: .BLKB 1                 ;DELAY BYTE BEFORE ACCEPTING MODS (& USED FOR SOUND BEEP)\r
+WARN:  .BLKB 1                 ;WARNING BEEP TIMER\r
+LANG:  .BLKB 1                 ;OBVIOUSLY LANGUAGE (X2)\r
+MASK:  .BLKB 1                 ;USED BY OUTPUT ROUTINE TO MASK STATUS BITS\r
+FRAME: .BLKB 1                 ;FRAME COUNTER FOR CLOCK\r
+STRBLK:        .BLKB 2                 ;POINTS TO NEXT TABLE LOC\r
+                               ;FOR NEXT START TO BLINK\r
+\r
+CHANGE:        .BLKB 1                 ;OUTPUT CHANGE FLAG FOR CLOCK (TELLS WHEN TO OUTPUT AGAIN)\r
+SWT1:  .BLKB 1                 ;TOUCH SWITCH DEBOUNCE AND CHANGE BYTE\r
+SWT2:  .BLKB 1                 ;SAME FOR OTHER INPUT SWITCH \r
+HEATT:  .BLKB 1                        ;HEAT TIME FOR SCORE/STATUS DISPLAY\r
+;COIN ROUTINE WORDS\r
+$CNSTT:        .BLKB 2                 ;COIN TIMERS\r
+$PSTSL:        .BLKB 2                 ;POST COIN SLAM\r
+$LMTIM:        .BLKB 1                 ;PRE SLAM TIMERS\r
+$CNCT: .BLKB 1                 ;COIN COUNTERS\r
+SECOND: .BLKB 1                        ;GAME TIME REMAINING (BCD MINUTES/SECONDS)\r
+MINUTE:        .BLKB 1\r
+MINUTC:        .BLKB 1                 ;MINUTES CHECK CONTROL BYTE\r
+GMSTAT:        .BLKB 1                 ;GAME STATUS (D7=ACTIVE ATTRACT, D6=WAIT FOR START)\r
+                               ;D5-D0=FREEZE TIME IF D6 & D7=0)\r
+SCORE1:        .BLKB 1                 ;PLAYERS SCORES\r
+SCORE0:        .BLKB 1\r
+ATRACT:        .BLKB 1                 ;ATTRACT TIME RESET\r
+TOWR:  .BLKB 0                 ;TOP OF WORKING RAM POINTER\r
+\f\r
+       .SBTTL  EQUATES\r
+       ;************************\r
+       ;DEFINITIONS & EQUATES:\r
+       ;\r
+       ;SWITCHES ARE ACTIVE 0\r
+IN08   =0800\r
+       ;SWITCH 0 (FOR PLAYER 0)\r
+       ;D7=COIN SW 0\r
+       ;D6=SLAM SWITCH\r
+       ;D5=TRIGGER SW\r
+       ;D4=HYPERSPACE\r
+       ;D3=LEFT\r
+       ;D2=RIGHT\r
+       ;D1=UP(FOWARD THRUST)\r
+       ;D0=SPARE\r
+$LAM   =0800\r
+       ;SLAM ADDRESS\r
+$LMBIT =40\r
+       ;SLAM BIT\r
+IN10   =1000\r
+       ;SWITCH 1 (FOR PLAYER 1)\r
+       ;D7 THRU D2 SAME AS ABOVE\r
+       ;EXCEPT D6=TEST SWITCH\r
+TSTSW  =1000\r
+TSTBIT =40\r
+IN18   =1800\r
+       ;OPTION SWITCHES\r
+       ;D7 THRU D0=OPTION (BOARD) SWITCHES\r
+       ;D6=SPARE\r
+       ;D5=FREE PLAY (1=YES)\r
+       ;D3&D4=LANGUAGE\r
+       ;D2=1/2 PRICE OPTION\r
+       ;D0&D1=TIME PER COIN\r
+PANL1  =2800\r
+       ;PANEL SWITCH\r
+       ;TOUCH SWITCHES 0 THRU 7\r
+       ;D7=SWITCH 0,ETC\r
+       ;SEE PG 0, 'OPEN' FOR DESC. OF SWITCH OPTIONS\r
+PANL2  =2000\r
+       ;D7=VBLANK (EQUATED, BELOW)\r
+       ;D6=NEXT (DIAGNOSSTIC)\r
+       ;D5=DIAGNOSTIC SELECT\r
+       ;D4=HEAT RESET\r
+       ;D3=SCREEN REFLECT BIT(1=MIRROR)\r
+       ;D2=TOUCH SWITCH 8\r
+       ;D1=TOUCH SWITCH 9\r
+       ;D0=GAME RESET\r
+       ;\r
+LEDLTCH =3C09\r
+       ;LATCHES DATA FOR LEDS TO OUTPUT LATCH\r
+       ;SETS LED /TOUCH BUS TO OUTPUT\r
+       ;DATA SETS LEDS ON OR OFF\r
+       ;0=ON,1=OFF\r
+LEDST0 =3C0B\r
+       ;BUS STORBE GOES TO 0\r
+       ;NOTE: THIS ALSO LATCHES THE ACC\r
+       ;TO THE DATA LATCH\r
+       ;THIS ADDRESS CHANGES THE DIRECTION\r
+       ;OF THE BUS TO OUTPUT; PUT THE TOUCH\r
+       ;SWITCH IN "TRI=STATE"\r
+LEDST1 =3C0A\r
+       ;BUS STROBE TO 1\r
+       ;COMPLETES STROBE PALSE\r
+       ;NOTE: THIS ALSO LATCHES THE ACC\r
+       ;TO THE DATA LATCH\r
+SWST0  =3C08\r
+       ;CHANGES THE LED/TOUCH SWITCH BUS\r
+       ;FROM OUTPUT (AS ABOVE) TO INPUT\r
+       ;SO THE SWITCHES MAY BE READ.\r
+VBLANK =2000\r
+       ;VBLANK INPUT LOCATION\r
+NOSRST =3E00\r
+       ;WRITE NOISE RESET\r
+WTDOG  =3F00\r
+       ;WATCH DOG TIMER RESET\r
+PLAYF  =3000\r
+       ;UPPER LEFT PLAYFIELD CORNER (43BF=LOWER RIGHT CORNER)\r
+PICTURE        =33C0\r
+       ;SEE ABOVE 'ROTTBL' ON PG 38 FOR PICTURE BIT DESCRIPTIONS\r
+       ;PICTURE INFO OUTPUT 0\r
+       ;33C4=PICTURE #1\r
+       ;33C8=PICTURE #2\r
+       ;THRU\r
+       ;33FC=PICTURE #F\r
+VPOS   =33C1\r
+       ;VERTICAL INFO OUTPUT 0\r
+       ;33C5=#1\r
+       ;THRU\r
+       ;33FD=#F\r
+HPOS   =33C2\r
+       ;HORIZ INFO OUTPUT 0\r
+       ;33C6=#1\r
+       ;THRU\r
+       ;33FE=#F\r
+       ;\r
+HLFSP  =33C3\r
+       ;HALF SPEC PICTURE INFO\r
+       ;D7=8X(16 OR 32) SELECT (1=8X16)\r
+       ;D6=TOP/BOTTOM SELECT (1=TOP HALF)\r
+       ;D5,D4,D3,D2 NOT USED\r
+       ;D1=STRETCH (2 WIDE) (0=NORM)\r
+       ;D0=ALT PICTURE ROM SELECT (SHIPS IN D0=0)\r
+;\r
+;SPECIAL NOTE: OBJECT 0 IS OUTPUT TO TOP OF MOTION RAM (33FC-33FF)\r
+;              WHILE OBJECT 15. IS OUTPUT TO BOTTOM (33C0-33C3).\r
+TOO    =33FF\r
+       ;TOP OF MOTION OBJECT OUTPUT LOCATIONS\r
+TOSP   =00FF\r
+       ;TOP OF STACK\r
+       ;\r
+       ;PROGRAM ADDRESSES AVAILABLE\r
+       ;       ROM 1 = 6000 (NOT USED)\r
+       ;       ROM 2 = 6800\r
+       ;       ROM 3 = 7000\r
+       ;       ROM 4 = 7800\r
+       ;\r
+       ;VECTORS IN ROM 4\r
+       ;\r
+OUT20  =3C02\r
+       ;COIN LOCKOUT DROP, +1 TO ENERGIZE\r
+OUT28  =3C04\r
+       ;NMI OFF, +1 FOR NMI'S ON\r
+HTRSTL =3C06\r
+       ;HEAT RESET LED (+1 FOR ON)\r
+HYPLED =3C0C\r
+       ;HYPER SPACE LED (+1 FOR ON)\r
+BUZZ   =3C0E\r
+       ;WARNING BUZZER (+1 FOR ON)\r
+NOTE   =3800\r
+       ;MUSIC NOTE\r
+AMPL   =3A00\r
+       ;MUSIC NOTE AMPLITUDE\r
+       ;MSB NIBBLE=CHAN2\r
+       ;LSB NIBBLE=CHAN1\r
+NOISE  =3900\r
+       ;WHITE NOISE AMPLITUDE\r
+       ;MSB NIBBLE CHAN2\r
+       ;LSB NIBBLE CHAN1\r
+       ;\r
+TOS    =0EF                    ;TOP OF SCREEN (MOTION OBJECT LIMITS)\r
+BOS    =05                     ;BOTTON OF SCREEN\r
+LOS    =05                     ;RIGHT EDGE OF SCREEN\r
+ROS    =0EF                    ;LEFT LEDGE OF SCREEN\r
+DIAM0  =1                      ;NOSE HIT DIAMETER\r
+DIAM   =5                      ;DIAMETER OF OBJECT\r
+SUNA   =35D0                   ;ALPHA-FIELD SUN LOCATION\r
+SUN    =80                     ;SUN ON SCREEN (MOTION OBJ POSITION)\r
+SUNPIC =01C                    ;SUN PICTURE SEQ START (THERE ARE 3)\r
+EXPIC  =10                     ;EXPLOSION START(ROM 2)\r
+BULPIC =00                     ;BULLET (IN ROM 2)\r
+LASTEXP        =20                     ;LAST EXPLOSION PICTURE (ROM 2)\r
+STNPIC =0A                     ;SPACE STATION PIC @ A&B (ROM 2)\r
+TPCPL  =3628                   ;TIME PER COINS OUTPUT LOCATION\r
+GMOVPL  =3788                  ;GAME OVER OUTPUT LOCATION\r
+SCPL0  =37A0                   ;OUTPUT PLACE FOR SCORE PLAYER 0\r
+SCPL1  =37BC                   ;OUTPUT FOR 1\r
+CLKPLC  =37AD                  ;OUTPUT LOC FOR CLOCK\r
+CRIPLE =15                     ;CRIPLED SHIP SPEED (AND PARTIAL BRAKE SPEED)\r
+COLON  =24                     ;COLON PICTURE\r
+SMCOLN =21                     ;SMALL COLON PIC\r
+ROCK   =01                     ;SPACE ROCK PIC (+1 FOR EXPLODING) (ROM2)\r
+LEXPRK =09                     ;LAST IN SEQUENCE OF EXPLODING ROCK (ROM2)\r
+STARPC =1F                     ;STAR PIC (ALPHA CHAR)\r
+TESTPAT        =2F                     ;TEST PATTERN IN ROM 2\r
+BLKPIC =0E                     ;BLANK PIC (IN ROM 2)\r
+LITTLE =25                     ;VALUE STORED TO 'FLAG' FOR LITTLE NUMBERS\r
+LARGE  =30                     ;LARGE NUMBERS\r
+;COIN ROUTINE ADDRESS\r
+$COINA =0800                   ;COIN 1 ADDRESS (OTHER +800 AWAY)\r
+;\r
+;PICTURE INFO\r
+;      SPACE SHIPS ARE 2-8X32 PICS NEXT TO EACH OTHER.  ROTATIONS ARE\r
+;      PICS 0-7 (LEFT HALF) & 10-17 (RIGHT HALF).  EACH SHIP USES 1/2\r
+;      OF THE TOTAL 32 LENGTH, SO "2" HALF PICTURES ARE HELD IN PICTURE\r
+;      0, ETC.\r
+;      BY USING THE 'HLFSP' BYTE, ONE OF TWO SHIPS CAN BE DISPLAYED IN\r
+;      PICTURE 0.  FOR EXAMPLE:  PUT UP OBJ0 & OBJ1 NEXT TO EACH OTHER.\r
+;      SET OBJ0 TO PIC0, OBJ1 TO PIC10.  STORE AN 80 IN 'HLFSP' FOR BOTH\r
+;      OBJECTS.  ONLY 1 SHIP WILL BE SEEN.  BY STORING AN 0C0 INTO 'HLFSP'\r
+;      OF BOTH OBJECTS, THE OTHER SHIP WILL APPEAR.\r
+;      PICTURES (EITHER TOP OR BOTTOM) IN HALF MODE ALWAYS SHOW TOP JUSTIFIED\r
+;\r
+;\r
+;\r
+       .REPT 0\r
+SPECIAL PROGRAM NOTE:\r
+       THROUGH OUT THE PROGRAM YOU WILL NOTE THAT THE IX REGISTER\r
+       IS USED TO POINT TO A NUMBER OF DIFFERENT ITEMS IN A \r
+       SINGLE ROUTINE. SINCE IN A 6800 IT IS EASIER TO DO A \r
+       'DEX BNE' RATHER THAN A 'DEX CPX I,0FFFF BNE', THE IX\r
+       IS USUALLY (NOT ALWAYS) POINTED 1 PAST THE OBJECT DESIRED.\r
+       A PROBLEM COULD ARISE IF ANY OF THESE ROUTINES ARE USED ON\r
+       HARDWARE THAT DOES NOT MAP PAGE 1 TO PAGE 0: WHEN REFERING\r
+       TO THE OBJECT AT '00' IN THIS WAY, A SAMPLE INSTRUCTION\r
+       WOULD LOOK LIKE  'LDAA  X,OBJH-1'. THIS ASSEMBLES TO THE\r
+       CODE A6 FF. NOTE THAT IF THE IX = 2 (FOR EXAMPLE) THAT THE\r
+       LOAD IS ACTUALLY FROM 101, NOT 01. KEEP THIS IN MIND IF ANY\r
+       OF THESE ROUTINE ARE TO BE USED ELSE WHERE.\r
+       .ENDR\r
+\r
+\f\r
+       .SBTTL  OBJECT SET UP\r
+       .REPT 0\r
+OBJECT SET UP:  THE 16 MOTION OBJECTS ARE SET UP AS FOLLOWS:\r
+\r
+     OBJECT #                        USAGE\r
+     ========                        =====\r
+\r
+       0                       PLAYER 0 SHIP\r
+       1                       PLAYER 1 SHIP\r
+       2                       OTHER HALF OF SHIP, PLAYER 0\r
+       3                       OTHER HALF OF SHIP, PLAYER 1\r
+       4                       BULLET 0, PLAYER 0\r
+       5                       BULLET 0, PLAYER 1\r
+       6                       BULLET 1, PLAYER 0\r
+       7                       BULLET 1, PLAYER 1\r
+       8                       BULLET 2, PLAYER 0\r
+       9                       BULLET 2, PLAYER 1\r
+       10.                     BULLET 3, PLAYER 0\r
+       11.                     BULLET 3, PLAYER 1\r
+       12.                     EXPLOSION 0, PLAYER 0\r
+       13.                     EXPLOSION 0, PLAYER 1\r
+       14.                     STATION 1 (OR SPACE ROCK)\r
+       15.                     STATION 2\r
+       .ENDR\r
+;EQUATES FOR ABOVE\r
+SHIP0  =0\r
+SHIP1  =1\r
+SHIPHF =2\r
+BULT0  =4\r
+BULT1  =6\r
+BULT2  =8\r
+BULT3  =10.\r
+EXPP0  =12.\r
+STION1 =14.\r
+STION2 =15.\r
+       .SBTTL  STATUS BYTE MEANING\r
+       .REPT   0\r
+STATUS WORD SET UP:\r
+\r
+       DATA BIT #                      USAGE (SHOWN WHEN 1)\r
+       ==== === =                      ===== ====== ==== ==\r
+\r
+           7                           ACTIVE\r
+           6                           DESTROYED\r
+           5                           IN HYPER SPACE\r
+           4                           EDGE SENSE ON HYPER BUTTON\r
+           3                           EDGE SENSE ON BULLET FIRE\r
+           2                           CRIPPLED 1\r
+           1                           CRIPPLED 2 (BOTH=NOISE CONE)\r
+           0                           THRUST ON\r
+       .ENDR\r
+\f\r
+       .SBTTL NMI ROUTINE\r
+       .=6962\r
+CKM1:  .BYTE 0BC               ;CHECK SUM 6800-6BFF (-1)\r
+NMI:   JSR     COIN68\r
+       STAA    E,WTDOG\r
+;VALID MINUTE COUNT?\r
+       LDAA    D,MINUTC        ;DECIMAL SUB\r
+       LDAB    I,99\r
+       SUBB    D,MINUTES\r
+       INCA\r
+       ABA\r
+       DAA\r
+       LSRA                    ;0 OR 1 -> 0\r
+       BNE     10$             ;ALL ELSE WRONG\r
+       LDAA    D,MINUTES       ;OK, UPDATE\r
+       STAA    D,MINUTC\r
+       LDAA    D,$CNCT\r
+       BEQ     4$\r
+       CMPA    I,3\r
+       BLT     5$\r
+       CLR     E,$CNCT\r
+       BRA     4$\r
+5$:    DEC     E,$CNCT\r
+;CHECK & UPDATE MINUTES CHECK BYTE\r
+       LDAA    I,0A            ;SOUND ON COIN\r
+       STAA    D,DELAY\r
+       LDAA    E,IN18          ;TIME OPTION\r
+       ANDA    I,07\r
+       ASLA\r
+       STAA    D,TIX+1\r
+       LDAA    I,TIMOPT&0FF00/100      ;GET TIME PER COIN AMOUNT\r
+       STAA    D,TIX\r
+       LDX     D,TIX\r
+       LDAB    X,TIMOPT&0FF\r
+       LDAA    D,SECOND\r
+       ADDA    X,TIMOPT&0FF+1\r
+       DAA\r
+       CMPA    I,59            ;SECONDS ARE BASE 60\r
+       BLS     1$\r
+       SUBA    I,60\r
+       INCB\r\r
+1$:    STAA    D,SECOND\r
+       TBA                     ;A=MINUTES TO ADD\r
+       CMPB    I,5\r
+       BGE     10$             ;4 IS MAX ADD\r
+       ADDA    D,MINUTES\r
+       DAA\r
+;IS THIS A REASONABLE ADD FOR MINUTES?\r
+       STAA    D,MINUTES       ;STORE SUPPOSED GOOD TIME\r
+       TBA                     ;COPY OF MINUTES TO ADD\r
+       ADDA    D,MINUTC        ;ADD TO OTHER COPY\r
+       DAA\r
+       TAB                     ;SAVE COPY OF CHECK\r
+       SUBA    D,MINUTES       ;MAY DIFF IS -1\r
+       BEQ     11$\r
+       INCB\r
+       INCA\r
+       BNE     10$             ;DIFF > 1\r
+11$:   STAB    D,MINUTC\r
+       CMPB    I,90            ;TOO LARGE?\r
+       BCS     2$\r
+10$:   WAI                     ;MUST BE A GLITCH (A WHAT???)\r
+2$:    LDAA    D,GMSTAT\r
+       BMI     4$              ;GAME ON?\r
+       LDAA    I,40\r
+       STAA    D,GMSTAT        ;IF NO, SET FOR START\r
+       JMP     GO              ;RESTART ON NEW COIN\r
+4$:\r
+;\r
+;NOTE WARNING SYSTEN & SHOT SOUND CONTROL\r
+;\r
+       LDAA    D,WARN          ;NEED A WARNING?\r
+       BNE     7$              ;YES\r
+6$:\r
+       STAB    E,BUZZ\r
+       BRA     8$\r
+7$:    LDAB    D,TIME          ;YES, BUT IS IT ON OR OFF TIME?\r
+       BITB    I,4             ;CHECK TIME BIT\r
+       BNE     6$              ;OFF TIME\r
+       STAB    E,BUZZ+1\r
+8$:\r
+;\r
+;SHOT CONTROL\r
+;\r
+       LDAA    D,FIRES         ;SHOT SOUND NEEDED?\r
+       BEQ     12$             ;NO\r
+       SUBA    I,2             ;SHOT NOTE & TIMER DOWN BY 2\r
+       STAA    E,NOTE          ;OUTPUT\r
+       CMPA    I,0B0           ;DONE?\r
+       BHI     9$\r
+       CLR     E,AMPL\r
+       CLRA                    ;TIMER TO 0\r
+9$:    STAA    D,FIRES\r
+12$:\r
+;\r
+;OUT OF BOUNDS CHECK\r
+;\r
+       TSX                     ;READ STACK\r
+       LDAA    X,5             ;HIGH BYTE\r
+       CMPA    I,80            ;OVER TOP?\r
+       BCC     15$             ;OUT OF BOUNDS\r
+       CMPA    I,68\r
+       BCS     15$\r
+       RTI\r
+       .SBTTL IRQ ROUTINE\r
+15$:   WAI                     ;BAD ADDR\r
+IRQ:\r
+;\r
+;OBJECT OUTPUT ROUTINE\r
+;\r
+OUTPUT:        LDX     I,1             ;16 OBJECTS\r
+       STS     D,TSP           ;SAVE STACK\r
+       LDS     I,TOO           ;SET STACK TO TOP OF OUTPUT\r
+3$:    STX     D,TIX           ;GET HALF SPEC WORDS\r
+       LDAA    D,TIX+1         ;GET OFFSET AMOUNT FOR TABLES\r
+       STAA    D,TIX2+1\r
+       LDX     D,TIX2\r
+       LDAB    X,HSTBL&0FF     ;GET HLFSP BYTE\r
+       LDAA    X,MSKTBL&0FF\r
+       STAA    D,MASK\r
+       LDX     D,TIX           ;RESTORE IX\r
+       LDAA    X,STAT-1        ;ACTIVE\r
+       ANDA    D,MASK\r
+       BMI     5$\r
+4$:    CLRA                    ;INACTIVE OBJECTS\r
+       PSHA\r
+       PSHA\r
+       PSHA\r
+       PSHA                    ;INACTIVE @ 0,0\r
+       BRA     50$\r
+5$:    BITA    I,20            ;HYPER SPACE\r
+       BNE     4$\r
+       BITA    I,40            ;DESTROYED\r
+       BEQ     6$\r
+       ORAB    I,1             ;ALT RAM IF DESTROYED\r
+       PSHB                    ;SPECIAL OUTPUT FOR DESTRUCT\r
+       LDAA    X,OBJH-1\r
+       PSHA\r
+       LDAA    X,OBJV-1\r
+       PSHA\r
+       LDAA    I,BLKPIC                ;BLANK SHIP PIC\r
+       BRA     19$\r
+6$:    PSHB                    ;STUFF 1/2 SPEC WORD\r
+       LDAA    X,OBJH-1\r
+       PSHA                    ;STUFF HORIZ\r
+       LDAA    X,OBJV-1\r
+       PSHA                    ;STUFF VERTICAL\r
+       LDAA    X,DIR-1         ;GET PIC CODE\r
+       LDAB    D,TIX+1\r
+       CMPB    I,SHIPHF+2      ;SHIP PIC?\r
+       BGT     19$\r
+7$:    LDAB    X,STAT-1        ;GET STATUS\r
+       STAA    D,TIX2+1                ;SAVE STATUS\r
+       LDX     D,TIX2\r
+       LDAA    X,ROTTBL&0FF    ;PIC INFO\r
+       BITB    I,2             ;DAMMAGE 1\r
+       BEQ     8$\r
+       ORAA    I,8             ;ALT PIC SELECT\r
+8$:    BITB    I,4             ;DAMMAGE 2\r
+       BEQ     9$\r
+       ORAA    I,20            ;ALT PIC SELECT\r
+9$:    TAB                     ;SAVE A\r
+       ANDB    I,28            ;CHECK FOR NO DAMMAGE\r
+       BEQ     11$             ;IF 0, NO DAMMAGE\r
+       EORB    I,28            ;JUST NOSE?\r
+       BEQ     11$             ;IF NOW EQ, YES, JUST NOSE\r
+       LDAB    D,TIX2+1        ;GET ROTATION (IT WAS SAVED ABOVE)\r
+;\r
+;HERE IS WHAT HAPPENS NOW:\r
+;      SINCE PICTURES IN ALL ROTATIONS ARE DRAWN BY\r
+;      FLIPPING THE PICTURES OF QUAD 1 ACCORDINGLY,\r
+;      ANY NON-SEMETRICAL DAMMAGE WILL APPEAR TO\r
+;      'FLIP' ALSO. THERE FOR, FOR QUADS 2&4, A\r
+;      PICTURE OF THE DAMMAGE JUST OPPISITE OF WHAT\r
+;      IS THERE IS NEEDED. LUCKY FOR US, WE JUST HAPPEN\r
+;      TO HAVE PICTURES OF DAMMAGE TO BOTH LEFT AND RIGHT\r
+;      FINS. SO THE TRICK IS TO DETERMIN WHEN YOU ARE IN\r
+;      QUADS 2&4 AND CHANGE THE PICS ACCORDINGLY.\r
+;\r
+       CMPB    I,16            ;EDGE OF QUAD 4\r
+       BLT     10$\r
+       EORA    I,28            ;SWAP DAMMAGE PICS\r
+10$:   CMPB    I,0E            ;EDGE OF QUAD 2\r
+       BGT     11$\r
+       CMPB    I,8             ;CHECK OTHER EDGE\r
+       BLT     11$\r
+       EORA    I,28            ;SWAP DAMMAGE PICS\r
+11$:   LDAB    D,TIX+1         ;CHECK FOR ALT PIC HALF (OBJECT #)\r
+       CMPB    I,SHIPHF+1              ;ALT SHIP HALF PIC?\r
+       BLT     12$             ;NO\r
+       CMPB    I,SHIPHF+2              ;COULD BE??????\r
+       BLE     16$             ;YEP\r
+12$:   BITA    I,40            ;H FLIPPED?\r
+       BEQ     18$\r
+       ORAA    I,10            ;IF YES, THIS IS ALT PIC SIDE\r
+       BRA     18$\r
+16$:   BITA    I,40            ;WHAT ABOUT THIS SIDE?\r
+       BNE     18$\r
+       ORAA    I,10\r
+18$:   LDX     D,TIX\r
+19$:   PSHA                    ;OUTPUT PIC\r
+50$:   INX\r
+       CPX     I,17.           ;LAST OBJECT +1\r
+       BEQ     51$\r
+       JMP     E,3$\r
+51$:   LDS     D,TSP           ;RESTORE STACK\r
+       CLRB\r
+       LDAA    D,OPEN          ;BLACK HOLE?\r
+       BITA    I,10\r
+       BNE     55$\r
+       LDAA    D,TIME          ;WHICH SW PIC\r
+       LDAB    I,1C\r
+       LSRA\r
+       BCC     55$             ;EVEN FRAMES, WHICH PICTURES\r
+       CLRB\r
+       BITA    I,06            ;EVERY 3, BLANK PICTURES\r
+       BEQ     55$\r
+       LDAB    I,1E\r
+       BITA    I,08            ;ON OTHER FRAMES, WHICH PIC?\r
+       BEQ     55$\r
+       DECB\r
+55$:   STAB    E,SUNA\r
+       INC     E,SYNC          ;IRQ HAPPENED\r
+       JSR     RAND\r
+       RTI\r
+\f\r
+       .SBTTL MAIN CALLING ROUTINE\r
+;************************************************\r
+;MAIN CALLING LOOP\r
+;************************************************\r
+;\r
+;RAM IS ASSUMED ALL 0'S ON FIRST ENTRY TO THIS AREA\r
+;\r
+GO:    LDS     I,0FF           ;START PROCESSING\r
+;\r
+;PROGRAM RUN START\r
+;\r
+       JSR     INIT            ;RESTART ALL\r
+       CLI                     ;ALLOW VBLANK INTERRUPTS TO OCCURE\r
+       STAA    E,OUT28+1       ;NMI'S ON\r
+MAIN:  LDAA    E,IN10\r
+       BITA    I,TSTBIT\r
+       BNE     1$\r
+2$:    WAI\r
+1$:\r
+       LSR     E,SYNC          ;WAIT FOR VBLANK\r
+       BCC     MAIN\r
+       STAA    E,WTDOG\r
+       INC     E,TIME\r
+       LDAA    D,LANG          ;MEMORY BLITZ CHECK\r
+       LSRA\r
+       BCS     2$              ;NO ODD LANGUAGES\r
+       CMPA    I,3\r
+       BGT     2$\r
+       JSR     MOTION          ;DO MOTION AT ONCE!!!\r
+       JSR     TIMER\r
+;\r
+;MOTION CALLS:\r
+;      MOTION, KEEPUP, STAT2 (AS PART OF KEEPUP)\r
+;\r
+;TIMER CALLS:\r
+;      TIMER, SWITCH\r
+       LDAA    D,CHANGE\r
+       BEQ     30$             ;IF NO CLOCK CHANGE, SKIP\r
+       CLR     E,CHANGE        ;ACKNOWLEDGE\r
+       LDAA    I,LITTLE        ;OUTPUT TIMER\r
+       STAA    D,FLAG          ;NO 0 BLANK\r
+       LDX     I,CLKPLC        ;LOCATION\r
+       LDAB    D,GMSTAT\r
+       BNE     10$\r
+       CLRA\r
+       STAA    D,FLAG          ;CLOCK OFF\r
+       BRA     20$\r
+10$:   LDAA    I,SMCOLN\r
+20$:   STAA    X,2             ;OUTPUT COLON\r
+       LDAA    D,MINUTES       ;NOW TIME\r
+       JSR     CONVT\r
+       INX\r
+       LDAA    D,SECONDS\r
+       JSR     CONVT\r
+30$:   LDAA    D,DELAY         ;PUSH BUTTON DELAY?\r
+       BEQ     50$             ;ALREADY 0?\r
+       DECA\r
+       CMPA    I,07            ;TIME FOR TONE CHANGE?\r
+       BNE     40$\r
+       LDAB    D,GMSTAT\r
+       BEQ     40$             ;SKIP IF OFF\r
+       LDAB    D,POLY          ;GET SOME RANDOM NOTE\r
+       STAB    E,NOTE\r
+       PSHA\r
+       DEC     E,AMPL\r
+       PULA\r
+40$:   STAA    D,DELAY\r
+       BNE     50$\r
+       CLR     E,AMPL\r
+50$:   LDAA    D,GMSTAT\r
+       ASLA                    ;SELECT MODE?\r
+       BMI     70$\r
+;JSR ORBIT STARTS A CHAIN: ORBIT,\r
+;GRAV,BOOM,SCROUT,BLINK\r
+       JSR     ORBIT\r
+       LDAA    D,TIME          ;FRAME COUNT\r
+       ANDA    I,0F            ;RESTART CHECK MASK\r
+       BNE     6$\r
+       LDAB    D,WARN\r
+       BEQ     55$\r
+       DEC     E,WARN\r
+55$:   LDAB    D,HEATT\r
+       BEQ     56$\r
+       DEC     E,HEATT\r
+56$:   LDAB    D,GMSTAT        ;GAME ON?\r
+       BLE     58$             ;IF -, OR 0, IN ATTRACT OR  GAME PLAY\r
+       DECB                    ;NO, SO MUST BE FREEZE (DEC TIME)\r
+       STAB    D,GMSTAT\r
+       BNE     58$\r
+       JSR     INIT\r
+58$:   JSR     EXPOUT          ;DO EXPLOSION (IF NEEDED) &\r
+                               ;CHECK FOR SHIP RESTART (CHAINED)\r
+6$:    ANDA    I,3             ;SHELL TIME\r
+       BNE     70$\r
+       JSR     ENDSHL\r
+;\r
+;IN GRAV GAMES, GRAV DOES NOT AFFECT A SHIP\r
+;UNTIL THAT PLAYER HAS PUSHED HIS THRUST BUTTON\r
+;\r
+70$:   LDAB    I,0FF\r
+       LDAA    D,STAT\r
+       LSRA                    ;THRUST?\r
+       BCC     80$\r
+       ANDB    I,0BF           ;SET (TURN ON ) GRAV\r
+80$:   LDAA    D,STAT+1\r
+       LSRA\r
+       BCC     90$\r
+       ANDB    I,0DF\r
+90$:   ANDB    D,OPEN2\r
+       STAB    D,OPEN2\r
+       LDAA    E,IN18          ;FREE PLAY?\r
+       BITA    I,20\r
+       BNE     92$             ;NO LOCKOUT FOR FREE PLAY\r
+       LDAA    D,MINUTES\r
+       BPL     91$\r
+92$:   STAA    E,OUT20         ;LOCKOUT AT 80 MINUTES OR ABOVE\r
+       BRA     ATTRACT\r
+91$:   STAA    E,OUT20+1\r
+\f\r
+       .SBTTL ATTRACT ROUTINE\r
+ATTRACT:LDAA   D,GMSTAT\r
+       BPL     9$\r
+15$:   JMP     MAIN\r
+9$:    LDAB    E,IN18          ;READ FREE PLAY SWITCH\r
+       BITB    I,20            ;FREE/\r
+       BNE     5$              ;YES\r
+       LDAB    I,6             ;NOT ON, WRITE 'INSERT COINS'\r
+       LDX     I,TPCPL+1D\r
+       JSR     DSPLY\r
+5$:    TSTA\r
+       BNE     15$\r
+       LDAA    D,TIME          ;TIME 0 FOR THINGS TO HAPPEN?\r
+       BNE     3$\r
+       INC     E,DIR           ;TURN SHIP DURING ATTRACT\r
+       INC     E,DIR+1\r
+       LDAA    D,ATRACT        ;ATTRACT TIMER\r
+       DECA                    ;0?\r
+       STAA    D,ATRACT\r
+       BNE     10$     \r
+       JSR     INIT            ;IF 0, RESET ALL\r
+       BRA     10$\r
+3$:    ANDA    I,08F           ;SET ATTRACT SPECS\r
+       BNE     2$\r
+       LDAA    I,0A0\r
+       STAA    D,TIMES\r
+       LDAA    I,1\r
+       STAA    D,SPEED\r
+       DECA\r
+       STAA    D,OPEN2         ;ALLOW GRAVITY DURING ATTRACT\r
+       LDX     I,1\r
+       JSR     FIRE            ;FIRE SHOTS\r
+       INX\r
+       JSR     FIRE\r
+10$:   LDAA    D,POLY\r
+;FLASH RANDOM IN ATTRACT\r
+       STAA    E,HYPLED+1      ;FLASH CONTROL LEDS\r
+       BITA    I,10\r
+       BNE     11$\r
+       STAA    E,HYPLED\r
+11$:   STAA    E,HTRSTL+1\r
+       BITA    I,2\r
+       BNE     12$\r
+       STAA    E,HTRSTL\r
+12$:   ANDA    I,0F7           ;NO SPACE STATIONS\r
+       ORAA    I,2             ;STARS ALWAYS ON\r
+       STAA    D,OPEN          ;KEEP THINGS CHANGING\r
+2$:    LDAA    E,IN18          ;READ OPTION SWITCHES\r
+       TAB                     ;GET LANGUAGE BITS OUT\r
+       ASLA                    ;OPTIONS X2\r
+       LSRB\r
+       LSRB\r
+       ANDB    I,06                    ;LANG TIMES 2\r
+       CMPB    D,LANG          ;CHANGE?\r
+       BEQ     4$\r
+       STAB    D,LANG\r
+       JSR     CLRS            ;WIPE CLEAN\r
+4$:    LDX     I,TPCPL+20      ;GUESS OUTPUT FOR FREE PLAY\r
+       LDAB    I,2             ;MESSAGE 2\r
+       BITA    I,40            ;FREE? (ITS BEEN SHIFTED)\r
+       BNE     6$\r
+       ANDA    I,0E\r
+       STAA    D,TPTR+1\r
+       LDAB    I,TIMOPT&0FF00/100\r
+       STAB    D,TPTR\r
+       LDX     D,TPTR\r
+       LDAA    I,LARGE         ;LARGE #'S\r
+       STAA    D,FLAG\r
+       LDAA    X,TIMOPT&0FF    ;MINUTES\r
+       LDAB    X,TIMOPT&0FF+1  ;SECONDS\r
+       LDX     I,TPCPL         ;TIME PER COIN LOCATION\r
+       JSR     CONVT\r
+       LDAA    I,COLON         ;COLON PIC\r
+       STAA    X,0\r
+       INX\r
+       TBA\r
+       JSR     CONVT\r
+       LDAB    I,1             ;MESSAGE 1\r
+       INX\r
+7$:    JSR     DSPLY\r
+1$:    JMP     MAIN\r
+6$:    STAA    E,OUT20         ;LOCKOUT BUT IN FREE PLAY\r
+       BRA     7$\r
+\f\r
+       .SBTTL UTILITY ROUTINES\r
+       .SBTTL  CLOCK ROUTINE\r
+;DECIMAL CLOCK\r
+TIMER: LDAA    D,GMSTAT\r
+       BPL     SWITCH          ;SKIP IF OFF\r
+       LDAA    D,SECOND        ;SECONDS\r
+       ORAA    D,MINUTE\r
+       CLC\r
+       BEQ     2$              ;IF 0, SKIP & TURN OFF GAME\r
+       DEC     FRAME           ;FRAME COUNT\r
+       BGT     SWITCH\r
+       INC     E,CHANGE                ;OUTPUT CLOCK ON CHANGE\r
+       LDAA    I,60.\r
+       STAA    FRAME           ;60 FRAMES\r
+       LDAA    SECONDS\r
+       ADDA    I,99            ;SUBTRACT 1\r
+       DAA\r
+       SEC                     ;CARRY TO DEC MINUTES\r
+       BPL     1$\r
+       LDAA    I,59\r
+       CLC                     ;NO CARRY\r
+1$:    STAA    SECONDS\r
+       LDAA    MINUTE\r
+       ADCA    I,99\r
+       DAA\r
+       STAA    MINUTE\r
+       ORAA    SECOND\r
+       BNE     SWITCH\r
+       LDX     I,0             ;GAME OVER\r
+       STX     D,MOD\r
+       STX     D,OBJVV\r
+       STX     D,OBJHV         ;STOP SHIP\r
+       STX     D,STAT+STION1   ;REMOVE STATIONS\r
+       STX     E,AMPL\r
+       JSR     CLRS            ;CLEAR SCREEN\r
+       JSR     STARS           ;TURN STARS ON\r
+       LDAA    D,OPEN          ;REMOVE STATIONS\r
+       ANDA    I,0E7           ;TURN ON SUN\r
+       ORAA    I,22            ;NO GRAV & STARS ON\r
+       STAA    D,OPEN\r
+       STAA    E,HTRSTL\r
+       STAA    E,HYPLED                ;CONTROL LITES OFF\r
+       LDX     I,GMOVPL\r
+       LDAB    I,4\r
+       JSR     DSPLY\r
+       LDAA    I,3F            ;FREEZE TIME & GAME OFF\r
+2$:    STAA    D,GMSTAT\r
+;NOW FALL THRU & READ SWITCHES\r
+\f\r
+       .SBTTL  SWITCH ROUTINE\r
+\r
+;**************************************\r
+;* SWITCH READ & ACTION ROUTINE\r
+;*\r
+;* THIS ROUTINE READS BOTH INPUT SWITCHES\r
+;* AND THEN CALLS CERTAIN SUBROUTINES DE-\r
+;* PENDING ON WHICH SWITCHES ARE PUSHED.\r
+;* AFTER THAT, THE TOUCH PANEL IS READ AND\r
+;* ACTED UPON IF NECESSARY.\r
+;*\r
+;* A,B, & IX CHANGED\r
+;*\r
+;* PAGE 0:\r
+;*     VARIOUS MOTION & STATUS WORDS\r
+;*     CHANGED OPTION WORD (OPEN) UPDATED\r
+;*     NEW HEAT TIMER (ENDPLY) POSSIBLY CHANGED\r
+;*     GAME NUMBER (GAME) POSSIBLY CHANGED\r
+;*     GAME STATUS (GMSTAT) POSSIBLY CHANGED\r
+;*     ALL GAME OPTIONS COULD BE CHANGED:\r
+;*       (ROTS,ACCEL,SPEED,TIMES & MAXV)\r
+;*     TPTR UPDATED & USED (2 BYTES)\r
+;*\r
+;* SUBROUTINE POSSIBLY CALLED:\r
+;*     FIRE,HYPST,ROTATE,ACELS,INIT\r
+;*\r
+;* STACK (WORST CASE): 8 BYTES\r
+;*\r
+;**************************************\r
+SWITCH:        STAA    E,WTDOG\r
+       LDAA    D,GMSTAT\r
+       ASLA\r
+       BMI     3$              ;SELECT 1\r
+       BCC     3$              ;ACTIVE/\r
+2$:    LDAA    D,MOD           ;IF SELECT MODE,\r
+       BNE     1$\r
+3$:    JMP     PANL\r
+       ;(D#) INDICATES BIT IN D7 POSITIN OF BYTE\r
+1$:    LDX     I,2             ;2 PLAYERS\r
+       LDAA    E,IN08          ;PLAYER 0\r
+       PSHA                    ;SAVE THIS FOR NEXT\r
+       LDAA    E,IN10          ;PLAYER 1\r
+10$:   ASLA                    ;DON'T CARE ABOUT COIN (D6)\r
+       LDAB    X,STAT-1        ;GET PLAYER STATUS\r
+       BITB    I,40            ;IF DESTROYED.....\r
+       BNE     55$             ;NO ACTION\r
+       ASLA                    ;FIRE?(D4)\r
+       BMI     20$             ;NOT PUSHED?\r
+       BITB    I,8             ;TORP PUSHED, WAS IT OFF BEFORE\r
+       BNE     30$             ;IF ALREADY PUSHED, DO NOTHING\r
+       ORAB    I,8             ;SET BIT\r
+       JSR     FIRE            ;FIRE A BULLET\r
+       BRA     30$\r
+20$:   ANDB    I,0F7           ;TURN OFF FIRE BIT\r
+30$:   ASLA                    ;CHECK HYPERSPACE (D4)\r
+       BMI     31$\r
+       BITB    I,30            ;ALREADY IN?\r
+       BNE     33$\r
+       JSR     HYPST           ;HYPERSPACE START\r
+       ORAB    I,10            ;SET EDGE BIT\r
+       BRA     33$\r
+31$:   ANDB    I,0EF           ;TURN BIT OFF\r
+33$:   STAB    X,STAT-1        ;REPLACE STATUS\r
+       LDAB    I,-1            ;ROTATE SOMETHING OR OTHER LEFT(COUNTER CLOCKWISE)\r
+       ASLA                    ;READ LEFT(D3)\r
+       BMI     34$             ;LEFT NOT PUSHED\r
+       ASLA                    ;THROW AWAY RIGHT, NOT NEEDED\r
+       BRA     35$             ;AND DO LEFT ROTATE\r
+34$:   ASLA                    ;NOT LEFT, IS IT RIGHT?\r
+       BMI     50$\r
+       NEGB\r
+35$:   JSR     ROTATE          ;UPDATE DIRECTION\r
+50$:   ASLA                    ;THRUST?(D1)\r
+       BMI     54$\r
+       LDAB    D,OPEN\r
+       BITB    I,4             ;UNLIMITED FUEL?\r
+       BNE     51$\r
+       LDAA    X,FUEL0-1\r
+       BEQ     91$\r
+51$:   LDAB    X,STAT-1        ;THRUST ON\r
+       BITB    I,20            ;IN HYPER SPACE\r
+       BNE     54$\r
+       ORAB    I,1\r
+       STAB    X,STAT-1\r
+       LDAB    D,TIME\r
+       BITB    D,ACCEL         ;TIME TO SPEED UP\r
+       BNE     55$\r
+       JSR     ACELS           ;IF YES, ACCEL SHIP\r
+       BRA     55$\r
+54$:   LDAB    X,STAT-1        ;THRUST OFF\r
+90$:   ANDB    I,0FE\r
+       STAB    X,STAT-1\r
+91$:   LDAB    D,OPEN2         ;INSTANT?\r
+       BPL     55$             ;NO\r
+;GAME IN INSTANT START/STOP\r
+       CLR     X,OBJVV-1\r
+       CLR     X,OBJHV-1\r
+55$:   DEX                     ;NEXT OBJECT\r
+       BEQ     PANL            ;IF 0, WERE DONE\r
+       PULA                    ;GET OTHER SWITCH WORD\r
+       BRA     10$\r
+;\r
+;NOW READ PANEL\r
+;\r
+PANL:\r
+;\r
+;OUTPUT OPTIONS TO LED PANEL\r
+;\r
+       LDAA    D,OPEN\r
+       BITA    I,20            ;NO GRAV?\r
+       BEQ     1$              ;IF 0, GRAV IS ON\r
+       ANDA    I,0BE           ;GRAV OFF, GRAV OPTIONS OFF\r
+       STAA    D,OPEN\r
+1$:    COMA                    ;0=ON, 1=OFF\r
+       STAA    E,LEDLTCH       ;LATCH DATA\r
+       STAA    E,LEDST0        ;STROBE BUS ON\r
+       STAA    E,LEDST1\r
+       STAA    E,SWST0\r
+       LDAA    E,IN18          ;OPTIONS\r
+       BITA    I,20            ;FREE PLAY?\r
+       BNE     2$\r
+       LDAA    D,GMSTAT\r
+       ANDA    I,0C0           ;LOOK @ SELECT & ON ONLY\r
+       BEQ     67$\r
+2$:    LDAA    D,DELAY\r
+       BNE     67$\r
+       LDAA    E,PANL1\r
+       LDAB    D,MOD           ;MOD TIME?\r
+       BEQ     70$             ;IF 0, GAME SELECT....\r
+       CMPA    D,SWT1          ;HAS CHANGED OCCURED ON THIS SWITCH?\r
+       BEQ     60$             ;NO SO SKIP\r
+       STAA    D,SWT1          ;YES, RECORD AND CONTINUE\r
+       TAB                     ;ELSE MOD TIME\r
+       INCB                    ;SWITCHES ALL OFF (0FF+1=0)?\r
+       BEQ     60$\r
+       LDAB    I,9             ;SET DELAY\r
+       STAB    D,DELAY\r
+       COMA                    ;LIGHT UP CHANGED BIT3\r
+       PSHA                    ;HOLD A\r
+       ANDA    I,2             ;LOOK ONLY AT STAR OPTION BIT\r
+       BEQ     4$              ;IF 0, NO CHANGE HERE\r
+       EORA    D,OPEN          ;CHANGE IN STARS OCCURED?\r
+       BITA    I,2             ;LOOK AT THE BIT\r
+       BEQ     3$              ;YES, JUST WENT OFF\r
+       JSR     STARS           ;YES, JUST CAME ON\r
+       BRA     4$\r
+3$:    JSR     CLRS            ;ELSE CLEAR SCREEN\r
+4$:    PULA                    ;GET ORIGINAL A BACK\r
+       PSHA                    ;SAVE AGAIN\r
+       ANDA    I,8             ;DO SAME AS ABOVE, BUT THIS TIME FOR STATIONS\r
+       BEQ     6$              ;IF 0, NO CHANGE HERE\r
+       EORA    D,OPEN          ;WAS THE CHANGE ON OR OFF?\r
+       BITA    I,8\r
+       BEQ     5$              ;JUST TURNED OFF\r
+       JSR     SPSTN2          ;JUST TURNED ON\r
+       BRA     6$\r
+5$:    CLRA\r
+       STAA    D,STAT+STION1           ;REMOVE BY MAKING INACTIVE\r
+       STAA    D,STAT+STION2\r
+6$:    PULA                            ;NOW, WHERE WERE WE?\r
+       EORA    D,OPEN\r
+       STAA    D,OPEN          ;TURN MODS ON IF ANY\r
+60$:   LDAA    E,PANL2         ;GAME RESET?\r
+       CMPA    D,SWT2          ;HAS A CHANGED OCCUERD HERE?\r
+       BEQ     77$             ;IF NO, SKIP\r
+       STAA    D,SWT2          ;RECORD CAHNGE\r
+       LSRA                    ;IN BIT 0\r
+       BCC     61$\r
+       BITA    I,8             ;HEAT RESET?\r
+       BNE     77$             ;NO\r
+       LDAB    I,1             ;YES\r
+       STAB    D,ENDDLY\r
+67$:   RTS\r
+61$:   LDAA    I,40            ;PUT BACK IN SELECT MODE\r
+       ORAA    D,GMSTAT\r
+       STAA    D,GMSTAT\r
+       JMP     INIT\r
+70$:   LDX     I,TPCPL+1               ;'SELECT GAME'\r
+       STAA    D,SWT1          ;HERE, JUST RECORD ANY CHANGE\r
+       LDAB    I,5\r
+       JSR     DSPLY\r
+       LDAB    I,7             ;GAME SELECT AREA\r
+71$:   LSRA\r
+       BCC     72$             ;PUSHED\r
+       DECB                    ;NEXT #\r
+       BPL     71$             ;0-7?\r
+       LDAA    E,PANL2         ;NEXT SWITCH\r
+       LSRA                    ;NO GAME RESET\r
+       LDAB    I,9.            ;GAME 9?\r
+       LSRA\r
+       BCC     72$             ;YES\r
+       DECB                    ;GAME 8?\r
+       LSRA\r
+       BCC     72$\r
+77$:   RTS\r
+72$:\r
+;GAME SELECTED, # IN B\r
+;\r
+       LDAA    D,GMSTAT        ;ON?\r
+       BPL     79$             ;ALREADY ON\r
+       STAA    E,NOSRST        ;RESET POLY COUNTER\r
+       ANDA    I,0BF\r
+       STAA    D,GMSTAT\r
+       BRA     78$\r
+79$:   LDAA    I,80\r
+       STAA    D,GMSTAT\r
+       STAA    E,HTRSTL+1              ;TURN ON CONTROL LEDS\r
+       STAA    E,HYPLED+1\r
+       CLRA\r
+       STAA    D,SCORE1\r
+       STAA    D,SCORE0\r
+       LDAA    E,IN18          ;READ FREE PLAY AGAIN\r
+       BITA    I,20            ;FREE?\r
+       BEQ     78$\r
+;GET TIME AMOUNT ON FREE PLAY\r
+       ANDA    I,07            ;GET TIME AMOUNT\r
+       ASLA\r
+       STAA    D,TPTR+1\r
+       LDAA    I,TIMOPT&0FF00/100\r
+       STAA    D,TPTR\r
+       LDX     D,TPTR\r
+       LDAA    X,TIMOPT&0FF\r
+       STAA    D,MINUTES\r
+       STAA    D,MINUTC\r
+       LDAA    X,TIMOPT&0FF+1\r
+       STAA    D,SECONDS\r
+78$:   JSR     INIT\r
+       LDAA    I,15            ;WAIT FOR OPTIONS\r
+       STAA    D,DELAY         ;MAKE A SOUND\r
+       LDAA    I,0D0\r
+       STAA    E,NOTE\r
+       LDAA    I,0FF           ;TURN NOTE OCTAVE ON\r
+       STAA    E,AMPL\r
+80$:   INC     E,MOD           ;READY FOR MODS\r
+       STAB    D,TPTR+1\r
+       LDAB    I,MODTBL&0FF00/100\r
+       STAB    D,TPTR\r
+       LDX     D,TPTR\r
+       LDAA    X,MODTBL&0FF    ;GAME OPTIONS INITIAL STATE\r
+       STAA    D,OPEN\r
+       LDAA    X,MODTB2&0FF    ;OTHER OPTION BYTE\r
+       STAA    D,OPEN2\r
+       LDAA    X,ROTBL&0FF\r
+       STAA    D,ROTS          ;ROTATION SPEED\r
+       LDAA    X,ACTBL&0FF     ;ACCEL SPEED\r
+       STAA    D,ACCEL\r
+       LDAA    X,BULTBL&0FF\r
+       STAA    D,SPEED\r
+       LDAA    X,TIMTBL&0FF    ;BULLET LENGTH DURATION\r
+       STAA    D,TIMES\r
+;SET MAXIMUM VELOCITY OF SHIPS\r
+       LDAA    X,MAXVTBL&0FF   ;MAXIMUM SPEED\r
+       STAA    D,MAXV\r
+BYE:   RTS\r
+\f\r
+       .SBTTL  SHELL TIME-OUT ROUTINE\r
+;*****************************************************\r
+;*THIS ROUTINE DECREMENTS THE SHELL TIMER AND CHECKS FOR 0\r
+;* IF A TIMER IS 0, THEN THE STATUS WORD OF THAT SHELL IS\r
+;* SET TO 0. THIS MAKES THE OUTPUT ROUTINE REMOVE THE SHELL\r
+;* FROM THE SCREEN\r
+;*\r
+;*PAGE 0 AFFECT:\r
+;*     COULD ALTER BULLET STATUS WORDS\r
+;*\r
+;*CLOBBERS 'A' AND 'IX'.\r
+;*\r
+;*NO STACK USAGE\r
+;*\r
+;***************************************************\r
+ENDSHL:\r
+       LDX     I,BULT3+1       ;8 SHELLS (AND 1 MOBIL OIL ?)\r
+5$:    LDAA    X,STAT\r
+       BEQ     10$             ;IF ALREADY 0, LEAVE IT ALONE.\r
+       DECA\r
+       STAA    X,STAT\r
+       ANDA    I,7F            ;CHECK TIMER PART\r
+       BNE     10$             ;IF NOT 0, ITS STILL GOT LIFE!\r
+       JSR     CLROBJ          ;REMOVE OBJECT\r
+10$:   DEX                     ;NEXT?\r
+       CPX     I,BULT0-1       ;ALL CHECKED (GET THE OIL AND WATER)?\r
+       BNE     5$\r
+       RTS\r
+\f\r
+       .SBTTL  FIRE SHELL ROUTINE\r
+;******************************\r
+;*FIRE & START SHELL ROUTINE\r
+;* THIS ROUTINE LOOKS FOR AN INACTIVE\r
+;* BULLET (1 OF 4 BELONGING TO THE PLAYER)\r
+;* IF NONE AVAIBLE, IT RETURNS, NO NET EFFECT\r
+;* IF ONE IS FOUND, THE COMPLETE STATUS INFO\r
+;* OF THE SHIP (HVEL, HPOS, ETC.) ARE STORED\r
+;* TO THE SHELL'S STATUS.\r
+;* ALSO, THE SHELL IS GIVEN AN INITIAL VELOCITY\r
+;* BY CALLING ACELS A NUMBER OF TIMES\r
+;*\r
+;* 'A', 'B', AND 'IX' ARE NOT EFFECTED \r
+;*\r
+;* PAGE 0 EFFECT:\r
+;*     X1 (2 BYTES), X2 (2 BYTES), X3 (2 BYTES)\r
+;*     (X3 EFFECTED IN SUBSEQUENT CALLED SUBROUTINE)\r
+;*     VARIOUS STATE WORDS OF THE SHELLS\r
+;*\r
+;* STACK SPACE USED: 5 BYTES (USED BY CALLED ROUTINES)\r
+;*                  2 BYTES IF NO SHELL STARTED\r
+;*\r
+;******************************\r
+CKM2:  .BYTE   05E             ;CKSUM 6C00-6FFF\r
+FIRE:  PSHA\r
+       PSHB\r
+       STX     D,X1            ;SAVE IX (EITHER 1 OR 2)\r
+       LDAA    D,OPEN\r
+       BITA    I,4             ;UNLIMITED FUEL?\r
+       BNE     1$\r
+       LDAA    X,SHOT0-1       ;ANY SHOTS LEFT?\r
+       BEQ     6$\r
+1$:    CLRB                    ;TRY COUNTER\r
+5$:    LDAA    X,BULT0+STAT-1  ;CHECK STATUS OF BULLET\r
+       BPL     10$             ;IF +, WE CAN USE THIS ONE\r
+       INX\r
+       INX\r
+       INCB\r
+       CMPB    I,4             ;CHECKED ALL 4?\r
+       BLT     5$              ;IF NO, CONTINUE\r
+6$:    BRA 20$                 ;NONE AVAILABLE, SO RETURN\r
+10$:   STX     D,X2            ;WE HAVE AN INACTIVE BULLET\r
+       LDAB    D,X2+1          ;ADD OFFSET\r
+       ADDB    I,BULT0         ;TO BULLET\r
+       STAB    D,X2+1\r
+       LDAA    D,TIMES         ;GET TIME AMOUNT (SET BY OPTIONS)\r
+       STAA    X,BULT0+STAT-1  ;SET STATUS\r
+       BSR     STATOBJ\r
+       LDAA    X,OBJH-1        ;CENTER\r
+       SUBA    I,2             ;STATOBJ GOES + 4, NOW BACK 2\r
+       STAA    X,OBJH-1\r
+       LDAA    X,DIR-1         ;START BULET\r
+       PSHA\r
+       JSR     SIN\r
+       STAA    D,J             ;V COMPONENT\r
+       PULA\r
+       JSR     COS             ;H COMPONENT\r
+       LDAB    D,SPEED         ;HOW MUCH?\r
+       BEQ     16$\r
+15$:   ASRA\r
+       ASR     E,J             ;LESS\r
+       DECB\r
+       BNE     15$\r
+16$:   ADDA    X,OBJHV-1\r
+       BVC     18$             ;OVERFLOW ???? TO MAX\r
+       BPL     17$             ;IF -, SHOULD BE + MAX\r
+       LDAA    I,07F\r
+       BRA     18$\r
+17$:   LDAA    I,080           ;WAS +, SHOULD BE - MAX\r
+18$:   STAA    X,OBJHV-1\r
+       LDAA    D,J             ;NOW VERTICAL\r
+       ADDA    X,OBJVV-1\r
+       BVC     21$             ;SEE ABOVE\r
+       BPL     19$\r
+       LDAA    I,07F\r
+       BRA     21$\r
+19$:   LDAA    I,080\r
+21$:   STAA    X,OBJVV-1\r
+       LDAA    I,BULPIC\r
+       STAA    X,DIR-1         ;SET BULLET PIC\r
+;\r
+;SHOT SOUND & STEREO VOLUME CONTROL\r
+       LDAA    D,GMSTAT\r
+       BPL     20$\r
+       LDAB    I,0FF\r
+       STAB    D,FIRES\r
+       LDAA    X,OBJH-1        ;GET STEREO VOLUME\r
+       TAB\r
+       COMA\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       ANDA    I,0F0           ;L&R CHANNELS\r
+       ABA\r
+       STAA    E,AMPL\r
+       LDAA    D,OPEN          ;UNLIMITED SHOTS?\r
+       BITA    I,4             ;IF YES, DONT DEC SHOT COUNT\r
+       BNE     20$\r
+       LDX     D,X1\r
+       DEC     X,SHOT0-1\r
+20$:   LDX     D,X1\r
+       PULB                    ;DONE\r
+       PULA\r
+       RTS\r
+\f\r
+       .SBTTL  START OBJECT ROUTINE\r
+;**************************************************\r
+;* THIS ROUTINE TAKES MOTION INFO FROM THE OBJECT\r
+;* POINTED TO BY X1 (X1 MUST POINT 1 PAST DESIRED OBJECT)\r
+;* AND STORES IT TO THE OBJECT POINTED TO BY X2 (WHICH\r
+;* ALSO MUST BE ONE PAST DESIRED OBJECT)\r
+;*\r
+;* A, B, & IX ARE CLOBERED\r
+;*\r
+;* PAGE 0:\r
+;*     VARIOUS MOTION WORDS CHANGED\r
+;*\r
+;* STACK SPACE: 6 BYTES\r
+;*\r
+;****************************************************\r
+STATOBJ:\r
+       LDX     D,X1\r
+STAT2: LDAA    X,OBJHV-1       ;GET MOTION INFO ON SHIP\r
+       LDAB    X,OBJVV-1       ;THESE ARE VELOCITIES\r
+       PSHA\r
+       PSHB\r
+       LDAA    X,OBJHL-1       ;LSB POSITION\r
+       LDAB    X,OBJVL-1\r
+       PSHA\r
+       PSHB\r
+       LDAA    X,OBJH-1        ;MSB POSITION\r
+       ADDA    I,4             ;MOVE OVER 4\r
+       LDAB    X,OBJV-1\r
+       PSHA\r
+       PSHB\r
+       LDAA    X,DIR-1         ;DIRECTION\r
+       LDX     D,X2            ;NOW START\r
+       STAA    X,DIR-1\r
+       PULB                    ;GET MSB POSITION\r
+       PULA\r
+       STAA    X,OBJH-1\r
+       STAB    X,OBJV-1\r
+       PULB                    ;GET LSB POSITION BACK\r
+       PULA\r
+       STAB    X,OBJVL-1\r
+       STAA    X,OBJHL-1\r
+       PULB\r
+       PULA\r
+       STAB    X,OBJVV-1       ;VERTICAL VELOCITY INITIAL\r
+       STAA    X,OBJHV-1       ;HORIZ VELOCITY INITIAL\r
+       RTS\r
+\r
+\f\r
+       .SBTTL  ROTATE SHIP ROUTINE\r
+;******************************************\r
+;*ROTATE SHIP ROUTINE\r
+;* THIS ROUTINE ROTATES THE SHIP POINTED TO BY\r
+;* IX BY THE AMOUNT PASSED TO IT IN B.\r
+;*\r
+;* NO REGISTERS CHANGED\r
+;*\r
+;* PAGE 0 USED:\r
+;*     POSSIBLE 'DIR' BYTES\r
+;*\r
+;* STACK USED: 2 BYTES\r
+;*\r
+;******************************************\r
+ROTATE:        PSHA\r
+       PSHB\r
+       LDAA    D,OPEN          ;UNLIMITED FUEL?\r
+       BITA    I,4\r
+       BNE     2$\r
+       LDAA    X,FUEL0-1\r
+       BEQ     ROUT\r
+2$:    LDAA    D,TIME          ;TIME TO DO THIS ROUTINE?\r
+       ANDA    D,ROTS          ;CHECK WITH TIME MASK\r
+       BNE     ROUT\r
+       LDAA    X,STAT-1        ;DAMAGED?\r
+       ANDA    I,6             ;JUST THE NOSE LEFT?\r
+       BEQ     1$\r
+       CMPA    I,6             ;EQ IF YES\r
+       BEQ     ROUT            ;NOTHING FOR THE NOSE!\r
+       LDAA    D,ROTS\r
+       ASLA\r
+       ORAA    I,1             ;MASK NOW 1/2 SPEED\r
+       ANDA    D,TIME\r
+       BNE     ROUT\r
+1$:    LDAA    D,TIME\r
+       ANDA    I,7F\r
+       BNE     10$\r
+       LDAA    D,OPEN\r
+       BITA    I,4             ;UNLIMITED DOES NOT SUBTRACT FUEL\r
+       BNE     10$\r
+       DEC     X,FUEL0-1\r
+10$:   LDAA    X,DIR-1         ;GET DIRECTION\r
+       ABA                     ;ADD TURN SPEED\r
+FIXR:  BPL     1$              ;IF + , O.K.\r
+       ADDA    I,28.           ;IF -, BRING BACK AROUND|\r
+1$:    CMPA    I,28.           ;TO BIG?\r
+       BLT     2$              ;BACON, LETTUS, AND TOMATO 2$\r
+       SUBA    I,28.           ;IF YES,  BRING BACK DOWN\r
+2$:    STAA    X,DIR-1\r
+ROUT:  PULB\r
+       PULA\r
+       RTS\r
+\r
+\f\r
+       .SBTTL  REFLECT SHIP OFF WALL ROUTINE\r
+;*************************************************\r
+;*REFLECT SHIP OFF WALL\r
+;*\r
+;*A,B, & IX NOT CHANGED\r
+;*\r
+;*STACK=2 BYTES (LRBOUND), 6 BYTES (VBOUND)\r
+;*\r
+;*************************************************\r
+LRBOUND:PSHA                   ;HORIZONTAL REFLECT=180-ANGLE\r
+       PSHB\r
+       LDAA    I,0E            ;180 DEG.\r
+       SUBA    X,DIR-1\r
+       BRA     FIXR\r
+VBOUND:        PSHA\r
+       PSHB\r
+       BSR     LRBOUND\r
+       LDAA    X,DIR-1\r
+       SUBA    I,0E\r
+       BRA     FIXR\r
+       .NLIST SEQ\r
+\f\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+               ;THIS PAGE INTENTIONALLY LEFT BLANK\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+       .LIST SEQ\r
+\f\r
+       .SBTTL  ACCELERATE SHIPS ROUTINE\r
+;******************************************\r
+;ACCELERATE SPACE SHIPS\r
+;* THIS ROUTINE ACCELERATES THE OBJECT\r
+;* POINTED TO BY 'IX'. (IX MUST POINT TO OBJECT+1)\r
+;*\r
+;* 'A'& 'B' CLOBBERED, 'IX' NOT CHANGED\r
+;*\r
+;* PAGE 0 AFFECT:\r
+;*     POSSIBLE VELOC. BYTES ALTERED\r
+;*     'X3' CLOBBERED BY CALLED ROUTINE\r
+;*     'TPTR' & 'TPTR+1' CLOBBERED BY CALLED ROUTINE\r
+;*     'R0' & 'R1' CLOBBERED\r
+;*\r
+;* STACK USED: 3 BYTES (2 FOR CALLED ROUTINE)\r
+;*\r
+;******************************************\r
+ACELS: LDAB    X,STAT-1        ;NOSE ONLY?\r
+       ANDB    I,6\r
+       CMPB    I,6\r
+       BNE     1$\r
+       RTS\r
+1$:    LDAB    D,TIME\r
+       ANDB    I,0F\r
+       BNE     ACEL2\r
+       LDAB    D,OPEN          ;UNLIMITED FUEL?\r
+       BITB    I,4\r
+       BNE     ACEL2\r
+       DECA\r
+       STAA    X,FUEL0-1\r
+ACEL2: LDAA    X,DIR-1\r
+       PSHA                    ;SAVE ANGLE\r
+       JSR     SIN             ;GET Y ACCELERATION\r
+       STAA    D,J             ;SAVE Y ACCELERATION FOR NOW\r
+       PULA\r
+       JSR     COS             ;GET X ACCELERATION IN A\r
+       STX     D,X3\r
+       LDAB    D,X3+1\r
+       CMPB    I,2             ;SHIP?\r
+       BGT     10$\r
+       LDAB    D,OPEN2         ;INSTANT START STOP?\r
+       BMI     30$             ;YES\r
+10$:   CLRB                    ;SIGN EXTEND\r
+       ASLA                    ;SCALE A\r
+       SBCB    I,0             ;IF CARRY, SET -1 (SEX)\r
+       ADDA    X,OBJHVL-1      ;ADD TO LSB\r
+       ADCB    X,OBJHV-1               ;ADD TO MSB\r
+       BVS     20$\r
+       PSHA\r
+       PSHB\r
+       LDAA    D,X3+1\r
+       CMPA    I,2             ;SHIP?\r
+       BGT     12$\r
+       TSTB                    ;CHECK FOR MAX VELOCITY\r
+       BPL     11$             ;NEED + #\r
+       NEGB\r
+11$:   LDAA    X,STAT-1        ;DAMAGED?\r
+       BITA    I,6\r
+       BEQ     15$\r
+       ASLB                    ;TOO FAST\r
+       BVS     12$\r
+15$:   ADDB    D,MAXV          ;ADD IN "PUSH OVER" NUMBER (FOR OVERFLOW)\r
+12$:   PULB\r
+       PULA\r
+       BVS     20$             ;IF OVERFLOW SKIP\r
+       STAA    D,R0\r
+       STAB    D,R1            ;STORE AWAY FOR NOW\r
+       CLRB                    ;DO Y NOW\r
+       LDAA    D,J\r
+       ASLA            ;SEX AND SCALE\r
+       SBCB    I,0             ;SEX AGAIN! (NOW OWEN...SHAME)\r
+       ADDA    X,OBJVVL-1\r
+       ADCB    X,OBJVV-1\r
+       BVS     20$\r
+       PSHA\r
+       PSHB\r
+       LDAA    D,X3+1          ;SEE ABOVE\r
+       CMPA    I,2\r
+       BGT     14$\r
+       TSTB\r
+       BPL     13$\r
+       NEGB\r
+13$:   LDAA    X,STAT-1        ;DAMAGED?\r
+       BITA    I,6\r
+       BEQ     16$\r
+       ASLB                    ;SLOWER IF DAMAGED\r
+       BVS     14$\r
+16$:   ADDB    D,MAXV\r
+14$:   PULB\r
+       PULA\r
+       BVS     20$             ;IF OVERFLOW, SKIP\r
+       STAB    X,OBJVV-1\r
+       STAA    X,OBJVVL-1\r
+       LDAA    D,R0            ;GET X BACK & PUT AWAY\r
+       LDAB    D,R1\r
+       STAA    X,OBJHVL-1\r
+       STAB    X,OBJHV-1\r
+20$:   RTS\r
+30$:   LDAB    D,MAXV\r
+;SLOW DOWN DAMAGED SHIP\r
+       PSHB\r
+       LDAB    X,STAT-1        ;DAMAGED?\r
+       BITB    I,6\r
+       PULB\r
+       BEQ     31$             ;IF NO, OK\r
+       INCB                    ;YES- SLOW DOWN\r
+31$:   DECB\r
+       BEQ     35$\r
+       ASRA\r
+       ASR     E,J\r
+       BRA     31$\r
+35$:   STAA    X,OBJHV-1\r
+       LDAA    D,J\r
+       STAA    X,OBJVV-1\r
+       RTS\r
+\f\r
+       .SBTTL  EXPLOSION ROUTINE\r
+;*****************************************************\r
+;* EXPLOSION ROUTINE\r
+;* THIS ROUTINE TIMES OUT AND UPDATES EXPLOSION SEQUENCES\r
+;*\r
+;* A, B, & IX ARE CLOBERED\r
+;*\r
+;* PAGE 0:\r
+;*     VARIOUS STATUS WORDS USED, X2 & X1\r
+;*\r
+;* STACK SPACE: 1 BYTE\r
+;*\r
+;********************************************************\r
+EXPOUT:\r
+       LDX     I,EXPP0+1               ;2 POSSIBLE EXPLOSION PICS (1 EACH)\r
+5$:    LDAA    X,DIR\r
+       BEQ     11$             ;IF 0, NOT ACTIVE\r
+       INCA                    ;NEXT PIC\r
+       CMPA    I,LASTEXP       ;LAST PIC +1?\r
+       BNE     8$\r
+       JSR     CLROBJ          ;REMOVE EXPLOSION\r
+;INCREMENT SCORE?\r
+       LDAB    X,STAT-EXPP0    ;TOTAL DESTRUCTION?\r
+       BITB    I,40            ;IF NO, DO NOTHING\r
+       BEQ     11$\r
+;IF DESTROYED, REMOVE THE SHIP ALSO\r
+       STX     D,X1\r
+       STX     D,X2            ;1 TO WORK ON, 1 TO SAVE THE IX\r
+       LDAA    D,X1+1          ;POINT TO PROPER SHIP\r
+       SUBA    I,EXPP0\r
+       STAA    D,X1+1\r
+       LDX     D,X1            ;GET THE NEW IX\r
+       JSR     CLROBJ\r
+       LDX     D,X2\r
+       LDAB    D,ENDDLY        ;READY FOR RESTART. ALREADY FLAGED?\r
+       BNE     11$             ;IF NE, ALREADY IN COUNTDOWN FOR NEW HEAT\r
+       LDAB    I,4             ;WAIT APPROX 5 SECONDS.\r
+       STAB    D,ENDDLY\r
+       BRA     11$\r
+8$:    STAA    X,DIR\r
+11$:   DEX                     ;NEXT OBJECT?\r
+       CPX     I,EXPP0-1       ;BOTH DONE?\r
+       BNE     5$\r
+       BRA     HYPSPACE\r
+\f\r
+       .SBTTL  HYPERSPACE START ROUTINE\r
+;*************************************************\r
+;*     HYPERSPACE START ROUTINE (PASS STATUS BYTE IN B)\r
+;*\r
+;*     PAGE 0:  SETS 'HYPT#' & CHANGES FUEL\r
+;*\r
+;*     A,B, & IX UNCHANGED\r
+;*\r
+;*     STACK:  2 BYTES\r
+;*\r
+;*************************************************\r
+HYPST:\r
+       PSHA\r
+       PSHB\r
+       LDAA    X,HYPT0-1       ;IN?\r
+       BNE     10$             ;IF YES, SKIP\r
+       BITB    I,46            ;SHIP DAMAGED?\r
+       BNE     10$             ;IF YES, NOTHING\r
+       LDAA    D,OPEN          ;UNLIMITED?\r
+       BITA    I,4\r
+       BNE     1$\r
+       LDAA    X,FUEL0-1       ;CHECK FUEL\r
+       SUBA    I,10            ;COST 10 UNITS\r
+       BCS     10$             ;IF +, OK.....\r
+       STAA    X,FUEL0-1       ;OUT OF FUEL. NO HYPERSPACE, NO COST\r
+1$:    LDAA    I,05            ;HYPERSPACE TIME IN\r
+       STAA    X,HYPT0-1\r
+       PULB\r
+       ORAB    I,20            ;SET STATUS BIT ON\r
+       PSHB\r
+       CLR     X,OBJHV-1       ;STOP\r
+       CLR     X,OBJVV-1\r
+10$:   PULB\r
+       PULA\r
+       RTS\r
+       .SBTTL  HYPERSPACE CONTINUE & END ROUTINE\r
+;\r
+;********************************************************\r
+;*\r
+;*     CONTINUES & ENDS HYPERSPACE\r
+;*\r
+;*     PAGE 0:  VARIOUS POSITIONS & STAT WORDS ALTERED\r
+;*\r
+;*     A,B, & IX CLOBBERED\r
+;*\r
+;*STACK:  2 BYTES\r
+;*\r
+;********************************************************\r
+HYPSPACE:LDX   I,2             ;2 SHIPS\r
+5$:    LDAA    X,HYPT0-1       ;READ TIME\r
+       BEQ     55$             ;IF 0, NOTHING\r
+       DEC     X,HYPT0-1       ;0 NOW?\r
+       BNE     50$             ;IF NOT NOW 0, NOTHING\r
+;\r
+;HYPER SPACE DONE\r
+;\r
+       JSR     RAND            ;MOVE SHIP TO RANDOM PLACE\r
+       STAA    X,OBJV-1\r
+       JSR     RAND\r
+       STAA    X,OBJH-1\r
+       LDAB    X,STAT-1\r
+       ANDB    I,0CF           ;CLEAR HYPER HYPER(2 TOOO MUCH MAYBE???) BIT\r
+       STAB    X,STAT-1\r
+50$:   CLR     X,OBJHV-1       ;STOP IT MOVING\r
+       CLR     X,OBJVV-1\r
+55$:   DEX\r
+       BNE     5$              ;FALL THRU TO RESTART\r
+\f\r
+       .SBTTL  RESTART HEAT ROUTINE\r
+;***************************************************\r
+;* RESTART HEAT ROUTINE\r
+;* THIS ROUTINE LOOKS AT THE BYTE 'ENDDLY'.\r
+;* IF 0, A HEAT IS RUNNING (OR DON'T CARE)\r
+;* IF NOT 0, WERE IN COUNTDOWN TO A NEW HEAT\r
+;* IF JUST 0, START NEW HEAT.\r
+;*\r
+;* A & IX HIT , B UNCHANGED\r
+;*\r
+;* PAGE 0 AFFECT:\r
+;*     IF NEW HEAT STARTED, ALL MOTION AND STAT\r
+;*     INFO IS 0'ED OUT AND SOME REINITIALIZED\r
+;*     MOTION OUTPUTS (43C0, ...) ARE CLEARED.\r
+;*     POLY IS CHANGED\r
+;*\r
+;* STACK SPACE: 5 BYTES (2 FOR CALLING RAND)\r
+;*\r
+;*************************************************\r
+RESTART:\r
+       LDAA    D,ENDDLY        ;TIME FOR RESTART?\r
+       BNE     REST2\r
+       JMP     RSE\r
+REST2: DEC     E,ENDDLY        ;COUNTDOWN\r
+       BNE     RSE             ;IF NOT 0, DO NOTHING\r
+       LDX     I,TOO           ;SET TO TOP OF MOTION OUTPUT SPACE\r
+5$:    CLR     X,0             ;MOVE OFF\r
+       DEX\r
+       CPX     I,PICTURE-1     ;DO ALL?\r
+       BNE     5$\r
+;CHECK FOR ANY SCORE\r
+       LDAA    D,GMSTAT                ;NO SCORE DURING ATTRACT\r
+       BEQ     2$\r
+       LDAA    D,STAT\r
+       ASLA\r
+       BPL     1$              ;DESTROYED?\r
+       LDAA    D,SCORE1        ;ADD TO OTHER\r
+       ADDA    I,1\r
+       DAA\r
+       STAA    D,SCORE1\r
+1$:    LDAA    D,STAT+1        ;2ND SHIP\r
+       ASLA\r
+       BPL     2$\r
+       LDAA    D,SCORE0\r
+       ADDA    I,1\r
+       DAA\r
+       STAA    D,SCORE0\r
+2$:    LDX     I,STAT+10       ;CLEAR PAGE 0 ALSO\r
+6$:    CLR     X,0\r
+       DEX\r
+       BNE     6$\r
+       CLR     X,0             ;LAST BYTE ALSO\r
+       CLR     X,WRNMK         ;WARNING MASK TOO\r
+       LDAA    I,80            ;RESTART SHIPS\r
+       STAA    D,STAT\r
+       STAA    D,STAT+1        ;STAT'S UP\r
+       LDAA    I,60            ;ON RESET, WE TURN GRAV OFF FOR SHIPS...\r
+       ORAA    D,OPEN2         ;UNTILL THEY ACCEL. (IF GRAV APPLIES)\r
+       STAA    D,OPEN2\r
+       LDAA    I,LOS+6\r
+       STAA    D,OBJH          ;SET HORIZ OF SHIPS TO EDGE OF SCREEN\r
+       LDAA    I,ROS-4\r
+       STAA    D,OBJH+1\r
+7$:    JSR     RAND            ;GET RANDOM VERT STARTING POINT\r
+       CMPA    I,15\r
+       BLS     7$\r
+       CMPA    I,0EB\r
+       BHI     7$\r
+       STAA    D,OBJV\r
+8$:    JSR     RAND\r
+       CMPA    I,15            ;STAY OFF EDGES\r
+       BLS     8$\r
+       CMPA    I,0EB\r
+       BHI     8$\r
+       STAA    D,OBJV+1\r
+       LDAA    I,0E            ;SET DIRECTION OF RIGHT SHIP LEFT\r
+       STAA    D,DIR+1         ;(THE OTHER SHIP COMES UP CORRECT)\r
+       LDAA    I,18.\r
+       STAA    D,SHOT0\r
+       STAA    D,SHOT1\r
+       LDAA    I,63            ;START FUEL\r
+       STAA    D,FUEL0\r
+       STAA    D,FUEL1\r
+       JSR     SPSTN\r
+       LDAA    I,10\r
+       STAA    D,HEATT\r
+       LDAA    I,3\r
+       STAA    D,ROCKD         ;NEW ROCK DELAY START\r
+RSE:   JMP     SCROUT\r
+\f\r
+       .SBTTL  CLEAR OBJECT ROUTINE\r
+;************************************************\r
+;* THIS ROUTINE CLEARS AN OBJECT POINTED TO BY IX\r
+;*\r
+;* NO REGISTERS AFFECTED\r
+;*\r
+;* PAGE 0:\r
+;*     MOTION WORDS POINTED TO ARE CLEARED\r
+;*\r
+;* STACK SPACE: 1 BYTE\r
+;*\r
+;**************************************************\r
+CKM3:  .BYTE   69              ;CKSUM 7000-73FF\r
+CLROBJ:\r
+       PSHA\r
+       LDAA    X,STAT\r
+       ANDA    I,40            ;ALL BUT DESTROYED BIT\r
+       STAA    X,STAT\r
+       PULA\r
+       CLR     X,OBJH\r
+       CLR     X,OBJV\r
+       CLR     X,OBJHV\r
+       CLR     X,OBJVV\r
+       RTS\r
+\f\r
+       .SBTTL  MESSAGE ROUTINE\r
+;*************************\r
+;* MESSAGE WRITE ROUTINE (DOES LANGUAGE CONVERSION)\r
+;*  PASS MSSAGE # IN B, OUTPUT LOCATION IN IX \r
+;* A&B UNCHANGED, IX CHANGED\r
+;*\r
+;* PAGE0: X1, TPTR (2BYTES),X2,R0\r
+;*\r
+;*\r
+;* STACK: 2 BYTES\r
+;*\r
+;*************************\r
+DSPLY: STX     D,X1            ;HOLD OUTPUT LOCATION\r
+       PSHA                    ;SAVE A\r
+       PSHB                    ;SAVE B\r
+       STAA    E,WTDOG\r
+       ASLB\r
+       ASLB                    ;MESSAGE # TIMES 8\r
+       ASLB\r
+       ADDB    D,LANG          ;ADD LANUGAGE\r
+       STAB    D,TPTR+1\r
+       LDAB    I,MESTBL&0FF00/100      ;TABLE ADDRESS MSB\r
+       STAB    D,TPTR\r
+       LDX     D,TPTR          ;GET MESSAGE INDEX POINTER\r
+       LDX     X,MESTBL&0FF    ;GET MESSAGE ADDRESS\r
+       STX     D,X2            ;SAVE MESSAGE\r
+5$:    LDAB    I,-1            ;REPEAT COUNT IS -1 DEFAULT\r
+       LDX     D,X2\r
+10$:   LDAA    X,0             ;NEXT INPUT\r
+       BEQ     40$             ;0 IS END OF MESSAGE\r
+       BPL     20$             ;IF +, A CHARACTER\r
+       TAB                     ;ITS -, SO ITS REPEAT COUNT\r
+       LDAA    X,1             ;GET REPEAT CHARACTER\r
+20$:   INX\r
+       STX     D,X2            ;SAVE INPUT POINTER\r
+       LDX     D,X1            ;OUTPUT LOCATION\r
+25$:   ANDA    I,1F\r
+       STAA    X,0\r
+       INX\r
+       INCB\r
+       BMI     25$\r
+       STX     D,X1            ;SAVE OUTPUT POINTER\r
+       BRA     5$\r
+40$:   PULB\r
+       PULA\r
+       RTS\r
+;MESSAGE TABLE 0=ENGLISH,1=FRENCH,2=SPANISH,3=GERMAN\r
+MESTBL:\r
+       .WORD   MES0E           ;'LOW' (ENGLISH)\r
+       .WORD   MES0F           ;(FRENCH)\r
+       .WORD   MES0S           ;(SPANISH)\r
+       .WORD   MES0G           ;(GERMAN)\r
+       .WORD   MES1E           ;'PER COIN'\r
+       .WORD   MES1F           ;(F)\r
+       .WORD   MES1S           ;(S)\r
+       .WORD   MES1G           ;(G)\r
+       .WORD   MES2E           ;FREE PLAY\r
+       .WORD   MES2F   \r
+       .WORD   MES2S\r
+       .WORD   MES2G\r
+       .WORD   MES3E           ;'OUT'\r
+       .WORD   MES3F\r
+       .WORD   MES3S\r
+       .WORD   MES3G\r
+       .WORD   MES4E           ;'GAME OVER'\r
+       .WORD   MES4F\r
+       .WORD   MES4S\r
+       .WORD   MES4G\r
+       .WORD   MES5E           ;SELECT GAME\r
+       .WORD   MES5F\r
+       .WORD   MES5S\r
+       .WORD   MES5G\r
+       .WORD   MES6E\r
+       .WORD   MES6F\r
+       .WORD   MES6S\r
+       .WORD   MES6G\r
+;LOW (USED FOR LOW FUEL & LOW SHELLS)\r
+MES0E: .ASCIZ  /LOW/\r
+MES0F:\r
+MES0S:\r
+MES3F:                         ;SAME FOR OUT AS LOW (SEE OUT BELOW)\r
+MES3S:\r
+MES3G:\r
+MES0G: .BYTE   -3,40,0         ;BLAKN FOR ALL BUT ENGLISH\r
+MES1E: .ASCIZ  /PER@COIN/\r
+MES1F: .ASCIZ  /PAR@PIECE/\r
+MES1S: .ASCIZ  /POR@FICHA/\r
+MES1G: .ASCIZ  /PRO@MUENZE/\r
+MES2E:\r
+       .ASCIZ  /@@FREE@PLAY/\r
+MES2F: .ASCIZ  /PARTIE@GRATUITE/\r
+MES2S: .ASCIZ  /@@JUEGO@GRATIS/\r
+MES2G: .BYTE   -3,40\r
+       .ASCIZ  /FREISPIEL/\r
+MES3E: .ASCIZ  /OUT/\r
+MES4E: .BYTE   -2,40           ;2 BALNKS FIRST\r
+        .ASCIZ /GAME@OVER/     ;GAME OVER\r
+MES4F: .ASCIZ  /@FIN@DE@PARTIE/\r
+MES4S: .ASCIZ  /JUEGO@TERMINADO/\r
+MES4G: .BYTE   -2,40           ;2 BLANKS FIRST\r
+       .ASCIZ  /SPIELENDE/\r
+MES5E: .ASCIZ  /SELECT@GAME/   ;SELECT GAME\r
+MES5F: .ASCIZ  /CHOIX@DU@JEU/\r
+MES5S: .ASCIZ  /@ELEGIR@JUEGO/\r
+MES5G: .BYTE   -2,40\r
+       .ASCIZ  /SPIELWAHL/\r
+MES6E: .BYTE   -3,40           ;4 BLANKS\r
+       .ASCIZ /INSERT@COINS/\r
+MES6F: .ASCIZ  /INTRODUIRE@LES@PIECES/\r
+MES6S: .BYTE   -3,40           ;MOVE UP 3 SPACES (MOTHER MAY I?)\r
+       .ASCIZ  /INSERTE@FICHAS/\r
+MES6G: .BYTE   -3,40           ;MOVE 3 SPACES\r
+       .ASCIZ  /GELD@AUSWERFEN/\r
+\f\f\r
+       .SBTTL  WHITE NOISE ROUTINE\r
+;************************************************************\r
+;* EXPLOSION ROUTINE & SHIP THRUST SOUND CONTROL\r
+;*\r
+;*A, B & IX CHANGED\r
+;*\r
+;*PAGE 0: SNDLL & SNDRR UPDATED, FLAG CHANGED\r
+;*\r
+;*STACK: 0 BYTES\r
+;*\r
+;***********************************************************\r
+BOOM:  CLRA\r
+       CLRB\r
+       TST     E,GMSTAT\r
+       BPL     37$\r
+       LDAA    D,TIME          ;TIME FOR EXPLOSION CHANGE?\r
+       ANDA    I,0F\r
+       BNE     21$             ;NO\r
+       LDAA    D,SNDLR         ;YES\r
+       BEQ     10$             ;EXPLOSION FADE\r
+       DECA\r
+10$:   LDAB    D,SNDLL\r
+       BEQ     20$\r
+       SUBB    I,10\r
+20$:   STAB    D,SNDLL         ;NO ADD THRUST SOUND IF ANY\r
+       STAA    D,SNDLR\r
+21$:   CLRA                    ;PUT NO SOUNDS IN TEMP CELLS\r
+       STAA    D,R0\r
+       STAA    D,R1\r
+       LDX     I,2             ;BUT FIRST CHECK IF TOO LOAD \r
+22$:   LDAB    X,STAT-1        ;IT THIS SHIP TRUSTING?\r
+       BITB    I,40            ;DESTROYED?\r
+       BNE     30$\r
+       LDAA    X,FUEL0-1\r
+       BEQ     30$             ;NO SOUND IF OUT OF FUEL\r
+       LSRB                    ;?\r
+       BCC     30$\r
+                               ;DO OTHER SHIP\r
+       LDAA    X,OBJH-1        ;NOW ADD IN THRUST (IF ON)\r
+       TAB\r
+       COMB\r
+       LSRA\r
+       LSRA\r
+       LSRA\r
+       LSRA\r
+       LSRA                    ;THRUST FOR RIGHT (0-7)\r
+       ORAA    D,R0\r
+       STAA    D,R0\r
+       LSRB                    ;LEFT CHANNEL (00-70)\r
+       ANDB    I,0F0\r
+       ORAB    D,R1\r
+       STAB    D,R1\r
+30$:   DEX\r
+       BNE     22$             ;NEXT SHIP\r
+       LDAA    D,SNDLR         ;NO ITS ADD IN TIME, BUT....\r
+       CMPA    I,7             ;...IF EXPLOSION IS LOADER THAN THRUST\r
+       BGE     35$             ;DON'T OR IN THRUST\r
+       ORAA    D,R0\r
+35$:   LDAB    D,SNDLL         ;DO SAME WITH LEFT\r
+       CMPB    I,60            ;>60?\r
+       BHI     37$\r
+       ORAB    D,R1\r
+37$:   ABA                     ;MIX CHANNELS\r
+       STAA    E,NOISE\r
+\r
+\f\r
+       .SBTTL  BLINK STARS ROUTINE\r
+;***************************************************\r
+;* TAKES STAR POINTED TO (THROUGH TABLE) BY 'STRBLK'\r
+;* AND TURNS IT OFF FOR A SHORT TIME. IT IS THEN TURNED\r
+;* BACK ON AND POINTED TO THE NEXT ENTRY\r
+;*\r
+;* A, B, & IX CHANGED\r
+;*\r
+;* PAGE 0: STRBLK COULD CHANGE\r
+;*\r
+;* STACK: 0 BYTES\r
+;*\r
+;***************************************************\r
+BLINK:\r
+       LDAA    D,OPEN\r
+       BITA    I,2\r
+       BEQ     25$             ;STARS ARE OFF\r
+       LDX     D,STRBLK        ;POINTER INTO TABLE\r
+       LDAB    I,STARPC        ;STAR PIC\r
+       LDAA    D,TIME          ;NOW?\r
+       ANDA    I,03            ;EVERY 3 FRAMES\r
+       BNE     10$             ;NOT TIME FOR NEXT\r
+       INX\r
+       INX                     ;NEXT BLINKER\r
+       CPX     I,STBLE         ;PAST END OF TABLE?\r
+       BNE     10$\r
+       LDX     I,STRTBL        ;RESET TO START\r
+10$:   STX     D,STRBLK        ;SAVE NEW POINTER\r
+       LDAA    D,TIME\r
+       ANDA    I,2             ;OFF 2 OUT OF 3\r
+       BNE     20$\r
+       CLRB                    ;CLEAR TIME\r
+20$:   LDX     X,0             ;GET SCREEN ADDR OUT OF TABLE\r
+       STAB    X,0\r
+       RTS\r
+25$:\r
+\r
+\f\r
+       .SBTTL  STATUS OUTPUT\r
+;*************************\r
+;* OUTPUT SHIPS STATUS\r
+;*\r
+;*\r
+;* A,B & IX CLOBERED\r
+;*\r
+;* PAGE0: FLAG\r
+;*\r
+;* STACK:\r
+;*\r
+;**************************\r
+SCROUT:        LDAA    I,LITTLE        ;SMALL NUMBERS\r
+       STAA    D,FLAG\r
+       LDAA    D,GMSTAT        ;GAME STATUS\r
+       BMI     10$             ;GAME ON\r
+       BNE     2$              ;GAME IN FREEZE\r
+1$:    RTS                     ;NOTHING\r
+2$:    LDAA    I,30\r
+       STAA    D,FLAG          ;SCORE IS LARGE\r
+       LDAA    D,SCORE1        ;OUTPUT SCORE\r
+       LDX     I,SCPL1-20\r
+       JSR     CONVT2          ;OUTPUT 1\r
+       LDAA    D,SCORE0\r
+       LDX     I,SCPL0-20\r
+       JMP     CONVT2          ;OUTPUT 2 & END\r
+10$:   LDAA    D,OPEN          ;UNLIMITED FUEL?\r
+       BITA    I,4\r
+       BNE     2$              ;IF YES, SCORE\r
+       LDAA    D,HEATT         ;HOW FAR INTO HEAT\r
+       BNE     2$              ;STILL SCORE OUTPUT TIME\r
+       LDX     I,SCPL0         ;TIME FOR STATUS OUTPUT FIRST FUEL\r
+       LDAA    D,FUEL0\r
+       LDAB    I,1             ;IF LOW(WE DON'T KNOW YET) THIS IS BIT FOR WARNING MASK\r
+       STAB    D,R0\r
+       JSR     BTDCVT\r
+       TBA                     ;LOW LEVEL IS 20 FOR FUEL\r
+       BSR     NUMOT\r
+       LDX     I,SCPL0-20      ;GET OUTPUT LOCATION\r
+       LDAA    D,SHOT0         ;GET SHOTS\r
+       LDAB    I,2             ;IF LOW (WE DON'T KNOW YET) THIS IS BIT FOR WARNING MASK\r
+       STAB    D,R0\r
+       JSR     BTDCVT\r
+       TBA\r
+       CMPB    I,5             ;LOW FOR SHOTS IS 5\r
+       BSR     NUMOT2\r
+       LDX     I,SCPL1         ;SAME AS ABOVE, BUT NOW FOR SHIP 1\r
+       LDAA    D,FUEL1\r
+       LDAB    I,4\r
+       STAB    D,R0\r
+       JSR     BTDCVT\r
+       TBA\r
+       BSR     NUMOT\r
+       LDX     I,SCPL1-20\r
+       LDAA    D,SHOT1\r
+       LDAB    I,8\r
+       STAB    D,R0\r
+       JSR     BTDCVT\r
+       TBA\r
+       CMPB    I,5\r
+       BRA     NUMOT2\r
+NUMOT: CMPB    I,20            ;LOW\r
+NUMOT2:        BHI     10$             ;OK TO OUTPUT\r
+       PSHB\r
+       LDAB    D,R0            ;ALREADY?\r
+       BITB    D,WRNMK         ;CHECK FOR ALREADY WARNED\r
+       BNE     1$\r
+       ORAB    D,WRNMK         ;IF NOT, SET MASK TO YES\r
+       STAB    D,WRNMK\r
+       LDAB    I,07\r
+       STAB    D,WARN          ;START WARNING\r
+1$:    LDAB    D,TIME\r
+       BITB    I,10            ;FLASH 'LOW'\r
+       PULB                    ;OUTPUT 'LOW'\r
+       BNE     10$\r
+       TSTB                    ;'OUT?'\r
+       BNE     2$\r
+4$:    LDAB    I,3\r
+       BRA     3$\r
+2$:    CLRB\r
+3$:    JMP     DSPLY           ;& RETURN\r
+10$:   CLRB\r
+       STAB    X,2             ;REMOVE LAST LETTER JUST IN CASE\r
+\r
+\f\r
+       .SBTTL  ASCII OUTPUT ROUTINE\r
+;********************************************************\r
+;*\r
+;*     DISPLAYS A&B IN ASCII AT LOC POINTED TO BY IX\r
+;*     0 BLANKS\r
+;*\r
+;*     PAGE 0:  FLAG\r
+;*\r
+;*     CLOBBERS A & IX\r
+;*\r
+;*     STACK:  4 BYTES\r
+;*\r
+;********************************************************\r
+CONVT:\r
+       PSHB                    ;SAVE THIS MESS\r
+       LDAB    D,FLAG          ;BLANK\r
+       BNE     1$\r
+       STAB    X,0\r
+       BRA     15$\r
+1$:    TAB\r
+       LSRA\r
+       LSRA                    ;HIGH NIB TO LOW A\r
+       LSRA\r
+       LSRA\r
+       BEQ     10$\r
+       PSHA\r
+       PULA\r
+10$:   ADDA    D,FLAG\r
+       STAA    X,0\r
+15$:   INX\r
+       ANDB    I,0F            ;THE OTHER HALF\r
+       BEQ     20$\r
+       PSHB\r
+       PULB\r
+20$:   ADDB    D,FLAG\r
+       STAB    X,0\r
+       INX\r
+       PULB\r
+       RTS\r
+CONVT2:        CLR     X,0             ;CLEAR OLD WRONG\r
+       CLR     X,20\r
+       CLR     X,1\r
+       CLR     X,21\r
+       CLR     X,2\r
+       CLR     X,22\r
+       BRA     CONVT\r
+\f\r
+       .SBTTL  CLEAR SCREEN ROUTINE\r
+;***********************************************************\r
+;* CLEARS PLAY FIELD RAM\r
+;*\r
+;* A & B UNCHANGED, IX CHANGED\r
+;*\r
+;* PAGE 0: NONE\r
+;*\r
+;* STACK: 0 BYTES\r
+;*\r
+;************************************************************\r
+CLRS:\r
+       LDX     I,PLAYF\r
+1$:    CLR     X,0\r
+       INX\r
+       CPX     I,PLAYF+400\r
+       BNE     1$\r
+       INC     E,CHANGE\r
+       RTS\r
+\r
+\f\r
+       .SBTTL MATH PACKAGE\r
+       .SBTTL  RANDOM NUMBER ROUTINE\r
+;****************************************************\r
+;* RANDOM NUMBER ROUTINE (RANDOM????)\r
+;* YEP ITS JUST A POLY COUNTER WHICH IS CALLED\r
+;* BY NMI (TO KEEP IT MOVING)\r
+;*\r
+;* A IS THE ONLY GUY AFFECTED\r
+;*\r
+;* PAGE 0:\r
+;*     A&B CHANGED, IX IS NOT\r
+;*\r
+;* STACK SPACE: 0 BYTES\r
+;*\r
+;******************************************************\r
+RAND:\r
+       LDAA    D,POLY\r
+       BEQ     2$                      ;0 IS LOCKUP\r
+       BITA    I,4\r
+       BEQ     1$\r
+       EORA    I,40\r
+1$:    ASLA\r
+       BPL     3$\r
+2$:    INCA\r
+3$:    STAA    D,POLY\r
+       RTS\r
+;*********************************************************\r
+;*\r
+;* RANDOM (???) NUMBER ROUTINE WHICH ALWAYS RETURNS\r
+;* A NUMBER + TO - '1F'\r
+;*\r
+;* A CHANGED, B & IX NOT CHANGE\r
+;*\r\r
+;* PAGE 0: POLY CHANGED\r
+;*\r
+;* STACK: 2 BYTES\r
+;*\r
+;***********************************************************\r
+RAND2:\r
+       BSR     RAND\r
+       BPL     1$\r
+       NEGA                    ;IF -, MAKE + FOR A BIT\r
+       ANDA    I,1F\r
+       NEGA\r
+       RTS\r
+1$:    ANDA    I,1F\r
+       RTS\r
+\f\r
+       .SBTTL  SIN & COS ROUTINE\r
+;*************************************************************\r
+;* THIS TAKES AN ANGLE IN A (0-27.), AND RETURNS\r
+;* SIN OR COS IN A.\r
+;* ANGLE COMPUTED ON  A * 12.86 DEGS.\r
+;*\r
+;* A & B CLOBERED, IX  UNCHANGED\r
+;*\r
+;* PAGE 0 USED:\r
+;*     TPTR (2 BYTES), X3 (2 BYTES)\r
+;*\r
+;* STACK USED: 0 BYTES\r
+;*\r
+;***************************************************\r
+SIN:   NEGA                    ;-ALPHA\r
+       ADDA    I,7             ;PI/2 - ALPHA\r
+       BPL     COS\r
+       ADDA    I,28.           ;IF TOO SMALL (MOD 28)\r
+COS:   STAA    D,TPTR+1        ;LOOK UP #\r
+       LDAA    I,TBL2&0FF00/100\r
+       STAA    D,TPTR\r
+       STX     D,X3\r
+       LDX     D,TPTR\r
+       LDAA    X,TBL2&0FF\r
+       LDX     D,X3\r
+       RTS\r
+\r
+\f\r
+       .SBTTL  DIVIDE (BY 32 ONLY)\r
+;*****************************************************\r
+;DIVIDE B BY 32, RESULT IN A (HI) & B (LO)\r
+;*\r
+;* A & B CLOBERED, IX UNCHANGED\r
+;*\r
+;* PAGE 0 USED:\r
+;*     NONE\r
+;*\r
+;* STACK SPACE: 0 BYTES\r
+;*\r
+;***************************************************\r
+DIV32: CLRA\r
+       ASLB\r
+       BCC     1$\r
+       COMA                    ;SIGN EXTEND\r
+1$:    ASLB\r
+       ROLA\r
+       ASLB\r
+       ROLA\r
+       RTS\r
+\r
+\f\r
+       .SBTTL  BINARY TO DECIMAL CONVERT\r
+;*********************************************\r
+;*\r
+;*     CONVERT BINARY IN A TO DECIMAL IN A&B (A=MSB, B=LSB)\r
+;*\r
+;*     PAGE 0:  NONE\r
+;*\r
+;*     A&B CHANGED, IX IS NOT\r
+;*\r
+;*     STACK:  1 BYTE\r
+;*\r
+;*********************************************\r
+BTDCVT:\r
+       LDAB    I,-1            ;CONVERT\r
+1$:    INCB\r
+       SUBA    I,100.\r
+       BCC     1$              ;'BLO' AFTER SUBA CARRY=BORROW\r
+       ADDA    I,100.          ;RESTORATIVE DIVISION, WORK ON IT****\r
+       PSHB\r
+       LDAB    I,0F0           ;START 1 OFF\r
+2$:    ADDB    I,10            ;10 HEX\r
+       SUBA    I,10.\r
+       BCC     2$\r
+       ADDA    I,10.           ;RESTORATIVE\r
+       ABA\r
+       TAB                     ;1'S LEFT OVER\r
+       PULA                    ;100'S\r
+       RTS\r
+\f\r
+       .SBTTL MOTION ROUTINE\r
+       .SBTTL  INITIALIZATION ROUTINE\r
+;*************************************\r
+;* CLEAR SCREEN, CLEAR MOTION OBJECTS, INIT OPTION PRAMS.\r
+;*\r
+;* A & IX HIT, B UNCHANGED\r
+;*\r
+;* PAGE 0 USED:\r
+;*     IF THERE WAS SOMETHING THERE, ITS NOT THERE NOW!!!!\r
+;*     (WILL NOT CLEAR SECOND, MINUTE OR SCORES)\r
+;*\r
+;* STACK SPACE: 0 BYTES\r
+;*\r
+;*************************************\r
+INIT:  LDX     I,PLAYF         ;CLEAR SCREEN THRU...\r
+1$:    CLR     X,0\r
+       INX\r
+       CPX     I,TOO+1         ;....TOP OF MOTION OBJECTS.....OH..KEY..DOKEE...\r
+       BNE     1$\r
+       LDX     I,WARN          ;CLEAR PAGE 0\r
+;..... WELL, AT LEAST MOST OF IT........\r
+;              THIS COMMENT INTENTIONALLY LEFT BLANK\r
+2$:    CLR     X,0\r
+       DEX\r
+       BNE     2$\r
+       CLR     X,0\r
+       LDAA    I,HSTBL&0FF00/100       ;SET UP FOR IRQ INTERRUPTS\r
+       STAA    D,TIX2\r
+       INC     E,CHANGE        ;ALLOW CLOCK OUT (IF NECESSARY)\r
+       CLR     E,NOISE         ;SOUNDS OFF\r
+       LDAA    I,01\r
+       STAA    D,ENDDLY        ;SET UP FOR RESTART\r
+       LDAA    I,15\r
+       STAA    D,DELAY         ;SOUND OUT\r
+       STAA    D,ATRACT        ;ATTRACT TIMER\r
+       LDAA    D,OPEN\r
+       BITA    I,2             ;STARS OFF\r
+       BNE     OUTI\r
+;\r
+;OUTPUT STARS ROUTINE (PART OF INIT)\r
+; A & IX CLOBBERED\r
+;PAGE 0 NOT CLOBBERED IF ENTERED HERE; ONLY STRBLK RESET\r
+;NO STACK USED\r
+;\r
+STARS: LDX     I,STRTBL\r
+       STX     D,STRBLK\r
+       LDAA    I,STARPC        ;STAR PIC\r
+       LDX     I,STRTBL-2      ;STAR TABLE-2\r
+3$:    INX                     ;+2\r
+       INX\r
+       STX     D,X1\r
+       LDX     X,0             ;NEXT OUTPUT LOCATION\r
+       BEQ     OUTI\r
+       STAA    X,0\r
+       LDX     D,X1\r
+       BRA     3$              ;NEXT\r
+OUTI:  RTS\r
+\f\r
+       .SBTTL  KEEPUP ROUTINE\r
+;********************************************************\r
+;*\r
+;*THIS ROUTINE MOVES BOTH HALVES OF THE SPACE SHIP TOGETHER\r
+;*\r
+;*PAGE 0:  UPDATES POSITIONS OF UPPER OBJECTS. X1&X2 CLOBBERED\r
+;*\r
+;*STACK:  2 BYTES ON CALL (6 BYTES IN CALLED)=8 BYTES\r
+;*\r
+;********************************************************\r
+KEEPUP:\r
+       LDAA    D,STAT\r
+       STAA    D,STAT+2\r
+       LDAA    D,STAT+1\r
+       STAA    D,STAT+3\r
+       LDX     I,4.            ;SHIP 1 SET UP\r
+       STX     D,X2\r
+       LDX     I,2             ;SET OBJECT 4 TO OBJECT 1\r
+       JSR     STAT2\r
+       DEX\r
+       STX     D,X2            ;NOW DO SHIP 0\r
+       LDX     I,1             ;SET OBJECT 3 TO OBJECT 0\r
+       JMP     STAT2\r
+\f\r
+       .SBTTL  SPACE STATION ROUTINES\r
+;******************************************\r
+;* START SPACE STATIONS\r
+;*\r
+;*PAGE 0: VARIOUS STATUS & MOTION BYTES CHANGED\r
+;*\r
+;*STACK: 0 BYTES\r
+;*\r
+;******************************************\r
+CKM4:  .BYTE 0D                ;CKSUM 7400-77FF\r
+SPSTN: LDAA    D,OPEN\r
+       BITA    I,8             ;ON?\r
+       BNE     SPSTN2\r
+       RTS\r
+SPSTN2:        LDAA    I,80            ;ACTIVE BITS\r
+       STAA    D,STAT+STION1\r
+       STAA    D,STAT+STION2\r
+       LDAA    I,STNPIC\r
+       LDAB    E,PANL2         ;READ OPTIONS (SCREEN REFLECT) \r
+       BITB    I,08            ;FLIP OBJECTS?\r
+       BEQ     1$\r
+       ORAA    I,80            ;FLIP OBJECTS\r
+1$:    STAA    D,DIR+STION1    ;PICTURES\r
+       INCA\r
+       STAA    D,DIR+STION2\r
+       LDAA    I,80            ;SET H AND V POSITION 0F OBJECTS\r
+       LDAB    I,4E\r
+       STAA    D,OBJH+STION1\r
+       STAB    D,OBJV+STION1\r
+       LDAB    I,0B2           ;OTHER OBJECT NOW\r
+       STAA    D,OBJH+STION2\r
+       STAB    D,OBJV+STION2\r
+       LDAA    I,1A            ;VELOCITY OF BOTH OBJECTS\r
+       STAA    D,OBJHV+STION1\r
+       CLRA\r
+       STAA    D,OBJVVL+STION1 ;LSB BYTES ALSO\r
+       STAA    D,OBJHVL+STION1\r
+       STAA    D,OBJHL+STION1\r
+       STAA    D,OBJVL+STION1\r
+       STAA    D,OBJVV+STION1  ;CLEAR VERT VELOCTIY\r
+;***********************************************\r
+;*ORBIT ROUTINE TO MOVE SPACE STATINS\r
+;*\r
+;*PAGE 0: VARIOUS STATUS & MOTION BYTES CHANGED\r
+;*      FLAG CHANGED IF STATIONS ON\r
+;*\r
+;*STACK: 0 BYTES\r
+;***********************************************\r
+ORBIT: CLR     E,FLAG\r
+       LDAA    D,OPEN          ;STATIONS OUT?\r
+       BITA    I,8\r
+       BEQ     10$             ;IF OFF, WE CAN DO A SPACE ROCK\r
+       LDAA    I,80            ;THE SECOND SHIP STAYS ALWAYS\r
+       TAB                     ;180 DEG ABOUT THE SUN\r
+       SUBA    D,OBJH+STION1   ;DISTANCE FROM SUN\r
+       ADDA    I,80            ;TO OTHER SIDE\r
+       STAA    D,OBJH+STION2\r
+       CMPA    I,81            ;ON HORIZ RESTART  POINT?\r
+       BNE     1$              ;YES\r
+       STAA    D,FLAG          ;SET FLAG TO CHECK NEXT\r
+1$:    SUBB    D,OBJV+STION1   ;NOW VERT.\r
+       ADDB    I,80\r
+       STAB    D,OBJV+STION2\r
+       LDAA    D,FLAG\r
+       BEQ     GRAV\r
+       TSTB\r
+       BMI     SPSTN2          ;STATION AT START POINT\r
+       BRA     GRAV\r
+10$:\r
+;\r
+;STATIONS OFF SO WE CAN USE THE MOTION OBJECT AS A SPACE ROCK\r
+;\r
+       LDAA    D,STAT+STION1           ;IS ROCK BLOWING UP?\r
+       BPL     20$                     ;NOT ACTIVE?\r
+       BITA    I,2     \r
+       BNE     30$                     ;YES\r
+17$:   LDAA    D,ROCKD                 ;READY TO START\r
+       BNE     21$                     ;NO\r
+       LDAA    D,OBJH+STION1           ;WATCH FOR EDGE HIT\r
+       BPL     11$\r
+       NEGA\r
+11$:   ANDA    I,0F8\r
+       BEQ     18$                     ;H AT EDGE?\r
+       LDAA    D,OBJV+STION1           ;HOW ABOUT V?\r
+       BNE     35$\r
+18$:   LDAB    I,3\r
+       STAB    D,ROCKD\r
+       STAA    D,STAT+STION1           ;TURN OFF\r
+20$:   LDAA    D,TIME                  ;TIME FOR NEW ROCK?\r
+       BNE     35$                     ;CHECK ONCE EVERY 256 FRAMES\r
+       LDAA    D,ROCKD                 ;ONCE EVERY 5 TIMES IN, START ONE\r
+21$:   DECA\r
+       STAA    D,ROCKD \r
+       BPL     35$\r
+       LDAA    I,40                    ;DELAY TO ALLOW CLEAR AT EDGE\r
+       STAA    D,ROCKD                 ;TIME FOR NEW ONE\r
+       LDAA    I,80\r
+       STAA    D,STAT+STION1           ;STATUS ACTIVE\r
+       LDAA    I,ROCK\r
+       STAA    D,DIR+STION1            ;PIC TO ROCK\r
+       JSR     RAND2\r
+       STAA    D,OBJVV+STION1          ;RANDOM VELOCITIES\r
+       JSR     RAND2\r
+       STAA    D,OBJHV+STION1\r
+;\r
+;CLEAR ONE SIDE TO EDGE\r
+;\r
+       CLRB\r
+       JSR     RAND\r
+       BITA    I,40\r
+       BNE     28$\r
+       STAB    D,OBJV+STION1\r
+       BRA     35$\r
+28$:   STAB    D,OBJH+STION1\r
+29$:   BRA     35$\r
+30$:   LDAA    D,TIME                  ;ROCK IS BLOWING UP\r
+       ANDA    I,0F\r
+       BNE     17$                     ;BLOW UP SPEED\r
+       LDAA    D,DIR+STION1            ;WHAT PIC IN SEQUENCE\r
+       INCA\r
+       STAA    D,DIR+STION1\r
+       CMPA    I,LEXPRK+1              ;LAST IN SEQUENCE\r
+       BNE     17$                     ;IF NO, OK\r
+       CLRA\r
+       STAA    D,STAT+STION1           ;TURN OFF\r
+35$:\r
+\f\r
+       .SBTTL  GRAVITY ACCELERATION ROUTINE\r
+;***********************************************************\r
+;*\r
+;*GRAVITY ROUTINE\r
+;*     ADDS GRAVITY TO OBJECTS\r
+;*     USES A 256 BYTES TABLE WHICH IS\r
+;*     ENTERED FIRST WITH (X,Y) FOR X\r
+;*     ACCEL, THEN (Y,X) FOR Y ACCEL.\r
+;*     NOTE: IX POINTS +1 FROM OBJECT NUMBER\r
+;*\r
+;*\r
+;*A,B, & IX CHANGED\r
+;*\r
+;*PAGE 0: X1,TPTR & FLAG\r
+;*           VARIOUS MOTION BYTES\r
+;*\r
+;*STACK: 2 BYTES\r
+;*\r
+;***********************************************************\r
+GRAV:  STAA    E,WTDOG\r
+       LDX     I,15.           ;DO TOP 15 OBJECTS\r
+       LDAA    I,GRV1          ;SET UP TABLE LOOKUP\r
+       STAA    D,TPTR\r
+;\r
+;ACTUALLY 13, BUT #16 ALWAYS FOLLOWS #15 SO NO NEED TO TOUCH IT\r
+;AND OBJECTS 4&3 ARE SKIPED (THEY FOLLOW 1 & 2)\r
+;\r
+1$:    STX     D,X1            ;SAVE IX FOR READING OBJ #\r
+       LDAB    D,X1+1\r
+       CMPB    I,STION1+1      ;ALWAYS MOVE STATIONS\r
+       BEQ     2$              ;ELSE....\r
+       CMPB    I,SHIPHF+2              ;SHIP HALF?\r
+       BNE     4$              ;IF NO, DO IT\r
+       DEX             ;IF YES, SKIP BOTH (YEP!)\r
+       DEX\r
+       BRA     1$\r
+;\r
+;IN GRAVITY GAMES, GRAVITY DOES NOT AFFECT THE SHIP\r
+;UNTILL SOME ACCEL. HAS OCCURED. THE FOLLOWING BITS\r
+;INDICATE THAT\r
+;\r
+4$:    LDAA    I,40            ;GUESS SHIP 0\r
+       DECB\r
+       BEQ     8$\r
+       LDAA    I,20\r
+       DECB                    ;IS IT SHIP 1\r
+       BNE     9$              ;NOT SHIP 1 EITHER\r
+8$:    BITA    D,OPEN2         ;IS THE NO GRAV BIT LIT UP?\r
+       BNE     5$              ;IF YES, NO GRAV FOR THIS GUY\r
+9$:    LDAA    D,OPEN          ;TIME FOR OTHERS\r
+       BITA    I,20            ;NO GRAV?\r
+       BNE     6$              ;NO\r
+       LSRA                    ;STRONG?\r
+       BCS     2$              ;YES\r
+       LDAA    D,TIME          ;NO, CHECK TIME\r
+       ANDA    I,03\r
+       BNE     6$              ;NOT TIME\r
+2$:    LDAA    X,STAT-1        ;ACTIVE?\r
+       BMI     10$\r
+5$:    DEX                     ;CHECK NEXT OBJECT\r
+       BNE     1$\r
+6$:    JMP     BOOM            ;DO WHITE NOSE NOW\r
+10$:   CLRB\r
+       LDAA    X,OBJH-1        ;H POSITION\r
+       SUBA    I,80            ;NORMAL TO SCREEN CENTER\r
+       BCC     12$\r
+       NEGA                    ;!A!\r
+       INCB                    ;QUAD #\r
+12$:   ASLB                    ;TO SECOND BIT\r
+       LSRA                    ;USE TOP SIGNIFICANT BITS\r
+       LSRA\r
+       LSRA\r
+       STAA    D,FLAG\r
+       LDAA    X,OBJV-1        ;GET VERT NOW\r
+       SUBA    I,80            ;NORMAL V\r
+       BCC     14$\r
+       NEGA                    ;!A!\r
+       INCB                    ;QUAD # (0=I, 1=IV, 2=II, 3=III)\r
+14$:   ASLA\r
+       ANDA    I,0F0           ;PUT SIGNIFICANT BITS INTO TOP 4\r
+       ORAA    D,FLAG          ;GET OTHERS BACK\r
+       STAA    D,TPTR+1\r
+       STX     D,X1\r
+       LDX     D,TPTR          ;GET GRAV # POINTER\r
+;MOVE SPACE STATIONS\r
+       LDAA    D,OPEN\r
+       BITA    I,8             ;STATIONS SELECTED?\r
+       BEQ     3$              ;IF NO, THE ROCK FOLLOWS NORMAL GRAV (IF ANY)\r
+       LDAA    D,X1+1          ;GRAVITY ALWAYS FOR SPACE STATIONS\r
+       CMPA    I,STION1+1      ;SPACE STATIONS ARE 15 &14\r
+       BGE     16$             ;ALWAYS POSITIVE\r
+3$:    LDAA    D,OPEN\r
+       BITA    I,40            ;NEG GRAV?\r
+       BEQ     16$\r
+13$:   COMB                    ;YES\r
+16$:   STAB    D,FLAG\r
+       LDAB    X,GRV2          ;GET Y ACCEL\r
+       LSR     E,FLAG\r
+       BCS     15$             ;???\r
+       NEGB\r
+15$:   JSR     DIV32           ;B/32 --> A&B\r
+       LDX     D,X1\r
+       ADDB    X,OBJVVL-1\r
+       ADCA    X,OBJVV-1\r
+       BVC     20$             ;NO OVERFLOW, OK\r
+       ASLA                    ;GET PERVERTED SIGN INTO CARRY\r
+       LDAA    I,7F            ;ASSUME WAS POSITIVE, SET 7FFF\r
+       LDAB    I,0FF\r
+       BCS     20$             ;BRANCH IF WAS POSITIVE\r
+       COMA                    ;ELSE WAS NEG, SET 8000\r
+       COMB\r
+20$:   STAB    X,OBJVVL-1\r
+       STAA    X,OBJVV-1\r
+;NOW SWAP NIBBLES, GET X\r
+       LDAA    D,TPTR+1        ;SWAP!!!\r
+       TAB\r
+       ANDB    I,0F0           ;CLR BOTTOM B\r
+       ABA                     ;SHIFT TOP UP 1\r
+       ROLA\r
+       ROLA\r
+       ROLA\r
+       ROLA\r
+       STAA    D,TPTR+1\r
+       LDX     D,TPTR\r
+       LDAB    X,GRV2\r
+       LDX     D,X1\r
+       LSR     E,FLAG\r
+       BCS     27$             ;???\r
+       NEGB\r
+27$:   JSR     DIV32\r
+       ADDB    X,OBJHVL-1\r
+       ADCA    X,OBJHV-1\r
+       BVC     30$\r
+       ASLA\r
+       LDAA    I,7F            ;OVERFLOW CHECK AS ABOVE\r
+       LDAB    I,0FF\r
+       BCS     30$\r
+       COMA\r
+       COMB\r
+30$:   STAB    X,OBJHVL-1\r
+       STAA    X,OBJHV-1\r
+       JMP     5$              ;NEXT\r
+       \r
+\f\r
+       .SBTTL  MOVE ROUTINE\r
+;**********************************************\r
+;MOTION ROUTINE, WALL CHECK, COLLISION DETECT\r
+;*\r
+;* MOVES ALL BUT ALT TWO SHIP HALFS\r
+;* OBJECTS 2 & 3 ARE MOVED BY\r
+;*'KEEPUP' ROUTINE. AFTER EACH OBJECT IS MOVED,\r
+;*IT IS CHECKED FOR A COLLISION WITH THE SUN OR\r
+;*EITHER SHIP.\r
+;*\r
+;*EVERYBODY (A,B & IX) CHANGED\r
+;*\r
+;*PAGE 0:  MOTION BYTES CHANGED\r
+;*        TPTR (2 BYTES),TSTVV,TSTVVL,TSTHV,TSTHVL\r
+;*        FLAG,X1,X2\r
+;*        AND ANY LISTED BELOW IN COLLISION LIST\r
+;*\r
+;*STACK (WORST CASE):  9 BYTES (INCLUDES COLLISION)\r
+;*\r
+;**********************************************\r
+MOTION:        LDX     I,15.           ;\r
+;\r
+;OBJECTS 2 & 3 (ALT SHIP HALF ) DONT MOVE\r
+;\r
+MOVE:  STX     D,X2\r
+       LDAB    D,X2+1                  ;OBJECT NUMBER\r
+       CMPB    I,3\r
+       BNE     1$\r
+       DEX\r
+       DEX             ;SKIP BOH SHIP HALFS\r
+       BRA     MOVE\r
+1$:    LDAA    X,STAT          ;SKIP IF NOT ACTIVE\r
+       BMI     MANDD\r
+MUNXT: DEX\r
+       CPX     I,0FFFF\r
+       BNE     MOVE\r
+       JMP     KEEPUP          ;IF OBJECT IS NOT MOVING, RETURN\r
+;TEMP TO ALWAY BOUNCE SPACE STATIONS\r
+MANDD: CMPB    I,STION1        ;IS THIS A ROCK OR STATION?\r
+       BGT     WALCKE\r
+       LDAA    D,OPEN          ;WRAP OR BOUNCE?\r
+       BPL     WALCKE          ;IF -, WRAP\r
+1$:    LDAA    X,OBJV\r
+       CMPA    I,BOS           ;BOTTOM LINE\r
+       BCS     IVRTA           ;BRANCH IF BELOW\r
+       CMPA    I,TOS           ;TOP LINE\r
+       BCC     IVRTA           ;BRANCH IF ABOVE\r
+       LDAA    X,OBJH\r
+       CMPA    I,LOS           ;RIGHT SIDE\r
+       BCS     IVRT            ;BRANCH IF RIGHT\r
+       CMPA    I,ROS           ;LEFT SIDE\r
+       BCC     IVRTL           ;BRANCH IF LEFT\r
+       BRA     WALCKE\r
+IVRT:  LDAA    X,OBJHV\r
+       BPL     WALCKE\r
+NH:    COM     X,OBJHV\r
+       COM     X,OBJHVL\r
+                               ;SHIPS REFLECT PIC\r
+       LDAB    D,X2+1\r
+       CMPB    I,2\r
+       BGE     WALCKE\r
+       INX\r
+       JSR     LRBOUND\r
+       DEX\r
+       BRA     WALCKE\r
+IVRTL: LDAA    X,OBJHV\r
+       BPL     NH\r
+       BRA     WALCKE\r
+IVRTA:  CMPA   I,4C\r
+       BCC     TP\r
+       LDAA    X,OBJVV\r
+       BPL     WALCKE\r
+IV:    COM     X,OBJVV\r
+       COM     X,OBJVVL\r
+       LDAB    D,X2+1\r
+       CMPB    I,2\r
+       BGE     WALCKE\r
+       INX\r
+       JSR     VBOUND\r
+       DEX\r
+       BRA     WALCKE\r
+TP:    LDAA    X,OBJVV\r
+       BPL     IV\r
+WALCKE:        LDAB    X,OBJHV\r
+       STAB    D,HOLDHV\r
+       JSR     E,DIV32\r
+       STAA    D,TSTHV \r
+       STAB    D,TSTHVL        ;SAVE DIVIDED VELOCITY FOR DECEL\r
+       ADDB    X,OBJHL\r
+       ADCA    X,OBJH\r
+       STAB    X,OBJHL\r
+       STAA    X,OBJH          ;UPDATE HORIX POSN.\r
+       DECA                    ;TO CENTER\r
+       STAA    D,TSTH          ;SAVE FOR COLLISION CHECK\r
+       LDAB    X,OBJVV\r
+       STAB    D,HOLDVV\r
+       JSR     E,DIV32\r
+       STAA    D,TSTVV\r
+       STAB    D,TSTVVL\r
+       ADDB    X,OBJVL\r
+       ADCA    X,OBJV\r
+       STAB    X,OBJVL\r
+       STAA    X,OBJV          ;UPDATE VERT. POSN.\r
+       DECA\r
+       STAA    D,TSTV          ;SAVE FOR COLLISION CHECK\r
+;GAMES 3&4 DECELERATE TO 10 (OR IF DAMMAGED)\r
+       LDAA    D,X2+1          ;SHIP?\r
+       DECA\r
+       BGT     DONE            ;NO\r
+       LDAA    X,STAT          ;DECAL?\r
+       BITA    I,6             ;DAMMAGED?\r
+       BNE     3$\r
+       LSRA            ;THRUST ON\r
+       BCS     DONE            ;NO\r
+       LDAA    D,OPEN2         ;PARTIAL BRAKE\r
+       LSRA\r
+       BCC     DONE\r
+3$:    LDAA    X,OBJVV\r
+       BPL     1$\r
+       NEGA\r
+1$:    CMPA    I,CRIPLE                ;MAX SPEED FOR CRIPLE\r
+       BGT     DECEL\r
+       LDAA    X,OBJHV\r
+       BPL     2$\r
+       NEGA\r
+2$:    CMPA    I,CRIPLE\r
+       BLE     DONE\r
+DECEL: LDAA    X,OBJHV         ;THIS SECTION SLOWS DOWN THE SHIP\r
+       LDAB    X,OBJHVL        ;FOR GAMES 3&4. ALSO WHEN DAMMAGED\r
+       SUBB    D,TSTHVL\r
+       SBCA    D,TSTHV\r
+       BNE     1$\r
+       CLRB\r
+1$:    STAA    X,OBJHV\r
+       STAB    X,OBJHVL\r
+       LDAA    X,OBJVV\r
+       LDAB    X,OBJVVL\r
+       SUBB    D,TSTVVL\r
+       SBCA    D,TSTVV\r
+       BNE     2$\r
+       CLRB\r
+2$:    STAA    X,OBJVV\r
+       STAB    X,OBJVVL\r
+DONE:\r
+       LDAA    D,GMSTAT\r
+       BEQ     2$\r
+;\r
+;HIT SUN CHECK\r
+;\r
+       STX     D,X1            ;IN CASE OF CALL TO COLCHK\r
+       LDAA    D,TSTH\r
+       CMPA    I,SUN+DIAM0+3   ;@ SUN\r
+       BHI     COLCHK\r
+       CMPA    I,SUN-DIAM0-3\r
+       BLS     COLCHK\r
+       LDAA    D,TSTV\r
+       CMPA    I,SUN+DIAM0+3\r
+       BHI     COLCHK\r
+       CMPA    I,SUN-DIAM0-4\r
+       BLS     COLCHK\r
+       LDAA    D,X1+1          ;SUN HIT, OK TO START EXPLOSION?\r
+       CMPA    I,1             ;SPACE SHIP (NEVER ENTERS WITH 2 OR 3)\r
+       BGT     1$\r
+       LDAA    X,STAT          ;ALREADY DEAD?\r
+       BITA    I,60\r
+       BNE     2$              ;OR HYPER SPACE?\r
+       LDAA    I,46\r
+       STAA    D,FLAG\r
+       JSR     EXPST           ;EXPLODE\r
+       CLR     X,FUEL0-1\r
+       CLR     X,SHOT0-1\r
+2$:    JMP     MUNXT\r
+1$:    CMPA    I,11.           ;ELSE BULLET\r
+       BGT     2$\r
+       JSR     CLROBJ\r
+       BRA     2$\r
+       .SBTTL  COLLISION CHECK\r
+;***************************************\r
+;* COLLISION CHECK ROUTINE\r
+;* CHECKS THE OBJECT POINTED TO BY THE IX\r
+;* (IX SET BY ABOVE MOVE ROUTINE) WITH BOTH\r
+;* SHIPS LOOKING FOR A HIT.\r
+;*\r
+;* NOTE: THIS ROUTINE TO BE ENTERED FROM MOTION\r
+;*      ROUTINE ONLY.\r
+;*\r
+;* IX SET TO CONTENTS OF X2, A & B  CLOBERED\r
+;*\r
+;* PAGE 0:\r
+;*     VARIOUS OBJ MOTION AND STATUS WORDS CHANGED\r
+;*     X2, X1 CHANGED IF EXPLOSION STARTED\r
+;*\r
+;*\r
+;* STACK SPACE: 9 BYTES\r
+;*             (WORST CASE IF EXPLOSION STARTED)\r
+;*\r
+;**************************************************\r
+COLCHK:        LDX     I,STION2                ;INIT FOR SCAN OF SHIPS & STATIONS\r
+CHKLP: STX     D,X1\r
+       LDAB    D,X1+1\r
+       CMPB    I,STION1-1\r
+       BNE     3$\r
+       LDX     I,SHIP1         ;SHIP NOW\r
+       BRA     CHKLP\r
+3$:    LDAB    D,TSTH\r
+       CLR     E,FLAG\r
+       TBA\r
+       SUBA    X,OBJH\r
+       BPL     1$              ;TAKE ABS VAL OF HORZ DISPLACEMENT\r
+       NEGA\r
+1$:    CMPA    I,DIAM0         ;NOSE HIT?\r
+       BHI     2$\r
+       INC     E,FLAG\r
+       BRA     CHKV\r
+2$:    CMPA    I,DIAM-1        ;SHIP HIT\r
+       BLS     CHKV\r
+CNEXT: CPX     I,0\r
+       BEQ     CNOT\r
+       DEX\r
+       BRA     CHKLP\r
+CNOT:  LDX     D,X2            ;RESTORE X\r
+       JMP     MUNXT           ;NEXT MOVE\r
+CHKV:  CPX     D,X2            ;SEE IF YOU ARE ME\r
+       BEQ     CNEXT           ;IF SO, KEEP SCANNING\r
+       LDAA    D,TSTV\r
+       LDAB    D,X2+1          ;SPACE STATION?\r
+       CMPB    I,STION1\r
+       BLT     3$\r
+       SUBA    I,04            ;MOVE STATION V CENTER\r
+3$:    SUBA    X,OBJV\r
+       TAB\r
+       BPL     1$\r
+       NEGA\r
+1$:    CMPA    I,DIAM0         ;NOSE HIT?\r
+       BHI     2$\r
+       INC     E,FLAG          ;IF 2, NOSE HIT\r
+       BRA     SLORET\r
+2$:    CMPA    I,DIAM-1\r
+       BLS     SLORET\r
+       LDAB    D,OPEN          ;IS THIS A ROCK OR STATION?\r
+       BITB    I,8             ;ARE STATIONS ON?\r
+       BEQ     CRET            ;IF ROCK, NO EXTENDED CHECK\r
+       LDAB    D,X2+1          ;STATION\r
+       CMPB    I,STION1\r
+       BLT     CRET\r
+       CMPA    I,2*DIAM-2      ;STATIONS ARE 2 TIMES AS TALL\r
+       BLS     SLORET\r
+CRET:  LDAB    D,TSTH\r
+       BRA     CNEXT\r
+;*************************************************\r
+;* OBJECT HIT --- START EXPLOSION\r
+;* ON ENTRY: X2 = OTHER OBJECT #, X1 = SHIP HIT (OR BULLET)\r
+;***************************************************\r
+SLORET:\r
+       LDAB    X,STAT\r
+       BPL     CNOT            ;SHIP IS OFF\r
+;\r
+;BULLET TO STATION (OR ROCK) HIT CHECK\r
+;\r
+       LDAB    D,X1+1          ;IS THIS A SHIP OR A BULLET\r
+       CMPB    I,SHIP1\r
+       BLE     3$              ;IF SHIP, CONTINUE TO REGULAR ROUTINE\r
+       LDAB    D,X2+1          ;IF HERE, SOMETHING HIT STATION\r
+       CMPB    I,BULT0         ;IS OTHER A BULLET?\r
+       BLT     CNOT            ;IF NO, WE DONT CARE\r
+       CMPB    I,BULT3\r
+       BGT     CNOT\r
+       LDX     D,X2            ;REMOVE BULLET\r
+       JSR     CLROBJ\r
+       LDAB    D,OPEN          ;STATION OR ROCK?\r
+       BITB    I,8             ;IF ROCK...\r
+       BNE     CNOT            ;BLOW UP, ELSE END\r
+       LDX     D,X1\r
+       LDAA    I,2             ;SET ACTIVE & EXPLODING\r
+       BITA    X,STAT          ;ALREADY EXPLODING?\r
+       BNE     CNOT\r
+       ORAA    X,STAT          ;IF NOT SET BIT\r
+       STAA    X,STAT\r
+       JSR     EXPST2          ;SOUND OUT\r
+       BRA     CNOT\r
+3$:    LDAB    D,X1+1\r
+       EORB    D,X2+1                  ;IF BIT 1 A 1, DID NOT HIT SELF\r
+;\r
+; SINCE THE EVEN OBJ SHIP SHOOTS BULLETS WITH EVEN OBJ #,\r
+; AND ODD FOR ODD, IF A 1 IS IN BIT 1, THEN THEY WERE\r
+; NOT BOTH EVEN OR BOTH ODD.\r
+; THIS CHECK IS SO THAT YOU DO NOT SHOOT YOURSELF\r
+; UPON FIRST FIRING THE BULLET\r
+;\r
+       LSRB                            ;SET?\r
+       BCS     10$\r
+;\r
+;DONT COLLIDE WITH OWN EXPLOSION\r
+;\r
+       LDAA    D,X2+1                  ;GET OBJECT NUMBER\r
+       CMPA    I,EXPP0-1\r
+       BLT     9$                      ;NOT EXPLOSION\r
+       CMPA    I,EXPP0+1\r
+       BLE     CNOT                    ;IS EXPLOSION SO MUST BE OWN (IF HERE)\r
+9$:    LDX     D,X2                    ;CHECK "AGE" OF BULLET\r
+       LDAB    X,STAT\r
+       SUBB    D,TIMES                 ; REMOVE INITIAL COUNT\r
+       ADDB    I,4                     ;IF MORE THAN 4 COUNTS OLD...\r
+       BPL     14$\r
+10$:   LDX     D,X2                    ;GOOD HIT. GET OTHER'S STAT & ...\r
+       BEQ     12$             ;SHIP HIT SHIP? IF YES, DON'T CLEAR\r
+       CPX     I,1             ;OTHER SHIP (IX=0 OR 1)\r
+       BEQ     12$\r
+       LDAA    D,X2+1          ;GET OTHER OBJECTS NUMBER (WHAT IT IS!)\r
+       CMPA    I,STION1                ;DONT HIT SPACE STATIONS\r
+       BGE     12$\r
+       CMPA    I,EXPP0-1               ;OR EXPLOSIONS\r
+       BGT     12$             ;THIS WOULD BE GARBAGE\r
+11$:   JSR     CLROBJ          ;REMOVE BULLET\r
+12$:   LDAB    X,STAT          ;OTHER IN HYPER SPACE OR INACTIVE\r
+       BITB    I,60            ;HYPER SPACE OR DESTROYED\r
+       BEQ     13$\r
+14$:   JMP     CNOT\r
+13$:   CMPA    I,STION1                ;STATION?\r
+       BLT     BANG2\r
+       LDX     D,X1\r
+       JMP     STATHIT\r
+BANG2:\r
+       LDX     D,X1            ;SHIP STATUS\r
+       LDAA    X,STAT          ;IS THIS SHIP IN HYPER OR GONE?\r
+       BITA    I,60\r
+       BNE     19$\r
+       LDAA    D,FLAG          ;DIRECT HIT?\r
+       SUBA    I,2\r
+       BNE     20$\r
+15$:   LDAA    I,46            ;DESTROYED\r
+       STAA    D,FLAG\r
+       BSR     EXPST\r
+       CLR     X,SHOT0-1       ;SHOTS OFF\r
+       CLR     X,FUEL0-1\r
+19$:   JMP     CNOT\r
+20$:   LDAA    X,STAT          ;PARTIAL DAMMAGE\r
+       ANDA    I,6             ;LOOK AT DAMMAGE\r
+       CMPA    I,6             ;IF 6, JUST NOSE LEFT SO..\r
+       BEQ     15$             ;DESTROY\r
+       TAB                     ;GET RANDOM DAMMAGE (SAVE A)\r
+       ORAA    D,POLY          ;GET DAMMAGE\r
+       ANDA    I,6             ;LOOK AT DAMMAGE BITS\r
+       CBA                     ;NO CHANGE?\r
+       BEQ     15$             ;IF NO CHANGE, BLOW UP\r
+       STAA    D,FLAG\r
+       TAB\r
+       ORAA    X,STAT          ;UPDATE STATUS\r
+       STAA    X,STAT\r
+       CMPB    I,6             ;IF 6, NO FUEL LEFT\r
+       BNE     25$\r
+       CLR     X,FUEL0\r
+25$:   BSR     EXPST\r
+       BRA     19$\r
+EXPST: LDAB    D,X1+1                  ;START AN EXPLOSION\r
+       ADDB    I,EXPP0+1               ;OFFSET TO EXPLOSION\r
+       STAB    D,X2+1                  ;POINT X2 TO THE EXPLOSION BYTES\r
+       INC     E,X1+1                  ;CORRECT X1 FOR OTHER ROUTINES\r
+       LDX     D,X2\r
+       LDAA    I,80                    ;SET STATUS TO ACTIVE\r
+       STAA    X,STAT-1                        ;START EXP.\r
+       JSR     STATOBJ                 ;START FIRST EXP GOING WHERE SHIP WAS\r
+       LDAA    X,OBJV-1                ;CENTER\r
+       ADDA    I,5\r
+       STAA    X,OBJV-1\r
+       LDAA    X,OBJH-1\r
+       SUBA    I,4\r
+       STAA    X,OBJH-1                ;COMPENSATE FOR STATOBJ\r
+       LDAA    I,EXPIC                 ;FIRST EXPLOSION PIC\r
+       LDAB    D,FLAG          ;FULLY DAMAGED SHIP?\r
+       CMPB    I,46            ;IF YES, ITS 6\r
+       BEQ     1$              ;IF YES, FULL EXPLOSION SEQUENCE\r
+       ADDA    I,8.            ;IF NO, SHORT SEQUENCE\r
+1$:    STAA    X,DIR-1\r
+       LDX     D,X1            ;POINT BACK TO SHIP\r
+       ORAB    X,STAT-1\r
+       ANDB    I,0FE           ;THRUST OFF\r
+       STAB    X,STAT-1        ;SHIP IS DESTROYED\r
+;\r
+;EXPLOSION SOUND START\r
+;\r
+EXPST2:        LDAA    X,OBJH-1                ;GET HORIZ POSITION\r
+       TAB\r
+       COMB\r
+       ANDB    I,0F0\r
+       LSRA\r
+       LSRA\r
+       LSRA\r
+       LSRA                            ;RIGHT CHANNEL LEVEL AVAT\r
+       ADDA    D,SNDLR                 ;ADD TO SOUND LEVEL\r
+       BITA    I,10\r
+       BEQ     70$\r
+       LDAA    I,0F                    ;MAX LEVEL\r
+70$:   STAA    D,SNDLR                 ;RIGHT CHANNEL\r
+       ADDB    D,SNDLL\r
+       BCC     75$\r
+       LDAB    I,0F0\r
+75$:   STAB    D,SNDLL                 ;LEFT LEVEL\r
+       RTS                     ;DONE (FOR NOW)\r
+;SPACE STATION HIT\r
+STATHIT:\r
+       LDAA    D,OPEN          ;STATIONS OFF\r
+       BITA    I,8\r
+       BEQ     1$              ;MUST HAVE HIT ROCK\r
+       LDAB    D,X1+1          ;GET OBJECT HIT #       \r
+       EORB    D,X2+1          ;OWN SHIP ?\r
+       LSRB                    ;PUT BIT IN CARRY\r
+       BCC     2$              ;IF BIT 1 & 0, YES\r
+1$:    JMP     BANG2           ;BLOW UP THE SHIP\r
+2$:    LDAB    X,STAT\r
+       BITB    I,60            ;SAVE FOR LATER\r
+       BNE     3$\r
+       LDAA    I,18.           ;RESET FUEL & SHOTS\r
+       STAA    X,SHOT0\r
+       LDAA    I,63\r
+       STAA    X,FUEL0\r
+       ANDB    I,80\r
+       STAB    X,STAT\r
+       CLR     X,OBJVV\r
+       CLR     X,OBJHV\r
+3$:    JMP     CNOT\r
+\f\r
+       .SBTTL LOOKUP TABLES FOR  SIN & COS\r
+CKM5:  .BYTE   0D5             ;CKSUM 7800-7BFF\r
+;\r
+;COSINE TABLE\r
+;\r
+TBL2:  .BYTE   127.,125.,115.,100.,80.,56.,28.,0\r
+       .BYTE   -28.,-56.,-80.,-100.,-115.,-125.,-127.\r
+       .BYTE   -125.,-115.,-100.,-80.,-56.,-28.,0\r
+       .BYTE   28.,56.,80.,100.,115.,125.,127.\r
+\f\r
+FILR   =MODTBL-.\r
+       .REPT   FILR\r
+       .BYTE   0\r
+       .ENDR\r
+       .SBTTL  MODIFICATION TABLES\r
+;\r
+;**********************************************************\r
+;*THE FOLLOWING 7 TABLES MUST LIE IN THE SAME PAGE\r
+;**********************************************************\r
+;\r
+;GAME # VS MOD WORD TABLE (STORED INTO OPEN)\r
+;\r
+MODTBL:        .BYTE   2A,2A,2A,2,2,2,2,2,2,3\r
+;\r
+;SECOND OPTIONS (STORED INTO OPEN2)\r
+;\r
+MODTB2:        .BYTE 80,80,80,1,1,0,0,0,0,0\r
+;ROTATION SPEEDS\r
+ROTBL: .BYTE   7,3,1,3,3,1,7,3,3,3\r
+;ACCEL SPEED\r
+ACTBL: .BYTE   1,1,1,3,3,1,7,3,1,1\r
+;BULLET SPEED\r
+BULTBL: .BYTE  3,1,1,1,0,0,3,2,1,2\r
+;BULLETS DURATION\r
+TIMTBL:        .BYTE   0C0,97,97,97,0A0,0A0,0C0,0B0,97,0AA\r
+;MAXIUM VELOCITY\r
+MAXVTBL:.BYTE 3,2,1,30,01,01,65,45,25,01\r
+;MOVE THE TABLE TO BOTTOM OF PAGE\r
+;****************************************\r
+;THE FOLLOWING 3 TABLES MUST LIE IN THE\r
+;SAME PAGE.\r
+;****************************************\r
+;\r
+;ROTATION TABLE. CONVERTS # 0-27. (DIRECTION INFO)\r
+;TO PICTURE INFO AS NEEDED BY HARDWARE AS FOLLOWS:\r
+;      D7 = UP/DOWN FLIP BIT\r\r
+;      D6 = LEFT/RIGHT FLIP BIT\r
+;      D5,D4,&D3 ARE ALT PIC SELECT\r
+;      D2 - D0 = PICTURE INFO (8 ROTATIONS)\r
+;\r
+ROTTBL:\r
+       .BYTE 0,1,2,3,4,5,6,7,46,45,44,43,42,41,40\r
+       .BYTE 0C1,0C2,0C3,0C4,0C5,0C6,0C7,86,85,84,83,82,81\r
+;\r
+;HALFSPEC TABLE - USED TO SET BITS ACCORDING TO OBJECT #\r
+;SEE DEFF OR 'HLFSP' ON PAGE 3\r
+;\r
+HSTBL: .BYTE   0,80,0C0,80,0C0,1,1,1,1,1,1,1,1,3,3,3,3\r
+;\r
+;MASK TABLE-USED TO MASK OUT UNWANTED STATUS BITS FROM\r
+;OBJECTS LIKE SHELLS, EXPLOSIONS, ETC SO THE REST OF THE\r
+;BYTES MAY BE A TIMER\r
+;\r
+MSKTBL:        .BYTE 0,0FF,0FF,0FF,0FF,80,80,80,80,80,80,80,80,80,80,80,80\r
+;\r
+;TIME PER COIN.  FORMAT IS MINUTES, SECONDS IN BLD\r
+;\r
+TIMOPT:        .WORD   0030            ;30 SECONDS\r
+       .WORD   0100            ;1 MINUTE\r
+       .WORD   0130            ;1 MINUTE, 30 SECONDS\r
+       .WORD   0200            ;2 MINUTES\r
+       .WORD   0230            ;2 MINUTES, 30 SECONDS\r
+       .WORD   0300            ;3 MINUTES\r
+       .WORD   0330            ;3 MINUTES, 30 SECONDS\r
+       .WORD   0400            ;4 MINUTES\r
+;\r
+;STAR OUTPUT TABLE MUST END WITH 00\r
+;\r
+STRTBL:        .WORD 314A,32AB,3051,31AF,31A2,3082,30D5,331B,3169,3065\r
+       .WORD 324F,31B8,309E,3310,317C,306C,3274,30AB,3187,3074\r
+       .WORD 336A,30BA,3154,325C,30D3,3162,3303,31E4,30E6,32CE\r
+       .WORD 3216,30EB,3264,32D4\r
+STBLE: .WORD 0\r
+\fFILR  =START-.\r
+       .REPT FILR\r
+       .BYTE 0\r
+       .ENDR\r
+       .=7C00\r
+\r
+       .SBTTL PROGRAM ENTRY AND SELF TEST ROUTINE\r
+;****************************************************\r
+;*\r
+;* PROGRAM ENTRY POINT AND SELF TEST ROUTINE START\r
+;*\r
+;******************************************************\r
+START:\r
+       LDS     I,TOSP          ;SET STACK\r
+       CLRA\r
+       LDX     I,TOO\r
+       STAA    E,WTDOG\r
+1$:    STAA    X,0             ;CLEAR ALL WORKING RAM\r
+       DEX\r
+       CPX     I,PLAYF-1\r
+       BNE     1$\r
+       STAA    E,WTDOG\r
+       LDX     I,100           ;NOW PG 0\r
+2$:    STAA    X,0\r
+       DEX\r
+       BNE     2$\r
+       CLR     E,NOISE         ;ALL SOUNDS OFF\r
+       CLR     E,AMPL          ;VOLUME TO 0\r
+       LDAA    E,TSTSW\r
+       BITA    I,TSTBIT        ;SELF TEST ON?\r
+       BEQ     STEST\r
+       LDX     I,100           ;DID RAM CLEAR\r
+3$:    LDAA    X,0\r
+       BNE     START           ;IF NO, DO SELF TEST\r
+       DEX\r
+       BNE     3$\r
+       LDAA    I,0FF           ;INITIALIZE SWITCH DEBOUNCE\r
+       STAA    D,SWT1\r
+       STAA    D,SWT2\r
+       LDAA    I,3             ;START ROCK\r
+       STAA    D,ROCKD\r
+       JMP     GO              ;NOT SELF TEST SO RUN\r
+STEST:\r
+;\r
+;PAGE 0 TEST\r
+;\r
+       LDX     I,HTRSTL        ;LEDS OFF\r
+       LDAA    I,0FF\r
+       STAA    X,3             ;PANEL OFF\r
+       STAA    X,5\r
+       STAA    X,4\r
+       CLRA\r
+       STAA    X,0             ;HEAT RESET OFF\r
+       STAA    X,6             ;HYPER SPACE OFF\r
+       LDAA    I,08            ;INIT AL RAM TO FIRST "OLD" PATTERN\r
+       LDX     I,TOO\r
+       STAA    E,WTDOG\r
+1$:    STAA    X,0\r
+       DEX\r
+       CPX     I,PLAYF-1\r
+       BNE     1$\r
+       LDX     I,0FF\r
+2$:    STAA    X,0\r
+       DEX\r
+       BNE     2$\r
+       LDAA    I,11            ;FIRST "NEW" PATTERN\r
+5$:    LDX     I,0\r
+10$:   STAA    X,0\r
+       TAB\r
+       LSRB                    ;RECONSTRUCT OLD PATTERN\r
+       EORB    X,1             ;STILL OLD?\r
+       BNE     EORRA\r
+       TAB                     ;GET NEW IN B\r
+       EORB    X,0             ;OLD STILL HOLDING?\r
+       BNE     EORRA\r
+       STAA    E,WTDOG\r
+       INX\r
+       CPX     I,0FF\r
+       BNE     10$             ;DONE?\r
+       STAA    X,0             ;DONT FORGET LAST\r
+       TAB                     ;GET  OLD PATTERN FOR NEXT NEW\r
+       ASLA                    ;SHIFT TO NEXT\r
+       BCC     5$              ;NOT DONE\r
+       CLRB                    ;NO ERRORS\r
+                               ;FALL THROUGH\r
+EORRA: LDX     I,HTRSTL\r
+       CLRA\r
+       BITB    I,0F            ;LSB ERROR?\r
+       BEQ     10$\r
+       ORAA    I,1             ;SET ERROR FLAG LSB\r
+       STAA    X,1             ;HEAT RESET LED ON FOR LSB\r
+10$:   BITB    I,0F0           ;ANY MSB TROUBLE?\r
+       BEQ     20$\r
+       ORAA    I,2             ;TURN ON MSB FLAG\r
+       STAA    X,7             ;HYPER LED FOR MSB\r
+20$:   ANDA    I,3             ;ONLY THE ERRORS\r\r
+       LDX     I,2000          ;DELAY COUNTER\r
+       LDAB    I,0E0           ;HIGH NOTE FOR GOOD\r
+       LSRA                    ;ERROR 1\r
+       BCC     30$\r
+       LDAB    I,20            ;LOW FOR BAD\r
+30$:   STAB    E,NOTE          ;OUTPUT\r
+       LDAB    I,0FF           ;SOUND ON\r
+       STAB    E,AMPL\r
+31$:   STAA    E,WTDOG         ;DELAY LOOP ON NOTE\r
+       DEX\r
+       BNE     31$\r
+       CLRB                    ;SILENT\r
+       STAB    E,AMPL\r
+       LDX     I,4000          ;OFF DELAY LOOP\r
+32$:   STAA    E,WTDOG\r
+       DEX\r
+       BNE     32$\r
+       LDAB    I,0E0           ;OTHER NOTE\r
+       LSRA\r
+       BCC     40$\r
+       LDAB    I,20\r
+40$:   STAB    E,NOTE\r
+       LDX     I,2000          ;ON DELAY TIME FOR OTHER RAM\r
+       LDAB    I,0FF           ;TURN ON\r
+       STAB    E,AMPL          ;SOUND ON\r
+41$:   STAB    E,WTDOG\r
+       DEX\r
+       BNE     41$\r
+       CLRB\r
+       STAB    E,AMPL          ;TURN OFF NOW\r
+       LDAB    I,3\r
+44$:   LDX     I,7FFF          ;A DELAY BEFORE SCREEN RAM TEST\r
+45$:   STAA    E,WTDOG\r
+       DEX\r
+       BNE     45$\r
+       DECB\r
+       BNE     44$\r
+;\r
+;SCREEN RAM TEST\r
+;\r
+SCRTST:        CLR     E,FLAG          ;CLEAR THIS, NEXT INDICATOR\r
+       CLR     E,R0            ;SET TO 0 ERRORS\r
+;AS YOU CAN SEE, THIS ROUTINE ASSUMES THAT PAGE 0 IS OK\r
+       LDAA    I,11            ;SET TO "NEW" PATTERN\r
+5$:    LDX     I,PLAYF\r
+10$:   STAA    X,0\r
+       TAB                     ;GET OLD PATTERN\r
+       LSRB\r
+       EORB    X,1             ;STILL OLD?\r
+       BEQ     15$\r
+       BSR     ERRO1           ;NO, SET FOR OUTPUT AND RETURN\r
+15$:   TAB                     ;NEW HOLDING\r
+       EORB    X,0\r
+       BEQ     16$\r
+       BSR     ERROR\r
+16$:   INX\r
+       STAA    E,WTDOG\r
+       CPX     I,TOO           ;DONE?\r
+       BNE     10$\r
+       STAA    X,0             ;UPDATE LAST\r
+       TAB                     ;CONSTRUCT NEW NEXT PATTERN\r
+       ASLA\r
+       BCC     5$\r
+\r
+OUTER: LDAB    I,8\r
+       STAB    D,X3            ;PUT COUNT OF NOISES IN X3\r
+       LDAA    D,R0            ;OUTPUT ERRORS (IF ANY)\r
+       COMA\r
+       STAA    E,LEDLTCH\r
+       STAA    E,LEDST0\r
+       STAA    E,LEDST1\r
+5$:    LDAB    I,020           ;NOTE TIME, START WITH HIGH FOR GOOD\r
+       LSRA                    ;ERROR?\r
+       BCC     10$\r
+       LDAB    I,0E0           ;HIGH FOR GOOD\r
+10$:   STAB    E,NOTE\r
+       LDAB    I,0FF\r
+       STAB    E,AMPL          ;SOUND ON\r
+       LDX     I,2000\r
+15$:   STAA    E,WTDOG\r
+       DEX\r
+       BNE     15$\r
+       COMB                    ;OFF\r
+       STAB    E,AMPL\r
+       LDX     I,4000          ;OFF DELAY TIME\r
+16$:   STAA    E,WTDOG\r
+       DEX\r
+       BNE     16$\r
+       DEC     E,X3            ;DONE?\r
+       BNE     5$\r
+       BRA     ROMTST\r
+ERRO1: INC     E,FLAG          ;ERROR ON X,1\r
+ERROR:\r
+;\r
+;BAD RAM AND RECOVER SUBROUTINE\r
+;\r
+       STAA    D,X2            ;HOLD A\r
+       STX     D,X1            ;STORE IX TO GET BOTTOM 3 BITS\r
+       LDAA    D,X1+1\r
+       TST     E,FLAG\r
+       BEQ     1$\r
+       INCA\r
+1$:    ANDA    I,3             ;GOT THEM\r
+       BITB    I,0F            ;LSB ERROR?\r
+       BEQ     10$             ;NO\r
+       ORAA    I,40            ;SET BIT TO SHOW ERROR LATER\r
+10$:   BITB    I,0F0           ;MSB ERROR?\r
+       BEQ     20$\r
+       ORAA    I,80            ;SET BIT TO SHOW ERROR LATER\r
+20$:   TAB\r
+       ANDB    I,0C0           ;ISSOLATE ERROR BITS\r
+       ANDA    I,03            ;GET 3 BITS OF ADDRESS\r
+30$:   DECA\r
+       BMI     40$\r
+       LSRB\r
+       LSRB                    ;MOVE THE BITS INTO THE PROPER PLACE\r
+       BRA     30$\r
+40$:   ORAB    D,R0            ;PUT IN WITH THE REST\r
+       STAB    D,R0            ;REPLACE\r
+       CLR     E,FLAG          ;DONE, RETURN TO UNKNOWN\r
+       LDAA    D,X2            ;GET A BACK\r
+       RTS\r
+ROMTST:        LDX     I,PLAYF         ;WIDE PLAYFIELD\r
+1$:    CLR     X,0\r
+       INX\r
+       CPX     I,PLAYF+400\r
+       BNE     1$\r
+\r
+;\r
+;RAM MUST CHECK OUT GOOD TO ASSURE GOOD TEST\r
+;\r
+       LDAB    I,30            ;ASCII 0\r
+       CLR     E,R0\r
+       LDX     I,6800          ;BOTTOM\r
+10$:   STX     D,X1            ;GET END OF PASS ADDRESS\r
+       LDAA    D,X1            ;MSB + 4 = END ADDRESS\r
+       ADDA    I,4\r
+       STAA    D,X1\r
+       CLRA                    ;SUM = 0\r
+12$:   ADDA    X,0\r
+       INX\r
+       STAA    E,WTDOG         ;JUST TO KEEP RUNNING\r
+       CPX     D,X1            ;DONE WITH PASS?\r
+       BNE     12$\r
+       INCA\r
+       BEQ     13$\r
+       STX     D,X2            ;SAVE THIS ADDRESS\r
+       LDX     I,TPCPL+10      ;CLACULATE OUTPUT ADDRESS\r
+       STX     D,X3\r
+       TBA                     ;B=NUMBER OF PASS+30\r
+       ADDA    D,X3+1\r
+       STAA    D,X3+1\r
+       LDX     D,X3\r
+       STAB    X,0             ;OUTPUT ERROR NUMBER\r
+       STAB    D,R0            ;SET ERROR FLAG FOR NO 'OK'\r
+       LDX     D,X2            ;GET ADDRESS OF TESTING BACK\r
+13$:   INCB                    ;NEXT?\r
+       CMPB    I,36            ;IF 36 WERE DONE\r\r
+;30=6000-63FF, 31=6400-67FF, 32=6800-6BFF, 33=6C00-6FFF\r
+;34=7000-73FF, 35=7400-77FF, 36=END OF TEST\r
+       BNE     10$\r
+       LDAB    D,R0            ;ANY ERROS\r
+       BNE     SWTEST\r
+       LDX     I,0F0B          ;WRITE OK IF OK\r
+       STX     E,TPCPL+20\r
+;\r
+;SWITCH AND SOUND TEST\r
+;\r
+SWTEST:        LDX     I,PICTURE       ;TEST PATTERN\r
+       LDAA    I,TESTPAT               ;IN MOTION OBJECTS\r
+       STAA    X,0             ;0&1 - OUTPUT PIC\r
+       STAA    X,4\r
+       LDAA    I,70            ;NON H POSITION\r
+       STAA    X,2\r
+       ADDA    I,10\r
+       STAA    X,6\r
+       LDAA    I,25            ;NON V POSITION\r
+       STAA    X,1\r
+       STAA    X,5\r
+       LDAA    I,3             ;ALT ROM, NO STRETCH\r
+       STAA    X,3\r
+       LDAA    I,1\r
+       STAA    X,7             ;ALT ROM, STRETCH\r
+10$:   STAA    E,WTDOG\r
+       CLRA\r
+       LDX     I,HTRSTL        ;ALL LEDS ON\r
+       STAA    X,3\r
+       STAA    X,5\r
+       STAA    X,4\r
+       STAA    X,1\r
+       STAA    X,7\r
+;\r
+;GRAPHICS TEST\r
+;\r
+       CLRB                    ;OUTPUT CHAR ROM\r
+       LDX     I,PLAYF\r
+12$:   STAB    X,0\r
+       INX\r
+       INCB\r
+       BNE     12$\r
+       STAA    E,SWST0         ;BUS SET TO INPUT\r
+       LDAA    E,IN08          ;SET UP FOR XOR OF ALL SWITCHES\r
+       STAA    D,X1\r
+       LDAA    E,IN10\r
+       STAA    D,X2\r
+       LDAA    E,IN18\r
+       STAA    D,X3\r
+SWST2: LDAB    I,30            ;ASCII START SETUP\r
+       LDAA    E,PANL1         ;READ THE TOUCH SWITCHES\r
+12$:   ASLA                    ;PUSHED?\r
+       BCC     15$\r
+       INCB                    ;NO .... NEXT\r
+       CMPB    I,38            ;READ ALL?\r
+       BNE     12$\r
+       LDAA    E,PANL2         ;OTHER INPUT (8,9,& GAME RESET)\r
+       RORA                    ;GM->C,9->0,8->1\r
+       RORA                    ;GM->7,9->C,8->0\r
+       RORA                    ;GM->6,9->7,8->C\r
+       RORA                    ;SO THE BELOW LOOP WORKS\r
+13$:   ASLA                    ;SWITCH PUSHED\r
+       BCC     15$\r
+       INCB                    ;NEXT NUMBER\r
+       CMPB    I,3B            ;DONE?\r
+       BNE     13$\r
+       CLRA\r
+       STAA    E,TPCPL\r
+       BRA     20$\r
+15$:   TBA                     ;OUTPUT NUMBER OF SWITCH AND TONE\r
+       CMPA    I,3A\r
+       BNE     16$\r
+       ADDA    I,7             ;MAKE NOTHING AN 'A'\r
+16$:   STAA    E,TPCPL\r
+       ASLB                    ;CREATE A NOTE 00 - A0 IN STEPS OF 10\r
+       ASLB\r
+       ASLB                    ;DONT WORRY ABOUT THE ASCII 30...\r
+       ASLB                    ;IT SHIFTS OUT THE END\r
+       ADDB    I,20\r
+       STAB    E,NOTE\r
+       LDAA    I,0FF\r
+20$:   STAA    E,AMPL          ;SOUND OUT OR NOT\r
+       STAA    E,WTDOG\r
+SWLP:  LDAA    E,IN08\r
+       TAB\r
+       EORA    D,X1            ;ANY CHANGE?\r
+       BEQ     30$\r
+       STAB    D,X1\r
+       BRA     SOUNB\r
+30$:   LDAA    E,IN10\r
+       TAB\r
+       EORA    D,X2\r
+       BEQ     40$\r
+       STAB    D,X2\r
+       BRA     SOUNB\r
+40$:   LDAA    E,IN18\r
+       TAB\r
+       EORA    D,X3\r
+       BEQ     50$\r
+       STAB    D,X3\r
+       BRA     SOUNB\r
+50$:   LDAA    E,PANL2         ;READ HEAT RESET\r
+       CLRB                    ;GUESS NO SOUND\r
+       ANDA    I,10            ;ONLY HEAT RESET\r\r
+       BNE     51$\r
+       LDAB    I,0FF           ;SOUND ON\r
+51$:   STAB    E,NOISE\r
+       TSTA                    ;TEST AGAIN\r
+       BEQ     SOUNB\r
+SWOT:  LDAA    E,PANL2\r
+       BITA    I,20\r
+       BNE     2$\r
+       JMP     DIAG\r
+2$:    LDAA    E,TSTSW\r
+       BITA    I,TSTBIT        ;TEST OFF?\r
+       BNE     1$\r
+       JMP     SWST2\r
+1$:    WAI                     ;DO RESET\r
+SOUNB:\r
+       LDX     I,1000          ;SOUND PULSE\r
+       STAA    E,BUZZ+1\r
+1$:    STAA    E,WTDOG\r
+       DEX\r
+       BNE     1$\r
+       STAA    E,BUZZ\r
+       BRA     SWOT\r
+       .VCTRS 7FF8,IRQ,START,NMI,START\r
+       .END\r
+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
\ No newline at end of file
diff --git a/A33689.1C b/A33689.1C
new file mode 100644 (file)
index 0000000..0a9e1ef
--- /dev/null
+++ b/A33689.1C
@@ -0,0 +1,400 @@
+       MODES=0\r
+        .TITLE SPAC68- COIN & CREDIT ACCRUER\r
+        .SBTTL *********************************\r
+        .SBTTL * PROGRAMER: ALBAUGH            *\r
+        .SBTTL *                               *\r
+        .SBTTL * CHECKER:                      *\r
+        .SBTTL *                               *\r
+        .SBTTL *********************************\r
+        .SBTTL EXPLANATION\r
+        .RADIX 16\r
+       .ASECT\r
+       .=6900\r
+       .ENABL LC\r
+       .NLIST MC\r
+        .LIST MEB\r
+;COIN ROUTINE FOR 16-OPTION STANDARD AS PER MEMO\r
+;FROM STEVE BRISTOW DATED 9.27.77 OR 4-OPTION STANDARD\r
+;PER MEMO FROM FRANK BALLOUZ 4/20/78\r
+;\r
+;ENTRY POINT\r
+        .GLOBL COIN68\r
+;\r
+        .SBTTL DEFAULT ASSIGNMENTS\r
+;THESE DEFAULTS CONFIGURE FOR SKYDIVER HARDWARE\r
+        .LIST CND\r
+        .IIF NDF,MODES,MODES=4          ;FOUR COIN MODES STANDARD\r
+       .IIF EQ,MODES,CMZP=0            ;COIN-MODE IRRELEVANT IF MODES=0\r
+       .IIF NE,MODES-16.,SHRCMD=0      ;NOTHING TO SHARE WITH IF MODES NOT 16.\r
+        .IIF NDF,OFFSET,OFFSET=1        ;SWITCHES AND STATUS BYTES ONE-APART\r
+        .IIF NDF,COIN,COIN=0            ;COIN IS LOW-TRUE\r
+        .IIF NDF,CNTINT,CNTINT=1        ;COUNT INTERRUPTS (IN $INTCT)\r
+        .IIF NDF,SLAM,SLAM=1            ;SLAM IS HIGH-TRUE\r
+        .IIF NDF,CMZP,CMZP=1            ;COIN MODE IS IN ZERO-PAGE\r
+        .IIF NDF,SHRCMD,SHRCMD=1        ;SHARE A BYTE FOR CMODE, FIRST\r
+       .IIF NDF,STRING,STRING=0        ;DEFAULT NO STRING\r
+       .IIF EQ,STRING,LONGST=0         ;NOT LONG IF NOT AT ALL\r
+        .IIF NDF,LONGST,LONGST=1        ;USE LONG (1/2 SEC) STRINGTIMER\r
+        .IIF NDF,COIN67,COIN67=0        ;COINS NOT IN D7,D6 OF SAME BYTE\r
+        .IIF NDF,PRST,PRST=30.          ;PRE-COIN SLAM KILLS COINS FOR 30 FRAMES\r
+        .IIF NDF,POST,POST=30.          ;POST-COIN SLAM KILLS COINS WITHIN 30 FRAMES\r
+        .IF NE,CMZP\r
+        .MACRO GCM\r
+        LDAA   D,$CMODE            ;GET COIN MODE FROM ZERO-PAGE\r
+        .IIF NE,SHRCMD&<MODES/16.>,     ANDA I,MODES-1&0FF       ;STRIP "FIRST"\r
+        .ENDM\r
+        .ENDC                          ;CMZP CONDITIONAL\r
+        .NLIST CND\r
+        .IF NE,MODES&<MODES-4>&<MODES-16.>\r
+        .ERROR                  ;3 FLAVORS-0,4, OR 16 MODES\r
+        .ENDC\r
+        .IIF GT,PRST-31.,PRST=31.\r
+        .IIF GT,POST-63.,POST=63.\r
+;EXTERNAL REFERENCES\r
+       .IF     NE,MODES                ;IF WE HAVE COIN-MODES\r
+        .GLOBL $CMODE                   ;INPUT COIN MODE\r
+       .ENDC\r
+        .GLOBL $COINA,$LAM              ;SWITCH LOCATIONS (COIN & SLAM)\r
+        .GLOBL $LMBIT                   ;MASK WITH 1 IN BIT WHERE SLAM SW. IS\r
+        .GLOBL $CNSTT,$PSTSL        ;INTERNAL LOCATIONS\r
+       .IF     EQ,MODES-16.            ;ONLY FOR 16-MODES.\r
+        .GLOBL $FIRST                   ;COULD SHARE BYTE WITH CMODE\r
+       .ENDC\r
+        .GLOBL $LMTIM,$CNCT             ;SLAM-TIMER, COINCOUNT\r
+       .IF     NE,MODES                ;CREDIT NOT USED IF MODES=0\r
+        .GLOBL $$CRDT                   ;RESULT OF ALL THIS\r
+       .ENDC\r
+        .IF EQ,MODES-16\r
+       .GLOBL XSAVE,XBUILD\r
+        .REPT 0\r
+\r
+When a coin is detected, the coin-count ($CNCT) is incremented.  Then the  "price"  of  "x\r
+credits" is fetched from CPTAB.  If the coin-count.GE.price, then credit is incremented as\r
+indicated in CPTAB.\r
+An entry in CPTAB looks like:\r
+\r
+        (XXXXFAAA)=1 BYTE\r
+        XXXX = CREDIT, I.E., no. of plays\r
+        F    = 1 IF later coins count one more credit than first coin\r
+        AAA = PRICE, I.E., no. of coins for XXXX CREDITS\r
+\r
+Thus any variation from 1 PLAY/7 COINS to 16 PLAYS/1 COIN is possible\r
+\r
+The index into CPTAB is created as follows:\r
+        (XXXACCCC)=1 BYTE\r
+        X : ALWAYS ZERO\r
+        A : 0 = LEFT coin mech\r
+            1 = RIGHT coin mech\r
+        cccc:   coin mode (0000-1111)\r
+        .endr\r
+        .endc\r
+        .rept 0\r
+        The coin routine assumes the presence of the following .GLOBL variables:\r
+   1) $$CRDT:   base page byte initialized to 0 on restart.  This is where accrued  credit\r
+        is  kept.   Should  be  decremented  for each player-start.  Note that a DECREMENT\r
+        instruction must be used to insure  mutual  exclusion  between  the  main  program\r
+        accessing  $$CRDT  and  the  interrupt-driven coin routine accessing $$CRDT".  Not\r
+        used if MODES=0\r
+   2) $CMODE:   base page byte that contains the coin option  switches  in  its  low-order\r
+        nybble  (high true).  You must put it there.  this is not used if flag CMZP=0.  In\r
+        this case you must define a macro to get the coin mode in the lsb's  of  the  ACC,\r
+        clearing the msb's, not disturbing carry, SETTING/CLEARING Z-FLAG.\r
+   3) $CNSTT:   Two base page bytes ($CNSTT, $CNSTT+OFFSET) which should be initialized to\r
+        00 (the timers for coin detection).\r
+   4) $COINA:   Two locations containing coin switches in D7 Left mech  at  $COINA,  Right\r
+        mech  at  $COINA+OFFSET.   If  COIN67=1,  Switches  are  both in $COINA, D7-Right,\r
+        D6-Left.\r
+   5) $FIRST:   Base page byte.  Flag indicating whether first  coin  has  been  accepted.\r
+        Must  be initialized to plus (or zero, if SHRCMD=0) and reset to plus (or zero) at\r
+        the end of a game.  All other bits are ignored/maintained if the  flag  SHRCMD  is\r
+        set non-zero.  Used only if MODES=16\r
+   6) $CNCT:    2 base page bytes ($CNCT, $CNCT+OFFSET) which must be initialized to  zero\r
+        on pwron - coin counters (only one is used if MODES = 0 or 4)\r
+   7) $PSTSL:   Pair of base page bytes  ($PSTSL,  $PSTSL+OFFSET)used  to  time  post-coin\r
+        slam.\r
+   8) $LAM:     Address of the SLAM switch.  the bit position inside $LAM is specified  by\r
+        $LMBIT (see below)\r
+   9) $LMTIM:   Base  page  byte  used  as  a  timer  for  pre-slam  protection.   May  be\r
+        initialized  to  FF  at  pwron  to  disallow  coin input for 4 seconds.  Coins are\r
+        disallowed for two frames anyway.\r
+   10) $INTCT:  Interrupt counter for  long  string-timer.   If  CNTINT=1,  this  will  be\r
+        incremented  (default  case).   If CNTINT=0, this should be equated to an existing\r
+        counter.\r
+   11) $LMBIT:  Mask used to select which bit in the slam switch  byte  should  be  tested\r
+        (used as I,$LMBIT).  NOT A LOCATION, JUST A VALUE!!\r
+Space requirements:\r
+                RAM: 9 bytes (8 if CMZP=0 or SHRCMD=1)\r
+                ROM: About 130 bytes\r
+The coin routine also assumes it will be called 4 times  a  frame,  where  one  frame=1/60\r
+second.   In  most  cases  this may be accomplished by making the coin routine part of the\r
+interrupt routine.\r
+SAMPLE BASE PAGE ALLOCATION:  (WHERE OFFSET=2)\r
+        $FIRST: .BLKB 1\r
+        $$CRDT: .BLKB 1\r
+        $CMODE: .BLKB 1         ;OR CMODE=FIRST\r
+        $PSTSL: .BLKB 1\r
+        $LMTIM: .BLKB 1\r
+                .BLKB 1                ;$PSTSL FOR SECOND MECH\r
+        $CNCT:  .BLKB 4\r
+        $CNSTT  =$CNCT+1\r
+        .ENDR\r
+        .IF EQ,MODES-16\r
+        .REPT 0\r
+THE COIN MODES ARE:\r
+  0:    2 COINS/PLAY-LEFT AND RIGHT\r
+  1:    1 COIN/PLAY-LEFT AND RIGHT\r
+  2:    2 PLAYS/COIN-LEFT AND RIGHT\r
+  3:    3 PLAYS/COIN-LEFT AND RIGHT\r
+  4:    4 PLAYS/COIN-LEFT AND RIGHT\r
+  5:    FIRST COIN-1 PLAY; SECOND AND EXTRA COINS-2 PLAYS/COIN\r
+  6:    FIRST COIN-2 PLAYS; SECOND AND EXTRA COINS-3 PLAYS/COIN\r
+  7:    LEFT=2 COINS/PLAY\r
+        RIGHT=1 COIN/PLAY\r
+  8:    LEFT=1 COIN/PLAY\r
+        RIGHT=1 COIN/2 PLAYS\r
+  9:    LEFT=2 PLAYS/COIN\r
+        RIGHT=4 PLAYS/COIN\r
+  A:    LEFT=FIRST COIN-1 PLAY; SECOND AND EXTRA COINS-2 PLAYS/COIN\r
+        RIGHT=FIRST COIN-3 PLAYS; SECOND AND EXTRA COINS-4 PLAYS/COIN\r
+  B:    LEFT=FIRST COIN-2 PLAYS; SECOND AND EXTRA COINS-3 PLAYS/COIN\r
+        RIGHT=FIRST COIN-5 PLAYS; SECOND AND EXTRA COINS-6 PLAYS/COIN\r
+  C:    LEFT=FIRST COIN-3 PLAYS; SECOND AND EXTRA COINS-4 PLAYS/COIN\r
+        RIGHT=FIRST COIN-7 PLAYS; SECOND AND EXTRA COINS-8 PLAYS/COIN\r
+  D:    LEFT=3 COINS/PLAY\r
+        RIGHT=1 COIN/PLAY\r
+  E:    LEFT=1 COIN/PLAY\r
+        RIGHT=3 PLAYS/COIN\r
+  F:    LEFT=3 PLAYS/COIN\r
+        RIGHT=6 PLAYS/COIN\r
+        .ENDR\r
+        .ENDC\r
+        .IF EQ,MODES-4\r
+        .REPT 0\r
+THE COIN MODES ARE:\r
+  0:    FREE PLAY- $CNCT is zeroed, $$CRDT is not changed\r
+  1:    2 PLAYS PER COIN\r
+  2:    1 PLAY PER COIN\r
+  3:    2 COINS PER PLAY\r
+        .ENDR\r
+        .ENDC\r
+        .REPT 0\r
+                   *** COIN DETECTION ***\r
+Coin detection, courtesy of Mike Albaugh, uses two counters in one  byte  ($CNSTT).   This\r
+byte  is  used to remember the condition of the coin switch.  The upper counter (D7,D6,D5)\r
+runs when the coin is absent and is reset when the coin is  present.   The  lower  counter\r
+(D4-D0)  runs  when  the  coin is present and is reset when the coin is absent, unless the\r
+coin was present for 5 successive samples.  This "unless"  enables  $CNSTT  to  "remember"\r
+that a coin has been VALID-HIGH while waiting for VALID-LOW.\r
+Basically, a valid coin is defined as between 16 and 450 ms of coin present, preceded  and\r
+followed  by  33 ms of coin absent.  The 33 ms lows need not immediately precede or follow\r
+the high.  The lower five bits count  down  from  31  when  the  coin  is  present.   This\r
+countdown  is  fast  (once  per  interupt)  for the first five samples (31-26, about 16-20\r
+milliseconds) then slow (once per four interrupts) for the remaining counts  (26-0,  about\r
+440  ms).   The  count  then  stops  at zero.  This counter is reset if the coin goes away\r
+during the first five counts, I.E., the coin must be present for at least  16  ms.   After\r
+that  the coin must go away for eight counts to reset it.  This is because after the first\r
+five counts a coin is VALID HIGH and must not be reset until VALID LOW occurs  to  prevent\r
+mid-coin glitches from making a valid coin into 0 or 2 (or more) coins.\r
+\r
+The upper three bits count up from zero when the coin is absent.  The count  is  reset  if\r
+coin  is  ever  found  present.   When  the  count  finally wraps (8 samples, 33 ms).  The\r
+coin-present counter is checked.  A count from 27-31 (less than 16-20 ms) is too short.  A\r
+count of 0 (more than 450 ms) is too long.  Both of these cases are simply reset to 31.  A\r
+count of 1-26 is a (tentatively) valid coin.  The counter is again set to 31, but  another\r
+counter ($PSTSL) is started.\r
+\r
+$PSTSL is the POST-COIN-SLAM timer.  Initially  set  to  120,  it  counts  down  once  per\r
+interrupt  (4  times per frame) to give a nominal 1/2 second delay.  If the slam switch is\r
+seen during this time, $PSTSL is cleared, invalidating the coin.  The length of the  delay\r
+(in  frames)  is  defined by POST which defaults to 30.  It may be set as high as 63 (1.05\r
+seconds) by definition E.G.\r
+\r
+        POST=50         ;POST-SLAM=50 FRAMES\r
+\r
+SIMILARY A SLAM IS "REMEMBERED" FOR PRST frames (default=30, max=31) and no  coin  can  be\r
+"seen" during this time.\r
+\r
+Note that the proper initial  state  of  all  these  counters  etc  is  0,  therefore  the\r
+traditional power-on clear does the trick.  Since coins "transit" from $CNSTT to $PSTSL to\r
+$CNCT to $$CRDT, locations should be cleared in that order, I.E.   $$CRDT  should  be  the\r
+last location cleared.\r
+        .ENDR\r
+\f      .SBTTL  MAIN LOOP\r
+COIN68:        LDX     I,OFFSET\r
+       .IF     EQ,COIN67\r
+       LDAA    E,$COINA+800            ;GET "INDEXED" SWITCH WORD\r
+       .IFF\r
+       LDAA    E,$COINA                ;BOTH SWITCHES IN ONE WORD\r
+       .ENDC\r
+DETECT:        ASLA\r
+       .SBTTL  COIN-TEST ROUTINE\r
+;MARK 4 COIN DETECTION FOR THE 6800\r
+;ENTERED WITH COIN IN CARRY\r
+;ON EXIT\r
+;CARRY SET=VALID COIN DETECTED\r
+       LDAB    X,$CNSTT        ;GET STATUS WD.\r
+       ANDB    I,31.           ;ISOLATE COIN-ON DOWN-COUNTER\r
+       .IF     EQ,COIN\r
+       BCS     8$\r
+       .IFF\r
+       BCC     8$\r
+       .ENDC\r
+       .IF     NE,STRING       ;IF DOING STRING-TIMER\r
+       BEQ     1$              ;DON'T COUNT PAST 0 JUST CLEAR COIN-OFF CTR.\r
+       DECB\r
+       .IFF                    ;IF NO STRING-TIMER\r
+       DECB\r
+       BNE     1$\r
+       INCB                    ;DON'T COUNT PAST 1\r
+       .ENDC\r
+1$:    STAB    X,$CNSTT        ;SAVE STATUS\r
+       LDAB    E,$LAM  ;GET WD. WITH SLAM SWITCH\r
+       BITB    I,$LMBIT        ;CHECK SWITCH\r
+       .IF     NE,SLAM\r
+       BEQ     3$\r
+       .IFF\r
+       BEQ     3$              ;SLAM! -SET TIMER\r
+       .ENDC\r
+       LDAB    D,$LMTIM        ;ELSE CHECK TIMER\r
+       BEQ     5$              ;IF ZERO, OK\r
+       DECB                    ;ELSE DECR. ONCE PER MECH. PER INTERRUPT\r
+       BRA     4$              ;KEEP STATUS CLEAR\r
+3$:    LDAB    I,PRST*8        ;SET TIMER FOR 120/8=15 FRAMES, 1/4 SEC.\r
+4$:    STAB    D,$LMTIM\r
+       CLR     X,$CNSTT\r
+       CLR     X,$PSTSL\r
+5$:    CLC                     ;DEFAULT TO "NO VALID COIN"\r
+6$:    LDAB    X,$PSTSL        ;CHECK POST-SLAM COUNTER\r
+       BEQ     12$             ;ALREADY ZERO, RETURN\r
+       DEC     X,$PSTSL        ;ELSE COUNT DOWN\r
+       BNE     12$             ;NOT DONE YET, RETURN\r
+       SEC                     ;ELSE SET "VALID COIN"\r
+       BRA     12$\r
+8$:    CMPB    I,26.           ;HAS COIN BEEN ON 5 TIMES YET\r
+       BLS     10$             ;YES, PROCEED\r
+9$:    LDAB    I,31.           ;ELSE SET TO STARTING COUNT\r
+       BRA     1$\r
+10$:   LDAB    X,$CNSTT        ;GET BACK STATUS\r
+       ADDB    I,32.           ;BUMP COIN-GONE UP-CTR\r
+       BCC     1$              ;BRANCH ON NO WRAP\r
+       BEQ     9$              ;JUST RESET IF "STRING-TIMER" SET\r
+       .IF     EQ,STRING       ;IF NO STRING TIMER\r
+;ABOVE LINE PREVENTS SPURIOUS COIN AFTER POWER ON CLEAR\r
+       .IFF                    ;IF STRING TIMER\r
+;ABOVE LINE WILL IGNORE ANY COIN PRESENT FOR 32 COUNTS (8 FRAMES)\r
+       .ENDC                   ;EQ, STRING\r
+       CMPB    I,26.           ;COIN HAS BEEN GONE 2 FRAMES, HOW LONG WAS IT\r
+       BGT     9$              ;NOT LONG ENOUGH, RESET DOWN-CTR & DO SLAM-STUFF\r
+       LDAB    I,31.           ;RESET ANYWAY\r
+       STAB    X,$CNSTT\r
+;AT THIS POINT, WE THINK WE HAVE A VALID COIN.  HOWEVER, TO BE TRULY\r
+;WORTHY IT MUST WAIT FOR 1/2 SECOND IN THE POST SLAM TIMER.  IF THE 1/2\r
+;SECOND PASSES WITHOUT A SLAM SWITCH CLOSURE, WE WILL (GRUDGINGLY) ACCEPT\r
+;THE COIN.  THE TEST FOR PREVIOUS OCCUPANCY OF THE TIMER (NEXT 3 LINES) MAY\r
+;BE OMITTED IF YOU HAVE FAITH IN MR. HOWIE DELMAN'S STATEMENT THAT NO-ONE\r
+;CAN PUT TWO COINS IN THE SAME MECH IN LESS THAN 1/2 SECOND, OR IF YOU WOULD\r
+;PREFER TO PUNISH, RATHER THAN REWARD, THIS BEHAVIOR\r
+       TST     X,$PSTSL        ;IS TIMER OCCUPIED (CLEARS CARRY)\r
+       BEQ     11$             ;NO, VACANT\r
+       SEC                     ;ACCEPT PREVIOUS OCCUPANT NOW\r
+11$:   LDAB    I,POST*4        ;INSTALL NEW TENTATIVE COIN\r
+       STAB    X,$PSTSL\r
+12$:\r
+       .IF     EQ,MODES-16.\r
+       .SBTTL  COINS TO CREDITS(16)\r
+CONVRT:        GCM\r
+       BCC     2$\r
+       CMPA    I,7\r
+       BPL     1$\r
+       INC     $CNCT\r
+       BRA     2$\r
+1$:    INC     X,$CNCT\r
+2$:    CPX     I,0\r
+       BEQ     3$\r
+       ORAA    I,10\r
+3$:    STX     D,XSAVE         ;SAVE INITIAL X-REG\r
+       STAA    D,XBUILD+1\r
+\r
+;NEXT FOUR LINES EFFECTIVELY LDAA I,CPTAB/256.\r
+       LDAA    I,0\r
+       .=.-1\r
+       .WORD   CPTAB\r
+       .=.-1\r
+\r
+       STAA    D,XBUILD\r
+       LDX     D,XBUILD\r
+\r
+;NEXT FOUR LINES EFFECTIVELY LDAA X,CPTAB&255.\r
+       .WORD   CPTAB\r
+       .=.-2\r
+       .BYTE   0A6\r
+       .=.+1\r
+\r
+       LDX     D,XSAVE\r
+       TAB\r
+       ANDA    I,7             ;ISOLATE PRICE\r
+       NEGA                    ;MAKE IT MINUS\r
+       ADDA    X,$CNCT         ;"COMPARE" TO COIN COUNT\r
+       BCC     5$              ;BRANCH ON BORROW\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       LSRB                    ;ELSE GET CREDITS PER THIS PRICE\r
+       LDAA    D,$FIRST\r
+       .IF     NE,SHRCMD\r
+       BMI     4$\r
+       .IFF\r
+       BNE     4$\r
+       .IFTF                   ;SHRCMD COND.\r
+       CLC                     ;SKIP BONUS ON FIRST COIN\r
+4$:    ADCA    D,$$CRDT\r
+       STAA    D,$$CRDT\r
+       .IFT                    ;SHRCMD COND\r
+       LDAA    D,$FIRST\r
+       ORAA    I,80\r
+       STAA    D,$FIRST\r
+       .IFF                    ;SHRCMD COND\r
+       INC     $FIRST\r
+       .ENDC                   ;SHRCMD COND.\r
+5$:    LDAA    E,$COINA\r
+       .IIF    NE,COIN67,      ASLA\r
+       .ENDC                   ;MODES-16 COND\r
+       .IF     EQ,MODES-4*MODES ;IF MODES=0,4\r
+       BCC     13$\r
+       INC     $CNCT\r
+13$:\r
+       .IIF    EQ,COIN67,       LDAA E,$COINA\r
+       .IFTF                   ;MODES 0,4\r
+       .REPT   OFFSET\r
+       DEX\r
+       .ENDR\r
+       .IFT                    ;MODES 0,4\r
+       BEQ     DETECT\r
+       .IFF                    ;MODES 0,4\r
+       BNE     6$\r
+       JMP     DETECT\r
+6$:    RTS\r
+CPTAB: .BYTE   12,11,21,31,41,19,29,12 ;LEFT MECH\r
+       .BYTE   11,21,19,29,39,13,11,31\r
+       .BYTE   12,11,21,31,41,19,29,11 ;RIGHT MECH\r
+       .BYTE   21,41,39,59,79,11,31,61\r
+       .ENDC                   ;MODES 0,4\r
+       .IF     EQ,MODES-4\r
+       .SBTTL  COINS TO CREDITS(4)\r
+CONVRT:        GCM\r
+       BEQ     1$              ;IF FREE-PLAY, CLEAR COINCOUNT\r
+       LSRA\r
+       TAB\r
+       ADCA    I,0\r
+       NEGA                    ;FORM -(PRICE) IN ACCA\r
+       ADDA    $CNCT           ;"SUBTRACT" PRICE FROM COINCOUNT\r
+       BCC     2$              ;BRANCH ON BORROW\r
+       EORB    I,1\r
+       ADCB    $$CRDT          ;BUMP CREDIT BY ONE OR TWO\r
+       STAB    $$CRDT\r
+1$:    STAA    $CNCT\r
+2$:    RTS\r
+       .ENDC                   ;MODES=4\r
+       RTS\r
+       .END\r
+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
\ No newline at end of file
diff --git a/A33689.1D b/A33689.1D
new file mode 100644 (file)
index 0000000..2749284
Binary files /dev/null and b/A33689.1D differ
diff --git a/A33711.ROM b/A33711.ROM
new file mode 100644 (file)
index 0000000..577dccb
Binary files /dev/null and b/A33711.ROM differ
diff --git a/A33712.ROM b/A33712.ROM
new file mode 100644 (file)
index 0000000..f05396f
--- /dev/null
@@ -0,0 +1,264 @@
+;ROM/PROM FILE CREATED BY ROMRDR 29-JAN-79  16:21:57  \r
+\r
+; DX0:A33712.ROM=DX1:ORBIT4.BW\r
+\r
+CLR\r
+0000=00,00,00,00,00,00,00,10,00,00,00,00,00,00,00,00\r
+0010=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0020=00,00,00,00,00,00,00,00,00,06,3E,7F,FF,FE,FE,7C\r
+0030=38,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0040=00,00,00,00,00,00,00,00,00,10,3A,5E,20,62,23,5E\r
+0050=1A,64,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0060=00,00,00,00,00,44,00,64,34,85,42,40,80,03,60,20\r
+0070=C4,1B,4C,61,14,D0,02,00,00,00,00,00,00,00,00,00\r
+0080=00,00,00,08,44,10,82,18,43,02,01,80,00,00,00,81\r
+0090=01,80,11,8C,69,14,D0,02,48,00,10,00,00,00,00,00\r
+00A0=00,10,04,A2,10,41,04,10,98,00,00,00,00,02,82,00\r
+00B0=01,00,40,32,88,22,08,50,02,4A,00,14,00,00,00,00\r
+00C0=08,22,88,01,10,26,00,00,02,80,00,00,00,00,00,00\r
+00D0=00,00,80,02,02,49,08,24,00,45,00,0A,40,10,00,00\r
+00E0=04,80,08,41,00,00,00,00,00,00,00,00,00,00,00,00\r
+00F0=00,00,00,00,80,00,01,08,22,82,48,14,01,20,08,00\r
+0100=08,42,20,00,00,00,00,01,00,00,00,00,00,00,00,00\r
+0110=00,00,00,00,00,00,00,00,01,24,00,90,0C,21,20,08\r
+0120=08,22,00,00,40,00,01,00,00,00,00,00,00,00,00,00\r
+0130=00,00,00,00,00,00,00,00,88,01,20,00,04,00,20,08\r
+0140=00,18,3C,24,66,42,5A,3C,7E,7E,FF,FF,F1,D1,8F,83\r
+0150=8F,D1,F1,FF,FF,7E,7E,3C,5A,42,66,24,3C,18,00,00\r
+0160=00,1C,3C,6E,CE,C6,C6,C6,CE,4E,1C,1C,3E,3E,3F,7F\r
+0170=79,73,C3,F3,F9,FF,FF,DF,CF,CF,87,C6,66,04,0C,38\r
+0180=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0190=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+01A0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+01B0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+01C0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+01D0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+01E0=00,00,00,00,24,08,10,20,00,00,0A,1D,04,00,02,00\r
+01F0=00,00,00,00,00,00,10,08,50,00,00,04,08,10,00,20\r
+0200=00,00,00,00,00,00,00,00,00,00,00,00,00,08,18,18\r
+0210=18,18,10,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0220=00,00,00,00,00,00,00,00,00,00,00,00,18,00,18,14\r
+0230=14,18,00,18,00,00,00,00,00,00,00,00,00,00,00,00\r
+0240=00,00,00,00,00,00,00,00,00,00,00,1C,00,08,14,14\r
+0250=10,00,08,04,00,18,00,00,00,00,00,00,00,00,00,00\r
+0260=00,00,00,00,00,00,00,00,00,00,1C,00,00,0C,10,24\r
+0270=10,00,00,0C,00,00,38,00,00,00,00,00,00,00,00,00\r
+0280=00,00,00,00,00,00,00,00,00,1C,00,00,0C,00,20,04\r
+0290=20,10,00,00,0C,00,00,38,00,00,00,00,00,00,00,00\r
+02A0=00,00,00,00,00,00,00,00,1C,00,00,0C,00,00,40,02\r
+02B0=00,20,10,00,00,0C,00,00,70,00,00,00,00,00,00,00\r
+02C0=00,00,00,00,00,00,00,0E,00,00,0C,00,00,40,00,02\r
+02D0=00,40,20,00,00,00,06,00,00,70,00,00,00,00,00,00\r
+02E0=00,00,00,00,00,00,0E,00,00,06,00,00,40,00,02,00\r
+02F0=00,80,40,00,00,00,00,06,00,00,70,00,00,00,00,00\r
+0300=00,00,00,00,00,0E,00,00,0C,00,00,80,00,00,01,00\r
+0310=00,00,00,40,00,00,00,00,06,00,00,E0,00,00,00,00\r
+0320=00,00,00,00,07,00,00,18,00,00,00,00,00,01,00,00\r
+0330=00,00,00,00,40,00,00,00,00,03,00,00,E0,00,00,00\r
+0340=00,00,00,07,00,00,30,00,00,00,00,00,01,00,00,00\r
+0350=00,00,00,00,00,80,00,00,00,00,03,00,00,C0,00,00\r
+0360=00,00,03,00,00,60,00,00,00,00,00,01,00,00,00,00\r
+0370=00,00,00,00,00,00,80,00,00,00,00,01,00,00,C0,00\r
+0380=00,03,00,00,C0,00,00,00,00,00,00,00,00,00,00,00\r
+0390=00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,80\r
+03A0=01,00,00,80,00,00,00,00,00,00,00,00,00,00,00,00\r
+03B0=00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00\r
+03C0=00,00,80,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+03D0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+03E0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+03F0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0400=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0410=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0420=00,00,00,00,00,00,00,00,00,00,00,00,72,D6,94,FC\r
+0430=7E,1E,04,66,72,56,7C,36,2A,0E,06,00,00,00,00,00\r
+0440=00,00,00,00,00,00,00,00,00,00,00,00,00,71,C9,8F\r
+0450=F8,7C,3F,67,31,3C,36,73,F1,71,61,33,1E,00,00,00\r
+0460=00,00,00,92,49,24,12,00,00,00,7E,00,76,48,48,7E\r
+0470=00,7E,48,48,7E,00,40,7E,40,00,7E,48,48,7E,00,00\r
+0480=00,00,00,00,00,00,00,00,00,00,00,00,00,38,3E,0B\r
+0490=09,39,03,00,06,02,72,7E,16,36,26,06,00,00,00,00\r
+04A0=00,00,00,01,0F,E8,FC,0E,07,02,03,61,FB,CE,60,F0\r
+04B0=9C,C6,42,E0,B8,9C,86,03,00,00,00,00,00,00,00,00\r
+04C0=00,00,00,00,02,43,B1,89,C6,40,20,F8,CE,47,60,F8\r
+04D0=9C,CF,41,01,E0,B0,90,90,D0,F0,70,78,1E,07,01,00\r
+04E0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+04F0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0500=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0510=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0520=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0530=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0540=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0550=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0560=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0570=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0580=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0590=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+05A0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+05B0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+05C0=30,30,70,50,D0,90,90,FF,10,10,10,10,10,10,10,10\r
+05D0=10,10,10,10,10,10,10,10,10,10,10,10,10,13,13,FF\r
+05E0=AA,55,AA,55,01,00,FF,01,FF,FF,00,FF,01,02,04,08\r
+05F0=10,20,40,80,AD,AD,AD,AD,B5,B5,B5,B5,AD,AD,A7,AD\r
+0600=5D,1F,9C,BF,7F,3F,3F,5E,7E,FF,0E,5C,5F,98,0B,EF\r
+0610=9B,3F,1F,1C,0F,1B,3F,3B,9F,9F,33,5F,1B,3B,7F,1F\r
+0620=CE,DF,17,4B,2F,1F,1F,5F,1F,0F,1F,0F,2D,CF,4F,4E\r
+0630=3F,1F,BB,0F,33,0E,8F,1E,BF,2E,3F,35,17,0B,FE,47\r
+0640=5F,1F,D7,FF,0F,DF,5F,1F,7F,1F,3D,47,4D,DD,08,4B\r
+0650=BF,9B,1E,1F,0F,5F,5B,9F,3E,0E,2B,3B,1E,1E,1B,19\r
+0660=6F,5B,1F,1F,5F,4F,0F,5F,6D,4E,0D,0C,9F,4B,1F,8A\r
+0670=FB,2F,3F,0E,BF,1B,0F,2B,DF,8B,6B,1E,1B,1B,3F,2D\r
+0680=59,4F,4F,4F,4F,CF,0F,4E,8D,45,05,EF,CD,8D,5D,89\r
+0690=7B,7B,1A,1A,1A,3F,2E,1E,3B,2F,AF,7A,36,1E,19,36\r
+06A0=DB,4F,4B,0F,7F,4B,0F,0F,4F,07,4A,4F,0F,0D,4D,C4\r
+06B0=7C,1B,3F,1B,8F,1B,08,7E,16,98,3A,16,DF,9F,2E,0E\r
+06C0=DF,6F,6D,0F,0B,4F,5D,4F,4D,0F,0F,6F,4F,0F,4F,0B\r
+06D0=4B,1F,1F,9F,CF,5F,9F,4E,CE,0B,1C,9E,5A,1E,1E,3B\r
+06E0=5F,2F,4F,4C,CF,4F,47,4F,0D,6F,4C,5E,8A,07,0B,3F\r
+06F0=2A,3F,1E,19,3E,52,17,2A,0C,5E,87,3E,FE,0D,37,1E\r
+0700=0F,8F,6F,4F,6F,0D,46,8F,0A,0F,4A,4E,8F,4F,0F,69\r
+0710=0F,1F,6B,5C,BD,2E,2B,7F,3B,1D,0F,9E,BF,07,1B,12\r
+0720=5B,5F,4D,CF,8F,6D,07,0F,0D,89,0F,4F,AF,09,21,2C\r
+0730=0B,9F,9F,0E,2F,37,0A,2E,AF,2D,1A,1F,5B,8A,7F,1A\r
+0740=1F,3B,1F,0F,0F,5F,CF,4B,C5,8F,0F,6F,06,CC,4F,4E\r
+0750=9B,1F,2F,0B,9B,0F,1B,0B,48,9B,0B,2E,9D,3F,5E,A0\r
+0760=3B,5F,5F,9F,4B,0F,D7,5F,1B,59,DA,CF,4B,8F,3F,88\r
+0770=BB,5B,1B,4B,5B,1B,0A,9D,1A,2F,1B,1E,33,07,BB,23\r
+0780=0B,5E,1E,7D,1B,0F,0F,96,5C,08,8E,4F,5B,12,9E,4A\r
+0790=1B,1F,07,1B,0F,46,3B,2F,1F,13,9A,0F,1E,2B,1F,3F\r
+07A0=DD,CF,0E,4F,0F,4E,2F,89,17,AB,2E,1F,1E,1E,DE,01\r
+07B0=57,4F,1B,1B,03,1B,1B,27,A8,2B,2B,0E,1F,1B,8E,08\r
+07C0=5D,37,0F,4F,4F,CE,4B,8D,0B,6D,06,4E,4A,0F,13,03\r
+07D0=AE,3A,1A,36,06,1E,D6,15,7A,5E,19,8F,2E,39,0F,2B\r
+07E0=1D,DF,6F,0B,CF,1F,4F,1F,4B,96,8D,2F,4C,0C,C7,42\r
+07F0=77,92,1A,0A,CE,0A,07,10,0C,5A,00,38,1B,2A,3E,1E\r
+0800=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0810=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0820=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0830=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0840=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0850=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0860=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0870=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0880=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0890=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08A0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08B0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08C0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08D0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08E0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08F0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0900=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0910=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0920=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0930=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0940=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0950=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0960=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0970=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0980=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0990=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09A0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09B0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09C0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09D0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09E0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09F0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0ED0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+END\r
+\r
+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
\ No newline at end of file
diff --git a/A33713.ROM b/A33713.ROM
new file mode 100644 (file)
index 0000000..1ff594c
--- /dev/null
@@ -0,0 +1,264 @@
+;ROM/PROM FILE CREATED BY ROMRDR 29-JAN-79  16:22:31  \r
+\r
+; DX0:A33713.ROM=DX1:ORBIT3.BW\r
+\r
+CLR\r
+0000=00,00,00,7F,02,02,01,07,07,01,02,02,7F,00,00,00\r
+0010=00,00,3E,1C,1E,0F,0F,0F,0F,0F,0F,0F,1E,1C,3E,00\r
+0020=00,00,00,07,FC,82,02,07,07,05,01,01,03,3E,00,00\r
+0030=00,00,04,78,3C,1F,1F,0F,0F,0F,0F,0F,0E,0F,1E,00\r
+0040=00,00,00,03,0E,3E,F3,01,07,03,00,00,00,03,0E,00\r
+0050=00,00,00,18,70,FE,3F,1F,0F,0F,07,07,07,07,07,04\r
+0060=00,00,00,00,0C,18,36,43,83,07,02,00,00,01,03,06\r
+0070=00,00,00,00,20,6E,FE,FF,1F,0F,07,03,03,01,01,01\r
+0080=00,00,00,00,08,18,1C,27,43,C7,82,00,00,00,00,01\r
+0090=00,00,00,00,00,20,2E,7F,FF,1F,07,03,01,00,00,00\r
+00A0=00,01,01,01,00,18,11,3F,23,63,41,40,40,00,00,00\r
+00B0=00,00,00,00,00,00,24,2F,7F,7F,DF,03,00,00,00,00\r
+00C0=00,01,03,03,03,01,11,11,1F,11,23,20,20,20,20,00\r
+00D0=00,01,00,00,00,00,00,0F,2F,7F,7F,7F,40,00,00,00\r
+00E0=03,07,07,07,07,03,01,11,13,1D,11,10,10,10,10,00\r
+00F0=01,01,01,00,00,00,00,00,07,2F,3F,3F,38,20,00,00\r
+0100=00,00,00,00,00,00,01,07,07,01,02,02,7F,00,00,00\r
+0110=00,00,00,00,00,02,07,0B,0F,0F,0F,0F,1E,1C,3E,00\r
+0120=00,00,00,00,00,00,00,07,07,05,01,01,03,3E,00,00\r
+0130=00,00,00,00,00,00,01,07,0F,0F,0F,0F,0E,0F,1E,00\r
+0140=00,00,00,00,00,00,03,01,07,03,00,00,00,03,0E,00\r
+0150=00,00,00,00,00,00,07,0B,07,0F,07,07,07,07,07,04\r
+0160=00,00,00,00,00,00,00,03,03,07,02,00,00,01,03,06\r
+0170=00,00,00,00,00,06,0E,0F,1F,0F,07,03,03,01,01,01\r
+0180=00,00,00,00,00,00,04,07,03,07,02,00,00,00,00,01\r
+0190=00,00,00,00,00,00,08,07,0F,1F,07,03,01,00,00,00\r
+01A0=00,01,01,01,00,00,01,03,03,03,01,00,00,00,00,00\r
+01B0=00,00,00,00,00,00,00,0B,0F,07,1F,03,00,00,00,00\r
+01C0=00,01,03,03,03,01,01,01,01,01,03,00,00,00,00,00\r
+01D0=00,01,00,00,00,00,00,07,0D,07,03,03,00,00,00,00\r
+01E0=03,07,07,07,07,03,01,00,01,00,01,00,00,00,00,00\r
+01F0=01,01,01,00,00,00,00,00,03,01,07,03,00,00,00,00\r
+0200=00,00,00,80,00,1E,3F,FF,FF,3F,1E,00,80,00,00,00\r
+0210=00,00,00,00,00,00,00,07,FF,07,00,00,00,00,00,00\r
+0220=00,00,00,00,1E,3F,3F,FF,FE,FC,1C,00,00,C0,00,00\r
+0230=00,00,00,00,00,02,07,FF,83,80,80,80,00,00,00,00\r
+0240=00,00,00,1E,3F,3F,7F,FF,CE,80,80,A0,E0,80,00,00\r
+0250=00,00,00,06,0E,0E,76,C0,80,80,C0,80,00,C0,00,00\r
+0260=00,00,3C,7E,7E,7E,FE,FC,80,80,80,70,40,80,00,00\r
+0270=00,00,0C,0E,1E,3C,60,80,80,C0,C0,C0,80,E0,80,00\r
+0280=00,78,FC,FC,FC,FC,F8,C0,80,C0,58,70,60,40,80,00\r
+0290=00,18,3C,3C,38,60,C0,80,80,E0,E0,C0,F0,E0,C0,C0\r
+02A0=F0,F8,F8,F8,F8,F0,C0,80,C8,78,30,30,20,60,40,00\r
+02B0=00,78,78,30,40,C0,80,80,C0,E0,E0,E8,F8,70,30,20\r
+02C0=E0,F0,F0,F0,F0,E0,80,80,88,E8,98,10,10,10,10,30\r
+02D0=E0,E0,E0,C0,80,80,80,80,E0,E4,F8,F8,78,18,08,00\r
+02E0=C0,E0,E0,E0,E0,C0,80,88,C8,B8,88,08,08,08,08,00\r
+02F0=C0,C0,C0,C0,80,80,80,80,F0,FA,FE,FE,0E,02,00,00\r
+0300=00,00,00,00,00,1E,3F,FF,FF,3F,1E,00,80,00,00,00\r
+0310=00,00,00,00,00,00,00,07,FF,07,00,00,00,00,00,00\r
+0320=00,00,00,00,1E,3F,3F,FF,FE,FC,1C,00,00,C0,00,00\r
+0330=00,00,00,00,00,02,07,FF,83,80,80,80,00,00,00,00\r
+0340=00,00,00,1E,3F,3F,7F,FF,CE,80,80,A0,E0,80,00,00\r
+0350=00,00,00,06,0E,0E,76,C0,80,80,C0,80,00,C0,00,00\r
+0360=00,00,3C,7E,7E,7E,FE,FC,80,80,80,70,40,80,00,00\r
+0370=00,00,0C,0E,1E,3C,60,80,80,C0,C0,C0,80,E0,80,00\r
+0380=00,78,FC,FC,FC,FC,F8,C0,80,C0,58,70,60,40,80,00\r
+0390=00,18,3C,3C,38,60,C0,80,80,E0,E0,C0,F0,E0,C0,C0\r
+03A0=F0,F8,F8,F8,F8,F0,C0,80,C8,78,30,30,20,60,40,00\r
+03B0=00,78,78,30,40,C0,80,80,C0,E0,E0,E8,F8,70,30,20\r
+03C0=E0,F0,F0,F0,F0,E0,80,80,88,E8,98,10,10,10,10,30\r
+03D0=E0,E0,E0,C0,80,80,80,80,E0,E4,F8,F8,78,18,08,00\r
+03E0=C0,E0,E0,E0,E0,C0,80,88,C8,B8,88,08,08,08,08,00\r
+03F0=C0,C0,C0,C0,80,80,80,80,F0,FA,FE,FE,0E,02,00,00\r
+0400=00,00,00,7F,02,02,01,07,07,01,00,00,00,00,00,00\r
+0410=00,00,3E,1C,1E,0F,0F,0F,07,03,00,00,00,00,00,00\r
+0420=00,00,00,07,FC,82,02,07,07,04,00,00,00,00,00,00\r
+0430=00,00,04,78,3C,1F,1F,0F,0F,06,00,00,00,00,00,00\r
+0440=00,00,00,03,0E,3E,F3,01,07,03,00,00,00,00,00,00\r
+0450=00,00,00,18,70,FE,3F,1F,0F,0E,00,00,00,00,00,00\r
+0460=00,00,00,00,0C,18,36,43,83,07,02,00,00,00,00,00\r
+0470=00,00,00,00,20,6E,FE,FF,1F,0E,00,00,00,00,00,00\r
+0480=00,00,00,00,08,18,1C,27,43,C7,82,00,00,00,00,00\r
+0490=00,00,00,00,00,20,2E,7F,FF,1F,06,00,00,00,00,00\r
+04A0=00,01,01,01,00,18,11,3F,23,63,41,40,40,00,00,00\r
+04B0=00,00,00,00,00,00,24,2F,7F,7F,DE,02,00,00,00,00\r
+04C0=00,01,03,03,03,01,11,11,1F,11,23,20,20,20,20,00\r
+04D0=00,01,00,00,00,00,00,0F,2F,7F,7F,7F,40,00,00,00\r
+04E0=03,07,07,07,07,03,01,11,13,1D,11,10,10,10,10,00\r
+04F0=01,01,01,00,00,00,00,00,07,2F,3F,3E,38,20,00,00\r
+0500=00,00,00,00,00,00,00,07,07,00,00,00,00,00,00,00\r
+0510=00,00,00,00,00,00,00,00,03,00,00,00,00,00,00,00\r
+0520=00,00,00,00,00,00,00,07,07,04,00,00,00,00,00,00\r
+0530=00,00,00,00,00,00,00,01,01,00,00,00,00,00,00,00\r
+0540=00,00,00,00,00,00,00,01,07,03,00,00,00,00,00,00\r
+0550=00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00\r
+0560=00,00,00,00,00,00,00,03,03,07,02,00,00,00,00,00\r
+0570=00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00\r
+0580=00,00,00,00,00,00,00,03,03,07,02,00,00,00,00,00\r
+0590=00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,00\r
+05A0=00,01,01,01,00,00,01,03,03,03,01,00,00,00,00,00\r
+05B0=00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,00\r
+05C0=00,01,03,03,03,01,01,01,01,01,03,00,00,00,00,00\r
+05D0=00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+05E0=03,07,07,07,07,03,01,01,01,01,01,00,00,00,00,00\r
+05F0=01,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0600=00,00,00,80,00,1E,3F,FF,FF,3F,1E,00,00,00,00,00\r
+0610=00,00,00,00,00,00,00,07,FF,07,00,00,00,00,00,00\r
+0620=00,00,00,00,1E,3F,3F,FF,FE,FC,1C,00,00,00,00,00\r
+0630=00,00,00,00,00,02,07,FF,83,00,00,00,00,00,00,00\r
+0640=00,00,00,1E,3F,3F,7F,FF,CE,80,00,00,00,00,00,00\r
+0650=00,00,00,06,0E,0E,76,C0,80,00,00,00,00,00,00,00\r
+0660=00,00,3C,7E,7E,7E,FE,FC,80,80,00,00,00,00,00,00\r
+0670=00,00,0C,0E,1E,3C,60,80,80,00,00,00,00,00,00,00\r
+0680=00,78,FC,FC,FC,FC,F8,C0,80,80,00,00,00,00,00,00\r
+0690=00,18,3C,3C,38,60,C0,80,80,00,00,00,00,00,00,00\r
+06A0=F0,F8,F8,F8,F8,F0,C0,80,80,00,00,00,00,00,00,00\r
+06B0=00,78,78,30,40,C0,80,80,80,80,00,00,00,00,00,00\r
+06C0=E0,F0,F0,F0,F0,E0,80,80,80,80,80,00,00,00,00,00\r
+06D0=E0,E0,E0,C0,80,80,80,80,80,C0,00,00,00,00,00,00\r
+06E0=C0,E0,E0,E0,E0,C0,80,80,80,80,00,00,00,00,00,00\r
+06F0=C0,C0,C0,C0,80,80,80,80,80,80,00,00,00,00,00,00\r
+0700=00,00,00,00,00,1E,3F,FF,FF,3F,1E,00,00,00,00,00\r
+0710=00,00,00,00,00,00,00,07,FF,07,00,00,00,00,00,00\r
+0720=00,00,00,00,1E,3F,3F,FF,FE,FC,1C,00,00,00,00,00\r
+0730=00,00,00,00,00,02,07,FF,83,00,00,00,00,00,00,00\r
+0740=00,00,00,1E,3F,3F,7F,FF,CE,80,00,00,00,00,00,00\r
+0750=00,00,00,06,0E,0E,76,C0,80,00,00,00,00,00,00,00\r
+0760=00,00,3C,7E,7E,7E,FE,FC,80,80,00,00,00,00,00,00\r
+0770=00,00,0C,0E,1E,3C,60,80,80,00,00,00,00,00,00,00\r
+0780=00,78,FC,FC,FC,FC,F8,C0,80,80,00,00,00,00,00,00\r
+0790=00,18,3C,3C,38,60,C0,80,80,00,00,00,00,00,00,00\r
+07A0=F0,F8,F8,F8,F8,F0,C0,80,80,00,00,00,00,00,00,00\r
+07B0=00,78,78,30,40,C0,80,80,80,00,00,00,00,00,00,00\r
+07C0=E0,F0,F0,F0,F0,E0,80,80,80,80,80,00,00,00,00,00\r
+07D0=E0,E0,E0,C0,80,80,80,80,80,80,00,00,00,00,00,00\r
+07E0=C0,E0,E0,E0,E0,C0,80,80,80,80,80,00,00,00,00,00\r
+07F0=C0,C0,C0,C0,80,80,80,80,80,80,00,00,00,00,00,00\r
+0800=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0810=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0820=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0830=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0840=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0850=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0860=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0870=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0880=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0890=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08A0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08B0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08C0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08D0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08E0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+08F0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0900=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0910=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0920=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0930=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0940=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0950=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0960=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0970=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0980=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0990=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09A0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09B0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09C0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09D0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09E0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+09F0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0A90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0AF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0B90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0BF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0C90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0CF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0D90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0DF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0E90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0ED0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0EF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F00=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F10=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F20=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F30=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F40=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F50=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F60=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F70=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0F90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FA0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FC0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FD0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+0FF0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r
+END\r
+\r
+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
\ No newline at end of file
diff --git a/ORBIT.DOC b/ORBIT.DOC
new file mode 100644 (file)
index 0000000..d15c321
Binary files /dev/null and b/ORBIT.DOC differ
diff --git a/ORBIT.MAP b/ORBIT.MAP
new file mode 100644 (file)
index 0000000..a96c14e
Binary files /dev/null and b/ORBIT.MAP differ
diff --git a/TBL2.BAS b/TBL2.BAS
new file mode 100644 (file)
index 0000000..7183635
Binary files /dev/null and b/TBL2.BAS differ