A Bit of Vectrex History
From RoadsideThoughts ...
Home >> A Bit of Vectrex History >> Dark Tower >> WARIOR.DRK - Rev. AIndex...

WARIOR.DRK - Rev. A

The top most file for Dark Tower:

DRKTWR.ASM


The LINKed files:



;
;
         IF      L.WAR = OFF      ;-------------------------------------------
         LIST    -L               ;--  WARIOR  -------------------------------
         ENDIF                    ;-------------------------------------------
;
;
;
;
;  WARRIOR GAME LOGIC
;  ==================
;
         SETDP   $C8
;        =====   ===
;
WARIOR   LDA     WARFLG           ;  WARRIOR ACTIVE ?
         LBEQ    WRDSP3           ;  .
;
         LDA     #$70             ;  SET SIZE AND INTENSITY
         SUBA    FOGLIM           ;  .    SET INTENSITY
         SUBA    WARINT           ;  .    .    SKIP WARRIOR ?
         CMPA    #$20             ;  .    .    .
         LBLE    WRDSP3           ;  .    .    .
         LDB     #SZ.WAR          ;  .    SET WARRIOR SIZE
         STD     DRWINT           ;  .    .    .
;
         LDA     WARINH           ;  WARRIOR MOTION INHIBITED ?
         LBNE    WARR11           ;  .
;
         LDA     POT0             ;  ANY JOYSTICK ACTIVITY ?
         ORA     POT1             ;  .
         LBEQ    WARR11           ;  .
;
         LDA     FRAM7            ;  HANDLE RIGHT / LEFT JOYSTICK ACTIVITY
         BNE     WARR3            ;  .    LIMIT ROTATION RATE
;
         LDA     POT0             ;  .    RIGHT / LEFT ACTIVITY ?
         BEQ     WARR3            ;  .    .
         BMI     WARR1            ;  .    .    LEFT ?
;
         DEC     LOKANG           ;  .    JOYSTICK IS RIGHT
         BRA     WARR2            ;  .    .
;
WARR1    INC     LOKANG           ;  .    JOYSTICK IS LEFT
;
WARR2    JSR     NEWANG           ;  NEW LOOK-ANGLE UPDATE
;
;
;
WARR3    LDA     FRAM3            ;  HANDLE UP / DOWN JOYSTICK ACTIVITY
         BNE     WARR7            ;  .    LIMIT MOTION RATE
;
         LDA     POT1             ;  .    JOYSTICK DOWN ?
         BEQ     WARR6            ;  .    .
         BMI     WARR4            ;  .    .
;
         LDD     WARYD            ;  .    JOYSTICK IS UP - MOVE FORWARD
         ADDD    MAPY             ;  .    .    MOVE ALONG 'Y' AXIS
         STD     TEMP1            ;  .    .    .
         BITA    #$C0             ;  .    .    .    CHECK FOR MOTION OFF MAP
         BNE     WARR7            ;  .    .    .    .
;
         LDD     WARXD            ;  .    .    MOVE ALONG 'X' AXIS
         ADDD    MAPX             ;  .    .    .
         STD     TEMP3            ;  .    .    .
         BITA    #$C0             ;  .    .    .    CHECK FOR MOTION OFF MAP
         BNE     WARR7            ;  .    .    .    .
;
         LDX     #PEDSGN          ;  .    .    INCREMENT PEDOMETER ASCII STRING
         LDA     PEDZRO           ;  .    .    .
         JSR     ASCINC           ;  .    .    .
         STA     PEDZRO           ;  .    .    .
         BRA     WARR5            ;  .    .    .
;
;
;
WARR4    LDD     WARYD            ;  .    JOYSTICK IS DOWN - MOVE BACKWARD
         COMA                     ;  .    .    MOVE ALONG 'Y' AXIS
         COMB                     ;  .    .    .    TWO'S COMPLEMENT
         ADDD    #$0001           ;  .    .    .    .
         ADDD    MAPY             ;  .    .    .
         STD     TEMP1            ;  .    .    .
         BITA    #$C0             ;  .    .    .    CHECK FOR MOTION OFF MAP
         BNE     WARR7            ;  .    .    .    .
;
         LDD     WARXD            ;  .    .    MOVE ALONG 'X' AXIS
         COMA                     ;  .    .    .    TWO'S COMPLEMENT
         COMB                     ;  .    .    .    .
         ADDD    #$0001           ;  .    .    .    .
         ADDD    MAPX             ;  .    .    .
         STD     TEMP3            ;  .    .    .
         BITA    #$C0             ;  .    .    .    CHECK FOR MOTION OFF MAP
         BNE     WARR7            ;  .    .    .    .
