smashtv/BACKUP/TILES.ASM

135 lines
2.6 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

.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