| 
         IF      L.FGHT = OFF     ;-------------------------------------------
         LIST    -L               ;--  FIGHT  --------------------------------
         ENDIF                    ;-------------------------------------------
;
;
;
;
;  HANDLE FIGHTING WARRIOR LOGIC
;  =============================
;
         SETDP   $00
;        =====   ===
;
FIGHT    PSHS    DP               ;  SAVE ENTRY VALUES
;
         LDA     WARFLG           ;  HAS WARRIOR BEEN KILLED ?
         LBEQ    CHAMBR           ;  .
;
         LDA     #$C8             ;  SET 'DP' = RAM
         TFR     A,DP             ;  .
         SETDP   $C8              ;  .
;
         CLR     TEMP1            ;  CLEAR MOTION FLAG
         CLR     RFLAG            ;  CLEAR DRAW REVERSE FLAG
;
         LDA     WARTHR           ;  IS WARRIOR ALREADY THROWING ?
         BNE     THWDRW           ;  .
;
         LDA     WARINH           ;  IS WARRIOR ACTION INHIBITED ?
         LBNE    SHFL4            ;  .
;
;
         LDA     TSTRT            ;  THROW FLAMOID STRAIGHT ?
         BEQ     THRW1            ;  .
         LDA     #$00             ;  .    SET FLAMOID ANGLE
         BRA     THRW3            ;  .    .
;
THRW1    LDA     TRGHT            ;  THROW FLAMOID RIGHT ?
         BEQ     THRW2            ;  .
         LDA     #$3D             ;  .    SET FLAMOID ANGLE
         BRA     THRW3            ;  .    .
;
THRW2    LDA     TLEFT            ;  THROW FLAMOID LEFT ?
         BEQ     SHUFLE           ;  .
         LDA     #$03             ;  .    SET FLAMOID ANGLE
;
THRW3    INC     WARTHR           ;  SET-UP FLAMOID TABLE ENTRY
         CLR     WARFRM           ;  .    CLEAR FRAME COUNTER
         STA     THRANG           ;  .    SAVE FLAMOID ANGLE
;
;
THWDRW   LDA     FRAM1            ;  DISPLAY THROWING WARRIOR
         BNE     THWDR1           ;  .    LIMIT ANIMATION RATE
;
         LDX     #WTHRW           ;  .    INCREMENT FRAME BIAS
         INC     WARFRM           ;  .    .    RELEASE FLAMOID ?
         LDA     WARFRM           ;  .    .    .
         LDA     A,X              ;  .    .    .
         BEQ     THWDR1           ;  .    .    .
;
         LDA     WARYW            ;  .    RELEASE FLAMOID
         CLRB                     ;  .    .    SET 'Y' AXIS STARTING POSITION
         TFR     D,Y              ;  .    .    .
         LDA     WARXW            ;  .    .    SET 'X' AXIS STARTING POSITION
         ADDA    #$02             ;  .    .    .
         CLRB                     ;  .    .    .
         TFR     D,X              ;  .    .    .
         LDB     #$F8             ;  .    .    SET 'Z' AXIS
         LDA     THRANG           ;  .    .    SET THROW ANGLE
         JSR     SETFLM           ;  .    .
         LDA     FLMFLG,U         ;  .    .    FLAG THAT THIS IS WARRIOR FLAME
         ORA     #$40             ;  .    .    .
         STA     FLMFLG,U         ;  .    .    .
;
THWDR1   JSR     FPROJ            ;  .    PROJECT WARRIOR INTO 3-D
;
         LDX     #WWAR12          ;  .    DISPLAY THROWING WARRIOR
         STX     DRWLS2           ;  .    .    FETCH LEFT SIDE ANIMATION
         LDA     WARFRM           ;  .    .    FETCH RIGHT SIDE ANIMATION
         LSLA                     ;  .    .    .
         LDX     #THROW1          ;  .    .    .
         LDX     A,X              ;  .    .    .
         STX     DRWLS1           ;  .    .    .
         BNE     THDRW2           ;  .    .    .    IF ZERO, RESTART ANIMATION
;
         CLR     WARTHR           ;  .    .    RESET ANIMATION
         CLR     WARFRM           ;  .    .    .
         BRA     SHFL6            ;  .    .    .
;
THDRW2   LDB     #$7F             ;  .    .    FETCH SIZE
         SUBB    DRWSCZ           ;  .    .    .
         SUBB    #$10             ;  .    .    .
         LDA     #$70             ;  .    .    SET INTENSITY
         STD     DRWINT           ;  .    .    .
;
         LDD     #$0000           ;  .    .    DRAW USING 'DRWLS1/2'
         LDY     #DRWSCY          ;  .    .    FETCH ABSOLUTE POSITION
         JSR     CDIFFY           ;  .    .    DRAW WARRIOR
