
               00010 *SPACE WAR GAME - BY JEFFREY STANTON
               00020    ORG $4000
               00030 *ZERO PAGE EQUATES
00F0:          00040 SHPL    EQ $F0
00F1:          00050 SHPH    EQ $F1
00F2:          00060 SHPML    EQ $F2
00F3:          00070 SHPMH    EQ $F3
00F4:          00080 SHPMOL    EQ $F4
00F5:          00090 SHPMOH    EQ $F5
00F6:          00100 SL    EQ $F6
00F7:          00110 SH    EQ $F7
               00120 *PLAYER MISSILE EQUATES
D407:          00130 PMBASE    EQ $D407
8800:          00140 PDATA    EQ $8800
D01D:          00150 GRACTL    EQ $D01D
022F:          00160 DMACTL    EQ $22F
D008:          00170 SIZEPO    EQ $D008
D009:          00180 SIZEPI    EQ $D009
02C0:          00190 COLPMO    EQ $2C0
02C1:          00200 COLPM1    EQ $2CI
D000:          00210 HPOSPO    EQ $D000
D001:          00226 HPOSP1    EQ $D001
D004:          00230 HPOSMO    EQ $D004
D005:          00240 HPOSMI    EQ $D005
00C0:          00250 PMADR    EQ $C0
D01E:          00260 HITCLR    EQ $D01E
               00270 *COLLISIONS
D008:          00280 M0PL    EQ $D008
D009:          00290 MlPL    EQ $D009
D00C:          00300 P0PL    EQ $D00C
               00310 *MISC EQUATES

9400:          00320 NDLIST    EQ $9400    ;ADR OF NEW DISPLAY LIST
9000:          00330 SCREEN    EQ $9000
02C4:          00340 COLOR0    EQ $2C4
02C6:          00350 COLOR2    EQ $2C6
02C8:          00360 COLOR4    EQ $2C8
E45C:          00370 SETVBK    EQ $E45C
E462:          00380 XITVBK    EQ $E462
0284:          00390 STRIG0    EQ $284
0278:          00400 STICK    EQ $278
D20A:          00410 RANDOM    EQ $D20A
D200:          00420 AUDFI    EQ $D200
D201:          00430 AUDCI    EQ $D201
D202:          00440 AUDF2    EQ $D202
D203:          00450 AUDC2    EQ $D203
               00460 *DATA
4000: 08 08 08
4003: 1C 1C 1C
4006: 3E 3E 22

4009: 22 00 00 00470 SHAPEO    HS 080808lClClC3E3E22220000

400C: 00 00 01
400F: 0E 1E 2E
4012: 04 04 08

4015: 00 00 00 00480    HS 0000010E1E2E040408000000
4018: 00 00 00
401B: 70 3C 3F
401E: 3C 70 00
4021: 00 00 00 00490    HS 000000703C3F3C7000000000

4024: 00 00 08

4027: 04 04 2E
402A: 1E 0E 01
402D: 00 00 00 00500    HS 00000804042E1E0E01000000
4030: 00 22 22
4033: 3E 3E 1C
4036: 1C 1C 08

4039: 08 08 00 00510    HS 0022223E3E1C1C1C08080800
403C: 00 00 08
403F: 10 10 3A
4042: 3C 38 40     
4045: 00 00 00 00520    HS 00000810103A3C3840000000
4048: 00 00 00

404B: 07 1E 7E
404E: 1E 07 00
4051: 00 00 00 00530    HS 000000071E7E1E0700000000
4054: 00 00 40
4057: 38 3C 3A
405A: 10 10 08

405D: 00 00 00 00540    HS 000040383C3AI01008000000
4060: 00 0C 18
4063: 24 30 3C

4066: 48 54    00550 SHPLO    HS 000C1824303C4854
4068: 02 02 01
406B: 02 03 00
406E: 02 01    00560 MSHAPE    HS 0202010203000201
4070: 02 02 01
4073: 02 03 00
4076: 02 01    00570    HS 0202010203000201
4078: 08 08 04

407B: 08 0C 00
407E: 08 04    00580    HS 080804080C000804
4080: 08 08 04

4083: 08 0C 00
4086: 08 04    00590    HS 080804080C000804
4088: 68 6A 6C
408B: 6E 70 72

408E: 74 76    00600 MISLO    HS, 686A6C6E70727476
4090: 78 7A 7C
4093: 7E 80 82

4096: 84 86    00610 MISL01    HS 787A7C7E80828486

4098: 01 02 03
409B: 04 05 05
409E: 05 04 03
40A1: 02 01    00620 SKFLAG    HS 0102030405050504030201
40A3: 70 70 70
40A6: 47 00 90

40A9: 02 02    00630 MIST    HS 7070704700900202
40AB: 02 02 02
40AE: 02 02 02

40B1: 02 02    00640    HS 0202020202020202
40B3: 02 02 02
40B6: 02 02 02
40B9: 02 02    00650    HS 0202020202020202
40BB: 02 02 02
40BE: 02 02 41
40C1: 00 94    00660    HS 0202020202410094
40C3: 00 01 01
40C6: 01 00 FF
40C9: FF FF    00670 VTX    HS 0001010100FFFFFF ;THRUST VECTORS
40CB: FF FF 00

40CE: 01 01 01
40D1: 00 FF    00680 VTY    HS FFFF0001010100FF
40D3: 33 28 29
40D6: 30 03 11
40D9: 00 10 10
40DC: 00       00690 SCLINE    HS 33282930031100101000 ;SCORE LINE DATA
40DD: 00 33 28
40E0: 29 30 03
40E3: 12 00 10
40E6: 10       00700    HS 00332829300312001010

40E7: DD DD 6B
40EA: 6B AA AA
40ED: E6 E6    00710 DERES    HS DDDD6B6BAAAAE6E6
40EF: 55 55 AA
40F2: AA 4A 4A

40F5: 35 35    00720    HS 5555AAAA4A4A3535
40F7: 4A 4A 64
40FA: 64 92 92
40FD: 25 25    00730    HS, 4A4A646492922525
40FF: 11 11 48
4102: 48       00740    HS, 11114848
               00750 *VARIABLES

4103: 00       00760 VX    DA #0    ;SHIP VELOCITY-HORIZ.
4104: 00       00770 VXI    DA #0
4105: 00       00780 VY    DA #0    ;SHIP VELOCITY-VERT.