;
         LDX     #PEDSGN          ;  .    .    DECREMENT PEDOMETER ASCII STRING
         LDA     PEDZRO           ;  .    .    .
         JSR     ASCDEC           ;  .    .    .
         STA     PEDZRO           ;  .    .    .
;
;
WARR5    LDD     TEMP1            ;  .    UPDATE NEW WARRIOR POSITION
         STD     MAPY             ;  .    .    'Y' AXIS
         LDD     TEMP3            ;  .    .    'X' AXIS
         STD     MAPX             ;  .    .    .
;
         CMPA    LASTX            ;  .    .    NEW GRID SCAN NEEDED ?
         BNE     WARR6            ;  .    .    .    DID MAJOR 'X' AXIS CHANGE ?
         LDB     MAPY             ;  .    .    .    DID MAJOR 'Y' AXIS CHANGE ?
         CMPB    LASTY            ;  .    .    .    .
         BEQ     WARR7            ;  .    .    .    .
;
WARR6    LDB     MAPY             ;  .    UPDATE OBJECT TABLE GRID SCAN
         STB     LASTY            ;  .    .    UPDATE LAST MAJOR NODE
         LDA     MAPX             ;  .    .    .
         STA     LASTX            ;  .    .    .
         JSR     GRDSCN           ;  .    .    SCAN GRID
         JSR     FOGSCN           ;  .    .    SEARCH FOR FOG OR PLAGUE
         BRA     WARR8            ;  .    .
;
;
WARR7    JSR     PROJCT           ;  UPDATE OBJECT TABLE PROJECTIONS
;
WARR8    LDA     WARWLK           ;  DID WARRIORS JUST START MOVING ?
         BNE     WARR9            ;  .
;
         JSR     RANDOM           ;  .    IF SO, THEN SET WARRIOR FRAME BIASES
         ANDA    #$03             ;  .    .
         BNE     WARR9            ;  .    .
         ORA     #$01             ;  .    .
         STA     WARFRM           ;  .    .
;
;
WARR9    LDA     FRAM3            ;  INCREMENT WARRIOR FRAME BIASES
         BNE     WARR10           ;  .    LIMIT ANIMATION RATE
;
         INC     WARFRM           ;  .    INCREMENT FRAME BIAS
         LDA     #$04             ;  .    SET STEP SOUND FLAG
         STA     STEPS            ;  .    .
;
WARR10   LDA     #$01             ;  SET WARRIOR WALKING FLAG
         STA     WARWLK           ;  .
         BRA     WARDSP           ;  .
;
;
WARR11   LDA     #$00             ;  NO JOYSTICK ACTIVITY THIS FRAME
         STA     WARWLK           ;  .    RESET WARRIOR ANIMATION FLAG
;
         CLR     WARFRM           ;  .    RESET ANIMATION FRAMES BIAS
;
;
WARDSP   LDA     WARFLG           ;  DISPLAY ACTIVE WARRIORS
         BEQ     WRDSP3           ;  .    IS WARRIOR DEAD ?
;
WRDSP1   LDA     WARFRM           ;  .    FETCH DRAWING FLAG
         LDX     #WKDRW           ;  .    .
         LDB     A,X              ;  .    .
         STB     RFLAG            ;  .    .
         ASLA                     ;  .    .
         LDX     #WLKNG2          ;  .    FETCH ANIMATION FOR LEFT SIDE
         LDX     A,X              ;  .    .
         STX     DRWLS2           ;  .    .
         LDX     #WLKNG1          ;  .    FETCH ANIMATION FOR RIGHT SIDE
         LDX     A,X              ;  .    .
         STX     DRWLS1           ;  .    .
         BNE     WRDSP2           ;  .    .    .    IF ZERO, RESTART ANIMATION
;
         LDA     #$01             ;  .    .    RESET ANIMATION SEQUENCE
         STA     WARFRM           ;  .    .    .
         BRA     WRDSP1           ;  .    .    .
;
WRDSP2   LDB     WARDSH           ;  .    SET WARRIOR DASHING
         STB     DASH             ;  .    .
;
         LDD     #$0000           ;  .    DRAW USING 'DRWLST1/2'
         LDY     #WARYW           ;  .    FETCH WARRIOR POSITION
         JSR     XDIFFY           ;  .    DRAW WARRIOR
;
WRDSP3   RTS                      ;  RETURN TO CALLER
;
         IF      L.WAR = OFF      ;-------------------------------------------
         LIST    *                ;-------------------------------------------
         ENDIF                    ;-------------------------------------------





 

Copyright 2024
All Rights Reserved

Thank you for visiting our website.

In closing, please keep in mind that we can not guarantee the accuracy or timeliness of the information on this website, so use with care. We encourage you to double-check the information that is critical to you.

If you've found an error or have additional information that you would like to share, please don't hesitate to write: Click here to contact us.

This page was last modified/updated: 04 Feb 2024