;
         JMP     CHAMBR           ;  .    DRAW BOX CHAMBER
;
;
;
         SETDP   $C8
;        =====   ===
;
SHUFLE   LDA     POT0             ;  HANDLE RIGHT / LEFT JOYSTICK ACTIVITY
         BEQ     SHFL4            ;  .
         BMI     SHFL1            ;  .
;
         LDD     WARXW            ;  .    JOYSTICK IS RIGHT
         CMPA    #$0C             ;  .    .    CHECK FOR RIGHT LIMIT
         BGE     SHFL3            ;  .    .    .
         ADDD    #SHFDSP          ;  .    .
         STD     WARXW            ;  .    .
         BRA     SHFL2            ;  .    .
;
SHFL1    LDD     WARXW            ;  .    JOYSTICK IS LEFT
         CMPA    #$F4             ;  .    .    CHECK FOR LEFT LIMIT
         BLE     SHFL3            ;  .    .    .
         SUBD    #SHFDSP          ;  .    .
         STD     WARXW            ;  .    .
;
SHFL2    INC     TEMP1            ;  .    SET WARRIOR MOTION FLAG
;
;
SHFL3    LDA     TEMP1            ;  ANIMATE WARRIOR SHUFFLE
         BEQ     SHFL4            ;  .    DID WARRIOR MOVE THIS FRAME ?
;
         LDA     FRAM3            ;  .    LIMIT ANIMATION RATE
         BNE     SHFL5            ;  .    .
;
         INC     WARFRM           ;  .    INCREMENT FRAME BIAS
         BRA     SHFL5            ;  .    .
;
SHFL4    CLR     WARFRM           ;  .    RESET FRAME BIAS (NO SHUFFLE)
;
;
SHFL5    JSR     FPROJ            ;  .    PROJECT WARRIOR INTO 3-D
;
;
SHFL6    LDA     WARFRM           ;  .    DISPLAY SHUFFLING WARRIOR
         LDX     #FWDRW           ;  .    .    SET DRAWING FLAG
         LDB     A,X              ;  .    .    .
         STB     RFLAG            ;  .    .    .
         LSLA                     ;  .    .    FETCH LEFT SIDE ANIMATION
         LDX     #FWAR2           ;  .    .    .
         LDX     A,X              ;  .    .    .
         STX     DRWLS2           ;  .    .    .
         LDX     #FWAR1           ;  .    .    FETCH RIGHT SIDE ANIMATION
         LDX     A,X              ;  .    .    .
         STX     DRWLS1           ;  .    .    .
         BNE     SHFL7            ;  .    .    .    IF ZERO, RESTART ANIMATION
;
         CLR     WARFRM           ;  .    .    RESET ANIMATION
         BRA     SHFL6            ;  .    .    .
;
SHFL7    LDA     #$70             ;  .    .    SET INTENSITY
         SUBA    WARINT           ;  .    .    .    MODIFY WITH STAR-BURST
         CMPA    #$20             ;  .    .    .    .
         BLE     CHAMBR           ;  .    .    .    .
;
         LDB     #$7F             ;  .    .    FETCH SIZE
         SUBB    DRWSCZ           ;  .    .    .
         SUBB    #$10             ;  .    .    .
         STD     DRWINT           ;  .    .    .
;
         LDD     #$0000           ;  .    .    DRAW USING 'DRWLS1/2'
         LDY     #DRWSCY          ;  .    .    FETCH ABSOLUTE POSITION
         JSR     CDIFFY           ;  .    .    DRAW WARRIOR
;
;
;
CHAMBR   LDA     #$D0             ;  DRAW BOX CHAMBER
         TFR     A,DP             ;  .    SET 'DP' = I/O
         SETDP   $D0              ;  .    .
;
         LDD     #$0000           ;  .    SET POSITION
         STD     TEMP1            ;  .    .
;
         CLR     RFLAG            ;  .    DRAW INTERIOR WALLS
         LDD     #$50FF           ;  .    .    (LEFT SIDE)
         LDX     #WALLS           ;  .    .    .
         LDY     #TEMP1           ;  .    .    .
         JSR     SDIFFY           ;  .    .    .
;
         DEC     RFLAG            ;  .    .    (RIGHT SIDE)
         LDD     #$50FF           ;  .    .    .
         LDX     #WALLS           ;  .    .    .
         JSR     SDIFFY           ;  .    .    .
;
         PULS    DP,PC            ;  .    RETURN TO CALLER
;
         IF      L.FGHT = OFF     ;-------------------------------------------
         LIST    *                ;-------------------------------------------
         ENDIF                    ;-------------------------------------------
 |