4106: 00       00790 VYI    DA #0
4107: 00       00800 VXP    DA #0    ;SHIP VELOCITY-ALTERNATIVE
4108: 00       00810 VxPl    DA #0

4109: 00       00820 VYP    DA #0
410A: 00       00830 VYPI    DA #0
410B: 00       00840 XPM0 .BS 1    ;CURRENT X POS SHIP

410C: 00       00850 XPM1    BS 1
410D: 0A       00860 YOLDPM0    DA #10    ;OLD Y POS SHIP
410E: 0A       00870 YOLDPM1    DA #10
410F: 00       00880 YMISOLD0    BS 1    ;OLD MISSILE Y POS
4110: 00       00890 YMISOLD1    BS 1
4111: 00       00900 YPM0    BS I    ;CURRENT Y POS SHIP
4112: 00       00910 YPM1    BS 1
4113: 00       00920 DIR    DA #0    ;SHIP DIRECTION
4114: 00       00930 DIR1    DA #0
4115: 00       00940 DIRM0    BS 1    ;MISSILE TRAVEL DIRECTION
4116: 00       00950 DIRM1    BS 1
4117: 00       00960 COUNT    DA #0    ;COUNTER FOR JOYSTICK
4118: 00       00970 SCRCNTX    DA #0    ;SCREEN X COUNTERS
4119: 01       00980 SCRCNTXI    DA #1
411A: 00       00990 SCRCNTY    DA #0    ;SCREEN Y COUNTERS
411B: 01       01000 SCRCNTY1    DA #1
411C: 00       01010 FLAG    BS I    ;STICK BACK FLAG
411D: 00       01020 SKIPX    BS 1    ;CONTROLS RATE OF SHIP UPDATE - HORIZ.
411E: 00       01030 SKIPX1    BS 1
411F: 00       01040 SKIPY    BS 1    ;CONTROLS RATE OF SHIP UPDATE - VERT.
4120: 00       01050 SKIPY1    BS 1
4121: 00       01060 MASK    BS 1
4122: FC       01070 MASK0    DA #$FC    ;MISSILE MASKS
4123: F3       01080 MASK1    DA #$F3
4124: 00       01090 XMIS0    BS 1    ;HORIZ MISSILE POSITIONS
4125: 00       01100 Xmisi    BS 1
4126: 00       01110 YMIS0    BS 1    ;VERTICAL MISSILE POSITIONS
4127: 00       01120 YMIS1    BS 1
4128: 00       01130 TMIS0    BS 1    ;MISSILE TIMERS
4129: 00       01140 TMIS1    BS 1
412A: 00       01150 SCOREOD    BS 1    ;DIGITS
412B: 00       01160 SCOREOT    BS I    ;TENS
412C: 00       01170 SCORE1D    BS 1
412D: 00       01180 SCORE1T    BS 1
412E: 00       01190 EXCOUNT    BS I
412F: 00       01200 KILL0    BS 1    ;KILL FLAG
4130: 00       01210 KILL1    BS 1
4131: 00 00    01220 MBANG    BS 2    ;SOUND COUNTERS-MISSILES
4133: 00       01230 SBANG    BS 1    ;SOUND COUNTER
4134: 00 00 00 01240 DEREZ    BS 12    ;TEMP STORAGE DURING DEREZ ROUTINE
4137: 00 00 00
413A: 00 00 00
413D: 00 00 00
               01250 START

               01260 *SETUP DLIST

4140: A9 00    01270    LDA #$00    ;NORMAL WIDTH

4142: 8D 09 D0 01280    STA SIZEP1
4145: A2 00    01290    LDX #$00
4147: BD A3 40 01300 DLOOP    LDA DLIST,X
414A: 9D 00 94 01310    STA NDLIST,X
414D: E8       01320    INX
414E: E0 20    01330    CPX #$20    ;32 ELEMENTS
4150: D0 F5    01340    BNE DLOOP
4152: A9 00    01350    LDA #NDLIST
4154: 8D 30 02 01360    STA 560
4157: A9 94    01370    LDA /NDLIST
4159: 8D 31 02 01380    STA 561

               01390 *CLEAR SCREEN - 1K

415C: A9 00    01400 CLRSCR    LDA #SCREEN ;SETUP POINTERS TO CLEAR SCREEN
415E: 85 F6    01410    STA SL
4160: A9 90    01420    LDA /SCREEN
4162: 85 F7    01430    STA SH
4164: A0 00    01440    LDY #$00
4166: 98       01450    TYA
4167: A2 04    01460    LDX #$04

4169: 91 F6    01470 .2    STA (SL),Y
416B: C8       01480    INY
416C: D0 FB    01490    BNE .2    ;CONTINUE UNTIL DONE WITH 256 BYTES
416E: E6 F7    01500    INC SH    ;DO NEXT PAGE
4170: CA       01510    DEX
4171: D0 F6    01520    BNE .2

               01530 *INITILIZE SCORE LINE

4173: A2 00    01540    LDX #$00

4175: BD D3 40 01550    .1    LDA SCLINE,X
4178: 9D 00 90 01560        STA SCREEN,X
417B: E8       01570        INX
417C: E0 14    01580        CPX #$14
417E: D0 F5    01590        BNE .1
4180: A9 00    01600        LDA #$00    ;ZERO OUT SCORE
4182: 8D 2A 41 01610        STA SCORE0D
4185: 8D 2B 41 01620        STA SCORE0T
4188: 8D 2C 41 01630        STA SCORE1D
418B: 8D 2D 41 01640        STA SCORE1T
418E: A9 28    01650        LDA #$28    ;YELLOW LE = RS,
4190: 8D C4 02 01660        STA COLOR0
4193: A9 00    01670        LDA #$00    ;BLACK BACKGROUND & BORDER
4195: 8D C6 02 01680        STA COLOR2
4198: 8D C8 02 01690        STA COLOR4
419B: A9 00    01700 RESTART    LDA #$00
419D: 8D 2E 41 01710        STA EXCOUNT
41A0: 8D 2F 41 01720        STA KILLO
41A3: 8D 30 41 01730        STA KILLI

               01740 *INITILIZE P/M GRAPHICS

41A6: A9 88    01750    LDA #$88
41A8: 8D 07 D4 01760    STA PMBASE
41AB: A9 03    01770    LDA #$03    ;SET P/M GRAPHICS
41AD: 8D 1D D0 01780    STA GRACTL
41B0: A9 3E    01790    LDA WE    ;ENABLE P/M DMA SINGLE LINE
41B2: 8D 2F 02 01800    STA DMACTL

               01810 *INITILIZE SHIP 0

