ORG $2000›;                     ›;  ãèáòáãôåò óåô äáôá ›;                     ›chset› DB $00,$00,$00,$00,$00,$00,$00,$00› DB $01,$07,$17,$5F,$5F,$5F,$5F,$5F› DB $55,$FF,$FF,$FF,$FF,$FF,$FF,$FF› DB $50,$F4,$F4,$FD,$D5,$55,$45,$41› DB $5F,$5D,$5D,$5D,$5D,$5F,$5F,$5F› DB $5F,$57,$67,$97,$57,$5F,$5F,$5F› DB $51,$55,$55,$55,$55,$D5,$F5,$FD› DB $5F,$1F,$1F,$07,$07,$01,$01,$05› DB $5F,$5F,$5F,$5F,$5F,$5D,$54,$55› DB $FD,$FD,$FD,$F4,$F4,$50,$00,$00› DB $05,$1F,$1F,$7F,$57,$55,$51,$41› DB $55,$FF,$FF,$FF,$FF,$FF,$FF,$FF› DB $40,$D0,$D4,$F5,$F5,$F5,$F5,$F5› DB $45,$55,$55,$55,$55,$57,$5F,$7F› DB $F5,$D5,$D9,$D6,$D5,$F5,$F5,$F5› DB $F5,$75,$75,$75,$75,$F5,$F5,$F5› DB $7F,$7F,$7F,$1F,$1F,$05,$00,$00› DB $F5,$F5,$F5,$F5,$F5,$75,$15,$55› DB $F5,$F4,$F4,$D0,$D0,$40,$40,$50› DB $01,$07,$07,$1F,$1D,$15,$14,$14› DB $55,$FF,$FF,$FF,$55,$55,$55,$14› DB $40,$D0,$D0,$F4,$74,$54,$14,$14› DB $75,$75,$75,$75,$75,$7D,$7F,$7F› DB $14,$55,$55,$55,$55,$55,$55,$FF› DB $5D,$5D,$5D,$5D,$5D,$7D,$FD,$FD› DB $7F,$7F,$5F,$47,$47,$41,$50,$54› DB $FF,$FF,$FF,$FF,$FF,$55,$00,$00› DB $FD,$FD,$F5,$D1,$D1,$41,$05,$15› DB $01,$07,$07,$1F,$1D,$1D,$1D,$1D› DB $55,$FF,$55,$55,$55,$41,$55,$00› DB $40,$D0,$D0,$F4,$74,$74,$74,$74› DB $75,$74,$75,$74,$75,$74,$75,$75› DB $55,$55,$55,$55,$55,$55,$55,$00› DB $5D,$1D,$5D,$1D,$5D,$1D,$5D,$5D› DB $7D,$7F,$5F,$47,$47,$41,$50,$54› DB $55,$FF,$FF,$FF,$FF,$55,$00,$00› DB $7D,$FD,$F5,$D1,$D1,$41,$05,$15› DB $3C,$6A,$BF,$F5,$5F,$FB,$6E,$3C› DB $3C,$6A,$BF,$F5,$5F,$FB,$6E,$3C› DB $3C,$6A,$BF,$F5,$5F,$FB,$6E,$3C› DB $3C,$6A,$BF,$F5,$5F,$FB,$6E,$3C› DB $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA› DB $00,$3F,$3F,$3F,$3F,$3F,$3F,$00› DB $00,$00,$0F,$0F,$0F,$0F,$00,$00› DB $00,$00,$00,$05,$05,$00,$00,$00› DB $00,$7C,$EE,$EE,$EE,$EE,$7C,$00› DB $00,$38,$78,$38,$38,$38,$FE,$00› DB $00,$7C,$EE,$1C,$38,$70,$FE,$00› DB $00,$FE,$1C,$38,$1C,$EE,$7C,$00› DB $00,$1C,$3C,$7C,$EC,$FE,$1C,$00› DB $00,$FE,$E0,$FC,$0E,$EE,$7C,$00› DB $00,$7C,$E0,$FC,$EE,$EE,$7C,$00› DB $00,$FE,$0E,$1C,$38,$70,$70,$00› DB $00,$7C,$EE,$7C,$EE,$EE,$7C,$00› DB $00,$7C,$EE,$7E,$0E,$1C,$78,$00› DB $00,$7C,$E0,$7C,$0E,$FE,$7C,$00› DB $00,$E0,$E0,$E0,$E0,$E0,$FE,$00› DB $00,$38,$FE,$38,$38,$3E,$1E,$00› DB $00,$7C,$FE,$E6,$E0,$E0,$E0,$00› DB $00,$7C,$EE,$FE,$E0,$FE,$7C,$00› DB $00,$FC,$FE,$E6,$E6,$E6,$E6,$00› DB $00,$7E,$F6,$F6,$7E,$0E,$7C,$00› DB $00,$E0,$E0,$FC,$EE,$EE,$EE,$00› DB $00,$F8,$78,$78,$78,$78,$FC,$00› DB $00,$EE,$EE,$EE,$7C,$38,$10,$00› DB $00,$7C,$E0,$E0,$E0,$FC,$7C,$00› DB $00,$7C,$EE,$EE,$EE,$FE,$7C,$00› DB $00,$05,$1F,$1F,$7F,$7F,$7F,$7F› DB $00,$01,$47,$DF,$DD,$FF,$FF,$FF› DB $00,$40,$D0,$D0,$F4,$74,$74,$74› DB $7F,$7F,$7F,$1F,$1F,$1F,$1F,$07› DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF› DB $F4,$F4,$F4,$D0,$D0,$D0,$D0,$40› DB $07,$07,$01,$01,$00,$00,$00,$00› DB $FF,$FF,$FD,$FD,$74,$10,$00,$00› DB $40,$40,$00,$00,$00,$00,$00,$00› DB $01,$05,$15,$15,$55,$55,$56,$54› DB $55,$55,$55,$55,$55,$55,$56,$90› DB $80,$60,$58,$58,$56,$56,$56,$56› DB $58,$58,$54,$16,$15,$15,$05,$05› DB $58,$64,$64,$46,$45,$65,$55,$55› DB $96,$56,$56,$58,$58,$58,$60,$60› DB $06,$00,$01,$05,$05,$01,$00,$00› DB $66,$44,$11,$99,$55,$55,$10,$00› DB $60,$00,$00,$60,$60,$80,$00,$00› DB $02,$1A,$29,$AA,$99,$A5,$65,$A5› DB $9A,$A9,$AA,$FF,$7F,$5D,$5D,$5D› DB $A0,$9A,$A9,$E6,$5A,$55,$56,$56› DB $95,$A5,$AD,$6F,$1F,$3F,$3F,$3F› DB $9D,$9D,$7F,$F3,$FF,$F7,$D1,$40› DB $96,$96,$5E,$FD,$FF,$FF,$FF,$7F› DB $3D,$3D,$3F,$0F,$0F,$03,$00,$00› DB $00,$00,$40,$D1,$F7,$FF,$FF,$00› DB $1F,$1F,$7F,$FC,$FC,$F0,$C0,$00› DB $01,$07,$1F,$1F,$7F,$7D,$75,$75› DB $55,$FF,$FF,$FF,$FF,$FF,$7D,$BE› DB $40,$D0,$F4,$F4,$FD,$7D,$5D,$5D› DB $75,$75,$7D,$7F,$7F,$7F,$7D,$74› DB $BE,$7D,$FF,$FF,$FF,$55,$00,$00› DB $5D,$5D,$7D,$FD,$FD,$FD,$7D,$1D› DB $7D,$7F,$7F,$7F,$7F,$7F,$1D,$04› DB $00,$55,$FF,$FF,$FF,$F7,$D1,$40› DB $7D,$FD,$FD,$FD,$FD,$FD,$F4,$50› DB $01,$05,$05,$17,$15,$15,$55,$5D› DB $5D,$75,$D5,$75,$5D,$55,$69,$AA› DB $40,$50,$50,$54,$54,$54,$75,$5D› DB $75,$D6,$76,$56,$56,$56,$D6,$75› DB $AA,$8A,$82,$82,$92,$92,$A2,$AA› DB $57,$9D,$95,$95,$95,$95,$97,$5D› DB $55,$55,$15,$17,$15,$05,$05,$01› DB $AA,$69,$55,$55,$D7,$DD,$75,$75› DB $55,$55,$54,$54,$54,$50,$50,$40› DB $40,$50,$55,$54,$15,$15,$15,$05› DB $14,$55,$55,$55,$96,$96,$55,$55› DB $01,$05,$55,$15,$54,$54,$54,$50› DB $05,$01,$01,$2A,$2A,$AA,$AA,$A2› DB $69,$82,$55,$55,$AA,$AA,$AA,$AA› DB $50,$40,$40,$A8,$A8,$AA,$AA,$8A› DB $A2,$92,$52,$40,$03,$03,$23,$2A› DB $AA,$AA,$AA,$FF,$FF,$C3,$C3,$82› DB $8A,$86,$85,$01,$C0,$C0,$C8,$A8›run_address› LDA #$FF› STA $0244› LDA #$00› STA just_loaded› LDX #$FF›set_up_loop› LDA #$01› STA pm_area+$0300,X› LDA $D20A› STA starfield,X› DEX› BNE set_up_loop›code_start› LDA #$00› STA $D20E› STA $D40E› JSR off_video› LDA #$E0› STA $D409› LDX #$04›b1_loop› LDA hi_colours,X› STA $D016,X› DEX› BPL b1_loop› LDA #HIGH pm_area› STA $D407› LDA #$01› STA $D01D› LDA #$1D› STA $D012› LDA #LOW hi_dlist› STA $D402› LDA #HIGH hi_dlist› STA $D403› LDA #LOW dli1› STA $0200› LDA #HIGH dli1› STA $0201› JSR init_looney_tune› LDA #$80› STA $D40E› JSR on_video› LDA #$36› STA $D400› LDA just_loaded› BEQ first_game›;                      ›;  ôåóô æïò èéçè óãïòå ›;                      › LDA #LOW [score_starts+$0C]› STA $CB› LDA #HIGH [score_starts+$0C]› STA $CC› LDX #$00›hs1_loop› LDY #$00›hs2_loop› LDA ($CB),Y› CLC› ADC #$1D› CMP scrn_start+$03E1,Y› BMI a_new_high_score› BNE hs1_skip› INY› CPY #$07› BNE hs2_loop›hs1_skip› LDA $CB› CLC› ADC #$14› STA $CB› LDA $CC› ADC #$00› STA $CC› INX› CPX #$05› BNE hs1_loop› BEQ wait_for_start›a_new_high_score› JSR add_high_score› JMP wait_for_start›first_game› INC just_loaded›wait_for_start› LDA $D01F› CMP #$06› BNE wait_for_start› JSR release_wait›;                   ›;  ôèå íáéî ðòïçòáí ›;                   ›start› LDA #$00› LDX #$08›quiet_loop› STA $D200,X› DEX› BPL quiet_loop› JSR initialise›main_loop› JSR consol_keys› JSR vb_wait› JSR perform_fire› JSR collision_handling› JSR handle_monsters› JSR draw_player› LDX #$07›m_loop1› LDA $D20A› AND m_data,X› STA chset+$0128,X› STA chset+$0130,X› STA chset+$0138,X› STA chset+$0140,X› DEX› BPL m_loop1› JSR consol_keys› JSR vb_wait› JSR fire_test› JSR perform_fire› JSR collision_handling› JSR handle_monsters› JSR read_stick› LDA stick_direction› CMP #$FF› BEQ continue› LDA #$04› STA frame› JSR draw_player› LDA stick_direction › BNE m_skip1› JSR move_right › JMP continue›m_skip1› CMP #$01› BNE m_skip2› JSR move_left› JMP continue›m_skip2› CMP #$02› BNE m_skip3› JSR move_down› JMP continue›m_skip3› CMP #$03› BNE m_skip4› JSR move_up› JMP continue›m_skip4› CMP #$04› BNE m_skip5› JSR move_down› JSR move_right› JMP continue›m_skip5› CMP #$05› BNE m_skip6› JSR move_up› JSR move_left› JMP continue›m_Skip6› CMP #$06› BNE m_skip7› JSR move_down› JSR move_left› JMP continue›m_skip7› JSR move_up› JSR move_right›continue› JSR draw_player› JMP main_loop››release_wait› LDX #$04›debounce_loop› LDA $D01F› CMP #$07› BNE release_wait› DEX› BPL debounce_loop› RTS››consol_keys› LDA $D01F› CMP #$03› BNE ck1_skip› JSR no_noise› JSR release_wait›ck1_loop› LDA $D01F› CMP #$03› BNE ck1_loop› JSR release_wait› RTS›ck1_skip› CMP #$06› BNE ck2_skip› JSR no_noise› JSR release_wait› LDX #$00› TXS› JMP code_start›ck2_skip› RTS ››no_noise› LDA #$00› LDX #$05›nn1_loop› STA $D200,X› DEX› DEX› BPL nn1_loop› RTS››just_loaded = $E5›m_data› DB $3C,$7E,$FF,$FF,$FF,$FF,$7E,$3C›hi_colours› DB $8C,$0E,$00,$4A,$00›hi_dlist› DB $70,$70,$70,$B0,$46› DW hi_scrn_start› DB $70,$07,$30,$06,$30,$70,$07› DB $70,$06,$70,$06,$70,$06› DB $70,$06,$70,$06› DB $70,$02,$00,$02,$00,$02,$41› DW hi_dlist›hi_scrn_start› DB 0,0,33,46,33,44,47,39,0› DB 48,50,37,51,37,46,52,51,0,0,0› DB 0,0,'floyd',0,'the',0› DB 'droid',0,0,0› DB 0,0,0,'goes',0,'blastin'› DB 71,0,0,0,0› DB 0,0,0,0,168,169,167,168,0› DB 179,163,175,178,165,179› DB 0,0,0,0,0›score_starts› DB 0,240,236,225,249,243,239,230› DB 244,0,0,0,16,16,16,17,16,16,16,0› DB 0,240,236,225,249,243,239,230› DB 244,0,0,0,16,16,16,16,21,16,16,0› DB 0,240,236,225,249,243,239,230› DB 244,0,0,0,16,16,16,16,18,21,16,0› DB 0,240,236,225,249,243,239,230› DB 244,0,0,0,16,16,16,16,17,18,21,0› DB 0,240,236,225,249,243,239,230› DB 244,0,0,0,16,16,16,16,16,21,16,0› DB 0,0,0,0,0,0,0,35,'opyright',0› DB 8,35,9,17,25,24,22,0› DB 48,'laysoft',0,0,0,0,0,0,0› DB 0,0,0,0,0,0,0,0,0,48,'rogrammed'› DB 0,'by',0,48,'aul',0,44,'ay'› DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0› DB 0,0,48,'ress',0,179,180,161,178› DB 180,0,'to',0,'begin'› DB 0,'game',0,0,0,0,0,0,0,0››dli1› PHA› TXA› PHA› TYA› PHA› LDX #$A0› LDY rainbow›dli1loop› LDA starfield,X› STA $D40A› STA $D004› STY $D018› INY› DEC starfield,X› TXA› AND #$01› BEQ dli1skip› DEC starfield,X›dli1skip› DEX› BNE dli1loop› STX $D004› LDY #$02›dli12loop› LDA line_colours,Y› LDX #$07›dli13loop› STA $D40A› STA $D018› SEC› SBC #$01› DEX› BPL dli13loop› STA $D40A› DEY› BPL dli12loop› INC rainbow› JSR looney_tune› PLA› TAY› PLA › TAX› PLA› RTI››pm_area = $3800›starfield = $3C00›line_colours› DB $CA,$8A,$1A›rainbow = $E7››dli2› PHA› TXA› PHA› LDA #$0E› LDX #$AA› STA $D40A› STX $D018› STA $D017› DEX›dli2loop› STA $D40A› STX $D018› DEX› CPX #$A2› BNE dli2loop› LDA #$86› LDX #$CC› STA $D40A› STA $D017› STX $D018› PLA› TAX› PLA› RTI› ›init_looney_tune› LDA #$63› STA $D208› LDA #$03› STA $D20F› LDA #$C6› STA $D201› LDA #$00› STA ltdelay› STA the_note› STA screach› STA phase› STA bass› STA percuss› RTS››looney_tune› INC ltdelay› LDA ltdelay› AND #$01› BEQ ltexit› LDA screach› STA $D200› INC screach› LDA $D20A› AND #$3F› STA $D204› LDA percuss› STA $D205› CLC› ADC #$04› CMP #$09› BCC lt1skip› LDA #$00›lt1skip› STA percuss› LDA bass› ORA #$A0› STA $D203› STA $D207› LDX the_note› LDA notes,X› STA $D202› CLC› ADC #$01› STA $D206› LDA bass› CLC› ADC #$03› CMP #$0D› BCC lt2skip› LDA #$00›lt2skip› STA bass› LDA phase› CLC› ADC #$14› STA phase› BVS ltnext›ltexit› RTS›ltnext › INX› CPX #$13› BMI lt3skip› LDX #$00›lt3skip› STX the_note› RTS››ltdelay = $E8›the_note = $E9›phase = $EA›screach = $EB›bass = $EC›percuss = $ED››notes› DB 80,100,80,120,80,100,80,120› DB 100,120,100,140,120,160,140› DB 160,180,160,200››initialise›;                                  ›;  óåô õð ôèå ãèáòáãôåò óåô¬ ãìåáò ›;  ôèå óãòååî áòåᬠóåô õð ôèå     ›;  äéóðìáù ìéóô¬ éîéôéáìéóå ôèå    ›;  ðìáùåò¬ íéóóéìåó áîä íïîóôåòó   ›;                                  › LDA #$00› STA $D40E› JSR off_video› LDA #HIGH chset› STA $D409› LDA #LOW scrn_start› STA $CD› LDA #HIGH scrn_start› STA $CE› LDA #$00› LDX #$03›i_loop1› LDY #$00›i_loop2› STA ($CD),Y› INY› BNE i_loop2› INC $CE› DEX› BPL i_loop1› LDX #$27›i_loop3› LDA text,X› STA scrn_start+$03C0,X› DEX› BPL i_loop3 › LDA #LOW d_list› STA $D402› LDA #HIGH d_list› STA $D403› LDA #LOW dli2› STA $0200› LDA #HIGH dli2› STA $0201› LDA #$80› STA $D40E› LDX #$04›i_loop4› LDA colours,X› STA $D016,X› DEX› BPL i_loop4› LDA #$12› STA play_x› LDA #$0A› STA play_y› LDA #$00› STA frame› JSR draw_player› LDX #$03›i_loop5› LDA #$FF› STA b_directions,X› LDA #$00› STA first_shot,X› DEX› BPL i_loop5› STA alive_monsters› STA init_monsters› JSR handle_monsters› LDA #$00› STA $D208› LDA #$03› STA $D20F› JSR on_video› RTS ››play_x = $D0›play_y = $D1›frame = $DB›d_list› DB $70,$70› DB $44› DW scrn_start› DB $04,$04,$04,$04,$04,$04,$04› DB $04,$04,$04,$04,$04,$04,$04› DB $04,$04,$04,$04,$04,$04,$04› DB $04,$84,$02› DB $41› DW d_list›text› DB $37,$39,$3A,$3B,$3C,$3D,$39,$3E› DB $00,$2D,$2D,$2E,$2D› DB $00,$00› DB $38,$3B,$40,$3B,$3F› DB $00,$2D,$2D,$2D,$2D› DB $00,$00› DB $37,$41,$42,$3A,$3B› DB $00,$2D,$2D,$2D,$2D,$2D,$2D,$2D›colours› DB $0E,$86,$CC,$38,$00››vb_wait›;                              ›;  ÷áéô æïò ôèå öåòôéãáì âìáîë ›;  ðåòéïä                      ›;                              › LDA $D40B› CMP #$74› BNE vb_wait› RTS››off_video› LDA $D40B› BNE off_video› STA $D400› RTS››on_video› LDA $D40B› BNE on_video› LDA #$22› STA $D400› RTS››read_stick ›;                               ›;  òåáä êïùóôéãë éî ðïòô £° áîä ›;  òåôõòî ôèå äéòåãôéïî éî      ›;  óôéãëßäéòåãôéïî              ›;                               › LDA $D300› AND #$0F› LDX #$07›r_loop1› CMP joy_values,X› BEQ r_skip1› DEX› BPL r_loop1› LDX #$FF›r_skip1› STX stick_direction› RTS››stick_direction = $D6›joy_values› DB $07,$0B,$0D,$0E› DB $05,$0A,$09,$06› ›fire_test›;                               ›;  ôåóô æïò ôèå ðìáùåò æéòéîç á ›;  íéóóéìå áîä áãôéöáôå á îå÷   ›;  íéóóéìå áððòïðòéáôåìù        ›;                               › LDX #$03›test_missile_loop› LDA b_directions,X› CMP #$FF› BEQ available_missiles› DEX› BPL test_missile_loop› RTS›available_missiles› LDA $D010› BEQ trigger_pressed› RTS›trigger_pressed› STX $CD› JSR read_stick› LDX $CD› LDA stick_direction› CMP #$FF› BNE fire_missile› RTS›fire_missile› STA b_directions,X› INC first_shot,X› CMP #$00› BNE t_skip1› LDA play_x› CLC› ADC #$02› STA miss_x,X› LDA play_y› CLC› ADC #$01› STA miss_y,X› RTS›t_skip1› CMP #$01› BNE t_skip2› LDA play_x› STA miss_x,X› LDA play_y› CLC› ADC #$01› STA miss_y,X› RTS›t_skip2› CMP #$02› BNE t_skip3› LDA play_x› CLC› ADC #$01› STA miss_x,X› LDA play_y› CLC› ADC #$02› STA miss_y,X› RTS›t_skip3› CMP #$03› BNE t_skip4› LDA play_x› CLC› ADC #$01› STA miss_x,X› LDA play_y› STA miss_y,X› RTS›t_skip4› CMP #$04› BNE t_skip5› LDA play_x› CLC› ADC #$02› STA miss_x,X› LDA play_y› CLC› ADC #$02› STA miss_y,X› RTS›t_skip5› CMP #$05› BNE t_skip6› LDA play_x› STA miss_x,X› LDA play_y› STA miss_y,X› RTS›t_skip6› CMP #$06› BNE t_skip7› LDA play_x› STA miss_x,X› LDA play_y› CLC› ADC #$02› STA miss_y,X› RTS›t_skip7› LDA play_x› CLC› ADC #$02› STA miss_x,X› LDA play_y› STA miss_y,X› RTS››perform_fire›;                                  ›;  íïöå áîù áãôéöå íéóóéìåó éî ôèå ›;  áððòïðòéáôå äéòåãôéïî           ›;                                  › LDX #$03›next_missile› LDA b_directions,X› CMP #$FF› BNE live_missile›return› DEX› BPL next_missile› RTS›live_missile› LDA first_shot,X› BNE move_missile› LDA miss_x,X› STA x_pos› LDA miss_y,X› STA y_pos› JSR form_address› LDA #$00› LDY #$00› STA ($CB),Y›move_missile› LDA #$00› STA first_shot,X› LDA b_directions,X› BNE p_skip1› INC miss_x,X› LDA miss_x,X› BPL m_sound›p_skip1› CMP #$01› BNE p_skip2› DEC miss_x,X› LDA #$28› SEC› SBC miss_x,X› BPL m_sound›p_skip2› CMP #$02› BNE p_skip3› INC miss_y,X› LDA miss_y,X› BPL m_sound›p_skip3› CMP #$03› BNE p_skip4› DEC miss_y,X› LDA #$18› SEC› SBC miss_y,X › BPL m_sound›p_skip4› CMP #$04› BNE p_skip5› INC miss_x,X› INC miss_y,X› LDA miss_y,X› BPL m_sound›p_skip5› CMP #$05› BNE p_skip6› DEC miss_x,X› DEC miss_y,X› LDA #$18› SEC› SBC miss_y,X› BPL m_sound›p_skip6› CMP #$06› BNE p_skip7› DEC miss_x,X› INC miss_y,X› LDA miss_y,X› BPL m_sound›p_skip7› INC miss_x,X› DEC miss_y,X› LDA #$18› SEC› SBC miss_y,X›m_sound› LSR A› STA $D200› LDA #$8A› STA $D201›range_check› LDA miss_x,X› BMI out_of_range› CMP #$28› BPL out_of_range› STA x_pos› LDA miss_y,X› BMI out_of_range› CMP #$18› BPL out_of_range› STA y_pos› JSR form_address› TXA› CLC› ADC #$A5› LDY #$00› STA ($CB),Y› JMP return›out_of_range› LDA #$00› STA $D201› LDA #$FF› STA b_directions,X› JMP return››draw_player›;                                ›;  äòá÷ ôèå ðìáùåò áô ôèå óãòååî ›;  ðïóéôéïî óðåãéæéåä éî ðìáùßø  ›;  ¦ ðìáùßù ÷éôè ôèå óðåãéæéåä   ›;  æòáíå                         ›;                                › LDA play_x› STA x_pos› LDA play_y› STA y_pos› JSR form_address › LDA #$02› STA $CD› LDA frame› ASL A› ASL A› ASL A› CLC› ADC frame› TAX›d_loop1› LDY #$00›d_loop2› LDA droid_data,X› STA ($CB),Y› INX› INY› CPY #$03› BNE d_loop2› LDA $CB› CLC› ADC #$28› STA $CB› LDA $CC› ADC #$00› STA $CC› DEC $CD› BPL d_loop1› RTS››droid_data› DB $01,$02,$03,$04,$05,$06› DB $07,$08,$09› DB $0A,$0B,$0C,$0D,$0E,$0F› DB $10,$11,$12 › DB $13,$14,$15,$16,$17,$18› DB $19,$1A,$1B› DB $1C,$1D,$1E,$1F,$20,$21› DB $22,$23,$24› DB $00,$00,$00,$00,$00,$00› DB $00,$00,$00››form_address›;                              ›;  òåôõòî ôèå óôïòå áääòåóó éî ›;  ìïãáôéïîó ¤Ã ¦ ¤ÃÄ ïæ ôèå  ›;  óãòååî ðïóéôéïîó óðåãéæéåä  ›;  éî øßðïó áîä ùßðïó          ›;                              › LDA #LOW scrn_start› STA $CB› LDA #HIGH scrn_start› STA $CC› LDA y_pos› STA $CD› LDA #$00› STA $CE› LDY #$02›f_loop1› ASL $CD› ROL $CE› DEY› BPL f_loop1› LDA $CB› CLC› ADC $CD› STA $CB› LDA $CC› ADC $CE› STA $CC› LDY #$01›f_loop2› ASL $CD› ROL $CE› DEY› BPL f_loop2› LDA $CB› CLC› ADC $CD› STA $CB› LDA $CC› ADC $CE› STA $CC› LDA $CB› CLC› ADC x_pos› STA $CB› LDA $CC› ADC #$00› STA $CC› RTS› ›x_pos = $D4›y_pos = $D5› ›move_right› LDA #$00› STA frame› LDA play_x› CMP #$25› BPL right_skip› INC play_x›right_skip› RTS› ›move_left› LDA #$01› STA frame› LDA play_x› BEQ left_skip› DEC play_x›left_skip› RTS››move_down› LDA #$02› STA frame› LDA play_y› CMP #$15› BPL down_skip› INC play_y›down_skip› RTS››move_up› LDA #$03› STA frame› LDA play_y› BEQ up_skip› DEC play_y›up_skip› RTS› ›handle_monsters›;                           ›;  õðäáôå áìì ôèå íïîóôåòó¬ ›;  áãôéöáôéîç á îå÷ óåô éæ  ›;  îåãåóóáòù                ›;                           › INC tick_tock› LDA alive_monsters› BNE move_monsters› LDA init_monsters› CMP #$FF› BEQ h_skip1› INC init_monsters›h_skip1› LDX #$00›h_loop1› JSR activate_new_monster› INX› CPX init_monsters› BNE h_loop1› STX alive_monsters› STX new_activation› JSR up_level›move_monsters› LDX #$00›more_monsters_loop› LDA m_directions,X› CMP #$04› BMI ss4› JMP non_active_monster›ss4› LDA new_activation› BEQ ss1› JMP a_new_set_of_monsters›ss1› LDA m_delays,X› BEQ ss2› JMP sleeping_monster›ss2› LDA #$04› STA monsta› JSR draw_monster› LDA tick_tock› AND #$01› BEQ force_movement› LDA init_monsters› CMP #$14› BCC display_monster›force_movement› LDA m_directions,X› BNE u_skip1› INC m_xpositions,X› LDA m_xpositions,X› BNE test_on_screen›u_skip1› CMP #$01› BNE u_skip2› DEC m_xpositions,X› LDA m_xpositions,X› JMP test_on_screen›u_skip2› CMP #$02› BNE u_skip3› INC m_ypositions,X› LDA m_ypositions,X› BNE test_on_screen›u_skip3› DEC m_ypositions,X› LDA m_ypositions,X›test_on_screen› STA $D204› LDA #$26› STA $D205› LDA m_xpositions,X› BMI is_off_screen› CMP #$26› BPL is_off_screen› LDA m_ypositions,X› BMI is_off_screen› CMP #$16› BMI display_monster›is_off_screen› LDA #$00› STA $D205› JSR reactivate_monster›display_monster› LDA m_frames,X› STA monsta› JSR draw_monster› JMP h_skip2›non_active_monster› CMP #$0D› BEQ h_skip2› AND #$0E› SEC› SBC #$04› LSR A› STA monsta› BNE just_died_skip› LDA #$00› STA $D205› BPL still_dying›just_died_skip› CMP #$04› BNE still_dying› DEC alive_monsters› LDA #$00› STA $D203 › BPL skip_sound›still_dying› ASL A› ASL A› ASL A› ASL A› STA $D202› LDA #$2E› STA $D203›skip_sound› JSR draw_monster› INC m_directions,X›h_skip2› INX› CPX init_monsters› BEQ ss3› JMP more_monsters_loop›ss3› RTS›a_new_set_of_monsters› LDA #$00› STA new_activation› BEQ display_monster›sleeping_monster› DEC m_delays,X› JMP display_monster››alive_monsters = $DC›init_monsters = $DD›new_activation = $DE›tick_tock = $E4››activate_new_monster›;                            ›;  áãôéöáôå á îå÷ íïîóôåò áó ›;  óðåãéæéåä éî òåçéóôåò Ø   ›;                            › LDA $D20A› AND #$07› CLC› ADC #$05› STA m_frames,X›reactivate_monster›;                               ›;  óðåãéáì åîôòù ðïéîô áììï÷éîç ›;  æïò ôèå òåáãôéöáôéïî ïæ áî   ›;  åøéóôéîç íïîóôåò¬ áçáéî      ›;  óðåãéæéåä éî òåçéóôåò Ø      ›;                               › LDA $D20A› AND #$03› STA m_directions,X› BNE a_skip1› LDA #$00› STA m_xpositions,X› LDA $D20A› AND #$1F› STA m_ypositions,X› BPL bounds_check›a_skip1› CMP #$01› BNE a_skip2› LDA #$25› STA m_xpositions,X› LDA $D20A› AND #$1F› STA m_ypositions,X› BPL bounds_check›a_skip2› CMP #$02› BNE a_skip3› LDA $D20A› AND #$3F› STA m_xpositions,X› LDA #$00› STA m_ypositions,X› BPL bounds_check›a_skip3› LDA $D20A› AND #$3F› STA m_xpositions,X› LDA #$15› STA m_ypositions,X›bounds_check› LDA m_xpositions,X› CMP #$26› BMI a_skip4› AND #$25› STA m_xpositions,X›a_skip4› LDA m_ypositions,X› CMP #$16› BMI a_skip5› AND #$15› STA m_ypositions,X›a_skip5› LDA $D20A› AND #$3F› STA m_delays,X› RTS››draw_monster›;                                ›;  äòá÷ ôèå íïîóôåò óðåãéæéåä éî ›;  òåçéóôåò Ø ÷éôè ôèå æòáíå     ›;  óðåãéæéåä éî íïîóôá           ›;                                › STX $E0› LDA m_xpositions,X› STA x_pos› LDA m_ypositions,X› STA y_pos› JSR form_address› LDA #$02› STA $CD› LDA monsta› ASL A› ASL A› ASL A› CLC› ADC monsta › TAX›row_loop› LDY #$02›column_loop› LDA evil_monster_data,X› STA ($CB),Y› INX› DEY› BPL column_loop› LDA $CB› CLC› ADC #$28› STA $CB› LDA $CC› ADC #$00› STA $CC› DEC $CD› BPL row_loop› LDX $E0› RTS› ›monsta = $DF›evil_monster_data› DB $29,$29,$29,$29,$29,$29› DB $29,$29,$29› DB $AA,$AA,$AA,$AA,$AA,$AA› DB $AA,$AA,$AA› DB $2B,$2B,$2B,$2B,$2B,$2B› DB $2B,$2B,$2B› DB $2C,$2C,$2C,$2C,$2C,$2C› DB $2C,$2C,$2C› DB $00,$00,$00,$00,$00,$00› DB $00,$00,$00› DB $C5,$C4,$C3,$C8,$C7,$C6› DB $CB,$CA,$C9› DB $4E,$4D,$4C,$51,$50,$4F› DB $54,$53,$52› DB $57,$56,$55,$5A,$59,$58› DB $5D,$5C,$5B› DB $60,$5F,$5E,$63,$62,$61› DB $66,$65,$64› DB $E9,$E8,$E7,$EC,$EB,$EA› DB $EF,$EE,$ED› DB $72,$71,$70,$75,$74,$73› DB $78,$77,$76› DB $E0,$DF,$DE,$E3,$E2,$E1› DB $E6,$E5,$E4› DB $D7,$D6,$D5,$DA,$D9,$D8› DB $DD,$DC,$DB ››collision_handling›;                               ›;  äåôåòíéîå ÷èåôèåò áîù ïæ ôèå ›;  ãõòòåîôìù áãôéöå íïîóôåòó    ›;  èáöå ãïììéäåä ÷éôè åéôèåò á  ›;  âõììåô ïò ôèå ðìáùåò         ›;                               › LDX #$00›c_main_loop› LDA m_directions,X› CMP #$04 › BPL next_monster› LDA m_xpositions,X› STA x_pos› LDA m_ypositions,X› STA y_pos› JSR form_address› LDA #$02› STA $CD›next_row› LDY #$02›next_column › LDA ($CB),Y› AND #$7F› BEQ no_collision› CMP #$29› BPL no_collision› CMP #$25› BMI player_collision_only› SEC› SBC #$25› TAY› LDA #$FF› STA b_directions,Y› LDA #$00› STA $D201› BEQ both_collisions›player_collision_only› LDA m_frames,X› CMP #$05› BNE no_heart› JSR up_strength› JMP both_collisions›no_heart› JSR down_strength›both_collisions› LDA #$04› STA m_directions,X› JSR up_score›next_monster› INX› CPX init_monsters› BNE c_main_loop› RTS›no_collision› DEY› BPL next_column› LDA $CB› CLC› ADC #$28› STA $CB› LDA $CC› ADC #$00› STA $CC› DEC $CD› BPL next_row› BMI next_monster ›down_strength›;                               ›;  äåãòåíåîô ôèå óôòåîçôè ôïôáì ›;  âù ±                         ›;                               › LDY #$03›ds_1loop› LDA scrn_start+$03C9,Y› SEC› SBC #$01› CMP #$2D› BMI ds_1skip› STA scrn_start+$03C9,Y› CPY #$03› BNE ds_2skip›ds_2loop› LDA scrn_start+$03C9,Y› CMP #$2D› BNE ds_2skip› DEY› BPL ds_2loop› BMI death›ds_2skip› RTS›ds_1skip› LDA #$36› STA scrn_start+$03C9,Y› DEY› BPL ds_1loop› RTS›death› LDA #$00› STA $D201› STA $D203› LDA #$AE› STA $D205› LDA #$1F› STA $E1›dth_1loop› LDA #$FF› STA $E2›dth_2loop› LDA play_x› STA x_pos› LDA play_y› STA y_pos› JSR form_address› LDX #$02›dth_3loop› LDY #$02›dth_4loop› LDA $D20A› STA $D204› AND #$83› CLC› ADC #$29› STA ($CB),Y› DEY› BPL dth_4loop› LDA $CB› CLC› ADC #$28› STA $CB› LDA $CC› ADC #$00› STA $CC› DEX› BPL dth_3loop› DEC $E2› BNE dth_2loop› DEC $E1› BNE dth_1loop› LDX #$00› STX $D205› TXS› JMP code_start››up_strength›;                               ›;  éîãòåíåîô ôèå óôòåîçôè ôïôáì ›;  âù ²                         ›;                               › LDA scrn_start+$03CC› CLC› ADC #$02› CMP #$37› BPL ps_1skip› STA scrn_start+$03CC› RTS›ps_1skip › SEC› SBC #$0A› STA scrn_start+$03CC› LDY #$02›ps_1loop› LDA scrn_start+$03C9,Y› CLC› ADC #$01› CMP #$37› BMI ps_2skip› LDA #$2D› STA scrn_start+$03C9,Y› DEY› BPL ps_1loop› RTS›ps_2skip› STA scrn_start+$03C9,Y› RTS››up_level›;                              ›;  éîãòåíåîô ôèå ìåöåì äéóðìáù ›;                              › LDY #$03›ul_loop1 › LDA scrn_start+$03D5,Y› CLC› ADC #$01› CMP #$37› BMI ul_skip1› LDA #$2D› STA scrn_start+$03D5,Y› DEY› BPL ul_loop1› RTS›ul_skip1› STA scrn_start+$03D5,Y› RTS››up_score›;                              ›;  éîãòåíåîô ôèå óãïòå äéóðìáù ›;                              › LDY #$06›us_loop1› LDA scrn_start+$03E1,Y› CLC› ADC #$01› CMP #$37› BMI us_skip1› LDA #$2D› STA scrn_start+$03E1,Y› DEY› BPL us_loop1› RTS›us_skip1› STA scrn_start+$03E1,Y› RTS››add_high_score›;                               ›;  íáëå á èéçè óãïòå åîôòù æïò  ›;  ôèå ôáâìå ðïóéôéïî ðáóóåä éî ›;  òåçéóôåò Ø                   ›;                               › STX $E3› LDA #LOW [score_starts+60]› STA $CB› LDA #HIGH [score_starts+60]› STA $CC› LDA #$04› SEC› SBC $E3› TAX›ah1_loop› BEQ ah1_skip› LDA $CB› CLC › ADC #$14› STA $CD› LDA $CC› ADC #$00› STA $CE› LDY #$13›ah2_loop› LDA ($CB),Y› STA ($CD),Y› DEY› BPL ah2_loop› LDA $CB› SEC› SBC #$14› STA $CB› LDA $CC› SBC #$00› STA $CC› DEX› BPL ah1_loop›ah1_skip› LDA #LOW score_starts› STA $CB› LDA #HIGH score_starts› STA $CC› LDA $E3› ASL A› ASL A› PHA› CLC› ADC $CB› STA $CB› LDA $CC› ADC #$00› STA $CC› PLA› ASL A› ASL A› CLC› ADC $CB› STA $CB› LDA $CC› ADC #$00› STA $CC› LDY #$08›ah3_loop› LDA name_buffer-1,Y› TAX› LDA name_characters,X› STA ($CB),Y› DEY› BNE ah3_loop› LDA $CB› CLC› ADC #$0C› STA $CD› LDA $CC› ADC #$00› STA $CE› LDY #$06›ah4_loop› LDA scrn_start+$03E1,Y› SEC› SBC #$1D› STA ($CD),Y› DEY› BPL ah4_loop›;                 ›;  îï÷ åîôåò îáíå ›;                 › LDA $CB› CLC› ADC #$01› STA $CD› LDA $CC› ADC #$00› STA $CE› LDY #$00›en1_loop› JSR vb_delay› LDA #$7F› STA ($CD),Y› JSR vb_delay› LDA name_buffer,Y› TAX› LDA name_characters,X› STA ($CD),Y› LDA $D010› BEQ en5_skip› JSR read_stick› LDA stick_direction› BNE en1_skip› INY› CPY #$08› BMI en1_loop› LDY #$00› BPL en1_loop›en1_skip› CMP #$01› BNE en2_skip› DEY› BPL en1_loop› LDY #$07› BPL en1_loop ›en2_skip› CMP #$02› BNE en3_skip› LDA name_buffer,Y› SEC› SBC #$01› BPL en4_skip› LDA #$24› BPL en4_skip›en3_skip› CMP #$03› BNE en1_loop› LDA name_buffer,Y› CLC› ADC #$01› CMP #$25› BMI en4_skip› LDA #$00›en4_skip› STA name_buffer,Y› JMP en1_loop›en5_skip› LDA $D010› BEQ en5_skip› RTS››vb_delay› LDX #$02›vb1_loop› LDA $D40B› BNE vb1_loop›vb2_loop› LDA $D40B› BEQ vb2_loop› DEX› BPL vb1_loop› RTS››name_characters› DB 0›character SET 225› ECHO 26› DB character›character SET character+$01› ENDM›character SET 208› ECHO 10› DB character›character SET character+$01› ENDM››name_buffer› DB 0,0,0,0,0,0,0,0››;               ›;  óïíå åñõáôåó ›;                ›m_frames››m_directions = m_frames + $0100››m_xpositions = m_directions + $0100››m_ypositions = m_xpositions + $0100››m_delays = m_ypositions + $0100››b_directions = m_delays + $0100››first_shot = b_directions + $04››miss_x = first_shot + $04››miss_y = miss_x + $04››scrn_start = miss_y + $04›› END run_address›