135 lines
2.6 KiB
NASM
135 lines
2.6 KiB
NASM
.FILE 'TILES.ASM (SCREEN TRANSITION TILES)'
|
||
.TITLE 'ROBO-RAMA GAME PROGRAM'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
;
|
||
; INITIATED: APRIL 26,1989
|
||
; MODIFIED: !
|
||
; SOFTWARE: MARK TURMELL & ROBERT ASHWORTH
|
||
;
|
||
; COPYRIGHT (C) 1989 WILLIAMS ELECTRONICS GAMES, INC.
|
||
;
|
||
;
|
||
; GET THE SYSTEM STUFF
|
||
|
||
.INCLUDE "MPROC.EQU" ;MPROC EQUATES
|
||
.INCLUDE "DISP.EQU" ;DISPLAY PROC. EQUATES
|
||
.INCLUDE "\VIDEO\SYS\SYS.INC" ;Z UNIT SYSTEM EQUATES
|
||
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "ROBO.EQU"
|
||
|
||
;SYMBOLS EXTERNALLY DEFINED
|
||
;
|
||
.REF STFOBJ,GPALOBJ,DELPAL,DELOBJ,INSOBJ,ADJSTWTL
|
||
.REF FRANIM,SNKNOW,EXPSCRN
|
||
.REF OBJEXP32,CWINDOW
|
||
.REF CLIPOBJ
|
||
;
|
||
;SYMBOLS DEFINED IN THIS FILE
|
||
;
|
||
.DEF TILER,STRTVAR
|
||
;
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
;
|
||
.BSS STRTVAR,8
|
||
.BSS HCNT,8
|
||
.BSS TILEXY,32
|
||
|
||
; TILER - COVER SCREEN WITH TILES
|
||
; CALL AS JSRP!
|
||
; PARAMS:
|
||
; RETURNS:
|
||
; NOTHING AT ALL!
|
||
;
|
||
TILER:
|
||
MOVI 44,A10
|
||
TILUP:
|
||
JSRP SNKNOW
|
||
MOVK 11+1,A0
|
||
MOVB A0,@HCNT
|
||
MOVI [0,5],A0
|
||
MOVE A0,@TILEXY,L
|
||
CREATE 0,DOTILE1
|
||
CREATE 0,DOTILE2
|
||
DSJ A10,TILUP
|
||
JSRP EXPSCRN
|
||
MOVK 1,A0
|
||
MOVB A0,@STRTVAR
|
||
DIE
|
||
DOTILE1:
|
||
;CREATE 1 TILE COLOR 1
|
||
;NOTE: THIS IS A PROCESS
|
||
MOVI TILE2INIT,A14
|
||
JRUC TILEPUT
|
||
|
||
DOTILE2:
|
||
;CREATE 1 TILE COLOR 2
|
||
;NOTE: THIS IS A PROCESS
|
||
|
||
MOVI TILEINIT,A14
|
||
TILEPUT:
|
||
CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
||
CALLA STFOBJ ;STUFF OBJECT DATA
|
||
MOVE A13,*A0(OPLINK),L ;LINK INTO PROCESS WE ARE IN
|
||
CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
||
MOVE A0,A8
|
||
JRZ NOCANDO ;FAILED TO CREATE OBJECT EXIT!
|
||
MOVB @HCNT,A0
|
||
DEC A0
|
||
MOVB A0,@HCNT
|
||
JRNZ HRZOK
|
||
MOVK 11,A0 ;NUMBER OF TILE ACROSS SCREEN
|
||
MOVB A0,@HCNT
|
||
|
||
;LAST TILE IN HORIZONTAL LINE, NEXT LINE PLEASE!
|
||
MOVE @TILEXY,A0,L
|
||
ANDI >FFFF0000,A0 ;RESET X
|
||
MOVI [35,5],A1
|
||
ADDXY A1,A0 ;UPDATE Y OFFSET FOR NEXT TILE
|
||
MOVE A0,@TILEXY,L
|
||
HRZOK:
|
||
MOVE @TILEXY,A0,L
|
||
MOVE A0,*A8(OXPOS),W
|
||
MOVI [0,35],A1
|
||
ADDXY A1,A0
|
||
MOVE A0,@TILEXY,L ;UPDATE X FOR NEXT TILE
|
||
SRL 16,A0
|
||
MOVE A0,*A8(OYPOS),W
|
||
MOVE A8,A0
|
||
CALLA ADJSTWTL ;PUT US IN THE WORLD
|
||
CUE:
|
||
SLEEP 1 ;WAIT TILL MASTER PROCESS IS READY
|
||
MOVB @STRTVAR,A0
|
||
JRZ CUE
|
||
MOVE *A8(OSIZEX),A9,W
|
||
SRL 1,A9 ;XSIZE/2
|
||
SLIDRGT:
|
||
MOVI [0,1],A2
|
||
CLR A3
|
||
CALLA CLIPOBJ ;CLIP ONE OFF THE RIGHT SIDE
|
||
MOVE *A8(OXPOS),A0,W ;GET THE CURRENT XPOS
|
||
INC A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
MOVK 2,A0
|
||
CALLA PRCSLP
|
||
DSJS A9,SLIDRGT
|
||
JSRP CWINDOW
|
||
NOCANDO:
|
||
DIE
|
||
|
||
TILEINIT:
|
||
.LONG 0,0,TILE6
|
||
.WORD >7FF0,DMAWNZ,CLSNEUT
|
||
.LONG 0,0
|
||
|
||
TILE2INIT:
|
||
.LONG 0,0,TILE7
|
||
.WORD >7FF0,DMAWNZ,CLSNEUT
|
||
.LONG 0,0
|
||
.END
|
||
|
||
|
||
|