626 lines
13 KiB
NASM
626 lines
13 KiB
NASM
;************************************
|
||
;* *
|
||
;* PAC-MAN *
|
||
;* *
|
||
;* Developed for Atari Inc. by *
|
||
;* Roklan Corp. This Information *
|
||
;* is confidential and is not for *
|
||
;* sale or distribution. *
|
||
;* *
|
||
;* *
|
||
;* *
|
||
;* 10/03/82 *
|
||
;* *
|
||
;* DISK VERSION *
|
||
;* *
|
||
;* REVISION 3.0 *
|
||
;* *
|
||
;************************************
|
||
;
|
||
INCLUDE D2:SYSTEXT.ASM
|
||
;
|
||
LIST I
|
||
;
|
||
;******* ZERO PAGE VARIABLES ******
|
||
;
|
||
ORG $0018
|
||
;
|
||
DLICNT DS 1 ;DISPLAY LIST INT. COUNT
|
||
OPTION DS 1 ;OPTION MODE FLAG
|
||
NUMPLY DS 1 ;NUMBER OF PLAYERS
|
||
DIFOPT DS 1 ;DIFFICULTY OPTION
|
||
RSTRTF DS 1 ;RESTART FLAG
|
||
ATCLOK DS 1 ;ATTRACT COUNTDOWN CLOCK
|
||
ATTIMR DS 1 ;ATTRACT MODE TIMER
|
||
ATSEQU DS 1 ;ATTRACT MODE SEQUENCE #
|
||
;
|
||
GMOVRF DS 1 ;GAME OVER FLAG
|
||
READYF DS 1 ;READY FLAG
|
||
INTROF DS 1 ;INTRO FLAG
|
||
SWAPPF DS 1 ;SWAP PLAYER FLAG
|
||
RESETF DS 1 ;RESET FLAG
|
||
RESETT DS 1 ;RESET TIMER
|
||
RRFLAG DS 1 ;RERACK FLAG
|
||
RRSEQU DS 1 ;RERACK SEQUENCE #
|
||
RRTIMR DS 1 ;RERACK TIMER
|
||
RRFLCT DS 1 ;RERACK FLASH COUNT
|
||
TEMLOC DS 1 ;TEMPORARY STORAGE
|
||
PLYNUM DS 1 ;PLAYER # 0=1 1=2
|
||
XPACP1 DS 1 ;EXTRA PACMAN PLAYER 1
|
||
XPACP2 DS 1 ;EXTRA PACMAN PLAYER 2
|
||
BPACP1 DS 1 ;BONUS PACMAN PLAYER 1
|
||
BPACP2 DS 1 ;BONUS PACMAN PLAYER 2
|
||
MAZCT1 DS 1 ;MAZE COUNT PLAYER 1
|
||
MAZCT2 DS 1 ;MAZE COUNT PLAYER 2
|
||
BIGDT1 DS 1 ;BIG DOT STATUS #1
|
||
BIGDT2 DS 1 ;BIG DOT STATUS #2
|
||
DTCTL1 DS 1 ;DOTS EATEN CTR LSB #1
|
||
DTCTL2 DS 1 ;DOTS EATEN CTR LSB #2
|
||
DTCTM1 DS 1 ;DOTS EATEN CTR MSB #1
|
||
DTCTM2 DS 1 ;DOTS EATEN CTR MSB #2
|
||
SCNSC1 DS 2 ;SCREEN SCORE 1 ADDRESS
|
||
SCNSC2 DS 2 ;SCREEN SCORE 2 ADDRESS
|
||
PIXGET DS 2 ;P/M PIX GET ADDRESS
|
||
PIXPUT DS 2 ;P/M PIX PUT ADDRESS
|
||
PACCLR DS 1 ;ATTRACT PACMAN COLOR
|
||
;
|
||
ORG $0043
|
||
;
|
||
FRUTP1 DS 1 ;FRUIT COUNTER #1
|
||
FRUTP2 DS 1 ;FRUIT COUNTER #2
|
||
BCOUNT DS 1 ;BOUNCE TIMER COUNT
|
||
SAVCNS DS 1 ;SAVE CONSOL DATA
|
||
TUNLOC DS 2 ;USED FOR TUNNEL LOGIC
|
||
;
|
||
ORG $005A
|
||
M1DELY DS 1 ;MONSTER 1 DELAY
|
||
M2DELY DS 1 ;MONSTER 2 DELAY
|
||
M3DELY DS 1 ;MONSTER 3 DELAY
|
||
M4DELY DS 1 ;MONSTER 4 DELAY
|
||
ACOLR1 DS 1 ;ATTRACT COLOR 1 - $3A
|
||
ACOLR2 DS 1 ;ATTRACT COLOR 2 - $44
|
||
ACOLR3 DS 1 ;ATTRACT COLOR 3 - $2A
|
||
ACOLR4 DS 1 ;ATTRACT COLOR 4 - $DA
|
||
INTCNT DS 1 ;INTERMISSION COUNTER
|
||
INTCLK DS 1 ;INTERMISSION CLOCK
|
||
ORG $0080
|
||
;
|
||
PACSCN DS 2 ;PACMAN SCREEN MEM ADDR
|
||
PACBYT DS 1 ;PACMAN BYTE COUNTER
|
||
PVSAVE DS 1 ;PACMAN VPOS SAVE
|
||
PHSAVE DS 1 ;PACMAN HPOS SAVE
|
||
M1VPOS DS 1 ;MONSTER 1 VERTICAL POSIT
|
||
M2VPOS DS 1 ;MONSTER 2 VERTICAL POSIT
|
||
M3VPOS DS 1 ;MONSTER 3 VERTICAL POSIT
|
||
M4VPOS DS 1 ;MONSTER 4 VERTICAL POSIT
|
||
PMVPOS DS 1 ;PACMAN VERTICAL POSITION
|
||
M1HPOS DS 1 ;MONSTER 1 HORIZ POSITION
|
||
M2HPOS DS 1 ;MONSTER 2 HORIZ POSITION
|
||
M3HPOS DS 1 ;MONSTER 3 HORIZ POSITION
|
||
M4HPOS DS 1 ;MONSTER 4 HORIZ POSITION
|
||
PMHPOS DS 1 ;PACMAN HORIZONTAL POSIT
|
||
M1DIRT DS 1 ;MONSTER 1 DIRECTION
|
||
M2DIRT DS 1 ;MONSTER 2 DIRECTION
|
||
M3DIRT DS 1 ;MONSTER 3 DIRECTION
|
||
M4DIRT DS 1 ;MONSTER 4 DIRECTION
|
||
PMODIR DS 1 ;PACMAN OLD DIRECTION
|
||
SCOREX DS 6 ;PLAYER SCORE FOR TEXT
|
||
CARRYB DS 1 ;CARRY BIT FOR ABOVE
|
||
PAUSEF DS 1 ;PAUSE FLAG
|
||
WHINEY DS 1 ;CHASE WHINE DELTA
|
||
FRUTMR DS 2 ;FRUIT TIMER (10 SECS)
|
||
FRUFLG DS 1 ;FRUIT DISPLAY FLAG
|
||
FRUCLR DS 1 ;FRUIT COLOR
|
||
FRSCRF DS 1 ;FRUIT SCORE FLAG
|
||
FRSCRT DS 1 ;FRUIT SCORE TIMER
|
||
NOTCNT DS 1 ;NOTE COUNT FOR TUNES
|
||
VSAVER DS 1 ;VERTICAL POSIT SAVE
|
||
HSAVER DS 1 ;HORIZONTAL POSIT SAVE
|
||
PACMAP DS 1 ;PACMAN VERT MAP COUNTER
|
||
PACCNT DS 1 ;PACMAN MOTION COUNT
|
||
PACADV DS 1 ;PACMAN ADVANCE-TURNING
|
||
PACDLY DS 1 ;PACMAN DELAY-EATING DOTS
|
||
PMSTAT DS 1 ;PACMAN STATUS
|
||
PMSEQU DS 1 ;PACMAN SEQUENCE (MOUTH)
|
||
PMNDIR DS 1 ;PACMAN NEW DIRECTION
|
||
CHASET DS 1 ;CHASE TIMER
|
||
MSTILL DS 1 ;MONSTERS STILL FLAG
|
||
MSKIRT DS 1 ;MONSTER SKIRT FLAG
|
||
M1SPSQ DS 1 ;MONSTER 1 SPEED SEQUENCE
|
||
M2SPSQ DS 1 ;MONSTER 2 SPEED SEQUENCE
|
||
M3SPSQ DS 1 ;MONSTER 3 SPEED SEQUENCE
|
||
M4SPSQ DS 1 ;MONSTER 4 SPEED SEQUENCE
|
||
PMSPSQ DS 1 ;PACMAN SPEED SEQUENCE
|
||
M1SPCT DS 1 ;MONSTER 1 SPEED COUNT
|
||
M2SPCT DS 1 ;MONSTER 2 SPEED COUNT
|
||
M3SPCT DS 1 ;MONSTER 3 SPEED COUNT
|
||
M4SPCT DS 1 ;MONSTER 4 SPEED COUNT
|
||
PMSPCT DS 1 ;PACMAN SPEED COUNT
|
||
M1PIDX DS 1 ;MONSTER 1 PATTERN INDEX
|
||
M2PIDX DS 1 ;MONSTER 2 PATTERN INDEX
|
||
M3PIDX DS 1 ;MONSTER 3 PATTERN INDEX
|
||
M4PIDX DS 1 ;MONSTER 4 PATTERN INDEX
|
||
M1PCNT DS 1 ;MONSTER 1 PATTERN COUNT
|
||
M2PCNT DS 1 ;MONSTER 2 PATTERN COUNT
|
||
M3PCNT DS 1 ;MONSTER 3 PATTERN COUNT
|
||
M4PCNT DS 1 ;MONSTER 4 PATTERN COUNT
|
||
M1THPS DS 1 ;MONSTER 1 TARGET HPOS
|
||
M2THPS DS 1 ;MONSTER 2 TARGET HPOS
|
||
M3THPS DS 1 ;MONSTER 3 TARGET HPOS
|
||
M4THPS DS 1 ;MONSTER 4 TARGET HPOS
|
||
M1TVPS DS 1 ;MONSTER 1 TARGET VPOS
|
||
M2TVPS DS 1 ;MONSTER 2 TARGET VPOS
|
||
M3TVPS DS 1 ;MONSTER 3 TARGET VPOS
|
||
M4TVPS DS 1 ;MONSTER 4 TARGET VPOS
|
||
M1TIMR DS 1 ;MONSTER 1 TIMER
|
||
M2TIMR DS 1 ;MONSTER 2 TIMER
|
||
M3TIMR DS 1 ;MONSTER 3 TIMER
|
||
M4TIMR DS 1 ;MONSTER 4 TIMER
|
||
M1STAT DS 1 ;MONSTER 1 STATUS
|
||
M2STAT DS 1 ;MONSTER 2 STATUS
|
||
M3STAT DS 1 ;MONSTER 3 STATUS
|
||
M4STAT DS 1 ;MONSTER 4 STATUS
|
||
M1SSEQ DS 1 ;MONSTER 1 START SEQUENCE
|
||
M2SSEQ DS 1 ;MONSTER 2 START SEQUENCE
|
||
M3SSEQ DS 1 ;MONSTER 3 START SEQUENCE
|
||
M4SSEQ DS 1 ;MONSTER 4 START SEQUENCE
|
||
M1VDIR DS 1 ;MONSTER 1 VERT CHOICE
|
||
M2VDIR DS 1 ;MONSTER 2 VERT CHOICE
|
||
M3VDIR DS 1 ;MONSTER 3 VERT CHOICE
|
||
M4VDIR DS 1 ;MONSTER 4 VERT CHOICE
|
||
M1HDIR DS 1 ;MONSTER 1 HORZ CHOICE
|
||
M2HDIR DS 1 ;MONSTER 2 HORZ CHOICE
|
||
M3HDIR DS 1 ;MONSTER 3 HORZ CHOICE
|
||
M4HDIR DS 1 ;MONSTER 4 HORZ CHOICE
|
||
VCHASF DS 1 ;CHASE FREQ
|
||
VCHASD DS 1 ;DIRECTION 1=INC 2=DEC
|
||
VCHASS DS 1 ;CHASE SOUND START
|
||
VFLITF DS 1 ;FLIGHT FREQ
|
||
VFLITD DS 1 ;DIRECTION SAME
|
||
VFLITV DS 1 ;FLIGHT VOLUME
|
||
VFLITS DS 1 ;FLIGHT SOUND START
|
||
VFREEZ DS 1 ;FREEZE FLAG
|
||
VGLPC1 DS 1 ;GULP COUNT1
|
||
VGLPC2 DS 1 ;GULP COUNT2
|
||
GULPED DS 1 ;LAST MONSTER EATEN
|
||
GLPCNT DS 1 ;GULP COUNT
|
||
FIZZLE DS 1 ;FIZZLE FLAG 1=FIZL
|
||
FIZPTR DS 1 ;FIZZLE ADDR POINTER
|
||
FIZTIM DS 1 ;FIZZLE TIMER
|
||
VFIZST DS 1 ;FIZZLE STATUS
|
||
VFIZSQ DS 1 ;FIZZLE SEQUENCE #
|
||
VFIZBS DS 1 ;FIZZLE FREQ BASE
|
||
VFIZFQ DS 1 ;FIZZLE CURRENT FREQ
|
||
VFIZCT DS 1 ;FIZZLE COUNTER
|
||
TWEETR DS 1 ;TWEET SOUND FLAG
|
||
TWEETF DS 1 ;TWEET SOUND FREQ
|
||
EATERF DS 1 ;EAT DOT SOUND FLAG
|
||
EATERC DS 1 ;EAT DOT SOUND COUNT
|
||
EATERT DS 1 ;EAT DOT TOGGLE
|
||
GOBBLD DS 1 ;GOBBLE DIRCTN (FRUITS)
|
||
GOBBLF DS 1 ;GOBBLE FREQUENCY
|
||
BLINKT DS 1 ;BLINK TIMER
|
||
FLSHUP DS 1 ;FLASH 1UP 2UP TIMER
|
||
FLASHT DS 1 ;FLASH TIMER
|
||
FLASHC DS 1 ;FLASH COUNT
|
||
FLITMR DS 1 ;FLIGHT TIMER
|
||
TUNMSK DS 1 ;TUNNEL BIT MASK
|
||
TUNCNT DS 1 ;TUNNEL ITERATION COUNT
|
||
;
|
||
EJECT
|
||
;
|
||
ORG $0600
|
||
;
|
||
PACBUF DS 16 ; PACMAN IMAGE BUFFER
|
||
MONBUF DS 16 ; MONSTER IMAGE BUFFER
|
||
;
|
||
INTRDL EQU $0680;INTERMISSION DL
|
||
INTMOD EQU $06C0;INTERMISSION MODE
|
||
INTSEQ EQU $06C1;INTERMISSION SEQ
|
||
;
|
||
;
|
||
;**** SYSTEM VARIABLES ****
|
||
;
|
||
BDELAY EQU 1 ;BOUNCE DELAY
|
||
FDELAY EQU $FF;FRUIT TIMER VALUE
|
||
ADELAY EQU $30;ATTRACT TIMER DELAY
|
||
;
|
||
GAMMEM EQU $0800; GAME MEMORY
|
||
;
|
||
PACMAZ EQU GAMMEM+$0C00
|
||
P1SAVE EQU GAMMEM+$1000
|
||
P2SAVE EQU GAMMEM+$1400
|
||
OPTCHR EQU GAMMEM+$1800
|
||
OPTSCN EQU GAMMEM+$1C00
|
||
PMADDR EQU GAMMEM+$2000
|
||
TEXT EQU GAMMEM+$2000
|
||
PATSCN EQU GAMMEM+$2800
|
||
AMCSET EQU GAMMEM+$2C00
|
||
;
|
||
EJECT
|
||
;
|
||
ORG $3FFD
|
||
;
|
||
JMP INIT
|
||
;
|
||
INCLUDE D2:PACDAT1.ASM
|
||
;
|
||
EJECT
|
||
;
|
||
INIT LDX #9
|
||
INITL1 LDA HISCTX,X
|
||
STA TEXT+$0F,X
|
||
DEX
|
||
BPL INITL1
|
||
LDA #0
|
||
LDX #$27
|
||
INITL2 STA DLICNT,X
|
||
DEX
|
||
BPL INITL2
|
||
LDX #$7F
|
||
INIPZL STA $80,X
|
||
DEX
|
||
BPL INIPZL
|
||
;
|
||
INC OPTION
|
||
LDX RTCLOK+2
|
||
DEX
|
||
STX ATCLOK
|
||
;
|
||
; RELOCATE OPTION CHAR SET
|
||
;
|
||
LDX #0
|
||
OCLOOP LDA PACTTL,X
|
||
STA OPTCHR+8,X
|
||
INX
|
||
BNE OCLOOP
|
||
;
|
||
; BUILD ATTRACT MODE CHAR SET
|
||
;
|
||
ANCHRL LDA CHRORG,X
|
||
STA AMCSET,X
|
||
LDA CHRORG+$100,X
|
||
STA AMCSET+$100,X
|
||
INX
|
||
BNE ANCHRL
|
||
LDX #$1F
|
||
ANCDTL LDA ATCHRS,X
|
||
STA AMCSET+$18,X
|
||
DEX
|
||
BPL ANCDTL
|
||
;
|
||
; ENABLE KEYSCAN & SET VBI VECTOR
|
||
;
|
||
PACINI SEI
|
||
LDA POKMSK
|
||
ORA #$40
|
||
STA POKMSK
|
||
STA IRQEN
|
||
CLI
|
||
LDY #LOW VBLANK
|
||
LDX #HIGH VBLANK
|
||
LDA #7
|
||
STA SKCTL
|
||
JSR SETVBV;GO SET VBLANK VECTOR
|
||
LDA #$C0;ENABLE DLI AND VBI
|
||
STA NMIEN
|
||
LDA #$3E
|
||
STA SDMCTL;ENABLE P/M GRAPHICS
|
||
LDA #$3
|
||
STA GRACTL
|
||
LDA #HIGH PMADDR
|
||
STA PMBASE
|
||
LDA #LOW INIT
|
||
STA DOSVEC
|
||
LDA #HIGH INIT
|
||
STA DOSVEC+1
|
||
LDA #LOW INITAD
|
||
STA DOSINI
|
||
LDA #HIGH INITAD
|
||
STA DOSINI+1
|
||
;
|
||
REINIT LDA #0;NEW GAME VECTOR
|
||
LDX #$1F
|
||
REINLP STA GMOVRF,X
|
||
DEX
|
||
BPL REINLP
|
||
TXS
|
||
JSR CLRAUD
|
||
;
|
||
; NOW INITIALIZE PLAYER SCREENS
|
||
;
|
||
JSR P1INIT
|
||
JSR SAVEP1
|
||
JSR SAVEP2
|
||
;
|
||
LDA OPTION
|
||
BNE LOOP
|
||
;
|
||
PACGAM LDA RTCLOK+2
|
||
PACGML CMP RTCLOK+2
|
||
BEQ PACGML
|
||
LDA #LOW DLIST
|
||
STA SDLSTL
|
||
STA DLISTL
|
||
LDA #HIGH DLIST
|
||
STA SDLSTH
|
||
STA DLISTH
|
||
LDA #LOW DLIV; DLI VECTOR
|
||
STA VDSLST
|
||
LDA #HIGH DLIV
|
||
STA VDSLST+1
|
||
LDA #$11
|
||
STA GPRIOR;LET MISSILES USE COLPF3
|
||
SETPAC JSR SETUP
|
||
JSR NEWGAM
|
||
LDA NUMPLY
|
||
BEQ P1SCIN
|
||
JSR SET2PL
|
||
JMP GODOIT
|
||
P1SCIN JSR SET1PL
|
||
GODOIT LDA #2
|
||
STA RSTRTF
|
||
;
|
||
LOOP LDA RRSEQU
|
||
CMP #3
|
||
BNE GOLOOP
|
||
JSR INTMIS
|
||
JSR SETUP
|
||
INC RRSEQU
|
||
GOLOOP LDX #3
|
||
LOOPLP LDA ACOLOR,X
|
||
EOR COLRSH;ATTRACT COLORS THAT ARE
|
||
AND DRKMSK;SWITCHED WITH DLI'S
|
||
STA ACOLR1,X
|
||
DEX
|
||
BPL LOOPLP
|
||
LDA OPTION
|
||
BNE PCTRIG
|
||
LDA KEYDEL
|
||
BNE IGNORK
|
||
LDA CH; TEST FOR SPACE BAR PAUSE
|
||
CMP #$21
|
||
BNE IGNORK
|
||
LDA PAUSEF
|
||
BEQ FLIPON
|
||
LDA #0
|
||
BEQ STFLIP
|
||
FLIPON LDA #1
|
||
STFLIP STA PAUSEF
|
||
NOFLIP LDA #$FF
|
||
STA CH
|
||
IGNORK LDA GMOVRF
|
||
BEQ GAMCNS
|
||
LDA ATTIMR;IF GAME OVER, TIME OUT
|
||
BNE PCTRIG;AND GO TO OPTION SCREEN
|
||
LDA #4
|
||
BNE PCEXT1
|
||
PCTRIG LDA #$FF
|
||
STA CH
|
||
LDA STRIG0
|
||
BEQ CSTART
|
||
LDA STRIG1;TEST TRIGGER START
|
||
BEQ CSTART
|
||
GAMCNS LDA CONSOL
|
||
CMP #7; NO BUTTONS PRESSED
|
||
BEQ LOOP
|
||
CNSSWT STA SAVCNS
|
||
LDX #BDELAY
|
||
STX BCOUNT
|
||
CLOOP1 ORA CONSOL
|
||
LDX BCOUNT;DEBOUNCE LOGIC
|
||
BNE CLOOP1
|
||
CMP SAVCNS
|
||
BNE GAMCNS
|
||
CLOOP2 CMP CONSOL
|
||
BEQ CLOOP2
|
||
LDA SAVCNS
|
||
CMP #6
|
||
BEQ CSTART
|
||
LDX ATSEQU
|
||
BEQ CPROPT
|
||
LDA #0
|
||
STA ATSEQU
|
||
LDA #4
|
||
BNE PCEXT1
|
||
CPROPT LDX OPTION;IF OPTION SCREEN
|
||
CPX #3; THEN CHANGE PARAMS
|
||
BCC PCEXIT
|
||
PRESSW CMP #3
|
||
BEQ COPTON
|
||
CMP #5
|
||
BEQ CSELEC
|
||
JMP LOOP
|
||
CSTART LDA #0
|
||
STA GMOVRF;START FUNCTION-NEW GAME
|
||
STA OPTION
|
||
STA ATSEQU
|
||
LDA #1
|
||
STA RSTRTF
|
||
JMP REINIT
|
||
CSELEC LDA NUMPLY
|
||
BNE PCNSE1;PROCESS SELECT CHANGES
|
||
LDA #1
|
||
BNE PCNSE2
|
||
PCNSE1 LDA #0
|
||
PCNSE2 STA NUMPLY
|
||
PCEXIT LDA #3
|
||
PCEXT1 STA OPTION
|
||
STA ATRACT
|
||
LDA #7
|
||
STA ATCLOK
|
||
JMP LOOP
|
||
COPTON LDA DIFOPT
|
||
CMP #2
|
||
BCS PCNOP1;PROCESS OPTION CHANGES
|
||
INC DIFOPT
|
||
BNE PCEXIT
|
||
PCNOP1 CMP #$0C
|
||
BEQ PCNOP2
|
||
INC DIFOPT
|
||
INC DIFOPT
|
||
BNE PCEXIT
|
||
PCNOP2 LDA #0
|
||
STA DIFOPT
|
||
BEQ PCEXIT
|
||
;
|
||
; DISPLAY LIST INTERRUPT VECTOR
|
||
;
|
||
DLIV PHA
|
||
TXA
|
||
PHA
|
||
LDX DLICNT;DLI COUNT
|
||
BNE DLI2ND
|
||
LDA #HIGH PACCHR
|
||
STA WSYNC
|
||
STA CHBASE
|
||
BNE DLIXIT
|
||
DLI2ND CPX #1
|
||
BNE DLI3RD
|
||
LDA ACOLR4;-$DA PLAYER 1-2 MSG
|
||
LDX ACOLR1;-$3A LT ORANGE COLOR
|
||
STA WSYNC
|
||
STA COLPF1
|
||
STX COLPF2
|
||
BNE DLIXIT
|
||
DLI3RD CPX #2
|
||
BNE DLI4TH
|
||
LDA FRUCLR; FRUIT COLOR
|
||
EOR COLRSH
|
||
AND DRKMSK
|
||
STA WSYNC
|
||
STA COLPF1
|
||
BNE DLIXIT
|
||
DLI4TH CPX #3
|
||
BNE DLI5TH
|
||
LDA ACOLR2
|
||
STA WSYNC
|
||
STA COLPF1
|
||
BNE DLIXIT
|
||
DLI5TH CPX #4
|
||
BNE LSTDLI
|
||
LDA ACOLR3;YELLOW COLOR
|
||
LDX ACOLR4
|
||
STA WSYNC
|
||
STX COLPF0
|
||
STA COLPF3
|
||
BNE DLIXIT
|
||
LSTDLI LDX #3
|
||
LDA #0
|
||
DLICLP STA COLPM0,X
|
||
DEX
|
||
BPL DLICLP
|
||
STA COLPF3
|
||
DLIXIT INC DLICNT
|
||
PLA
|
||
TAX
|
||
PLA
|
||
RTI
|
||
;
|
||
; DLI VECTOR FOR OPT & TITLE SCREENS
|
||
;
|
||
OPDLIV PHA
|
||
TXA
|
||
PHA
|
||
TYA
|
||
PHA
|
||
LDX DLICNT
|
||
BNE OPDLI1
|
||
LDY ACOLR2
|
||
LDA ACOLR1
|
||
LDX #HIGH OPTCHR
|
||
STA WSYNC
|
||
STX CHBASE
|
||
STA COLPF2
|
||
STY COLPF1
|
||
JMP OPDLIX
|
||
OPDLI1 LDA OCINDX,X
|
||
STA WSYNC
|
||
STA CHBASE
|
||
OPDLIX INC DLICNT
|
||
PLA
|
||
TAY
|
||
PLA
|
||
TAX
|
||
PLA
|
||
RTI
|
||
;
|
||
; VERTICAL BLANK INTERRUPT VECTOR
|
||
;
|
||
VBLANK LDA #0
|
||
STA DLICNT
|
||
DEC BCOUNT
|
||
JSR VBSUBS
|
||
LDA ATSEQU
|
||
BNE VBEXIT
|
||
LDA VFREEZ
|
||
BNE VBEXIT
|
||
JSR TUNNEL
|
||
VBEXIT JMP XITVBV; EXIT VECTOR
|
||
;
|
||
OPTTTL LDA #0
|
||
LDX #7
|
||
CHRDWR STA HPOSP0,X
|
||
STA AUDF1,X
|
||
DEX
|
||
BPL CHRDWR
|
||
LDA #LOW ODLIST
|
||
STA SDLSTL
|
||
STA DLISTL
|
||
LDA #HIGH ODLIST
|
||
STA SDLSTH
|
||
STA DLISTH
|
||
LDA #LOW OPDLIV
|
||
STA VDSLST
|
||
LDA #HIGH OPDLIV
|
||
STA VDSLST+1
|
||
OCOLRS LDY #3
|
||
OCLRLP LDA OCOLOR,Y
|
||
STA COLOR0,Y
|
||
DEY
|
||
BPL OCLRLP
|
||
INITAD RTS
|
||
;
|
||
SET1PL LDX #6
|
||
LDA #0
|
||
S1PLL1 STA TEXT+$20,X
|
||
STA TEXT+$47,X
|
||
STA TEXT+$2A,X
|
||
DEX
|
||
BPL S1PLL1
|
||
SETXPL JSR FLS1ON
|
||
LDA #$10
|
||
STA TEXT+$2E
|
||
STA TEXT+$2F
|
||
RTS
|
||
;
|
||
SET2PL LDX #6
|
||
LDA #0
|
||
S2PLL1 STA TEXT+$2A,X
|
||
STA TEXT+$47,X
|
||
DEX
|
||
BPL S2PLL1
|
||
JSR FLS2ON
|
||
LDA #$10
|
||
STA TEXT+$4B
|
||
STA TEXT+$4C
|
||
BNE SETXPL
|
||
;
|
||
EJECT
|
||
INCLUDE D1:PAC1.ASM
|
||
EJECT
|
||
INCLUDE D1:PAC2.ASM
|
||
EJECT
|
||
INCLUDE D1:PAC3.ASM
|
||
EJECT
|
||
INCLUDE D1:PAC4.ASM
|
||
EJECT
|
||
INCLUDE D2:PACDAT2.ASM
|
||
EJECT
|
||
;
|
||
ORG $7400
|
||
;
|
||
INCLUDE D2:PACDAT3.ASM
|
||
;
|
||
END INIT
|
||
|