
               00010 *ALPHABET MAZE - COPYRIGHT 1984 - BY JEFFREY STANTON
               00015    OR $3800
               00017    TF "D:MAZE.OBJ"
               00020 *ZERO PAGE EQUATES

OOFO:          00025 SHPL    EQ $FO
OOFI:          00030 SHPH    EQ $Fl
OOF2:          00035 SHPML    EQ $F2
OOF3:          00040 SHPMH    EQ $F3
0OF4:          00045 SHPMOL    EQ $F4
O0F5:          00050 SHPMOH    EQ $F5
OOF6:          00055 PMADR    EQ $F6
OOF8:          00060 MAPL    EQ $F8
OOF9:          00065 MAPH    EQ $F9

               00070 *OTHER EQUATES

8700:          00075 SCREEN    EQ $8700    ;ADR OF SCREEN
9400:          00080 NDLIST    EQ $9400    ;ADR OF DISPLAY LIST
9000:          00085 CHRSET    EQ $9000    ;ADR OF CHARACTER SET
0400:          00090 SETSIZ    EQ 1024
E45C:          00095 SETVBK    EQ $E45C
E462:          00100 XITVBK    EQ $E462
0278:          00105 STICK    EQ $278
02F4:          00107 CHBAS    EQ $2F4    ;CHARACTER SET BASE
02C8:          00108 COLOR4    EQ $2C8

               00110 *PLAYER MISSILE EQUATES

D407:          00115 PMBASE    EQ $D407
8800:          00120 PDATA    EQ $8800    ;ADR OF P/M AREA
D01D:          00125 GRACTL    EQ $DOlD
022F:          00130 DKACTL    EQ $22F
DOIE:          00135 HITCLR    EQ $DOIE
D008:          00140 SIZEPO    EQ $DOO8    ;PLAYER SIZES
D009:          00145 SIZEPI    EQ $D009
DOOA:          00150 SIZEP2    EQ $DOOA
DOOB:          00155 SIZEP3    EQ $DOOB
02CO:          00160 COLPMO    EQ $2CO    ;PLAYER COLORS
02C1:          00165 COLPM1    EQ $2C1
02C2:          00170 COLPM2    EQ $2C2
02C3:          00175 COLPM3    EQ $2C3
DOOO:          00180 HPOSPO    EQ $DOOO    ;HORIZ PLAYER POSITIONS
DOOI:          00185 HPOSPI    EQ $DOOl
D002:          00190 HPOSP2    EQ $D002
D003:          00192 RPOSP3    EQ $DO03
DOOC:          00193 POPL    EQ $DOOC    ;PLAYER TO PLAYER COLLISIONS
D20A:          00195 RANDOM    EQ $D20A
DO1F:          00205 CONSOL    EQ $DOIF
               00210
3800: 05 OC OC
3803: OC OC OC
3806: OC OC 06

3809: OF       00215 DSCREEN HS 050COCOCOCOCOCOC06OF
380A: OF 05 OC
38OD: OC OC OC
3810: OC OC OC

3813: 06       00220    HS OF050COCOCOCOCOCOC06
3814: 03 05 OC
3817: OC 04 OC
381A: OC OC 00
381D: OC       00225    HS 03050COC040COCOC000C
381E: OC 00 OC
3821: OC OC 04
3824: OC OC 06
3827: 03       00230    HS OCOOOCOCOC040COC0603
3828: 03 03 OF
382B: OF 03 05
382E: OC OC 02
3831: OF       00235    HS 03030FOF03050COC020F
3832: OF 01 OC
3835: OC 06 03
3838: OF OF 03

383B: 03       00240    HS OF010COC06030FOF0303

383C: 01 OA OF
383F: OF 09 02
3842: OF OF 01

3845: OC       00245    HS OIOAOFOF09020FOF010C
3846: OC 02 OF
3849: OF 01 OA
384C: OF OF 09
384F: 02       00250    HS OC020FOF010AOFOF0902
3850: 01 OC OC
3853: OC OC 02
3856: OF 05 OA

3859: OF       00255    HS 010COCOCOC020FO50AOF
385A: OF 09 06
385D: OF 01 OC
3860: OC OC OC

3863: 02       00260    HS OF0906OF010COCOCOC02

3864: 03 OF OF
3867: OF OF 01
386A: OC 02 OF

386D: OF       00265    HS 030FOFOFOFOIOC020FOF
386E: OF OF 01
3871: OC 02 OF
3874: OF OF OF
3877: 03       00270    HS OFOF010CO20FOFOFOF03
3878: 03 05 OC
387B: OC OC 02
387E: OF 09 06
3881: OF       00275    HS 03050COCOC02OF0906OF
3882: OF 05 OA
3885: OF 01 OC
3888: OC OC 06
388B: 03       00280    HS OF050AOFOIOCOCOC0603
388C: 03 01 OC
388F: OC 06 03
3892: OF OF 01

3895: 04       00285    HS 03010COC06030FOFOI04
3896: 04 02 OF
3899: OF 03 05
389C: OC OC 02
389F: 03       00290    HS 04020FOF03050COC0203
38AO: 03 03 OF
38A3: OF 03 09
38A6: OC OC 02

38A9: 03       00295    HS 03030FOF03090COC0203
38AA: 03 01 OC
38AD: OC OA 03
38BO: OF OF 03
38B3: 03       00300    HS 03010COCOA030FOF0303
38B4: 03 09 OC
38B7: 06 09 OC
38BA: OC OC OA
38BD: 03       00305    HS 03090CO6090COCOCOA03
38BE: 03 09 OC
38Cl: OC OC OA
38C4: 05 OC OA

38C7: 03       00310    HS 03090COCOCOA050COA03
38C8: 09 OC OC
38CB: 08 OC OC
38CE: OC OC OC
38Dl: OA       00315    HS 090COC080COCOCOCOCOA
38D2: 09 OC OC
38D5: OC OC OC
38D8: 08 OC OC

38DB: OA       00320    HS 090COCOCOCOC080COCOA
38DC: 00 00 00
38DF: 00 00 00
38E2: 00 00 00
38E5: 00       00325    HS 00000000000000000000
38E6: 00 00 00
38E9: 00 00 00
38EC: 00 00 00

38EF: 00       00330    Hs 00000000000000000000

38FO:          00335    BS $10
3900: 05 OC OC
3903: OC 06 OF
3906: 05 OC OC
3909: OC       00340 DSCREEN2    HS 050COCOC06OF050COCOC
390A: OC OC OC
390D: 06 OF 05
3910: OC OC OC
3913: 06       00345    HS OCOCOC06OF050COCOC06
3914: 01 04 04
3917: 04 08 OC
391A: 02 05 OC

391D: OC       00350    HS 01040404080CO2050COC
391E: OC OC 06
392l: 01 OC 08
3924: 04 04 04

3927: 02       00355    HS OCOC06010CO804040402
3928: 03 03 03
392B: 03 05 04
392E: 08 00 OC
3931: 04       00360    HS 03030303050408OOOCO4
3932: 04 OC 00
3935: 08 04 06
3938: 03 03 03
393B: 03       00365    HS 040CO008040603030303
393C: 03 03 03
393F: 03 01 OA
3942: OF 03 OF
3945: 09       00370    HS 03030303010AOF03OF09
3946: OA OF 03
3949: OF 09 02
394C: 03 03 03
394F: 03       00375    HS OAOF030FO90203030303
3950: 01 OA 03
3953: 03 03 OF
3956: 05 02 OF
3959: OF       00380    HS 01OA0303030FO5020FOF
395A: OF OF 01
395D: 06 OF 03
3960: 03 03 09
3963: 02       00385    AS OFOF0106OF0303030902
3964: 01 OC 02
3967: 09 08 OC
396A: 08 00 OC

396D: OC       00390    HS 010C0209080CO8000COC

396E: OC OC 00
3971: 08 OC 08
3974: OA 01 OC
3977: 02       00395    HS OCOC00080CO80AO10CO2
3978: 03 OF 01
397B: OC OC OC
397E: OC 02 OF

3981: OF       00400    HS 030F010COCOCOC020FOF
3982: OF OF 01
3985: OC OC OC
3988: OC OA OF

398B: 03       00405    HS OFOFOIOCOCOCOCOAOF03
398C: 01 04 08
398F: 04 OC OC
3992: OC 02 OF

3995: 05       00410    HS 010408040COCOC02OF05

3996: 06 OF 01
3999: OC OC OC
399C: 04 OC 04
399F: 02       00415    HS 060F010COCOC040CO402
39AO: 01 OA OF
39A3: 03 05 OC
39A6: OC 08 OC
39A9: 02       00420    HS OIOAOF03050COC08OC02
39AA: 01 OC 08
39AD: OC OC 06
39BO: 03 OF 09

39B3: 02       00425    HS 010CO80COC0603OF0902
39B4: 03 OF 05
39B7: 02 03 05
39BA: OC OC OC
39BD: OA       00430    HS 030F050203050COCOCOA
39BE: 09 OC OC
39Cl: OC 06 03
39C4: 01 06 OF
39C7: 03       00435    HS 090COCOC06030106OF03
39C8: 09 OC 08
39CB: 08 08 08
39CE: OC OC OC
39Dl: OC       00440    HS 090CO80808080COCOCOC
39D2: OC OC OC
39D5: OC 08 08
39D8: 08 08 OC

39DB: OA       00445    HS OCOCOCOC080808080COA
39DC: 00 00 00
39DF: 00 00 00
39E2: 00 00 00
39E5: 00       00450    HS 00000000000000000000
39E6: 00 00 00
39E9: 00 00 00
39EC: 00 00 00
39EF: 00       00455    HS 00000000000000000000
39FO:          00460    BS $10
3AOO: 70 70 70
3AO3: 47 00 87

3AO6: 07 07    00465 DUST    HS 7070704700870707
3AO8: 07 07 07
3AOB: 07 07 07
3AOE;    07 07 00470    HS 0707070707070707
3AIO: 07 41 00

3A13: 94       00475    HS 07410094

               00480 *MAP CHARACTER DATA