41B5: A9 00    01820    LDA #$00    ;NORMAL WIDTH
41B7: 8D 08 D0 01830    STA SIZEPO
41BA: A9 7A    01840    LDA #$7A    ;PLAYER #0 122 BLUE-LUM 10
41BC: 8D C0 02 01850    STA COLPMO
41BF: A9 50    01860    LDA #$50    ;INITIAL POS SHIP X=72
41C1: 8D 0B 41 01870    STA XPMO
41C4: 8D 00 D0 01880    STA HPOSPO  ; TELL ANTIC
41C7: A9 40    01890    LDA #$40    ;INITIAL POS SHIP Y=64
41C9: 18       01900    CLC
41CA: 69 25    01910    ADC #$25    ;32+CENTER PM SHAPE 5 BELOW TOP
41CC: 8D 11 41 01920    STA YPMO

               01930 *INITILIZE SHIP 1

41CF: A9 38    01940    LDA #$38    ;PLAYER #1 58 RED-LUM 8
41D1: 8D C1 02 01950    STA COLPMI
41D4: A9 A0    01960    LDA #$A0    ;INITIAL POS SHIP X-144
41D6: 8D 0C 41 01970    STA XPM1
41D9: 8D 01 D0 01980    STA HPOSP1
41DC: A9 60    01990    LDA #$60    ;INITIAL POS SHIP Y=96
41DE: 18       02000    CLC
41DF: 69 25    02010    ADC #$25
41E1: 8D 12 41 02020    STA YPM1

               02030 *CLEAR P/M AREA

41E4: A9 00    02040    LDA #$00    ;PDATAL
41E6: 85 C0    02050    STA PMADR
41E8: A9 88    02060    LDA /PDATA
41EA: 85 C1    02070    STA PMADR+1
41EC: A0 00    02080    LDY #$00

41EE: 98       02090    TYA
41EF: A2 08    02100    LDX #08
41F1: 91 C0    02110 .3    STA (PMADR),Y
41F3: C8       02120    INY
41F4: D0 FB    02130    BNE .3
41F6: E6 C1    02140    INC PMADR+1 ;NEXT 256 BYTES
41F8: CA       02150    DEX
41F9: D0 F6    02160    BNE .3
               02170 *SET VBLANK
41FB: A9 07    02180    LDA #07

41FD: A2 42    02190    LDX /FRAME ;HI BYTE VBLANK ROUTINE
41FF: A0 09    02200    LDY #FRAME;LO BYTE

4201: 20 5C E4 02210    JSR SETVBK
4204: A9 00    02220    LDA #$00

               02230 *READ STICK
4206: 4C 06 42 02240 FOREVER    JMP FOREVER
4209: EA       02250 FRAME    NOP
               02260 *READ STICK EVERY 6 TIMES

420A: EE 17 41 02270 CHKSTK    INC COUNT
420D: AD 17 41 02280    LDA COUNT
4210: C9 05    02290    CMP 005    ;READ STICK ONLY EVERY 6TH TIME
4212: F0 03    02300    BEQ .4
4214: 4C 28 42 02310    imp P1

               02320 *SETUP CALL TO JOYSTICK-PLAYER 0

4217: A2 00    02330 .4    LDX #$00    ;PLAYER 0
4219: BD 07 41 02340    LDA VXP,X    ;SET PLAYER'S NEW VELOCITY TO OLD VELOCITY
421C: 8D 03 41 02350    STA VX
421F: BD 09 41 02360    LDA VYP,X
4222: 8D 05 41 02370    STA VY
4225: 20 2C 43 02380    JSR JOYSTK

               02390 *UPDATE X & Y POSITIONS PLAYER #0

4228: A2 00    02400 P1    LDX #$00
422A: 20 A6 43 02410    JSR UPDATE

422D: 20 42 44 02420 .5        JSR PLOTSETO ;PLOT PLAYER 0
4230: 20 82 44 02430        JSR PLOT
4233: A5 F4    02440    LDA SHPMOL ;STORE AS OLD Y POS FOR NEXT CYCLE
4235: 8D 0D 41 02450        STA YOLDPMO
4238: AD 17 41 02460 CHKSTKI        LDA COUNT
423B: C9 06    02470    CMP #$06 READ STICK ONLY EVERY 6TH TIME
423D: F0 03    02480    BEQ .4
423F: 4C 58 42 02490        JMP P2

               02500 *SETUP CALL TO JOYSTICK-PLAYER 1

4242: A2 01    02510 .4    LDX #$01    ;PLAYER 1

4244: BD 07 41 02520    LDA VXP,X
4247: 8D 03 41 02530    STA VX
424A: BD 09 41 02540    LDA VYP,X
424D: 8D 05 41 02550    STA VY
4250: 20 2C 43 02560    JSR JOYSTK
4253: A9 00    02570    LDA #$00    ;RESET 4 CYCLE COUNTER
4255: 8D 17 41 02580    STA COUNT

               02590 *UPDATE X & Y POSITIONS PLAYER #1

4258: A2 01    02600 P2    LDX #$O1
425A: 20 A6 43 02610    JSR UPDATE

425D: 20 62 44 02620 .5    JSR PLOTSET1 ;PLOT PLAYER 1
4260: 20 82 44 02630    JSR PLOT

4263: A5 F4    02640    LDA SHPMOL ;STORE AS OLD Y POS FOR NEXT CYCLE
4265: 8D 0E 41 02650    STA YOLDPMI

               02660 *FIRE MISSILE
4268: A2 00    02670    LDX #$00
426A: 20 0B 45 02680    JSR MISSILE
426D: A2 01    02690    LDX #$O1

426F: 20 0B 45 02700    JSR MISSILE

               02710 *CHECK COLLISION

               02720 *CHECK FOR OLD COLLISION FIRST
4272: AD 2F 41 02730    LDA KILLO    ;FIRST TEST FOR 2 PLAYER COLLISION
4275: C9 00    02740    CMP #$00
4277: F0 07    02750    BEQ .10    ;CAN'T BE 2 PLAYER COLLISION
4279: AD 30 41 02760    LDA KILLI
427C: C9 00    02770    CMP #$00
427E: D0 24    02780    BNE REMOVE
4280: AD 30 41 02790 .10    LDA KILLI    ;TEST FOR DERES PLAYER#I
4283: C9 00    02800    CMP #$00
4285: D0 31    02810    BNE REMOVEI
4287: AD 2F 41 02820    LDA KILLO    ;TEST FOR DERES PLAYER#O
428A: C9 00    02830    CMP #$00
428C: D0 3D    02840    BNE REMOVEO
               02850 *CHECK FOR NEW COLLISION
