436 lines
14 KiB
Plaintext
436 lines
14 KiB
Plaintext
|
*
|
|||
|
*P R O C E S S R O U T I N E S
|
|||
|
*
|
|||
|
|
|||
|
E X I S T P FIND IF A PROCESS EXISTS,(OTHER THAN CALLING PROCESS)
|
|||
|
A0 = PROCID (16 BITS)
|
|||
|
A1 = MASK (16 BITS) MASK BITS OF ZERO ARE DONT CARES
|
|||
|
RETURNS: Z BIT SET = NO MATCH, A0 = 0
|
|||
|
Z BIT CLR = MATCH, A0 = PTR TO PROCESS
|
|||
|
|
|||
|
USAGE: MOVI PROCID,A0
|
|||
|
MOVI MASK,A1
|
|||
|
CALLA EXISTP
|
|||
|
G E T A 8 - 1 1 GET A PRESERVED REGISTER FROM A SLEEPING PROCESS
|
|||
|
GETA8,GETA9,GETA10,GETA11
|
|||
|
A0 = PTR TO SLEEPING PROCESS
|
|||
|
|
|||
|
USAGE: MOVE SLEEPING PROCESS,A0
|
|||
|
CALLA GETA8
|
|||
|
G E T P R C CREATE A PROCESS
|
|||
|
A1 = ID,A7=PC,A8,A9,A10,A11 PASSED PARAMETERS
|
|||
|
A13 = CURRENT PROCESS
|
|||
|
A0 IS RETURNED POINTING TO CREATED PROCESS
|
|||
|
|
|||
|
USAGE: MOVI PROCESS ID,A1
|
|||
|
MOVI STARTING ADDRESS,A7
|
|||
|
CALLA GETPRC
|
|||
|
|
|||
|
K I L L KILL PROCESS
|
|||
|
A0 = POINTS TO PROCESS TO KILL, A13= CURRENT PROCESS
|
|||
|
IF PROCESS NOT PRESENT, CAUSES ERROR
|
|||
|
TO KILL YOURSELF SUCIDE MUST BE USED,
|
|||
|
IF YOU ATTEMPT TO KILL YOURSELF IT WILL JUST RETURN
|
|||
|
|
|||
|
USAGE: MOVE PROCESS POINTER,A0
|
|||
|
CALLA KILL
|
|||
|
|
|||
|
K I L A L L KILL A CLASS OF PROCESSES
|
|||
|
A0 = PROCID (16 BITS)
|
|||
|
A1 = MASK (16 BITS)
|
|||
|
MASK BITS OF ZERO ARE DONT CARES
|
|||
|
WILL NOT KILL CALLING PROCESS (A13)
|
|||
|
|
|||
|
USAGE: MOVI PROCID,A0
|
|||
|
MOVI MASK,A1
|
|||
|
CALLA KILALL
|
|||
|
|
|||
|
P R C S L P PROCESS SLEEP
|
|||
|
A0 = SLEEP TIME
|
|||
|
TOS IS WAKEUP ADDR
|
|||
|
|
|||
|
USAGE: MOVI SLEEPTIME X 16 MSEC.,A0
|
|||
|
CALLA PRCSLP
|
|||
|
|
|||
|
S U C I D E PROCESS SUICIDE
|
|||
|
A13 = PROCESS
|
|||
|
|
|||
|
USAGE: CALLA SUCIDE
|
|||
|
|
|||
|
P I N I T PROCESS LIST INITIALIZE
|
|||
|
A13 RETURNED POINTING TO ACTIVE LIST (CRPROC)
|
|||
|
|
|||
|
USAGE: CALLA PINIT
|
|||
|
|
|||
|
X F E R P R O C TRANSFER CONTROL OF AN EXISTING PROCESS
|
|||
|
A0 = PTR OF PROCESS TO BE XFER'D
|
|||
|
A1 = NEW I.D.
|
|||
|
A7 = WAKE UP
|
|||
|
A8 - A11 = PASSED TO THE XFER'D PROC
|
|||
|
|
|||
|
USAGE: MOVE PROCESS PTR,A0
|
|||
|
MOVI NEW PROCESS ID,A1
|
|||
|
MOVI STARTING ADDR,A7
|
|||
|
CALLA XFERPROC
|
|||
|
|
|||
|
P U T A 8 - 1 1 PUT A REGISTER(A8-A11) INTO A SLEEPING PROCESS
|
|||
|
PUTA8,PUTA9,PUTA10,PUTA11
|
|||
|
A0 = PTR TO SLEEPING PROCESS
|
|||
|
|
|||
|
USAGE: MOVE SLEEPING PROCESS,A0
|
|||
|
CALLA PUTA8
|
|||
|
|
|||
|
G P A L O B J - GET A PALETTE AND AN OBJECT BLOCK
|
|||
|
A14 = PTR TO PLAYER INITIALIZATION TABLE.
|
|||
|
RETURNS:
|
|||
|
A0 = PTR TO OBJECT
|
|||
|
Z BIT SET = FAILURE,A0 = 0
|
|||
|
|
|||
|
S H V E L C P Y - COPY X, Z VELOCITIES TO SHADOW (IF ANY)
|
|||
|
A8=OBJECT
|
|||
|
A8(OSHAD)=SHADOW OR ZERO IF NONE
|
|||
|
|
|||
|
S H V E L F L P - COPY SHADOW VELOCITY AND FLIP HIM ACCORDING TO X VEL
|
|||
|
A8 = OBJECT
|
|||
|
A3 = OXVEL
|
|||
|
|
|||
|
F L P - FLIP OBJECT
|
|||
|
A8 = OBJECT, N = SIGN OF XVEL
|
|||
|
|
|||
|
X Z C H K - CHECK X-Z SEEK RANGE
|
|||
|
A8 = OBJECT SEEKING
|
|||
|
A0 = OBJECT SEEKED
|
|||
|
A5 = X RANGE
|
|||
|
A6 = Z RANGE
|
|||
|
|
|||
|
RETURNS: CARRY SET IF HE IS CLOSE ENOUGH
|
|||
|
A1 = DELTA X
|
|||
|
A2 = DELTA Z
|
|||
|
A3 = ABS DELTA X
|
|||
|
A4 = ABS DELTA Z
|
|||
|
|
|||
|
G E T B O T Y - GET BOTTOM Y OF AN OBJECT
|
|||
|
A8 = OBJECT BLOCK PTR
|
|||
|
RETURN(S)
|
|||
|
A1 = 16 BIT BOTTOM Y IN LSW (STATUS SET ACCORDINGLY)
|
|||
|
|
|||
|
S E T Y P O S - SETUP OBJECTS Y POSITION SO HES ON THE GROUND
|
|||
|
A0 = OBJECT BLOCK
|
|||
|
|
|||
|
A D D S U P P - ADD OBJECT TO A SUPPLEMENTAL LIST
|
|||
|
A0 = PTR TO OBJECT
|
|||
|
A1 = MEMORY LOCATION OF SUPPLEMENTAL LIST HEADER
|
|||
|
|
|||
|
D E L S U P P - DELETE OBJECT FROM THE SUPPLEMENTAL LIST
|
|||
|
A0 = PTR TO OBJECT
|
|||
|
A1 = MEMORY LOCATION OF SUPPLEMENTAL LIST HEADER
|
|||
|
|
|||
|
I S S U P P - IS AN OBJECT ON A SUPPLEMENTAL LIST
|
|||
|
A0 = PTR TO OBJECT
|
|||
|
A1 = MEMORY LOCATION OF SUPPLEMENTAL LIST HEADER
|
|||
|
RETURNS:
|
|||
|
Z BIT SET = NOT ON
|
|||
|
Z BIT CLR = IS ON
|
|||
|
|
|||
|
I S S U P P I D - IS AN OBJECT ON A SUPPLEMENTAL LIST(SEARCH BY OBJECT I.D.)
|
|||
|
A0 = OBJECT I.D.
|
|||
|
A1 = MEMORY LOCATION OF SUPPLEMENTAL LIST HEADER
|
|||
|
RETURNS:
|
|||
|
Z BIT SET, A1 = ZERO OBJECT NOT FOUND
|
|||
|
Z BIT CLR, A1 = PTR TO OBJECT FOUND
|
|||
|
|
|||
|
R A N D O M - GET A RANDOM NUMBER
|
|||
|
RETURNS: A0 = 32 BIT RANDOM #
|
|||
|
|
|||
|
R A N D U - GET A UNIFORMLY DISTRIBUTED RANDOM # BETWEEN 1 AND [A0]
|
|||
|
A0 = RANGE INPUT
|
|||
|
RETURNS: A0 = RANDOM #
|
|||
|
|
|||
|
S R A N D - GET SIGNED RANDOM # IN RANGE +/- A0
|
|||
|
CALLING PARAMETERS: A0
|
|||
|
RETURNS: A0 = RANDOM #
|
|||
|
|
|||
|
R A N G R A N D - GENERATE A RANDOM NUMBER IN A GIVEN RANGE.
|
|||
|
B0 = LOWER BOUND
|
|||
|
B1 = UPPER BOUND
|
|||
|
RETURNS: A0 = RANDOM #
|
|||
|
|
|||
|
R A N D P E R - RANDOM % ROUTINE
|
|||
|
A0=PROBABILITY OF EVENT (0-1000) P(A0=1000) = 1; P(A0=1) = 1/1000.
|
|||
|
RETURNS: CS IF PROBABILITY IS TRUE, CC FOR FALSE
|
|||
|
A0 = RANDOM # 0-999
|
|||
|
|
|||
|
F I L L A R E A - FILL A AREA WITH A COLOR
|
|||
|
A1 = [COLOR,PALETTE]
|
|||
|
A3 = DAG OF AREA [YPOS,XPOS]
|
|||
|
A4 = [Y,X] SIZE OF AREA
|
|||
|
|
|||
|
|
|||
|
B L N K A R E A - BLANK A GIVEN SQUARE AREA ON THE SCREEN
|
|||
|
A3 = DAG OF AREA [YPOS,XPOS]
|
|||
|
A4 = [Y,X] SIZE OF AREA
|
|||
|
|
|||
|
D E L E T E _ O B J E C T _ P A L L E T E - DELETE OBJECT AND PALETTE
|
|||
|
A8 = OBJECT TO DELETE
|
|||
|
|
|||
|
P S T O P - STOP ALL PLAYER AND SHADOW VELOCITIES
|
|||
|
A8 = OBJECT TO STOP
|
|||
|
|
|||
|
Y F L P - SET OBJECT Y-FLIP,
|
|||
|
A8 = OBJECT BLOCK PTR
|
|||
|
|
|||
|
N O Y F L P - CLEAR OBJECT Y-FLIP
|
|||
|
A8 = OBJECT BLOCK PTR
|
|||
|
|
|||
|
D T I M E - DMA AN IMAGE
|
|||
|
A1 = [CONSTANT COLOR,PALETTE(STUFFED IN DTIME)]
|
|||
|
A3 = DAG [Y,X]
|
|||
|
A5 = [OFFSET,CONTROL]
|
|||
|
A14 = ADDRESS OF IMAGE HEADER
|
|||
|
|
|||
|
D M A W A I T - WAIT ON THE DMA BUSY BIT TO CLEAR
|
|||
|
|
|||
|
D M A Q W A I T - WAIT FOR DMA QUEUES TO EMPTY, DMA TO FINISH
|
|||
|
|
|||
|
D M A H A L T - HALT THE DMA
|
|||
|
|
|||
|
S C R C L R - CLEAR THE SCREEN SLOW
|
|||
|
ONLY CALL WITH INTERRUPTS DISABLED AND THE DMA SHUT DOWN
|
|||
|
OTHERWISE USE CLR_SCRN
|
|||
|
|
|||
|
C L R _ S C R N - CLEAR THE SCREEN SLOW WAITING FOR DMA
|
|||
|
|
|||
|
|
|||
|
F R A N I M - ANIMATION SCRIPT PROCESSOR
|
|||
|
A1 = COMMAND: 00 = PROCESS CURRENT FRAME.
|
|||
|
01 = PROCESS TO END OF LIST.
|
|||
|
02 = PROCESS X # OF FRAMES OR TO END. A1 = [# FRMS,CMD]
|
|||
|
03 = INFINITELY LOOP ON THE LIST.
|
|||
|
04 = PROCESS CURRENT FRAME, NO SLEEP(TIME RETRN'D IN A0)
|
|||
|
A8 = PTR TO OBJECT BLOCK
|
|||
|
A9 = PTR TO CURRENT FRAME
|
|||
|
RETURNS CARRY SET IF END OF ANIMATION LIST WAS HIT
|
|||
|
A9 = POINTING TO NEXT FRAME, IF NOT AT END OF LIST
|
|||
|
SETS EPARENT OF THE SPAWNED CHILD POINTING TO THIS PROCESS
|
|||
|
NOTE: CALL WITH JSRP, IT SLEEPS
|
|||
|
|
|||
|
ANIMATION SCRIPT FORMAT
|
|||
|
.LONG IMAGE_HEADER<-- IF = 0 END OF SCRIPT
|
|||
|
.WORD SLEEP_TIME <-- BITS 0 - 7 ARE THE SLEEP TIME.
|
|||
|
<-- BITS 8 -15 ARE THE FLAGS:
|
|||
|
BIT # FLAG
|
|||
|
----- ----
|
|||
|
8 UNUSED
|
|||
|
9 UNUSED
|
|||
|
10 UNUSED
|
|||
|
11 DELTA Y WORD IS PRESENT
|
|||
|
12 PACKED DELTAS FOR X&Z PRESENT
|
|||
|
13 NEW PALETTE ADDRESS IS SPECIFIED
|
|||
|
14 NEW FLIP BITS ARE SPECIFIED
|
|||
|
15 SPAWN PROCESS W/OFFSETS
|
|||
|
.WORD XOFF,YOFF,PROCID
|
|||
|
.LONG PROCADDR
|
|||
|
FLAG HIERARCHY: 15 --> 8
|
|||
|
OPTIONS SHOULD FOLLOW IN THIS ORDER.
|
|||
|
|
|||
|
|
|||
|
F R A M S K I P - SKIP TO THE NEXT FRAME OF AN ANIMATION SCRIPT
|
|||
|
A9 = SCRIPT PTR
|
|||
|
RETURNS: CARRY CLR = A9 IS POINTING TO NEXT FRAME
|
|||
|
CARRY SET = SCRIPT END WAS HIT, A9 POINTS TO NEXT WORD
|
|||
|
|
|||
|
A U T O E O F F - TURN OFF AUTO ERASE
|
|||
|
|
|||
|
A U T O E O N - TURN ON AUTO ERASE
|
|||
|
|
|||
|
C O P Y O B J - COPIES THE CONTENTS OF ONE OBJECT BLOCK TO THE OTHER.
|
|||
|
A0 = PTR TO DESTINATION BLOCK
|
|||
|
A8 = PTR TO SOURCE BLOCK
|
|||
|
*
|
|||
|
* P A L E T T E S T U F F
|
|||
|
*
|
|||
|
D E L P A L - DELETE AN OBJECTS PALETTE
|
|||
|
A0 = PTR TO OBJECT
|
|||
|
|
|||
|
F I N D P A L - FIND THE COLOR MAP # TO WHICH THE GIVEN PALETTE IS ASSIGNED.
|
|||
|
A0 = 32 BIT PALETTE ADDRESS
|
|||
|
RETURNS: Z BIT SET = PALETTE NOT FOUND ---> A0 = 0
|
|||
|
Z BIT CLR = PALETTE FOUND ---> A0 = PALETTE #(CORRECT FORMAT FOR DMA)
|
|||
|
|
|||
|
C L R P A L - CLEAR OUT PALETTE ALLOCATION RAM
|
|||
|
|
|||
|
C L R F P A L - CLEAR ONLY FOREGROUND PALETTES
|
|||
|
|
|||
|
C L R B P A L - CLEAR ONLY BACKGROUND PALETTES
|
|||
|
|
|||
|
G E T F P A L - GET A FOREGROUND PALETTE
|
|||
|
A0 = PALETTE ID (ADDRESS OF DATA)
|
|||
|
RETURNS: A0 = COLOR MAP ALLOCATED (0000-0F0F)
|
|||
|
RETURNS: EQ IF NO PALETTE FREE
|
|||
|
|
|||
|
G E T B P A L - GET A BACKGROUND PALETTE
|
|||
|
A0 = PALETTE ID (ADDRESS OF DATA)
|
|||
|
RETURNS: A0 = COLOR MAP ALLOCATED (0000-0F0F)
|
|||
|
RETURNS: EQ IF NO PALETTE FREE
|
|||
|
|
|||
|
F R E E P A L - FREE A PALETTE
|
|||
|
A0=PALETTE # (0-NUMPAL) TO FREE
|
|||
|
|
|||
|
U N G E T P A L - Clears out a palettes allocation count
|
|||
|
A0=PALETTE # (0-NUMPAL) TO UNALLOCATE
|
|||
|
|
|||
|
P A L T R A N S - TRANSFER PALETTE DATA
|
|||
|
CALLED DURING VBLNK
|
|||
|
LOOKS THROUGH PTRRAM FOR TRANSFERS
|
|||
|
BOMBS A0-A13
|
|||
|
Bit 13 of PLDCNT checked first, if set bits 14,15 ignored
|
|||
|
BIT 13 PLDCNT = repeat colors to fill full palette - lsbits address colors
|
|||
|
BIT 14 PLDCNT = 16 COLOR PALETTE
|
|||
|
BIT 15 PLDCNT = PALETTE B4-B7
|
|||
|
|
|||
|
P A L S E T - SETUP PALETTE TRANSFER
|
|||
|
A0= PALSRC = 32 BIT SOURCE ADDRESS OF PALETTE COLOR DATA
|
|||
|
A1= PALDEST = BIT 8-15 DESTINATION PALETTE | BIT 0-7 START COLOR
|
|||
|
A2= PLDCNT = 16 BIT COLOR COUNT
|
|||
|
RETURNS: EQ IF UNABLE TO SETUP TRANSFER, NE IF TRANSFER O.K.
|
|||
|
*
|
|||
|
*O B J E C T S T U F F
|
|||
|
*
|
|||
|
S H A D S T - START A SHADOW
|
|||
|
A8 = OBJECT TO SHADOW
|
|||
|
RETURNS: A0 = PTR TO SHADOW, OR 0 IF NO SHADOW WAS CREATED
|
|||
|
|
|||
|
S H A D U P D - SHADOW UPDATE CALLS SHADCPY IF SHADOW EXISTS
|
|||
|
A8 = OBJECT
|
|||
|
|
|||
|
S H A D C P Y - COPIES OSAG,OIMG,OXVEL,OYVEL,OXVAL
|
|||
|
ADJUSTS OSIZE,OFSET,OYVAL,OXCLIP
|
|||
|
A0 = PTR TO SHADOW OBJECT
|
|||
|
A8 = PTR TO OBJECT BEING SHADOWED
|
|||
|
|
|||
|
D F R M G R N D - CALC DISTANCE FROM GROUND
|
|||
|
A8=OBJECT
|
|||
|
A1 RET WITH HT ABOVE GROUND
|
|||
|
|
|||
|
Y Z S O R T - SORT OBJECT LIST IN Z:Y PRIORITY
|
|||
|
|
|||
|
S C R T S T - TEST IF OBJECT ON SCREEN
|
|||
|
A8 = OBJECT
|
|||
|
RETURNS EQ IF ON SCREEN
|
|||
|
|
|||
|
C L I P O B J - CLIP AN OBJECT
|
|||
|
A2 = BOTTOM:RIGHT CLIP (RELATIVE TO CURRENT SIZE)
|
|||
|
A3 = TOP:LEFT CLIP (RELATIVE TO CURRENT SIZE)
|
|||
|
A8 = OBJECT BLOCK
|
|||
|
RETURNS: NEW SAG,H,W,OFFSET,XCLIP IN OBJECT STRUCTURE
|
|||
|
ALL REGISTERS PRESERVED
|
|||
|
|
|||
|
O I N I T - INITIALIZE OBJECT LISTS
|
|||
|
|
|||
|
G E T O B J - GET A FREE OBJECT BLOCK FOR USE
|
|||
|
RETURNS: A0 = PTR TO OBJECT BLOCK
|
|||
|
IF NO BLOCKS WERE AVAILABLE THEN THE Z FLAG IS SET
|
|||
|
|
|||
|
F R E E O B J - PUT AN OBJECT BLOCK BACK ON THE FREE LIST
|
|||
|
A0 = POINTER TO OBJECT BLOCK
|
|||
|
|
|||
|
F R E E S O B J - FREE OBJECT AND SHADOW (IF ANY)
|
|||
|
A0= POINTER TO OBJECT
|
|||
|
|
|||
|
I N S B 2 O B J - INSERT BACKGROUND 2 OBJECT (INTO SORTED LIST)
|
|||
|
A0 = OBJECT TO BE INSERTED
|
|||
|
|
|||
|
I N S B O B J - INSERT BACKGROUND 1 OBJECT (INTO SORTED LIST)
|
|||
|
A0 = OBJECT TO BE INSERTED
|
|||
|
|
|||
|
I N S S O B J - INSERT SHADOWED OBJECT (INTO SORTED OBJECT LIST)
|
|||
|
A0 = OBJECT TO BE INSERTED
|
|||
|
|
|||
|
I N S O B J - INSERT OBJECT (INTO SORTED OBJECT LIST)
|
|||
|
A0 = OBJECT TO BE INSERTED
|
|||
|
|
|||
|
K I L B 2 O B J - KILL OBJECT CLASS ON BAK2LST
|
|||
|
K I L B O B J - KILL OBJECT CLASS ON BAKLST
|
|||
|
K I L O B J - KILL OBJECT CLASS ON OBJLST
|
|||
|
A0 = OID (16 BITS)
|
|||
|
A1 = MASK (16 BITS) MASK BITS OF ZERO ARE DONT CARES
|
|||
|
|
|||
|
E X I S T O B J - DOES AN OBJECT FROM A CERTAIN CLASS EXIST?
|
|||
|
A0 = OID
|
|||
|
A1 = MASK(0'S DON'T CARE)
|
|||
|
RETURNS:
|
|||
|
Z BIT SET = NO OBJECT, A0 = 0
|
|||
|
Z BIT CLR = NO OBJECT, A0 = PTR TO OBJECT
|
|||
|
|
|||
|
I S O B J - IS AN OBJECT ON THE OBJECT LIST?
|
|||
|
A0 = PTR TO OBJECT
|
|||
|
RETURNS:
|
|||
|
Z BIT SET = NO OBJECT, A0 = 0
|
|||
|
Z BIT CLR = NO OBJECT, A0 = PTR TO OBJECT
|
|||
|
|
|||
|
I S F R E E - IS AN OBJECT ON THE FREE LIST?
|
|||
|
A0 = PTR TO OBJECT
|
|||
|
RETURNS:
|
|||
|
Z BIT SET = NO OBJECT, A0 = 0
|
|||
|
Z BIT CLR = NO OBJECT, A0 = PTR TO OBJECT
|
|||
|
|
|||
|
M A K O B J - MAKE AN OBJECT CALLS GETOBJ,STFOBJ,INSOBJ
|
|||
|
A14 = POINTS TO THE INITIALIZATION TABLE
|
|||
|
RETURN(S)
|
|||
|
A0 = OBJECT BLOCK PTR
|
|||
|
|
|||
|
G A N I S A G - ADJUST OBJECT FOR IMAGE ANI PNT. AND FLIP
|
|||
|
A0 = PTR TO OBJECT BLOCK
|
|||
|
A2 = NEW OYVAL
|
|||
|
A3 = NEW OXVAL
|
|||
|
A4 = NEW FLAGS
|
|||
|
RETURNS
|
|||
|
A2 = ADJUSTED OYVAL
|
|||
|
A3 = ADJUSTED OXVAL
|
|||
|
|
|||
|
S T R T O B J - START AN OBJECT USING AN INITIALIZATION TABLE
|
|||
|
A0 = PTR TO THE IMAGE
|
|||
|
A14 = PTR TO INIT. TABLE
|
|||
|
START OBJECT INIT. TABLE FORMAT
|
|||
|
.WORD X,Y,Z
|
|||
|
.LONG OIMG,OZSIZ,OCVECT
|
|||
|
.WORD OFLAGS,OID
|
|||
|
RETURNS A14 = POINTING TO WORD AFTER INIT TAB
|
|||
|
|
|||
|
S T F O B J - START AN OBJECT USING AN INITIALIZATION TABLE
|
|||
|
A0 = PTR TO THE IMAGE
|
|||
|
A14 = PTR TO INIT. TABLE
|
|||
|
INIT. TABLE FORMAT:
|
|||
|
.LONG OXVEL,OYVEL,OXVAL,XYVAL
|
|||
|
.WORD OZVEL,OZPOS
|
|||
|
.LONG OIMG,OZSIZ,OCVECT
|
|||
|
.WORD OFLAGS,OID
|
|||
|
.LONG OBLIPIMG
|
|||
|
RETURNS
|
|||
|
A14 = POINTING TO WORD AFTER INIT TAB
|
|||
|
|
|||
|
G S A G O F - GET SAG FOR OBJECT - ADJUSTS SAG FOR FLIP
|
|||
|
A1=PTR TO IMAGE HEADER (OIMG)
|
|||
|
A4=OBJECT FLAGS
|
|||
|
RETURNS:
|
|||
|
A2=RETURNED WITH NEW OSIZE
|
|||
|
A3=RETURNED WITH NEW SAG
|
|||
|
A4=RETURNED WITH NEW OFFSET:OFLAGS
|
|||
|
|
|||
|
A N I - ANIMATION SUBROUTINE
|
|||
|
A1=NEW IMAGE POINTER
|
|||
|
A4=NEW OFLAGS
|
|||
|
A8=OBJECT STRUCTURE POINTER TO BE UPDATED
|
|||
|
|
|||
|
G E T A N I X Y - GET X,Y POSITIONS OF AN OBJECTS ANIMATION PT.
|
|||
|
A8 = OBLOCK PTR.
|
|||
|
RETURNS
|
|||
|
A2 = APOINT OYVAL, 32 BITS
|
|||
|
A3 = APOINT OXVAL, 32 BITS
|
|||
|
|
|||
|
G A N I O F - GET ANIMATION OFFSET
|
|||
|
A1=OIMG, A2=H:W, A4=OFLAGS
|
|||
|
OUTPUT:
|
|||
|
A6=X ANIMATION OFFSET X 64K
|
|||
|
A7=Y ANIMATION OFFSET X 64K
|
|||
|
|