0 ;SUBROUTINE FIRETQ:USE TO ALLOW 01 ;THE TROLL FIRE A MISSILE. 02 ;IF TRIGGER 0 IS PRESSED 03 ;AND MISSILE IS NOT FIRED YET, 04 ;THEN MISSILE IS FIRED IN THE 05 ;DIRECTION EQUAL TO JOYSTICK 06 ;0 POSITION 07 ; 50 FIRETQ LDA SQFLAG+1 ;TEST FLAG FOR MISSILED FIRED 60 CMP #1 ;IF = 1 THEN OK TO FIRE MISSILE 70 BEQ TQ0 80 RTS 90 TQ0 LDA $0284 ;LOAD TRIGGER 0100 BEQ TQ1 0110 RTS 0120 TQ1 LDA $0278 ;LOAD JOYSTICK VALUE 0130 ;DETERMINE DIRECTION THAT MISSILE IS TO MOVE 0140 CMP #7 0150 BEQ PLACETQ 0160 CMP #11 0170 BEQ PLACETQ 0180 CMP #13 0190 BEQ PLACETQ 0200 CMP #14 0210 BEQ PLACETQ 0220 RTS 0230 PLACETQ STA DIRFLAG+1 ;SAVE DIRECTION MISSILE IS TO MOVE 0240 STA SQFLAG+1 ;SET FLAG THAT MISSILE IS FIRED 0250 LDY P1 ;LOAD HORIZ POS OF MAN 0260 STY MISP1+1 ;SAVE AS HORIZ 0270 STY $D007 ;POS OF MISSILE 0280 CLC 0290 LDA TOP1+3 ;TOP OF MAN 0300 ADC #4 ;FIND MIDDLE OF MAN 0310 STA MIS2+1 ;SAVE AS MISSILE VERT POS 0320 TAX 0330 LDA MIS,X 0340 ORA #192 ;MISSILE DRAWING 0350 STA MIS,X ;DISPLAY MISSILE 0360 RTS