3A14: 00 00 00
3A17: 00 00 00
3AlA: 00 00    00485 DCHAR    Hs OWOOOO(OOOOOOOO
3AIC: 80 80 80
3AlF: 80 80 80

3A22: 80 80    00490    HS 8080808080808080

3A24: 01 01 01
3A27: 01 01 01
3A2A: 01 01    00495    HS 0101010101010101
3A2C: 81 81 81
3A2F: 81 81 81

3A32: 81 81    00500    HS 8181818181818181
3A34: FF 00 00
3A37: 00 00 00

3A3A: 00 00    00505    HS FFOOOOOOOOOOOOOO
3A3C: FF 80 80

3A3F: 80 80 80
3A42: 80 80    00510    HS FF80808080808080
3A44: FF 01 01
3A47: 01 01 01
3A4A: 01 01    00515    HS FF01010101010101
3A4C: FF 81 81
3A4F: 81 81 81

3A52: 81 81    00520    HS FF81818181818181
3A54: 00 00 00
3A57: 00 00 00
3A5A: 00 FF    00525    HS OOOOOOOOOOOOOOFF
3A5C: 80 80 80
3A5F: 80 80 80
3A62: 80 FF    00530    XS 8080808080808OFF
3A64: 01 01 01
3A67: 01 01 01
3A6A: 01 FF    00535    HS 0101010101010IFF
3A6C: 81 81 81
3A6F: 81 81 81
3A72: 81 FF    00540    HS 8181818181818IFF

3A74: FF 00 00
3A77: 00 00 00
3A7A: 00 FF    00545    HS FFOOOOOOOOOOOOFF
3A7C: FF 80 80
3A7F: 80 80 80
3A82: 80 FF    00550    HS FF80808080808OFF
3A84: FF 01 01
3A87: 01 01 01

3A8A: 01 FF    00555    KS FF010101010IOlFF
3A8C: FF FF FF
3A8F: FF FF FF
3A92: FF FF    00560    HS FFFFFFFFFFFFFFFF

3A94: 20 20 20
3A97: 41 4C 50
3A9A: 48 41 42
3A9D: 45       00565 TITLE    HS 202020414C5048414245

3A9E: 54 20 4D
3AAl: 41 5A 45
3AA4: 20 20 20

3AA7: 20       00566    HS 54204D415A4520202020
3AA8: 20 20 20
3AAB: 20 20 20
3AAE: 20 20 20

3ABl: 20       00570    HS 20202020202020202020
3AB2: 20 20 20
3AB5: 20 20 20

3AB8: 20 20 20
3ABB: 20       00571    HS 20202020202020202020
3ABC: 20 42 59
3ABF: 20 4A 45
3AC2: 46 46 52
3AC5: 45       00575    HS 204259204A4546465245
3AC6: 59 20 53
3AC9: 54 41 4E
3ACC: 54 4F 4E

3ACF: 20       00576    HS 59205354414E544F4E20
3ADO: 00 00 00

3AD3: 33 25 2C
3AD6: 25 23 34
3AD9: 1A 00 25
3ADC: 21 33 39
3ADF: 00 00 00

3AE2: 00 00    00580 TITLE1    AT    SELECT: EASY
3AE4: 00 00 00
3AE7: 00 00 00
3AEA: 00 00 00

3AED: 00 00 28
3AFO: 21 32 24
3AF3: 00 00 00
3AF6: 00 00    00585    AT    HARD
3AF8:          00590    BS $08
3BOO: 00 00 00
3BO3: 00 00 2E
3BO6: 25 38 34
3BO9: 00 2C 25
3BOC: 36 25 2C

3BOF: 00 00 00

3B12: 00 00    00595 TITLE2    AT    NEXT LEVEL

               00600 *VARIABLES

3B14:          00605 XO    BS $01    ;PLAYER'S MAN POSITION
3B15:          00610 X    BS $04    ;REST OF PLAYER POSITIONS
3B19:          00615 YO    BS $01
3BlA:          00620 Y    BS $04    ;REST OF PLAYER POSITIONS
3BlE:          00625 XB    BS $04    ;BLOCK EACH PLAYER IN
3B22:          00630 YB,    BS $04
3B26:          00635 FLAGL    BS $04    ;LEGAL MOVE FLAGS FOR EACH PLAYER
3B2A:          00640 FLAGR    BS $04
3B2E:          00645 FLAGU    BS $04
3B32:          00650 FLAGD    BS $04
3B36:          00655 RELL    BS $04    ;DIRECTION WANT TO MOVE IN FLAGS
3B3A:          00660 RELR    BS $04
3B3E:          00665 RELU    BS $04
3B42:          00670 RELD    BS $04
3B46:          00675 MFLAGL    BS $04    ;MATCH FLAGS
3B4A:          00680 MFLAGR    BS $04
3B4E:          00685 MFLAGU    BS $04
3B52:          00690 MFLAGD    BS $04
3B56:          00695 TEMPX    BS $01
3B57:          00700 TEMPY    BS $01
3B58:          00705 TEMPL    BS $04
3B5C:          00710 TEMPH    BS $04
3B60:          00715 BLOCK    BS $01    ;OFFSET IN SCREEN MEMORY OF CURRENT BLOCK

3B61: 01       00720 POINTO    DA #1    ;SHAPE PLAYER 0
3B62: 02       00725 POINTI    DA #2
3B63: 03       00730 POINT2    DA #3
3B64: 00       00735 POINT3    DA #0
3B65:          00740 DL    BS $04    ;AUTO FLAGS
3B69:          00745 DR    BS $04

3B6D:          00750 DU    BS $04
3B71:          00755 DD    BS $04
3B75: 00       00820 INHIBIT    DA #0    ;PREVENTS OBTAINING TWO JOYSTICK DIRECTIONS
3B76: 00       00825 VBFLAG    DA #0    ;VBLANK FINISHED FLAG \ON DIAGONAL
3B77: 00       00830 LFLAG    DA #0    ;INDICATES WHETHER AT CENTER OF BLOCK
3B78: 00       00835 NUM    DA #0    ;NUMBER OF DIRECTION MATCH FLAGS
3B79: 00       00840 PAUSE    DA #0    ;PAUSE FLAG
3B7A: 00       00845 SLOW    DA #0    ;SETS MINUS SIGN TO HALF SPEED
3B7B: 00       00850 HALF    DA #0    ;COUNTER WHEN PLAYER MOVES AT HALF SPEED
3B7C:          00855 LEVEL    BS $01    ;MAZE LEVEL
3B7D:          00857 ONCE    BS $01    ;PREVENTS DOUBLE COLLISIONS @ HALF SPEED

               00860 *POINTERS TO PM DATA

3B7E: 00 08 10
3B81: 18 20 28
3B84: 30 38    00865 SHPLO    HS 0008101820283038
3B86: 40 48 50
3B89: 58 60 68

3B8C: 70 78    00870    HS 4048505860687078
3B8E: 80 88 90
3B91: 98 AO A8
3B94: BO B8    00875    HS 80889098AOA8BOB8
3B96: CO C8 DO

3B99: D8 EO    00880    HS COC8DOD8EO

3B9B:          00885    BS $65

               00890 *MAKE SURE STARTS @$2COO
               00895 *PLAYER MISSILE DATA

3COO: 00 00 00
3CO3: 3C 3C 00
3CO6: 00 00    00900 SHAPES    HS 0000003C3CO00OOO ;MINUS SIGN
3CO8: 18 3C 66
3COB: 42 7E 42
3COE: 42 42    00905    HS 183C66427E424242 ;LETTER A
3CIO: 7C 42 42
3C13: 7C 42 42
3C16: 42 7C    00910    HS 7C42427C4242427C ;B
3C18: 1E 20 40
3CIB: 40 40 40
3ClE: 20 IE    00915    HS lE2040404040201E ;C
3C20: 78 44 42
3C23: 42 42 42

3C26: 44 78    00920    HS 7844424242424478 ;D
3C28: 7E 40 40
3C2B: 7C 40 40

3C2E: 40 7E    00925    HS 7E40407C4040407E ;E
3C30: 7E 40 40
3C33: 7C 40 40
3C36: 40 40    00930    HS 7E40407C40404040 ;F
3C38: 1E 20 40
3C3B: 40 4E 42
3C3E: 22 1C    00935    HS lE2040404E42221C ;G
3C40: 42 42 42
3C43: 7E 42 42
3C46: 42 42    00940    HS 4242427E42424242 ;H
3C48: 7C 10 10
3C4B: 10 10 10
3C4E: 10 7C    00945    HS 7C1010101010107C ;I
3C50: 04 04 04
3C53: 04 04 44
3C56: 44 38    00950    HS 0404040404444438 ;J
3C58: 44 48 50
3C5B: 60 60 50
3C5E: 48 44    00955    HS 4448506060504844 ;K
3C60: 40 40 40
3C63: 40 40 40
3C66: 40 7E    00960    HS 404040404040407E ;L
3C68: 41 63 55
3C6B: 49 41 41
3C6E: 41 41    00965    HS 4163554941414141 ;M
3C70: 62 62 52
3C73: 52 4A 4A
3C76: 46 46    00970    HS 626252524A4A4646 ;N
3C78: 18 24 42
3C7B: 42 42 42
3C7E: 24 18    00975    HS 1824424242422418 ;0
3C80: 7C 42 42
3C83: 42 7C 40
3C86: 40 40    00980    HS 7C4242427C404040 ;P
3C88: 18 24 42
3C8B: 42 42 42
3C8E: 26 1B    00985    HS 182442424242261B ;Q
3C90: 7C 42 42
3C93: 42 7C 44
3C96: 42 41    00990    HS 7C4242427C444241 ;R
3C98: 3E 40 40
3C9B: 40 3C 02
3C9E: 02 7C    00995    HS 3E4040403CO2027C ;S
3CAO: FE 10 10
3CA3: 10 10 10
3CA6: 10 10    01000    HS FE10101010101010 ;T
3CA8: 42 42 42
3CAB: 42 42 42
3CAE: 42 3C    01005    HS 424242424242423C ;U
3CBO: 82 82 82
3CB3: 82 44 44
3CB6: 28 10    01010    HS 8282828244442810 ;V
3CB8: 41 41 41
3CBB: 41 49 55
3CBE: 63 41    01015    HS 4141414149556341 ;W
3CCO: 41 22 14
3CC3: 08 14 22

3CC6: 41 00    01020    HS 4122140814224100 ;X
3CC8: 42 42 24
3CCB: 18 10 20
3CCE: 40 40    01025    HS 4242241810204040 ;Y
3CDO: 7F 02 04
3CD3: 08 10 20
3CD6: 7F 00    01030    HS 7FO2040810207FOO ;Z
3CD8: 00 00 00
3CDB: 00 00 00
3CDE: 00 00    01035    HS 0000000000000000 ;BLANK
3CEO: 00 00 00
3CE3: 00 00 00
3CE6: 00 00    01040    HS 0000000000000000 ;BLANK

               01045 *SETUP DLIST

               01050 BEGIN
3CE8: A2 00    01055    LDX #$00

3CEA: BD 00 3A 01060 DLOOP    LDA DLIST,X
3CED: 9D 00 94 01065    STA NDLISTJ
3CFO: E8       01070    INX
3CFl:    EO 15 01075    CPX #$15 21 ELEMENTS
3CF3: DO F5    01080    BNE DLOOP
3CF5: A9 00    01085    LDA #NDLIST ;LOCATION OF DISPLAY LIST
3CF7: 8D 30 02 01090    STA $230

3CFA: A9 94    01095    LDA /NDLIST

3CFC: 8D 31 02 01100    STA $231

               01105 *ERASE SCREEN
3CFF: A2 00    01110 START    LDX #$00
3DOI: A9 00    01115    LDA #$00
3DO3: 9D 00 87 01120 ALOOP    STA SCREEN,X
3DO6: E8       01125    INX
3DO7: DO FA    01130    BNE ALOOP
               01135 *WRITE TITLE & AUTHOR
3DO9: A9 EO    01140    LDA #$EO    ;ROM CHARACTER SET
3DOB: 8D F4 02 01145    STA CHBAS
3DOE: A2 00    01150    LDX #$00
3DIO: BD 94 3A 01155 BLOOP    LDA TITLE,X
3DI3: 38       01157    SEC
3DI4: E9 20    01158    SBC #$20
3DI6: 9D 3C 87 01160    STA $873C,X

3D19: E8       01165    INX
3DIA: EO 3C    01170    CPX #$3C
3DIC: DO F2    01175    BNE BLOOP

               01180 *WRITE SELECT EASY & HARD

3DIE: A2 00    01185    LDX #$00

3D20: BD DO 3A 01190 RLOOP    LDA TITLE1,X ;PUT IN 8TH ROW
3D23: 9D AO 87 01195    STA $87AO,X
3D26: E8       01200    INX
3D27: EO 28    01205    CPX #$28
3D29: DO F5    01210    BNE HLOOP

3D2B: A9 OA    01215    LDA #$OA    ;WRITE    BESIDE HARD
3D2D: 8D C3 87 01220    STA $87C3

               01225 *READ CONSOLE KEYS

3D30: A9 00    01230    LDA #$00
3D32: 8D 7A 3B 01235    STA SLOW
3D35: 8D 7C 3B 01240    STA LEVEL
3D38: AD IF DO 01245 KEY    LDA CONSOL
3D3B: C9 06    01250    CMP #$06
3D3D: FO 39    01255    BEQ RAIN
3D3F: C9 05    01260    CMP #$05
3D41: DO F5    01265    BNE KEY
3D43: AD 7A 3B 01270    LDA SLOW
3D46: DO 12    01275    BNE .2

3D48: A9 OA    01280 .1    LDA #$OA    ;WRITE * BESIDE EASY
3D4A: 8D AF 87 01285    STA $87AF
3D4D: A9 00    01290    LDA #$00    ;ERASE * BESIDE HARD
3D4F: 8D C3 87 01295    STA $87C3
3D52: A9 01    01300    LDA #$Ol
3D54: 8D 7A 3B 01305    STA SLOW
3D57: 4C 69 3D 01310    JMP .3
3D5A: A9 OA    01315 .2    LDA #$OA    ;WRITE * BESIDE HARD
3D5C: 8D C3 87 01320    STA $87C3
3D5F: A9 00    01325    LDA #$00    ;ERASE * BESIDE EASY
3D61: 8D AF 87 01330    STA $87AF
3D64: A9 00    01335    LDA #$00
3D66: 8D 7A 3B 01340    STA SLOW

3D69: A9 E8    01345 .3    LDA #$E8
3D6B: 85 14    01350    STA $14
3D6D: A9 00    01355    LDA #$00
3D6F: 85 13    01360    STA $13
3D71: A5 13    01365 .4    LDA $13    ;DELAY 24 JIFFIES
3D73: FO FC    01370    BEQ .4

3D75: 4C 38 3D 01375    imp KEY

               01380 *SETUP CHARACTER SET
3D78: A2 00    01385 MAIN    LDX #$00
3D7A: BD 14 3A 01390 CLOOP    LDA DCHAR,X

3D7D: 9D 00 90 01395    STA CHRSYZ.X

3D80: E8       01400    INX
3D81: EO 80    01405    CPX #$80
3D83: DO F5    01410    BNE CLOOP
3D85: A9 90    01415    LDA /CHRSET
3D87: 8D F4 02 01420    STA CHBAS

               01425 *SETUP SCREEN

3D8A: A2 00    01430    LDX #$00
3D8C: BD 00 38 01435 SLOOP    LDA DSCREENJ
3D8F: 9D 00 87 01440    STA SCREEN,X

3D92: E8       01445    INX
3D93: EO FO    01450    CPX #$FO    ;220 BYTES
3D95: DO F5    01455    BNE SLOOP
3D97: A9 00    01460    LDA #DSCREEN
3D99: 85 F8    01465    STA MAPL
3D9B: A9 38    01470    LDA /DSCREEN
3D9D: 85 F9    01475    STA MAPH

3D9F: A9 00    01480    LDA #$00    ;BACKGROUND BLACK

3DAl: 8D C8 02 01485    STA COLOR4

               01490 *INITALIZE PLAYERS

3DA4: A9 88    01495    LDA #$88
3DA6: 8D 07 D4 01500        ISTA PMBASE
3DA9: A9 03    01505    LDA #$03
3DAB: 8D 1D DO 01510    STA GRACTL
3DAE: A9 3E    01515    LDA #$3E
3DBO: 8D 2F 02 01520        STA DMACTL
3DB3: A9 00    01525    LDA #$00
3DB5: 8D 08 DO 01530    STA SIZEPO
3DB8: 8D 09 DO 01535    STA SIZEP1
3DBB: 8D OA DO 01540        STA STZEP2
3DBE: 8D OB DO 01545        STA SIZEP3
3DCl: 8D IE DO 01550 RESTART    STA HITCLR;CLEAR COLLISION REG

               01555 *PLAYER #0

3DC4: A9 7A    01560    LDA #$7A    ;PLAYER #0 122 BLUE LUM10
3DC6: 8D CO 02 01565        STA COLPMO
3DC9: A9 30    01570    LDA #$30    ;INITIAL POS X=48,Y=36
3DCB: 8D 14 3B 01575        STA XO
3DCE: 8D 15 3B 01580        STA X
3DDI: 8D 00 DO 01585    STA HPOSPO    ;TELL ANTIC
3DD4: A9 24    01590    LDA #$24
3DD6: 8D 19 3B 01595    STA YO
3DD9: 8D IA 3B 01600        STA Y

               01605 *INITIAL OLD PLAYER #0 MEMORY POINTERS

3DDC: A9 40    01610    LDA #$40
3DDE: 8D 58 3B 01615    STA TEMPL
3DEI: A9 88    01620    LDA /PDATA
3DE3: 18       01625    CLC
3DE4: 69 04    01630    ADC #$04
3DE6: 8D 5C 3B 01635    STA TEMPH

               01640 *PLAYER #1

3DE9: A2 01    01645    LDX #$Ol
3DEB: A9 C8    01650    LDA #$C8    ;PLAYER #1 200 GREEN LUM8
3DED: 8D Cl 02 01655    STA COLPM1
3DFO: A9 88    01660    LDA #$88    ;INITIAL POSITION X=136,Y=164
3DF2: 9D 15 3B 01665    STA X,X
3DF5: 8D 01 DO 01670    STA HPOSPI
3DF8: A9 A4    01675    LDA #$A4
3DFA: 9D 1A 3B 01680    STA Y,X

               01685 *OLD PLAYER #1 MEMORY POINTERS
3DFD: A9 40    01690    LDA #$40
3DFF: 9D 58 3B 01695    STA TEMPL,X
3EO2: A9 88    01700    LDA /PDATA

3EO4: 18       01705    CLC

3EO5: 69 05    01710    ADC #$05
3EO7: 9D 5C 3B 01715    STA TEMPH,X

               01720 *PLAYER #2

3EOA: A2 02    01725    LDX #$02
3EOC: A9 C8    01730    LDA #$C8    ;PLAYER #2 200 GREEN LUM8
3EOE: 8D C2 02 01735    STA COLPM2
3EII: A9 AO    01740    LDA #$AO    ;INITIAL POSITION X=160,Y=52
3E13: 9D 15 3B 01745    STA X,X
3E16: 8D 02 DO 01750    STA RPOSP2
3E19: A9 34    01755    LDA #$34
3EIB: 9D IA 3B 01760    STA Y,X

               01765 *OLD PLAYER #2 MEMORY POINTERS

3EIE: A9 40    01770    LDA #$40
3E20: 9D 58 3B 01775    STA TEKPL,X
3E23: A9 88    01780    LDA /PDATA
3E25: 18       01785    CLC
3E26: 69 06    01790    ADC #$06
3E28: 9D 5C 3B 01795    STA TEKPH,X
               01800 *PLAYER #3
3E2B: A2 03    01805    LDX 003
3E2D: A9 44    01810    LDA #$44    ;PLAYER #3 68 RED LUM4
3E2F: 8D C3 02 01815    STA COLPM3
3E32: A9 C8    01820    LDA #$C8    ;INITIAL POSITION X=200,Y=196
3E34: 9D 15 3B 01825    STA X,X
3E37: 8D 03 DO 01830    STA HPOSP3
3E3A: A9 C4    01835    LDA #$C4
3E3C: 9D IA 3B 01840    STA Y,X

               01845 *OLD PLAYER #3 MEMORY POINTERS

3E3F: A9 40    01850    LDA #$40
3E41: 9D 58 3B 01855    STA TEMPL,X
3E44: A9 88    01860    LDA /PDATA
3E46: 18       01865    CLC
3E47: 69 07    01870    ADC, #$07
3E49: 9D 5C 3B 01875    STA TEMPH,X
               01880 *INIT POINT# VALUES
3E4C: A9 01    01885    LDA #$Ol
3E4E: 8D 61 3B 01890    STA POINTO
3E51: A9 02    01895    LDA #$02
3E53: 8D 62 3B 01900    STA POINTI
3E56: A9 03    01905    LDA #$03
3E58: 8D 63 3B 01910    STA POINT2
3E5B: A9 00    01915    LDA #$00
3E5D: 8D 64 3B 01920    STA POINT3
3E60: 8D 7D 3B 01922    STA ONCE

               01925 *INIT AUTO FLAGS

3E63: A2 00    01930 INAUTO    LDX #$00
3E65: A9 00    01935    LDA #$00
3E67: 9D 65 3B 01940 .1    STA DL,X
3E6A: 9D 69 3B 01945    STA DR,X
3E6D: 9D 6D 3B 01950    STA DU,X
3E70: 9D 71 3B 01955    STA DD,X

3E73: E8       01960    INX
3E74: EO 04    01965    CPX #$04
3E76: DO EF    01970    BNE .1

               01975 *START PLAYERS MOVING
3E78: A9 01    01980    LDA #$Ol

3E7A: 8D 6A 3B 01985    STA DR+l
3E7D: 8D 6B 3B 01990    STA DR+2
3E80: 8D 68 3B 01995    STA DL+3
               02000 *CLEAR P/M AREA
3E83: A9 00    02005 CLEAR    LDA #$00    ;PDATL

3E85: 85 F6    02010    STA PMADR.

3E87: A9 88    02015    LDA /PDATA
3E89: 85 F7    02020    STA PMADR+l
3E8B: AO 00    02025    LDY #$00
3E8D: 98       02030    TYA
3E8E: A2 08    02035    LDX 4$08
3E90: 91 F6    02040 .1    STA (PMADR),Y
3E92: C8       02045    INY
3E93: DO FB    02050    BNE .1
3E95: E6 F7    02055    INC PMADR+l ;NEXT 256 BYTES
3E97: CA       02060    DEX
3E98: DO F6    02065    BNE .1

               02070 *PLOT INITIAL PLAYER POSITIONS
3E9A: A2 00    02075    LDX 000

3E9C: 20 FE 44 02080    JSR PLOTSETO
3E9F: A2 01    02085    LDX #$Ol
3EAl: 20 03 46 02090    JSR PLOTSETI
               02095 *SET VBLANK
3EA4: A9 07    02100    LDA #$07
3EA6: A2 42    02105    LDX /FRAME ;HI BYTE VBLANK ROUTINE
3EA8: AO Al    02110    LDY #FRAME ;LO BYTE
3EAA: 20 5C E4 02115    JSR SETVBK
               02120 *MAIN CODE LOOP
3EAD: A9 00    02125 LOOPM    LDA #$00
3EAF: 8D 76 3B 02130    STA VBFLAG
               02135 *CHECK COLLISIONS

3EB2: AD OC DO 02140    LDA POPL    ;CHECK COLLISION PLAYER 0&1
3EB5: C9 02    02145    CMP #$02
3EB7: DO 19    02150    BNE .1
3EB9: 38       02155    SEC
3EBA: AD 62 3B 02160    LDA POINT1    ;IS THERE A 1 LETTER DIFFERENCE
3EBD: ED 61 3B 02165    SBC POINTO
3ECO: C9 02    02170    CMP #$02
3EC2: BO OE    02175    BGE .1
3EC4: EE 61 3B 02180    INC POINTO    ;PLAYER BECOMES NEXT LETTER
3EC7: EE 62 3B 02185    INC POINTI    ;OLD LETTER JUMPS 2 LETTERS
3ECA: EE 62 3B 02190    INC POINT1
3ECD: AO 01    02195    LDY #$Ol
3ECF: 20 7A 47 02200    JSR PLACE    ;PUT PLAYER#l IN NEW PLACE
3ED2: AD OC DO 02205 .1    LDA POPL    ;CHECK COLLISION PLAYER 0&2
3ED5: C9 04    02210    CMP #$04
3ED7: DO 19    02215    BNE .2
3ED9: 38       02220    SEC
3EDA: AD 63 3B 02225    LDA POINT2    ;IS THERE A I LETTER DIFFERENCE
3EDD: ED 61 3B 02230    SBC POINTO
3EEO: C9 02    02235    CMP #$02
3EE2: BO OE    02240    BGE .2
3EE4: EE 61 3B 02245    INC POINTO
3EE7: EE 63 3B 02250    INC POINT2
3EEA: EE 63 3B 02255    INC POINT2
3EED: AO 02    02260    LDY #$02
3EEF: 20 7A 47 02265    JSR PLACE
3EF2: AD OC DO 02270 .2    LDA POPL    ;CHECK COLLISION PLAYER 0&3
3EF5: C9 08    02275    CMP #$08
3EF7: DO 58    02280    BNE .3
3EF9: AD 7D 3B 02282    LDA ONCE    ;MUST MOVE PLAYER #3 BEFORE TESTING
3EFC: DO 53    02283    BNE .3        \FOR NEW COLLISION
3EFE: AD 61 3B 02285    LDA POINTO
3FOl: C9 01    02290    CMP #$Ol
3FO3: FO OC    02295    BEQ .25
3FO5: CE 61 3B 02300    DEC POINTO
3FO8: CE 62 3B 02305    DEC POINTI
3FOB: CE 63 3B 02310    DEC POINT2

3FOE: EE 7D 3B 02312    INC ONCE
3FII: AO 03    02315 .25    LDY #$03
3F13: AD 1E 3B 02320    LDA XB    ;PUT PLAYER #3 OPPOSITE SIDE AS PLAYER #0
3F16: C9 OA    02325    CMP #$OA
3F18: BO 1D    02330    BGE .27
3FlA: A9 C8    02335    LDA #$C8    ;PUT PLAYER #3-AT BOTTOM LEFT (200,196)
3FIC: 99 15 3B 02340    STA X,Y
3FIF: A9 C4    02345    LDA #$C4
3F21: 99 IA 3B 02350    STA Y,Y
3F24: A9 00    02355    LDA #$00
3F26: 99 6D 3B 02360    STA DU,Y
3F29: 99 69 3B 02365    STA DR,Y
3F2C: 99 71 3B 02370    STA DD,Y
3F2F: A9 01    02375    LDA #$Ol
3F31: 99 65 3B 02380    STA DL,Y
3F34: 4C 51 3F 02385    JMP .3
3F37: A9 40    02390 .27    LDA #$40
3F39: 99 15 3B 02395    STA X,Y    ;PUT PLAYER #3 AT BOTTOM RT (48,196)
3F3C: A9 C4    02400    LDA #$C4
3F3E: 99 1A 3B 02405    STA Yj
3F41: A9 00    02410    LDA #$00
3F43: 99 6D 3B 02415    STA DU,Y
3F46: 99 71 3B 02420    STA DD,Y
3F49: 99 65 3B 02425    STA DL,Y
3F4C: A9 01    02430    LDA #$Ol
3F4E: 99 69 3B 02435    STA DR,Y
3F51: 8D 1E DO 02440 .3    STA HITCLR
3F54: A9 00    02445    LDA #$00    ;STOP ATTRACT MODE
3F56: 85 4D    02450    STA $4D

               02455 *PLAYER #1 CODE
3F58: A2 01    02460    LDX #$Ol
3F5A: 20 06 40 02465    JSR MOVEPL
3F5D: 20 03 46 02470    JSR PLOTSETI
               02475 *PLAYER #2

3F60: A2 02    02480    LDX #$02
3F62: 20 06 40 02485    JSR MOVEPL
3F65: 20 31 46 02490    JSR PLOTSET2
               02495 *PLAYER3
3F68: AD 7A 3B 02500    LDA SLOW
3F6B: C9 00    02505    CMP #$00
3F6D: FO 09    02510    BEQ P3

3F6F: EE 7B 3B 02515    INC HALF    ;INCREMENT COUNTER
3F72: AD 7B 3B 02520    LDA HALF
3F75: 4A       02525    LSR    ;DIVIDE BY 2
3F76: 90 OD    02530    BCC RESET    ;SKIPS ON EVEN CYCLES
3F78: A2 03    02535 P3    LDX #$03
3F7A: 20 06 40 02540    JSR MOVEPL
3F7D: 20 5F 46 02545    JSR PLOTSET3
3F80: A9 00    02546    LDA #$00
3F82: 8D 7D 3B 02547    STA ONCE

               02550 *IF PLAYER #0 BECOMES Z RESET TO SECOND SCREEN

3F85: AD 61 3B 02555 RESET    LDA POINTO

3F88: C9 1A    02560    CMP #$IA
3F8A: DO 6D    02565    BNE FOREVER
3F8C: A9 80    02570    LDA #$80
3F8E: 85 14    02575    STA $14
3F90: A5 14    02580 DELAY    LDA $14    ;ABOUT 2 SEC
3F92: DO FC    02585    BNE DELAY

               02590 *MOVE PLAYERS TEMP OFF SCREEN
3F94: A9 00    02595    LDA #$00

3F96: 8D CO 02 02600    STA COLPMO ;TERP BLACKOUT PLAYER#O IN VBLANK

3F99: 8D 01 DO 02605    STA HPOSP1

3F9C: 8D 02 DO 02610    STA HPOSP2
3F9F: 8D 03 DO 02615    STA HPOSP3

               02620 *DONE WITH 2ND LEVEL
3FA2: AD 7C 3B 02625    LDA LEVEL
3FA5: C9 01    02630    CMP #$01
3FA7: DO 03    02635    BNE .1
3FA9: 4C FF 3C 02640    JMP START
               02645 *ERASE SCREEN
3FAC: A2 00    02650 .1    LDX #$00
3FAE: A9 00    02655    LDA #$00
3FBO: 9D 00 87 02660 FLOOP    STA SCREEN,X
3FB3: E8       02665    INX
3FB4: DO FA    02670    BNE FLOOP
               02675 *WRITE 'NEXT LEVEL'
3FB6: A9 EO    02680    LDA #$EO    ;BACK TO ROM CHARACTER SET
3FB8: 8D F4 02 02685    STA CHBAS
3FBB: EE 7C 3B 02690    INC LEVEL
3FBE: A2 00    02695    LDX #$00
3FCO: BD 00 3B 02700 GLOOP    LDA TITLE2,X
3FC3: 9D 8C 87 02705    STA $878C,X

3FC6: E8       02710    INX
3FC7: EO 14    02715    CPX #$14
3FC9: DO F5    02720    BNE GLOOP
3FCB: A9 80    02725    LDA #$80
3FCD: 85 14    02730    STA $14    ;2 SECOND DELAY
3FCF: A9 00    02735    LDA #$00
3FDI: 85 13    02740    STA $13
3FD3: A5 13    02745 .1    LDA $13
3FD5: FO FC    02750    BEQ .1

3FD7: A9 90    02755    LDA /CHRSET ;RAM CHARACTER SET

3FD9: 8D F4 02 02760    STA CHBAS

               02765 *SETUP SECOND SCREEN

3FDC: A2 00    02770    LDX #$00
3FDE: BD 00 39 02775 SLOOP1    LDA DSCREEN2,X
3FEI: 9D 00 87 02780    STA SCREEN,X

3FE4: E8       02785    INX
3FE5: EO FO    02790    CPX #$FO
3FE7: DO F5    02795    BNE SLOOPI
3FE9: A9 00    02800    LDA #DSCREEN2
3FEB: 85 F8    02805    STA MAPL
3FED: A9 39    02810    LDA /DSCREEN2
3FEF: 85 F9    02815    STA MAPH

3FFI: A9 7A    02820    LDA #$7A    ;RESTORE PLAYER #0 COLOR

3FF3: 8D'CO 02 02822        STA COLPMO
3FF6: 4C Cl 3D 02823        JMP RESTART
3FF9: AD 76 3B 02825 FOREVER        LDA VBFLAG    ;STAYS IN THIS LOOP UNTIL
3FFC: C9 01    02830    CMP #$Ol    ;VBLANK ROUTINE SETS VBFLAG=l
3FFE: DO 03    02835    BNE .1
4000: 4C AD 3E 02840        JMP LOOPM
4003: 4C F9 3F 02845 .1        JMP FOREVER
4006: 20 50 44 02850 MOVEPL,        JSR LEGAL
4009: AD 77 3B 02855        LDA LFLAG    ;EQUAL TO I IF AT CENTER OF BLOCK
40OC: DO 06    02860    BNE .1
400E: 20 B5 45 02865        JSR AUTOP
4011: 4C DI 40 02870        JMP FIN

               02875 *IS THERE AN AVAILABLE DIRECTION OTHER THAN FORWARD OR REVERSE

4014: BD 65 3B 02880 .1    LDA DL,X
4017: FO 2B    02885    BEQ .2
4019: BD 2E 3B 02890    LDA FLAGU,X
40IC: DO 03    02895    BNE .11
401E: 4C D4 40 02900    JMP YES

4021: BD 32 3B 02905 .11    LDA FLAGD,X
4024: DO 03    02910    BNE .12
4026: 4C D4 40 02915    JMP YES
               02920 *CONTINUE MOVING IN SAME DIRECTION UNLESS BLOCKED

4029: BD 26 3B 02925 .12        LDA FLAGL,X
402C: DO 06    02930    BNE .13
402E: DE 15 3B 02935        DEC X,X
4031: 4C Dl 40 02940        JMP FIN
4034: A9 00    02945 .13    IDA #$00    ;REVERSE DIRECTION
4036: 9D 65 3B 02950        STA DL,X
4039: A9 01    02955    LDA #$Ol
403B: 9D 69 3B 02960    STA DR,X
403E: FE 15 3B 02965        INC X,X
4041: 4C DI 40 02970        JMP FIN
4044: BD 69 3B 02975 .2        LDA DR,X
4047: FO 2B    02980    BEQ .3
4049: BD 2E 3B 02985    LDA FLAGU,X
404C: DO 03    02990    BNE .21
404E: 4C D4 40 02995        JMP YES
4051: BD 32 3B 03000 .21        LDA FLAGD,X
4054: DO 03    03005    BNE .22
4056: 4C D4 40 03010    JMP YES
4059: BD 2A 3B 03015 .22        LDA FLAGR,X
405C: DO 06    03020    BNE .23
405E: FE 15 3B 03025        INC X,X
4061: 4C Dl 40 03030    JMP FIN
4064: A9 00    03035 .23    LDA #$00    ;REVERSE DIRECTION
4066: 9D 69 3B 03040    STA DR,X
4069: A9 01    03045    LDA #$Ol
406B: 9D 65 3B 03050        STA DL,X
406E: DE 15 3B 03055        DEC X,X
4071: 4C Dl 40 03060    JMP FIN
4074: BD 6D 3B 03065 .3        LDA DU,X
4077: FO 2B    03070    BEQ .4
4079: BD 26 3B 03075        LDA FLAGL,X
407C: DO 03    03080    BNE .31
407E: 4C D4 40 03085        JMP YES
4081: BD 2A 3B 03090 .31        LDA FLAGR,X
4084: DO 03    03095    BNE .32
4086: 4C D4 40 03100    JMP YES
4089: BD 2E.3B 03105 .32    LDA FLAGU,X
408C: DO 06    03110    BNE .33
408E: DE IA 3B 03115    DEC Y,X
4091: 4C Dl 40 03120    JMP FIN
4094: A9 00    03125 .33    LDA #$00    ;REVERSE DIRECTION
4096: 9D 6D 3B 03130        STA DU,X
4099: A9 01    03135    LDA #$Ol
409B: 9D 71 3B 03140        STA DD,X
409E: FE 1A 3B 03145        INC Y,X
40Al: 4C DI 40 03150    JMP FIN
40A4: BD 71 3B 03155 .4    LDA DD,X
40A7: FO 28    03160    BEQ FIN
40A9: BD 26 3B 03165        LDA FLAGL,X
40AC: DO 03    03170    BNE .41
40AE: 4C D4 40 03175        JMP YES
40BI: BD 2A 3B 03180 .41        LDA FLAGR,X
40B4: DO 03    03185    BNE .42
40B6: 4C D4 40 03190    JMP YES
40B9: BD 32 3B 03195 .42        LDA FLAGD,X
40BC: DO 06    03200    BNE .43
40BE: FE IA 3B 03205        INC Y.X

40Cl: 4C Dl 40 03210    JMP FIN
40C4: A9 00    03215 .43    LDA #$00    ;REVERSE DIRECTION
40C6: 9D 71 3B 03220    STA DD,X
40C9: A9 01    03225    LDA #$Ol
40CB: 9D 6D 3B 03230    STA DU,X
40CE: DE IA 3B 03235        DEC Yj
40Dl: 4C AO 42 03240 FIN        JMP EE

40D4: EA       03245 YES    NOP

               03250 *SET ALL REL,X FLAGS
               03255 *VALUE OF 0 WOULDN'T WANT TO MOVE BUT VALUE OF I WOULD HOME

               03260 *PLAYER 1&2 FLEES - PLAYER 3 CHASES    ~IN ON PLAYER

4OD5: A9 00    03265 TESTRX    LDA #$00    ;ZERO REL,X FLAGS

4OD7: 9D 36 3B 03270    STA RELL,X
40DA: 9D 3A 3B 03275    STA RELR,X
40DD: 9D 42 3B 03280    STA RELD,X
40EO: 9D 3E 3B 03285        STA RELUJ
40E3: BD IE 3B 03290        LDA XB,X
4OE6: 38       03295    SEC
40E7: ED IE 3B 03300        SBC XB

40EA: FO 2A    03302    BEQ .4
40EC: 10 14    03305    BPL .1
40EE: EO 03    03310    CPX #$03
40FO: FO 08    03315    BEQ .2
40F2: A9 01    03320    LDA #$Ol

40F4: 9D 36 3B 03325        STA RELL,X ;ACTUALLY RELR,X=-l BUT RELL,X=l
40F7: 4C 22 41 03330        JMP TESTRY
40FA: A9 01    03335 .2    LDA #$Ol
40FC: 9D 3A 3B 03340        STA RELR,X
40FF: 4C 22 41 03345        JMP TESTRY
4102: EO 03    03350 .1    CPX #$03
4104: FO 08    03355    BEQ .3
4106: A9 01    03360    LDA #$Ol
4108: 9D 3A 3B 03365        STA RELR,X ;ACTUALLY RELL,X=-l
41OB: 4C 22 41 03370        JMP TESTRY
410E: A9 01    03375 .3    LDA #$Ol
4110: 9D 36 3B 03376        STA RELL,X
4113: 4C 22 41 03377        JMP TESTRY
4116: EO 03    03378 .4    CPX #$03
4118: FO 08    03379    BEQ TESTRY
411A: A9 01    03380    LDA #$Ol
411C: 9D 36 3B 03381        STA RELL,X
41IF: 9D 3A 3B 03382        STA RELR,X
4122: BD 22 3B 03385 TESTRY        LDA YB,X
4125: 38       03390    SEC
4126: ED 22 3B 03395        SBC YB

4129: 10 16    03400    BPL .1
412B: FO 2B    03402    BEQ .4
412D: EO 03    03405    CPX #$03
412F: FO 08    03410    BEQ .2
4131: A9 01    03415    LDA #$Ol

4133: 9D 3E 3B 03420    STA RELU,X ;ACTUALLY RELD,X=-l
4136: 4C 64 41 03425    JMP MATCHT
4139: A9 01    03430 .2    LDA #$Ol
413B: 9D 42 3B 03435    STA RELD,X
413E: 4C 64 41 03440    JMP MATCHT
4141: EO 03    03445 .1    CPX #$03
4143: FO 08    03450    BEQ .3
4145: A9 01    03455    LDA #$Ol
4147: 9D 42 3B 03460    STA RELD,X ;ACTUALLY RELU,X=-l
414A: 4C 64 41 03465    JMP MATCHT

414D: A9 01    03470 .3    LDA #$Ol

414F: 9D 3E 3B 03475        STA RELU,X
4152: 9D 3E 3B 03476        STA RELU,X
4155: 4C 64 41 03477        JMP MATCHT
4158: EO 03    03478 .4    CPX #$03
415A: FO 08    03479    BEQ MATCHT
415C: A9 01    03480    LDA #$Ol
415E: 9D 42 3B 03481        STA RELD,X
4161: 9D 3E 3B 03482        STA RELU,X
4164: A9 00    03485 MATCHT    LDA #$00
4166: 8D 78 3B 03490        STA NUM
4169: 9D 46 3B 03495        STA MFLAGL,X
416C: 9D 4A 3B 03500        STA MFLAGR,X
416F: 9D 4E 3B 03505        STA MFLAGU,X
4172: 9D 52 3B 03510        STA MFLAGD,X
4175: BD 26 3B 03515        LDA FLAGL,X
4178: DO OF    03520    BNE .2
417A: BD 36 3B 03525        LDA RELL,X
417D: C9 01    03530    CMP #$Ol
417F: DO 08    03535    BNE .2
4181: EE 78 3B 03540        INC NUM
4184: A9 01    03545    LDA #$Ol
4186: 9D 46 3B 03550        STA MFLAGL,X ;SET MATCH FLAG
4189: BD 2A 3B D3555 .2        LDA FLAGR,X
418C: DO OF    03560    BNE .3
418E: BD 3A 3B 03565        LDA RELR,X
4191: C9 01    03570    CMP #$Ol
4193: DO 08    03575    BNE .3
4195: EE 78 3B 03580        INC NUM
4198: A9 01    03585    LDA #$Ol
419A: 9D 4A 3B 03590        STA MFLAGR,X
419D: BD 2E 3B 03595 .3        LDA FLAGU,X
41AO: DO OF    03600    BNE .4
41A2: BD 3E 3B 03605        LDA RELU,X
41A5: C9 01    03610    CMP #$Ol
41A7: DO 08    03615    BNE .4
41A9: EE 78 3B 03620        INC NUM
41AC: A9 01    03625    LDA #$Ol
41AE: 9D 4E 3B 03630        STA MFLAGU,X
41BI: BD 32 3B 03635 .4        LDA FLAGD,X
41B4: DO OF    03640    BNE PP
41B6: BD 42 3B 03645    LDA RELD,X
41B9: C9 01    03650    CMP #$Ol
41BB: DO 08    03655    BNE PP
41BD: EE 78 3B 03660    INC NUM
41CO: A9 01    03665    LDA #$Ol
41C2: 9D 52 3B 03670    STA MFLAGD,X

               03675 *IF MATCH CAUSES PLAYER TO REVERSE PREVENT IT

41C5: BD 65 3B 03680 PP        LDA DL,X
41C8: FO 10    03685    BEQ .42
41CA: BD 4A 3B 03690    LDA MFLAGR,X
41CD: FO OB    03695    BEQ .42
41CF: A9 00    03700    LDA #$00
41DI: 9D 4A 3B 03705    STA MFLAGR,X
41D4: CE 78 3B 03710        DEC NUM
41D7: 4C 16 42 03715        JMP .5
41DA: BD 69 3B 03720 .42        LDA DR,X
41DD: FO 10    03725    BEQ .43
41DF: BD 46 3B 03730        LDA MFLAGL,X
41E2: FO OB    03735    BEQ .43
41E4: A9 00    03740    LDA #$00
41E6: 9D 46 3B 03745        STA MFLAGL,X

41E9: CE 78 3B 03750        DEC NUM
41EC: 4C 16 42 03755        JMP .5
41EF: BD 6D 3B 03760 .43        LDA DU,X
41F2: FO 10    03765    BEQ .44
41F4: BD 52 3B 03770        LDA MFLAGD,X
41F7: FO OB    03775    BEQ .44
41F9: A9 00    03780    LDA #$00
41FB: 9D 52 3B 03785        STA MFLAGD,X
41FE: CE 78 3B 03790        DEC NUM
4201: 4C 16 42 03795        J14P .5
4204: BD 71 3B 03800 .44        LDA DD,X
4207: FO OD    03805    BEQ .5
4209: BD 4E 3B 03810        LDA MFLAGU,X
420C: FO 08    03815    BEQ .5
420E: A9 00    03820    LDA #$00
4210: 9D 4E 3B 03825        STA MFLAGU,X
4213: CE 78 3B 03830        DEC NUM

               03835 *IF TWO MATCHES THEN CHOOSE A DIRECTION RANDOMILY

4216: AD 78 3B 03840 .5    LDA NUM    THEN MOVE IN DIRECTION
4219: DO 06    03845    BNE .55
421B: 20 8D 46 03850        JSR CORECT
421E: 4C AO 42 03855        JMP EE
4221: AD 78 3B 03860 .55        LDA NUM
4224: C9 01    03865    CMP #$Ol
4226: FO 07    03870    BEQ .6
4228: AD OA D2 03875        LDA RANDOM
422B: C9 50    03880    CMP #80
422D: 90 3A    03885    BLT .8
422F: BD 46 3B 03890 .6        LDA MFLAGL,X
4232: C9 01    03895    CMP #$ol
4234: DO 16    03900    BNE .7
4236: A9 01    03905    LDA #$01
4238: 9D 65 3B 03910        STA DL,X
423B: A9 00    03915    LDA #$00
423D: 9D 71 3B 03920        STA DD,X
4240: 9D 69 3B 03925        STA DR,X
4243: 9D 6D 3B 03930        STA DU,X
4246: DE 15 3B 03935        DEC X,X
4249: 4C AO 42 03940        JMP EE
424C: BD 4A 3B 03945 .7        LDA MFLAGR,X
424F: C9 01    03950    CMP #$ol
4251: DO 16    03955    BNE .8
4253: A9 01    03960    LDA #$01
4255: 9D 69 3B 03965        STA DR,X
4258: A9 00    03970    LDA #$00
425A: 9D 65 3B 03975        STA DL,X
425D: 9D 6D 3B 03980        STA DU,X
4260: 9D 71 3B 03985        STA DD,X
4263: FE 15 3B 03990        INC X,X
4266: 4C AO 42 03995        JMP EE
4269: BD 4E 3B 04000 .8        LDA MFLAGU,X
426C: C9 01    04005    CMP #$Ol
426E: DO 16    04010    BNE .9
4270: A9 01    04015    LDA #$Ol
4272: 9D 6D 3B 04020    STA DU,X
4275: A9 00    04025    LDA #$00
4277: 9D 65 3B 04030    STA DL,X
427A: 9D 69 3B 04035        STA DR,X
427D: 9D 71 3B 04040        STA DD,X
4280: DE IA 3B 04045        DEC Y,X
4283: 4C AO 42 04050        JMP EE
4286: BD 52 3B 04055 .9        LDA MFLAGD,X

4289: C9 01    04060    CMP #$Ol
428B: DO 13    04065    BNE EE
428D: A9 01    04070    LDA #$Ol
428F: 9D 71 3B 04075    STA DD,X
4292: A9 00    04080    LDA #$00
4294: 9D 6D 3B 04085    STA DU,X
4297: 9D 65 3B 04090    STA DL,X
429A: 9D 69 3B 04095    STA DR,X
429D: FE IA 3B 04100    INC Y,X
42AO: 60       04105 EE    RTS

               04110 *VBLANK ROUTINE

42AI: EA       04115 FRAME    NOP
42A2: AD FC 02 04120 PAUSEI    LDA $2FC    ;KEY PRESSED?
42A5: C9 FF    04125    CMP OFF
42A7: FO 25    04130    BEQ .2
42A9: C9 21    04135    CMP 021    ;SPACE BAR?
42AB: DO 2B    04140    BNE .3
42AD: AD 79 3B 04145    LDA PAUSE    ;PAUSE=I?
42BO: C9 01    04150    CMP #$Ol
42B2: FO OD    04155    BEQ .1
42B4: A9 01    04160    LDA #$Ol    ;NOT PAUSED-THEN SET PAUSE
42B6: 8D 79 3B 04165    STA PAUSE
42B9: A9 FF    04170    LDA #$FF
42BB: 8D FC 02 04175    STA $2FC
42BE: 4C 62 E4 04180    JMP XITVBK
42CI: A9 00    04185 .1    LDA 000    ;PAUSED-THEN RELEASE PAUSE
42C3: 8D 79 3B 04190    STA PAUSE
42C6: A9 FF    04195    LDA #$FF.
42C8: 8D FC 02 04200    STA $2FC
42CB: 4C D8 42 04205    JMP .3
42CE: AD 79 3B 04210 .2    LDA PAUSE    ;PAUSED?
42DI: C9 01    04215    CMP #$Ol
42D3: DO 03    04220    BNE .3
42D5: 4C 62 E4 04225    JMP XITVBK
42D8: A9 01    04230 .3    LDA #01
42DA: 8D 76 3B 04235    STA VBFLAG
42DD: A2 00    04240    LDX #$00
42DF: 20 50 44 04245    JSR LEGAL

               04250 *READ JOYSTICK

42E2: AD 78 02 04255        LDA STICK    ;JOYSTICK CENTERED?
42E5: C9 OF    04260    CMP #$OF
42E7: DO 06    04265    BNE DUR
42E9: 20 32 45 04270        JSR AUTO    ;IF STICK NOT TOUCHED CONTINUE IN SAME DIR
42EC: 4C 43 44 04275    JMP STAY
42EF: AD 78 02 04280 DUR        LDA STICK    ;TEST DIAGONAL UP&RT
42F2: C9 06    04285    CMP #$06
42F4: DO IB    04290    BNE DDR
42F6: AD 69 3B 04295        LDA DR
42F9: FO 03    04300    BEQ .01
42FB: 4C El 43 04305        JMP CHKUP
42FE: AD 6D 3B 04310 .01        LDA DU
4301: DO 06    04315    BNE .02
4303: 20 32 45 04320        JSR AUTO
4306: 4C 43 44 04325        JMP STAY
4309: A9 01    04330 .02    LDA #$Ol    ;SET TO RT ONLY
430B: 8D 75 3B 04335        STA INHIBIT
430E: 4C 77 43 04340        JMP CHKRT
4311: AD 78 02 04345 DDR        LDA STICK    ;TEST DIAGONAL DOWN&RT
4314: C9 05    04350    CMP 005
4316: DO IB    04355    BNE DUL
4318: AD 69 3B 04360        LDA DR

431B: FO 03    04365    BEQ .03
431D: 4C 12 44 04370        JMP CHKDN
4320: AD 71 3B 04375 .03        LDA DD
4323: DO 06    04380    BNE .04
4325: 20 32 45 04385        JSR AUTO
4328: 4C 43 44 04390        JMP STAY
432B: A9 01    04395 .04    LDA #$Ol    ;SET TO RT ONLY
432D: 8D 75 3B 04400        STA INHIBIT
4330: 4C 77 43 04405        JMP CHKRT
4333: AD 78 02 04410 DUL        LDA STICK    ;TEST DIAGONAL UP&LEFT
4336: C9 OA    04415    CMP #$OA
4338: DO 1B    04420    BNE DDL
433A: AD 65 3B 04425        IDA DL
433D: FO 03    04430    BEQ .05
433F: 4C El 43 04435        JMP CHKUP
4342: AD 6D 3B 04440 .05        LDA DU
4345: DO 06    04445    BNE .06
4347: 20 32 45 04450        JSR AUTO
434A: 4C 43 44 04455        JMP STAY
434D: A9 01    04460 .06    LDA #$Ol    ;SET TO LEFT ONLY
434F: 8D 75 3B 04465    STA INHIBIT
4352: 4C A8 43 04470        JMP CHKLF
4355: AD 78 02 04475 DDL        IDA STICK    ;TEST DIAGONAL DOWN&LEFT
4358: C9 09    04480    CMP #$09
435A: DO IB    04485    BNE CHKRT
435C; AD 65 3B 04490        IDA DL
435F: FO 03    04495    BEQ .07
4361: 4C 12 44 04500        JMP CHKDN
4364: AD 71 3B 04505 .07        LDA DD
4367: DO 06    04510    BNE .08
4369: 20 32 45 04515        JSR AUTO
436C: 4C 43 44 04520        JMP STAY
436F: A9 01    04525 .08    LDA #$Ol    ;SET TO LEFT ONLY
4371: 8D 75 3B 04530        STA INHIBIT
4374: 4C A8 43 04535        JMP CHKLF
4377: AD 78 02 04540 CHKRT        LDA STICK
437A: 29 08    04545    AND #$08    ;RT BIT?
437C: DO 2A    04550    BNE CHKLF
437E: AD 2A 3B 04555    IDA FLAGR
4381: FO 06    04560    BEQ .2
4383: 20 32 45 04565        JSR AUTO
4386: 4C 43 44 04570        JMP STAY
4389: A9 00    04575 .2    LDA #$00
438B: 8D 65 3B 04580    STA DL    ;SHUT OFF AUTO FLAGS
438E: 8D 6D 3B 04585    STA DU
4391: 8D 71 3B 04590        STA DD
4394: 8D 26 3B 04595    STA FLAGL    ;RESET LEGAL FLAGS-ONLY CAN TRAVEL
4397: A9 01    04600    LDA #$Ol        IBETWEEN TWO BLOCKS
4399: 8D 2E 3B 04605        STA FLAGU
439C: 8D 32 3B 04610    STA FLAGD
439F: 8D 69 3B 04615        STA, DR    ;TURN ON AUT014ATIC FLAG
43A2: EE 14 3B 04620        INC XO    ;XO--XG+l
43A5: EE 15 3B 04625        INC X
43A8: AD 78 02 04630 CHKLF        LDA STICK
43AB: 29 04    04635    AND #$04    ;LEFT BIT
43AD: DO 2A    04640    BNE QIK
43AF: AD 26 3B 04645        LDA FLAGL
43B2: FO 06    04650    BEQ .3
43B4: 20 32 45 04655        JSR AUTO
43B7: 4C 43 44 04660        JMP STAY
43BA: A9 00    04665 .3    LDA #$00
43BC: 8D 69 3B 04670        STA DR
43BF: 8D 6D 3B 04675    STA DU
43C2: 8D 71 3B 04680    STA DD
43C5: 8D 2A 3B 04685    STA FLAGR
43C8: A9 01    04690    LDA #$Ol
43CA: 8D 2E 3B 04695    STA FLAGU
43CD: 8D 32 3B 04700    STA FLAGD
43DO: 8D 65 3B 04705    STA DL
43D3: CE 14 3B 04710    DEC XO    ;XO-XO-l
43D6: CE 15 3B 04715    DEC X

43D9: AD 75 3B 04720 CHK    LDA INHIBIT ;THIS PREVENTS GETTING BOTH DIRECTIONS

43DC: FO 03    04725    BEQ CHKUP        ON DIAGONAL
43DE: 4C 43 44 04730    JMP STAY
43El: AD 78 02 04735 CRKUP        LDA STICK
43E4: 29 01    04740    AND #$Ol    ;UP BIT?
43E6: DO 2A    04745    BNE CHKDN
43E8: AD 2E 3B 04750        LDA FLAGU
43EB: FO 06    04755    BEQ .4
43ED: 20 32 45 04760        JSR AUTO
43FO: 4C 43 44 04765        JMP STAY
43F3: A9 00    04770 .4    LDA #$00
43F5: 8D 71 3B 04775        STA DD
43F8: 8D 69 3B 04780        STA DR
43FB: 8D 65 3B 04785    STA DL
43FE: 8D 32 3B 04790        STA FLAGD
4401: A9 01    04795    LDA #$Ol
4403: 8D 26 3B 04800        STA FLAGL
4406: 8D 4A 3B 04805        STA FLAGR
4409: 8D 6D 3B 04810        STA DU
440C: CE 19 3B 04815        DEC YO    ;YO--YO-l
440F: CE 1A 3B 04820        DEC Y
4412: AD 78 02 04825 CHKDN        LDA STICK
4415: 29 02    04830    AND #$02
4417: DO 2A    04835    BNE STAY
4419: AD 32 3B 04840    LDA FLAGD
441C: FO 06    04845    BEQ .5
441E: 20 32 45 04850        JSR AUTO
4421: 4C 43 44 04855    JMP STAY
4424: A9 00    04860 .5    LDA #$00
4426: 8D 6D 3B 04865        STA DU
4429: 8D 69 3B 04870        STA DR
442C: 8D 65 3B 04875    STA DL
442F: 8D 2E 3B 04880        STA FLAGU
4432: A9 01    04885    LDA #$Ol
4434: 8D 26 3B 04890        STA FLAGL
4437; 8D 2A 3B 04895    STA FLAGR
443A: 8D 71 3B 04900    STA DD
443D: EE 19 3B 04905        INC YO    ;YO-YO+l
4440: EE 1A 3B 04910        INC Y
4443: A9 00    04915 STAY    LDA #$00
4445: 8D 75 3B 04920        STA INHIBIT
4448: A2 00    04925    LDX #$00

444A: 20 FE 44 04930    JSR PLOTSETO
444D: 4C 62 E4 04935    JMP XITVBK

               04940 *SUBROUTINE-TEST FOR LEGAL MOVES
               04945 *INPUT X,Y PLAYER POSITION; X REG PLAYER
               04950 *OUTPUT FLAGL,X;FLAGR,X;FLACU,X;FLAGD,X-0-OPEN,1-CLOSE

4450: A9 00    04955 LEGAL    LDA #$00
4452: 8D 77 3B 04960    STA LFLAG
4455: BD 15 3B 04965    LDA X,X    ;PLAYER HOR POSITION
4458: 38       04970    SEC
4459: E9 30    04975    SBC #$30    ;SUBTRACT 48
445B: 8D 56 3B 04980    STA TEMPX

445E: 4A       04985    LSR    ;DIVIDE BY 8

445F: 4A       04990    LSR
4460: 4A       04995    LSR
4461: 9D IE 3B 05000    STA XB,X
4464: BD IA 3B 05005    LDA Yj    ;PLAYER VERT POSITION
4467: 38       05010    SEC
4468: E9 24    05015    SBC #$24    ;SUBTRACT 36
446A: 8D 57 3B 05020    STA TEMPY
446D: 4A       05025    LSR    ;DIVIDE BY 16
446E: 4A       05030    LSR
446F: 4A       05035    LSR
4470: 4A       05040    LSR
4471: 9D 22 3B 05045    STA YB,X
               05050 *TEST IF    AT CENTER OF BLOCK
4474: AD 57 3B 05055    LDA TEMPY
4477: 29 OF    05060    AND #$OF    ;TEST AGAINST FIRST 4 BITS-ONLY MULTIPLE
4479: DO 61    05065    BNE DONE        ~OF 16 @CENTER
447B: AD 56 3B 05070    LDA TEMPX
447E: 29 07    05075    AND #$07    ;TEST AGAINST FIRST 3 BITS-ONLY MULTIPLE
4480: DO 5A    05080    BNE DONE            \OF 8 @CENTER
4482: A9 01    05085    LDA #$Ol
4484: 8D 77 3B 05090    STA LFLAG

               05095 *AT CENTER-TEST&RESET LEGAL MOVE FLAGS

               05100 *BLOCK=(YB*20)+XB
4487: A9 00    05105    LDA #$00

4489: BC 22 3B 05110    LDY YB,X

448C: CO 00    05115    CPY #$00    ;IF 0 SKIP ADD & DECREMENT
448E: FO 08    05120    BEQ .5
4490: 18       05125 .1    CLC
4491: 69 14    05130    ADC 014
4493: 88       05135    DEY
4494: CO 00    05140    CPY 000
4496: DO F8    05145    BNE .1
4498: 18       05150 .5    CLC

4499: 7D 1E 3B 05155    ADC XB,X
449C: 8D 60 3B 05160    STA BLOCK
449F: A9 00    05165    LDA #$00    ;OPEN ALL FLAGS FOR PLAYER
44Al: 9D 26 3B 05170    STA FLAGL,X
44A4: 9D 2A 3B 05175    STA FLAGR,X
44A7: 9D 2E 3B 05180    STA FLAGU,X
44AA: 9D 32 3B 05185    STA FLAGD,X

               05190 *TEST BLOCK MAN IN FOR LEGAL MOVES

44AD: AC 60 3B 05195    LDY BLOCK
44BO: Bl F8    05200    LDA (MAPL),Y
44B2: 29 01    05205    AND #$Ol
44B4: FO 05    05210    BEQ .2
44B6: A9 01    05215    LDA #$Ol
44B8: 9D 26 3B 05220    STA FLAGL,X
44BB: Bl F8    05225 .2    LDA (MAPL),Y
44BD: 29 02    05230    AND #$02
44BF: FO 05    05235    BEQ .3
44CI: A9 01    05240    LDA #$Ol
44C3: 9D 2A 3B 05245    STA FLAGR,X
44C6: BI F8    05250 .3    LDA (MAPL),Y
44C8: 29 04    05255    AND #$04
44CA: FO 05    05260    BEQ .4
44CC: A9 01    05265    LDA #$Ol
44CE: 9D 2E 3B 05270    STA FLAGU,X
44DI: BI F8    05275 .4    LDA (MAPL),Y
44D3: 29 08    05280    AND #$08
44D5: FO 05    05285    BEQ DONE
44D7: A9 01    05290    LDA #$Ol
44D9: 9D 32 3B 05295    STA FLAGD,X

44DC: 60       05300 DONE    RTS
               05305 *PUT SHAPE IN P/M AREA

44DD: AO 00    05310 PLOT    LDY #$00    ;COUNTER
44DF: A9 00    05315    LDA #$00    ;NEED 0 TO ERASE EACH TIME
44El: 91 F4    05320 .1    STA (SHPMOL),Y;ERASE OLD SHAPE FIRST
44E3: C8       05325    INY
44E4: CO 08    05330    CPY #$08
44E6: 90 F9    05335    BLT .1
44E8: AO 00    05340    LDY #$00

44EA: Bl FO    05345 .2    LDA (SHPL),Y;GET BYTE FROM PROPER SHAPE TABLE
44EC: 91 F2    05350    STA (SHPML),Y ;PUT IN P/M AREA
44EE: C8       05355    INY
44EF: CO 08    05360    CPY #$08
44Fl: 90 F7    05365    BLT .2
44F3: A5 F2    05370    LDA SHPML;TRANSFER NEW P/M POS TO OLD POS

44F5: 9D 58 3B 05375    STA TEMPL,X
44F8: A5 F3    05380    LDA SHPMH
44FA: 9D 5C 3B 05385    STA TEMPH,X
44FD: 60       05390    RTS

               05395 *SUBROUTINE PLOTSETO

44FE: AD 14 3B 05400 PLOTSETO    LDA XO
4501: 8D 15 3B 05405    STA X
4504: 8D 00 DO 05410    STA HPOSPO
4507: AD 19 3B 05415    LDA YO
450A: 8D IA 3B 05420    STA Y

450D: 85 F2    05425    STA SHPML
450F: A9 88    05430    LDA /PDATA
4511: 18       05435    CLC
4512: 69 04    05440    ADC #$04    ;PLAYER IS 1K BEYOND START
4514: 85 F3    05445    STA SHPMH

4516: AC 61 3B 05450    LDY POINTO

4519: B9 7E 3B 05455    LDA SHPLO,Y ;POINTER TO CORRECT SHAPE
451C: 85 FO    05460    STA SHPL
451E: A9 3C    05465    LDA /SHAPES
4520: 85 Fl    05470    STA SHPH
4522: A2 00    05475    LDX #$00
4524: BD 58 3B 05480    LDA TEMPL,X

4527: 85 F4    05485    STA SHPMOL
4529: BD 5C 3B 05490    LDA TEMPH,X
452C: 85 F5    05495    STA SHPMOH
452E: 20 DD 44  05500    JSR PLOT
4531: 60       05505    RTS

               05510 *CONTINUE MOVING IN LAST DIR UNLESS HIT WALL

               05515 *AUTO ON - #1

4532: AD 69 3B 05520 AUTO    LDA DR

4535: C9 01    05525    CMP #$Ol
4537: DO IA    05530    BNE .1
4539: AD 2A 3B 05535    LDA FLAGR
453C: C9 00    05540    CMP #$00
453E: DO 73    05545    BNE .4
4540: A9 00    05550    LDA #$00

4542: 8D 26 3B 05555        STA FLAGL
4545: A9 01    05560    LDA #$Ol
4547: 8D 2E 3B 05565        STA FLAGU
454A: 8D 32 3B 05570        STA FLAGD
454D: EE 14 3B 05575        INC XO
4550: 4C B3 45 05580        JMP .4
4553: AD 65 3B 05585 .1        LDA DL
4556: C9 01    05590    CMP #$01
4558: DO 1A    05595    BNE .2

455A: AD 26 3B 05600    LDA FLAGL

455D: C9 00    05605    CMP #$00
455F: DO 52    05610    BNE .4
4561: A9 00    05615    LDA #$00
4563: 8D 2A 3B 05620    STA FLAGR
4566: A9 01    05625    LDA #$Ol
4568: 8D 2E 3B 05630    STA FLAGU
456B: 8D 32 3B 05635    STA FLAGD
456E: CE 14 3B 05640    DEC XO
4571: 4C B3 45 05645    JMP .4
4574: AD 6D 3B 05650 .2    LDA DU
4577: C9 01    05655    CMP #$Ol

4579: DO 1A    05660    BNE .3
457B: AD 2E 3B 05665    LDA FLAGU
457E: C9 00    05670    CMP #$00
4580: DO 31    05675    BNE .4
4582: A9 00    05680    LDA #$00

4584: 8D 32 3B 05685    STA FLAGD
4587: A9 01    05690    LDA #$Ol
4589: 8D 2A 3B 05695    STA FLAGR
458C: 8D 26 3B 05700    STA FLAGL
458F: CE 19 3B 05705    DEC YO
4592: 4C B3 45 05710    JMP .4
4595: AD 71 3B 05715 .3    LDA DD
4598: C9 01    05720    CMP #$Ol
459A: DO 17    05725    BNE .4
459C: AD 32 3B 05730    LDA FLAGD
459F: C9 00    05735    CMP #$00
45Al: DO 10    05740    BNE .4
45A3: A9 00    05745    LDA #$00
45A5: 8D 2E 3B 05750    STA FLACU
45A8: A9 01    05755    LDA #$Ol

45AA: 8D 2A 3B 05760    STA FLAGR
45AD: 8D 26 3B 05765    STA FLAGL
45BO: EE 19 3B 05770    INC YO

45B3: EA       05775 .4    NOP
45B4: 60       05780    RTS

               05785 *AUTO CODE FOR PLAYERS 1,2 & 3
               05790 *NEEDS PLAYER # IN X-REGISTER
               05795 *CODE DOESN'T REQUIRE LATCHES SINCE JOYSTICK CAN'T SEND

45B5: BD 69 3B 05800 AUTOP    LDA DR,X    MHOSE PLAYERS ORDERS

45B8: C9 01    05805    CMP #$Ol
45BA: DO OD    05810    BNE .1
45BC: BD 2A 3B 05815    LDA FLAGR,X
45BF: C9 00    05820    CMP #$00
45CI: DO 3F    05825    BNE .4
45C3: FE 15 3B 05830    INC X,X
45C6: 4C 02 46 05835    JMP .4
45C9: BD 65 3B 05840 .1    LDA DL,X
45CC: C9 01    05845    CMP #$Ol
45CE: DO OD    05850    BNE .2
45DO: BD 26 3B 05855    LDA FLAGL,X
45D3: C9 00    05860    CMP #$00
45D5: DO 2B    05865    BNE .4

45D7: DE 15 3B 05870        DEC X,X
45DA: 4C 02 46 05875        JMP .4
45DD: BD 6D 3B 05880 .2        LDA DU,X
45EO: C9 01    05885    CMP #$Ol
45E2: DO OD    05890    BNE .3
45E4: BD 2E 3B 05895        LDA FLAGU,X

45E7: C9 00    05900    CMP #$00
45E9: DO 17    05905    BNE .4
45EB: DE 1A 3B 05910    DEC Y,X

45EE: 4C 02 46 05915    JMP.4

45FI: BD 71 3B 05920 .3    LDA DD,X
45F4: C9 01    05925    CMP #$Ol
45F6: DO OA    05930    BNE .4
45F8: BD 32 3B 05935    LDA FLAGD,X
45FB: C9 00    05940    CMP #$00
45FD: DO 03    05945    BNE .4
45FF: FE 1A 3B 05950    INC Y,X
4602: 60       05955 .4    RTS
               05960 *SUBROUTINE PLOTSET1
4603: BD 15 3B 05965 PLOTSETI    LDA X,X
4606: 8D 01 DO 05970    STA HPOSPI
4609: BD IA 3B 05975    LDA Y,X

460C: 85 F2    05980    STA SHPML
460E: A9 88    05985    LDA /PDATA
4610: 18       05990    CLC
4611: 69 05    05995    ADC #$05    ;PLAYER IS 1.25K BEYOND START
4613: 85 F3    06000    STA SHPMH

4615: AC 62 3B 06005    LDY POINT1
4618: B9 7E 3B 06010    LDA SHPLO,Y ;POINTER TO CORRECT SHAPE
461B: 85 FO    06015    STA SHPL
461D: A9 3C    06020    LDA /SHAPES
461F: 85 Fl    06025    STA SHPH
4621: A2 01    06030    LDX #$Ol
4623: BD 58 3B 06035    LDA TEKPL,X
4626: 85 F4    06040    STA SHPMOL
4628: BD 5C 3B 06045    LDA TEMPH,X
462B: 85 F5    06050    STA SHPMOH
462D: 20 DD 44 06055    JSR PLOT
4630: 60       06060    RTS
               06065 *SUBROUTINE PLOTSET2
4631: BD 15 3B 06070 PLOTSET2    LDA X,X
4634: 8D 02 DO 06075    STA HPOSP2
4637: BD 1A 3B 06080    LDA Y,X

463A: 85 F2    06085    STA SHPML
463C: A9 88    06090    LDA /PDATA
463E: 18       06095    CLC
463F: 69 06    06100    ADC #$06    ;PLAYER IS 1.5K BEYOND START
4641: 85 F3    06105    STA SHPMH

4643: AC 63 3B 06110    LDY POINT2
4646: B9 7E 3B 06115    LDA SHPLO,Y ;POINTER TO CORRECT SHAPE
4649: 85 FO    06120    STA SHPL
464B: A9 3C    06125    LDA /SHAPES
464D: 85 Fl    06130    STA SHPH
464F: A2 02    06135    LDX #$02
4651: BD 58 3B 06140    LDA TEt4PL,X
4654: 85 F4    06145    STA SHPMOL
4656: BD 5C 3B 06150    LDA TEMPH,X
4659: 85 F5    06155    STA SHPMOH
465B: 20 DD 44 06160    JSR PLOT
465E: 60       06165    RTS
               06170 *SUBROUTINE PLOTSET3
465F: BD 15 3B 06175 PLOTSET3    LDA X,X
4662: 8D 03 DO 06180    STA HPOSP3
4665: BD 1A 3B 06185    LDA Y,X

4668: 85 F2    06190    STA SHPML
466A: A9 88    06195    LDA /PDATA
466C: 18       06200    CLC
466D: 69 07    06205    ADC #$07    ;PLAYER IS 1.75K BEYOND START
466F: 85 F3    06210    STA SHPMH

4671: AC 64 3B 06215    LDY POINT3
4674; B9 7E 3B 06220    LDA SHPLO,Y ;POINTER TO CORRECT SHAPE

4677: 85 FO    06225    STA SHPL

4679: A9 3C    06230    LDA /SHAPES
467B: 85 Fl    06235    STA SHPH
467D: A2 03    06240    LDX #$03
467F: BD 58 3B 06245    LDA TEMPL,X
4682: 85 F4    06250    STA SHPMOL
4684: BD 5C 3B 06255        LDA TEMPH,X
4687: 85 F5    06260    STA SHPMOH
4689: 20 DD 44 06265        JSR PLOT
468C: 60       06270    RTS
468D: BD 69 3B 06275 CORECT        LDA DR,X
4690: FO 35    06280    BEQ .2
4692: BD 2A 3B 06285 .11        LDA FLAGR,X
4695: DO 06    06290    BNE .12
4697: 20 B5 45 06295        JSR ATJTOP
469A: 4C 79 47 06300        JMP FF
469D: BD 2E 3B 06305 .12        LDA FLAGU,X
46AO. DO 10    06310    BNE .13
46A2: DE 1A 3B 06315        DEC Yj
46A5: A9 00    06320    LDA #$00
46A7: 9D 69 3B 06325        STA DR,X
46AA: A9 01    06330    LDA #$Ol
46AC: 9D 6D 3B 06335        STA DU,X
46AF: 4C 79 47 06340        JMP FF
46B2: BD 32 3B 06345 .13        LDA FLAGD,X
46B5: DO OD    06350    BNE .14
46B7: FE 1A 3B 06355        INC Yj
46BA: A9 00    06360    LDA #$00
46BC: 9D 69 3B 06365        STA DR,X
46BF: A9 01    06370    LDA #$Ol
46Cl: 9D 71 3B 06375        STA DD,X
46C4: 4C 79 47 06380 .14        JMP FF
46C7: BD 65 3B 06385 .2        LDA DL,X
46CA: FO 35    06390    BEQ .3
46CC: BD 26 3B 06395 .21    LDA FLAGL,X
46CF: DO 06    06400    BNE .22
46Dl: 20 B5 45 06405        JSR AUTOP
46D4: 4C 79 47 06410        JMP FF
46D7: BD 2E 3B 06415 .22    LDA FLAGU,X
46DA: DO 10    06420    BNE .23
46DC: DE 1A 3B 06425        DEC Yj
46DF: A9 00    06430    LDA #$00
46EI: 9D 65 3B 06435        STA DL,X
46E4: A9 01    06440    LDA #$Ol
46E6: 9D 6D 3B 06445        STA DU,X
46E9: 4C 79 47 06450    JMP FF
46EC: BD 2A 3B 06455 .23        LDA FLAGR,X
46EF: DO OD    06460    BNE .24
46FI: FE IA 3B 06465        INC Y,X
46F4: A9 00    06470    LDA #$00
46F6: 9D 65 3B 06475        STA DL,X
46F9: A9 01    06480    LDA #$Ol
46FB: 9D 71 3B 06485    STA DD,X
46FE: 4C 79 47 06490 .24        JMP FF
4701: BD 6D 3B 06495 .3        LDA DU,X
4704: FO 37    06500    BEQ .4
4706: BD 2E 3B 06505 .31        LDA FLAGU,X
4709: DO 06    06510    BNE .32
470B: 20 B5 45 06515        JSR AUTOP
470E: 4C 79 47 06520    JMP FF
4711: BD 26 3B 06525 .32    LDA FLAGL,X
4714: DO 10    06530    BNE .33
4716: DE 15 3B 06535    DEC X,X
4719: A9 00    06540    LDA #$00
471B: 9D 6D 3B 06545    STA DV,X
471E: A9 01    06550    LDA #$Ol
4720: 9D 65 3B 06555    STA DL,X
4723: 4C 79 47 06560    JMP FF
4726: BD 2A 3B 06565 .33    LDA FLAGR,X
4729: C9 01    06570    CHP #$Ol
472B: FO OD    06575    BEQ .34
472D: FE 15 3B 06580    INC X,X
4730: A9 00    06585    LDA #$00
4732: 9D 6D 3B 06590    STA DU,X
4735: A9 01    06595    LDA #$Ol
4737: 9D 69 3B 06600    STA DR,X
473A: 4C 79 47 06605 .34    JHP FF
473D: BD 71 3B 06610 .4    LDA DD,X
4740: DO 03    06615    BNE .41
4742; 4C 79 47 06620    JMP FF
4745: BD 32 3B 06625 .41    LDA FLAGD,X
4748: DO 06    06630    BNE .42
474A: 20 B5 45 06635    JSR AUTOP
474D: 4C 79 47 06640    JMP FF
4750: BD 26 3B 06645 .42    LDA FLAGL,X
4753: DO 10    06650    BNE .43
4755: DE 15 3B 06655    DEC X,X
4758: A9 00    06660    LDA #$00
475A: 9D 71 3B 06665    STA DD,X
475D: A9 01    06670    LDA #$Ol
475F: 9D 65 3B 06675    STA DL,X
4762; 4C 79 47 06680    JMP FF
4765: BD 2A 3B 06685 .43    LDA FLAGR,X
4768: C9 01    06690    CMP #$Ol
476A: FO OD    06695    BEQ FF
476C: FE 15 3B 06700    INC X,X
476F: A9 00    06705    LDA #$00
4771: 9D 71 3B 06710    STA DD,X
4774: A9 01    06715    LDA #$Ol
4776; 9D 69 3B 06720    STA DR,X
4779: 60       06725 FF    RTS
477A: AD 1E 3B 06730 PLACE    LDA XB    ;PLAYER#O ON LEFT SIDE SCREEN?
477D: C9 OA    06735    CMP #$OA
477F: BO 5C    06740    BGE .3
4781: AD 22 3B 06745    LDA YB    ;PLAYER #0 ON TOP HALF SCREEN?
4784: C9 06    06750    CMP #$06
4786: BO 35    06755    BGE .2
4788: A9 B8    06760    LDA #$B8    ;PUT PLAYER AT BLOCK 17,7 (164,148)
478A: 99 15 3B 06765    STA X,Y
478D: A9 94    06770    LDA #$94
478F: 99 1A 3B 06775    STA Yj
4792: A9 00    06780    LDA #$00
4794: 99 6D 3B 06785    STA DU,Y
4797: 99 71 3B 06790    STA DD,Y
479A: 99 69 3B 06795    STA DR,Y
479D: 99 65 3B 06800    STA DL,Y
47AO: AD OA D2 06805    LDA RANDOM ;VARY THE START LEFT OR RT
47A3: C9 80    06810    CMP #$80
47A5: 90 OB    06815    BLT .15
47A7: A9 01    06820    LDA #$Ol
47A9: 99 69 3B 06825    STA DR,Y
47AC: 99 32 3B 06830    STA FLAGD,Y
47AF: 4C 30 48 06835    JMP EXIT
47B2: A9 01    06840 .15    LDA #$01
47B4: 99 65 3B 06845    STA DL,Y

47B7: 99 32 3B 06850        STA FLAGD,Y
47BA: 4C 30 48 06855        JMP EXIT
47BD: A9 A8    06860 .2    LDA #$A8    ;PUT PLAYER AT BLOCK 15,2 (168,68)
47BF: 99 15 3B 06865        STA X,Y
47C2: A9 44    06870    LDA #$44
47C4: 99 1A 3B 06875        STA Yj
47C7: A9 00    06880    LDA #$00
47C9: 99 6D 3B 06885        STA DU,Y
47CC: 99 69 3B 06890        STA DR,Y
47CF: 99 65 3B 06895        STA DL,Y
47D2: A9 01    06900    LDA #$01
47D4: 99 71 3B 06905        STA DD,Y
47D7: 99 2A 3B 06910        STA FLAGR,Y
47DA: 4C 30 48 06915        JMP EXIT
47DD: AD 22 3B 06920 .3        LDA YB    ;IS PLAYER ON TOP HALF SCREEN?
47EO: C9 06    06925    CMP #$06
47E2: BO 32    06930    BGE .4
47E4: A9 40    06935    LDA #$40    ;PUT PLAYER AT BLOCK 2,7 (64,148)
47E6: 99 15 3B 06940    STA X,Y
47E9: A9 94    06945    LDA #$94
47EB: 99 1A 3B 06950        STA Yj
47EE: A9 00    06955    LDA #$00
47FO: 99 6D 3B 06960        STA DU,Y
47F3: 99 71 3B 06965        STA DD,Y
47F6: 99 65 3B 06970        STA DL,Y
47F9: 99 69 3B 06975        STA DR,Y
47FC: AD OA D2 06980        LDA RANDOM    ;VARY THE START LEFT OR RT
47FF: C9 80    06985    CMP #$80
4801: 90 08    06990    BLT .35
4803: A9 01    06995    LDA #$Ol
4805: 99 65 3B 07000    STA DL,Y
4808: 4C 30 48 07005        JMP EXIT
480B: A9 01    07010 .35    LDA #$Ol
480D: 99 69 3B 07015        STA DR,Y
4810: 99 32 3B 07020        STA FLAGD,Y
4813: 4C 30 48 07025        JMP EXIT
4816: A9 50    07030 .4    LDA #$50    ;PUT PLAYER AT BLOCK 4,2 (80,68)
4818: 99 15 3B 07035        STA X,Y
481B: A9 44    07040    LDA #$44
48ID: 99 IA 3B 07045        STA Yj
4820: A9 00    07050    LDA #$00
4822: 99 65 3B 07055        STA DL,Y
4825: 99 69 3B 07060        STA DR,Y
4828: 99 6D 3B 07065        STA DU,Y
482B: A9 01    07070    LDA #$Ol
482D: 99 71 3B 07075        STA DD,Y

4830: 60       07080 EXIT    RTS