428E: AD 0C D0 02860    LDA POPL    ;TEST P#O AGAINST P#1
4291: D0 11    02870    BNE REMOVE
4293: AD 08 D0 02880    LDA MOPL    ;TEST M#O AGAINST P#1
4296: C9 02    02890    CMP #$02
4298: F0 1E    02900    BEQ REMOVE1
429A: AD 09 D0 02910    LDA MIPL    ;TEST M#1 AGAINST P#O
429D: C9 01    02920    CMP #$01
429F: F0 2A    02930    BEQ REMOVE0
42A1: 4C DB 42 02940    JMP TESTE
42A4: A9 01    02950 REMOVE    LDA #01
42A6: 8D 2F 41 02960    STA KILLO
42A9: 8D 30 41 02970    STA KILL1
42AC: 20 DB 45 02980    JSR EXPLODEO
42AF: 20 E7 45 02990    JSR EXPLODE1

42B2: EE 2E 41 03000    INC EXCOUNT ;NEXT EXPLOSION FRAME

42B5: 4C DB 42 03010    JMP TESTE    ;TEST IF EXPLOSION FINISHED
42B8: A9 01    03020 REMOVE1    LDA #$01
42BA: 8D 30 41 03030    STA KILL1
42BD: A9 F0    03040    LDA #$FO    ;PUT MISSILE OFF SCREEN
42BF: 8D 05 D0 03050    STA HPOSM1
42C2: 20 E7 45 03060    JSR EXPLODE1
42C5: EE 2E 41 03070    INC EXCOUNT
42C8: 4C DB 42 03080    JMP TESTE
42CB: A9 01    03090 REMOVEO    LDA #$O1
42CD: 8D 2F 41 03100    STA KILLO
42D0: A9 F0    03110    LDA #$FO    ;PUT MISSILE OFF SCREEN
42D2: 8D 04 D0 03120    STA HPOSMO
42D5: 20 DB 45 03130    JSR EXPLODEO
42D8: EE 2E 41 03140    INC EXCOUNT

42DB: AD 2E 41 03150 TESTE    LDA EXCOUNT ;TEST IF DONE WITH DERES CYCLE
42DE: C9 30    03160    CMP #$30
42E0: D0 41    03170    BNE ENDCYCLE

42E2: A9 00    03180    LDA #$00        SHUT OFF EXPLOSION SOUND
42E4: 8D 01 D2 03190    STA AUDC1
42E7: 8D 03 D2 03200    STA AUDC2
42EA: 8D 33 41 03210    STA SBANG
42ED: 20 39 46 03220    JSR SCORE    ;UPDATE SCORE
42F0: A9 00    03230    LDA #$00    ;RESET
42F2: 8D 2E 41 03240    STA EXCOUNT
42F5: 8D 2F 41 03250    STA KILLO
42F8: 8D 30 41 03260    STA KILL1

               03270 *REPOSITION SHIP AFTER KILL

42FB: A9 50    03280    LDA #$50    ;SHIP 0
42FD: 8D 0B 41 03290    STA XPMO
4300: 8D 00 D0 03300    STA HPOSPO
4303: A9 65    03310    LDA #$65
4305: 8D 11 41 03320 STA YPM0
4308: A9 A0    03330    LDA #$A0    ;SHIP I
430A: 8D 0C 41 03340    STA XPM1
430D: 8D 01 D0 03350    STA HPOSPI
4310: A9 85    03360    LDA #$85
4312: 8D 12 41 03370    STA YPM1
4315: A9 00    03380    LDA #$00
4317: 8D 07 41 03390    STA VIP
431A: 8D 08 41 03400    STA VXP1
431D: 8D 09 41 03410    STA VYP
4320: 8D 0A 41 03420    STA VYP1

4323: 8D 1E D0 03430 ENDCYCLE STA HITCLR ;WRITING ANYTHING CLEARS COLLISION REGISIP
4326: 20 8C 46 03440    JSR DOSOUND
4329: 4C 62 E4 03450    JMP XITVBK
               03460 *
               03470 *SUBROUTINE READ JOYSTICK
               03480 *INPUT X REG- # OF PLAYER
               03490 *VX,VY CURRENT PLAYER VELOCITY
               03500 *OUTPUT VXP,VYP PLAYER VELOCITY

432C: BD 78 02 03510 JOYSTK    LDA STICK,X
432F: 29 02    03520    AND #$02    ;DOWN BIT?
4331: D0 05    03530    BNE CHKLF
4333: A9 01    03540    LDA #01
4335: 8D 1C 41 03550    STA FLAG    ;YES STICK BACK
4338: BD 78 02 03560 CHKLF    LDA STICK,X
433B: 29 04    03570    AND #$04    ;LEFT BIT?
433D: D0 12    03580    BNE CHKRT
433F: DE 13 41 03590    DEC DIR,X
4342: BD 13 41 03600    LDA DIR,X
4345: C9 FF    03610    CMP #$FF
4347: D0 05    03620    BNE .1
4349: A9 07    03630    LDA #$07    ;SET DIR TO 7
434B: 9D 13 41 03640    STA DIR,X
434E: 4C 68 43 03650 .1    JMP CHKFD
4351: BD 78 02 03660 CHKRT    LDA STICKJ
4354: 29 08    03670    AND #$08    ;RIGHT BIT?
4356: D0 10    03680    BNE CHKFD
4358: FE 13 41 03690    INC DIR,X
435B: BD 13 41 03700    LDA DIR,X
435E: C9 08    03710    CMP 008
4360: D0 05    03720    BNE .2
4362: A9 00    03730    LDA #$00    ;SET DIR TO 0
4364: 9D 13 41 03740    STA DIR,X
4367: EA       03750 .2    NOP
4368: BD 78 02 03760 CHKFD    LDA STICK,X
436B: 29 01    03770    AND #$O1    ;UP BIT?
436D: D0 36    03780    BNE .9

               03790 *SET TO FREE FLOAT

436F: BD 13 41 03800    LDA DIR,X
4372: A8       03810    TAY
4373: 18       03820    CLC
4374: B9 C3 40 03830    LDA VTX,Y    ;GET X(DIR)THRUST VECTOR
4377: 6D 03 41 03840    ADC VX

