]> github.com/historicalsource and other repositories - monte-carlo.git/commitdiff
First commit main
authorHistorical Source <49599193+historicalsource@users.noreply.github.com>
Thu, 14 Oct 2021 23:22:30 +0000 (19:22 -0400)
committerHistorical Source <49599193+historicalsource@users.noreply.github.com>
Thu, 14 Oct 2021 23:22:30 +0000 (19:22 -0400)
13 files changed:
A35767.1A [new file with mode: 0644]
A35767.1B [new file with mode: 0644]
A35767.1C [new file with mode: 0644]
A35767.1D [new file with mode: 0644]
A35767.1E [new file with mode: 0644]
A35775.XX [new file with mode: 0644]
A35778.XX [new file with mode: 0644]
A35779.ROM [new file with mode: 0644]
A35780.ROM [new file with mode: 0644]
A35785.XX [new file with mode: 0644]
COIN68.XX [new file with mode: 0644]
MONTE.DOC [new file with mode: 0644]
MONTE.MAP [new file with mode: 0644]

diff --git a/A35767.1A b/A35767.1A
new file mode 100644 (file)
index 0000000..38d7618
--- /dev/null
+++ b/A35767.1A
@@ -0,0 +1,2378 @@
+       .TITLE  MONTE - MONTE CARLO/SUPERBUG II RACER\r
+       .SBTTL  **************************************************\r
+       .SBTTL  *\r
+       .SBTTL  * PROGRAMMER: STEVE CALFEE AND NORM AVELLAR \r
+       .SBTTL  *\r
+       .SBTTL  * CHECKER:\r
+       .SBTTL  *\r
+       .SBTTL  **************************************************\r
+       .REPT   0\r
+\r
+DATE INITATED:         21-SEP-79 \r
+PROJECT CHARGE #:      23003 \r
+DISK #:                        61 & B20\r
+\r
+\r
+HARDWARE REQUIREMENTS: \r
+\r
+       FIRETRUCK MODIFIED FOR COLOR\r
+\r
+MEMORY REQUIREMENTS:\r
+\r
+\r
+\r
+       64      BYTES ALPHANUMERICS RAM\r
+       192     BYTES WORKING RAM\r
+       256     BYTES PLAYFIELD RAM\r
+       4K      BYTES TRACK MAPS, CELLS, MOLECULES\r
+       4K      BYTES PROGRAM\r
+\r
+INTERRUPT REQUIREMENTS:\r
+\r
+       4 IRQ'S PER FRAME\r
+       NMI OCCURRS AT VBLANK\r
+\r
+ASSEMBLY COMMAND STRING:\r
+\r
+       DK1:MONACO.TMP=MONACO/A/C\r
+\r
+LINK COMMAND STRING:    \r
+       PP:/L,DK1:MONACO/A=MONACO,MONAUT,MOCOIN,MO2TST\r
+\r
+PROGRAM DESCRIPTION:\r
+\r
+       RACING THEME SUPERBUG WITH TRAFFIC, FOUR GEAR SHIFTER\r
+       AND IN COLOR\r
+\r
+       .ENDR\r
+       .PAGE\r
+       .SBTTL  GLOBAL VARIABLES\r
+;\r
+;EXTERNALLY ACCESSED VARIABLES\r
+;\r
+       .GLOBL  VPOS,HPOS,DRGOAL,HPOSL,VPOSL\r
+       .GLOBL  MAPPT,TEMP,XTEMP,STEMP\r
+       .GLOBL  ROTATE,FRAME,VEL,HINC,VINC\r
+       .GLOBL  XINDEX,DVISBL,DCOLOR,DIREC\r
+       .GLOBL  MODE,POSNOW,POSLAST,VEL,STAT,DSKDCT\r
+       .GLOBL  SVPOS,SHPOS,DCOLOR\r
+       .GLOBL $$CRDT,$PSTSL,$LMTIM,$LMBIT\r
+       .GLOBL $INTCT,$COINA,$CNCT,$CMODE\r
+       .GLOBL $CCTIM,$LAM,$CNSTT\r
+       .GLOBL WTCHDG,PLYFLD,AN,ROM1\r
+       .GLOBL TSTCNT,TRKLED,SWITCH,PVP,PHP\r
+       .GLOBL CRSSND,SKDSND,SKDRST,CARROT\r
+       .GLOBL DHPOS,DVPOS,DROT,MSND1,VBLANK\r
+       .GLOBL TESTSW,DIHOLD,STEPSW,ROTTAB,VISAVE\r
+       .GLOBL VIDINV,ATTRCT,STEPDB,OPTS\r
+       .GLOBL RAMCV,RAMCHK,ATSTART\r
+       .GLOBL MAINLP,ISTEMP,ATSAVE,EMCNTRS\r
+;\r
+;EXTERNALLY ACCESSED ROUTINES\r
+;\r
+       .GLOBL  PTSTAMP,INDEX\r
+;\r
+;EXTERNAL ROUTINE ENTRY POINTS\r
+;\r
+       .GLOBL  PWRON,IRQ,NMI\r
+       .GLOBL  AUTO,STDRN\r
+       .GLOBL  TEST,TSTRTN,COIN68\r
+       .ASECT\r
+       .SBTTL  ZERO PAGE RAM\r
+       .RADIX  16\r
+       .=0000\r
+AN:    .BLKB   40              ;ALPHANUMERICS RAM\r
+\r
+FUEMSD =AN+2A\r
+FUELSD =FUEMSD+1\r
+SCRMSD =AN+22\r
+SCRLSD =SCRMSD+1\r
+BFMSD  =AN+33\r
+BFLSD  =BFMSD+1\r
+HISMSD =AN+13\r
+HISLSD =HISMSD+1\r
+SPDMSD =AN+31\r
+TRKLOC =AN+3A\r
+HLINE: .BLKB   16.             ;EDGE OF SCREEN ARRAYS\r
+VLINE: .BLKB   16.\r
+       ;INDEXED VARIABLES\r
+ROTATE:        .BLKB   2               ;0 TO 23 LOGICAL ROTATIONS\r
+ROTOUT:        .BLKB   2               ;OUTPUT ROTATION #\r
+DIREC: .BLKB   2               ;DIRECTION CAR IS MOVING\r
+VEL:   .BLKB   2               ;VELOCITY OF CAR\r
+;\r
+;THE NEXT 12. BYTES MUST BE IN THIS ORDER\r
+;\r
+HPOS:  .BLKB   2               ;HORIZ POSITION OF CARS (HI BYTE)\r
+HPOSL: .BLKB   2               ;       "       "       "     (LO BYTE)\r
+VPOS:  .BLKB   2               ;VERT POSITION OF CARS (HI BYTE)\r
+VPOSL: .BLKB   2               ;       "       "       (LO BYTE)\r
+HINC:  .BLKB   2\r
+VINC:  .BLKB   2\r
+GEAR:  .BLKB   2               ;GEAR # OF CARS\r
+STAT:  .BLKB   2               ;BIT7-STEERING, BIT3-SQUISHY, BIT2-SCRATCH, BIT1-CRASH\r
+                               ;BIT0-SKID\r
+\r
+\r
+       ;END OF INDEXED VARIABLES\r
+XINDEX:        .BLKB   2               ;CAR INDEX\r
+                               ;X=0=PLAYER CAR\r
+                               ;X=1 OR >=DRONE(S)\r
+XTEMP: .BLKB   2               ;X REGISTER TEMP\r
+STEMP: .BLKB   2               ;STACK POINTER TEMP\r
+TEMP:  .BLKB   2               ;TEMP VARIABLE\r
+DRGOAL:        .BLKB   1               ;DRONE ROTATION GOAL\r
+XTDSCR:        .BLKB   1               ;SCORE NEEDED FOR EXTENDED PLAY\r
+FUELTM:        .BLKB   1               ;TIMER FOR DECRAMENTING FUEL\r
+FUEL:  .BLKB   1               ;FUEL LEFT\r
+CRSCNT:        .BLKB   1               ;COUNTER FOR CRASH\r
+CRSTIM:        .BLKB   2               ;LOCKOUT TIMER FOR CRASH\r
+SPNFLG:        .BLKB   1\r
+SPNCNT:        .BLKB   1\r
+SPNROT:        .BLKB   1\r
+MULT0: .BLKB   1               ;MULTIPLY VARIABLES\r
+MULT1: .BLKB   1\r
+MULT2: .BLKB   1\r
+MULT3: .BLKB   1\r
+SCRCNT:        .BLKB   1               ;COUNTER USED TO KEEP TRACK OF SCORING CHECKPOINTS\r
+ANPNT: .BLKB   2               ;ALPHA/NUMERICS POINTER\r
+SOUNDS:        .BLKB   1\r
+DRONEV:        .BLKB   2\r
+DRONEH:        .BLKB   2\r
+DVISBL:        .BLKB   1\r
+POSNOW:        .BLKB   1               ;4 BYTE ARRAY\r
+POSLAST:.BLKB  7               ;4 BYTE ARRAY\r
+ARROW: .BLKB   1               ;0=NO ARROW FOR THIS CELL\r
+BEEP:  .BLKB   1               ;TIMER FOR EXTENDED PLAY SOUND\r
+DCOLOR:        .BLKB   1               ;DRONE COLOR\r
+ACECMP:        .BLKB   1\r
+GOODCMP:.BLKB  1\r
+SOCMP: .BLKB   1\r
+DSKDCT:        .BLKB   1               ;DRONE SKID\r
+FRAME: .BLKB   1               ;FRAME COUNTER\r
+RSTTIM:        .BLKB   1               ;ATTRACT RESET TIMER\r
+       N=.-1                   ;LIMIT FOR INIT\r
+\r
+\r
+ATSAVE:        .BLKB   1               ;SAVE WORD FOR ATTRACT WORD OUTPUT\r
+VISAVE:        .BLKB   1               ;SAVE WORD FOR VIDINV WORD OUTPUT\r
+TMESAV:        .BLKB   1               ;RESET VALUE FOR FUELTM\r
+SCOR:  .BLKB   1               ;PLAYERS SCORE\r
+CRSHSV:        .BLKB   1               ;CRASH SOUND SAVE REGISTER\r
+MODE:  .BLKB   1               ;-=GAME;0=ATTRACT;BIT 3=XTENDED PLAY\r
+FREEZE:        .BLKB   1\r
+IXTEMP:        .BLKB   2               ;INTERRUPT'S X REGISTER TEMP\r
+ISTEMP:        .BLKB   2               ;INTERRUPT'S STACK POINTER TEMP\r
+TSTCNT:\r
+TRKN:  .BLKB   1               ;TRACK # BEING USED (0-7)\r
+TRAKS: .BLKB   1               ;USED FOR SELECTING TRACKS\r
+STEPDB:\r
+TKSWDB:        .BLKB   1               ;DEBOUNCE\r
+HISCR: .BLKB   8               ;HI SCORE SINCE POWER ON FOR EACH TRACK\r
+MECHS  =3                      ;COIN VARIABLES\r
+EMCTRS =3\r
+$$CRDT:        .BLKB   1\r
+$CMODE:        .BLKB   1\r
+$CCTIM:        .BLKB   EMCTRS\r
+$LMTIM:        .BLKB   1\r
+$CNCT: .BLKB   1\r
+$PSTSL:        .BLKB   MECHS\r
+$CNSTT:        .BLKB   MECHS\r
+$LAM   =1801\r
+$LMBIT =80\r
+$COINA =1803\r
+$INTCT:        .BLKB   1               ;INTERUPT COUNTER FOR COINS\r
+;\r
+;SCROLL FIELD VARABLES\r
+;\r
+HRAMPT:        .BLKB   2               ;HLINE OUTPUT PTR\r
+VRAMPT:        .BLKB   2               ;VLINE OUTPUT PTR\r
+THPOS: .BLKB   2               ;PTR FOR FILLING HLINE\r
+TVPOS: .BLKB   2               ;PTR FOR FILLING VLINE\r
+SHPOS: .BLKB   2               ;SCREEN TOP, LEFT COORD\r
+SVPOS: .BLKB   2               ;SCREEN TOP, LEFT COORD\r
+SHPNT: .BLKB   1               ;HPOS OR HPOS + 0F\r
+SVPNT: .BLKB   1               ;VPOS OR VPOS + 0F\r
+SHOUT: .BLKB   1               ;HORZ SCREEN OUTPUT BYTE\r
+SVOUT: .BLKB   1               ;VERT SCREEN OUTPUT BYTE\r
+MAPPT: .BLKB   2               ;PTR TO CELL IN MAP\r
+STAMPT:        .BLKB   2               ;PTR TO STAMP IN CELL\r
+\r
+RAMCHK:        .BLKB   2               ;TOP OF VARIABLES, STACK PROTECTION\r
+\r
+       .SBTTL   EQUATES\r
+CARPIC =81\r
+BLPIC  =1E\r
+CELTBL =2000\r
+MAPTBL =2900\r
+ATTRK  =8\r
+PLYFLD =800\r
+ROM1   =2000\r
+\r
+PVP    =1000                   ;PLAYFIELD POSITION\r
+PHP    =1020\r
+DCRST  =1040                   ;DRONE CRASH RESET\r
+CCRST  =1060                   ;CAR CRASH RESET\r
+CARROT =1080                   ;CAR ROTATION, REGISTER\r
+DCOL2  =1080                   ;DRONE COLOR2 (BIT 7)\r
+STRRST =10A0                   ;STEERING RESET\r
+WTCHDG =10C0                   ;WATCHDOG\r
+SKDRST =10E0                   ;SKID RESET\r
+MSND1  =1400                   ;MOTOR SOUND 1 (LO 4 BITS)  CAR\r
+MSND2  =1400                   ;MOTOR SOUND 2 (HI 4 BITS)  DRONE\r
+CRSSND =1420                   ;CRASH SOUND (HI 4 BITS)\r
+SKDSND =1440                   ;SKID SOUND ON\r
+DHPOS  =1460                   ;DRONE HORIZ POS.\r
+DVPOS  =1480                   ;DRONE VERT POS.\r
+DROT   =14A0                   ;DRONE ROTATION (LO 5)\r
+DCOL1  =14A0                   ;DRONE COLOR1 (BIT 7)\r
+EMCNTR =14C0                   ;HI 3 BITS (LEFT,CENTER,RIGHT)\r
+ATTRCT =14C0                   ;BIT 2  1=SOUND\r
+TRKLED =14C0                   ;BIT 1 0=ON\r
+STRLED =14C0                   ;BIT 0\r
+MOTZEN =14E0                   ;BIT 0, 0=ON\r
+VIDINV =14E0                   ;BIT 1, 1=INVERT\r
+EXPSND =14E0                   ;BIT 3, 0=ON\r
+\r
+;FOR ALL SWITCHES, 1=ON, 0=OFF\r
+\r
+SWITCH =1800                   ;STARTING ADDRESS OF SWITCHES\r
+STRTSW =1800                   ;BIT 7 START\r
+STEPSW =STRTSW\r
+GEAR1  =1800                   ;BIT 6 FIRST GEAR\r
+DIHOLD =GEAR1\r
+CCRASH =1800                   ;BIT 1 CAR CRASH INPUT\r
+DCRASH =1800                   ;BIT 0 DRONE CRASH INPUT\r
+SLAMSW =1801                   ;BIT 7 SLAM SWITCH\r
+GEAR2  =1801                   ;BIT 6 SECOND GEAR\r
+TESTSW =1802                   ;BIT 7 SELF TEST\r
+GEAR3  =1802                   ;BIT 6 THIRD GEAR\r
+LCOIN  =1803                   ;BIT 7 LEFT COIN SW\r
+TKSEL  =1803                   ;BIT 6 TRACK SELECT SW\r
+MCOIN  =1804                   ;BIT 7 MIDDLE COIN\r
+GASSW  =1804                   ;BIT 6 GAS PEDAL\r
+RCOIN  =1805                   ;BIT 7 RIGHT COIN\r
+VBLANK =1805                   ;BIT 6 VBLANK\r
+STRFLG =1806                   ;BIT 7 STEER FLAG\r
+STRDIR =1806                   ;BIT 6 STEER DIRECTION\r
+CSQSH  =1807                   ;BIT 7 CAR SQUISHY BIT\r
+DSQSH  =1807                   ;BIT 6 DRONE SQUISHY BIT\r
+\r
+OPTS   =1C00\r
+RMECHM =1C00                   ;COIN RIGHT MECH MULTIPLY BITS 2,3\r
+MMECHM =1C00                   ;MIDDLE MECH OPT BIT 4\r
+\r
+SPARE  =1C00                   ;SPARE BIT 5\r
+;COINOP        BIT 0 OF 1C03,1C02\r
+;XPLYOP        BIT 0 OF 1C01,1C00\r
+;TIMEOP        BIT 1 OF 1C03,1C02\r
+;LANGOP        BIT 1 OF 1C01,1C00\r
+RAMCV  =0AA55                  ;RAM VALIDATION VALUE\r
+       .=2B08\r
+       JMP     PWRON           ;COLD START\r
+       .PAGE\r
+       .SBTTL  MAIN LOOP\r
+       .REPT   0\r
+********************\r
+*\r
+*      MAIN LOOP\r
+*\r
+********************\r
+\r
+DESCRIPTION:   SETS UP CAR PROCESSING, CALL ALL MODULES, ETC.\r
+\r
+\r
+REGISTERS:\r
+       IN:\r
+\r
+       OUT:\r
+\r
+STACK USE:     2 BYTES FOR SUBROUTINE CALLS\r
+\r
+\r
+BASE PAGE USE: MODIFY: XINDEX\r
+               READ:   MODE,FRAME\r
+\r
+       .ENDR\r
+;\r
+;MONACO MAIN PROCESSING LOOP\r
+;\r
+MAINLP:        LDX     I,0             ;1=DRONE 0=PLAYER\r
+       STX     D,XINDEX\r
+       CLI\r
+       LDAA    D,STAT\r
+       ANDA    I,5             ;SKID OR SCRATCH\r
+       BNE     CARLP\r
+       STAA    E,SKDRST\r
+\r
+;PROCESS EACH CAR\r
+;\r
+CARLP: LDX     D,XINDEX        ;GET CAR NUMBER/INDEX\r
+       LDAA    D,MODE\r
+       BPL     40$             ;GAME MODE IF MINUS\r
+;\r
+;GAME MODE CAR PROCESSING\r
+;\r
+       JSR     STEER           ;UPDATE DIRECTION, ROTATION\r
+       JSR     CRASH           ;CHECK FOR WALL COLLISIONS\r
+       JSR     SOUND           ;MOTOR SOUNDS\r
+;\r
+;ATTRACT AND GAME CAR PROCESSING\r
+;\r
+40$:   JSR     DIRECT          ;DO SKIDS\r
+       JSR     POSITION        ;MOVE THE CAR\r
+       JSR     AUTO            ;CONTROL DRONE\r
+       LDAA    D,XINDEX+1      ;GET INDEX\r
+       BNE     45$             ;DONE\r
+       JSR     SCROLL          ;BUILD SCREEN\r
+       JSR     SHVUPD\r
+       INC     E,XINDEX+1      ;GO TO NEXT CAR\r
+       BRA     CARLP\r
+45$:\r
+;\r
+;NON-CAR PROCESSING\r
+;\r
+       LDAA    D,MODE\r
+       BMI     50$             ;GAME MODE\r
+       JSR     ATTRACT\r
+       BRA     60$\r
+50$:   JSR     COLLIDE         ;SKIDS, CAR TO CAR COLLISIONS\r
+       JSR     ACCEL           ;ACCELERATE PLAYERS CAR\r
+       JSR     SCORE           ;TEST FOR CHECKPOINTS\r
+;\r
+;MAINTAIN GAME TIMER\r
+;SEQUENCE FROM GAME TO ATTRACT TO GAME\r
+;\r
+60$:   JSR     TIME\r
+;\r
+;WAIT FOR VBLANK\r
+;\r
+       LDAA    D,FRAME\r
+80$:   WAI                     ;WAIT FOR AN NMI\r
+       STAA    E,WTCHDG\r
+       ROL     E,TESTSW\r
+       BCC     90$\r
+       JMP     PWRON\r
+90$:   CMPA    D,FRAME\r
+       BEQ     80$             ;NOT THE NMI YET\r
+       BRA     MAINLP\r
+       .PAGE\r
+       .SBTTL  ATTRACT\r
+ATSTART:\r
+       CLR     E,MODE          ;SET TO ATTRACT MODE\r
+       LDAA    I,10            ;NO SOUND\r
+       STAA    D,VISAVE\r
+       LDAA    I,ATTRK         ;SET TO ATTRACT MAP\r
+       STAA    D,TRKN\r
+       JSR     INIT            ;INITIALIZE\r
+       CLR     E,FRAME\r
+       LDAA    D,SCOR          ;CHECK FOR HISCORE\r
+       CLR     E,TEMP\r
+       LDAB    D,TRAKS\r
+       STAB    D,TEMP+1\r
+       LDX     D,TEMP\r
+       CMPA    X,HISCR         ;IS SCORE > HISCORE?\r
+       BLS     30$             ;NO\r
+       STAA    X,HISCR         ;YES\r
+30$:   JMP     SCORIT          ;"SCORE" AND RETURN VIA IT\r
+ATTRACT:\r
+;AT 4 MIN INTERVAL RESET ATTRACT\r
+       LDAA    D,FRAME\r
+       ANDA    I,6F\r
+       BNE     5$\r
+       LDAA    D,RSTTIM\r
+       INCA\r
+       STAA    D,RSTTIM\r
+       BEQ     ATSTART\r
+       CMPA    I,30.\r
+       BNE     5$\r
+       JSR     TRKSL0          ;RESET TO EASY TRACK\r
+5$:    LDAA    D,ATSAVE        ;TURN SOUNDS OFF\r
+       LDAB    D,$$CRDT        ;AND BLINK TRACK SELECT LED IF CREDIT\r
+       BEQ     10$\r
+       LDAB    D,FRAME\r
+       ANDB    I,7\r
+       BNE     10$\r
+       EORA    I,2\r
+       ANDA    I,0FE           ;START LED IS JUST ON\r
+10$:   ANDA    I,0FB\r
+       STAA    D,ATSAVE        ;STAY ON ATTRACT MAP AT SPEED\r
+15$:   LDAA    I,80\r
+       STAA    D,VEL\r
+       LDAA    I,8\r
+       STAA    D,VPOS\r
+       LDAA    I,6\r
+       STAA    D,ROTOUT\r
+       LDAA    I,30\r
+       STAA    D,ROTATE\r
+       STAA    D,DIREC\r
+       LDAA    D,HPOS          ;CHECK FOR CELL CROSSING\r
+       ANDA    I,0F0\r
+       CMPA    D,SCRCNT        ;NO CELL CROSSING\r
+       BEQ     20$\r
+       JSR     STDRN           ;START A DRONE\r
+20$:   LDAA    D,HPOS          ;UPDATE OLD POS POINTER\r
+       ANDA    I,0F0\r
+       STAA    D,SCRCNT\r
+       LDAA    D,STAT\r
+       BNE     80$\r
+25$:   LDAA    D,FRAME         ;TAKE TURNS\r
+       BMI     40$\r
+       CMPA    I,2\r
+       BHI     ATEND\r
+       LDAB    I,2             ;RATING\r
+       LDAA    D,SCOR\r
+       CMPA    D,SOCMP\r
+       BCS     30$             ;"SORRY"\r
+       ADDB    I,2\r
+       CMPA    D,GOODCMP\r
+       BCS     30$             ;"SO-SO"\r
+       ADDB    I,2\r
+       CMPA    D,ACECMP\r
+       BCS     30$             ;"GOOD"\r
+       ADDB    I,2             ;"ACE"\r
+30$:   LDAA    I,7             ;LOCATION\r
+       JSR     MESSAGE\r
+       LDAB    I,16            ;"INSERT COIN"\r
+       LDAA    I,27\r
+       JSR     MESSAGE\r
+       BRA     ATEND\r
+40$:   CMPA    I,81            ;TOP SCORE AND BONUS FOR\r
+       BHI     45$             ;OUTPUT MESSAGE ONCE\r
+       LDAB    I,0E            ;"TOP SCORE"\r
+       LDAA    I,7\r
+       JSR     MESSAGE\r
+45$:   CLR     E,TEMP\r
+       LDAA    D,TRAKS\r
+       STAA    D,TEMP+1\r
+       LDX     D,TEMP\r
+       LDAA    X,HISCR\r
+       LDX     I,HISMSD        ;SHOW IT\r
+       JSR     DISDIG\r
+       LDAA    D,XTDSCR        ;"BONUS FOR"\r
+       BEQ     70$\r
+       LDAA    D,FRAME         ;OUTPUT MESSAGE ONCE\r
+       CMPA    I,81\r
+       BHI     55$\r
+       LDAB    I,0C\r
+       LDAA    I,27\r
+       JSR     MESSAGE\r
+55$:   LDAA    D,XTDSCR\r
+       LDX     I,BFMSD         ;SHOW IT\r
+       JSR     DISDIG\r
+       BRA     ATEND\r
+70$:   CLRB                    ;BLANK MESSAGE\r
+       LDAA    I,27\r
+       JSR     MESSAGE\r
+       BRA     ATEND\r
+80$:   LDAA    D,FRAME         ;SELECT TRACK+PUSH START\r
+       BMI     40$\r
+       BNE     ATEND\r
+       LDAB    I,12\r
+       LDAA    I,7\r
+       JSR     MESSAGE\r
+       LDAB    I,10\r
+       LDAA    I,27\r
+       JSR     MESSAGE\r
+ATEND: LDAA    E,STRTSW        ;START SWITCH?\r
+       BPL     80$             ;NO\r
+       LDAA    D,$$CRDT        ;MONEY?\r
+       BEQ     90$             ;NO\r
+       DEC     E,$$CRDT        ;YES, START GAME\r
+       LDAA    I,80\r
+       STAA    D,MODE\r
+       LDAA    D,TRAKS\r
+       STAA    D,TRKN          ;SET TRACK NO.\r
+       JSR     INIT            ;INITIALIZE AND DRAW SCREEN\r
+       LDAA    D,ATSAVE        ;TURN SOUNDS ON\r
+       ORAA    I,7             ;AND LEDS OFF\r
+       STAA    D,ATSAVE\r
+       LDAA    I,90            ;START AT 90 FUEL UNITS\r
+       STAA    D,FUEL\r
+       LDX     I,FUEMSD        ;DISPLAY IT\r
+       JSR     DISDIG\r
+       LDAA    I,7             ;"FUEL"\r
+       LDAB    I,0A\r
+       JSR     MESSAGE\r
+       LDAA    D,TMESAV\r
+       STAA    D,FUELTM\r
+       CLRA                    ;"SCORE"\r
+       LDAB    I,0B\r
+       JSR     MESSAGE\r
+       CLR     E,SCOR  \r
+       STAA    E,CCRST\r
+       STAA    E,DCRST\r
+80$:   LDAA    D,$$CRDT\r
+       BEQ     90$\r
+       LDAA    D,FRAME\r
+       CMPA    I,0FF\r
+       BNE     90$\r
+       STAA    D,STAT\r
+90$:\r
+100$:  RTS\r
+       .PAGE\r
+       .SBTTL  INDEX\r
+       .REPT   0\r
+*************************\r
+*\r
+*      INDEX\r
+*\r
+*************************\r
+\r
+DESCRIPTION:   ADD ACCUMULATOR B TO INDEX REGISTER X.\r
+\r
+\r
+REGISTERS:\r
+       IN:     B,X\r
+\r
+       OUT:    B IS DESTROYED, X=X+B\r
+\r
+\r
+STACK USE:     2 BYTES FOR RETURN ADDRESS\r
+\r
+\r
+\r
+\r
+\r
+BASE PAGE USE: MODIFY: XTEMP,XTEMP+1\r
+\r
+\r
+\r
+\r
+\r
+       .ENDR\r
+INDEX: STX     D,XTEMP\r
+       ADDB    D,XTEMP+1       ;ADD B TO L.S. BYTE OF X\r
+       STAB    D,XTEMP+1\r
+       BCC     10$\r
+       INC     E,XTEMP         ;ADD CARRY IF ANY\r
+10$:   LDX     D,XTEMP         ;NEW VALUE TO X\r
+       RTS\r
+       .PAGE\r
+       .SBTTL  INITIALIZE\r
+       .REPT   0\r
+*************************\r
+*\r
+*      INIT\r
+*\r
+*************************\r
+\r
+DESCRIPTION:   INITIALIZATION ROUTINE FOR STATE CHANGES (ATTRACT,GAME) CLEARS\r
+               MEMORY FROM 00 TO N WHERE N IS DEFINED AS THE LAST STATE VARIABLE\r
+\r
+REGISTERS:\r
+       IN:\r
+\r
+       OUT:\r
+\r
+\r
+STACK USE:     2 BYTES FOR RETURN ADDRESS\r
+\r
+\r
+\r
+\r
+\r
+BASE PAGE USE: ALL STATE VARIABLES AND ALPHA/NUMERICS\r
+\r
+\r
+\r
+\r
+\r
+       .ENDR\r
+INIT:  LDX     I,N             ;LAST STATE VARIABLE\r
+       CLRA                    ;GET A ZERO\r
+10$:   STAA    X,0             ;STORE UNTIL LOCATION ZERO\r
+       DEX\r
+       BNE     10$\r
+       STAA    D,0\r
+       LDAA    I,8             ;INITIALIZE POSITIONS\r
+       STAA    D,HPOS          ;PLAYER\r
+       STAA    D,HPOS+1        ;DRONE\r
+       LDAB    D,MODE          ;ATTRACT MODE?\r
+       BEQ     20$             ;YES\r
+       LDAA    I,16            ;NO, GAME MODE\r
+       STAA    D,VPOS          ;PLAYER\r
+       LDAA    I,19\r
+       BRA     25$\r
+20$:   LDAA    I,8             ;ATTRACT\r
+       STAA    D,VPOS          ;PLAYER\r
+       LDAA    I,0A\r
+25$:\r
+       STAA    D,VPOS+1        ;DRONE\r
+       STAA    D,DVISBL\r
+       LDAA    I,30\r
+       STAA    D,DIREC         ;ROTATIONS\r
+       STAA    D,DIREC+1\r
+       STAA    D,ROTATE\r
+       STAA    D,ROTATE+1\r
+       LDAA    I,6\r
+       STAA    D,ROTOUT\r
+       INCA\r
+       STAA    D,ROTOUT+1\r
+       JSR     SCROLL\r
+       JSR     SHVUPD\r
+       JSR     SCROUT          ;OUTPUT A SCREEN\r
+       LDAA    I,0F0\r
+       STAA    D,CRSHSV        ;NO CRASH SOUND\r
+       LDAB    D,TRAKS\r
+       JMP     TRKSL2\r
+       .PAGE\r
+       .SBTTL  OPTION\r
+       .REPT   0\r
+*****************************\r
+*\r
+*      OPTION\r
+*\r
+*****************************\r
+\r
+DESCRIPTION:   READS AND INTERPRETS THE OPTION SWITCHES.\r
+               STORES RESULT IN BASE PAGE LOCATIONS FOR LATER USE.\r
+\r
+\r
+REGISTERS:\r
+       IN:\r
+\r
+       OUT:    A,B-BLITZED\r
+\r
+STACK USE:     2 BYTES RETURN ADDRESS\r
+\r
+BASE PAGE USE: MODIFY: TEMP,TEMP+1\r
+               WRITE:  FUELTM,TMESAV,XTDSCR,COST,$CMODE\r
+\r
+       .ENDR\r
+\r
+OPTION:        LDAA    E,OPTS+3        ;GET TIME/FUEL OPTION\r
+       COMA\r
+       ANDA    I,2\r
+       LDAB    E,OPTS+2\r
+       COMB\r
+       ANDB    I,2\r
+       LSRB\r
+       ABA\r
+       STAA    D,TEMP+1\r
+       LDAA    I,TMETBL/100\r
+       STAA    D,TEMP\r
+       LDX     D,TEMP\r
+       LDAA    X,TMETBL&0FF\r
+       STAA    D,TMESAV        ;USED TO RESET IN TIME\r
+                               ;BONUS, LOOK IT UP\r
+       LDAA    D,TRAKS         ;TRAK*6\r
+       ASLA\r
+       TAB\r
+       ASLA\r
+       ABA\r
+       LDAB    D,TEMP+1        ;TIME/FUEL\r
+       ABA\r
+       TAB\r
+       INCB                    ;+2\r
+       INCB\r
+       LDX     I,XPLTBL\r
+       JSR     INDEX\r
+       LDAA    E,OPTS+1        ;GET BONUS OPTION\r
+       COMA\r
+       ANDA    I,1\r
+       ASLA\r
+       LDAB    E,OPTS\r
+       COMB\r
+       ANDB    I,1\r
+       ABA\r
+       BEQ     40$             ;NO BONUS\r
+       CMPA    I,1\r
+       BNE     20$\r
+       LDAA    I,99            ;-1. LIBERAL\r
+       BRA     30$\r
+20$:   CMPA    I,2\r
+       BNE     25$\r
+       CLRA                    ;0 STANDARD\r
+       BRA     30$\r
+25$:   LDAA    I,1             ;1. CONSERVATIVE\r
+30$:   LDAB    X,0             ;GET VALUE\r
+       ABA                     ;ADD BONUS OFFSET\r
+       DAA\r
+40$:   STAA    D,XTDSCR\r
+       STAA    D,ACECMP\r
+       DEX\r
+       LDAA    X,0\r
+       STAA    D,GOODCMP\r
+       DEX\r
+       LDAA    X,0\r
+       STAA    D,SOCMP\r
+                               ;GET COIN OPTIONS\r
+       LDAA    E,OPTS+3\r
+       COMA\r
+       ANDA    I,1\r
+       ASLA\r
+       LDAB    E,OPTS+2\r
+       COMB\r
+       ANDB    I,1\r
+       ABA\r
+       BNE     50$\r
+       LDAA    I,1             ;FREE PLAY\r
+       STAA    D,$$CRDT\r
+50$:\r
+                               ;GET MECH MULTIPLIERS\r
+       LDAB    E,RMECHM        \r
+       COMB\r
+       ANDB    I,1C\r
+       ABA\r
+       STAA    D,$CMODE\r
+       LDX     D,XINDEX\r
+       RTS\r
+\f      .SBTTL   STEERING\r
+       .REPT 0\r
+***************************\r
+*\r
+*      STEER\r
+*\r
+***************************\r
+       \r
+DESCRIPTION:   STEERING FOR ALL CARS\r
+       \r
+REGISTERS:\r
+       IN:     X=CAR #\r
+       OUT:    X RESTORED; A,B-BLIZTED\r
+       \r
+STACK USE:     2 BYTES FOR RETURN ADDRESS\r
+       \r
+BASE PAGE USE: READ: XINDEX,VEL,CRSCNT\r
+               MODIFY: ROTATE,ROTOUT,DIREC     \r
+       .ENDR\r
+STEER: LDAA    D,XINDEX+1      ;TEST FOR PLAYER CAR\r
+       BNE     50$             ;DRONE, NO STEERING WHEEL\r
+       LDAA    E,STRFLG        ;CHECK STEERING\r
+       BMI     50$             ;NO CHANGE . DONT CHANGE\r
+       LDAB    D,VEL           ;STEER INCREMENT =\r
+       ANDB    I,0F8\r
+       BEQ     10$             ;NO MOTION IF STILL\r
+       CMPB    I,40            ;1,2,2,2\r
+       BLS     5$\r
+       LDAB    I,1\r
+5$:    ADDB    I,1\r
+       ANDB    I,3\r
+;      ROLB                    ;1,2,2,3\r
+;      ROLB\r
+;      ANDB    I,1\r
+;      ADCB    I,1\r
+10$:   ASLA                    ;GET DIRECTION TO CARRY\r
+       ASLA\r
+       LDAA    X,STAT\r
+       ORAA    I,80\r
+       BCC     12$\r
+       ANDA    I,7F\r
+12$:   STAA    X,STAT\r
+       BCC     15$\r
+       NEGB\r
+15$:   LDAA    D,ROTATE        ;UPDATE ROTATION\r
+       JSR     MOD24\r
+30$:   STAA    D,ROTATE        \r
+       STAA    E,STRRST        ;RESET STEERING LATCH\r
+50$:   RTS\r
+DIRECT:        LDAA    D,XINDEX+1\r
+       BNE     2$\r
+       LDAA    D,CRSCNT\r
+       BNE     3$\r
+2$:    LDAB    X,ROTATE\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       LDX     I,ROTTAB\r
+       JSR     INDEX\r
+       LDAA    X,0\r
+       LDX     D,XINDEX\r
+       STAA    X,ROTOUT\r
+3$:    CPX     I,0\r
+       BNE     80$ \r
+       LDAA    I,2\r
+       TST     X,VEL           ;FAST OR SLOW?\r
+       BEQ     80$\r
+       BMI     5$\r
+       INCA                    ;UPDATE TEST IF GOING SLOW\r
+5$:\r
+       LDAB    X,ROTATE\r
+       SUBB    X,DIREC\r
+       STAB    D,TEMP          ;FOR SIGN TEST NEAR 30$\r
+       BPL     10$\r
+       NEGA                    ;IF NEGATIVE, NEGATE PARAMETERS\r
+       NEGB\r
+10$:   CMPB    I,0A            ;SKID IF DIF > 0A\r
+       BLS     15$\r
+       CMPB    I,30            ;AND < 30\r
+       BCC     15$\r
+       TST     E,CRSCNT        ;AND NOT CRASH\r
+       BNE     15$\r
+       STAB    E,SKDSND\r
+15$:   CMPB    I,02\r
+       BHI     20$\r
+       LDAA    X,ROTATE\r
+       BRA     70$\r
+20$:   ADDA    X,DIREC\r
+       LDAB    D,TEMP\r
+       JSR     MOD24A\r
+70$:   STAA    X,DIREC\r
+80$:   RTS\r
+       .PAGE\r
+       .SBTTL  CRASH\r
+       .REPT 0\r
+***********************\r
+*\r
+*      CRASH\r
+*\r
+***********************\r
+       \r
+DESCRIPTION:   CRASH SEQUENCE FOR PLAYER CAR\r
+       \r
+REGISTERS:\r
+       IN:\r
+       OUT:    A,B-BLITZED\r
+       \r
+STACK USED:    2 BYTES RETURN ADDRESS\r
+       \r
+BASE PAGE USE: MODIFY:STAT,VEL,CRSCNT,ROTATE,CRSHSV\r
+       \r
+       .ENDR\r
+CRASH: LDX     D,XINDEX\r
+       BNE     51$\r
+5$:    LDAA    D,CRSCNT        ;CRASHED ALREADY?\r
+       BNE     20$             ;YES\r
+       LDAA    D,STAT          ;CRASH?\r
+       ANDA    I,2\r
+       BEQ     30$             ;NO\r
+       LDAB    I,30\r
+       LDAA    D,CRSTIM\r
+       BEQ     10$\r
+       STAB    D,CRSTIM\r
+       BRA     30$\r
+10$:\r
+                               ;CRASH TIMER NOT 0, SET UP AGAIN\r
+       STAB    D,CRSTIM        ;ELSE, FIRST TIME THROUGH HERE\r
+       CLR     E,CRSHSV        ;SET CRASH SOUND\r
+       CLR     E,VEL\r
+       JSR     STDRN\r
+20$:   LDAA    D,CRSCNT                ;INCREMENT CRASH COUNTER\r
+       ADDA    I,4\r
+       STAA    D,CRSCNT\r
+                               ;FLIP/FLOP ROTATION 7 -- CRASHED CAR\r
+       LDAA    D,FRAME\r
+       ANDA    I,7             ;ADD THE CAR PICTURE IN\r
+       CMPA    I,5\r
+       BNE     23$\r
+       LDAB    D,ROTATE\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       LDX     I,ROTTAB\r
+       JSR     INDEX\r
+       LDAB    X,0\r
+       LDX     D,XINDEX\r
+       STAB    D,ROTOUT\r
+23$:   ANDA    I,7\r
+       BNE     26$\r
+       LDAA    D,FRAME         ;CIRCULAR MOTION FOR FLAMING PIC\r
+       ANDA    I,18\r
+       CMPA    I,10\r
+       BCS     25$\r
+       EORA    I,8\r
+25$:   ADDA    I,7\r
+       STAA    D,ROTOUT\r
+26$:   LDAA    D,FRAME\r
+       ANDA    I,3\r
+       BNE     28$\r
+       LDAB    D,VISAVE        ;FLASH VIDEO\r
+       EORB    I,80\r
+       STAB    D,VISAVE\r
+28$:   CLR     E,VEL           ;SET VELOCITY TO 0\r
+       RTS\r
+30$:   LDAA    D,CRSTIM\r
+       BEQ     50$\r
+       DECA                    ;DECREMENT TIMER\r
+       STAA    D,CRSTIM\r
+50$:   RTS\r
+51$:                           ;DRONE\r
+       LDAA    X,STAT          ;CRASH?\r
+       ANDA    I,2\r
+       BEQ     80$             ;NO\r
+       LDAB    I,60\r
+       LDAA    X,CRSTIM        ;ALREADY DETECTED?\r
+       BEQ     60$             ;NO\r
+       STAB    X,CRSTIM        ;YES\r
+       BRA     80$\r
+60$:   STAB    X,CRSTIM        ;SET TIMER\r
+       CLR     X,VEL           ;KILL VELOCITY\r
+       LDAB    D,CRSHSV        ;CRASH LOUD?\r
+       BPL     80$             ;YES, LEAVE ALONE\r
+       LDAA    I,80\r
+       STAA    D,CRSHSV\r
+80$:   LDAA    X,CRSTIM        ;DONE?\r
+       BEQ     90$             ;YES\r
+       DEC     X,CRSTIM        ;NO\r
+90$:   RTS\r
+\r
+       .PAGE\r
+       .SBTTL   SOUND\r
+       .REPT 0\r
+************************\r
+*\r
+*      SOUND\r
+*\r
+************************\r
+       \r
+DESCRIPTION:   OUTPUT MOTOR SOUND FOR PLAYER AND DRONE.\r
+               HANDLE CRASH AND EXTENDED PLAY SOUNDS\r
+\r
+       \r
+REGISTERS:\r
+       IN:\r
+       OUT:A,B - BLIZTED\r
+       \r
+STACK USE:     2 BYTE FOR RETURN ADDRESS\r
+       \r
+BASE PAGE USE: READ:ROTATE,VEL,GEAR,XINDEX\r
+               MODIFY:TEMP,SOUNDS\r
+       \r
+       .ENDR\r
+SOUND: LDAA    D,XINDEX+1\r
+       BEQ     20$             ;PLAYER\r
+       LDAA    D,HPOS          ;DRONE SOUND DEPENDS ON DISTANCE FROM PLAYER\r
+       SUBA    D,HPOS+1\r
+       BMI     5$\r
+       COMA\r
+5$:    CMPA    I,0F0\r
+       BCC     7$\r
+       CLRA\r
+7$:\r
+       LDAB    D,VPOS\r
+       SUBB    D,VPOS+1\r
+       BMI     10$\r
+       COMB\r
+10$:   CMPB    I,0F0\r
+       BCC     12$\r
+       CLRB\r
+12$:\r
+       CBA\r
+       BHI     15$\r
+       TAB\r
+15$:   \r
+       ANDB    I,0F\r
+       LDAA    D,VISAVE\r
+       ANDA    I,0F0           ;DRONE VOLUME\r
+       ABA                     ;CONTROL\r
+       STAA    D,VISAVE\r
+       LDAB    D,VEL+1         ;FREQ. CONTROL\r
+       ANDB    I,0F0\r
+       LDAA    D,SOUNDS\r
+       ANDA    I,0F\r
+       BRA     100$\r
+20$:   LDAA    D,VEL           ;PLAYER\r
+       LSRA\r
+       LSRA\r
+       LSRA\r
+       STAA    D,TEMP\r
+       LDAB    D,GEAR\r
+       LDX     I,RATIO\r
+       JSR     INDEX\r
+       LDAB    X,0             ;GET GEAR RPM RATIO\r
+       LDX     D,XINDEX        ;RESTORE X\r
+40$:   ADDA    D,TEMP          ;VEL*RATIO\r
+       DECB\r
+       BNE     40$\r
+       RORA\r
+       LSRA\r
+       LSRA                    ;VEL*RATIO/8\r
+       LDAB    D,GEAR\r
+       ASLB\r
+       SBA\r
+       BPL     60$\r
+       CLRA\r
+60$:   CMPA    I,0F\r
+       BLS     80$\r
+       LDAA    I,0F\r
+80$:   LDAB    D,SOUNDS\r
+       ANDB    I,0F0\r
+100$:  ABA\r
+       STAA    D,SOUNDS        ;OUTPUT TO SOUND REG\r
+       COMA\r
+       STAA    E,MSND1\r
+\r
+SNDCRS:        LDAA    D,CRSHSV        ;CRASH SOUND HANDLER\r
+       CMPA    I,0F0\r
+       BEQ     30$\r
+       LDAB    D,FRAME\r
+       ANDB    I,7\r
+       BNE     30$\r
+       ADDA    I,8\r
+       STAA    D,CRSHSV\r
+30$:   LDAB    D,CRSTIM\r
+       BNE     40$\r
+       LDAB    D,VEL\r
+       ANDB    I,0F0\r
+       BEQ     40$\r
+       LDAB    D,STAT\r
+       ANDB    I,8             ;SQUISHY?\r
+       BEQ     40$             ;NO\r
+       LDAB    D,VPOSL+1       ;RANDOM NUMBER\r
+       EORB    D,HPOSL+1\r
+       EORB    D,FRAME\r
+       RORB\r
+       RORB\r
+       ANDB    I,2             ;RANDOMLY ADD SKID\r
+       BEQ     40$\r
+       STAA    E,SKDSND\r
+40$:   STAA    E,CRSSND\r
+\r
+\r
+;EXTENDED PLAY SOUND HANDLER\r
+       LDAA    D,XINDEX+1\r
+       BNE     60$             ;ONLY ONCE PER FRAME\r
+       LDAA    D,BEEP          ;WANT THE BEEPER ON???\r
+       BEQ     60$             ;NO\r
+       DECA                    ;YES,  DEC BEEP TIMER\r
+       STAA    D,BEEP\r
+       COMA\r
+       ANDA    I,8             ;TOGGLE BEEP BIT EACH 8TH FRAME\r
+       ASLA\r
+       LDAB    D,VISAVE\r
+       ANDB    I,0EF\r
+       ABA\r
+       STAA    D,VISAVE\r
+60$:   RTS\r
+       .PAGE\r
+       .SBTTL   POSITION\r
+       .REPT 0\r
+*************************\r
+*\r
+*      POSITION\r
+*\r
+*************************      \r
+       \r
+DESCRIPTION:   UPDATES THE CAR POSITION\r
+       \r
+REGISTERS:\r
+       IN:     X INDEX FOR CAR/DRONE\r
+       OUT:    A,B-BLIZTED; X-RESTORED\r
+       \r
+STACK USE:     2 BYTES RETURN ADDRESS\r
+               2 BYTES FOR SUB CALL\r
+       \r
+BASE PAGE USE: VEL,DIREC,HINC,VINC,XTEMP,TEMP\r
+               HPOS,HPOSL,VPOS,VPOSL,MULT0\r
+               MULT1,MULT2,MULT3\r
+       .ENDR\r
+       \r
+POSITION:\r
+       LDAA    X,VEL           ;GET CAR VELOCITY\r
+       BEQ     30$             ;VEL=0, DON'T UPDATE\r
+       LSRA\r
+       LSRA\r
+       LSRA                    ;KEEP VEL/8 IN MULT2\r
+       STAA    D,MULT2\r
+       LDAB    X,DIREC         ;GET DIRECTION\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       STAB    D,TEMP+1\r
+       LDX     I,HOFF\r
+       JSR     INDEX\r
+       LDAB    X,0\r
+       BEQ     20$             ;GO DO VERTICAL\r
+       JSR     MULT            ;GET VEL*HOFF\r
+       LDX     D,XINDEX        \r
+       STAA    X,HINC\r
+       ADDA    X,HPOSL         ;ADD TO POSITON (L)\r
+       STAA    X,HPOSL\r
+       LDAA    I,0             ;ADD TO HIGH BYTE-PRESERVE CARRY\r
+       LDAB    D,MULT0\r
+       BPL     15$\r
+       DECA                    ;IF MINUS, EXTEND SIGN\r
+15$:   ADCA    X,HPOS\r
+       ANDA    I,7F\r
+       STAA    X,HPOS\r
+20$:   LDAB    D,TEMP+1        ;DO VERTICAL\r
+       LDX     I,VOFF\r
+       JSR     INDEX\r
+       LDAB    X,0\r
+       BEQ     30$             ;END\r
+       JSR     MULT            ;GET VEL*VOFF\r
+       LDX     D,XINDEX\r
+       STAA    X,VINC          ;SAVE VERT DIRECTION\r
+       ADDA    X,VPOSL\r
+       STAA    X,VPOSL\r
+       LDAA    I,0             ;ADD TO HIGH BYTE-PRESERVE CARRY\r
+       LDAB    D,MULT0\r
+       BPL     25$\r
+       DECA                    ;IF MINUS EXTEND SIGN\r
+25$:   ADCA    X,VPOS\r
+       ANDA    I,7F\r
+       STAA    X,VPOS\r
+30$:   LDX     D,XINDEX        ;RESTORE CAR INDEX\r
+       BNE     35$             ;SKIP IF PLAYER, ELSE\r
+;\r
+;FINDOUT IF THE PLAYER HAS CHANGED CELLS\r
+;\r
+       LDAA    D,HPOS\r
+       ANDA    I,0F0           ;EXTRACT CELL NUMBER\r
+       LDAB    D,POSNOW\r
+       ANDB    I,0F0\r
+       CBA\r
+       BNE     32$             ;A NEW CELL\r
+       LDAA    D,VPOS\r
+       ANDA    I,0F0           ;EXTRACT CELL NUMBER\r
+       LDAB    D,POSNOW+VPOS-HPOS\r
+       ANDB    I,0F0\r
+       CBA\r
+       BNE     32$             ;IN A NEW CELL\r
+       RTS\r
+;\r
+;IN A NEW CELL SAVE CURRENT POSITION TO START THE DRONE\r
+;\r
+32$:   LDX     I,8.            ;MOVE INDEX\r
+33$:   LDAA    X,POSNOW-2      ;CURRENT POSITION\r
+       STAA    X,POSLAST-2     ;BECOMES LAST\r
+       LDAA    X,HPOS-2        ;NEW CURRENT POSITION\r
+       STAA    X,POSNOW-2      ;SAVED\r
+       DEX\r
+       DEX\r
+       BNE     33$\r
+       LDX     D,XINDEX        ;RESTORE X\r
+       RTS\r
+;\r
+;\r
+35$:   LDAA    X,VPOSL         ;CALCULATE SCREEN POS FOR DRONE\r
+       SUBA    D,SVPOS+1       ;VERTICAL\r
+       STAA    D,DRONEV+1\r
+       LDAA    X,VPOS\r
+       SBCA    D,SVPOS\r
+       ANDA    I,7F\r
+       STAA    D,DRONEV\r
+       ADDA    I,1\r
+       ANDA    I,70\r
+       BNE     100$            ;MUST BE LESS THAN 10 TO BE SEEN\r
+       LDAA    D,DRONEV+1      ;SHIFT DP # OVER 4\r
+       LDAB    D,DRONEV\r
+       ASLA\r
+       ROLB\r
+       ASLA\r
+       ROLB\r
+       ASLA\r
+       ROLB\r
+       ASLA\r
+       ROLB                    ;B=CO-ORD OF DRONE RELATIVE TO SCREEN POS\r
+       LDAA    D,ROTOUT+1\r
+       BITA    I,8\r
+       BNE     50$\r
+       LDAA    I,0F0\r
+       SBA\r
+       BRA     55$\r
+50$:   LDAA    I,10\r
+       ABA\r
+55$:   STAA    D,DRONEV\r
+       LDAB    D,ROTOUT+1\r
+       ANDB    I,8\r
+       BNE     57$\r
+       CMPA    I,0F2\r
+       BHI     100$\r
+       TSTA\r
+       BEQ     100$\r
+       BRA     58$\r
+57$:\r
+       CMPA    I,0E\r
+       BLS     100$            ;NOT VISIBLE\r
+58$:   LDAA    X,HPOSL         ;DO HORIZ\r
+       SUBA    D,SHPOS+1\r
+       STAA    D,DRONEH+1\r
+       LDAA    X,HPOS\r
+       SBCA    D,SHPOS\r
+       ANDA    I,7F\r
+       STAA    D,DRONEH\r
+       ANDA    I,70\r
+       BNE     100$            ;NOT ON SCREEN\r
+       LDAA    D,DRONEH+1\r
+       LDAB    D,DRONEH\r
+       ASLA\r
+       ROLB\r
+       ASLA\r
+       ROLB\r
+       ASLA\r
+       ROLB\r
+       ASLA\r
+       ROLB                    ;B=CO-ORD OF DRONE RELATIVE TO SCREEN POS\r
+       LDAA    D,ROTOUT+1\r
+       BITA    I,10\r
+       BNE     60$\r
+       LDAA    I,0F0\r
+       SBA\r
+       BRA     65$\r
+60$:   LDAA    I,0D\r
+       ABA\r
+65$:   STAA    D,DRONEH\r
+       LDAB    D,ROTOUT+1\r
+       ANDB    I,10\r
+       BNE     80$\r
+       CMPA    I,0F7\r
+       BHI     85$\r
+       CMPA    I,0EA\r
+       BLS     85$\r
+       BRA     100$            ;NOT VISIBLE\r
+80$:   CMPA    I,5\r
+       BLS     85$\r
+       CMPA    I,12\r
+       BLS     100$\r
+85$:   LDAB    I,1\r
+       STAB    D,DVISBL\r
+90$:   RTS\r
+100$:  LDAA    I,7\r
+       STAA    D,ROTOUT+1\r
+       CLR     E,DVISBL        ;0=NOT VISIBLE\r
+       RTS\r
+;MULTIPLY ROUTINE\r
+;MULT0=MSB OF RESULT\r
+;MULT1=LSB OF RESULT\r
+;MULT2=TEMP STORAGE FOR A SET BEFORE CALL\r
+;MULT3=TEMP STORAGE FOR B\r
+;A+B+OR-A,B SAVED X, BLITZED\r
+MULT:  STAB    MULT3           ;SAVE ENTRY B\r
+       BPL     1$\r
+       NEGB                    ;!B!\r
+1$:    LDX     I,4             ;BIT COUNT\r
+       CLRA                    ;PRODUCT=0\r
+       LSRB                    ;START SHIFTING MPLIER\r
+2$:    BCC     3$\r
+       ADDA    MULT2           ;ADD MCAND TO PROD IF MPLIER BIT=1\r
+3$:    LSRA                    ;SHIFT PROD. DOWN\r
+       RORB                    ;DOUBLE PREC\r
+       DEX\r
+       BNE     2$              ;LOOP\r
+       TST     MULT3           ;CHECK ORIG SIGN OF MPLIER\r
+       BPL     4$\r
+       NEGA                    ;NEGATE PROD IF MPLIER NEG\r
+       NEGB\r
+       SBCA    I,0\r
+4$:    ASLB\r
+       ROLA\r
+       ASLB\r
+       ROLA\r
+       STAA    MULT0           ;SAVE PRODUCT\r
+       RTS\r
+       .PAGE\r
+       .SBTTL  COLLIDE\r
+       .REPT 0\r
+************************\r
+*\r
+*      COLLIDE\r
+*\r
+************************\r
+       \r
+DESCRIPTION:   DETECT CAR TO DRONE COLLISION\r
+               IF SO, SKID\r
+       \r
+REGISTERS:\r
+       IN:\r
+       OUT:    A,B-BLITZED\r
+       \r
+STACK USE:     2 BYTES FOR RETURN ADDRESS\r
+       \r
+BASE PAGE USE: READ:FRAME,DVISBL,DRONEV(2),DRONEH(2),CRSCNT\r
+               MODIFY:TEMP,STAT,ROTATE\r
+       \r
+       .ENDR\r
+COLLIDE:LDAA   D,FRAME         ;ODD FRAMES ONLY\r
+       RORA\r
+       BCS     5$\r
+       JMP     100$\r
+5$:    CLR     E,SPNFLG\r
+       LDAA    D,STAT          ;CLEAR STATUS BITS\r
+       ANDA    I,0FE\r
+       STAA    D,STAT\r
+       LDAA    D,STAT+1\r
+       ANDA    I,0FE\r
+       STAA    D,STAT+1\r
+       LDAB    D,DVISBL\r
+       BEQ     100$            ;NOT VISIBLE, EXIT\r
+       LDX     I,4\r
+10$:   LDAA    X,HPOSL         ;CHECK FOR COLLISION\r
+       SUBA    X,HPOSL+1               ;VERTICAL FIRST\r
+       LDAB    X,HPOS\r
+       SBCB    X,HPOS+1\r
+       ASLA\r
+       ROLB\r
+       ASLA\r
+       ROLB\r
+       ASLA\r
+       ROLB\r
+       ASLA\r
+       ROLB\r
+       BPL     30$\r
+       NEGB\r
+30$:   CMPB    I,5             ;4 X 4 - SPINOUT\r
+       BHI     40$\r
+       INC     E,SPNFLG\r
+40$:   CMPB    I,12            ;12 X 12 BOX - NUDGE\r
+       BHI     100$\r
+       DEX\r
+       DEX\r
+       DEX\r
+       DEX                     ;NOW CHECK HORIZONTAL\r
+       BEQ     10$\r
+       LDAA    D,DSKDCT\r
+       BNE     42$\r
+       LDAA    I,10\r
+       STAA    D,DSKDCT\r
+42$:   LDAB    D,SPNCNT\r
+       BNE     SPNOUT\r
+       LDAA    D,SPNFLG\r
+       CMPA    I,2\r
+       BNE     45$\r
+       LDAA    I,0A0\r
+       STAA    D,SPNCNT\r
+       LDAA    D,ROTATE        ;SET UP FOR SPINOUT\r
+       LSRA\r
+       LSRA\r
+       LSRA\r
+       STAA    D,SPNROT\r
+45$:   STAA    E,SKDSND\r
+       LDAB    I,4\r
+       LDAA    D,STAT\r
+       BMI     50$\r
+       NEGB\r
+50$:   ORAA    I,1             ;SET PLAYER SKID STATUS\r
+       STAA    D,STAT\r
+       LDAA    D,STAT+1        ;DRONE STATUS\r
+       ORAA    I,1\r
+       STAA    D,STAT+1        ;VEER DUE TO LIGHT COLLISION\r
+       LDAA    D,SPNCNT\r
+       BNE     SPNOUT\r
+       LDAA    D,ROTATE\r
+       JSR     MOD24\r
+       STAA    D,ROTATE\r
+100$:  LDAA    D,SPNCNT\r
+       BNE     45$\r
+110$:  LDX     D,XINDEX\r
+       RTS\r
+SPNOUT:        LDAA    D,SPNCNT        ;SPINOUT DUE TO HARD COLLISION\r
+       ADDA    I,4\r
+       STAA    D,SPNCNT\r
+       LDAB    D,CRSCNT\r
+       BNE     50$\r
+       LDAB    D,SPNROT\r
+       ADDB    I,1\r
+       CMPB    I,18\r
+       BNE     30$\r
+       CLRB\r
+30$:   STAB    D,SPNROT        ;LOOKUP IN TABLE\r
+       LDX     I,ROTTAB\r
+       ANDB    I,1F\r
+       JSR     INDEX\r
+       LDAB    X,0\r
+       STAB    D,ROTOUT\r
+       LDAB    D,STAT\r
+       ORAB    I,1\r
+       STAB    D,STAT\r
+50$:   LDX     I,XINDEX\r
+       RTS\r
+       .PAGE\r
+       .SBTTL   ACCELERATION\r
+       .REPT 0\r
+***********************\r
+*\r
+*      ACCELERATION\r
+*\r
+***********************\r
+       \r
+DESCRIPTION:   ACCELERATE PLAYER CAR ACCORDING TO GEARS\r
+       \r
+REGISTERS:\r
+       IN:\r
+       OUT:    A,B-BLIZTED\r
+       \r
+STACK USE:     2 BYTE FOR RETURN ADDRESS\r
+       \r
+BASE PAGE USE: READ:FRAME,STAT\r
+               MODIFY:VEL,TEMP,TEMP1,GEAR\r
+       .ENDR\r
+       \r
+ACCEL: CLR     E,GEAR          ;FIRST READ GEAR\r
+       LDX     I,GEAR1\r
+4$:    ROL     X,0\r
+       BMI     5$\r
+       INC     E,GEAR\r
+       INX\r
+       CPX     I,GEAR3+1\r
+       BNE     4$\r
+5$:\r
+       LDAA    D,FRAME         \r
+       ANDA    I,03\r
+       BEQ     7$\r
+       JMP     ACEND\r
+7$:\r
+       LDAB    D,VEL\r
+       LSRB                    ;GET VEL/8\r
+       LSRB\r
+       LSRB\r
+       ANDB    I,0FE           ;EVEN IT\r
+       LDAA    D,GEAR\r
+       BITA    I,02\r
+       BEQ     10$             ;1ST OR 2ND GEAR\r
+       INCB\r
+10$:   LDAA    D,MODE          ;FREEZE MODE?\r
+       ANDA    I,10\r
+       BNE     15$             ;YES, DECEL\r
+12$:   LDAA    E,GASSW         ;GAS PEDAL PUSHED\r
+       ASLA\r
+       BPL     15$             ;NO, DECEL\r
+       LDX     I,ACTAB         ;YES,ACCEL\r
+       BRA     17$\r
+15$:   LDX     I,DACTAB\r
+17$:   JSR     INDEX\r
+       LDAB    X,0\r
+20$:   LDAA    D,GEAR\r
+       LSRA\r
+       BCS     30$             ;2ND OR 4TH GEAR\r
+       LSRB                    ;1ST OR 3RD GEAR\r
+       LSRB                    ;HI NIBBLE\r
+       LSRB\r
+       LSRB\r
+30$:   ANDB    I,0F\r
+       PSHB\r
+       BITB    I,8\r
+       BNE     35$\r
+       TBA\r
+       CMPA    I,3\r
+       BLS     35$\r
+       LDAA    D,STAT\r
+       ORAA    I,4\r
+       TAB             \r
+       ANDB    I,0A            ;IF QUISH OR CRASH\r
+       BNE     37$             ;DONT MAKE SKID SOUND\r
+       STAA    E,SKDSND\r
+       BRA     37$\r
+35$:   LDAA    D,STAT\r
+       ANDA    I,0FB\r
+37$:   STAA    D,STAT\r
+       PULB\r
+       BITB    I,8             ;TEST IF NEGATIVE NIBBLE\r
+       BEQ     40$             ;NO,GO TO SPEED UP\r
+       ORAB    I,0F0           ;YES, EXTENDED SIGN\r
+40$:   TBA                     ;FOR LATER USE\r
+       ADDB    D,VEL           ;UPDATE VELOCITY\r
+       TSTA                    ;ACCELERATING?\r
+       BPL     50$             ;YES\r
+       INCB                    ;NO, DECEL; CHECK FOR FF VEL\r
+       BNE     60$             ;IF NOT 0 NO UNDERFLOW\r
+       BRA     70$             ;END\r
+50$:   INCB                    ;ACCEL-CHECK FOR FF VEL\r
+       BNE     60$             ;NO,NO OVERFLOW\r
+       DECB                    ;YES, VEL=FE\r
+60$:   DECB\r
+70$:   LDAA    D,STAT          ;TEST CRASH BIT\r
+       ANDA    I,2\r
+       BEQ     80$             ;NO CRASH\r
+       CMPB    I,36            ;YES, LIMIT SPEED\r
+       BLS     80$\r
+       LDAB    I,36            ;MAX SPEED WHITE OFF ROAD\r
+80$:   LDAA    D,STAT          ;TEST FOR SQUISHY\r
+       ANDA    I,8\r
+       BEQ     90$             ;NO\r
+       CMPB    I,80            ;YES, LIMIT SPEED\r
+       BLS     90$             ;<= 80 STORE IT\r
+       CMPB    I,0C0           ;> C0, -1F\r
+       BHI     85$\r
+       CMPB    I,90            ;< 90, OK\r
+       BLS     95$\r
+       SUBB    I,0F            ;ELSE -F\r
+       BRA     90$\r
+85$:   SUBB    I,1F\r
+90$:   STAB    D,VEL\r
+95$:   LDX     I,2             ;OUTPUT SPEED TO SCREEN\r
+       LSRB\r
+100$:  TBA                     ;SAVE FOR NEXT PASS\r
+       ANDB    I,7\r
+       CMPB    I,2             ;NO 3 ALLOWED\r
+       BLS     102$\r
+       INCB\r
+102$:  CMPB    I,6             ;NO 7 ALLOWED\r
+       BLS     105$\r
+       INCB\r
+105$:  ADDB    I,30\r
+       STAB    X,SPDMSD        ;OUTPUT\r
+       TAB                     ;SHIFT NEXT 3 BITS\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       DEX\r
+       BNE     100$            ;NOT DONE\r
+       TSTB                    ;DO MSD, 0 OR 1\r
+       BEQ     110$\r
+       ADDB    I,30\r
+110$:  STAB    D,SPDMSD\r
+       LDAB    I,15            ;"SPEED"\r
+       LDAA    I,0F\r
+       JSR     MESSAGE\r
+ACEND: LDX     D,XINDEX        ;RESTORE X\r
+       RTS\r
+       .PAGE\r
+       .SBTTL   SCORE\r
+       .REPT 0\r
+*************************\r
+*\r
+*      SCORE\r
+*\r
+*************************\r
+       \r
+DESCRIPTION:   CHECK FOR CHECKPOINTS\r
+               UPDATE SCORE IF NEEDED\r
+       \r
+REGISTERS:\r
+       IN:\r
+       OUT:    A,B,X-BLITZED\r
+       \r
+STACK USE:     2 BYTES FOR RETURN ADDRESS\r
+       \r
+BASE PAGE USE: READ: VPOS,HPOS,TRKN\r
+               MODIFY: TEMP,TEMP+1,SCRCNT,SCOR,A/N\r
+       \r
+       .ENDR\r
+SCORE:\r
+       LDAA    D,VPOS\r
+       ANDA    I,0F0\r
+       LSRA\r
+       LDAB    D,HPOS\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       ABA\r
+       ASLA\r
+       ASLA\r
+       LDAB    D,TRKN\r
+       LSRB\r
+       RORA                    ;ADD IN TRACK NO. \r
+       LSRB\r
+       RORA\r
+       STAA    D,TEMP+1\r
+       LDAA    I,MAPTBL/100\r
+       ABA                     ;ADD TRACK OFFSET\r
+       STAA    D,TEMP\r
+       LDX     D,TEMP          ;POINTER TO CELL CHRISIN\r
+       LDAA    X,MAPTBL&0FF    ;GET CELL CODE\r
+       ANDA    I,0C0           ;TOP 2 BITS HAVE CHECKPONT CODE\r
+       LDAB    D,SCRCNT        ;OLD CHECKPOINT CODE\r
+       ADDB    I,40            ;ADD 1\r
+       ANDB    I,0C0           ;AND TRUNCATE TO 2 BITS\r
+       CBA                     ;CHECK IF REACHED NEXT CHECK\r
+       BNE     SCREND          ;NOT YET REACHED\r
+       STAB    D,SCRCNT        ;YES. HIT NEXT CHECKPOINT\r
+       LDAA    D,SCOR          ;INCREMENT SCORE BY10\r
+       INCA\r
+       DAA\r
+       STAA    D,SCOR\r
+       JSR     STDRN           ;START A DRONE NOW\r
+SCORIT:        LDAB    I,0B            ;MESS #\r
+       CLRA                    ;LOCATION\r
+       JSR     MESSAGE\r
+       LDAA    D,SCOR\r
+       LDX     I,SCRMSD\r
+       JSR     DISDIG\r
+SCREND:        LDAA    I,30            ;SCORE INFLATION TRAILING ZERO\r
+       STAA    D,SCRLSD+1\r
+       RTS\r
+       .PAGE\r
+       .SBTTL  SCROLL\r
+       .REPT   0\r
+*************************\r
+*\r
+*      SCROLL\r
+*\r
+*************************\r
+       \r
+DESCRIPTION:   SCROLL THE PLAYFIELD\r
+\r
+STACK USE:     2 BYTES FOR SUBR CALLS\r
+\r
+BASE PAGE USE:\r
+\r
+       .ENDR\r
+\r
+;\r
+;SCROLL THE PLAYFIELD\r
+;\r
+SCROLL:        LDAA    I,PLYFLD/256.   ;PLAYFIELD 800 TO 8XX\r
+       STAA    D,HRAMPT\r
+       STAA    D,VRAMPT\r
+       CLRA\r
+       STAA    D,THPOS         ;ZERO RAM INDEX HIGH BYTE\r
+       STAA    D,TVPOS\r
+       LDAA    D,VPOSL         ;CALCULATE SCREEN COORDS\r
+       SUBA    I,80\r
+       STAA    D,SVPOS+1       ;SVPOS=CAR VPOS-780\r
+       LDAA    D,VPOS\r
+       SBCA    I,07\r
+       ANDA    I,7F\r
+       STAA    D,SVPOS\r
+       TST     E,VINC          ;POINT TO MOVING CORNER\r
+       BMI     40$             ;ITS AT THE TOP\r
+       ADDA    I,0F\r
+       ANDA    I,7F            ;POINT TO BOTTOM OF SCREEN\r
+40$:   STAA    D,SVPNT         ;SET CORNER PTR.\r
+;\r
+;BUILD HORIZ COORDS\r
+;\r
+       LDAA    D,HPOSL\r
+       SUBA    I,00\r
+       STAA    D,SHPOS+1       ;SAME LOW 8 BITS\r
+       LDAA    D,HPOS\r
+       SBCA    I,08            ;SCRN SHPOS=CAR HPOS-800\r
+       ANDA    I,7F\r
+       STAA    D,SHPOS\r
+       TST     E,HINC          ;POINT TO MOVING CORNER\r
+       BMI     70$\r
+       ADDA    I,0F            ;POINT TO THE RIGHT SIDE\r
+       ANDA    I,7F\r
+70$:   STAA    D,SHPNT\r
+;\r
+;PREPARE FOR VERTICAL ROLL\r
+;\r
+VERT:\r
+       LDAA    D,SHPNT\r
+       ANDA    I,0F\r
+       STAA    D,VRAMPT+1      ;PTR TO VERT LINE\r
+       LDAA    D,SVPNT\r
+       ASLA\r
+       ASLA                    ;GET COLUMN STARTING ON\r
+       ASLA\r
+       ASLA\r
+       STAA    D,HRAMPT+1      ;PTR TO HORIZ LINE\r
+       LDAA    D,SVPOS\r
+       ANDA    I,0F\r
+       STAA    D,TVPOS+1       ;VERT FROM TOP\r
+       LDAB    D,SHPNT\r
+       ANDB    I,0F\r
+       STAB    D,THPOS+1       ;OFFSET TO CORRECT COLUMN\r
+       LDAA    D,SVPOS         ;VERTICAL\r
+       ANDA    I,070\r
+       LSRA\r
+       LDAB    D,SHPNT\r
+       LSRB\r
+       LSRB                    ;HORIZONTAL\r
+       LSRB\r
+       LSRB\r
+       ABA\r
+       STAA    D,MAPPT+1       ;INITIAL MAP POINTER\r
+;\r
+;LOAD THE VERTICAL ARRAY FOR OUTPUT\r
+;\r
+VALOAD:        JSR     PTSTAMP         ;GET NEXT STAMP PTR HIGH\r
+VSLOAD:        JSR     NXSTAMP         ;GET NEXT STAMP INTO A\r
+10$:   LDX     D,TVPOS         ;WORKING VERT PTR\r
+       STAA    X,VLINE         ;INTO BASE PAGE RAM\r
+       LDAB    D,TVPOS+1\r
+       INCB\r
+       ANDB    I,0F            ;MOD 10 HEX\r
+       STAB    D,TVPOS+1\r
+       LDAA    D,SVPOS\r
+       ANDA    I,0F            ;LOW BITS OF POSITION\r
+       CBA\r
+       BEQ     80$             ;ALL DONE NOW\r
+       TSTB                    ;DID B WRAP TO NEXT COLL\r
+       BNE     VSLOAD          ;NO. CONTINUE WITH VERT LOAD\r
+;\r
+;WE CROSSED A CELL BOUNDARY, UPDATE MAP PTR\r
+;\r
+;VERTICAL MAPPT UPDATE\r
+;\r
+       LDAA    D,MAPPT+1       ;LOW BYTE OF PTR\r
+       ADDA    I,8             ;MOVE TO NEXT ROW OF MAP\r
+50$:   STAA    D,MAPPT+1\r
+       JMP     VALOAD\r
+80$:\r
+;\r
+;PREPARE FOR HORIZONTAL ROLL\r
+;\r
+HORIZ: LDAA    D,SVPNT         ;OFFSET TO CORRECT ROW\r
+       ANDA    I,0F\r
+       STAA    D,TVPOS+1       ;VERT PTR\r
+       LDAB    D,SHPOS         ;HORIZ FROM LEFT SIDE\r
+       ANDB    I,0F\r
+       STAB    D,THPOS+1\r
+       LDAA    D,SVPNT\r
+       ANDA    I,070           ;VERT\r
+       LSRA\r
+       LDAB    D,SHPOS\r
+       LSRB\r
+       LSRB                    ;HORIZ OFFSET\r
+       LSRB\r
+       LSRB\r
+       ABA\r
+       STAA    D,MAPPT+1       ;INITIAL MAP INDEX\r
+;\r
+;LOAD THE HORIZ ARRAY\r
+;\r
+HALOAD:        JSR     PTSTAMP         ;NEXT STAMP PTR HIGH\r
+HSLOAD:        JSR     NXSTAMP         ;GET NEXT STAMP IN A\r
+10$:   LDX     D,THPOS         ;WORKING HORIZ PTR\r
+       STAA    X,HLINE         ;INTO BASE PAGE ARRAY\r
+       LDAB    D,THPOS+1\r
+       INCB\r
+       ANDB    I,0F            ;INCR LOW 4 BITS ONLY\r
+       STAB    D,THPOS+1\r
+       LDAA    D,SHPOS\r
+       ANDA    I,0F\r
+       CBA                     ;BACK TO START?\r
+       BEQ     80$             ;ALL 16 DONE\r
+       TSTB\r
+       BNE     HSLOAD          ;IN SAME CELL\r
+;\r
+;HORIZ MAPPT UPDATE\r
+;\r
+       LDAA    D,MAPPT+1       ;LOW BYTE OF PTR\r
+       INCA\r
+40$:   TAB\r
+       ANDA    I,07            ;MOD 8 INCREMENT\r
+       BNE     50$             ;ITS OK USE B\r
+       TBA                     ;SAVE SIGN\r
+       SUBB    I,8             ;MAKE IT WRAP MOD 8\r
+50$:   STAB    D,MAPPT+1\r
+       JMP     HALOAD\r
+80$:   LDX     D,XINDEX                ;DONE-EXIT\r
+       RTS\r
+;\r
+;UPDATE SCREEN OUTPUT CONTROL REGISTERS\r
+;\r
+SHVUPD:\r
+       LDAA    D,SVPOS\r
+       ASLA\r
+       ASLA                    ;GET STAMP NUMBER\r
+       ASLA\r
+       ASLA\r
+       LDAB    D,SVPOS+1\r
+       LSRB\r
+       LSRB                    ;GET LINE IN STAMP\r
+       LSRB\r
+       LSRB\r
+       ABA\r
+       STAA    D,SVOUT         ;FOR OUTPUT TO SCREEN\r
+       LDAA    D,SHPOS\r
+       ASLA\r
+       ASLA                    ;GET STAMP NUMBER\r
+       ASLA\r
+       ASLA\r
+       LDAB    D,SHPOS+1\r
+       LSRB\r
+       LSRB                    ;GET LINE IN STAMP\r
+       LSRB\r
+       LSRB\r
+       ABA\r
+       STAA    D,SHOUT         ;FOR OUTPUT TO SCREEN\r
+       RTS\r
+       .PAGE\r
+;\r
+;POINT TO A STAMP IN THE CELL\r
+;\r
+PTSTAMP:\r
+       ASL     E,MAPPT+1       ;SHIFT LOW BYTE\r
+       ASL     E,MAPPT+1       ;SHIFT 2 TIMES\r
+       LDAA    D,TRKN          ;GET TRACK #\r
+       LSRA\r
+       ROR     E,MAPPT+1       ;INCLUDE LOW BIT OF TRACK\r
+       LSRA\r
+       ROR     E,MAPPT+1       ;BIT ONE OF TRACK NUMBER\r
+       ADDA    I,MAPTBL/256.   ;POINT TO MAP\r
+       STAA    D,MAPPT\r
+       LDX     D,MAPPT\r
+       LDAB    X,0             ;GETS CELL NUMBER\r
+       CLR     E,ARROW         ;GUESS NO ARROW\r
+       BITB    I,20            ;SHOULD THERE BE AN ARROW?\r
+       BEQ     40$             ;NO-GOOD GUESS\r
+       LDAA    I,0FC           ;GUESS NORTH ARROW\r
+       BITB    I,10            ;TEST IF REVERSED ARROWS\r
+       BNE     30$             ;YES\r
+       INCA                    ;NO, MAKE STANDARD DIR, S OR W\r
+       INCA\r
+30$:   BITB    I,1             ;TEST IF NS OR EW\r
+       BEQ     35$             ;ITS NS\r
+       INCA                    ;MAKE ARROW EW\r
+35$:   STAA    D,ARROW         ;CODE FOR OUTPUT\r
+40$:\r
+       ANDB    I,0F            ;MASK TO REAL CELL NUMBER\r
+       ADDB    I,CELTBL&0FF00/256.\r
+       STAB    D,STAMPT        ;NEW HI STAMP PTR\r
+       RTS\r
+;\r
+;GET THE NEXT STAMP IN THE CELL\r
+;\r
+NXSTAMP:\r
+       LDAA    D,THPOS+1       ;WORKING H PTR\r
+       LDAB    D,TVPOS+1       ;AND V PTR\r
+       ASLB\r
+       ASLB\r
+       ASLB\r
+       ASLB\r
+       ANDA    I,0F\r
+       ABA                     ;NEW PTR TO A STAMP\r
+       STAA    D,STAMPT+1\r
+       LDX     D,STAMPT\r
+       TST     E,ARROW         ;IS THERE AN ARROW IN THIS CELL?\r
+       BEQ     25$             ;NO ARROW\r
+       CMPB    I,80            ;TEST FOR CENTER STAMP\r
+       BNE     25$             ;NOT YET\r
+       ANDA    I,0F\r
+       CMPA    I,08            ;TEST FOR CENTER\r
+       BNE     25$             ;NOT YET\r
+       LDAA    D,ARROW         ;GET ARROW STAMP #\r
+       RTS\r
+25$:   LDAB    D,STAMPT        ;HIGH ADDR PTR\r
+       CMPB    I,CELTBL&0FF00/256.+0C\r
+       BNE     30$             ;NOT SPECIAL CELL\r
+       LDAA    I,CARPIC\r
+       LDAB    D,TVPOS+1\r
+       LSRB                    ;DETERMINE ROW\r
+       BCC     40$             ;DO A TREE\r
+       LDAA    I,BLPIC         ;BLANK PICTURE\r
+       BRA     40$\r
+30$:\r
+       LDAA    X,0\r
+40$:   RTS\r
+\f      .SBTTL  TIME\r
+       .REPT   0\r
+*************************\r
+*\r
+*      TIME\r
+*\r
+*************************\r
+\r
+DESCRIPTION:   TAKES CARE OF FUEL, CHECKS FOR END OF GAME AND EXTENDED PLAY,\r
+               OUTPUTS FUEL TO SCREEN\r
+\r
+\r
+\r
+\r
+REGISTERS:\r
+       IN:\r
+\r
+       OUT:    A,B BLITZED, X UNTOUCHED\r
+\r
+\r
+STACK USE:     2 BYTES FOR RETURN ADDRESS\r
+\r
+\r
+\r
+\r
+\r
+BASE PAGE USE: FUELTM,FUEL,TMESAV,MODE,ROTOUT,HISCR\r
+               READ: XTDSCR,SCORE\r
+\r
+\r
+\r
+\r
+       .ENDR\r
+TIME:\r
+       LDAA    D,MODE\r
+       ANDA    I,10\r
+       BEQ     10$\r
+       LDAA    D,FREEZE\r
+       BEQ     5$\r
+       DECA\r
+       STAA    D,FREEZE\r
+       BRA     TRKSEL\r
+5$:    JMP     ATSTART\r
+10$:   DEC     E,FUELTM\r
+       BNE     40$             ;NOT TIME TO DECREMENT\r
+       LDAA    D,FUEL\r
+       BEQ     40$\r
+       ADDA    I,99            ;-1\r
+       DAA\r
+       STAA    FUEL\r
+       BNE     30$\r
+20$:   LDAB    D,MODE          ;CHECK MODE\r
+       BPL     40$             ;ATTRACT\r
+       BITB    I,04            ;IF ALREADY IN XPLAY, THEN\r
+       BNE     50$             ;GAME OVER\r
+       LDAB    D,XTDSCR        ;ELSE CHECK FOR XPLAY\r
+       BEQ     50$             ;NO BONUS\r
+       CMPB    D,SCOR          ;SCORE > BONUS REQUIREMENTS\r
+       BHI     50$             ;NOPE, GAME OVER\r
+       LDAA    I,41            ;YES, ADD TO FUEL\r
+       STAA    D,FUEL\r
+       LDAB    D,MODE          ;AND SET MODE TO XPLAY\r
+       ORAB    I,04\r
+       STAB    D,MODE\r
+       LDAA    D,VISAVE                ;INVERT THE VIDEO\r
+       ORAA    I,90\r
+       STAA    D,VISAVE\r
+       LDAA    I,7F            ;SET BEEP TIMER\r
+       STAA    D,BEEP\r
+30$:   LDAB    D,TMESAV        ;RESET FUELTM\r
+       STAB    D,FUELTM\r
+       LDAB    I,0A            ;MESS #\r
+       LDAA    I,7             ;LOCATION\r
+       JSR     MESSAGE\r
+       LDAA    D,FUEL\r
+       LDX     I,FUEMSD        ;OUTPUT FUEL TO SCREEN\r
+       JSR     DISDIG\r
+40$:   JSR     OPTION\r
+       BRA     TRKSEL\r
+       ;GAME OVER\r
+50$:   LDAA    D,MODE          ;SET FREEZE MODE\r
+       ORAA    I,10\r
+       STAA    D,MODE\r
+       LDAA    I,0FF\r
+       STAA    D,FREEZE\r
+       LDAA    I,30            ;SHOW 0 FOR FUEL\r
+       STAA    D,FUELSD\r
+       CLR     E,VEL           ;STOP MOTION\r
+       LDAA    I,3             ;NO SOUNDS\r
+       STAA    D,ATSAVE\r
+\r
+       .SBTTL  TRACK SELECT\r
+TRKSEL:        LDAB    D,TRAKS\r
+       LDAA    D,$$CRDT\r
+       BEQ     TRKEND          ;NO CREDIT, EXIT\r
+       LDAA    D,MODE\r
+       BMI     TRKEND          ;IN GAME, EXIT\r
+       LDAA    E,TKSEL         ;TRACK SWITCH TO CARRY\r
+       ROLA\r
+       ROLA\r
+       ROL     E,TKSWDB        ;TRACK SWITCH DEBOUNCE\r
+       LDAA    D,TKSWDB\r
+       CMPA    I,7F\r
+       BNE     TRKEND          ;NO SWITCH\r
+       LDAB    D,TRAKS         ;ELSE, INC TRAKS MOD 8\r
+       INCB\r
+       CMPB    I,ATTRK-1\r
+       BLE     TRKSL1\r
+TRKSL0:        CLRB\r
+TRKSL1:        STAB    D,TRAKS\r
+       LDAA    I,30.           ;DELAY ATTRACT RESET AFTER TRACK SEL\r
+       STAA    D,RSTTIM\r
+;OUTPUT TRACK NUMBER AND MESSAGE\r
+;1-3 "EASY", 4-6 "MED", 7-8 "HARD"\r
+\r
+TRKSL2:        LDAA    I,18            ;"EASY" MESSAGE\r
+       CMPB    I,1\r
+       BLS     50$\r
+       INCA                    ;"MED"\r
+       CMPB    I,4\r
+       BLS     50$\r
+       INCA                    ;"HARD"\r
+50$:   TAB                     ;DISPLAY MESSAGE\r
+       LDAA    I,37            ;LOCATION\r
+       JSR     MESSAGE\r
+       LDAA    D,TRAKS         ;PUT NUMBER IN FRONT\r
+       ADDA    I,31            ;ASCII BIAS\r
+       STAA    D,37\r
+       LDAB    I,14            ;"TRACK"\r
+       LDAA    I,17            ;LOCATION\r
+       JMP     MESSAGE\r
+TRKEND:        RTS\r
+       .PAGE\r
+       .SBTTL   MESSAGE\r
+       .REPT 0\r
+***************************\r
+*\r
+*      MESSAGE\r
+*\r
+***************************\r
+       \r
+DESCRIPTION:   OUTPUTS A MESSAGE TO A/N RAM\r
+               MESSAGE ARE STORED IN ROM USING THE .ASCIN COMMAND\r
+               SO D7 OF THE LAST CHARACTER IS A 1\r
+       \r
+REGISTERS:\r
+       IN:     A=POSITION POINTER TO RAM\r
+               B=MESSAGE #\r
+       OUT:    X RESTORED; A,B-BLITZED\r
+       \r
+STACK USE:\r
+       \r
+BASE PAGE USE: WRITE: ALPHA/NUMBERICS RAM\r
+               MODIFY: ANPNT+1,TEMP,TEMP+1\r
+       \r
+       .ENDR\r
+       \r
+MESSAGE:STX    D,XTEMP\r
+       LDX     I,MESS\r
+       STX     D,TEMP          ;KEEP MESSAGE ADDRESS HERE\r
+       STAA    D,ANPNT+1\r
+       TSTB\r
+       BEQ     OUTPUT          ;OUTPUT A BLANK\r
+       CLRA\r
+10$:   ADDA    I,8             ;POINT TO ENGLISH MESSAGE\r
+       DECB\r
+       BNE     10$\r
+       TAB\r
+       ADDA    D,TEMP+1\r
+       STAA    D,TEMP+1\r
+       BCC     20$\r
+       INC     E,TEMP          ;MESSAGE POINTER IN TEMP(2)\r
+20$:   LSRB\r
+       LSRB                    ;TRACKNAMES ARE ALWAYS ENGLISH\r
+       LSRB\r
+       CMPB    I,18\r
+       BCC     OUTPUT\r
+       LDAB    E,OPTS          ;GET LANGUAGE OPTION\r
+       COMB\r
+       ANDB    I,2\r
+       LSRB\r
+       LDAA    E,OPTS+1\r
+       COMA\r
+       ANDA    I,2\r
+       ABA\r
+       TAB\r
+       LDAA    D,TEMP+1\r
+       TSTB\r
+       BEQ     OUTPUT          ;OUTPUT ENGLISH MESSAGE\r
+25$:   ADDA    I,8*19          ;INCREMENT TO FRENCH\r
+27$:   BCC     30$\r
+       INC     E,TEMP          ;ADD IN CARRY\r
+30$:   DECB\r
+       BEQ     70$\r
+       ADDA    I,8*16          ;INC TO NEXT LANG\r
+       BRA     27$\r
+70$:   STAA    D,TEMP+1        ;TEMP(2) POINTS TO MESSAGE\r
+OUTPUT:        LDX     D,TEMP          ;MESS POINTER\r
+       LDAA    X,0             ;GET CHARACTER\r
+       INX                     ;INCREMENT POINTER\r
+       STX     D,TEMP          ;STORE IT BACK\r
+       LDX     ANPNT           ;GET A/N RAM POINTER\r
+       STAA    X,0             ;STORE CHARATER THER\r
+       BMI     10$             ;IF MINUS, THAT WAS LAST\r
+       INX                     ;INC RAM POINTER\r
+       STX     D,ANPNT         ;STORE IT BACK\r
+       BRA     OUTPUT          ;GO DO NEXT CHAR\r
+10$:   LDX     D,XTEMP         ;RESTORE X\r
+       RTS\r
+       .PAGE\r
+;DISPLAY A TWO DIGIT BCD # WITH ZERO SUP.\r
+DISDIG:        TAB                     ;SAVE FOR MSD\r
+       BEQ     20$             ;BLANK IF ZERO\r
+       ANDA    I,0F            ;GET LSD\r
+       ADDA    I,30            ;ADD ASCII BIAS\r
+20$:   STAA    X,1             ;STORE AT LSD LOCATION\r
+       LSRB                    ;GET MSD\r
+       LSRB\r
+       LSRB\r
+       LSRB\r
+       BEQ     40$             ;LEADING ZERO SUPPRESSION\r
+       ADDB    I,30            ;ADD ASCII BIAS\r
+40$:   STAB    X,0             ;STORE IT\r
+       RTS\r
+       .PAGE\r
+       .SBTTL  SCREEN REWRITE\r
+       .REPT 0\r
+*************************\r
+*\r
+*      SCROUT\r
+*\r
+*************************\r
+       \r
+DESCRIPTION:   REWRITE THE SCREEN\r
+       \r
+REGISTERS:\r
+       IN:\r
+       OUT:\r
+       \r
+STACK USE:     2 BYTES FOR SUBROUTINE CALLS\r
+               2 BYTES FOR RETURN ADDRESS\r
+       \r
+BASE PAGE USED:        READ:XINDEX\r
+               MODIFY:XTEMP(2),TVPOS(2),THPOS(2),SVPOS,SHPOS,MAPPT(2)\r
+       \r
+       .ENDR\r
+;\r
+;OUTPUT ENTIRE SCREEN  \r
+;\r
+SCROUT:\r
+       LDAA    D,VPOS\r
+       PSHA                    ;SAVE PLAYER POSITION\r
+       LDAA    D,HPOS\r
+       PSHA\r
+       LDAA    I,10            ;SIXTEEN-1\r
+30$:   PSHA                    ;SAVE LOOP COUNT\r
+       JSR     SCROLL          ;BUILD LINES FOR OUTPUT\r
+       LDAA    D,FRAME\r
+40$:   WAI                     ;OUTPUT ON AN NMI\r
+       CMPA    D,FRAME\r
+       BEQ     40$             ;NOT DONE YET\r
+       STAA    E,WTCHDG        ;RESET DOGGIE\r
+       PULA\r
+       DECA\r
+       BEQ     70$             ;DONE\r
+       DEC     E,HPOS          ;DECR HPOS MOD 256\r
+       BRA     30$\r
+70$:   PULA\r
+       STAA    D,HPOS          ;RESTORE CAR COORDS\r
+       PULA\r
+       STAA    D,VPOS\r
+       LDX     D,XINDEX\r
+       RTS\r
+       .PAGE\r
+       .SBTTL  MODULO 24\r
+       .REPT 0\r
+*************************\r
+*\r
+*      MOD24\r
+*\r
+*************************\r
+       \r
+DESCRIPTION:   DOES AN ADDITION OF A TO B\r
+               MODULO 24. IN THE HIGH 5 BITS\r
+               I.E. (A+B) MOD 0C0\r
+       \r
+REGISTERS:\r
+       IN:     A,B\r
+       OUT:    A HAS ANSWER, B NOT CHANGED\r
+       \r
+STACK USED:    RETURN ADDRESS\r
+       \r
+BASED PAGE USE:        NONE\r
+       \r
+       .ENDR\r
+       \r
+MOD24: ABA\r
+MOD24A:        CMPA    I,0C0\r
+       BCS     20$\r
+       TSTB\r
+       BMI     10$\r
+       SUBA    I,0C0\r
+       BRA     20$\r
+10$:   ADDA    I,0C0\r
+20$:   RTS\r
+       .PAGE\r
+       .SBTTL  NMI\r
+       .REPT   0\r
+************************\r
+*\r
+*      NMI\r
+*\r
+************************\r
+\r
+DESCRIPTION:   NMI ROUTINE OCCURS AT VBLANK OUTPUTS TO SCREEN\r
+\r
+STACK USE:\r
+\r
+BASE PAGE USE: ALL REGS SAVED, SP USED AS A POINTER\r
+\r
+       .ENDR\r
+\r
+;\r
+;VBLANK NMI - OUTPUT TO I/O, SCROLL RAM\r
+;\r
+\r
+NMI:   LDX     D,RAMCHK        ;CHECK IF OK\r
+       CPX     I,RAMCV\r
+       BEQ     20$\r
+       JMP     PWRON           ;ERROR-RESET\r
+20$:   STS     D,ISTEMP        ;SAVE SP\r
+;\r
+;OUTPUT HORIZ RAM UPDATE\r
+;\r
+       LDAB    I,10            ;LOOP COUNTER\r
+       LDS     I,HLINE-1       ;SOURCE\r
+       LDX     D,HRAMPT        ;X=(PLFD)+(PFP&F0)\r
+30$:   PULA                    ;FETCH A BYTE\r
+       STAA    X,0             ;ONTO SCREEN\r
+       INX                     ;INCR PTR\r
+       DECB\r
+       BNE     30$\r
+;\r
+;OUTPUT VERT RAM UPDATE\r
+;\r
+       LDS     I,VLINE-1\r
+50$:   LDX     D,VRAMPT        ;X=(PFLD)+(PHP/10)\r
+       PULA                    ;GET VERT LINE\r
+       STAA    X,0             ;STORE INTO SCREEN\r
+       LDAB    D,VRAMPT+1\r
+       ADDB    I,10            ;MOVE TO NEXT ROW\r
+       STAB    D,VRAMPT+1\r
+       BCC     50$             ;NOT DONE YET\r
+;\r
+;OUTPUT CAR POSITION\r
+;\r
+       LDS     D,ISTEMP        ;RESTORE SP\r
+       LDAA    D,ROTOUT\r
+       LDAB    D,DCOLOR        ;OUTPUT DRONE COLOR\r
+       ABA                     ;BIT 6  IS A DONT CARE\r
+       STAA    E,CARROT        ;PLAYER CAR ROTATION\r
+       LDAA    D,ROTOUT+1\r
+       ASLB                    ;OUTPUT OTHER BIT OF DRONE COLOR\r
+       ABA\r
+       STAA    E,DROT          ;DRONE CAR ROTATION\r
+       LDAA    D,DRONEH\r
+       STAA    E,DHPOS         ;DRONE H POSITION\r
+       LDAA    D,DRONEV\r
+       STAA    E,DVPOS         ;DRONE V POSITION\r
+       LDAA    D,SVOUT\r
+       STAA    E,PVP           ;SCREEN VERT POS'N\r
+       LDAA    D,SHOUT\r
+       STAA    E,PHP           ;SCREEN HORIZ POS'N\r
+       LDAB    D,VISAVE\r
+       LDAA    D,CRSCNT\r
+       BNE     60$\r
+       LDAA    D,MODE\r
+       ANDA    I,4\r
+       BEQ     60$\r
+       ORAB    I,80\r
+60$:   LDAA    D,$LMTIM        ;ABUSE NOISE\r
+       BEQ     65$\r
+       ANDB    I,0EF\r
+65$:   STAB    E,VIDINV\r
+;\r
+;READ INPUTS FOR CRASH AND SQUISH\r
+;\r
+       LDAA    D,STAT\r
+       LDAB    E,CSQSH\r
+       BPL     70$\r
+       ORAA    I,8\r
+       BRA     75$\r
+70$:   ANDA    I,0F7\r
+75$:   LDAB    E,CCRASH\r
+       ANDB    I,2\r
+       BEQ     77$\r
+       ORAA    I,2\r
+       BRA     80$\r
+77$:   ANDA    I,0FD\r
+80$:   STAA    D,STAT\r
+       LDAA    D,STAT+1\r
+85$:   ROR     E,DCRASH\r
+       BCC     87$\r
+       ORAA    I,2\r
+       BRA     90$\r
+87$:   ANDA    I,0FD\r
+90$:   STAA    D,STAT+1\r
+       STAA    E,CCRST\r
+       STAA    E,DCRST\r
+       INC     E,FRAME         ;COUNT FRAMES\r
+       RTI\r
+       .PAGE\r
+       .SBTTL   TABLES\r
+RATIO: .BYTE 7,6,5,4\r
+       \r
+       .LIST MEB\r
+       .NLIST BYT\r
+       .MACRO VHTAB Q,R,S,T,U,V,W\r
+       .IRP X,<Q,R,S,T,U,V,W>\r
+       .IF NB,X\r
+       .BYTE X*2&0FF\r
+       .ENDC\r
+       .ENDR\r
+       .ENDM\r
+       \r
+VOFF:  VHTAB   -7,-7,-6,-5,-3,-2\r
+HOFF:  VHTAB   0,2,3,5,6,7\r
+       VHTAB   7,7,6,5,3,2\r
+       VHTAB   0,-2,-3,-5,-6,-7\r
+       VHTAB   -7,-7,-6,-5,-3,-2\r
+       \r
+       .MACRO ATAB A,B,C,D\r
+       .WORD A*1000+<B*100&0FFF+<C*10+<D&0F>&0FF>>\r
+       .ENDM\r
+       \r
+ACTAB: ATAB    7,1,1,1         ;0-1\r
+       ATAB    7,2,1,1         ;2-3\r
+       ATAB    7,2,1,1         ;4\r
+       ATAB    7,3,1,1         ;6\r
+       ATAB    5,3,2,1         ;8\r
+       ATAB    3,4,2,1         ;10\r
+       ATAB    1,5,2,1         ;12\r
+       ATAB    0,4,2,1         ;14\r
+       ATAB    -1,3,3,1        ;16\r
+       ATAB    -2,1,4,1        ;18\r
+       ATAB    -3,0,4,1        ;20\r
+       ATAB    -4,-1,2,2       ;22\r
+       ATAB    -5,-2,1,3       ;24\r
+       ATAB    -7,-5,0,3       ;26\r
+       ATAB    -7,-6,-1,2      ;28\r
+       ATAB    -7,-6,-2,1      ;30\r
+DACTAB:        ATAB    -1,-1,-1,-1             ;0-1\r
+       ATAB    -2,-1,-1,-1     ;2-3\r
+       ATAB    -4,-1,-1,-1     ;4-5\r
+       ATAB    -6,-2,-1,-1     ;6\r
+       ATAB    -7,-2,-1,-1     ;8\r
+       ATAB    -7,-3,-2,-1     ;10\r
+       ATAB    -7,-3,-2,-1     ;12\r
+       ATAB    -7,-4,-2,-1     ;14\r
+       ATAB    -7,-4,-2,-1     ;16\r
+       ATAB    -7,-5,-3,-1     ;18\r
+       ATAB    -7,-5,-3,-2     ;20\r
+       ATAB    -7,-6,-4,-2     ;22\r
+       ATAB    -7,-6,-5,-2     ;24\r
+       ATAB    -7,-7,-5,-3     ;26\r
+       ATAB    -7,-7,-6,-4     ;28\r
+       ATAB    -7,-7,-6,-5     ;30\r
+TMETBL:        .BYTE   28,3C,50,64\r
+XPLTBL:\r
+       .BYTE   5,10,17,26,34,43        ;TRACK  1\r
+       .BYTE   4,8,12,17,23,29         ;       2\r
+       .BYTE   5,10,17,26,34,43        ;       3\r
+       .BYTE   6,12,18,27,36,45        ;       4\r
+       .BYTE   6,12,17,25,34,42        ;       5\r
+       .BYTE   6,12,18,27,36,45        ;       6\r
+       .BYTE   4,8,13,20,26,33         ;       7\r
+       .BYTE   5,10,17,26,34,43        ;       8\r
+       .NLIST MEB\r
+MESS:\r
+;ENGLISH\r
+       .ASCIN  /@@@@@@@@@@@@@@@@/      ;0,1\r
+       .ASCIN  /@@@@@SORRY@@@@@@/      ;2\r
+       .ASCIN  /@@@@SO@SO@@@@@@@/      ;4\r
+       .ASCIN  /@@@@@GOOD@@@@@@@/      ;6\r
+       .ASCIN  /@@@@@ACE@@@@@@@@/      ;8\r
+       .ASCIN  /@@FUEL@@/              ;A\r
+       .ASCIN  /@SCORE@@/              ;B\r
+       .ASCIN  /@BONUS@FOR@@@@0@/      ;C\r
+       .ASCIN  /@TOP@SCORE@@@@0@/      ;E\r
+       .ASCIN  /@@PRESS@START@@@/      ;10\r
+       .ASCIN  /@SELECT@TRACK@@@/      ;12\r
+       .ASCIN  /@TRACK@@/              ;14\r
+       .ASCIN  /@SPEED@@/              ;15\r
+       .ASCIN  /@@INSERT@COINS@@/      ;16\r
+TRKNAMES:\r
+       .ASCIN  /@@EASY@@/              ;18\r
+       .ASCIN  /@@MED.@@/              ;19\r
+       .ASCIN  /@@HARD@@/              ;1A\r
+;FRENCH\r
+       .ASCIN  /@@@@@DESOLE@@@@@/      ;2\r
+       .ASCIN  /@@@PASSABLE@@@@@/      ;4\r
+       .ASCIN  /@@@@@BIEN@@@@@@@/      ;6\r
+       .ASCIN  /@@@@@AS@@@@@@@@@/      ;8\r
+       .ASCIN  /@ESSENCE/              ;A\r
+       .ASCIN  /@SCORE@@/              ;B\r
+       .ASCIN  /@BONUS@POUR@@@0@/      ;C\r
+       .ASCIN  /@SCORE@MAX.@@@0@/      ;E\r
+       .ASCIN  /@APPUYER@START@@/      ;10\r
+       .ASCIN  /@SELECTION@PISTE/      ;12\r
+       .ASCIN  /@PISTE@@/              ;14\r
+       .ASCIN  /@@KPH@@@/              ;15\r
+       .ASCIN  /@INSERER@PIECES@/      ;16\r
+;SPANISH\r
+       .ASCIN  /@@@LO@SIENTO@@@@/      ;2\r
+       .ASCIN  /@@@@REGULAR@@@@@/      ;4\r
+       .ASCIN  /@@@@@BUENO@@@@@@/      ;6\r
+       .ASCIN  /@@@@@@AS@@@@@@@@/      ;8\r
+       .ASCIN  /@PETROL@/              ;A\r
+       .ASCIN  /PUNTAJE/               ;B\r
+       .BYTE   0\r
+       .ASCIN  /@BONOS@POR@@@@0@/      ;C\r
+       .ASCIN  /@MAX.SCORE@@@@0@/      ;E\r
+       .ASCIN  /@@PULSAR@START@@/      ;10\r
+       .ASCIN  /@@ESCOGE@CARRIL@/      ;12\r
+       .ASCIN  /CARRIL@@/              ;14\r
+       .ASCIN  /@@KPH@@@/              ;15\r
+       .ASCIN  /@INSERTE@FICHAS@/      ;16\r
+;GERMAN\r
+       .ASCIN  /@@@@BEDAURE@@@@@/      ;2\r
+       .ASCIN  /@@@@@SO@@SO@@@@@/      ;4\r
+       .ASCIN  /@@@@@@GUT@@@@@@@/      ;6\r
+       .ASCIN  /@@@@@@AS@@@@@@@@/      ;8\r
+       .ASCIN  /@PETROL@/              ;A\r
+       .ASCIN  /TREFFER/               ;B\r
+       .BYTE   0                       ;FUDGE\r
+       .ASCIN  /@BONUS@FUR@@@@0@/      ;C\r
+       .ASCIN  /@TOP@TREFFER@@0@/      ;E\r
+       .ASCIN  /@DRUECKE@START@@/      ;10\r
+       .ASCIN  /@@BAHN@W!HLEN@@@/      ;12 ! IS AN A WITH AN UMLAUT\r
+       .ASCIN  /@BAHN@@@/              ;14\r
+       .ASCIN  /@@KPH@@@/              ;15\r
+       .ASCIN  /@GELD@EINWERFEN@/      ;16\r
+       .END\r
+\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
\ No newline at end of file
diff --git a/A35767.1B b/A35767.1B
new file mode 100644 (file)
index 0000000..55ca6b8
--- /dev/null
+++ b/A35767.1B
@@ -0,0 +1,517 @@
+       .TITLE MONAUT\r
+;\r
+;MONACO AUTO PILOT ROUTINE\r
+;\r
+       .RADIX 16\r
+       .CSECT\r
+       .LIST MEB\r
+       .NLIST  BYT\r
+;\r
+;ENTRY POINT\r
+;\r
+       .GLOBL  AUTO,STDRN\r
+;\r
+;EXTERNAL REF'S\r
+;\r
+       .GLOBL  VPOS,HPOS,DRGOAL,HPOSL,VPOSL,SVPOS,SHPOS\r
+       .GLOBL  MAPPT,TEMP,XTEMP,STEMP\r
+       .GLOBL  ROTATE,FRAME,VEL,HINC,VINC,STAT,DSKDCT\r
+       .GLOBL  XINDEX,DVISBL,DCOLOR,DIREC,MODE,VEL,POSLAST\r
+\r
+       .GLOBL  PTSTAMP,INDEX   ;ROUTINES\r
+\r
+MAXSPD =0C8\r
+MINSPD =40\r
+\r
+AUTO:  \r
+       LDAA    D,XINDEX+1      ;TEST IF A PLAYER\r
+       BEQ     70$\r
+       LDAA    D,STAT+1        ;IN COLLISION?\r
+       ANDA    I,1\r
+       BEQ     50$             ;NO\r
+       LDAA    D,DSKDCT\r
+       BMI     80$\r
+       LDAA    D,ROTATE+1      ;ALTER ROTATION AND DIRECTION\r
+       ADDA    I,3\r
+       CMPA    I,0BF           ;MOD 24 (TOP 5 BITS)\r
+       BLS     20$\r
+       SUBA    I,0C0\r
+20$:   STAA    D,DIREC+1\r
+       STAA    D,ROTATE+1\r
+50$:   LDAA    D,DSKDCT        ;NO CONTROL UNTIL DSKDCT EQUAL 0\r
+       BEQ     AUTO1\r
+       ADDA    I,8\r
+       STAA    D,DSKDCT\r
+70$:   RTS\r
+80$:   ADDA    I,8\r
+       STAA    D,DSKDCT\r
+AUTO1: LDAA    D,VPOS+1        ;DRONE VERTICAL\r
+       ANDA    I,70\r
+       LSRA\r
+       LDAB    D,HPOS+1        ;DRONE HORIZTONAL\r
+       LSRB\r
+       LSRB\r
+       LSRB                    ;LOW NIBBLE\r
+       LSRB\r
+       ABA                     ;POSITION IN MAP\r
+       STAA    D,MAPPT+1       ;LOW BYTE OF PTR\r
+       JSR     PTSTAMP         ;POINT INTO THE MAP X=PT\r
+       LDAB    X,0             ;GET CELL #\r
+       ANDB    I,1F            ;ONE OF 32 POSSIBLE\r
+       CMPB    I,0C\r
+       BLT     10$\r
+       SUBB    I,04\r
+10$:   ASLB\r
+       ASLB                    ;TIMES 4\r
+       LDAA    D,HPOS+1        ;DRONE POSITION\r
+       BITA    I,8             ;DETERMINE QUADRANT\r
+       BEQ     20$             ;ZERO OR TWO\r
+       INCB                    ;ONE OR THREE\r
+20$:   LDAA    D,VPOS+1\r
+       BITA    I,8             ;DETERMINE QUADRANT\r
+       BEQ     40$             ;GOT IT ON B\r
+       INCB                    ;QUADRANTS 2 OR 3\r
+       INCB\r
+40$:\r
+       LDX     I,PTTAB         ;PTR TABLE\r
+       JSR     INDEX           ;POINT TO ENTRY\r
+       LDAA    X,0             ;GET STAMP OFFSETS OF DESTINATION\r
+       ANDA    I,0F0           ;HORIZONTAL OFFSET\r
+       LSRA\r
+       STAA    D,TEMP          ;SAVE IT H\r
+       LDAA    X,0             ;GET OFFSETS AGAIN\r
+       ANDA    I,0F\r
+       ASLA\r
+       ASLA\r
+       ASLA\r
+       STAA    D,TEMP+1        ;SAVE DEST V\r
+PTGOAL:        CLR     E,STEMP         ;QUADRANT "SIGN" HOLDER\r
+       LDAA    D,HPOS+1        ;GET HORIZ POSITION\r
+       LDAB    D,HPOSL+1\r
+       ROLB\r
+       ROLA                    ;GET STAMP IN HIGH 5 BITS\r
+       ROLB                    ;AND 3 BITS OF LINE\r
+       ROLA\r
+       ROLB\r
+       ROLA\r
+       ANDA    I,07F\r
+       LDAB    D,TEMP          ;GET DESTINATION GOAL\r
+       TST     E,HINC+1        ;TEST DIRECTION H\r
+       BPL     40$             ;GOING RIGHT\r
+       SUBB    I,8             ;DECR STAMP BY ONE\r
+       BPL     50$             ;NO WRAP\r
+       ANDB    I,7F            ;REMOVE SIGN\r
+       ORAA    I,80            ;MAKE CURRENT POSITION BIGGER\r
+       BRA     50$\r
+40$:   ADDB    I,8             ;INCR STAMP POSITION BY ONE\r
+50$:   SBA                     ;FORM DELTA H\r
+       BCC     60$\r
+       INC     E,STEMP\r
+       INC     E,STEMP         ;6502 TYPE 9TH BIT SIGN IN D1\r
+       NEGA                    ;POSITIVE DELTA H\r
+60$:   STAA    D,XTEMP         ;DELTA H\r
+       LDAA    D,VPOS+1        ;DRONE VERTICAL\r
+       LDAB    D,VPOSL+1\r
+       ROLB\r
+       ROLA                    ;STAMP IN HIGH 5 BITS\r
+       ROLB                    ;LINE NUMBER IN LOW 3 BITS\r
+       ROLA\r
+       ROLB\r
+       ROLA\r
+       ANDA    I,07F\r
+       LDAB    D,TEMP+1        ;GET DESTINATION\r
+       TST     E,VINC+1        ;TEST DIRECTION V\r
+       BPL     70$             ;GOING UP\r
+       SUBB    I,8             ;DECR STAMP BY ONE\r
+       BPL     80$             ;NO WRAP\r
+       ANDB    I,7F            ;REMOVE NEGATIVE SIGN\r
+       ORAA    I,80            ;MAKE CURRENT POSITION BIGGER\r
+       BRA     80$\r
+70$:   ADDB    I,8             ;INCR STAMP BY ONE\r
+80$:   SBA                     ;FORM DELTA V\r
+       BCC     90$\r
+       INC     E,STEMP         ;6502 TYPE 9TH SIGN BIT\r
+       NEGA                    ;POSITIVE DELTA V\r
+90$:   STAA    D,XTEMP+1       ;SAVE DELTA V\r
+       BEQ     INTERP          ;DON'T DIVIDE 0\r
+       LDAA    I,0FF           ;INFINITY\r
+       TST     E,XTEMP         ;TEST DELTA H\r
+       BEQ     INTERP          ;DONT DIVIDE BY 0\r
+;\r
+;DIVIDE RISE BY RUN TO GET TANGENT\r
+;IE DELTA V/DELTA H\r
+;\r
+;NOTE-WE ARE GETTING THE COTANGENT\r
+;\r
+DIVIDE:        CLRA                    ;ZERO REMINDER\r
+       CLRB                    ;ZERO LOW QUOTIENT\r
+       LDX     I,12.           ;LOOP COUNTER\r
+20$:   ASLB                    ;SHIFT LOW QUOTIENT\r
+       ROL     E,XTEMP         ;SHIFT HIGH QUOTIENT DELTA X\r
+       ROLA                    ;SHIFT REMAINDER\r
+       BCS     30$             ;OVERFLOW\r
+       CMPA    D,XTEMP+1       ;TRAIL SUBTRACT DIVISOR DELTA Y\r
+       BCS     40$             ;JUST SHIFT -BRANCH IF LOWER\r
+30$:   SUBA    D,XTEMP+1       ;REAL SUBTRACT DIVISIOR DELTA Y\r
+       INCB                    ;NEXT BIT IN QUOTIENT\r
+40$:   DEX\r
+       BNE     20$\r
+       TBA                     ;A,B HAS THE RESULT\r
+       .PAGE\r
+;\r
+;INTERPOLATE A ROTATION IN A 15 DEGREE TANGENT TABLE\r
+;\r
+;A IS THE CALCULATED TARGET\r
+;\r
+INTERP:        STAA    D,XTEMP+1       ;SAVE TANGENT\r
+       LDX     I,TANGENTS+6    ;TABLE PTR\r
+       LDAB    I,6             ;ROTATION\r
+       TST     E,XTEMP         ;TEST HIGH QUOTIENT\r
+       BNE     50$             ;TREAT AS INFINITY\r
+10$:   DEX\r
+       DECB\r
+       BEQ     50$             ;DONE ITS ZERO\r
+       LDAA    X,0             ;GET TANGENT\r
+       CMPA    D,XTEMP+1\r
+       BHI     10$\r
+       SUBA    D,XTEMP+1       ;GET DISTANCE\r
+       STAA    D,STEMP+1\r
+       LDAA    X,1             ;GET HIGHER TANGENT\r
+       SUBA    D,XTEMP+1       ;GET DISTANCE\r
+       CMPA    D,STEMP         ;WHICH IS CLOSER?\r
+       BHI     50$\r
+       INX                     ;LARGE ONE IS CLOSER\r
+       INCB    \r
+50$:   LDAA    D,STEMP         ;GET QUANDRAT\r
+       BEQ     60$             ;QUAD ZERO\r
+       CMPA    I,3\r
+       BNE     70$             ;NOT QUAD 3\r
+60$:   LDAA    I,6             ;TAKE 6-ANGLE\r
+       SBA\r
+       TAB                     ;B IS THE CONVERTED ANGLE\r
+70$:   \r
+       LDX     I,QUADS\r
+       LDAA    D,STEMP         ;GET QUADANT INDEX\r
+       BEQ     80$\r
+75$:   INX                     ;MOVE INDEX\r
+       DECA\r
+       BNE     75$\r
+80$:   ADDB    X,0             ;OFFSET ROTATION TO QUADS\r
+       ASLB\r
+       ASLB                    ;GET HIGH 5 BITS\r
+       ASLB\r
+       CMPB    I,23.*8.\r
+       BLS     90$             ;MOD 24\r
+       SUBB    I,24.*8.\r
+90$:\r
+       STAB    D,DRGOAL        ;GET DRONE ROTATION GOAL\r
+;\r
+;NOW UPDATE ROTATION TO THE GOAL\r
+;      B=GOAL\r
+;\r
+DOROT: STAB    D,DIREC+1               ;UPDATE DIRECTIION\r
+       LDAA    D,FRAME\r
+       ANDA    I,03\r
+       BNE     50$\r
+       STAB    D,ROTATE+1              ;SMOOTH UPDATE OF ROTATION\r
+50$:\r
+;\r
+;CONTROL DRONE SPEED\r
+;\r
+DRSPD: LDAA    D,FRAME\r
+       ANDA    I,3             ;DO IT SLOWLY\r
+       BNE     40$\r
+       LDAA    D,MODE\r
+       BEQ     40$             ;ATTRACT MODE\r
+       LDAA    D,VEL+1         ;GET DRONES SPEED\r
+       ADDA    I,4             ;SPEED INCREMENT\r
+       CMPA    I,MINSPD        ;MINIMUM DRONE SPEED\r
+       BLS     30$\r
+       LDAB    D,VEL\r
+       SUBB    I,18\r
+       CBA\r
+       BHI     40$\r
+       CMPA    I,MAXSPD        ;ABSOLUTE TOP SPEED\r
+       BHI     40$\r
+       LDAB    D,DVISBL        ;IS DRONE ON-SCREEN?\r
+       BNE     30$             ;YES, CONTINUE\r
+       LDAB    D,VEL           ;GET PLAYERS SPEED\r
+       SUBB    I,30            ;GO SLOWER THEN PLAYER\r
+       BCS     30$             ;BORROWED - PLAYER IS GOING SLOW\r
+       TBA\r
+30$:   STAA    D,VEL+1         ;ACCELERATE DRONE\r
+;\r
+;AUTO CONTROL DONE\r
+;\r
+40$:   LDX     D,XINDEX        ;RESTORE X REGISTER\r
+       RTS\r
+       .PAGE\r
+;\r
+;START THE DRONE AHEAD OF THE CARS IF ONE DOESN'T EXIST\r
+;\r
+STDRN: LDAA    D,DVISBL        ;0=NOT VISIBLE\r
+       BNE     80$             ;DRONE IS ALREADY ON THE SCREEN, EXIT\r
+       LDAA    D,VEL           ;TEST PLAYERS SPEED\r
+       CMPA    I,0C0           ;IS HE GOING FAST?\r
+       BLS     90$             ;NO, PASSING FROM BEHIND\r
+       LDX     I,12.           ;SET DRONE COORDS=TO PLAYER\r
+10$:   LDAA    X,HPOS-2        ;PLAYERS X,Y COORDS\r
+       STAA    X,HPOS-1        ;DRONES X,Y COORDS\r
+       DEX\r
+       DEX\r
+       BNE     10$\r
+       JSR     AUTO1           ;GET DRONE ROTATION GOAL, DESTINATION PTRS\r
+       LDAA    D,DRGOAL        ;DRONES NECESSARY GOAL BECOMES HIS ROTATION\r
+       STAA    D,ROTATE+1\r
+       LDAA    D,TEMP          ;GET DESTINATION H\r
+       LDAB    D,TEMP+1        ;GET DESTINATION V\r
+       LDX     I,3             ;LOOP COUNT 3 BITS\r
+40$:   LSRA\r
+       ROR     E,HPOSL+1       ;SHIFT IN LINE OFFSET H\r
+       LSRB\r
+       ROR     E,VPOSL+1       ;SHIFT IN LINE OFFSET V\r
+       DEX\r
+       BNE     40$\r
+       STAB    D,VPOS+1        ;SAVE STAMP OFFSET IN B\r
+       LDAB    D,HPOS          ;GET PLAYERS CELL H\r
+       ANDB    I,0F0\r
+       ABA                     ;THIS IS DRONES COMPLETE HPOS\r
+       STAA    D,HPOS+1\r
+       LDAA    D,VPOS\r
+       ANDA    I,0F0           ;GET PLAYERS CELL V\r
+       ADDA    D,VPOS+1\r
+       STAA    D,VPOS+1        ;COMPLETE VPOS\r
+       LDAA    I,MINSPD        ;GET DRONE MOVING FAST\r
+       STAA    D,VEL+1\r
+       LDAA    D,DCOLOR        ;CHANGE DRONE COLOR\r
+       ADDA    I,40\r
+75$:   STAA    D,DCOLOR\r
+       LDAA    D,VPOSL+1\r
+       SUBA    D,SVPOS+1       ;IS THE DRONE ON-SCREEN?\r
+       LDAA    D,VPOS+1\r
+       SBCA    D,SVPOS\r
+       ADDA    I,1\r
+       ANDA    I,70            ;MUST BE MORE THAN 10 TO NOT BE SEEN\r
+       BNE     80$             ;POSITION IS OK\r
+       LDAA    D,HPOSL+1\r
+       SUBA    D,SHPOS+1       ;TEST IT ON SCREEN H\r
+       LDAA    D,HPOS+1\r
+       SBCA    D,SHPOS\r
+       ANDA    I,70            ;MORE THAN 10 IS NOT SEEN\r
+       BNE     80$             ;POSITION IS OK\r
+;\r
+;DRONE WOULD BE VISIBLE, MOVE HIM.\r
+;\r
+       LDAA    D,HPOS+1\r
+       ADDA    I,40            ;MOVE 4 COLLS RIGHT\r
+       ANDA    I,7F\r
+       STAA    D,HPOS+1\r
+80$:   RTS\r
+90$:   LDX     I,8             ;GIVE DRONE PLAYERS LAST CELL POS\r
+95$:   LDAA    X,POSLAST-2\r
+       STAA    X,HPOS-1        ;MOVE TO DRONES\r
+       DEX\r
+       DEX\r
+       BNE     95$\r
+       LDX     D,XINDEX        ;RESTORE X\r
+       LDAA    I,MAXSPD        ;MAKE DRONE GO FAST\r
+       STAA    D,VEL+1\r
+       LDAA    D,DCOLOR        ;GO CHANGE HIS COLOR\r
+       SUBA    I,40\r
+       BRA     75$\r
+       .PAGE\r
+;\r
+;TANGENTS TABLE FOR 90 DEGREE @ 15 DEGREE\r
+;\r
+TANGENTS:\r
+       .BYTE   0               ;0 DEGREE\r
+       .BYTE   4               ;15 DEG\r
+       .BYTE   9.              ;30 DEG\r
+       .BYTE   16.             ;45 DEG\r
+       .BYTE   27.             ;60 DEG\r
+       .BYTE   59.             ;75 DEG\r
+       .BYTE   255.            ;90 DEG\r
+;\r
+;BASE ANGLE FOR EACH QUAD\r
+;\r
+QUADS: .BYTE   18.             ;CORTESIAN QUADRANT 3\r
+       .BYTE   12.             ;2\r
+       .BYTE   0               ;0\r
+       .BYTE   6               ;1\r
+       .MACRO  P ..1,..2\r
+       .BYTE 0'..1*16.+<0'..2&0F>\r
+       .ENDM\r
+;\r
+;TABLE COVING GOAL POSITIONS IN EACH CELL\r
+;\r
+PTTAB:\r
+;\r
+;CELL 0\r
+;\r
+       P       7,F             ;TOP LEFT QUADRANT\r
+       P       8,F             ;TOP RIGHT QUADRANT\r
+       P       9,F             ;BOTTOM LEFT QUADRANT\r
+       P       6,F             ;BOTTOM RIGHT QUADRAND\r
+;\r
+;CELL 1\r
+;\r
+       P       F,7\r
+       P       F,7\r
+       P       F,8\r
+       P       F,8\r
+;\r
+;CELL 2\r
+;\r
+       P       F,8\r
+       P       F,7\r
+       P       F,5\r
+       P       F,8\r
+;\r
+;CELL 3\r
+;\r
+       P       F,9\r
+       P       F,7\r
+       P       F,8\r
+       P       F,8\r
+;\r
+;CELL 4\r
+;\r
+       P       6,F\r
+       P       6,F\r
+       P       8,F\r
+       P       8,F\r
+;\r
+;CELL 5\r\r
+;\r
+       P       8,0\r
+       P       7,0\r
+       P       9,0\r
+       P       7,0\r
+;\r
+;CELL 6\r
+;\r
+       P       8,8\r
+       P       7,8\r
+       P       8,F\r
+       P       7,F\r
+;\r
+;CELL 7\r
+;\r
+       P       8,8\r
+       P       F,8\r
+       P       8,7\r
+       P       F,7\r
+;\r
+;CELL 8\r
+;\r
+       P       F,6\r
+       P       F,6\r
+       P       F,9\r
+       P       F,9\r
+;\r
+;CELL 9\r
+;\r
+       P       F,4\r
+       P       F,6\r
+       P       F,4\r
+       P       F,8\r
+;\r
+;CELL A\r
+;\r
+       P       7,F\r
+       P       6,F\r
+       P       9,F\r
+       P       9,F\r
+;\r
+;CELL B\r
+;\r
+       P       F,9\r
+       P       F,6\r
+       P       F,7\r
+       P       F,8\r
+;\r
+;CELL 10\r
+;\r
+       P       7,0\r
+       P       8,0\r
+       P       9,0\r
+       P       6,0\r
+;\r
+;CELL 11\r
+;\r
+       P       0,7\r
+       P       0,7\r
+       P       0,8\r
+       P       0,8\r
+;\r
+;CELL 12\r
+;\r
+       P       7,0\r
+       P       7,0\r
+       P       9,0\r
+       P       8,0\r
+;\r
+;CELL 13\r
+;\r
+       P       A,F\r
+       P       9,F\r
+       P       7,F\r
+       P       8,F\r
+;\r
+;CELL 14\r
+;\r
+       P       0,6\r
+       P       0,A\r
+       P       0,8\r
+       P       0,6\r
+;\r
+;CELL 15\r
+;\r
+       P       0,8\r
+       P       0,8     \r
+       P       0,8\r
+       P       0,6\r
+;\r
+;CELL 16\r
+;\r
+       P       8,0\r
+       P       7,0\r
+       P       8,7\r
+       P       7,7\r
+;\r
+;CELL 17\r
+;\r
+       P       0,7\r
+       P       7,8\r
+       P       0,8\r
+       P       7,7\r
+;\r
+;CELL 18\r
+;\r
+       P       0,6\r
+       P       0,6\r
+       P       0,9\r
+       P       0,9\r
+;\r
+;CELL 19\r
+;\r
+       P       7,0\r
+       P       9,0\r
+       P       B,0\r
+       P       B,0\r
+;\r
+;CELL 1A\r
+;\r
+       P       0,7\r
+       P       0,9\r
+       P       0,8\r
+       P       0,8\r
+;\r
+;CELL 1B\r
+;\r
+       P       0,6\r
+       P       0,8\r
+       P       0,8\r
+       P       0,7\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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/A35767.1C b/A35767.1C
new file mode 100644 (file)
index 0000000..c813693
Binary files /dev/null and b/A35767.1C differ
diff --git a/A35767.1D b/A35767.1D
new file mode 100644 (file)
index 0000000..82426e0
--- /dev/null
+++ b/A35767.1D
@@ -0,0 +1,621 @@
+       .TITLE MO2TST:MONTE CARLO SELF-TEST\r
+       OPT=1\r
+       .RADIX  16\r
+       .CSECT\r
+       .LIST   MEB\r
+       .IIF NDF,OPT,OPT=2\r
+       .MACRO .WAIT\r
+       .IF EQ,OPT-1\r
+       SWI\r
+       .IFF\r
+       JMP WAIT\r
+       .ENDC\r
+       .ENDM\r
+       .GLOBL TEST,TSTRTN,PWRON,IRQ,NMI\r
+       .GLOBL STEPSW,WTCHDG,PLYFLD,AN,ROM1,ROTTAB\r
+       .GLOBL TEMP,TSTCNT,TRKLED,STEPDB,XTEMP\r
+       .GLOBL CRSSND,SKDRST,SWITCH,OPTS\r
+       .GLOBL PVP,PHP,CARROT,DHPOS,DCOLOR\r
+       .GLOBL DVPOS,DROT,MSND1,SKDSND\r
+       .GLOBL VBLANK,TESTSW,DIHOLD\r
+       .GLOBL VISAVE,VIDINV,ATTRCT\r
+       .GLOBL RAMCV,RAMCHK,ATSTART\r
+       .GLOBL MAINLP,ISTEMP,COIN68\r
+       .GLOBL $CCTIM,ATSAVE,EMCNTRS\r
+       .PAGE\r
+       .SBTTL  POWER ON RESET\r
+       .REPT   0\r
+*************************\r
+*\r
+*      POWER-ON\r
+*\r
+*************************\r
+\r
+DESCRIPTION:   POWER ON RESET\r
+               CLEAR ALL MEMORY, SET STACK POINTER,\r
+               LOOK FOR SELF-TEST SWITCH\r
+\r
+\r
+\r
+REGISTERS:\r
+       IN:\r
+\r
+       OUT:    SP=FF\r
+\r
+\r
+STACK USE:     STACK INITIATED TO FF\r
+\r
+\r
+\r
+\r
+\r
+BASE PAGE USE: ALL BASE PAGE ZEROED\r
+\r
+\r
+\r
+\r
+       .ENDR\r
+PWRON:\r
+       SEI\r
+       LDS     I,0FF\r
+       LDX     I,RAMCV\r
+       STX     D,RAMCHK\r
+       TSX                     ;X=100\r
+10$:   CLR     X,0             ;CLEAR MEMORY\r
+       DEX\r
+       BNE     10$\r
+       ROL     E,TESTSW        ;LOOK FOR TEST SWITCH\r
+       BCS     30$\r
+       LDX     I,RAMCV\r
+       STX     D,RAMCHK        ;GET RAM VERTICATION\r
+       LDAA    I,3             ;TURN LEDS OFF\r
+       STAA    D,ATSAVE\r
+       JSR     ATSTART\r
+       JMP     E,MAINLP\r
+30$:   JMP     E,TEST\r
+\r
+\r
+\r
+       .PAGE\r
+       .SBTTL  IRQ\r
+       .REPT   0\r
+*************************\r
+*\r
+*      IRQ\r
+*\r
+*************************\r
+\r
+DESCRIPTION:   IRQ IS 4 TIMES PER FRAME\r
+               TAKES CARE OF COINS\r
+\r
+STACK USE:     ALL REGS SAVED\r
+\r
+\r
+\r
+\r
+\r
+BASE PAGE USE: MODIFY: ISTEMP\r
+               READ:   COIN VARIABLES\r
+\r
+\r
+\r
+\r
+       .ENDR\r
+IRQ:   STS     D,ISTEMP        ;TESTSP\r
+       TST     E,ISTEMP        ;ON ZERO PAGE\r
+       BEQ     10$             ;YES, CONTINUE\r
+       RTI                     ;NO, RETURN TO SELF TEST\r
+10$:\r
+\r
+15$:   JSR     COIN68          ;COINS\r
+       LDX     I,3\r
+       CLRA\r
+20$:   LDAB    X,$CCTIM-1\r
+       ASLB\r
+       RORA\r
+       DEX\r
+       BNE     20$\r
+       LDAB    D,ATSAVE\r
+       ANDB    I,1F\r
+       ABA\r
+       CMPA    I,87\r
+       BHI     30$\r
+       STAA    E,EMCNTRS\r
+30$:   RTI\r
+       .PAGE\r
+       .SBTTL SELF-TEST\r
+TEST:  SEI\r
+       LDAA    I,3             ;TURN NOISE OFF AND LEDS OFF\r
+       STAA    E,ATTRCT\r
+       LDAA    I,10            ;STND VID, NO SOUND\r
+       STAA    E,VIDINV\r
+       STAA    E,SKDRST\r
+       LDAA    I,0FF\r
+       STAA    E,MSND1\r
+       STAA    E,CRSSND\r
+;RAM TEST\r
+       CLRB                    ;COUNTER\r
+       LDX     I,100           ;SET UP FOR ZERO PAGE\r
+RAMTST:        TXS\r
+       CLC\r
+       LDAA    X,-1            ;MUST ORIGINALLY\r
+       BNE     BADRAM          ;BE 0\r
+       LDAA    I,1             ;LOAD A WITH PATTERN\r
+20$:   PSHA                    ;PUSH PATTERN ON STACK\r
+       EORA    X,-1            ;CHECK IF OK\r
+       BNE     BADRAM          ;NOT OK, SO TELL\r
+       PULA                    ;RESET SP AND A\r
+       ROLA                    ;CHANGE PATTERN\r
+       BCC     20$             ;CONTINUE WITH SHIFTING 1\r
+       LDAA    I,0FE           ;NOW DO A MMOVING 0\r
+40$:   PSHA                    ;SIMILAR TO ABOVE\r
+       EORA    X,-1\r
+       BNE     BADRAM\r
+       PULA\r
+       ROLA\r
+       BCS     40$\r
+       STAA    X,-1\r
+       DEX\r
+       STAA    E,WTCHDG        \r
+       DECB                    ;DONE?\r
+       BNE     RAMTST          ;NO\r
+                               ;YES\r
+       TSX                     ;SP+1=X\r
+       DEX\r
+       BNE     60$             ;NO, PLAYFIELD OR RAM2\r
+       LDS     I,10            ;YES, THEN SAY "RAM1OK"\r
+       LDX     I,RAM1OK+7\r
+       BRA     RAMOK\r
+60$:   LDS     I,19            ;SAY "RAM2OK"\r
+       LDX     I,RAM2OK+0A\r
+\r
+RAMOK: LDAB    I,8             ;8 CHARACTER MESSAGE\r
+10$:   LDAA    X,0             ;DISPLAY IT\r
+       PSHA\r
+       DEX\r
+       DECB\r
+       BNE     10$             \r
+       CPX     I,RAM2OK+2      ;"RAM2OK"?\r
+       BEQ     ROMTST          ;YES. THEN CHECK ROMS\r
+       LDX     I,800           ;NO, DO PLAYFIELD TEST\r
+       CLRA\r
+       CLRB\r
+20$:   STAA    X,0\r
+       INX\r
+       DECB\r
+       BNE     20$\r
+       LDX     I,900\r
+       BRA     RAMTST\r
+\r
+       \r
+;IF THE RAM IS BAD, OUTPUT THE OFFENDING PATTERN IN A SERIES OF SOUNDS:\r
+;SKID=0, CRASH=1\r
+;\r
+BADRAM:        TAB\r
+       CPX     I,800           ;BAD PLAYFIELD?\r
+       BPL     SHOWIT          ;YES, THEN DISPLAY\r
+                               ;NO, ZERO PAGE\r
+                               ;USE SOUNDS\r
+3$:    CLRA\r
+       DECA\r
+5$:    LDX     I,07FFF         ;TIMER\r
+10$:\r
+       STAA    E,WTCHDG\r
+       DEX\r
+       BNE     10$\r
+       INCA\r
+       BITA    I,1\r
+       BEQ     20$\r
+       STAA    E,SKDRST        ;TURN SOUNDS OFF\r
+       LDX     I,0F0F0\r
+       STX     E,CRSSND\r
+       LDX     I,0707          ;TURN LEDS OFF\r
+       STX     E,ATTRCT\r
+       BRA     5$\r
+20$:   RORB\r
+       BITA    I,10\r
+       BNE     3$              ;START PROCEDURE AGAIN\r
+       BCC     25$\r
+       CLR     E,CRSSND        ;1 IN BIT, CRASH ON\r
+       SEC                     ;SET SINCE A CLR RESETS THE CARRY\r
+       LDX     I,0505  \r
+       STX     E,ATTRCT\r
+       BRA     5$\r
+25$:   STAA    E,SKDSND        ;0 IN BIT, SKID ON\r
+       LDX     I,0606\r
+       STX     E,ATTRCT\r
+       BRA     5$\r
+SHOWIT:        ANDA    I,0F0\r
+       BEQ     20$\r
+       LDAA    I,8             ;"H" FOR HI NIBBLE BAD\r
+       STAA    D,AN+1B\r
+20$:   ANDB    I,0F\r
+       BEQ     40$\r
+       LDAA    I,0C            ;"L" FOR LO NIBBLE BAD\r
+       STAA    D,AN+1C\r
+40$:   LDAB    I,8\r
+       LDS     I,19\r
+       LDX     I,RAM2OK+7\r
+60$:   LDAA    X,0\r
+       PSHA\r
+       DEX\r
+       DECB\r
+       BNE     60$\r
+;ROM TEST\r
+ROMTST:        LDS     I,ROM1-1\r
+       LDX     I,1             ;ROM COUNTER\r
+10$:   LDAA    I,-4            ;1K=400, -400=COUNT\r
+       STAA    D,TEMP\r
+       CLRA\r
+       STAA    D,TEMP+1\r
+20$:   PULB\r
+       ABA                     ;SUM\r
+       STAA    E,WTCHDG        ;PULSE DOG\r
+       INC     E,TEMP+1\r
+       BNE     20$\r
+       INC     E,TEMP\r
+       BNE     20$             ;DONE? NO\r
+       STX     D,TEMP\r
+       LDAB    I,0             ;LDAB I,CKSUM/400\r
+       .=.-1\r
+       .WORD   CHKSM\r
+       .=.-1\r
+       STAB    D,TEMP\r
+       LDX     D,TEMP\r
+       ADDA    X,0             ;ADDA X,CHKSM&0FF\r
+       .=.-1\r
+       .DSABL  M68\r
+       .WORD   CHKSM-1\r
+       .=.-1\r
+       .ENABL  M68\r
+       CLR     E,TEMP\r
+       LDX     D,TEMP\r
+       SUBA    I,0AA           ;SUM=AA?\r
+       BEQ     40$             ;YES, OK\r
+       LDAA    D,TEMP+1\r
+40$:   STAA    X,AN+31\r
+       INX                     ;DONE?\r
+       CPX     I,9             ;8K+1\r
+       BNE     10$             ;NO, CHECK NEXT 1K BLOCK\r
+       DEX\r
+       CLRA                    ;YES\r
+50$:   LDAB    X,AN+31         ;THEN CHECK FOR ERRORS\r
+       ABA\r
+       DEX\r
+       BNE     50$\r
+       LDAB    I,7             ;MESSAGE LENGTH\r
+       LDS     I,30            ;MESS LOCATION\r
+       LDX     I,ROMMES+6      ;START WITH "BAD ROM"\r
+       TSTA                    ;NOT 0 IS BAD\r
+       BNE     70$\r
+       LDX     I,ROMMES+9\r
+70$:   LDAA    X,0             ;DISPLAY ROM MESSAGE\r
+       PSHA\r
+       DEX\r
+       DECB\r
+       BNE     70$\r
+;\r
+;SET-UP FOR DIAGNOSTICS\r
+;\r
+DIAGS: LDS     I,1FF\r
+       LDX     I,TSTTBL                ;SET UP INDEX FOR JUMP TABLE\r
+       .=.-1                   ;TSTTBL&0FF00\r
+       .BYTE   0\r
+       STX     D,TSTCNT\r
+       STAA    E,WTCHDG        ;PULSE DOG\r
+       LDX     I,800                   ;RAINBOW ON PLYFLD\r
+       CLRA\r
+       STAA    D,DCOLOR\r
+20$:   STAA    X,0\r
+       INX\r
+       INCA\r
+       BNE     20$\r
+;\r
+;LAMPS ON\r
+T0:    LDAA    I,3             ;ATTRACT ON(DISALLOW SOUNDS) AND LEDS OFF\r
+       STAA    E,TRKLED\r
+       LDAA    I,0FF\r
+       STAA    E,SKDRST        ;SKID OFF\r
+       LDAA    I,10\r
+       STAA    E,VIDINV        ;EXTENDED PLAY,VIDEO INVERT,DRONE MOTOR OFF\r
+;DISPLAY OPTION SWITCHES\r
+;8 SWITCH DIP FIRST\r
+       CLRA\r
+       LDX     I,OPTS+3        ;READ\r
+40$:   ASLA\r
+       LDAB    X,0\r
+       ANDB    I,3\r
+       LSRB\r
+       BCC     50$\r
+       ORAB    I,10\r
+50$:   ABA\r
+       DEX\r
+       CPX     I,OPTS-1\r
+       BNE     40$\r
+       LDX     I,8             ;DISPLAY\r
+60$:   ASLA\r
+       LDAB    I,31            ;"1" FOR ON\r
+       BCC     70$\r
+       LDAB    I,30            ;"0" FOR OFF\r
+70$:   STAB    X,0\r
+       DEX\r
+       BNE     60$\r
+;NOW THE 4 SWITCH DIP\r
+       LDAA    E,OPTS\r
+       ANDA    I,3C\r
+       LSRA\r
+       LSRA\r
+       LDX     I,24\r
+80$:   LSRA\r
+       LDAB    I,31\r
+       BCC     90$\r
+       LDAB    I,30\r
+90$:   STAB    X,0\r
+       DEX\r
+       CPX     I,20\r
+       BNE     80$\r
+;\r
+;SWITCH TEST - EXOR BITS 6 & 7\r
+;\r
+       CLRA\r
+       LDAB    D,TEMP+1\r
+       LDX     I,SWITCH+6      ;TOP OF SWITCHES\r
+21$:   EORA    X,0\r
+       DEX\r
+       CPX     I,SWITCH-1\r
+       BNE     21$\r
+       ASLA                    ;V=BIT 7 EOR BIT 6 FROM BEFORE SHIFT\r
+       BVC     22$\r
+       COMA                    ;IF V=1, COMPLEMENT BIT 0\r
+22$:   LSRA                    ;RETURN A\r
+       ABA                     ;ADD B IN\r
+       LSRA\r
+       BCC     23$             ;IF C=0, THEN A=B\r
+       COMB                    ;SWAP B\r
+       LDAA    I,4             ;TURN NOISE ON\r
+       STAA    E,ATTRCT\r
+       STAA    E,SKDSND        ;SKDSND ON\r
+23$:   ANDB    I,1\r
+       STAB    D,TEMP+1\r
+       NEGA                    ;A=1\r
+       .WAIT\r
+;\r
+;SCREEN MOTION VERTICAL - STEP A\r
+;\r
+T1:                            ;BUMP COUNTER\r
+       STAB    E,PVP           ;OUTPUT\r
+       .WAIT\r
+;\r
+;SCREEN MOTION HORIZONTAL - STEP B\r
+;\r
+T2:                            ;BUMP COUNTER\r
+       STAB    E,PHP           ;OUTPUT\r
+       .WAIT\r
+       SWI\r
+;\r
+;CAR ROTATION-STEP C\r
+;\r
+T3:                            ;BUMP ROTATION\r
+       JSR     ROT\r
+       STAA    E,CARROT\r
+       LDAA    I,1F            ;WAIT 1F FRAMES\r
+       .WAIT\r
+;\r
+;TAIL MOTION HORIZONTAL - STEP D\r
+;\r
+T4:                            ;BUMP COUNTER\r
+       STAB    E,DHPOS         ;STORE TO SCREEN\r
+       CLR     E,DROT          ;A VALID ROTATION\r
+       .WAIT\r
+;\r
+;TAIL MOTION VERTICAL - STEP E\r
+;\r
+T5:                            ;BUMP COUNTER\r
+       STAB    E,DVPOS         ;STORE TO SCREEN\r
+       LDAA    I,40\r
+       STAA    E,DHPOS\r
+       CLRA                    ;DON'T WAIT\r
+       .WAIT\r
+;\r
+;TAIL ROTATION - STEP F\r
+;\r
+T6:                            ;BUMP COUNTER\r
+                               ;SAVE SINGT IT GET BLIZED\r
+       JSR     ROT             ;PROCESS INTO A PICTURE\r
+       ADDA    D,DCOLOR        ;2*DCOLOR\r
+       ADDA    D,DCOLOR\r
+       STAA    E,DROT\r
+       LDAA    D,DCOLOR\r
+       STAA    E,CARROT\r
+       LDAA    I,1F            ;WAIT 1F FRAMES\r
+       .WAIT\r
+;\r
+;EXTENDED PLAY SOUND AND VIDEO INVERT - STEP G\r
+;\r
+T7:\r
+       LDAA    D,VISAVE\r
+       EORA    I,90            ;TOGGLE XPSND BIT\r
+       STAA    D,VISAVE\r
+       STAA    E,VIDINV\r
+       LDAA    I,0F\r
+       .WAIT\r
+;PLAYER MOTOR FREQ-STEP H\r
+T8:    LDAA    I,7             ;TURN LEDS AND\r
+       STAA    E,ATTRCT        ;ATTRACT OFF\r
+       LDAA    I,10\r
+       STAA    E,VIDINV        ;DRONE OFF\r
+       TBA\r
+       ORAA    I,0F0           ;DONR LOW FREQ\r
+       STAA    E,MSND1\r
+       LDAA    I,1F\r
+       .WAIT\r
+;\r
+;DRONE MOTOR FREQ SOUND - STEP I\r
+T9:    LDAA    I,1F            ;MAKE DRONE LOUD\r
+       STAA    E,VIDINV\r
+       TBA\r
+       ASLA\r
+       ASLA\r
+       ASLA\r
+       ASLA\r
+       ORAA    I,0F            ;PLAYER ALWAYS LO FREQ\r
+       STAA    E,MSND1\r
+       LDAA    I,1F\r
+       .WAIT\r
+;\r
+;DRONE VOLUME-STEP J\r
+T10:   TBA\r
+       ORAA    I,10\r
+       ANDA    I,7F\r
+       STAA    E,VIDINV\r
+       LDAA    I,1F\r
+       .WAIT\r
+;\r
+;SCREECH SOUND - STEP K\r
+;\r
+T11:\r
+       LDAA    I,0FF           ;MOTOR SLOW\r
+       STAA    E,MSND1\r
+       CLRA\r
+       BITB    I,10\r
+       BNE     1$\r
+       STAB    E,SKDSND\r
+       .WAIT\r
+1$:    STAB    E,SKDRST\r
+       .WAIT\r
+;\r
+;CRASH SOUND - STEP L\r
+;\r
+T12:\r
+       TBA\r
+       ASLA\r
+       ASLA\r
+       ASLA\r
+       ASLA\r
+       STAA    E,SKDRST        ;SKID OFF\r
+       STAA    E,CRSSND\r
+       LDAA    I,7A\r
+       STAA    D,TEMP\r
+       LDAA    I,1F\r
+       .WAIT\r
+;\r
+;CONVERGENCE PATTERN-STEP M\r
+;\r
+T13:   LDX     I,0303          ;KILL CRASH SOUND\r
+       STX     E,ATTRCT\r
+       LDX     I,9090          ;BLACK BACKGROUND\r
+       STX     E,VIDINV\r
+       LDAA    D,TEMP\r
+       EORA    I,0C0\r
+       STAA    D,TEMP\r
+       CLRB\r
+       LDX     I,800\r
+10$:   STAA    X,0\r
+       INX\r
+       DECB\r
+       BNE     10$\r
+       CLRA\r
+WAIT:                                  ;BUMP COUNTER\r
+;\r
+;WAIT THE NUMBER OF FRAMES SPECIFIED IN A CHECK STEP SWITCH\r
+;RETURN AT THE START OF VBLANK\r
+;\r
+TSTGO: LDS     I,1FF           ;THIS IS STILL MAPPED INTO THE ZERO PAGE\r
+                               ;RAM, BUT NOW I CAN IDENTIFY THE TEST MODE\r
+                               ;BY CHECKING THE STACK\r
+       CLI\r
+       STAA    E,WTCHDG        ;PULSE DOG\r
+       WAI\r
+TSTRTN:        ROL     VBLANK          ;ARE WE IN BLANKING?\r
+       BPL     TSTGO\r
+       CLR     PVP             ;STOP SCROLLING\r
+       LDX     I,4040          ;USE X, NOT A OR B\r
+       STX     E,DVPOS\r
+       ROL     TESTSW          ;STILL IN TEST?\r
+       BCS     40$             ;YES, GO ON\r
+       JMP     PWRON           ;RESET\r
+;START & SLAM SWITCHES TO START DIAGS\r
+40$:   TST     E,TSTCNT+1      ;SWITCH TEST?\r
+       BNE     50$             ;NO, IN DIAGS\r
+       PSHA                    ;YES, SAVE A\r
+       LDAA    E,SWITCH        ;START AND\r
+       ANDA    E,SWITCH+1      ;SLAM TOGETHER?\r
+       PULA\r
+       BPL     70$             ;STAY IN SWITCH TEST\r
+       CLR     E,STEPDB        ;YES, GO TO DIAGNOSTICS\r
+       BRA     55$\r
+50$:   ROL     STEPSW\r
+       ROL     STEPDB\r
+       INC     E,STEPDB        ;IF STEPDB WAS 01111111,THEN V=1\r
+       BVC     60$\r
+55$:   LDAB    D,TSTCNT+1      ;BUMP COUNT\r
+       INCB\r
+       INCB\r
+       STAB    D,TSTCNT+1\r
+       CMPB    I,6             ;TEST 3\r
+       BNE     59$             ;NO\r
+       LDX     I,800           ;YES, CLEAR SCREEN\r
+57$:   CLR     X,0\r
+       INX\r
+       CPX     I,900           ;DONE?\r
+       BMI     57$             ;NO\r
+59$:   CLRB\r
+60$:   DEC     E,STEPDB        ;RESTORE\r
+       DECA                    ;ENOUGH FRAMES?\r
+       BPL     TSTGO\r
+70$:   LDX     D,TSTCNT\r
+       LDX     X,0             ;LDX   X,TSTTBL&0FF\r
+       .DSABL  M68\r
+       .=.-1\r
+       .WORD   TSTTBL\r
+       .=.-1\r
+       .ENABL  M68\r
+       LDAA    D,TSTCNT+1      ;DON'T BUMP IN SWITCH TEST\r
+       BEQ     100$\r
+       ASRA                    ;DIVIDE BY 2\r
+       STAA    AN+28           ;STORE TEST NUMBER\r
+       ROL     DIHOLD\r
+       BMI     100$\r
+       INCB\r
+100$:  CLRA\r
+       JMP     X,0\r
+ROT:   CMPB    I,18\r
+       BNE     10$\r
+       LDAB    D,DCOLOR\r
+       ADDB    I,40\r
+       ANDB    I,0C0\r
+       STAB    D,DCOLOR\r
+       CLRB\r
+10$:   LDX     I,ROTTAB\r
+       STX     D,XTEMP\r
+       STAB    D,XTEMP+1\r
+       LDX     D,XTEMP\r
+       LDAA    X,0             ;LDAA   X,ROTTAB&0FF\r
+       .DSABL  M68\r
+       .=.-1\r
+       .WORD   ROTTAB\r
+       .=.-1\r
+       .ENABL  M68\r
+       RTS\r
+TSTTBL:        .WORD   T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,PWRON\r
+RAM1OK:        .ASCII  /@RAM1@OK/\r
+RAM2OK:        .ASCII  /BAD@RAM2@OK/\r
+ROMMES:        .ASCII  /BAD@ROM@OK/\r
+ROTTAB:        .BYTE 0,1,2,3,4,5,6,0D,0C,0B,0A,9,8\r
+       .BYTE 19,1A,1B,1C,1D,1E,15,14,13,12,11\r
+;RUN CHKSUM PROGRAM\r
+;CHECKSUMS FOR 1K BLOCKS\r
+;0AA-CHKSUM (8 BIT RESULT) =DATA FOR CHKSM\r
+;FOR LAST BLOCK THE CHKSUM MUST BE AN EVEN NUMBER\r
+;USE LOCATION EVEN TO ACCOMPLISH THIS\r
+;THE DATA = (0AA-CHKSUM)/2\r
+EVEN:  .BYTE 0                 ;MAKES LAST BLOCK CHKSUM EVEN\r
+CHKSM: .BYTE 18,0D6,1E,0B8,9F,8A,0D0,0FB\r
+       .NLIST  MEB\r
+       .REPT   1C\r
+       .BYTE 0.\r
+       .ENDR\r
+       .LIST   MEB\r
+       .VCTRS  3FF8,IRQ,WAIT,NMI,PWRON\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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/A35767.1E b/A35767.1E
new file mode 100644 (file)
index 0000000..6cded0a
--- /dev/null
+++ b/A35767.1E
@@ -0,0 +1,679 @@
+       .TITLE MOTRK2 - MONTE CARLO TRACK FOR NEW HARDWARE\r
+       .SBTTL   ****************************************\r
+       .SBTTL   *\r
+       .SBTTL   *      NORMAN & CHRIS & JOHN\r
+       .SBTTL   *\r
+       .SBTTL   ****************************************\r
+       .REPT 0\r
+DATE:                  6-SEP-79\r
+\r
+DISK #:                        61 & B20\r
+\r
+CHARGE #:              23003\r
+\r
+ASSOCIATED FILES:      SEE SBRACE\r
+\r
+DESCRIPTION:           TABLES IN PROG. ADDR. SPACE USED TO DESCRIBE MAP\r
+                       AND TRACK PIECES.\r
+       .ENDR\r
+       .ASECT\r
+       .RADIX 16\r
+       .=2000\r
+       .PAGE\r
+       .SBTTL CELL DESCRIPTION TABLES\r
+BRN    =0C0                    ;BLACK COLOR BITS\r
+BLU    =040                    ;BLUE\r
+YEL    =080                    ;YELLOW\r
+GRN    =000                    ;GREEN\r
+TA     =BLU!0                  ;T=TREE\r
+TB     =BLU!1\r
+TC     =BLU!2\r
+TD     =YEL!0\r
+TE     =YEL!1\r
+TF     =YEL!2\r
+BA     =GRN!1E                 ;BA=BLANK\r
+BN     =YEL!10                 ;-NEG SLOPE BALE\r
+BP     =YEL!11                 ;-POS SLOPE BALE\r
+VA     =BLU!2                  ;TREES\r
+VB     =BLU!2                  \r
+VC     =YEL!1                  \r
+VD     =YEL!0                  \r
+KA     =BLU!1C                 ;K=COLA STAND (NORTH)\r
+KB     =BLU!1D                 ;COLA SOUTH\r
+S0R    =BRN!0                  ;TREES\r
+S0B    =BLU!1\r
+S0Y    =YEL!2\r
+S1R    =BRN!0                  \r
+S1B    =BLU!1\r
+S1Y    =YEL!2\r
+S2R    =BRN!0                  \r
+S2B    =BLU!1\r
+S2Y    =YEL!2\r
+S3R    =BRN!0                  \r
+S3B    =BLU!1\r
+S3Y    =YEL!2\r
+S4R    =BRN!0                  \r
+S4B    =BLU!1\r
+S4Y    =YEL!2\r
+S5R    =BRN!0                  \r
+S5B    =BLU!1\r
+S5Y    =YEL!2\r
+S6R    =BRN!0                  \r
+S6B    =BLU!1\r
+S6Y    =YEL!2\r
+S7R    =BRN!0                  \r
+S7B    =BLU!1\r
+S7Y    =YEL!2\r
+PP     =BLU!3                  ;P=PYLON\r
+C0     =BRN!20                 ;C=CURVED ROADWAY EDGES W/BROWN\r
+C1     =BRN!21\r
+C2     =BRN!22\r
+C3     =BRN!23\r
+C4     =BRN!24\r
+C5     =BRN!25\r
+C6     =BRN!26\r
+C7     =BRN!04\r
+C8     =BRN!05\r
+C9     =BRN!06\r
+CA     =BRN!07\r
+CB     =BRN!08\r
+CC     =BRN!09\r
+CD     =BRN!0A\r
+CE     =BRN!0B\r
+CF     =BRN!0C\r
+CG     =BRN!0D\r
+CH     =BRN!0E\r
+CI     =BRN!0F\r
+CJ     =BRN!1F\r
+L1     =BRN!32                 ;ATARI INC.\r
+L2     =BRN!33\r
+L3     =BRN!34\r
+L4     =BRN!35\r
+L5     =BRN!36\r
+L6     =BRN!37\r
+L7     =BRN!38\r
+L8     =BRN!39\r\r
+RD     =BRN!3B                 ;ROADWAY - NO ARROWS\r
+BS     =BLU!3B                 ;BLUE SHOLID-FOR START LINE\r
+YS     =YEL!3B                 ;YELLOW SOLID\r
+GS1    =BLU!12                 ;GRANDSTAND PIECES\r
+GS2    =BLU!13\r
+GS3    =BLU!14\r
+GS4    =BLU!15\r
+GS5    =BLU!16\r
+GS6    =BLU!17\r
+GS7    =BLU!18\r
+GS8    =BLU!19\r
+GS9    =BLU!1A\r
+GS10   =BLU!1B\r
+GS11   =BLU!27\r
+GS12   =BLU!28\r
+GS13   =BLU!29\r
+GS14   =BLU!2A\r
+GS15   =BLU!2B\r
+GS16   =BLU!2C\r
+GS17   =BLU!2D\r
+GS18   =BLU!2E\r
+SPY    =YEL!2F                 ;SPECATORS\r
+SPR    =BRN!2F\r
+SPB    =BLU!2F\r
+       .MACRO .PIC,A,B,C,D,E,F,G,H\r
+       .LIST MEB\r
+       .BYTE A,B,C,D,E,F,G,H\r
+       .NLIST MEB\r
+       .ENDM\r
+       .MACRO .ROAD\r
+       .LIST MEB\r
+       .PIC RD,RD,RD,RD,RD,RD,RD,RD\r
+       .NLIST MEB\r
+       .ENDM\r
+       .MACRO .LAND\r
+       .LIST MEB\r
+       .PIC BA,BA,BA,BA,BA,BA,BA,BA\r
+       .NLIST MEB      \r
+       .ENDM\r
+;CELL #0: NORTH-SOUTH\r
+       .PIC BA,BA,BA,BA,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,BA,BA,BA,BA\r
+       .PIC TA,BA,BA,BA,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,BA,BA,BA,BA\r
+       .PIC BA,TE,BA,BA,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,BA,S6R,S6R,BA\r
+       .PIC TE,BA,TC,BA,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,BA,S6Y,BA,BA\r
+       .PIC TF,BA,BA,BA,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,BA,BA,S6R,BA\r
+       .PIC BA,BA,BA,BA,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,BA,S6Y,S6B,BA\r
+       .PIC S2R,BA,BA,PP,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,PP,S6R,BA,S6Y\r
+       .PIC BA,S2Y,S2B,PP,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,PP,S6B,S6R,S6Y\r
+       .PIC KA,SPR,SPY,PP,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,PP,S6Y,S6B,BA\r
+       .PIC KB,SPB,BA,PP,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,PP,S6R,BA,S6Y\r
+       .PIC S2B,S2R,S2Y,PP,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,PP,BA,BA,S6B\r
+       .PIC S2R,BA,S2B,PP,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,PP,BA,S6Y,BA\r
+       .PIC BA,S2Y,BA,PP,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,PP,S6B,BA,BA\r
+       .PIC S2B,S2Y,S2R,PP,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,PP,TC,BA,TC\r
+       .PIC S2Y,S2R,S2B,PP,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,PP,BA,BA,TA\r
+       .PIC BA,BA,BA,BA,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,BA,TB,TB,BA\r
+;CELL # 1 EAST-WEST\r
+       .REPT 0\r
+       .PIC BA,S4Y,S4B,BA,S4R,S4B,BA,S4B\r
+       .PIC BA,S4R,BA,TF,TE,BA,TA,BA\r
+       .PIC BA,S4R,S4Y,S4Y,BA,S4R,S4Y,S4R\r
+       .PIC S4Y,BA,BA,BA,BA,TE,BA,BA\r
+       .PIC BA,S4B,S4R,BA,S4B,S4Y,S4B,S4Y\r
+       .PIC S4B,BA,BA,BA,TC,BA,BA,BA\r
+       .ENDR\r
+       .PIC BA,GS1,GS2,GS4,GS2,GS16,GS3,GS2\r
+       .PIC GS3,GS5,BA,TF,TE,BA,TA,BA\r
+       .PIC BA,GS6,GS7,GS9,GS7,GS17,GS8,GS9\r
+       .PIC GS8,GS10,BA,BA,BA,TE,BA,BA\r
+       .PIC BA,GS11,GS12,GS12,GS14,GS18,GS12,GS12\r
+       .PIC GS13,GS15,BA,BA,TC,BA,BA,BA\r
+       .PIC BA,PP,PP,PP,PP,PP,PP,PP\r
+       .PIC PP,PP,BA,BA,BA,BA,BA,BA\r
+       .REPT 16.\r
+       .PIC RD,RD,RD,RD,RD,RD,RD,RD\r\r
+       .ENDR\r
+       .PIC BA,PP,PP,PP,PP,PP,PP,PP\r
+       .PIC PP,PP,BA,BA,BA,BA,BA,BA\r
+       .PIC TB,BA,TC,S0B,KA,SPY,SPB,SPY\r
+       .PIC BA,S0R,S0Y,BA,S0Y,S0R,BA,BA\r
+       .PIC TB,BA,BA,BA,KB,SPR,SPR,SPB\r
+       .PIC SPR,BA,S0B,S0R,BA,S0B,BA,BA\r
+       .PIC BA,TA,TC,BA,BA,S0B,S0Y,BA\r
+       .PIC S0Y,S0Y,BA,BA,BA,BA\r
+;CELL # 2:NE TURN\r
+       .PIC TA,BA,BA,BA,CC,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,CH,BA,BN,BN\r
+       .PIC BA,BA,BN,BA,CF,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,CA,BA,BA,BN\r
+       .PIC BA,TF,BA,BN,BA,CC,RD,RD\r
+       .PIC RD,RD,RD,RD,RD,CE,BA,BA\r
+       .PIC BA,BA,BA,BA,BA,CF,RD,RD\r
+       .PIC RD,RD,RD,RD,RD,RD,C1,C8\r
+       .PIC BA,BA,BN,BN,BA,BA,CC,RD\r
+       .ROAD\r
+       .PIC BA,BA,BN,BN,BN,BA,CF,RD\r
+       .ROAD\r
+       .PIC BA,BA,BA,BA,BA,BA,BA,CJ\r
+       .ROAD\r
+       .PIC BA,TA,TB,TE,BA,BN,BA,BA\r
+       .PIC CJ,RD,RD,RD,RD,RD,RD,RD\r
+       .PIC TE,TB,TD,TC,BN,BN,BN,BA\r
+       .PIC BA,CJ,RD,RD,RD,RD,RD,RD\r
+       .PIC BA,TC,TE,BA,BA,BA,BN,BN\r
+       .PIC BA,BA,C6,C3,RD,RD,RD,RD\r
+       .PIC TD,BA,BA,BA,BA,BA,BN,BA\r
+       .PIC BN,BA,BA,BA,C6,C3,RD,RD\r
+       .PIC BA,BA,KA,SPR,SPB,BA,BA,BA\r
+       .PIC BA,BA,BN,BA,BA,BA,C6,C3\r
+       .PIC BA,BA,KB,SPY,BA,S1B,S1R,BA\r
+       .PIC BA,TD,BA,BA,BN,BA,BA,BA\r
+       .LAND\r
+       .PIC TA,BA,S1B,TF,TA,BN,BN,BN\r
+       .PIC BA,S1Y,S1B,BA,BA,BA,BA,TB\r
+       .PIC BA,BA,BA,TC,TD,BA,BA,BA\r
+       .PIC BA,BA,BA,BA,TC,BA,BA,BA\r
+       .PIC BA,BA,BA,BA,BA,TB,BA,BA\r
+;CELL #3: SOUTH-EAST TURN\r
+       .PIC BA,BA,BA,BA,BA,TE,TB,BA\r
+       .PIC BA,BA,BA,BA,BA,TB,BA,BA\r
+       .PIC BA,TA,BA,BA,BA,TD,BA,BA\r
+       .PIC BA,BA,BA,TA,TE,BA,S3B,BP\r
+       .LAND\r
+       .PIC TC,TF,BA,BA,S3R,BP,BP,BP\r
+       .PIC BA,SPY,KA,BA,TF,BA,BA,BA\r
+       .PIC BA,BA,TB,TD,BP,BA,BA,BA\r
+       .PIC SPR,SPB,KB,BA,BA,BA,BA,S3R\r
+       .PIC BP,BA,BP,BA,BA,BA,CI,CB\r
+       .PIC BA,BA,BA,BA,BA,S3B,BP,BA\r
+       .PIC BP,BA,BA,BA,CI,CB,RD,RD\r
+       .PIC BA,BA,BA,BA,S3B,S3R,BP,BP\r
+       .PIC BA,BA,CI,CB,RD,RD,RD,RD\r
+       .PIC BA,VC,VD,BA,BP,BP,BP,BA\r
+       .PIC BA,C4,RD,RD,RD,RD,RD,RD\r
+       .PIC BA,BA,BA,S3R,BA,BP,BA,BA\r
+       .PIC C4,RD,RD,RD,RD,RD,RD,RD\r
+       .PIC VA,VB,BA,BA,BA,BA,BA,C4\r
+       .ROAD\r
+       .PIC BA,BA,BP,BP,BP,BA,C7,RD\r
+       .ROAD\r
+       .PIC BA,BA,BP,BP,BA,BA,C0,RD\r
+       .ROAD\r
+       .PIC BA,BA,BA,BP,BA,C7,RD,RD\r
+       .PIC RD,RD,RD,RD,RD,RD,CD,CG\r
+       .PIC BA,TB,BA,BP,BA,C0,RD,RD\r
+       .PIC RD,RD,RD,RD,RD,C9,BA,BA\r
+       .PIC BA,BA,BP,BA,C7,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,C2,BA,BA,BP\r
+       .PIC TE,BP,BA,BA,C0,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,C5,BA,BP,BP\r
+;CELL #4: SOUTH-WEST TURN\r
+       .PIC BA,BA,BA,TA,BA,BA,TE,BA\r
+       .LAND\r
+       .PIC BA,BN,BA,BA,TE,TB,BA,TA\r
+       .PIC BA,TF,BA,BA,VA,VB,VA,VB\r
+       .PIC BA,BA,BN,BN,BA,S5B,S5R,BA\r
+       .PIC TD,BA,BA,VC,VD,BA,BA,BA\r
+       .PIC BA,BA,BA,BN,BA,BN,BN,BN\r
+       .PIC BA,S5Y,BA,BA,BA,VA,VB,BA\r
+       .PIC C1,C8,BA,BA,BA,BA,BA,BN\r
+       .LAND\r
+       .PIC RD,RD,C1,C8,BA,BA,BA,BN\r
+       .PIC BA,BN,BA,BA,BA,BA,BA,BA\r
+       .PIC RD,RD,RD,RD,C1,C8,BA,BA\r
+       .PIC BA,BA,BN,S5B,S5R,S5B,BA,TD\r
+       .PIC RD,RD,RD,RD,RD,RD,CE,BA\r
+       .PIC BA,BN,BN,BA,S5B,S5R,TC,BA\r
+       .PIC RD,RD,RD,RD,RD,RD,RD,CE\r
+       .PIC BA,BA,BN,BN,BA,BA,BA,BA\r
+       .ROAD\r
+       .PIC CE,BA,BA,BN,BA,S5R,BA,BA\r
+       .ROAD\r
+       .PIC RD,CH,BA,BA,BA,BA,S5B,BA\r
+       .ROAD\r
+       .PIC RD,CA,BA,BA,BN,BA,BA,BA\r
+       .PIC C6,C3,RD,RD,RD,RD,RD,RD\r
+       .PIC RD,RD,CH,BA,BN,BN,BA,TB\r
+       .PIC BA,BA,CJ,RD,RD,RD,RD,RD\r
+       .PIC RD,RD,CA,BA,BA,BN,BA,BA\r
+       .PIC BN,BA,BA,CC,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,CH,BA,BN,BA,BA\r
+       .PIC BN,BN,BA,CF,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,CA,BA,BA,BA,BA\r
+;CELL #5: NORTH-WEST TURN\r
+       .PIC BP,BP,BA,C7,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,C2,BA,BA,BP,BA\r
+       .PIC BP,BA,BA,C0,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,C5,BA,BA,BP,BA\r
+       .PIC BA,BA,C4,RD,RD,RD,RD,RD\r
+       .PIC RD,RD,C2,BA,BA,BP,BA,BA\r
+       .PIC CI,CB,RD,RD,RD,RD,RD,RD\r
+       .PIC RD,RD,C5,BA,BA,BP,S7R,BA\r
+.ROAD\r
+       .PIC RD,C2,BA,BA,BP,BP,BA,BA\r
+.ROAD\r
+       .PIC RD,C5,BA,BA,BA,BA,BA,BA\r
+.ROAD\r
+       .PIC C9,BA,BA,BA,BP,BA,BA,BA\r
+       .PIC RD,RD,RD,RD,RD,RD,RD,C9\r
+       .PIC BA,BA,BP,BA,S7R,BA,TE,TA\r
+       .PIC RD,RD,RD,RD,RD,RD,C9,BA\r
+       .PIC BA,BP,BP,S7B,BA,BA,BA,TB\r
+       .PIC RD,RD,RD,RD,CD,CG,BA,BA\r
+       .PIC BP,BP,BP,BP,BA,TF,TA,TD\r
+       .PIC RD,RD,CD,CG,BA,BA,BA,BP\r
+       .PIC BA,S7B,S7R,BA,BA,BA,BA,BA\r
+       .PIC CD,CG,BA,BA,BA,BA,BA,BP\r
+       .PIC S7B,S7Y,BA,BA,S7Y,S7B,BA,BA\r
+       .PIC BA,BA,BA,BA,BP,BA,S7R,BA\r
+       .PIC BA,BA,BA,BA,S7R,BA,TE,BA\r
+       .PIC BA,BA,BP,BP,BP,S7R,BA,BA\r
+       .PIC S7Y,TC,BA,BA,TB,BA,BA,BA\r
+       .PIC BP,BA,S7R,BP,BA,BA,BA,BA\r
+       .PIC TA,TD,BA,BA,BA,BA,BA,BA\r
+       .PIC BA,TA,TE,BA,BA,BA,BA,BA\r
+.LAND\r
+;CELL #6: PINCH NORTH-SOUTH\r
+       .PIC BA,BA,BA,BA,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,BA,BA,BA,BA\r
+       .PIC BA,BA,BA,BA,CC,RD,RD,RD\r
+       .PIC RD,RD,RD,C2,BA,BA,BA,BA\r
+       .PIC BA,BA,BA,BA,CF,RD,RD,RD\r
+       .PIC RD,RD,RD,C5,TA,TB,BA,TC\r
+       .PIC BA,BA,TD,S2B,BA,CC,RD,RD\r
+       .PIC RD,RD,C2,BA,TD,BA,TE,BA\r
+       .PIC BA,BA,S2Y,S2R,BA,CF,RD,RD\r
+       .PIC RD,RD,C5,BA,BA,BA,TF,BA\r
+       .PIC BA,TA,S2B,S2Y,BN,BA,RD,RD\r
+       .PIC RD,RD,BA,BP,BA,BA,BA,TA\r
+       .PIC BA,BA,TB,S2R,BN,BA,RD,RD\r
+       .PIC RD,RD,BA,BP,BP,BA,TB,BA\r
+       .PIC KA,SPB,BA,BA,BN,BA,RD,RD\r
+       .PIC RD,RD,BA,BP,BP,BA,TC,TD\r
+       .PIC KB,BA,TB,BP,BP,BA,RD,RD\r
+       .PIC RD,RD,BA,BN,BN,TA,BA,BA\r
+       .PIC BA,BA,TC,BA,BP,BA,RD,RD\r
+       .PIC RD,RD,BA,BN,S6B,BA,TB,BA\r
+       .PIC BA,TD,BA,S2Y,BP,BA,RD,RD\r
+       .PIC RD,RD,BA,BN,BA,S6R,BA,BA\r
+       .PIC BA,BA,TE,S2B,BA,C7,RD,RD\r
+       .PIC RD,RD,CH,BA,BN,S6Y,BA,BA\r
+       .PIC BA,TF,BA,BA,BA,C0,RD,RD\r
+       .PIC RD,RD,CA,BA,BN,BA,VA,VB\r
+       .PIC TA,BA,TB,TC,C7,RD,RD,RD\r
+       .PIC RD,RD,RD,CH,BA,BA,BA,BA\r
+       .PIC BA,TD,BA,BA,C0,RD,RD,RD\r
+       .PIC RD,RD,RD,CA,BA,BA,BA,BA\r
+       .PIC TE,BA,TF,BA,RD,RD,RD,RD\r
+       .PIC RD,RD,RD,RD,BA,BA,BA,BA\r
+;CELL #7: PINCH EAST-WEST\r
+       .PIC BA,BA,TA,BA,BA,TB,BA,TC\r
+       .LAND\r
+       .PIC BA,BA,BA,TD,TE,BA,TF,TA\r
+       .PIC BA,TB,BA,KA,SPY,SPY,BA,BA\r
+       .PIC BA,BA,TF,BA,BA,BA,BA,BA\r
+       .PIC TE,BA,S4R,KB,SPR,BA,BA,BA\r
+       .PIC BA,BA,TA,TB,BA,BA,BN,BN\r
+       .PIC BP,S4B,BA,BP,BP,BA,BA,BA\r
+       .PIC RD,C1,C8,BA,BA,BN,BN,BN\r
+       .PIC BP,BP,BP,BA,BA,CI,CB,RD\r
+       .PIC RD,RD,RD,C1,C8,BA,BA,BA\r
+       .PIC BA,BA,BA,CI,CB,RD,RD,RD\r
+       .REPT 8\r
+       .ROAD\r
+       .ENDR\r
+       .PIC RD,RD,RD,CD,CG,BA,BA,BA\r
+       .PIC BA,BA,BA,C6,C3,RD,RD,RD\r
+       .PIC RD,CD,CG,BA,BA,BP,BP,BP\r
+       .PIC BN,BN,BN,BA,BA,C6,C3,RD\r
+       .PIC BA,BA,BA,S0R,S0B,S0Y,S0R,BA\r
+       .PIC BN,BA,S0Y,S0B,BA,TA,BA,BA\r
+       .PIC BA,BA,BA,TA,S0Y,S0B,TB,BA\r
+       .PIC TC,TD,BA,TE,BA,TF,BA,TE\r
+       .PIC BA,BA,BA,BA,BA,TA,BA,BA\r
+       .PIC BA,BA,TC,BA,TD,BA,TA,BA\r
+       .LAND\r
+       .PIC TC,BA,BA,BA,BA,TB,TF,BA\r
+;CELL #8:START PIECE (EW)\r
+       .REPT 0\r
+       .PIC BA,S4R,S4Y,S4B,S4Y,S4B,S4R,S4R\r
+       .PIC S4B,S4Y,S4R,S4Y,S4B,S4Y,BA,BA\r
+       .PIC BA,BA,S4B,S4Y,S4R,S4R,S4B,S4Y\r
+       .PIC S4Y,S4B,S4R,S4B,S4Y,BA,BA,TD\r
+       .PIC TC,BA,BA,S4R,S4B,S4Y,S4B,S4Y\r
+       .PIC S4R,S4B,S4Y,S4R,BA,BA,BA,BA\r
+       .ENDR\r
+       .PIC BA,GS1,GS2,GS4,GS3,GS2,GS3,GS16\r
+       .PIC GS2,GS2,GS3,GS4,GS3,GS5,BA,BA\r
+       .PIC BA,GS6,GS9,GS8,GS7,GS7,GS9,GS17\r
+       .PIC GS7,GS8,GS8,GS7,GS9,GS10,BA,BA\r
+       .PIC BA,GS11,GS12,GS14,GS13,GS12,GS12,GS18\r
+       .PIC GS12,GS12,GS13,GS14,GS13,GS15,BA,BA\r
+       .PIC BA,PP,PP,PP,PP,PP,PP,PP\r
+       .PIC PP,PP,PP,PP,PP,PP,BA,BA\r
+       .ROAD\r
+       .PIC RD,YS,BS,YS,L1,RD,RD,RD\r
+       .ROAD\r
+       .PIC RD,BS,YS,BS,L2,RD,RD,RD\r
+       .ROAD\r
+       .PIC RD,YS,BS,YS,L3,RD,RD,RD\r
+       .ROAD\r
+       .PIC RD,BS,YS,BS,L4,RD,RD,RD\r
+       .ROAD\r
+       .PIC RD,YS,BS,YS,L5,RD,RD,RD\r
+       .ROAD\r
+       .PIC RD,BS,YS,BS,L6,RD,RD,RD\r
+       .ROAD\r
+       .PIC RD,YS,BS,YS,L7,RD,RD,RD\r
+       .ROAD\r
+       .PIC RD,BS,YS,BS,L8,RD,RD,RD\r
+       .PIC BA,PP,PP,PP,PP,PP,PP,PP\r
+       .PIC PP,PP,PP,PP,PP,PP,BA,BA\r
+       .PIC BA,BA,BA,KA,SPY,SPB,SPR,SPY\r
+       .PIC SPB,BA,S0B,S0R,BA,BA,BA,BA\r
+       .PIC TB,BA,S0Y,KB,SPR,SPB,SPY,BA\r
+       .PIC BA,BA,S0R,S0Y,S0B,BA,BA,BA\r
+       .PIC BA,S0Y,S0B,S0Y,S0R,S0Y,S0B,S0R\r
+       .PIC S0R,S0B,S0Y,S0B,S0Y,S0R,BA,TA\r
+       .PAGE\r
+       .SBTTL MAP DESCRIPTION TABLES\r
+       .REPT 0\r
+THESE TABLES DESCRIBE THE FOUR TRACKS (CALLED MAPS).  THE TOP TWO BITS\r
+(R,G,B,Y) ARE USED FOR SCORING.  THE BOTTOM FOUR BITS SELECT A CELL.\r
+BIT 5 IS USED TO SELECT A DIRECTION FOR THE CELL.  (A PERIOD AFTER THE\r
+CELL NAME SETS THIS DIRECTION BIT.)\r
+       .ENDR\r
+RNS    =00\r
+REW    =01\r
+RNE    =02\r
+RSE    =03\r
+RSW    =04\r
+RNW    =05\r
+RPNS   =06             ;PINCH\r
+RPEW   =07\r
+RST    =08             ;START\r
+RDS    =09             ;DIAG SHORT\r
+RDL    =0A             ;DIAG LONG\r
+RDVNE  =0C             ;DIAG VERT\r
+RDHWS  =06             ;DIAG HORZ\r
+RDVSW  =0C     \r
+RDHEN  =0B\r
+RB     =0C             ;BLANK\r
+RNS.   =10\r
+REW.   =11\r
+RNE.   =12\r
+RSE.   =13\r
+RSW.   =14\r
+RNW.   =15\r
+RPNS.  =16\r
+RPEW.  =17\r
+RST.   =18\r
+RDS.   =19\r
+RDL.   =1A\r
+RDVNE. =1C\r
+RDHWS. =16\r
+RDVSW. =1C\r
+RDHEN. =1B\r
+GNS    =40\r
+GEW    =41\r
+GNE    =42\r
+GSE    =43\r
+GSW    =44\r
+GNW    =45\r
+GPNS   =46\r
+GPEW   =47\r
+GST    =48\r
+GDS    =49\r
+GDL    =4A\r
+GDVNE  =4C\r
+GDHWS  =46\r
+GDVSW  =4C\r
+GDHEN  =4B\r
+GB     =4C\r
+GNS.   =50\r
+GEW.   =51\r
+GNE.   =52\r
+GSE.   =53\r
+GSW.   =54\r
+GNW.   =55\r
+GPNS.  =56\r
+GPEW.  =57\r
+GST.   =58\r
+GDS.   =59\r
+GDL.   =5A\r
+GDVNE. =5C\r
+GDHWS. =56\r
+GDVSW. =5C\r
+GDHEN. =5B\r
+BNS    =80\r
+BEW    =81\r
+BNE    =82\r
+BSE    =83\r
+BSW    =84\r
+BNW    =85\r
+BPNS   =86\r
+BPEW   =87\r
+BST    =88\r
+BDS    =89\r
+BDL    =8A\r
+BDVNE  =8C\r
+BDHWS  =86\r
+BDVSW  =8C\r
+BDHEN  =8B\r
+BB     =8C\r
+BNS.   =90\r
+BEW.   =91\r
+BNE.   =92\r
+BSE.   =93\r
+BSW.   =94\r
+BNW.   =95\r
+BPNS.  =96\r
+BPEW.  =97\r
+BST.   =98\r
+BDS.   =99\r
+BDL.   =9A\r
+BDVNE. =9C\r
+BDHWS. =96\r
+BDVSW. =9C\r
+BDHEN. =9B\r
+YNS    =0C0\r
+YEW    =0C1\r
+YNE    =0C2\r
+YSE    =0C3\r
+YSW    =0C4\r
+YNW    =0C5\r
+YPNS   =0C6\r
+YPEW   =0C7\r
+YST    =0C8\r
+YDS    =0C9\r
+YDL    =0CA\r
+YDVNE  =0CC\r
+YDHWS  =0C6\r
+YDVSW  =0CC\r
+YDHEN  =0CB\r
+YB     =0CC\r
+YNS.   =0D0\r
+YEW.   =0D1\r
+YNE.   =0D2\r
+YSE.   =0D3\r
+YSW.   =0D4\r
+YNW.   =0D5\r
+YPNS.  =0D6\r
+YPEW.  =0D7\r
+YST.   =0D8\r
+YDS.   =0D9\r
+YDL.   =0DA\r
+YDVNE. =0DC\r
+YDHWS. =0D6\r
+YDVSW. =0DC\r
+YDHEN. =0DB\r
+       .MACRO MAP A,B,C,D,E,F,G,H\r
+       .LIST MEB\r
+       .BYTE A,B,C,D,E,F,G,H\r
+       .NLIST MEB\r
+       .ENDM\r
+X      =20                     ;ARROW\r
+;NEW MAPS - 8X8 CELLS\r
+;MAP 1 - EASY\r
+       MAP RB,RB,RB,RB,RB,RB,YB,YB\r
+       MAP RST,REW!X,REW,RSW,RB,RB,YSE,YEW!X\r
+       MAP RB,RB,RB,GNS,GB,YB,YNS.,YB\r
+       MAP YB,GB,GB,GNS!X,GB,YB,YNS.!X,YB\r
+       MAP YB,GB,GB,GNS,GB,YB,YNS.,YB\r
+       MAP YB,YB,BB,GNS,BB,YB,YNS.!X,YB\r
+       MAP BB,BB,BB,BNE,BEW!X,BEW,BNW,BB\r
+       MAP BB,BB,BB,BB,BB,BB,BB,BB\r
+;MAP 2\r
+       MAP RB,RB,RB,YB,YNS,YB,YB,YB\r
+       MAP RST,REW!X,RSW,YB,YNE,YEW,YEW!X,YEW\r
+       MAP RB,RB,RNE,RSW,YB,YB,YB,YB\r
+       MAP RB,RB,RB,RNE,REW,GEW!X,RPEW,GSW\r
+       MAP GB,BB,BB,BB,BB,GB,GB,GNS\r
+       MAP GB,BSE,BEW!X,BPEW,BSW,BB,GB,GNS!X\r
+       MAP BEW,BNW,BB,BB,BNS,BB,GB,GNE\r
+       MAP BB,BB,BB,YB,YNS!X,YB,GB,GB\r
+\r
+;MAP 3 \r
+       MAP RB,RB,RB,GSE,GNW,GB,GB,GB\r
+       MAP RST,REW!X,REW,RNW,YSE,YEW,YEW!X,YEW\r
+       MAP RB,RB,RB,YSE,YNW,GB,GB,GB\r
+       MAP BEW,BEW,BEW!X,BNW,GSE,GEW!X,GEW,GEW\r
+       MAP YB,YSE,YSW,YB,GPNS.,GB,GB,BB\r
+       MAP YEW!X,YNW,YNS,YB,RNS.,RB,BB,BSE\r
+       MAP BB,YB,RNE,REW!X,RNW,RB,BB,BNS.!X\r
+       MAP BB,RB,RB,GB,GSE,GEW!X,BPEW,BNW\r
+;MAP 4\r
+       MAP RB,RB,RB,RB,YB,YNS,YB,YB\r
+       MAP RST,REW!X,REW,RSW,RB,YNE,YEW,YPEW\r
+       MAP RB,RB,RB,GNS,BB,BSE,BSW,BB\r
+       MAP RSE,RSW,RB,GNS,BSE,BNW,YNS!X,BB\r
+       MAP RNS.,GNS!X,GB,GNE,GNW,GB,YNS,YB\r
+       MAP RNW,GNS,GB,GB,GB,BB,YNE,YPEW\r
+       MAP YB,GNE,GEW,BPEW!X,BEW,BSW,YB,YB\r
+       MAP YB,GB,GB,BB,BB,BNS,BB,YB\r
+;MAP 5\r
+       MAP YB,RB,RB,GSE,GNW,GB,YNE,YNW\r
+       MAP RST,RPEW!X,REW,RNW,YB,YB,YSE,YEW\r
+       MAP RB,RB,RB,RB,YB,YSE,YNW,BB\r
+       MAP BSW.,GB,GB,GB,GB,BNE.,BPEW.,BEW.!X\r
+       MAP BNE.,BEW.,GEW.,GPEW.!X,GSW.,BSE,BSW,BB\r
+       MAP RB,RB,RB,RB,GNS.,BNS.,BNS!X,BB\r
+       MAP RSE,REW!X,RPEW,REW,GNW,GNS.!X,YNS,YB\r
+       MAP RNW,RB,RB,GB,GSE,GNW,YNS,YSE\r
+;MAP 6\r
+       MAP RB,RB,BB,BPNS.!X,BB,BNS!X,YSE,YSW\r
+       MAP RST,RSW,BSE,BNW,BB,BNS,YNS.!X,YNE\r
+       MAP RB,RNS!X,GNS.,RB,RB,BNE,BNW,BB\r
+       MAP RB,RNS,GNS.!X,RB,RSE,RSW,RB,GB\r
+       MAP RB,RPNS!X,GNS.,RSE,RNW,GNS!X,GB,GB\r
+       MAP RB,GNE,GNW,YPNS.!X,YB,GNS,GB,GB\r
+       MAP RB,YB,YSE,YNW,YB,GNS,GB,GB\r
+       MAP RB,YB,YNE.,BSW.,BB,GNS,GB,GB\r
+\r
+;MAP 4\r
+       .REPT 0\r
+       MAP YB,YB,YB,YB,YB,YNS!X,YB,YB\r
+       MAP RST,RSW,RB,RB,YB,YNE,YPEW,YEW!X\r
+       MAP REW.!X,RNW.,BSE.,BEW.,GEW.!X,GPEW.,GSW.,GSE.\r
+       MAP YB,YB,BNE,BSW,GB,GB,GNE.,GNW.\r
+       MAP YEW.,YPEW.!X,BEW.,BNW.,RB,RSE.,YEW.!X,YEW.!X\r
+       MAP GB,GB,BB,RSE.,RPEW.!X,RNW.,BB,RB\r
+       MAP GEW.!X,GSW.,GSE.,RNW.,RB,BB,BSE.,BEW.\r
+       MAP GB,GNE.,GNW.,RB,RB,BSE.,BNW.,BB\r
+\r
+       .ENDR\r
+;MAP 7\r
+       MAP RB,RNS.!X,YB,YB,YB,YB,YB,YB\r
+       MAP RST,RNW,RB,BB,BB,YSE,YSW,YSE\r
+       MAP GSE,GSW,BSE,BPEW!X,BPEW,BNW,YNE,YNW\r
+       MAP GNW,GNE,BNW,RB,RSE,RPEW!X,REW,GEW\r
+       MAP BPEW,BSW,RB,RSE,RNW,GSE,BPEW!X,BEW\r
+       MAP GB,BNE,BSW,RNE.,YSW.,GPNS.,GB,GB\r
+       MAP GPEW.!X,RSW.,YPNS,YSE,YNW,GNE.,GPEW.,GEW.\r
+       MAP GB,RPNS.,YNE,YNW,YB,GB,GB,GB\r
+;MAP 8 - HARD\r
+       MAP RB,RB,RSE,GSW,GPNS.!X,BPNS,YB,YB\r
+       MAP RST,RPEW,RNW,GNE,GNW,BNS,YSE,YPEW!X\r
+       MAP BEW.,BEW.!X,BSW.,BSE.,GSW.,BNS!X,YNE.,YPEW.\r
+       MAP GB,GB,BNS.!X,BPNS,GNS.,YNS,YSE,YSW\r
+       MAP GSE,GEW,GNW,BPNS!X,GNS.!X,YNE,YNW,RNS!X\r
+       MAP GNS.!X,RB,YB,BPNS,GNE.,GSW.,YB,RNS\r
+       MAP RPNS.,RSE.,YSW.,YNS,BB,RNE.,RPEW.,RNW.\r
+       MAP RNE.,RNW.,YNE.,YNW.,BSE,BSW,RB,RB\r
+\r
+;MAP 6\r
+       .REPT 0\r
+       MAP RB,RB,RB,RB,RNS.,RNS,YNS,YB\r
+       MAP RST,REW!X,RSW,RB,RNE.,RNW.,YNE,YPEW!X\r
+       MAP RB,RB,RNE,REW,GPEW!X,GSW,GB,YB\r
+       MAP RB,RB,RB,RB,GSE.,GNW.,GB,BB\r
+       MAP BEW.,BPEW.!X,BEW.,BEW.,GNW.,GB,GB,GSE.\r
+       MAP BB,BB,BB,GSE.,GSW.,YB,YSE.,YNW.\r
+       MAP BB,BB,BSE.,GNW.,GNS.,YSE.,YNW.,YB\r
+       MAP BPEW.,BEW.!X,BNW.,RB,RNS.!X,YNS!X,YSE.,YEW.!X\r
+;MAP 7\r
+       MAP RB,RB,RB,RB,BSE.,BSW.,RPNS,RB\r
+       MAP RST,RPEW!X,RSW,YSE.,YNW.,BPNS.!X,RNE,RPEW!X\r
+       MAP RB,RB,RPNS,YNE,YSW,BNE.,BSW.,GB\r
+       MAP GEW.!X,GPEW.,GNW.,YSE.,YNW.,BB,BNE.,GPEW.\r
+       MAP REW.,REW.!X,RPEW.,RNW.,YB,GSE.,GSW.,RSE.\r
+       MAP BSE.,BSW.,GSE.,GPEW.,GPEW.!X,GNW.,RNE.,RNW.\r
+       MAP BNW.,BNE.,BNW.,YSE.,YEW.!X,YEW.,YPEW.,BEW.!X\r
+       MAP BB,BB,BB,YNE,YEW!X,YPEW,YSW,RB\r
+       .ENDR\r
+;ATTRACT MAP\r
+       MAP RST,REW,GEW,GEW,BEW,BEW,YEW,YEW\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0
\ No newline at end of file
diff --git a/A35775.XX b/A35775.XX
new file mode 100644 (file)
index 0000000..3d81e9c
--- /dev/null
+++ b/A35775.XX
@@ -0,0 +1,533 @@
+       .TITLE MOPIC2 - MONTE CARLO PICTURES FOR NEW HARDWARE\r
+       .SBTTL *************************************\r
+       .SBTTL *\r
+       .SBTTL *        NORMAN & CHRIS & JOHN\r
+       .SBTTL *\r
+       .SBTTL *************************************\r
+       .REPT 0\r
+\r
+DATE:          30-AUG-79\r
+\r
+DISK NUMBER:   61,B20\r
+\r
+HARDWARE:      MODIFIED FIRETRUCK\r
+\r
+DESCRIPTION:   CHARACTER STAMPS (16X16 PIXELS) OR MOLECULES USED\r
+               TO MAKE CELLS OR TRACK PIECES.\r
+               FIRST 48 OBJECTS ARE CRASH/SKID OBJECTS.  LAST 16 ARE "CLEAR"\r
+               OBJECTS.\r
+\r
+ASSOCIATED\r
+FILES:         SEE MONACO\r
+\r
+       .ENDR\r
+       .ASECT\r
+       .ENABL USD\r
+       .RADIX 16\r
+       .=1000\r
+;GENERATES A 2K X 8 FILE FOR 2716\r
+;SWITCH COMBINATION 6\r
+\r
+       .ENABL M68\r
+       .NLIST BYT\r
+       .MACRO .PIC,A,B,C,D,E,F,G,H\r
+       .LIST MEB\r
+       .WORD 0'A,0'B,0'C,0'D,0'E,0'F,0'G,0'H\r
+       .NLIST MEB\r
+       .ENDM\r
+       .MACRO .GRA, A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P\r
+       .LIST MEB\r
+       .BYTE ^C0'A,^C0'B,^C0'C,^C0'D,^C0'E,^C0'F,^C0'G,^C0'H\r
+       .BYTE ^C0'I,^C0'J,^C0'K,^C0'L,^C0'M,^C0'N,^C0'O,^C0'P\r
+       .NLIST MEB\r
+       .ENDM\r
+FLAGA  =1                      ;0=INVISIBLE ARROWS, 1=ARROWS VISIBLE\r
+\r
+       .LIST ME\r
+       .MACRO ARW H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W\r
+       .IF NE,FLAGA            ;VISIBLE ARROWS\r
+       .GRA H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W\r
+       .ENDC\r
+       .IF EQ,FLAGA            ;INVISIBLE ARROWS\r
+       .BYTE 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF\r
+       .ENDC\r
+       .ENDM\r
+       .MACRO COMP ..X         ;TAKE COMPLEMENT OF ..X\r
+       .WORD ^C ..X\r
+       .ENDM\r
+       .MACRO IREV ..X         ;REVERSE BITS OF ..X\r
+       .NLIST ME\r
+       A=..X&1/1               ;FIRST ISOLATE EACH BIT IN D0\r
+       B=..X&2/2\r
+       C=..X&4/4\r
+       D=..X&8/8\r
+       E=..X&10/10\r
+       F=..X&20/20\r
+       G=..X&40/40\r
+       H=..X&80/80\r
+       I=..X&100/100\r
+       J=..X&200/200\r
+       K=..X&400/400\r
+       L=..X&800/800\r
+       M=..X&1000/1000\r
+       N=..X&2000/2000\r
+       O=..X&4000/4000\r
+       P=<<..X/4000>&2>/2      ;NEXT RECOMBINE IN REVERSE\r
+ANS1   =<A*8000>!<B*4000>!<C*2000>!<D*1000>!<E*800>!<F*400>!<G*200>!<H*100>\r
+ANS2   =<I*80>!<J*40>!<K*20>!<L*10>!<M*8>!<N*4>!<O*2>!<P>\r
+ANS    =ANS1!ANS2\r
+       .LIST ME\r
+       .ENDM\r
+       .MACRO REV ..X\r
+       IREV ..X\r
+       .WORD ANS\r
+       .ENDM\r
+       .MACRO BOTH ..X         ;TAKE COMPL & REVERSE\r
+       ..Y=^C ..X\r
+       IREV ..Y\r
+       .WORD ANS\r
+       .ENDM\r
+\r
+\r
+       .PIC    0600,2B00,5100,C080,8100,83B8,5124,5314         ;TREE 1 #0\r
+       .PIC    2CB7,0371,0621,0402,0209,0140,01A6,00BC\r
+       .PIC    0334,3528,2CE4,2484,711F,E025,A001,8001         ;TREE 2 #1\r
+       .PIC    8009,A01E,C204,7144,2324,5A38,0E20,03E0\r
+       .PIC    0000,0000,0000,0140,06F0,0C50,0808,0408         ;TREE SMALL #2\r
+       .PIC    0230,0408,0330,01C0,0000,0000,0000,0000\r
+       .PIC    0,0,0,0,0,0,3C3C,3C3C           ;PYLONS #3\r
+       .PIC    3C3C,3C3C,0,0,0,0,0,0\r
+       COMP 0FFFF              ;C7 #4\r
+       COMP 0FFFE\r
+       COMP 0FFFE\r
+       COMP 0FFFC\r
+       COMP 0FFFC\r
+       COMP 0FFF8\r
+       COMP 0FFF8\r
+       COMP 0FFF0\r
+       COMP 0FFF0\r
+       COMP 0FFE0\r
+       COMP 0FFE0\r
+       COMP 0FFC0\r
+       COMP 0FFC0\r
+       COMP 0FF80\r
+       COMP 0FF80\r
+       COMP 0FF00\r
+       COMP 0FFFF              ;C8 #5\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 07FFF\r
+       COMP 1FFF\r
+       COMP 7FF\r
+       COMP 1FF\r
+       COMP 7F\r
+       COMP 1F\r
+       COMP 7\r
+       COMP 1\r
+       COMP 0                  ;C9 #6\r
+       COMP 1\r
+       COMP 3\r
+       COMP 7\r
+       COMP 0F\r
+       COMP 1F\r
+       COMP 3F\r
+       COMP 7F\r
+       COMP 0FF\r
+       COMP 1FF\r
+       COMP 3FF\r
+       COMP 7FF\r
+       COMP 0FFF\r
+       COMP 1FFF\r
+       COMP 3FFF\r
+       COMP 7FFF\r
+;SHAPES REVERSED\r
+       REV 00FF                ;CA #7\r
+       REV 01FF\r
+       REV 01FF\r
+       REV 03FF\r
+       REV 03FF\r
+       REV 07FF\r
+       REV 07FF\r
+       REV 0FFF\r
+       REV 0FFF\r
+       REV 1FFF\r
+       REV 1FFF\r
+       REV 3FFF\r
+       REV 3FFF\r
+       REV 7FFF\r
+       REV 7FFF\r
+       REV 0FFFF\r
+       REV 8000                ;CB #8\r
+       REV 0E000\r
+       REV 0F800\r
+       REV 0FE00\r
+       REV 0FF80\r
+       REV 0FFE0\r
+       REV 0FFF8\r
+       REV 0FFFE\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF               ;CC #9\r
+       REV 0FFFE\r
+       REV 0FFFE\r
+       REV 0FFFC\r
+       REV 0FFFC\r
+       REV 0FFF8\r
+       REV 0FFF8\r
+       REV 0FFF0\r
+       REV 0FFF0\r
+       REV 0FFE0\r
+       REV 0FFE0\r
+       REV 0FFC0\r
+       REV 0FFC0\r
+       REV 0FF80\r
+       REV 0FF80\r
+       REV 0FF00\r
+       REV 0FFFF               ;CD #A\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 0FFFF\r
+       REV 07FFF\r
+       REV 1FFF\r
+       REV 7FF\r
+       REV 1FF\r
+       REV 7F\r
+       REV 1F\r
+       REV 7\r
+       REV 1\r
+       REV 0                   ;CE #B\r
+       REV 1\r
+       REV 3\r
+       REV 7\r
+       REV 0F\r
+       REV 1F\r
+       REV 3F\r
+       REV 7F\r
+       REV 0FF\r
+       REV 1FF\r
+       REV 3FF\r
+       REV 7FF\r
+       REV 0FFF\r
+       REV 1FFF\r
+       REV 3FFF\r
+       REV 7FFF\r
+;SHAPES COMPLEMENTED & REVERSED\r
+       BOTH 00FF               ;CF #C\r
+       BOTH 01FF\r
+       BOTH 01FF\r
+       BOTH 03FF\r
+       BOTH 03FF\r
+       BOTH 07FF\r
+       BOTH 07FF\r
+       BOTH 0FFF\r
+       BOTH 0FFF\r
+       BOTH 1FFF\r
+       BOTH 1FFF\r
+       BOTH 3FFF\r
+       BOTH 3FFF\r
+       BOTH 7FFF\r
+       BOTH 7FFF\r
+       BOTH 0FFFF\r
+       BOTH 8000               ;CG #D\r
+       BOTH 0E000\r
+       BOTH 0F800\r
+       BOTH 0FE00\r
+       BOTH 0FF80\r
+       BOTH 0FFE0\r
+       BOTH 0FFF8\r
+       BOTH 0FFFE\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF              ;CH #E\r
+       BOTH 0FFFE\r
+       BOTH 0FFFE\r
+       BOTH 0FFFC\r
+       BOTH 0FFFC\r
+       BOTH 0FFF8\r
+       BOTH 0FFF8\r
+       BOTH 0FFF0\r
+       BOTH 0FFF0\r
+       BOTH 0FFE0\r
+       BOTH 0FFE0\r
+       BOTH 0FFC0\r
+       BOTH 0FFC0\r
+       BOTH 0FF80\r
+       BOTH 0FF80\r
+       BOTH 0FF00\r
+       BOTH 0FFFF              ;CI #F\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 0FFFF\r
+       BOTH 07FFF\r
+       BOTH 1FFF\r
+       BOTH 7FF\r
+       BOTH 1FF\r
+       BOTH 7F\r
+       BOTH 1F\r
+       BOTH 7\r
+       BOTH 1\r
+       .PIC    0000,0700,0F80,1FC0,3FE0,7FF0,7FF8,7FFC         ;BALE(NEG SLOPE #10)\r
+       .PIC    3FFE,1FFE,0FFE,07FC,03F8,01F0,00E0,0000\r
+       .PIC    0000,00E0,01F0,03F8,07FC,0FFE,1FFE,3FFE         ;BALE(POS SLOPE #11)\r
+       .PIC    7FFC,7FF8,7FF0,3FE0,1FC0,0F80,0700,0000\r
+       .REPT   0\r
+       .PIC    0,0,0,0,0,0,0,0                         ;SPECTATOR 0 (LOOKING NORTH) #12\r
+       .PIC    0,1,41,5D,7F,7F,7F,36\r
+       .PIC    0,0,0,0,0,0,0,0                 ;SPEC. 1 (NE) #13\r
+       .PIC    3C,60,7C,7D,3D,3F,0F,0\r
+       .PIC    0,0,0,1800,3C00,3C00,6200,4F00  ;SPEC 2 (E) #14\r
+       .PIC    5D00,5F80,5D00,4F00,6200,3C00,3C00,1800\r
+       .PIC    0,0FC0,1BC0,3080,7600,4F80,6E80,6D80    ;SPEC 3 (SE)#15\r
+       .PIC    7800,6000,0,0,0,0,0,0\r
+       .PIC    0,1FC0,7070,E738,EFB8,3780,1AC0,0F80    ;SPEC 4 (S)#16\r
+       .PIC    0200,0,0,0,0,0,0,0\r
+       .PIC    0,3F0,3D8,10C,0E6,1F2,176,1B6           ;SPEC 5 (SW)#17\r
+       .PIC    1EE,6,0,0,0,0,0,0\r
+       .PIC    18,3C,3C,46,0F2,0BA,1FA,0BA             ;SPEC 6 (W) #18\r
+       .PIC    0F2,46,3C,3C,18,0,0,0\r
+       .PIC    0,0,0,0,0,0,6,1EE                       ;SPEC 7 (NW) #19\r
+       .PIC    1B6,176,1F2,0E6,10C,3D8,1F0,0\r
+       .PIC    00F0,00F0,01FF,07FF,0FF0,1478,1C3F,1C3F ;BACK HALF OF VW #1A\r
+       .PIC    1C3F,1C3F,1478,0FF0,07FF,01FF,00F0,00F0\r
+       .PIC    0F00,0F00,FF80,FFE0,73F8,73EC,83FC,83FC         ;FRONT OF VW #1B\r
+       .PIC    83FC,83FC,C3EC,F3F8,FFE0,FF80,0F00,0F00\r
+       .ENDR\r
+;GRANDSTAND PICTURES (LOOKING SOUTH)\r
+       .PIC    FFFF,FFFF,C000,C000,C000,C360,C7F0,C7F0 ;1 #12\r
+       .PIC    C7FF,C5D0,C410,C400,C000,C000,C000,FFFF \r
+       .PIC    FFFF,FFFF,0000,0000,0000,0360,07F0,07F0 ;2 #13\r
+       .PIC    FFFF,05D0,0410,0400,0000,0000,0000,FFFF\r
+       .PIC    FFFF,FFFF,0000,0000,0FE0,3838,739C,77DC ;3 #14\r
+       .PIC    F7DF,0D60,07C0,0100,0000,0000,0000,FFFF \r
+       .PIC    FFFF,FFFF,0,0,0,0,0,0                   ;4 #15\r
+       .PIC    FFFF,0,0,0,0,0,0,FFFF\r
+       .PIC    FFFF,FFFF,0003,0003,0003,0D83,1FC3,1FC3 ;5 #16\r
+       .PIC    FFC3,1743,1043,1003,0003,0003,0003,FFFF\r
+       .PIC    FFFF,C000,C000,C000,C3F8,CE0E,DCE7,DDF7 ;6 #17\r
+       .PIC    CDF7,C358,C1F0,C040,C000,C000,C000,FFFF\r
+       .PIC    FFFF,0000,0000,0000,07F0,1C1C,39CE,3BEE ;7 #18\r
+       .PIC    FBEF,06B0,03E0,0080,0000,0000,0000,FFFF\r
+       .PIC    FFFF,0000,0000,0000,0000,0360,07F0,07F0 ;8 #19\r
+       .PIC    FFFF,05D0,0410,0400,0000,0000,0000,FFFF\r
+       .PIC    FFFF,0,0,0,0,0,0,0                      ;9 #1A\r
+       .PIC    FFFF,0,0,0,0,0,0,FFFF\r
+       .PIC    FFFF,0003,0003,0003,0003,0D83,1FC3,1FC3 ;10 #1B\r
+       .PIC    FFC3,1743,1043,1003,0003,0003,0003,FFFF\r
+       .PIC    FFFF,FFFF,C003,C003,C00B,C00B,C00B,CF1B ;COLA STAND #1 (N) #1C\r
+       .PIC    D09B,D09B,C93B,C03B,CF33,D0B3,D0B3,CF23\r
+       .PIC    C033,DFB3,D033,D03B,C03B,DF1B,C99B,C99B ;COLA #2 (S) #1D\r
+       .PIC    DF0B,C00B,C00B,C003,C003,C003,FFFF,FFFF\r
+       .REPT   2\r
+       .PIC    0,0,0,0,0,0,0,0                 ;BLANK SQUARE #1E\r
+       .ENDR\r
+       BOTH 0                  ;CJ #1F\r
+       BOTH 1\r
+       BOTH 3\r
+       BOTH 7\r
+       BOTH 0F\r
+       BOTH 1F\r
+       BOTH 3F\r
+       BOTH 7F\r
+       BOTH 0FF\r
+       BOTH 1FF\r
+       BOTH 3FF\r
+       BOTH 7FF\r
+       BOTH 0FFF\r
+       BOTH 1FFF\r
+       BOTH 3FFF\r
+       BOTH 7FFF\r
+;BASIC CURVE SHAPES\r
+       .WORD 00FF              ;C0 #20\r
+       .WORD 01FF\r
+       .WORD 01FF\r
+       .WORD 03FF\r
+       .WORD 03FF\r
+       .WORD 07FF\r
+       .WORD 07FF\r
+       .WORD 0FFF\r
+       .WORD 0FFF\r
+       .WORD 1FFF\r
+       .WORD 1FFF\r
+       .WORD 3FFF\r
+       .WORD 3FFF\r
+       .WORD 7FFF\r
+       .WORD 7FFF\r
+       .WORD 0FFFF\r
+       .WORD 8000              ;C1 #21\r
+       .WORD 0E000\r
+       .WORD 0F800\r
+       .WORD 0FE00\r
+       .WORD 0FF80\r
+       .WORD 0FFE0\r
+       .WORD 0FFF8\r
+       .WORD 0FFFE\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF             ;C2 #22\r
+       .WORD 0FFFE\r
+       .WORD 0FFFE\r
+       .WORD 0FFFC\r
+       .WORD 0FFFC\r
+       .WORD 0FFF8\r
+       .WORD 0FFF8\r
+       .WORD 0FFF0\r
+       .WORD 0FFF0\r
+       .WORD 0FFE0\r
+       .WORD 0FFE0\r
+       .WORD 0FFC0\r
+       .WORD 0FFC0\r
+       .WORD 0FF80\r
+       .WORD 0FF80\r
+       .WORD 0FF00\r
+       .WORD 0FFFF             ;C3 #23\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 0FFFF\r
+       .WORD 07FFF\r
+       .WORD 1FFF\r
+       .WORD 7FF\r
+       .WORD 1FF\r
+       .WORD 7F\r
+       .WORD 1F\r
+       .WORD 7\r
+       .WORD 1\r
+       .WORD 0                 ;C4 #24\r
+       .WORD 1\r
+       .WORD 3\r
+       .WORD 7\r
+       .WORD 0F\r
+       .WORD 1F\r
+       .WORD 3F\r
+       .WORD 7F\r
+       .WORD 0FF\r
+       .WORD 1FF\r
+       .WORD 3FF\r
+       .WORD 7FF\r
+       .WORD 0FFF\r
+       .WORD 1FFF\r
+       .WORD 3FFF\r
+       .WORD 7FFF\r
+;BASIC SHAPES COMPLEMENTED\r
+       COMP 00FF               ;C5 #25\r
+       COMP 01FF\r
+       COMP 01FF\r
+       COMP 03FF\r
+       COMP 03FF\r
+       COMP 07FF\r
+       COMP 07FF\r
+       COMP 0FFF\r
+       COMP 0FFF\r
+       COMP 1FFF\r
+       COMP 1FFF\r
+       COMP 3FFF\r
+       COMP 3FFF\r
+       COMP 7FFF\r
+       COMP 7FFF\r
+       COMP 0FFFF\r
+       COMP 8000               ;C6 #26\r
+       COMP 0E000\r
+       COMP 0F800\r
+       COMP 0FE00\r
+       COMP 0FF80\r
+       COMP 0FFE0\r
+       COMP 0FFF8\r
+       COMP 0FFFE\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+       COMP 0FFFF\r
+;GRANDSTAND CONTINUED\r
+       .PIC    FFFF,C000,C000,C000,C000,C000,C000,C000 ;11 #27\r
+       .PIC    CFFF,C000,C000,C000,C000,C000,FFFF,FFFF\r
+       .PIC    FFFF,0000,0000,0000,0360,07F0,07F0,07F0 ;12 #28\r
+       .PIC    FDDF,0410,0400,0000,0000,0000,FFFF,FFFF\r
+       .PIC    FFFF,0000,0000,0FE0,3838,739C,77DC,37D8 ;13 #29\r
+       .PIC    FD7F,07C0,0100,0000,0000,0000,FFFF,FFFF\r
+       .PIC    FFFF,0,0,0,0,0,0,0                      ;14 #2A\r
+       .PIC    FFFF,0,0,0,0,0,FFFF,FFFF\r
+       .PIC    FFFF,0003,0003,0003,1FC3,7073,E73B,EFBB ;15 #2B\r
+       .PIC    EFB3,1AC3,0F83,0203,0003,0003,FFFF,FFFF\r
+       .PIC    FFFF,FFFF,0,0,0,0,0,0                   ;16 #2C\r
+       .PIC    0,0,0,0,0,0,0,FFFF\r
+       .PIC    FFFF,0,0,0,0,0,0,0                      ;17 #2D\r
+       .PIC    0,0,0,0,0,0,0,FFFF\r
+       .PIC    FFFF,0,0,0,0,0,0,0                      ;18 #2E\r
+       .PIC    0,0,0,0,0,0,FFFF,FFFF\r
+       .PIC    0,0,0,0,0,0FC0,01E0,03E0                ;SPECTATOR (W) #2F\r
+       .PIC    03C0,03E0,01E0,07C0,0,0,0,0             ;AT COLA STAND\r
+       .REPT 40\r
+       .BYTE 0FF\r
+       .ENDR\r
+;"ATARI INC @@ 1979"\r
+       .GRA    00,00,0F,80,0F,C0,02,60,02,20,02,60,0F,C0,0F,80         ;32\r
+       .GRA    00,00,00,20,00,20,0F,E0,0F,E0,00,20,00,20,00,00\r
+       .GRA    0F,80,0F,C0,02,60,02,20,02,60,0F,C0,0F,80,00,00         ;33\r
+       .GRA    00,00,0F,E0,0F,E0,02,20,06,20,0F,20,0D,20,09,C0\r
+       .GRA    00,00,08,20,08,20,0F,E0,0F,E0,08,20,08,20,00,00         ;34\r
+       .REPT   16.\r
+       .BYTE   0FF\r
+       .ENDR\r
+       .GRA    08,20,08,20,0F,E0,0F,E0,08,20,08,20,00,00,00,00         ;35\r
+       .GRA    0F,E0,0F,E0,01,C0,03,80,07,00,0F,E0,0F,E0,00,00\r
+       .GRA    00,00,03,80,07,C0,0C,60,08,20,08,20,0C,60,04,40         ;36\r
+       .GRA    00,00,00,00,00,00,00,00,0C,00,0C,00,00,00,00,00\r
+       .GRA    03,80,04,40,0B,A0,0A,A0,0A,A0,04,40,03,80,00,00         ;37\r
+       .GRA    00,00,03,80,04,40,0F,A0,0A,A0,0B,A0,04,40,03,80\r
+       .GRA    00,00,08,00,08,40,0F,E0,0F,E0,08,00,08,00,00,00         ;38\r
+       .GRA    00,C0,09,E0,09,20,09,20,0D,20,07,E0,03,C0,00,00 \r
+       .GRA    00,60,00,60,0E,20,0F,20,01,A0,00,E0,00,60,00,00         ;39\r
+       .GRA    00,C0,09,E0,09,20,09,20,0D,20,07,E0,03,C0,00,00\r
+       .PIC    1,1,1,1,1,1,1,101                                       ;CONVERENCE CELL #3A\r
+       .PIC    1,1,1,1,1,1,1,0FFFF\r
+       .REPT   2\r
+       .PIC    FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF ;SOLID SQUARE #3B\r
+       .ENDR\r
+       ARW     00,80,01,C0,01,C0,03,E0,03,E0,07,F0,07,F0,0F,F8         ;#3C N ARROW\r
+       ARW     01,C0,01,C0,01,C0,01,C0,01,C0,01,C0,01,C0,01,C0\r
+       ARW     00,00,00,00,00,00,01,00,07,00,1F,00,7F,FF,FF,FF ;#3D W ARROW\r
+       ARW     7F,FF,1F,00,07,00,01,00,00,00,00,00,00,00,00,00\r
+       ARW     01,C0,01,C0,01,C0,01,C0,01,C0,01,C0,01,C0,01,C0 ;#3E S ARROW\r
+       ARW     0F,F8,07,F0,07,F0,03,E0,03,E0,01,C0,01,C0,00,80 \r
+       ARW     00,00,00,00,00,00,00,00,00,80,00,E0,00,F8,FF,FE         ;#3F E ARROW\r
+       ARW     FF,FF,FF,FE,00,F8,00,E0,00,80,00,00,00,00,00,00\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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/A35778.XX b/A35778.XX
new file mode 100644 (file)
index 0000000..966b612
Binary files /dev/null and b/A35778.XX differ
diff --git a/A35779.ROM b/A35779.ROM
new file mode 100644 (file)
index 0000000..08956e6
Binary files /dev/null and b/A35779.ROM differ
diff --git a/A35780.ROM b/A35780.ROM
new file mode 100644 (file)
index 0000000..55c0aec
Binary files /dev/null and b/A35780.ROM differ
diff --git a/A35785.XX b/A35785.XX
new file mode 100644 (file)
index 0000000..94fcd37
Binary files /dev/null and b/A35785.XX differ
diff --git a/COIN68.XX b/COIN68.XX
new file mode 100644 (file)
index 0000000..851bef6
--- /dev/null
+++ b/COIN68.XX
@@ -0,0 +1,359 @@
+        .TITLE COIN68- COIN & CREDIT ACCRUER\r
+        .SBTTL *********************************\r
+        .SBTTL * PROGRAMER: ALBAUGH            *\r
+        .SBTTL *                               *\r
+        .SBTTL * CHECKER:                      *\r
+        .SBTTL *                               *\r
+        .SBTTL *********************************\r
+        .SBTTL EXPLANATION\r
+.RAD   =10                     ;SAVE CALLERS RADIX\r
+        .RADIX 16\r
+       .ENABL LC\r
+       .NLIST MC\r
+        .LIST MEB\r
+       .NLIST CND\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 \r
+       .IIF NDF,MECHS,MECHS=2          ;2 MECHS STANDARD\r
+       .IIF NDF,MULTS,MULTS=0          ;NO MULTIPLIERS STANDARD\r
+        .IIF NDF,MODES,MODES=4          ;FOUR COIN MODES STANDARD\r
+       .IIF EQ,MODES!MULTS,CMZP=0      ;COIN-MODE IRRELEVANT IF MODES=0,MULTS=0\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,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
+       .IIF NDF,EMCTRS,EMCTRS=3        ;3 EMCTRS STANDARD\r
+        .IF NE,CMZP\r
+        .MACRO GCM\r
+        LDAA   D,$CMODE            ;GET COIN MODE FROM ZERO-PAGE\r
+        .IIF NE,MULTS,  ANDA I,MODES-1&0FF       ;STRIP MULTS\r
+        .ENDM\r
+        .ENDC                          ;CMZP CONDITIONAL\r
+        .NLIST \r
+        .IF NE,MODES&<MODES-4>\r
+        .ERROR                  ;2 FLAVORS-0 OR 4 MODES\r
+        .ENDC\r
+       .IF NE,EMCTRS-3&EMCTRS\r
+       .ERROR          ;3 EMCTRS OR NONE\r
+       .ENDC\r
+        .IIF GT,PRST-31.,PRST=31.\r
+        .IIF GT,POST-63.,POST=63.\r
+;EXTERNAL REFERENCES\r
+       .IF     NE,MODES!MULTS  ;IF WE HAVE COIN-MODES OR MECH-MULTS\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,$INTCT     ;INTERNAL LOCATIONS\r
+       .IF NE,EMCTRS\r
+       .GLOBL $CCTIM                   ;COIN-COUNTER-TIMERS (FOR E.M.COUNTERS)\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
+        .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
+   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=1)\r
+        $$CRDT: .BLKB 1\r
+        $CMODE: .BLKB 1         \r
+       $CCTIM: .BLKB EMCTRS    ;TIMERS\r
+        $LMTIM: .BLKB 1\r
+        $CNCT:  .BLKB 1\r
+        $PSTSL: .BLKB MECHS\r
+        $CNSTT  .BLKB MECHS\r
+        .ENDR\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 850 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 eight interrupts) for the remaining counts  (26-0, about\r
+850  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 850 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. $CCTIM, if used, should also be cleared AFTER $PSTSL.\r
+        .ENDR\r
+\f      .SBTTL  CODE\r
+COIN68:        LDX     I,MECHS-1*OFFSET\r
+       .IF     EQ,COIN67\r
+       .IF     EQ,MECHS-3\r
+       LDAA    E,2*OFFSET+$COINA       ;GET FIRST SWITCH WD\r
+       .IFF                            ;EQ, MECHS-3\r
+       LDAA    E,$COINA+OFFSET         ;GET "INDEXED" SWITCH WORD\r
+       .ENDC                   ;EQ,MECHS-3\r
+       .IFF                    ;EQ,COIN67\r
+       LDAA    E,$COINA        ;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
+       BEQ     2$              ;DON'T COUNT PAST 0 JUST CLEAR COIN-OFF CTR.\r
+       CMPB    I,26.           ;FIRST 5 SAMPLES\r
+       BHI     1$              ;YES, RUN FAST\r
+       .IF NE,COIN67\r
+       PSHA                    ;SAVE SWITCHES\r
+       .IFTF\r
+       LDAA    $INTCT\r
+       ANDA    I,3             ;ONLY ONCE PER FRAME\r
+       .IFT\r
+       PULA                    ;RESTORE A (NO CHANGE T CC'S)\r
+       .ENDC                   ;NE,COIN67\r
+       BNE     2$\r
+1$:    DECB\r
+2$:    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
+       BNE     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     2$\r
+10$:   LDAB    X,$CNSTT        ;GET BACK STATUS\r
+       ADDB    I,32.           ;BUMP COIN-GONE UP-CTR\r
+       BCC     2$              ;BRANCH ON NO WRAP\r
+       BEQ     9$              ;JUST RESET IF "STRING-TIMER" SET\r
+;ABOVE LINE PREVENTS SPURIOUS COIN AFTER POWER ON CLEAR, ALSO\r
+;WILL IGNORE ANY COIN PRESENT FOR 32 COUNTS (8 FRAMES)\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$:   BCC     16$             ;SKIP IF NO NEW COIN\r
+       .IF     EQ,EMCTRS-MECHS\r
+       INC     X,$CCTIM        ;QUEUE A COUNTER PULSE\r
+       .ENDC\r
+       .IF     EQ,MULTS\r
+       INC     $CNCT\r
+       .IFF                    ;IF WE DO HAVE MULTS\r
+;NOW FALL THOUGHT TO MECH-MULTIPLIERS\r
+       .PAGE\r
+       .SBTTL MECH-MULTIPLIERS\r
+       CLRB\r
+       CPX     I,0             ;LEFT MECH?\r
+       BEQ     14$             ;YES, JUST ADD ONE\r
+       LDAB    D,$CMODE\r
+       CPX     I,OFFSET        ;CENTER MECH?\r
+       BEQ     13$             ;YES, ONE OR TWO\r
+       ANDB    I,0C            ;ELSE ISOLATE RIGHT MULTS\r
+       BEQ     14$             ;0->1\r
+       LSRB\r
+       LSRB\r
+       ADDB    I,3             ;1,2,3 -> 4,5,6\r
+       BRA     15$\r
+13$:   ANDB    I,10            ;CHECK CENTER OPTION\r
+       BEQ     14$             ;IF 0, ADD 1\r
+       LDAB    I,1             ;ELSE ADD 1+1\r
+14$:   INCB\r
+15$:   ADDB    D,$CNCT\r
+       STAB    D,$CNCT         ;UPDATE COIN COUNT\r
+       .IFTF\r
+16$:\r
+       .IIF    EQ,COIN67,       LDAA E,$COINA\r
+       .REPT   OFFSET\r
+       DEX\r
+       .ENDR\r
+       .IFT\r
+       BEQ     DETECT\r
+       .IFF                    ;EQ,MULTS\r
+       BEQ     17$\r
+       .ENDC                   ;EQ,MULTS\r
+       .IF     EQ,MECHS-3\r
+       .IIF    EQ,COIN67, LDAA E,$COINA+OFFSET\r
+       CPX     I,OFFSET\r
+       BNE     18$\r
+17$:   JMP     DETECT\r
+18$:\r
+       .ENDC           ;EQ,MECHS-3\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$:    .IF     NE,CNTINT\r
+       INC     $INTCT          ;COUNT INTERUPTS\r
+       .ENDC                   ;NE,CNTINT\r
+       .ENDC                   ;MODES=4\r
+       .IF     NE,EMCTRS\r
+       .SBTTL  ELECTR-MECH COUNTERS\r
+       .MACRO  LDAAX,FRED\r
+       .DSABL  M68\r
+       .BYTE   0A6\r
+       .WORD   FRED\r
+       .=.-1\r
+       .ENABL  M68\r
+       .ENDM\r
+       .MACRO  STAAX,FRED\r
+       .DSABL  M68\r
+       .BYTE   0A7\r
+       .WORD   FRED\r
+       .=.-1\r
+       .ENABL  M68\r
+       .ENDM\r
+COUNT: LDX     I,OFFSET*MECHS\r
+       CLRB                    ;B=0, NO TIMERS RUNNING\r
+1$:    LDAAX   $CCTIM-1        ;GET A COUNTER-TIMER\r
+       BITA    I,0E0           ;IS IT RUNNING?\r
+       BEQ     2$              ;NO, SKIP\r
+       LDAB    $INTCT          ;ELSE SEE IF WE SHOULD TICK\r
+       ANDB    I,3             ;ONLY EVERY 16 MS\r
+       BNE     2$\r
+       SUBA    I,20            ;BUMP TIMER\r
+       STAAX   $CCTIM-1        \r
+       INCB                    ;SET "BUSY" FLAG\r
+2$:    DEX\r
+       BNE     1$              ;LOOP FOR OTHERS\r
+       TSTB                    ;ARE ANY RUNNING\r
+       BNE     5$              ;YES, DONT START MORE\r
+       LDX     I,OFFSET*MECHS\r
+3$:    LDAAX   $CCTIM-1        ;ANY COINS FOR THIS ONE?\r
+       BEQ     4$              ;NO SKIP\r
+       SUBA    I,21            ;ELSE DEC COINS (5 LSB), START TIMER (3 MSB)\r
+       STAAX   $CCTIM-1\r
+       BRA     5$\r
+4$:    DEX\r
+       BNE     3$\r
+5$:\r
+       .ENDC                   ;NE, EMCTRS\r
+       RTS\r
+       .RADIX .RAD\r
+       .END\r
+       \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
\ No newline at end of file
diff --git a/MONTE.DOC b/MONTE.DOC
new file mode 100644 (file)
index 0000000..acd9e82
Binary files /dev/null and b/MONTE.DOC differ
diff --git a/MONTE.MAP b/MONTE.MAP
new file mode 100644 (file)
index 0000000..6c5d19f
Binary files /dev/null and b/MONTE.MAP differ