437A: C9 FA    03850    CMP #$FA
437C: D0 02    03860    BNE .5
437E: A9 FB    03870    LDA #$FB    ;CLIP TO -5
4380: C9 06    03880 .5    CMP #$06
4382: D0 02    03890    BNE .6
4384: A9 05    03900    LDA #$05    ;CLIP TO 5

4386: 8D 03 41 03910 .6    STA VX    ;STORE OLD OR CLIPPED VALUE
4389: 9D 07 41 03920    STA VXP,X
438C: 18       03930    CLC

438D: B9 CB 40 03940    LDA VTY,Y    ;GET Y(DIR) THRUST VECTOR

4390: 6D 05 41 03950    ADC VY

4393: C9 FA    03960    CMP #$FA
4395: D0 02    03970    BNE .7
4397: A9 FB    03980    LDA #$FB    ;CLIP TO -5
4399: C9 06    03990 .7    CMP #$06
439B: D0 02    04000    BNE .8
439D: A9 05    04010    LDA #$05    ;CLIP TO 5

439F: 8D 05 41 04020 .8    STA VY    ;STORE OLD OR CLIPPED VALUE
43A2: 9D 09 41 04030    STA VYP,X

43A5: 60       04040 .9    RTS

               04050 *SUBROUTINE TO UPDATE X & Y POSITIONS
43A6: EA       04060 UPDATE NOP
               04070 *UPDATE Y POS, VARIABLE # TIMES
               04080 *TEST WHEN TO UPDATE

43A7: 18       04090 UPDATEYCLC

43A8: BD 09 41 04100    LDA VYP,X
43AB: 69 05    04110    ADC #$05    ;SO NEGATIVE #'S IN TABLE TOO
43AD: A8       04120    TAY

43AE: B9 98 40 04130    LDA SKFLAG,Y ;#TIMES TO SKIP IS RECIPRICAL OF SPEED
43B1: 9D 1F 41 04140    STA SKIPY,X
43B4: FE 1A 41 04150    INC SCRCNTY,X ;INCREMENT Y COUNTER
43B7: BD 1A 41 04160    LDA SCRCNTY,X
43BA: DD 1F 41 04170    CMP SKIPYJ ;IF MATCH UPDATE Y POS
43BD: B0 03    04180    BGE .1
43BF: 4C F1 43 04190    JMP UPDATEX

               04200 *UPDATE Y PLAYER POSITION

43C2: A9 00    04210 .1    LDA #$00    ;PERFORM Y UPDATE

43C4: 9D 1A 41 04220    STA SCRCNTY,X
43C7: BD 09 41 04230    LDA VYP,X

43CA: C9 00    04240    CMP #$00    ;IF HASN'T MOVED DON'T UPDATE
43CC: F0 23    04250    BEQ UPDATEX
43CE: 30 12    04260    BMI .2
43D0: FE 11 41 04270    INC YPMO,X
43D3: BD 11 41 04280    LDA YPMO,X
43D6: C9 E0    04290    CMP #$EO    ;HIT BOTTOM?
43D8: 90 05    04300    BLT .3
43DA: A9 18    04310    LDA #$18    ;WRAP TO TOP
43DC: 9D 11 41 04320    STA YPMO,X
43DF: 4C F1 43 04330 .3    JMP UPDATEX
43E2: DE 11 41 04340 .2    DEC YPMO,X
43E5: BD 11 41 04350    LDA YPMO,X
43E8: C9 18    04360    CMP #$18    ;HIT TOP?
43EA: B0 05    04370    BGE UPDATEX
43EC: A9 E0    04380    LDA #$EO    ;WRAP TO BOTTOM
43EE: 9D 11 41 04390    STA YPMO,X

               04400 *UPDATE X POS VARIABLE # TIMES

43F1: 18       04410 UPDATEX    CLC
43F2: BD 07 41 04420    LDA VXP,X

43F5: 69 05    04430    ADC 005    ;SO NEG #'S IN TABLE TOO

43F7: A8       04440    TAY
43F8: B9 98 40 04450    LDA SKFLAG,Y
43FB: 9D 1D 41 04460    STA SKIPX,X
43FE: FE 18 41 04470    INC SCRCNTX,X
4401: BD 18 41 04480    LDA SCRCNTX,X
4404: DD 1D 41 04490    CMP SKIPX,X ;UPDATESCREEN POSITION EVERY SKIP TIME
4407: B0 03    04500    BGE .1
4409: 4C 41 44 04510    JMP EE

               04520 *UPDATE X PLAYER POSITION
440C: A9 00    04530 .1    LDA #$00
440E: 9D 18 41 04540    STA SCRCNTX,X
4411: BD 07 41 04550    LDA VXP,X

4414: C9 00    04560    CHP #$00

4416: F0 23    04570    BEQ .3
4418: 30 12    04580    BMI .2
441A: FE 0B 41 04590    INC XPMO,X
441D: BD 0B 41 04600    LDA XPMO,X
4420: C9 D8    04610    CMP #$D8    ;HIT RT SIDE?
4422: 90 05    04620    BIT .4
4424: A9 28    04630    LDA #$28    ;WRAP TO LEFT
4426: 9D 0B 41 04640    STA XPMO,X
4429: 4C 3B 44 04650 .4    JMP .3
442C: DE 0B 41 04660 .2    DEC XPMO,X
442F: BD 0B 41 04670    LDA XPMO,X
4432: C9 28    04680    CMP #$28    ;HIT LEFT?
4434: B0 05    04690    BGE .3
4436: A9 D8    04700    LDA #$D8    ;WRAP TO RIGHT

4438: 9D 0B 41 04710    STA XPMO,X
443B: BD 0B 41 04720 .3    LDA XPMO,X    NEW VALUE
443E: 9D 00 D0 04730    STA HPOSPO,X    UPDATE ANTIC PLAYER HORIZ

4441: 60       04740 EE    RTS

               04750 *PLOT PLAYERO SETUP
4442: AD 11 41 04760 PLOTSETO LDA YPMO    ;CORRECTED YPOS

4445: 85 F2    04770    STA SHPML
4447: A9 88    04780    LDA /PDATA
4449: 18       04790    CLC
444A: 69 04    04800    ADC #$04    ;PLAYERO IS 1K BEYOND START
444C: 85 F3    04810    STA SHPMH
444E: 85 F5    04820    STA SHPMOH

4450: AC 13 41 04830    LDY DIR
4453: B9 60 40 04840    LDA SHPLO,Y ;POINTER TO CORRECT SHAPE
4456: 85 F0    04850    STA SHPL

4458: A9 40    04860    LDA /SHAPEO ;HI BYTE
445A: 85 F1    04870    STA SHPH
445C: AD 0D 41 04880    LDA YOLDPMO
445F: 85 F4    04890    STA SHPMOL
4461: 60       04900    RTS

               04910 *PLOT PLAYERI SETUP
4462: AD 12 41 04920 PLOTSETI LDA YPM1    ;CORRECTED YPOS

4465: 85 F2    04930    STA SHPML
4467: A9 88    04940    LDA /PDATA
4469: 18       04950    CLC
446A: 69 05    04960    ADC #$05    ;PLAYER1 IS 1.25K BEYOND START
446C: 85 F3    04970    STA SHPMH
446E: 85 F5    04980    STA SHPMOff

4470: AC 14 41 04990    LDY DIR1
4473: B9 60 40 05000    LDA SHPLO,Y ;POINTER TO CORRECT SHAPE
4476: 85 F0    05010    STA SHPL

4478: A9 40    05020    LDA /SHAPEO ;HI BYTE ;BOTH PLAYER SHAPES SAME
447A: 85 F1    05030    STA SHPH
447C: AD 0E 41 05040    LDA YOLDPM1

447F: 85 F4    05050    STA SHPMOL
4481: 60       05060    RTS

               05070 *PUT SHAPE IN P/M AREA

4482; A0 00    05080 PLOT    LDY #$00    ;COUNTER
4484: A9 00    05090    LDA #$00    ;NEED 0 TO ERASE EACH TIME
4486: 91 F4    05100 .1    STA (SHPMOL),Y ;ERASE OLD SHAPE FIRST
4488: C8       05110    INY
4489: C0 0C    05120    CPY #$OC
448B: 90 F9    05130    BLT .1
448D: A0 00    05140    LDY #$00

448F: B1 F0    05150 .2    LDA (SHPL),Y;GET BYTE FROM PROPER SHAPE TABLE

4491: 91 F2    05160    STA (SHPML),Y ;PUT IN P/M AREA

4493: A5 F2    05170    LDA SHPML    ;TRANSFER NEW P/M POS TO OLD POS


4495: C8       05180    INY
4496: C0 0C    05190    CPY #$OC
4498: 90 F5    05200    BLT .2
449A: A5 F2    05210    LDA SHPML ;TRANSFER NEW P/M POS TO OLD POS
449C: 85 F4    05220    STA SHPMOL
449E: A5 F3    05230    LDA SHPMH
44A0: 85 F5    05240    STA SHPMOH
44A2: 60       05250    RTS
               05260 *SETUP TO PLOT MISSILE 0

44A3: AD 26 41 05270 MISSETO LDA YMISO    ;MISSILE POSITION CORRECTED

44A6: 85 F2    05280    STA SHPML
44A8: A9 88    05290    LDA /PDATA
44AA: 18       05300    CLC
44AB: 69 03    05310    ADC #$03    ;MISSILES .75K BEYOND START
44AD: 85 F3    05320    STA SHPMH
44AF: 85 F5    05330    STA SHPMOH

44B1: AC 15 41 05340    LDY DIRMO
44B4: B9 88 40 05350    LDA MISLO,Y ;POINTER TO CORRECT MISSILE SHAPE
44B7: 85 F0    05360    STA SHPL
44B9: A9 40    05370    LDA /MSHAPE ;HI BYTE-BOTH P/M SHAPES SAME
44BB: 85 F1    05380    STA SHPH
44BD: AD 0F 41 05390    LDA YMISOLDO
44C0: 85 F4    05400    STA SHPMOL
44C2: AD 22 41 05410    LDA MASKO
44C5: 8D 21 41 05420    STA MASK
44C8: 20 B7 45 05430    JSR MPLOT
44CB: A5 F4    05440    LDA SHPMOL
44CD: 8D 0F 41 05450    STA YMISOLDO
44D0: AD 24 41 05460    LDA XMISO
44D3: 8D 04 D0 05470    STA HPOSMO ;MISSILE 0 HORIZ POS
44D6: 60       05480    RTS

               05490 *SETUP TO PLOT MISSILE 1

44D7: AD 27 41 05500 MISSETI LDA YMIS1    ;MISSILE POSITION CORRECTED

44DA: 85 F2    05510    STA SHPML
44DC: A9 88    05520    LDA /PDATA
44DE: 18       05530    CLC
44DF: 69 03    05540    ADC #$03    ;MISSILES .75K BEYOND START
44E1: 85 F3    05550    STA SHPMH
44E3: 85 F5    05560    STA SHPMOH

44E5: AC 16 41 05570    LDY DIRM1
44E8: B9 90 40 05580    LDA MISLO1,Y ;POINTER TO CORRECT MISSILE SHAPE
44EB: 85 F0    05590    STA SHPL
44ED: A9 40    05600    LDA /MSHAPE ;HI BYTE-BOTH P/M SHAPES SAME
44EF: 85 F1    05610    STA SHPH
44F1: AD 10 41 05620    LDA YMISOLDI
44F4: 85 F4    05630    STA SHPMOL
44F6: AD 23 41 05640    LDA MASK1
44F9: 8D 21 41 05650    STA MASK
44FC: 20 B7 45 05660    JSR MPLOT
44FF: A5 F4    05670    LDA SHPMOL
4501: 8D 10 41 05680    STA YMISOLD1
4504: AD 25 41 05690    LDA XMISI
4507: 8D 05 D0 05700    STA HPOSM1 ;MISSILE 1 HORIZ POS
450A: 60       05710    RTS

               05720 *MISSILE SUBROUTINE -MISSILE TRACK ENDS AT COLLSION OR SCREEN ED(

450B: BD 84 02 05730 MISSILE    LDA STRIGO,X
450E: C9 00    05740    CMP #$00
4510: D0 37    05750    BNE .1
4512: BD 28 41 05760    LDA TMISOJ
4515: C9 00    05770    CMP #$00

4517: D0 3A    05780    BNE .2

4519: A9 10    05790    LDA #$10    FLAG & INITIAL VOLUME FOR SHOT SOUND

451B: 9D 31 41 05800    STA MBANG,X
451E: FE 28 41 05810    INC TMISO,X ;INCREMENT TIMER

               05820 *ERASE OLD MISSILE & PUT AT SHIP
4521: BD 13 41 05830    LDA DIR,X
4524: 9D 15 41 05840    STA DIRMO,X ;DIR MISSILE TO MOVE THROUGHOUT TRAVEL
4527: BD 11 41 05850    LDA YPMO,X
452A: 18       05860    CLC

452B: 69 06    05870    ADC #06    ;CORRECT TO SHIP CENTER
452D: 9D 26 41 05880    STA YMISO,X
4530: BD 0B 41 05890    LDA XPMO,X
4533: 18       05900    CLC
4534: 69 04    05910    ADC #04    ;CORRECT TO SHIP CENTER
4536: 9D 24 41 05920    STA XMISOJ
4539: E0 00    05930    CPX #00
453B: D0 06    05940    BNE .10

453D: 20 A3 44 05950        JSR MISSETO ;TO MISSILE PLOT SETUP & PLOT
4540: 4C B6 45 05960        JMP EXIT
4543: 20 D7 44 05970 .10        JSR MISSET1
4546: 4C B6 45 05980        JMP EXIT
4549: BD 28 41 05990 .1        LDA TMISOJ
454C: C9 00    06000    CMP 000
454E: D0 03    06010    BNE .2
4550: 4C B6 45 06020        JMP EXIT
               06030 *MOVE MISSILE IN PROPER DIRECTION
4553: BC 15 41 06040 .2        LDY DIRMOJ
4556: B9 C3 40 06050        LDA VTX,Y

4559: 0A       06060    ASL    ;DOUBLE VELOCITY VECTOR
455A: 18       06070    CLC
455B: 7D 24 41 06080    ADC XMISOJ
455E: 9D 24 41 06090    STA XMISOJ
4561: B9 CB 40 06100    LDA VTY,Y
4564: 0A       06110    ASL    ;DOUBLE VELOCITY VECTOR
4565: 18       06120    CLC
4566: 7D 26 41 06130    ADC YMISOJ
4569: 9D 26 41 06140    STA YMISO,X

               06150 *HAS MISSILE HIT SCREEN EDGE

456C: C9 20    06160    CMP 020
456E: B0 03    06170    BGE .3
4570: 4C 9F 45 06180    JMP ERASEM    ;EVA
4573: C9 D8    06190 .3    CMP #$D8
4575: 90 03    06200    BLT .4
4577: 4C 9F 45 06210    JMP ERASEM
457A: BD 24 41 06220 .4    LDA XMISOJ
457D: C9 30    06230    CMP WO
457F: B0 03    06240    BGE .5
4581: 4C 9F 45 06250    JMP ERASEM
4584: C9 D0    06260 .5    CMP #$DO
4586: 90 03    06270    BLT .6
4588: 4C 9F 45 06280    JMP ERASEM
458B: EA       06290 .6    NOP
458C: FE 28 41 06300    INC TMISO,X

               06310 *ERASE & REPLOT MISSILE

458F: E0 00    06320 ERASE    CPX #$00
4591: D0 06    06330    BNE .8
4593: 20 A3 44 06340    JSR MISSETO
4596: 4C B6 45 06350    JMP EXIT
4599: 20 D7 44 06360 .8    JSR MISSETI
459C: 4C B6 45 06370    JMP EXIT

               06380 *ERASE MISSILE OFF SCREEN

459F: A9 E0    06390 ERASEM    LDA #$EO

45A1: 9D 24 41 06400    STA XMISOJ ;PLOT OFF SCREEN
45A4: E0 00    06410    CPX #$00
45A6: D0 06    06420    BNE .71
45A8: 20 A3 44 06430    JSR MISSETO
45AB: 4C B1 45 06440    JMP .7
45AE: 20 D7 44 06450 .71    JSR MISSET1
45B1: A9 00    06460 .7    LDA #$00
45B3: 9D 28 41 06470    STA TMISO,X
45B6: 60       06480 EXIT    RTS
               06490 *PUT MISSILE SHAPE IN P/M AREA SUBROUTINE
45B7: A0 00    06500 MPLOT    LDY #$00
45B9: B1 F4    06510 .1    LDA (SHPMOL),Y ;LOAD OLD SHAPE
45BB: 2D 21 41 06520    AND MASK    ;MASK WITH PROPER MISSILE BEING MOVED

45BE: 91 F4    06530    STA (SHPMOL),Y ;STOREING IT DOESN'T ERASE OTHER MISSILES
45C0: C8       06540    INY
45C1: C0 02    06550    CPY #$02
45C3: 90 F4    06560    BLT .1
45C5: A0 00    06570    LDY #$00

45C7: B1 F0    06580 .2    LDA (SHPL),Y;GET BYTE FROM CORRECT MISSILE SHAPE TABLE

45C9: 11 F2    06590    ORA (SHPML),Y ;OR AGAINST CURRENT OTHER MISSILES
45CB: 91 F2    06600    STA (SHPML),Y ;PUT IN MISSILE AREA
45CD: C8       06610    INY
45CE: C0 02    06620    CPY #$02
45D0: 90 F5    06630    BLT .2

45D2: A5 F2    06640    LDA SHPML    ;TRANSFER TO OLD POINTERS
45D4: 85 F4    06650    STA SHPMOL
45D6: A5 F3    06660    LDA SHPMH
45D8: 85 F5    06670    STA SHPMOH
45DA: 60       06680    RTS

               06690 *SUBROUTINES TO EXPLODE SHIPS
45DB: 20 42 44 06700 EXPLODED        JSR PLOTSETO
45DE: 20 F3 45 06710        JSR EXPLODE
45E1: A5 F4    06720    LDA SHPMOL
45E3: 8D 0D 41 06730        STA YOLDPMO
45E6: 60       06740    RTS
45E7: 20 62 44 06750 EXPLODEI    JSR PLOTSET1
45EA: 20 F3 45 06760        JSR EXPLODE
45ED: A5 F4    06770    LDA SHPMOL
45EF: 8D 0E 41 06780        STA YOLDPM1

45F2: 60       06790    RTS
               06800 *DE-RES SHAPE

45F3: A0 00    06810 EXPLODE    LDY #$00    ;COUNTER
45F5: A9 00    06820    LDA #$00    ;NEED 0 TO ERASE EACH TIME

45F7: 91 F4    06830 .1    STA (SHPMOL),Y ;ERASE OLD SHAPE FIRST
45F9: C8       06840    INY
45FA: C0 0C    06850    CPY #$Oc
45FC: 90 F9    06860    BLT .1

45FE: AE 2E 41 06870        LDX EXCOUNT ;COUNTER
4601: A0 00    06880    LDY #$00    ;START WITH OTH BYTE IN SHAPE
4603: E0 00    06890 .2    CPX #$00    ;FIRST TIME?
4605: D0 05    06900    BNE .22
4607: B1 F0    06910    LDA (SHPL),Y;GET BYTE FROM PROPER SHAPE TABLE
4609: 99 34 41 06920        STA DEREZ,Y ;DO THIS ONLY FIRST TIME
460C: AD 0A D2 06930 .22        LDA RANDOM
460F: 0D 0A D2 06940        ORA RANDOM    ;DEGRADE IMAGE RANDONILY
4612: 39 34 41 06950        AND DEREZ,Y
4615: 99 34 41 06960        STA DEREZ,Y ;TEMP STORE DEGRADED IMAGE
4618: B1 F0    06970    LDA (SHPL),Y
461A: 2D 0A D2 06980        AND RANDOM    ;DEGRADE IMAGE RANDOMILY
461D: 2D 0A D2 06990        AND RANDOM
4620: 2D 0A D2 07000        AND RANDOM

4623: 2D 0A D2 07010    ANI
4626: 19 34 41 07020    ORA DEREZ,Y ;COMBINE 2 DEGRADED IMAGES SO LESS DEGRADED

4629: 91 F2    07030    STA (SHPML),Y ;PUT IN P/M AREA

462B: C8       07040    INY    ;NEXT BYTE IN SHAPE
462C: C0 0C    07050    CPY #$OC    ;DONE?
462E: 90 D3    07060    BLT .2
4630: A5 F2    07070    LDA SHPML    ;TRANSFER NEW P/M POS TO OLD POS
4632: 85 F4    07080    STA SHPMOL
4634: A5 F3    07090    LDA SHPMH
4636: 85 F5    07100    STA SHPMOH
4638: 60       07110    RTS

               07120 *SCORE SUBROUTINE

4639: AD 2F 41 07130 SCORE    LDA KILLO
463C: F0 12    07140    BEQ .1
463E: EE 2A 41 07150    INC SCOREOD ;INC DIGITS #0
4641: AD 2A 41 07160    LDA SCOREOD ;TEST IF >9
4644: C9 0A    07170    CMP #$0A
4646: D0 08    07180    BNE .1
4648: EE 2B 41 07190    INC SCOREOT ;INC TENS #0
464B: A9 00    07200    LDA #$00
464D: 8D 2A 41 07210    STA SCOREOD ;ZERO DIGITS #0
4650: AD 30 41 07220 .1    LDA KILL1
4653: F0 12    07230    BEQ .2
4655: EE 2C 41 07240    INC SCORE1D ;INC DIGITS #1
4658: AD 2C 41 07250    LDA SCORE1D
465B: C9 0A    07260    CMP #$0A
465D: D0 08    07270    BNE .2
465F: EE 2D 41 07280    INC SCORE1T
4662: A9 00    07290    LDA #$00
4664: 8D 2C 41 07300    STA SCORE1D
4667: AD 2B 41 07310 .2    LDA SCOREOT
466A: 18       07320    CLC
466B: 69 10    07330    ADC #$10
466D: 8D 07 90 07340    STA SCREEN+7 ;PLACE IN SCREEN MEMORY
4670: AD 2A 41 07350    LDA SCOREOD
4673: 18       07360    CLC
4674: 69 10    07370    ADC #$10
4676: 8D 08 90 07380    STA SCREEN+8
4679: AD 2D 41 07390    LDA SCOREIT
467C: 18       07400    CLC
467D: 69 10    07410    ADC #$10    on
467F: 8D 12 90 07420    STA SCREEN+18
4682: AD 2C 41 07430    LDA SCORE1D        oi
4685: 18       07440    CLC
4686: 69 10    07450    ADC #$10
4688: 8D 13 90 07460    STA SCREEN+19
468B: 60       07470    RTS
               07480 DOSOUND

468C: AD 2E 41 07490    LDA EXCOUNT        SHIP EXPLODING?
468F: F0 24    07500    BEQ MSOUND        NO? THEN GO CHECK FOR SHOT SOUNDS
4691: C9 01    07510    CMP #$O1        IS IT 1ST TIME
4693: D0 05    07520    BNE .1
4695: A9 40    07530    LDA #$40    ;THIS WILL BE DIVIDED BY 4 SO
4697: 8D 33 41 07540    STA SBANG    ;VOLUME GOES FROM $10 TO 0 IN STEPS OF EVERY 4 VBLANKS
469A: CE 33 41 07550 .1    DEC SBANG
469D: AD 33 41 07560    LDA SBANG
46A0: 4A       07570    LSR
46A1: 4A       07580    LSR
46A2: 09 E0    07590    ORA #$E0        LOWER IT
46A4: 8D 00 D2 07600    STA AUDF1    ;AUDF1
46A7: 8D 02 D2 07610    STA AUDF2    ;AUDF2

46AA: 29 0F    07620    AND #$0F    ;KEEP VOLUME
46AC: 8D 01 D2 07630    STA AUDC1    ;DISTORTION 0
46AF: 09 80    07640    ORA 080    ;DISTORTION 8
46B1: 8D 03 D2 07650    STA AUDC2
46B4: 60       07660    RTS
               07670 MSOUND
46B5: A2 01    07680    LDX 001
46B7: A0 02    07690    LDY 002    ;AUDC1 & AUDC2 ARE 2 BYTES APART
46B9: BD 31 41 07700 .1    LDA MBANG,X
46BC: F0 0E    07710    BEQ .2    ;IF 0 THEN NO SOUND
46BE: DE 31 41 07720    DEC MBANG,X    LET IT COUNTDOWN TO 0 EVERY CYCLE
46C1: BD 31 41 07730    LDA MBANG,X
46C4: 99 01 D2 07740    STA AUDC1,Y    AUDC
46C7: A9 00    07750    LDA #$00
46C9: 99 00 D2 07760    STA AUDF1,Y

46CC: 88       07770 .2    DEY
46CD: 88       07780    DEY
46CE: CA       07790    DEX
46CF: 10 E8    07800    BPL .1
46D1: 60       07810    RTS

