Save The Last Human Family
commit
da11ac0436
|
@ -0,0 +1,115 @@
|
|||
*
|
||||
* ROBOTRON 3-10-82 RELEASE 1
|
||||
*
|
||||
|
||||
ORG $26B7
|
||||
FCB $65
|
||||
ORG $5E77
|
||||
FCB $68
|
||||
ORG $DE54
|
||||
FCB $1B,$1B,$1B,$1B,$1B,$1B,$1B,$1B
|
||||
*
|
||||
* CHECKSUMS
|
||||
*
|
||||
*
|
||||
* 0-$4D
|
||||
* 1-$19
|
||||
* 2-$D9
|
||||
* 3-$1B
|
||||
* 4-$7E
|
||||
* 5-$DD
|
||||
* 6-$F1
|
||||
* 7-$3E
|
||||
* 8-$6D
|
||||
*
|
||||
* D-$4D
|
||||
* E-$48
|
||||
|
||||
* SUPER CHECKERS - 98F3 = $37
|
||||
* BE72 = $4A
|
||||
|
||||
|
||||
**************************************************************************
|
||||
* *
|
||||
* Here is a detailed explaination of the Robotron 2084 *
|
||||
* "JAP ZAPPERS". This was a primitive system setup to *
|
||||
* try and make it more difficult for game copiers to *
|
||||
* Modify the game. There were scrambled sections of the *
|
||||
* code that would try and monitor "random" checksums *
|
||||
* of regions of the code. If they detected that the code *
|
||||
* had been modified, they would cause random program *
|
||||
* events to occur at a low frequency (the random and *
|
||||
* low frequency combination would make it harder to track *
|
||||
* down the culprits). We always assumed that developers *
|
||||
* with good tools would find these quickly, but Christian *
|
||||
* Gingras, removed this small nuisance while trying to *
|
||||
* fix the other bugs he had found in the program (with *
|
||||
* the aid of his Radio Shack Color Computer). *
|
||||
* *
|
||||
* There are 2 regions for which checksums are kept. The *
|
||||
* checksums are not the sum of all bytes, but the sum *
|
||||
* of every 8 and 16 bytes respectively. The first checksum *
|
||||
* is the sum of every 16th byte from $0007 to $8927 inclusive *
|
||||
* and is stored at $98F3 (HCK1). This sum should come out to *
|
||||
* $37. The second checksum is the sum of every 8th byte *
|
||||
* from $D015 to $EAAD and is stored at $BE72 (HCK2). This sum *
|
||||
* should come out to $4A. *
|
||||
* *
|
||||
* There are 6 places in the software that are concerned *
|
||||
* with the checksums. *
|
||||
* *
|
||||
* In RRTEXT, at label WORDZ (the call for message handling) *
|
||||
* there is a check of HCK1 for its $37 value, and handling *
|
||||
* to zap if incorrect. *
|
||||
* *
|
||||
* In RRS22, the code to set the HCK1 value (by performing the *
|
||||
* required addition) is found within the PINIT routine. *
|
||||
* PINIT is used to initialize the process structure at the *
|
||||
* start of each turn. *
|
||||
* *
|
||||
* In RRS22 there is a check of HCK1 for its $37 value in the *
|
||||
* ASCAN routine. ASCAN is called at the start of each wave *
|
||||
* by each object to make sure the space it wants is un-occupied *
|
||||
* *
|
||||
* In RRG23 the code to setup the HCK2 value (by performing *
|
||||
* the required addition) is found within the game start *
|
||||
* routine (START1 and START2). *
|
||||
* *
|
||||
* In RRX7 there is a check of HCK2 for its $4A value in *
|
||||
* the explosion starter (EXSTV). *
|
||||
* *
|
||||
* In RRB10 there is a routine that computes the HCK2 value *
|
||||
* (on the fly in case the copiers goose the values into *
|
||||
* ram) and zaps if it does not come up with the $4A value. *
|
||||
* This is found in the brain starter (BRNSTV) and is run *
|
||||
* in any waves that contain BRAIN robots. *
|
||||
* *
|
||||
* The checksums are computed with the equivilents of the *
|
||||
* following code: *
|
||||
* *
|
||||
* HCK1 ($98F3) = $37 *
|
||||
* *
|
||||
* clra *
|
||||
* ldx #$0007 *
|
||||
* loop: adda 0,x *
|
||||
* leax $10,x *
|
||||
* cmpx #$8935 *
|
||||
* blo loop *
|
||||
* sta hck1 *
|
||||
* *
|
||||
* *
|
||||
* HCK2 ($BE72) = $4A *
|
||||
* *
|
||||
* clra *
|
||||
* ldx #$d015 *
|
||||
* loop: adda 0,x *
|
||||
* leax $8,x *
|
||||
* cmpx #$EAB1 *
|
||||
* blo loop *
|
||||
* sta hck2 *
|
||||
* *
|
||||
* *
|
||||
**************************************************************************
|
||||
|
||||
END
|
||||
|
|
@ -0,0 +1,738 @@
|
|||
OPT NOL
|
||||
LIB RRF
|
||||
OPT LIS
|
||||
STTL C I R C L E S AND E N F O R C E R S
|
||||
*
|
||||
*VECTORS
|
||||
*
|
||||
ORG RCORG
|
||||
JMP CIRST
|
||||
JMP CIRKKV
|
||||
FDB CIRP0
|
||||
FDB ENGP1
|
||||
FDB ENFP0
|
||||
*
|
||||
*MISC SOUNDS
|
||||
*
|
||||
ENDSND FCB $D8,$01,$08,$18,0 ENFORCER DROP OFF
|
||||
CRKSND FCB $D1,$01,$08,$08,0 CIRCLE KILL
|
||||
ENFSND FCB $D0,$01,$08,$1D,0 ENFORCER SHOOT
|
||||
ENKSND FCB $D0,$03,$04,$17,0 ENFORCER KILL
|
||||
SPKSND FCB $D0,$01,$04,$15,$01,$08,$14,0 SPARK KILL
|
||||
*
|
||||
*CIRCLE START
|
||||
*PD=OBJ,PD2=TIME TO DROP,PD3=#OF ENFORCERS
|
||||
*A=#
|
||||
CIRST LDA CIRCNT
|
||||
PSHS A
|
||||
BEQ CIRCSX
|
||||
CIRSTL MKPROB CIRCLE,CIRP4,CIRKIL
|
||||
BEQ CIRCSX NONE LEFT
|
||||
JSR RANDXY
|
||||
LDA #XMIN+2
|
||||
TST SEED
|
||||
BMI CIRCS1
|
||||
LDA #XMAX-8
|
||||
CIRCS1 STD OBJX,X INIT COORDS
|
||||
STA OX16,X
|
||||
STB OY16,X
|
||||
LDA CDPTIM
|
||||
JSR RMAX
|
||||
STA PD2,U TIME TO DROP
|
||||
LDA ENFNUM
|
||||
JSR RMAX
|
||||
LSRA
|
||||
ADCA #0
|
||||
STA PD3,U # TO DROP
|
||||
JSR CIRNAC RANDOM CIRCLE ACCEL
|
||||
LDD #CIRP4 PHONY PICTURE TO HIT
|
||||
STD FONIPC,X
|
||||
STX OPTR
|
||||
DEC ,S
|
||||
BNE CIRSTL
|
||||
CIRCSX PULS A,PC
|
||||
*
|
||||
*CIRCLE PROCESS
|
||||
*PD=OBJ,PD2=TIME TO DROP,PD3=# ENF,PD5=X ACC,PD6=Y ACC
|
||||
*PD7=ACC TIME
|
||||
*
|
||||
CIRCLE LDX PD,U
|
||||
LDD OPICT,X
|
||||
ADDD #4
|
||||
CMPD #CIRP4
|
||||
BLS CIRC1
|
||||
LDD #CIRP0
|
||||
TST STATUS DONT START EARLY GUYS
|
||||
BNE CIRC1
|
||||
DEC PD2,U GO CRITICAL??
|
||||
BEQ CIRC2 YIP
|
||||
CIRC1 STD OPICT,X
|
||||
DEC PD7,U NEW ACCEL?
|
||||
BNE CIRC1A NO
|
||||
JSR CIRNAC
|
||||
CIRC1A JSR CIRGO ACCELERATE+DAMP
|
||||
NAP 2,CIRCLE
|
||||
*GO GET THE MO'FO'
|
||||
CIRC2 LDA CDPTIM
|
||||
LSRA
|
||||
LSRA
|
||||
JSR RMAX
|
||||
STA PD2,U TIME TO DROP
|
||||
CIRC2L LDX PD,U
|
||||
LDD OPICT,X
|
||||
ADDD #4
|
||||
CMPD #CIRP7
|
||||
BLS CIRC2A
|
||||
DEC PD2,U
|
||||
BNE CIR2A
|
||||
LDA ENFCNT MAXXED OUT??
|
||||
CMPA #8
|
||||
BHS CIRC2 TOO MANY
|
||||
LDA OVCNT OUT OF REAL TIME ??
|
||||
CMPA #17
|
||||
BHS CIRC2
|
||||
JSR ENFDRP
|
||||
DEC PD3,U
|
||||
BEQ CIRC3 ALL DONJE
|
||||
BRA CIRC2 GET NEW DROP TIME
|
||||
CIR2A LDD #CIRP0
|
||||
CIRC2A STD OPICT,X
|
||||
DEC PD7,U
|
||||
BNE CIRC2B
|
||||
JSR CIRNAC
|
||||
CIRC2B JSR CIRGO
|
||||
NAP 2,CIRC2L
|
||||
*ESCAPE PHASE
|
||||
CIRC3 LDD #0
|
||||
STD OYV,X
|
||||
LDD #$100
|
||||
TST SEED
|
||||
BPL CIRC3A
|
||||
NEGA
|
||||
CIRC3A STD OXV,X
|
||||
CIRC3L LDX PD,U
|
||||
LDD OPICT,X
|
||||
ADDD #4
|
||||
CMPD #CIRP4
|
||||
BLS CIRC3B
|
||||
LDA OX16,X DONE?
|
||||
CMPA #XMIN+3
|
||||
BLS CIRC4 YES
|
||||
CMPA #XMAX-10
|
||||
BHS CIRC4 YES
|
||||
LDD #CIRP0
|
||||
CIRC3B STD OPICT,X
|
||||
NAP 2,CIRC3L
|
||||
*ALL DONE
|
||||
CIRC4 JSR KILLOF
|
||||
DEC CIRCNT
|
||||
JMP SUCIDE
|
||||
*
|
||||
*CIRCLE NEW ACCEL
|
||||
*X=OBJ,PD5=X ACC,PD6=Y ACC,PD7=ACC TIME
|
||||
*
|
||||
CIRNAC LDA HSEED
|
||||
ANDA #$1F
|
||||
ADDA #-$10
|
||||
STA PD5,U X ACC
|
||||
LDA LSEED
|
||||
EORA SEED
|
||||
ANDA #$3F
|
||||
ADDA #-$20
|
||||
STA PD6,U Y ACC
|
||||
LDA #15
|
||||
JSR RANDU
|
||||
STA PD7,U
|
||||
RTS
|
||||
*
|
||||
*CIRCLE ACCELERATE
|
||||
*X=OBJ
|
||||
CIRGO LDB PD5,U X ACCEL
|
||||
SEX
|
||||
ADDD OXV,X
|
||||
CMPD #$0100 CHECK YOUR LIMITS
|
||||
BLT CIRG1
|
||||
LDD #$0100
|
||||
CIRG1 CMPD #$FF00
|
||||
BGT CIRG2
|
||||
LDD #$FF00
|
||||
CIRG2 STD OXV,X
|
||||
COMA
|
||||
COMB
|
||||
ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
TFR A,B
|
||||
SEX
|
||||
ADDD OXV,X
|
||||
STD OXV,X
|
||||
LDB PD6,U Y ACCEL
|
||||
SEX
|
||||
ADDD OYV,X
|
||||
CMPD #$0200
|
||||
BLT CIRG3
|
||||
LDD #$0200
|
||||
CIRG3 CMPD #$FE00
|
||||
BGT CIRG4
|
||||
LDD #$FE00
|
||||
CIRG4 STD OYV,X
|
||||
COMA
|
||||
COMB
|
||||
ASLB
|
||||
ROLA
|
||||
TFR A,B
|
||||
SEX
|
||||
ADDD OYV,X
|
||||
STD OYV,X
|
||||
RTS
|
||||
*
|
||||
*KILL A CIRCLE
|
||||
*X=OBJECT
|
||||
CIRKIL LDA PCFLG
|
||||
BNE CIRKX DONT BLOW IF PLAYER HITS YOU
|
||||
JSR KILOFP KILL, OFF OBJ; KILL PROC
|
||||
LDU OFREE
|
||||
LDD ,U GET OBJ BACK
|
||||
STD OFREE
|
||||
MAKP CIRKP CIRCLE KILL PROC
|
||||
STU PD,X
|
||||
LDD #CIRP1
|
||||
STD OPICT,U
|
||||
DEC CIRCNT
|
||||
LDD #$0210 SCORE 1K
|
||||
JSR SCORE
|
||||
LDD #CRKSND
|
||||
JMP SNDLD
|
||||
CIRKX RTS
|
||||
*
|
||||
*CIRCLE KILL PROCESS BUBBLE BURST
|
||||
*PD=OBJ.
|
||||
CIRKP LDD #$FFAA
|
||||
STD PD4,U COLORS..
|
||||
LDA #7
|
||||
STA PD6,U COUNT
|
||||
CIRKKV EQU *
|
||||
CIRKPL LDX PD,U
|
||||
LDY OPICT,X
|
||||
LDD OBJX,X
|
||||
JSR PCTOFF
|
||||
LEAY 4,Y
|
||||
STY OPICT,X
|
||||
DEC PD6,U
|
||||
BEQ CIRKPX
|
||||
LDA PD5,U
|
||||
STA XTEMP2
|
||||
LDD OBJX,X
|
||||
JSR MPCTON
|
||||
NAP 2,CIRKPL
|
||||
CIRKPX EQU *
|
||||
LDD OBJX,X DISPLAY 1000 MESSAGE
|
||||
ADDD #$0105
|
||||
STD OBJX,X
|
||||
LDA #30
|
||||
STA PD2,U
|
||||
LDD P1KD
|
||||
STD OPICT,X
|
||||
CIRKX1 LDX PD,U
|
||||
LDA PD4,U
|
||||
STA XTEMP2 COLOR
|
||||
LDY OPICT,X
|
||||
LDD OBJX,X
|
||||
JSR MPCTON
|
||||
DEC PD2,U
|
||||
BEQ CIRKX2
|
||||
NAP 2,CIRKX1
|
||||
CIRKX2 JSR PCTOFF
|
||||
LDD OFREE DUMP
|
||||
STD ,X
|
||||
STX OFREE
|
||||
JMP SUCIDE CROAK NOW PLEASE!!
|
||||
*
|
||||
*DROP OFF AN ENFORCER
|
||||
*X=CIRCLE OBJECT
|
||||
ENFDRP PSHS X,Y,D,U
|
||||
TFR X,Y
|
||||
MKPROB ENFRCE,ENGP1,ENFKIL
|
||||
BEQ ENFDX NONE LEFT
|
||||
LDA OX16,Y
|
||||
LDB OY16,Y
|
||||
STA OX16,X
|
||||
STB OY16,X
|
||||
STD OBJX,X
|
||||
LDA ENSTIM
|
||||
JSR RMAX
|
||||
STA PD6,U SHOT TIMER
|
||||
STX OPTR LINK EM IN
|
||||
LDD #ENDSND
|
||||
JSR SNDLD
|
||||
INC ENFCNT
|
||||
ENFDX PULS X,Y,D,U,PC
|
||||
*
|
||||
*ENFORCER PROCESS
|
||||
*PD=OBJECT,PD6=SHOT TIMER, PD7=UPDATE TIMER
|
||||
*
|
||||
ENFR0 LDX PD,U GROW UP
|
||||
LDD OPICT,X
|
||||
ADDD #4
|
||||
CMPD #ENFP0
|
||||
BHS ENFR10 ALL GROWN UP
|
||||
STD OPICT,X
|
||||
ENFRCE NAP 8,ENFR0
|
||||
*GO GIT IM
|
||||
ENFR10 STD OPICT,X SAVE THE PICT
|
||||
JSR ENFNV GET A VELOCITY
|
||||
ENFR1 LDX PD,U
|
||||
DEC PD7,U
|
||||
BNE ENFR1A
|
||||
JSR ENFNV
|
||||
ENFR1A DEC PD6,U
|
||||
BNE ENFR1B
|
||||
JSR ENFSHT TAKE A SHOT AT THE JAGOFF
|
||||
ENFR1B NAP 3,ENFR1
|
||||
*
|
||||
*GET A NEW ENFORCER VELOCITY
|
||||
*PD7=UPDATE TIMER, X=OBJ
|
||||
*
|
||||
ENFNV JSR RAND16
|
||||
ANDA #$1F
|
||||
STA PD7,U
|
||||
CLRA
|
||||
ASRB
|
||||
ASRB
|
||||
ASRB
|
||||
ADDB PX
|
||||
CMPB #XMIN
|
||||
BHS ENFNV1
|
||||
LDB #XMIN
|
||||
ENFNV1 CMPA #XMAX
|
||||
BLS ENFNV4
|
||||
CMPB #XMAX+$40
|
||||
BHS ENFNV2
|
||||
LDB #XMAX
|
||||
BRA ENFNV4
|
||||
ENFNV2 LDB #XMIN
|
||||
ENFNV4 SUBB OX16,X
|
||||
SBCA #0 GET THE SIGN GUYS
|
||||
ASLB
|
||||
ROLA
|
||||
STD OXV,X
|
||||
CLRA
|
||||
LDB HSEED
|
||||
ASRB
|
||||
ASRB
|
||||
ASRB
|
||||
ADDB PX+1
|
||||
CMPB #YMAX
|
||||
BLS ENFNV5
|
||||
LDB #YMAX
|
||||
ENFNV5 CMPB #YMIN
|
||||
BHS ENFNV7
|
||||
CMPB #YMIN>>1
|
||||
BHS ENFNV6
|
||||
LDB #YMAX
|
||||
BRA ENFNV7
|
||||
ENFNV6 LDB #YMIN
|
||||
ENFNV7 SUBB OY16,X
|
||||
SBCA #0 GET THE SIGN
|
||||
ASLB
|
||||
ROLA
|
||||
STD OYV,X
|
||||
RTS
|
||||
*
|
||||
*ENFORCER SHOOT
|
||||
*X=OBJ
|
||||
ENFSHT PSHS U,X
|
||||
TFR X,Y
|
||||
LDA ENSTIM SHOT TIMER
|
||||
JSR RMAX
|
||||
STA PD6,U
|
||||
LDA SPKCNT TOO MANY??
|
||||
CMPA #20
|
||||
BHS ENFSX
|
||||
LDA OVCNT NO TIME LEFT??
|
||||
CMPA #17
|
||||
BHS ENFSX
|
||||
MKPROB SPARK,SPKP0,SPKIL
|
||||
BEQ ENFSX NONE LEFT
|
||||
INC SPKCNT
|
||||
LDD OBJX,Y
|
||||
STA OX16,X
|
||||
STB OY16,X
|
||||
STD OBJX,X
|
||||
LDB SEED
|
||||
ANDB #$1F
|
||||
ADDB #-$10
|
||||
LDA PX
|
||||
CMPA #XMIN+$10
|
||||
BHS ENFS2
|
||||
CLRB
|
||||
ENFS2 ADDB PX
|
||||
CLRA
|
||||
SUBB OBJX,X
|
||||
SBCA #0 GET SIGN
|
||||
ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
STD OXV,X
|
||||
LDB LSEED
|
||||
ANDB #$1F
|
||||
ADDB #-$10
|
||||
ADDB PX+1
|
||||
CLRA
|
||||
SUBB OBJY,X
|
||||
SBCA #0
|
||||
ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
STD OYV,X
|
||||
LDB LSEED
|
||||
ANDB #$1F
|
||||
ADDB #-$10
|
||||
SEX
|
||||
STD PD2,U X ACC
|
||||
LDB HSEED
|
||||
ANDB #$1F
|
||||
ADDB #-$10
|
||||
SEX
|
||||
STD PD4,U Y ACC
|
||||
STX OPTR
|
||||
LDA HSEED
|
||||
ANDA #$F
|
||||
ADDA #$14
|
||||
STA PD7,U LIFETIME
|
||||
LDD #ENFSND
|
||||
JSR SNDLD
|
||||
ENFSX PULS U,X,PC
|
||||
*
|
||||
*KILL AN ENFORCER
|
||||
*X=OBJECT
|
||||
ENFKIL LDA PCFLG
|
||||
BNE ENFKX
|
||||
JSR KILOFP
|
||||
LDX OFREE
|
||||
LDD ,X
|
||||
STD OFREE GET OBJ BACK
|
||||
JSR EXST
|
||||
LDD OFREE
|
||||
STD ,X
|
||||
STX OFREE FREE HIM
|
||||
DEC ENFCNT
|
||||
LDD #$0115
|
||||
JSR SCORE
|
||||
LDD #ENKSND
|
||||
JMP SNDLD
|
||||
ENFKX RTS
|
||||
*
|
||||
*SPARK PROCESS
|
||||
*PD=OBJ,PD2=X ACC,PD4=Y ACC
|
||||
*PD7=LIFE
|
||||
SPARK LDX PD,U
|
||||
LDD OPICT,X
|
||||
ADDD #4
|
||||
CMPD #SPKP3
|
||||
BLS SPK1
|
||||
LDD #SPKP0
|
||||
SPK1 STD OPICT,X
|
||||
LDD OXV,X
|
||||
ADDD PD2,U
|
||||
STD OXV,X
|
||||
LDD OYV,X
|
||||
ADDD PD4,U
|
||||
STD OYV,X
|
||||
DEC PD7,U
|
||||
BEQ SPKDIE
|
||||
NAP 4,SPARK
|
||||
SPKDIE JSR KILLOF
|
||||
DEC SPKCNT
|
||||
JMP SUCIDE
|
||||
*
|
||||
*SPARK KILL
|
||||
*X=OBJ
|
||||
SPKIL LDA PCFLG
|
||||
BNE SPKX
|
||||
JSR KILOFP
|
||||
DEC SPKCNT
|
||||
LDD #$0025
|
||||
JSR SCORE
|
||||
LDD #SPKSND
|
||||
JMP SNDLD
|
||||
SPKX RTS
|
||||
*CIRCLES
|
||||
CIRP0 FCB 8,15
|
||||
FDB CIRD0
|
||||
CIRP1 FCB 8,15
|
||||
FDB CIRD1
|
||||
CIRP2 FCB 8,15
|
||||
FDB CIRD2
|
||||
CIRP3 FCB 8,15
|
||||
FDB CIRD3
|
||||
CIRP4 FCB 8,15
|
||||
FDB CIRD4
|
||||
CIRP5 FCB 8,15
|
||||
FDB CIRD5
|
||||
CIRP6 FCB 8,15
|
||||
FDB CIRD6
|
||||
CIRP7 FCB 8,15
|
||||
FDB CIRD7
|
||||
|
||||
IFC &A,NOL
|
||||
OPT NOL
|
||||
ENDIF
|
||||
|
||||
CIRD0 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$000F,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
CIRD1 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$000F,$0000,$0000
|
||||
FDB $0000,$00FF,$F000,$0000
|
||||
FDB $0000,$000F,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
CIRD2 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$00FF,$F000,$0000
|
||||
FDB $0000,$0FFF,$FF00,$0000
|
||||
FDB $0000,$0FF0,$FF00,$0000
|
||||
FDB $0000,$0FFF,$FF00,$0000
|
||||
FDB $0000,$00FF,$F000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
CIRD3 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$00FF,$F000,$0000
|
||||
FDB $0000,$0FFF,$FF00,$0000
|
||||
FDB $0000,$FFF0,$FFF0,$0000
|
||||
FDB $0000,$FF00,$0FF0,$0000
|
||||
FDB $0000,$FFF0,$FFF0,$0000
|
||||
FDB $0000,$0FFF,$FF00,$0000
|
||||
FDB $0000,$00FF,$F000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
CIRD4 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0FFF,$FF00,$0000
|
||||
FDB $0000,$FFFF,$FFF0,$0000
|
||||
FDB $000F,$FF00,$0FFF,$0000
|
||||
FDB $000F,$F000,$00FF,$0000
|
||||
FDB $000F,$F000,$00FF,$0000
|
||||
FDB $000F,$F000,$00FF,$0000
|
||||
FDB $000F,$FF00,$0FFF,$0000
|
||||
FDB $0000,$FFFF,$FFF0,$0000
|
||||
FDB $0000,$0FFF,$FF00,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
CIRD5 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0FFF,$FF00,$0000
|
||||
FDB $000F,$FFFF,$FFFF,$0000
|
||||
FDB $000F,$F000,$00FF,$0000
|
||||
FDB $00FF,$0000,$000F,$F000
|
||||
FDB $00FF,$0000,$000F,$F000
|
||||
FDB $00FF,$0000,$000F,$F000
|
||||
FDB $00FF,$0000,$000F,$F000
|
||||
FDB $00FF,$0000,$000F,$F000
|
||||
FDB $000F,$F000,$00FF,$0000
|
||||
FDB $000F,$FFFF,$FFFF,$0000
|
||||
FDB $0000,$0FFF,$FF00,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
CIRD6 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$00FF,$F000,$0000
|
||||
FDB $0000,$FFFF,$FFF0,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $00F0,$0000,$0000,$F000
|
||||
FDB $00F0,$0000,$0000,$F000
|
||||
FDB $0FF0,$0000,$0000,$FF00
|
||||
FDB $0FF0,$0000,$0000,$FF00
|
||||
FDB $0FF0,$0000,$0000,$FF00
|
||||
FDB $00F0,$0000,$0000,$F000
|
||||
FDB $00F0,$0000,$0000,$F000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$FFFF,$FFF0,$0000
|
||||
FDB $0000,$00FF,$F000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
CIRD7 EQU *
|
||||
FDB $0000,$000F,$0000,$0000
|
||||
FDB $0000,$00FF,$F000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0F00,$0000,$0000,$0F00
|
||||
FDB $FF00,$0000,$0000,$0FF0
|
||||
FDB $0F00,$0000,$0000,$0F00
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$00FF,$F000,$0000
|
||||
FDB $0000,$000F,$0000,$0000
|
||||
*ENFORCER PICTS
|
||||
ENGP1 FCB 5,11
|
||||
FDB ENGD1
|
||||
ENGP2 FCB 5,11
|
||||
FDB ENGD2
|
||||
ENGP3 FCB 5,11
|
||||
FDB ENGD3
|
||||
ENGP4 FCB 5,11
|
||||
FDB ENGD4
|
||||
ENGP5 FCB 5,11
|
||||
FDB ENGD5
|
||||
ENFP0 FCB 5,11
|
||||
FDB ENFD0
|
||||
ENFD0 FCB $00,$00,$80,$00,$00
|
||||
FCB $00,$08,$88,$00,$00
|
||||
FCB $00,$8A,$AA,$80,$00
|
||||
FCB $08,$FF,$FF,$F8,$00
|
||||
FCB $00,$08,$88,$00,$00
|
||||
FCB $90,$88,$78,$80,$90
|
||||
FCB $09,$97,$77,$99,$00
|
||||
FCB $90,$77,$77,$70,$90
|
||||
FCB $00,$00,$80,$00,$00
|
||||
FCB $00,$DD,$DD,$D0,$00
|
||||
FCB $0D,$DD,$DD,$DD,$00
|
||||
ENGD1 EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$80,$00,$00
|
||||
FCB $00,$08,$F8,$00,$00
|
||||
FCB $00,$00,$70,$00,$00
|
||||
FCB $00,$00,$D0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
ENGD2 EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$80,$00,$00
|
||||
FCB $00,$08,$F8,$00,$00
|
||||
FCB $00,$00,$80,$00,$00
|
||||
FCB $00,$09,$79,$00,$00
|
||||
FCB $00,$00,$D0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
ENGD3 EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$88,$00,$00
|
||||
FCB $00,$08,$FF,$80,$00
|
||||
FCB $00,$00,$88,$00,$00
|
||||
FCB $00,$09,$77,$90,$00
|
||||
FCB $00,$00,$77,$00,$00
|
||||
FCB $00,$00,$DD,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
ENGD4 EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$80,$00,$00
|
||||
FCB $00,$08,$A8,$00,$00
|
||||
FCB $00,$8F,$FF,$80,$00
|
||||
FCB $00,$00,$80,$00,$00
|
||||
FCB $00,$08,$78,$00,$00
|
||||
FCB $09,$97,$77,$99,$00
|
||||
FCB $00,$07,$77,$00,$00
|
||||
FCB $00,$00,$80,$00,$00
|
||||
FCB $00,$0D,$DD,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
ENGD5 EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$88,$00,$00
|
||||
FCB $00,$08,$AA,$80,$00
|
||||
FCB $00,$8F,$FF,$F8,$00
|
||||
FCB $00,$00,$88,$00,$00
|
||||
FCB $00,$98,$88,$89,$00
|
||||
FCB $00,$09,$77,$90,$00
|
||||
FCB $00,$97,$77,$79,$00
|
||||
FCB $00,$00,$88,$00,$00
|
||||
FCB $00,$0D,$DD,$D0,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
*SPARK PICTS
|
||||
SPKP0 FCB 4,7
|
||||
FDB SPKD0
|
||||
SPKP1 FCB 4,7
|
||||
FDB SPKD1
|
||||
SPKP2 FCB 4,7
|
||||
FDB SPKD2
|
||||
SPKP3 FCB 4,7
|
||||
FDB SPKD3
|
||||
SPKD0 EQU *
|
||||
FDB $000B,$0000
|
||||
FDB $000B,$0000
|
||||
FDB $000B,$0000
|
||||
FDB $FFFB,$FFF0
|
||||
FDB $000B,$0000
|
||||
FDB $000B,$0000
|
||||
FDB $000B,$0000
|
||||
SPKD1 EQU *
|
||||
FDB $0000,$0000
|
||||
FDB $0F00,$0B00
|
||||
FDB $00F0,$B000
|
||||
FDB $000B,$0000
|
||||
FDB $00B0,$F000
|
||||
FDB $0B00,$0F00
|
||||
FDB $0000,$0000
|
||||
SPKD2 EQU *
|
||||
FDB $000F,$0000
|
||||
FDB $000F,$0000
|
||||
FDB $000F,$0000
|
||||
FDB $BBBB,$BBB0
|
||||
FDB $000F,$0000
|
||||
FDB $000F,$0000
|
||||
FDB $000F,$0000
|
||||
SPKD3 EQU *
|
||||
FDB $0000,$0000
|
||||
FDB $0B00,$0F00
|
||||
FDB $00B0,$F000
|
||||
FDB $000B,$0000
|
||||
FDB $00F0,$B000
|
||||
FDB $0F00,$0B00
|
||||
FDB $0000,$0000
|
||||
END
|
|
@ -0,0 +1,66 @@
|
|||
|
||||
**************************************************************************
|
||||
* *
|
||||
* This is the patch that was written by Christian Gingras *
|
||||
* to fix the famous enforcer diagonal explosion bug. *
|
||||
* It is used to patch the $4000 rom in the final robotron *
|
||||
* version (called version 6 in software.....R5 is what is *
|
||||
* on the listing). *
|
||||
* *
|
||||
**************************************************************************
|
||||
|
||||
OPT NOL
|
||||
LIB RRF
|
||||
OPT LIS
|
||||
|
||||
STTL DIAGONAL EXPLOSIONS
|
||||
|
||||
ORG DXRAM (BASE PAGE)
|
||||
|
||||
YYCNT RMB 1 WHEN CHOPPING UP X, SAVE TO UPDATE ULY
|
||||
YOFF RMB 1 ACTUAL PIXEL OFFSET TO CENTER (USED)
|
||||
XSIZE RMB 1 DISTANCE BETWEEN X POINTS THIS FRAME
|
||||
YSIZE RMB 1 DISTANCE BETWEEN Y POINTS THIS FRAME
|
||||
EXPTR RMB 2
|
||||
APPTR RMB 2 APPEAR POINTER
|
||||
EXFREE RMB 2
|
||||
HITE RMB 1
|
||||
TEMP1 RMB 2
|
||||
TEMP2 RMB 1
|
||||
|
||||
KLJMP EQU $4A59
|
||||
|
||||
ORG $4990
|
||||
JMP UN
|
||||
|
||||
ORG $49B7
|
||||
JMP DEUX
|
||||
|
||||
ORG $49E2
|
||||
JMP TROIS
|
||||
|
||||
ORG $4A97
|
||||
|
||||
UN DEC HITE
|
||||
BEQ KLJMP
|
||||
DEC YOFF
|
||||
JMP $4994
|
||||
|
||||
DEUX DEC HITE
|
||||
BEQ KLJMP
|
||||
INC YYCNT
|
||||
JMP $49BB
|
||||
|
||||
TROIS DEC HITE
|
||||
BEQ KLJMP
|
||||
INC YYCNT
|
||||
JMP $49E6
|
||||
|
||||
FCC '05/1987 CHR.G.'
|
||||
|
||||
ORG $4AD7
|
||||
* FCB $FD THIS SETS JAP ZAPPER CORRECT
|
||||
FCB $4C THIS SETS CHECKSUM FOR THE PART CORRECT.
|
||||
|
||||
END
|
||||
|
|
@ -0,0 +1,668 @@
|
|||
OPT NOL
|
||||
LIB RRF
|
||||
OPT LIS
|
||||
STTL DIAGONAL EXPLOSIONS
|
||||
*
|
||||
* EXPLODING OBJECT DATA STRUCTURE
|
||||
*
|
||||
ORG DXTAB PLACE FOR DATA
|
||||
|
||||
EX EQU *
|
||||
NEXTZ RMB 2 LIST POINTER
|
||||
PICPTZ RMB 2 POINTER TO DATA
|
||||
XCENTZ RMB 1 SCREEN X CENTER (LEFT X OF CENTER LINE)
|
||||
YCENTZ RMB 1 SCREEN Y CENTER
|
||||
YOFZ RMB 1 OFFSET IN Y TO OBJECT CENTER (PIXELS) (0-HEIGHT)
|
||||
XSIZEZ RMB 1 X SIZE USED LAST (THIS) FRAME
|
||||
YSIZEZ RMB 2 CURRENT Y POINT SPACING
|
||||
FRAMEZ RMB 1 FRAMES TO RUN IN EFFECT
|
||||
ULZ RMB 2 UPPER LEFT
|
||||
WHZ RMB 2 WIDTH,HEIGHT
|
||||
DMAWHZ RMB 2 DMA HEIGHT WIDTH
|
||||
YHITEZ RMB 1
|
||||
SLOPEZ RMB 1 SLOPE OF DIAGONAL LINE WE ARE EXPLODING (SIGN BIT)
|
||||
DATAZ RMB 16*2 LIST OF ROW DATA POINTERS (FOR SPEED MAN)
|
||||
ESIZEZ EQU *
|
||||
|
||||
NEXT EQU NEXTZ-EX
|
||||
PICPTR EQU PICPTZ-EX
|
||||
XCENT EQU XCENTZ-EX
|
||||
YCENT EQU YCENTZ-EX
|
||||
YOF EQU YOFZ-EX
|
||||
XSIZER EQU XSIZEZ-EX
|
||||
YSIZER EQU YSIZEZ-EX
|
||||
FRAMES EQU FRAMEZ-EX
|
||||
UL EQU ULZ-EX
|
||||
WH EQU WHZ-EX
|
||||
DMAWH EQU DMAWHZ-EX
|
||||
YHITE EQU YHITEZ-EX
|
||||
SLOPE EQU SLOPEZ-EX
|
||||
DATA EQU DATAZ-EX
|
||||
EXSIZE EQU ESIZEZ-EX
|
||||
|
||||
RMB ((10-1)*EXSIZE) NUMBER OF BLOCKS
|
||||
|
||||
EXEND EQU *
|
||||
|
||||
ORG DXRAM (BASE PAGE)
|
||||
|
||||
YYCNT RMB 1 WHEN CHOPPING UP X, SAVE TO UPDATE ULY
|
||||
YOFF RMB 1 ACTUAL PIXEL OFFSET TO CENTER (USED)
|
||||
XSIZE RMB 1 DISTANCE BETWEEN X POINTS THIS FRAME
|
||||
YSIZE RMB 1 DISTANCE BETWEEN Y POINTS THIS FRAME
|
||||
EXPTR RMB 2
|
||||
APPTR RMB 2 APPEAR POINTER
|
||||
EXFREE RMB 2
|
||||
HITE RMB 1
|
||||
TEMP1 RMB 2
|
||||
TEMP2 RMB 1
|
||||
*
|
||||
*VECTORS
|
||||
*
|
||||
ORG RDXORG
|
||||
JMP EXINV
|
||||
JMP EXSTZ
|
||||
JMP APSTZ
|
||||
JMP DXUPDV
|
||||
*
|
||||
*INIT DATA STRUCT
|
||||
*
|
||||
|
||||
EXINV PSHS X,Y
|
||||
LDX #EX FIRST
|
||||
STX EXFREE
|
||||
EXIN0 LEAY EXSIZE,X FIND NEXT
|
||||
STY ,X STORE
|
||||
CMPY #EXEND DONE??
|
||||
BHS EXIN1
|
||||
LEAX ,Y MAKE US NEXT
|
||||
BRA EXIN0
|
||||
EXIN1 LDY #0
|
||||
STY ,X
|
||||
STY EXPTR
|
||||
STY APPTR
|
||||
PULS X,Y,PC
|
||||
|
||||
GETBLK PSHS Y
|
||||
LDU EXFREE
|
||||
BEQ NOBLK NONE
|
||||
LDY ,U GET NEXT
|
||||
STY EXFREE
|
||||
LDY EXPTR GET LIST
|
||||
STY ,U APPEND US
|
||||
STU EXPTR
|
||||
CLC
|
||||
PULS Y,PC RETURN IN U
|
||||
NOBLK SEC
|
||||
PULS Y,PC
|
||||
|
||||
GETAP PSHS Y
|
||||
LDU EXFREE
|
||||
BEQ NOBLK
|
||||
LDY ,U
|
||||
STY EXFREE
|
||||
LDY APPTR
|
||||
STY ,U
|
||||
STU APPTR
|
||||
CLC
|
||||
PULS Y,PC
|
||||
*
|
||||
*START AN APPEAR
|
||||
*X=OBJ,A=SLOPE
|
||||
APSTZ PSHS X,Y,D,U
|
||||
JSR GETAP GET AN APPEAR BLOCK
|
||||
BCS APBY NONE
|
||||
STA SLOPE,U SAVE SLOPE
|
||||
LDD OBJX,X
|
||||
LDX OPICT,X
|
||||
STD UL,U START AS UPPER LEFT
|
||||
STA XCENT,U SAVE X CENTER
|
||||
LDB CENTMP+1
|
||||
STB YCENT,U
|
||||
SUBB UL+1,U SUBTRACT Y UPPER LEFT
|
||||
BCS NWCEAP NO GOOD
|
||||
CMPB 1,X COMPARE
|
||||
BLO APNTOK
|
||||
NWCEAP LDB ,X GET WIDTH
|
||||
LSRB 1/2 Y
|
||||
STB YOF,U SAVE OFFSET
|
||||
ADDB UL+1,U ADD TOP
|
||||
STB YCENT,U THIS IS
|
||||
BRA CCOAP
|
||||
APNTOK STB YOF,U
|
||||
CCOAP LDD ,X FETCH H,W
|
||||
STD WH,U SAVE
|
||||
LDB #1 HEIGHT IS 1 FOR DMA
|
||||
STB YHITE,U SMALL HEIGHT FOR FIRST (CRAZY) ERASE
|
||||
EORA #$4
|
||||
EORB #$4
|
||||
STD DMAWH,U FORMED
|
||||
LDX 2,X GET DATA POINTER
|
||||
STX PICPTR,U SAVE OBJECT DESC
|
||||
LDD #$1000 START LARGE FOR APPEAR
|
||||
STD YSIZER,U
|
||||
CLR XSIZER,U ERASE NORMAL OBJECT FIRST FRAME
|
||||
BSR DATALD LOAD THE ROW DATA PTRS
|
||||
APBY PULS X,D,U,PC,Y AND RETURN TO CALLER
|
||||
|
||||
DATALD LDX PICPTR,U GET POINTER TO DATA
|
||||
LDB WH,U WIDTH IN B
|
||||
LDA WH+1,U HEIGHT IN A
|
||||
LEAU DATA,U POINT AT THE DATA
|
||||
DATLD1 STX ,U++ STORE POINTER TO CURRENT ROW
|
||||
ABX ADDING WIDTH FORMS POINTER TO NEXT ROW
|
||||
DECA 1 LESS ROW (OFF HEIGHT)
|
||||
BNE DATLD1 DONE?
|
||||
RTS YEP
|
||||
|
||||
|
||||
*
|
||||
*START AN EXPLOSION
|
||||
*X=OBJ,A=SLOPE
|
||||
EXSTZ PSHS X,U,D,Y
|
||||
JSR GETBLK GET A BLOCK TO USE
|
||||
BCS EXBYE DONE...NO BLOCKS
|
||||
STA SLOPE,U
|
||||
LDD OBJX,X
|
||||
LDX OPICT,X
|
||||
STD UL,U STORE UPPER LEFT (FIRST FRAME)
|
||||
STA XCENT,U SAVE LEFT X
|
||||
LDB CENTMP+1
|
||||
STB YCENT,U
|
||||
SUBB UL+1,U SUBTRACT Y UPPER LEFT
|
||||
BCS NWCENT NO GOOD
|
||||
CMPB 1,X COMPARE
|
||||
BLO CENTOK
|
||||
NWCENT LDB ,X GET WIDTH
|
||||
LSRB 1/2 Y
|
||||
STB YOF,U SAVE OFFSET
|
||||
ADDB UL+1,U ADD TOP
|
||||
STB YCENT,U THIS IS
|
||||
BRA CCONT
|
||||
CENTOK STB YOF,U
|
||||
CCONT LDD ,X FETCH H,W
|
||||
STD WH,U SAVE
|
||||
STB YHITE,U HITE FOR FIRST ERASE
|
||||
LDB #1 HEIGHT IS 1 FOR DMA
|
||||
EORA #$4
|
||||
EORB #$4
|
||||
STD DMAWH,U FORMED
|
||||
LDX 2,X GET DATA POINTER
|
||||
STX PICPTR,U SAVE OBJECT DESC
|
||||
LDD #$100 1 UNIT IS MIN
|
||||
STD YSIZER,U
|
||||
CLR XSIZER,U
|
||||
LDA #$10 NUMBER OF BYTES TO ERASE, NUMBER OF FRAMES LEFT
|
||||
STA FRAMES,U
|
||||
BSR DATALD LOAD THE ROW POINTERS
|
||||
EXBYE PULS X,D,U,PC,Y AND RETURN TO CALLER
|
||||
|
||||
* THIS CODE DMA'S THE DMASIZONTAL LINES
|
||||
* A JUMP INTO HERE IS MADE BASED ON NUMBER OF
|
||||
* DMASIZONTAL LINES IN OBJECT
|
||||
|
||||
BSLOOP LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
BSSIZE EQU *-BSLOOP
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
ADDD XSIZE KICK POINTER TO NEXT ONE
|
||||
|
||||
LDX ,Y++ GET THE ROW POINTER
|
||||
STX DMAORG THIS IS ORIGIN
|
||||
STD DMADES D IS DEST
|
||||
STU DMACTL THIS IS THE CONTROL REGISTER
|
||||
|
||||
CLI
|
||||
PULS Y,PC RESTORE Y, RETURN
|
||||
|
||||
ERLOOP STD DMADES DEST TO ERASE
|
||||
STU DMACTL-1 BYTE TO DO IT
|
||||
ADDD XSIZE ADD OFFSETS
|
||||
ERSIZ EQU *-ERLOOP
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
STD DMADES
|
||||
STU DMACTL-1
|
||||
ADDD XSIZE
|
||||
|
||||
CLI
|
||||
RTS
|
||||
|
||||
ERASE LDB YHITE,Y ACTUALLY PLOTTED
|
||||
SUBB #16 MAX OF 16
|
||||
NEGB
|
||||
ASLB
|
||||
ASLB
|
||||
ASLB
|
||||
LDX #ERLOOP
|
||||
ABX
|
||||
|
||||
LDD XSIZER,Y
|
||||
STD XSIZE
|
||||
|
||||
LDA RWCTMP GET RWBYTE
|
||||
LDB #$12 ERASE
|
||||
|
||||
TFR D,U
|
||||
LDD #0
|
||||
|
||||
SEI
|
||||
|
||||
STD DMACON CONSTANT, AND HIGH HALF OF DMAORG
|
||||
|
||||
LDD DMAWH,Y
|
||||
STD DMASIZ
|
||||
|
||||
LDD UL,Y DMADESINATION STARTS WITH UPPER LEFT
|
||||
|
||||
JMP ,X
|
||||
|
||||
KILEXP LDU #EXPTR LETS WALK LIST TO FIND HIM
|
||||
KILEX2 CMPY ,U ARE WE SET
|
||||
BEQ KILEX1 YEP
|
||||
LDU ,U KEEP WALKING
|
||||
BNE KILEX2 STILL STUFF THERE
|
||||
SEI
|
||||
BRA * ERROR TRAP
|
||||
KILEX1 LDD ,Y GET GUY WE POINT AT
|
||||
STD ,U POINT AROUND US
|
||||
LDD EXFREE
|
||||
STD ,Y APPEND FREE LIST
|
||||
STY EXFREE
|
||||
LEAY ,U RETURN GUY BEFORE US TO WALK FROM
|
||||
RTS DONE!
|
||||
*
|
||||
*WRITE YOUR APPEAR!!!
|
||||
*Y=EXPLOSION
|
||||
AWRITE LDD YSIZER,Y
|
||||
SUBD #$100
|
||||
CMPA YSIZER,Y ANY SIZE CHANGE?
|
||||
BNE AWRIT0 YES
|
||||
STB YSIZER+1,Y NO DICE
|
||||
RTS
|
||||
AWRIT0 JSR ERASE
|
||||
LDA STATUS
|
||||
BNE AWRIT1
|
||||
LDD PX SCROLL THE COCK SUCKER
|
||||
STA XCENT,Y
|
||||
ADDB YOF,Y
|
||||
STB YCENT,Y
|
||||
AWRIT1 LDA WH+1,Y GET HEIGHT
|
||||
STA HITE PRELIMINARY ATTEMPT AT HEIGHT
|
||||
|
||||
LDD YSIZER,Y GET CURRENT SIZE
|
||||
SUBD #$0100 TAKE AWAY SOME SIZE
|
||||
CMPA #1
|
||||
BHI APGO DONE!
|
||||
LDU #APPTR FIND HE WHO POINTS AT HIM....NOW KILL IT
|
||||
BRA KILEX2 NOW ITS JUST LIKE AN EXPLODE KILL
|
||||
|
||||
WRITE DEC FRAMES,Y ONE LESS FRAME
|
||||
BEQ KILEXP DONE
|
||||
|
||||
LDA WH+1,Y GET HEIGHT
|
||||
STA HITE
|
||||
|
||||
LDD YSIZER,Y
|
||||
ADDD #$100
|
||||
APGO STA YSIZE
|
||||
STD YSIZER,Y
|
||||
|
||||
LSRA 1/2 FOR X SIZE
|
||||
STA TEMP2 ALSO SAVE TO ADD 1/2 SIZE UNIT FOR CENTER LINE
|
||||
LDB SLOPE,Y CHECK SLOPE
|
||||
BPL APGG1 POSITIVE
|
||||
NEGA NEGATIVE
|
||||
APGG1 STA XSIZER,Y AND SAVE
|
||||
STA XSIZE SCRATCH SOME SPEED
|
||||
|
||||
LDB YOF,Y CHECK FOR ZERO OFFSET
|
||||
BNE APGO1
|
||||
STB TEMP2 IF DOWN FROM TOP....FIX TOP ONE (OBSCURE BUG)
|
||||
|
||||
APGO1 LDA YSIZE
|
||||
LDB YOF,Y GET OFFSET
|
||||
STB YOFF SAVE FOR X CALCULATION
|
||||
MUL DISTANCE UP FROM CENTER
|
||||
|
||||
STD TEMP1 SAVE
|
||||
LDB YCENT,Y GET CENTER
|
||||
CLRA
|
||||
SUBD TEMP1 LETS BE GENERAL PURPOSE
|
||||
ADDB TEMP2 ADD 1/2 SIZE
|
||||
ADCA #0 AND PROPAGATE
|
||||
BNE CHK2 NO GOOD..TIME TO SCREW AROUND
|
||||
*
|
||||
* DON'T WORRY EUGENE...I GOT THIS FIX THIS TIME
|
||||
*
|
||||
CMPB #YMIN
|
||||
BHI CHK3 IN RANGE
|
||||
|
||||
CHK2 DEC HITE 1 LESS
|
||||
DEC YOFF
|
||||
ADDB YSIZE BRING BACK FROM NEGATIVE NOWHERE
|
||||
ADCA #0
|
||||
BNE CHK2 AND LOOP A WHILE
|
||||
|
||||
CMPB #YMIN POSITIVE-VILLE...BIG ENOUGH
|
||||
BLS CHK2 NOPE
|
||||
|
||||
CHK3 STB UL+1,Y STORE IN PLACE
|
||||
LDA YOFF ACTUAL Y OFFSET USED
|
||||
LDB XSIZE WHICH SLOPE??
|
||||
BMI XNEG BUMMER
|
||||
|
||||
MUL FIND DEFLECTION
|
||||
STD TEMP1 WHERE HAVE I SEED CODE LIKE THIS
|
||||
LDB XCENT,Y GET X "CENTER"
|
||||
CLRA X CENTER HAS BEEN COMPUTED
|
||||
|
||||
SUBD TEMP1 FIND WHERE LEFTMOST X OCCURS
|
||||
TSTA NEGATIVE??
|
||||
BNE CKK2A YEP...SHIFT IT IN
|
||||
|
||||
CMPB #XMIN IN RANGE??
|
||||
BHI CKK3AA RIGHT ON
|
||||
|
||||
CKK2A CLR YYCNT COUNT TO UDPATE 1 STARTING POINT
|
||||
|
||||
CKK2B DEC HITE CHOP SOME MORE AWAY
|
||||
INC YYCNT INCICATE 1 MORE
|
||||
ADDB XSIZE ADD THE X UNITS
|
||||
ADCA #0
|
||||
BNE CKK2B AND ITERATE
|
||||
|
||||
CMPB #XMIN
|
||||
BLS CKK2B THANK YOU SIR MAY I HAVE ANOTHER
|
||||
|
||||
CKK3C STB UL,Y THIS IS THE UPPER LEFT X
|
||||
|
||||
LDB YYCNT GET THE YER
|
||||
LDA YSIZE GET Y SIZE
|
||||
MUL NUMBER OF Y UNITS FROM X CLIP
|
||||
|
||||
ADDB UL+1,Y
|
||||
STB UL+1,Y
|
||||
|
||||
BRA CKK3B
|
||||
|
||||
XNEG NEGB MAKE SIZE POSITIVE (NEG STATE BY CONTROL HERE)
|
||||
MUL NUMBER OF BYTES POS DISPLACEMENT
|
||||
ADDB WH,Y ADD IN THE WIDTH, (GUAR NO CARRY IF SIZE<32I
|
||||
ADDB XCENT,Y ADD CENTER TO FIND LAST PIXEL PLOTTED
|
||||
ADCA #0 ALL RIGHT!
|
||||
|
||||
BNE XN2 NO GOOD...BIG CARRY
|
||||
|
||||
CMPB #XMAX IN RANGE??
|
||||
BLS CKK3A SAME IS OK SINCE THIS IS 1 BEYOND OB
|
||||
|
||||
XN2 CLR YYCNT WE NEED TO KNOW HOW MANY CLIPPED
|
||||
|
||||
XN22 DEC HITE 1 MORE Y UNIT
|
||||
INC YYCNT
|
||||
ADDB XSIZE ADD THE SIZE (REMEMBER, ITS NEGATIVE)
|
||||
ADCA #$FF ADD EXTENDED SIGN
|
||||
BNE XN22 STILL TOO LARGE
|
||||
|
||||
CMPB #XMAX DID WE MAKE IT??
|
||||
BHI XN22 NOPE
|
||||
SUBB WH,Y REMOVE THE WIDTH TO GET BACK TO LEFT
|
||||
BRA CKK3C ADJUST Y FOR THE DAMAGES
|
||||
* (CKK3C IS UP, EUGENE)
|
||||
|
||||
CKK3A SUBB WH,Y GET BACK TO LEFT OF OB
|
||||
CKK3AA STB UL,Y SAVE GOOD X
|
||||
|
||||
CKK3B LEAX DATA,Y POINT AT FIRST ITEM
|
||||
LDB WH+1,Y GET HEIGHT
|
||||
SUBB HITE FIND NUMBER WE WILL SKIP
|
||||
ASLB POINTERS ARE 2 BYTES
|
||||
ABX WE NOW POINT AT FIRST ONE WE WILL USE
|
||||
|
||||
*
|
||||
* TIME FOR THE BUTT CLIP
|
||||
*
|
||||
|
||||
LDA HITE GET HEIGHT
|
||||
DECA
|
||||
LDB YSIZE FIND FILL DEFLECTION
|
||||
MUL
|
||||
ADDB UL+1,Y ADD FIRST POINT
|
||||
ADCA #0 FIND FULL DEFLECTION
|
||||
BEQ CHK4 AOK
|
||||
CHK5 DEC HITE 1 LESS
|
||||
BEQ KLJMP EXIT IMMEDIATELY ON TOTAL CLIP
|
||||
SUBB YSIZE 1 LESS DOWNWARD
|
||||
SBCA #0
|
||||
BNE CHK5
|
||||
CHK4 CMPB #YMAX
|
||||
BHS CHK5
|
||||
|
||||
LDA HITE GET HITE BACK
|
||||
DECA FIRSTIES DON'T COUNT
|
||||
LDB XSIZE GET X SIZE
|
||||
BMI XNT NEGATIVE SLOPE
|
||||
|
||||
MUL DEFLECTION OF LAST GUY
|
||||
ADDB WH,Y ADD WIDTH
|
||||
ADDB UL,Y ADD STARTING X
|
||||
ADCA #0 PROP IT
|
||||
BEQ NCK4 NOT HUGE
|
||||
NCK5 DEC HITE TAKE 1 AWAY
|
||||
BEQ KLJMP TOTAL CLIP...BYE
|
||||
SUBB XSIZE TRY AND BRING DOWN TO SIZE
|
||||
SBCA #0
|
||||
BNE NCK5
|
||||
NCK4 CMPB #XMAX
|
||||
BHI NCK5 EQUAL IS OK
|
||||
BRA NCK6
|
||||
|
||||
XNT NEGB MAKE
|
||||
MUL
|
||||
STD TEMP1 SAVE OFFSET
|
||||
|
||||
LDB UL,Y GET UPPER LEFT
|
||||
CLRA
|
||||
|
||||
SUBD TEMP1 REMOVE OFFSET
|
||||
TSTA
|
||||
|
||||
BEQ NNCK4 NOT WAY TOO SMALL
|
||||
|
||||
NNCK5 DEC HITE 1 LESS
|
||||
BEQ KLJMP
|
||||
SUBB XSIZE ADDING NEG MOVES US POSITVE
|
||||
SBCA #$FF SUB SIGN EXT
|
||||
BNE NNCK5 KEEP GOING
|
||||
|
||||
NNCK4 CMPB #XMIN
|
||||
BLS NNCK5 KEEP GOING
|
||||
|
||||
* FIND "LOOP" ENTRY
|
||||
|
||||
NCK6 LDA HITE GET HEIGHT
|
||||
BNE NOKILE
|
||||
KLJMP JMP KILEXP NO HEIGHT
|
||||
|
||||
NOKILE STA YHITE,Y SAVE FOR ERASE
|
||||
SUBA #16 16 = 0 OFFSET, 0 = 16 OFFSET
|
||||
NEGA
|
||||
LDB #BSSIZE SIZE OF ITERATION
|
||||
MUL
|
||||
ADDD #BSLOOP BEGINNING
|
||||
PSHS D,Y SETUP STACK AS FOLLOWS:
|
||||
|
||||
* PTR -> D = JUMP ADDRESS
|
||||
* Y = PUSHED TO SAVE FOR RTS
|
||||
* <RETURN ADDRESS>
|
||||
|
||||
* PULS Y,PC AT END OF LOOP CAUSES PROPER RETURN
|
||||
|
||||
LDU #$0A0A CONTROL REGISTER
|
||||
LDD DMAWH,Y GET WH
|
||||
|
||||
SEI NO INTS BABY
|
||||
STD DMASIZ
|
||||
LDD UL,Y GET DMADESINATION IN D
|
||||
|
||||
LEAY ,X MAKE Y POINT AT PROPER DATA GUY
|
||||
|
||||
RTS RETURN, MY ASS!
|
||||
*
|
||||
*UPDATE YOUR DIAGONALS
|
||||
*
|
||||
DXUPDV LDY EXPTR
|
||||
BEQ APUPD
|
||||
DXUPDL JSR ERASE
|
||||
JSR WRITE
|
||||
LDY ,Y
|
||||
BNE DXUPDL
|
||||
APUPD LDY APPTR
|
||||
BEQ APUPDX
|
||||
APUPDL JSR AWRITE
|
||||
LDY ,Y
|
||||
BNE APUPDL
|
||||
APUPDX RTS
|
||||
END
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
*
|
||||
* Additional patch bytes for version 6. It is assumed that
|
||||
* the binary of all of these sources, Plus these patches,
|
||||
* plus setting the checksum block around ffb0 comprises
|
||||
* the correct binary image.
|
||||
*
|
||||
|
||||
ORG $26B1
|
||||
FCB $55,$55,$55,$55,$55,$55,$55,$55
|
||||
ORG $DF34
|
||||
FCB $A,$A,$A,$A,$A,$A,$A
|
||||
ORG $E3B0
|
||||
FCB $26,$26,$26,$26,$26,$26,$26,$26,$26
|
||||
ORG $6D2E
|
||||
FCB $21
|
||||
ORG $E398
|
||||
FCB $A6
|
||||
END
|
||||
|
|
@ -0,0 +1,984 @@
|
|||
PHRTAB FDB BADDMP 0
|
||||
FDB OKMP PHRASE 16 INITIAL TESTS... 1
|
||||
FDB RERRMP PHRASE 17 RAM ERROR 2
|
||||
FDB ROMERP PHRASE 18 ROM ERROR 3
|
||||
FDB ROMOKP PHRASE 25 ALL ROMS OK ETC 4
|
||||
FDB RAMOKP PHRASE 26 NO RAM ERRORS DETECTED 5
|
||||
FDB CMOKP PHRASE 27 BATTERY RAM OK 6
|
||||
FDB CMERRP PHRASE 28 BATTERY RAM ERROR 7
|
||||
FDB CMDORP PHRASE 29 BATTERY ROM, OR WRITE PROTECT CIRCUIT 8
|
||||
FDB SNDTEP PHRASE 30 SOUND LINE X 9
|
||||
FDB FDROMP PHRASE 31 FRONT DOOR ROM ERROR 10
|
||||
FDB FDRAMP PHRASE 32 FRONT DOOR RAM ERROR 11
|
||||
FDB SWTSTP PHRASE 33 SWITCH TEST 12
|
||||
FDB SZAUP AUTO UP 34 13
|
||||
FDB SZADV ADV 35 14
|
||||
FDB SZRC RIGHT COIN 36 15
|
||||
FDB SZHSR HIGH SCORE RESET 37 16
|
||||
FDB SZLC LEFT COIN 38 17
|
||||
FDB SZCC CENTER COIN 39 18
|
||||
FDB SZSS SLAM SWITCH 40 19
|
||||
FDB SZFIRE FIRE MESSAGE 41 20
|
||||
FDB SZTHR THRUST 42 21
|
||||
FDB SZSB SMART BOMB 43 22
|
||||
FDB SZHYP HYPER SPACE 44 23
|
||||
FDB SZS2 START 2 45 24
|
||||
FDB SZS1 START 1 46 25
|
||||
FDB SZREV REVERSE 47 26
|
||||
FDB SZDOWN DOWN 48 27
|
||||
FDB SZUP UP 49 28
|
||||
FDB SZINV INVISO 50 29
|
||||
FDB CRTSTP COLOR MATRIX TEST 51 30
|
||||
FDB BOOKMP BOOKKEEPING 52 31
|
||||
FDB AZS1 LEFT SLOT 53 32
|
||||
FDB AZS2 CENTER SLOT 54 33
|
||||
FDB AZS3 RIGHT SLOT 55 34
|
||||
FDB AZPDC PAID CREDITS 56 35
|
||||
FDB AZFS FREE SHIPS 57 36
|
||||
FDB AZTIM TOTAL PLAY TIME 58 37
|
||||
FDB AZSHIP TOTAL SHIP COUNT 59 38
|
||||
FDB AZPLAY TOTAL PLAYS 60 39
|
||||
FDB GOMP GAME OVER 40
|
||||
FDB AUD1P HIGH OF 6 DIG 62 41
|
||||
FDB AUD2P LOW OF 6 DIG 63 42
|
||||
FDB AUD3P 4 DIG 64 43
|
||||
FDB FROBMP FROB 65 44
|
||||
FDB CONTMP CONTINUED ON NEXT PAGE 66 45
|
||||
FDB JZREP REPLAY ADJUSTMENT 67 46
|
||||
FDB JZSHP 1 CRED SHIPS 68 47
|
||||
FDB JZCONS COIN SELECT 70 48
|
||||
FDB JZSL1 SLOT 1 71 49
|
||||
FDB JZSL2 SLOT 2 72 50
|
||||
FDB JZSL3 SLOT 3 73 51
|
||||
FDB JZCUC CREDIT UNIT 74 52
|
||||
FDB JZCUB BONUS UNIT 75 53
|
||||
FDB JZMUN MINIMUM UNITS NEEDED 76 54
|
||||
FDB JZFREE FREE PLAY 77 55
|
||||
FDB JZMASA MASTER ADJUST 78 56
|
||||
FDB JZGODL GOD LETTERS 87 57
|
||||
FDB JZFACS FACTORY SETTINGS 88 58
|
||||
FDB JZCAUD CLEAR AUDIT 89 59
|
||||
FDB JZCLHS CLEAR HIGH SCORES 90 60
|
||||
FDB JZAUTO AUTO CYCLE 91 61
|
||||
FDB JZOPM OPERATOR MESSAGE 92 62
|
||||
FDB JZGOD LETTERS IN GOD 93 63
|
||||
FDB REPMS1 REPLAY MESSAGE 1 94 64
|
||||
FDB REPMS2 95 65
|
||||
FDB NOMESP JUST THE NUMBER 96 66
|
||||
FDB HIVOLP HI VOLUME ARCADE 97 67
|
||||
FDB RECOMP RECOMMENDED SETTING 98 68
|
||||
FDB POORPP WEAK PLAYER SETTING 99 69
|
||||
FDB CUSTMP CUSTOM SETTINGS 100 70
|
||||
FDB YESMP YES ONLY 101 71
|
||||
FDB NOMP NO ONLY 102 72
|
||||
FDB EXLIBP EXTRA LIBERAL 103 73
|
||||
FDB LIBP 104 74
|
||||
FDB PGOMP PLAYER X GAME OVER 105 75
|
||||
FDB CONSP 106 76
|
||||
FDB EXCONP 107 77
|
||||
FDB REPMS3 REPLAY MESSAGE 3 108 78
|
||||
FDB CMIMEP 109 79
|
||||
FDB RESMSP 110 80
|
||||
FDB YES1MP 111 81
|
||||
FDB COIN1P 112 82
|
||||
FDB COIN2P 113 83
|
||||
FDB COIN3P 114 84
|
||||
FDB COIN4P 115 85
|
||||
FDB COIN5P 116 86
|
||||
FDB COIN6P 117 87
|
||||
FDB COIN7P 118 88
|
||||
FDB COIN8P 119 89
|
||||
FDB NOREPP 120 90
|
||||
FDB BOOKRP 121 91
|
||||
FDB OPMESP 125 92
|
||||
FDB HSRESP 126 93
|
||||
FDB GODMSP 135 94
|
||||
FDB CONGP 136 95
|
||||
FDB NOWMSP 137 96
|
||||
FDB HSINDP 139 97
|
||||
FDB HIGH1P 140 98
|
||||
FDB HIGH3P 141 99
|
||||
FDB ONLY5P 148 100
|
||||
FDB CENTRP 149 101
|
||||
FDB REPMS4 102
|
||||
FDB PLUPP PLAYER X UP 103
|
||||
FDB WAVEP WAVE NUMBER 104
|
||||
FDB INDMFP 105
|
||||
FDB AVM1 106
|
||||
FDB AVM2 107
|
||||
FDB AVM3 108
|
||||
FDB AVM4 109
|
||||
FDB SCRMEP 110
|
||||
FDB INDMEP 111
|
||||
FDB CPYM1 112
|
||||
FDB CPYM2 113
|
||||
FDB WAVEM2 114
|
||||
FDB PMOM
|
||||
FDB PDAD
|
||||
FDB PKID
|
||||
FDB PGRUNT
|
||||
FDB PHULK
|
||||
FDB PSPCU
|
||||
FDB PENTK
|
||||
FDB PBRAIN
|
||||
FDB COINF 123
|
||||
FDB PPROG
|
||||
FDB EXMANN 125
|
||||
FDB NULM 126
|
||||
FDB CRDM22
|
||||
FDB TITLEP 128
|
||||
FDB FAMMP 129
|
||||
|
||||
SCRMEP FCB COLOR,$77,CURSAB,$35,$25,0,SUB
|
||||
FDB ROHSUB
|
||||
FCC 'ES'
|
||||
FCB CURSAB,$35,$6E,0
|
||||
FCC 'ALL '
|
||||
FCB CURSOR,0,0,1
|
||||
FCC 'TIME '
|
||||
FCB CURSOR,1,0,0
|
||||
FCC 'HEROES'
|
||||
NULM FCB 0
|
||||
|
||||
ROHSUB FCC 'ROBOTRON HERO'
|
||||
FCB 0
|
||||
|
||||
INDMEP FCB SBLANK,NUMB,RPAREN,SPACE,0
|
||||
|
||||
CENTRP FCB COLOR,$99,CURSAB,$25,$70,1
|
||||
FCC 'CENTER THE LINE USING '
|
||||
FCB HYPHEN
|
||||
FCC 'FIRE'
|
||||
FCB HYPHEN,CURSAB,$24,$7E,1
|
||||
FCB SUB
|
||||
FDB PASUB 'PRESS ADVANCE '
|
||||
FCC 'WHEN CENTERED'
|
||||
FCB COLOR,$BB,SFONT,CURSAB,$49,$50,1,ARROW
|
||||
FCB 0
|
||||
|
||||
PASUB FCC 'PRESS ADVANCE '
|
||||
FCB 0
|
||||
|
||||
PESUB FCB SUB
|
||||
FDB PASUB
|
||||
FCC 'TO EXIT'
|
||||
FCB 0
|
||||
|
||||
OPMESP FCB COLOR,$BB,CURSAB,$2E,$16,0,SUB
|
||||
FDB AMSUB
|
||||
FCB SUB
|
||||
FDB TELSUB
|
||||
FCB 0
|
||||
|
||||
ONLY5P FCB COLOR,$BB,CURSAB,$20,$70,0
|
||||
FCC '5 ENTRIES MAXIMUM'
|
||||
FCB SUB
|
||||
FDB PPSUB
|
||||
FCB CURSAB,$28,$90,1
|
||||
FCC 'LOWEST ENTRY REPLACED'
|
||||
FCB 0
|
||||
|
||||
TELSUB FCB SFONT,COLOR,$99,CURSAB,$2F,$C0,1
|
||||
FCB SUB
|
||||
FDB UPDNSB
|
||||
FCC 'LETTER'
|
||||
FCB CURSAB,$32,$CC,0
|
||||
FCB HYPHEN
|
||||
FCC 'FIRE UP'
|
||||
FCB HYPHEN
|
||||
FCC ' TO ENTER LETTER'
|
||||
FCB COLOR,$44
|
||||
FDB 0
|
||||
|
||||
PRPLYR FCB CURSAB,$40,$10,$0
|
||||
PLRSUB FCC 'PLAYER '
|
||||
FCB 0
|
||||
|
||||
GODMSP FCB COLOR,$BB,SUB
|
||||
FDB PRPLYR
|
||||
FCB ZBLANK,NUMY,CURSAB,$2C,$28,0
|
||||
FCC 'YOU ARE THE GREATEST'
|
||||
FCB CURSAB,$36,$38,0,SUB
|
||||
FDB ROHSUB
|
||||
FCB CURSAB,$34,$58,0,SUB
|
||||
FDB ENTSSB
|
||||
FCC 'NAME'
|
||||
FCB CURSAB,$31,$68,0,LPAREN
|
||||
FCC 'UP TO '
|
||||
FCB ZBLANK,NUMB
|
||||
FCC ' LETTERS'
|
||||
FCB RPAREN,SUB
|
||||
FDB TELSUB
|
||||
FCB 0
|
||||
|
||||
ENTSSB FCC 'ENTER YOUR '
|
||||
FCB 0
|
||||
|
||||
CONGP FCB COLOR,$44,SUB
|
||||
FDB PRPLYR
|
||||
FCB ZBLANK,NUMB
|
||||
FCB CURSAB,$29,$30,0
|
||||
FCC 'YOU ARE A '
|
||||
FCB SUB
|
||||
FDB ROHSUB
|
||||
NOWSUB FCB CURSAB,$2D,$58,1,SUB
|
||||
FDB ENTSSB
|
||||
FCC 'INITIALS'
|
||||
FCB COLON,SUB
|
||||
FDB TELSUB
|
||||
FCB 0
|
||||
|
||||
NOWMSP FCB COLOR,$99,SUB
|
||||
FDB PRPLYR
|
||||
FCB ZBLANK,NUMB
|
||||
FCB CURSAB,$43,$67,0
|
||||
FCC 'ALSO'
|
||||
FCB SUB
|
||||
FDB NOWSUB
|
||||
FCB 0
|
||||
|
||||
HSINDP FCB SBLANK,NUMB,RPAREN,SPACE,SPACE,0
|
||||
|
||||
HIGH1P FCB SBLANK,NUMY,0
|
||||
|
||||
HIGH3P FCB CURSOR,$8,0,0,SBLANK,NUMY,0
|
||||
|
||||
REPMS1 FCB SBLANK,NUMB
|
||||
FCC '000 '
|
||||
LIBS FCC 'LIBERAL'
|
||||
FCB 0
|
||||
|
||||
REPMS2 FCB SBLANK,NUMB
|
||||
FCC '000 '
|
||||
RECS1 FCC 'RECOMMENDED'
|
||||
FCB 0
|
||||
|
||||
REPMS3 FCB SBLANK,NUMB
|
||||
FCC '000 '
|
||||
CONSUB FCC 'CONSERVATIVE'
|
||||
FCB 0
|
||||
|
||||
REPMS4 FCB SBLANK,NUMB
|
||||
FCC '000 EXTRA '
|
||||
FCB SUB
|
||||
FDB CONSUB
|
||||
FCB 0
|
||||
|
||||
SPSUB FCB CURSOR,8,0,0 MOVE 8 FULL BYTES TO THE RIGHT
|
||||
FCB 0
|
||||
|
||||
RECS2 FCB SUB
|
||||
FDB SPSUB
|
||||
FCB SUB
|
||||
FDB RECS1
|
||||
FCB 0
|
||||
|
||||
NOMESP FCB SBLANK,NUMB,0
|
||||
|
||||
HIVOLP FCB SUB
|
||||
FDB SVSUB
|
||||
FCC 'HIGH VOLUME ARCADES'
|
||||
FCB 0
|
||||
|
||||
RECOMP FCB SBLANK,NUMB,SUB
|
||||
FDB RECS2
|
||||
FCB 0
|
||||
|
||||
POORPP FCB SUB
|
||||
FDB SVSUB
|
||||
FCC 'FOR WEAKER PLAYERS'
|
||||
FCB 0
|
||||
|
||||
CUSTMP FCB SUB
|
||||
FDB SVSUB
|
||||
FCC 'CUSTOM '
|
||||
FCB HYPHEN,SPACE,LPAREN
|
||||
FCC 'ADJUST BELOW'
|
||||
FCB RPAREN,0
|
||||
YES1MP FCC 'YES'
|
||||
FCB SUB
|
||||
FDB SPSUB
|
||||
FCB CURSOR,-2,0,0 ALLOW FOR EXTRA LETTER 'S'
|
||||
FCC 'ADVANCE TO ACTIVATE'
|
||||
FCB 0
|
||||
|
||||
SVSUB FCB SBLANK,NUMB,SUB
|
||||
FDB SPSUB
|
||||
FCB 0
|
||||
|
||||
YESMP FCC 'YES'
|
||||
FCB 0
|
||||
|
||||
NOMP FCC 'NO'
|
||||
FCB 0
|
||||
|
||||
|
||||
EXLIBP FCB SUB
|
||||
FDB EXSBB
|
||||
FCB SUB
|
||||
FDB LIBS
|
||||
FCB 0
|
||||
|
||||
EXSBB FCB SUB
|
||||
FDB SVSUB
|
||||
FCC 'EXTRA '
|
||||
FCB 0
|
||||
|
||||
LIBP FCB SUB
|
||||
FDB SVSUB
|
||||
FCB SUB
|
||||
FDB LIBS
|
||||
FCB 0
|
||||
|
||||
CONSP FCB SUB
|
||||
FDB SVSUB
|
||||
FCB SUB
|
||||
FDB CONSUB
|
||||
FCB 0
|
||||
|
||||
EXCONP FCB SUB
|
||||
FDB EXSBB
|
||||
FCB SUB
|
||||
FDB CONSUB
|
||||
FCB 0
|
||||
|
||||
NOREPP FCB SUB
|
||||
FDB SVSUB
|
||||
FCC 'NO EXTRA MEN'
|
||||
FCB 0
|
||||
|
||||
COIN1P FCB SUB
|
||||
FDB SVSUB
|
||||
FCC '1'
|
||||
FCB SLASH
|
||||
FCC 'FIFTY 3'
|
||||
FCB SLASH
|
||||
FCC 'DOLLAR'
|
||||
FCB 0
|
||||
|
||||
COINF FCB SUB
|
||||
FDB SVSUB
|
||||
FCC 'FREE PLAY'
|
||||
FCB 0
|
||||
|
||||
COIN2P FCB SUB
|
||||
FDB SVSUB
|
||||
FCC '1'
|
||||
FCB SLASH
|
||||
FCC '1 DM 6'
|
||||
FCB SLASH
|
||||
FCC '5 DM'
|
||||
FCB 0
|
||||
|
||||
COIN3P FCB SUB
|
||||
FDB SVSUB
|
||||
FCC '1'
|
||||
FCB SLASH
|
||||
FCC 'QUARTER 4'
|
||||
FCB SLASH
|
||||
FCC 'DOLLAR'
|
||||
FCB 0
|
||||
|
||||
COIN4P FCB SUB
|
||||
FDB SVSUB
|
||||
FCC '1'
|
||||
FCB SLASH
|
||||
FCC '2 F 3'
|
||||
FCB SLASH
|
||||
FCC '5 F'
|
||||
FCB 0
|
||||
|
||||
COIN5P FCB SUB
|
||||
FDB SVSUB
|
||||
FCC '1'
|
||||
FCB SLASH
|
||||
FCC 'FIFTY 2'
|
||||
FCB SLASH
|
||||
FCC 'DOLLAR'
|
||||
FCB 0
|
||||
|
||||
COIN6P FCB SUB
|
||||
FDB SVSUB
|
||||
FCC '1'
|
||||
FCB SLASH
|
||||
FCC '25 4'
|
||||
FCB SLASH
|
||||
FCC '1 G'
|
||||
FCB 0
|
||||
|
||||
COIN7P FCB SUB
|
||||
FDB SVSUB
|
||||
FCC '1'
|
||||
FCB SLASH
|
||||
FCC '5 F 2'
|
||||
FCB SLASH
|
||||
FCC '10 F'
|
||||
FCB 0
|
||||
|
||||
COIN8P FCB SUB
|
||||
FDB SVSUB
|
||||
FCC '1'
|
||||
FCB SLASH
|
||||
FCC '10 F'
|
||||
FCB 0
|
||||
|
||||
CMIMEP FCB COLOR,$11,CURSAB,$30,$80,0,SUB
|
||||
FDB ADJS
|
||||
FCC ' FAILURE'
|
||||
FCB CURSAB,$20,$A0,0
|
||||
FCC 'RESTORE'
|
||||
FCB SUB
|
||||
FDB FACSUB
|
||||
FCC 'BY'
|
||||
FCB CURSAB,$20,$B0,0,SUB
|
||||
FDB CMISUB
|
||||
FCB COKSUB
|
||||
FDB CMICOK
|
||||
FCB CURSAB,$20,$C0,0
|
||||
FCC 'AND TURNING GAME OFF AND ON'
|
||||
FCB 0
|
||||
|
||||
FACSUB FCC ' FACTORY SETTINGS '
|
||||
FCB 0
|
||||
|
||||
RESMSP FCB COLOR,$99,CURSAB,$21,$80,0,SUB
|
||||
FDB FACSUB
|
||||
FCC ' RESTORED'
|
||||
FCB 0
|
||||
|
||||
CMISUB FCC 'OPENING '
|
||||
FDORSB FCC 'FRONT DOOR'
|
||||
FCB 0
|
||||
|
||||
CMICOK FCB CURSAB,$20,$B0,0,COLOR,$00,SUB
|
||||
FDB CMISUB
|
||||
FCB CURSAB,$20,$B0,0,COLOR,$11
|
||||
FCC 'RAISING '
|
||||
TABLSB FCC 'TABLE TOP'
|
||||
FCB 0
|
||||
|
||||
FROBMP FCB COLOR,$99,FROB,COLOR,$66,0 DISPLAY FROB
|
||||
|
||||
CONTMP FCB LFONT,COLOR,$99,CURSAB,$37,$0F,0
|
||||
FCC 'GAME '
|
||||
FCB SUB
|
||||
FDB ADJS
|
||||
FCB SFONT,CURSAB,$2E,$CD,0,COLOR,$99,SUB
|
||||
FDB UPDNSB
|
||||
FCB SUB
|
||||
FDB ADJS
|
||||
FCB CURSAB,$2B,$D5,0
|
||||
FCC 'USE '
|
||||
FCB HYPHEN
|
||||
FCC 'FIRE'
|
||||
FCB HYPHEN
|
||||
FCC ' LEVER TO CHANGE THE VALUE'
|
||||
FCB CURSAB,$39,$E2,0,COLOR,$55,SUB
|
||||
FDB PESUB
|
||||
FCB 0
|
||||
|
||||
ADJS FCC 'ADJUSTMENT'
|
||||
FCB 0
|
||||
|
||||
UPDNSB FCC 'USE '
|
||||
FCB HYPHEN
|
||||
FCC 'MOVE'
|
||||
FCB HYPHEN
|
||||
FCC ' TO SELECT '
|
||||
FCB 0
|
||||
|
||||
EXMANN FCB COLOR,$66,CURSAB,$36,$EE,0,SUB
|
||||
FDB JZREP
|
||||
FCB SPACE,NUMB
|
||||
FCC '000'
|
||||
FCB 0
|
||||
|
||||
JZREP FCC 'EXTRA MAN EVERY'
|
||||
FCB 0
|
||||
|
||||
JZSHP FCC 'TURNS'
|
||||
PPSUB FCC ' PER '
|
||||
FCB SUB
|
||||
FDB PLRSUB
|
||||
FCB 0
|
||||
|
||||
JZCONS FCC 'PRICING SELECTION'
|
||||
FCB 0
|
||||
|
||||
JZSL1 FCC 'LEFT'
|
||||
FCB SUB
|
||||
FDB SLSUB
|
||||
FCB 0
|
||||
|
||||
JZSL2 FCC 'CENTER'
|
||||
FCB SUB
|
||||
FDB SLSUB
|
||||
FCB 0
|
||||
|
||||
JZSL3 FCC 'RIGHT'
|
||||
FCB SUB
|
||||
FDB SLSUB
|
||||
FCB 0
|
||||
|
||||
SLSUB FCC ' SLOT UNITS'
|
||||
FCB 0
|
||||
|
||||
JZCUC FCB SUB
|
||||
FDB UNFOR
|
||||
FCC 'CREDIT'
|
||||
FCB 0
|
||||
|
||||
JZCUB FCB SUB
|
||||
FDB UNFOR
|
||||
FCC 'BONUS CREDIT'
|
||||
FCB 0
|
||||
|
||||
JZMUN FCC 'MINIMUM UNITS FOR ANY CREDIT'
|
||||
FCB 0
|
||||
|
||||
UNFOR FCC 'UNITS REQUIRED FOR '
|
||||
FCB 0
|
||||
|
||||
JZFREE FCC 'FANCY ATTRACT MODE'
|
||||
FCB 0
|
||||
|
||||
JZMASA FCC 'DIFFICULTY OF PLAY'
|
||||
FCB 0
|
||||
|
||||
JZGODL FCC 'LETTERS FOR'
|
||||
FCB SUB
|
||||
FDB HISCR
|
||||
FCB 0
|
||||
|
||||
HISCR FCC ' HIGHEST SCORE NAME'
|
||||
FCB 0
|
||||
|
||||
JZFACS FCC 'RESTORE'
|
||||
FCB SUB
|
||||
FDB FACSUB
|
||||
FCB 0
|
||||
|
||||
JZCAUD FCC 'CLEAR'
|
||||
FCB SUB
|
||||
FDB BKTSUB
|
||||
FCB 0
|
||||
|
||||
JZCLHS FCC 'HIGH SCORE TABLE RESET'
|
||||
FCB 0
|
||||
|
||||
JZAUTO FCC 'AUTO CYCLE'
|
||||
FCB 0
|
||||
|
||||
JZOPM FCC 'SET '
|
||||
AMSUB FCC 'ATTRACT MODE MESSAGE'
|
||||
FCB 0
|
||||
|
||||
JZGOD FCC 'SET'
|
||||
FCB SUB
|
||||
FDB HISCR
|
||||
FCB 0
|
||||
|
||||
AUD1P FCB SBLANK,NUMB,0 SETUP SKIP-BLANKING
|
||||
|
||||
AUD2P FCB NBLANK,NUMY,0 NO BLANKING ON THIS PART
|
||||
|
||||
AUD3P FCB CURSOR,6,0,0 MOVE 2 CHARACTERS RIGHT
|
||||
FCB SBLANK,NUMY,0 THEN PRINT NUMBER WITH SPACING
|
||||
|
||||
BOOKMP FCB CURSAB,$2F,$10,0
|
||||
FCB COLOR,$99,SUB
|
||||
FDB BKTSUB
|
||||
FCB COLOR,$11,0
|
||||
|
||||
BOOKRP FCB CURSAB,$20,$60,0
|
||||
FCB COLOR,$33,SUB
|
||||
FDB BKTSUB
|
||||
FCC 'CLEARED'
|
||||
FCB 0
|
||||
|
||||
HSRESP FCB CURSAB,$2A,$40,0
|
||||
FCB COLOR,$88,SUB
|
||||
FDB JZCLHS
|
||||
FCB 0
|
||||
|
||||
BKTSUB FCC ' BOOKKEEPING TOTALS '
|
||||
FCB 0
|
||||
|
||||
AUDX1 EQU $1C
|
||||
AUDX2 EQU $6C
|
||||
|
||||
AZPDC FCB CURSAB,AUDX1,$60,0
|
||||
FCC 'PAID CREDITS'
|
||||
FCB CURSAB,AUDX2,$60,0,0
|
||||
|
||||
AZFS FCB CURSAB,AUDX1,$70,0
|
||||
FCC 'EXTRA MEN EARNED'
|
||||
FCB CURSAB,AUDX2,$70,0,0
|
||||
|
||||
AZTIM FCB CURSAB,AUDX1,$80,0
|
||||
FCC 'PLAY TIME IN MINUTES'
|
||||
FCB CURSAB,AUDX2,$80,0,0
|
||||
|
||||
AZSHIP FCB CURSAB,AUDX1,$90,0
|
||||
FCC 'MEN PLAYED'
|
||||
FCB CURSAB,AUDX2,$90,0,0
|
||||
|
||||
AZPLAY FCB CURSAB,AUDX1,$A0,0
|
||||
FCC 'CREDITS PLAYED'
|
||||
FCB CURSAB,AUDX2,$A0,0,0
|
||||
|
||||
AVM1 FCB CURSAB,AUDX1,$C0,0
|
||||
FCC 'AVERAGE TIME PER CREDIT'
|
||||
FCB CURSAB,AUDX2-8,$C0,0,0
|
||||
|
||||
AVM2 FCB COLON,NBLANK,NUMB,0
|
||||
|
||||
AVM3 FCB CURSAB,AUDX1,$D0,0
|
||||
FCC 'AVERAGE TURNS PER CREDIT'
|
||||
FCB CURSAB,AUDX2-8,$D0,0,0
|
||||
|
||||
AVM4 FCB PERIOD,NBLANK,NUMB,0
|
||||
|
||||
AZS1 FCB CURSAB,AUDX1,$30,0
|
||||
FCC 'LEFT'
|
||||
FCB SUB
|
||||
FDB COINSB
|
||||
FCB CURSAB,AUDX2,$30,0,0
|
||||
|
||||
AZS2 FCB CURSAB,AUDX1,$40,0
|
||||
FCC 'CENTER'
|
||||
FCB SUB
|
||||
FDB COINSB
|
||||
FCB CURSAB,AUDX2,$40,0,0
|
||||
|
||||
AZS3 FCB CURSAB,AUDX1,$50,0
|
||||
FCC 'RIGHT'
|
||||
FCB SUB
|
||||
FDB COINSB
|
||||
FCB CURSAB,AUDX2,$50,0,0
|
||||
|
||||
COINSB FCC ' SLOT COINS'
|
||||
FCB 0
|
||||
|
||||
CRTSTP FCB COLOR,$33,CURSAB,$3A,$80,0
|
||||
FCC 'COLOR RAM TEST'
|
||||
FCB CURSAB,$27,$B0,0
|
||||
FCC 'VERTICAL BARS INDICATE ERROR'
|
||||
FCB 0
|
||||
|
||||
SZAUP FCC 'AUTO UP'
|
||||
FCB 0
|
||||
|
||||
SZADV FCC 'ADVANCE'
|
||||
FCB 0
|
||||
|
||||
SZRC FCC 'RIGHT COIN'
|
||||
FCB 0
|
||||
|
||||
SZHSR FCC 'HIGH SCORE RESET'
|
||||
FCB 0
|
||||
|
||||
SZLC FCC 'LEFT COIN'
|
||||
FCB 0
|
||||
|
||||
SZCC FCC 'CENTER COIN'
|
||||
FCB 0
|
||||
|
||||
SZSS FCC 'SLAM SWITCH'
|
||||
FCB 0
|
||||
|
||||
SZFIRE FCC 'MOVE UP'
|
||||
FCB COKSUB
|
||||
FDB PLYSUB
|
||||
FCB 0
|
||||
|
||||
SZTHR FCC 'MOVE DOWN'
|
||||
FCB COKSUB
|
||||
FDB PLYSUB
|
||||
FCB 0
|
||||
|
||||
SZSB FCC 'MOVE LEFT'
|
||||
FCB COKSUB
|
||||
FDB PLYSUB
|
||||
FCB 0
|
||||
|
||||
SZHYP FCC 'MOVE RIGHT'
|
||||
FCB COKSUB
|
||||
FDB PLYSUB
|
||||
FCB 0
|
||||
|
||||
SZS2 FCC '1'
|
||||
FCB SUB
|
||||
FDB PSTSUB
|
||||
FCB 0
|
||||
|
||||
SZS1 FCC '2'
|
||||
FCB SUB
|
||||
FDB PSTSUB
|
||||
FCB 0
|
||||
|
||||
PSTSUB FCB SPACE,SUB
|
||||
FDB PLRSUB
|
||||
FCC 'START'
|
||||
FCB 0
|
||||
|
||||
SZREV FCC 'FIRE UP'
|
||||
FCB COKSUB
|
||||
FDB PLYSUB
|
||||
FCB 0
|
||||
|
||||
SZDOWN FCC 'FIRE DOWN'
|
||||
FCB COKSUB
|
||||
FDB PLYSUB
|
||||
FCB 0
|
||||
|
||||
SZUP FCC 'FIRE LEFT'
|
||||
FCB COKSUB
|
||||
FDB PLYSUB
|
||||
FCB 0
|
||||
|
||||
SZINV FCC 'FIRE RIGHT'
|
||||
FCB COKSUB
|
||||
FDB PLYSUB
|
||||
FCB 0
|
||||
|
||||
PLYSUB FCC ' '
|
||||
FCB LPAREN,SUB
|
||||
FDB PLRSUB
|
||||
FCB ZBLANK,NUMB,RPAREN,0
|
||||
|
||||
SWTSTP FCB COLOR,$88,CURSAB,$3A,26,0
|
||||
FCC 'SWITCH TEST'
|
||||
FCB 0
|
||||
|
||||
ROMOKP FCB COLOR,$99,CURSAB,$3E,$50,$0
|
||||
FCC 'ALL ROMS OK'
|
||||
FCB CURSAB,$36,$90,0,COLOR,$33
|
||||
FCC 'RAM TEST FOLLOWS'
|
||||
FCB SUB
|
||||
FDB ROKSB
|
||||
FCB 0
|
||||
|
||||
ROKSB FCB CURSAB,$2F,$A0,0,SUB
|
||||
FDB PESUB
|
||||
FCB 0
|
||||
|
||||
RAMSUB FCC ' RAM ERRORS DETECTED'
|
||||
FCB 0
|
||||
|
||||
RAMOKP FCB COLOR,$99,CURSAB,$2A,$80,0
|
||||
FCC 'NO'
|
||||
FCB SUB
|
||||
FDB RAMSUB
|
||||
FCB 0
|
||||
|
||||
CMOKP FCB COLOR,$99,CURSAB,$23,$80,0
|
||||
FCC 'NO CMOS'
|
||||
FCB SUB
|
||||
FDB RAMSUB
|
||||
FCB 0
|
||||
|
||||
CMSUB FCC 'CMOS RAM'
|
||||
FCB SUB
|
||||
FDB ERRSUB
|
||||
FCB 0
|
||||
|
||||
CMERRP FCB COLOR,$11,CURSAB,$36,$80,0
|
||||
FCB SUB
|
||||
FDB CMSUB
|
||||
FCB 0
|
||||
|
||||
CMDORP FCB SUB
|
||||
FDB CMERRP
|
||||
FCB CURSAB,$28,$90,0
|
||||
FCC 'OR WRITE PROTECT FAILURE'
|
||||
FCB COLOR,$99,SUB
|
||||
FDB FDSUBB
|
||||
FCB COKSUB
|
||||
FDB FDCOCK
|
||||
FCB 0
|
||||
|
||||
FDCOCK FCB COLOR,$00,SUB
|
||||
FDB FDSUBB
|
||||
FCB COLOR,$99,CURSAB,$17,$B0,0,HYPHEN,SUB
|
||||
FDB TABLSB
|
||||
MBOSUB FCC ' MUST BE OPEN FOR TEST'
|
||||
FCB HYPHEN,0
|
||||
|
||||
FDSUBB FCB CURSAB,$1B,$B0,0,HYPHEN,SUB
|
||||
FDB FDORSB
|
||||
FCB SUB
|
||||
FDB MBOSUB
|
||||
FCB 0
|
||||
|
||||
SNDTEP FCB COLOR,$00,CURSAB,$57,$80,0
|
||||
FCB BLANKR BLANK OUT THE LAST ONE
|
||||
FCB COLOR,$99,CURSAB,$3A,$80,0
|
||||
FCC 'SOUND LINE '
|
||||
FCB ZBLANK,NUMB,0
|
||||
FCB PERIOD,SPACE,SPACE
|
||||
|
||||
INSUB FCB CURSAB,$30,$70,0
|
||||
FCC 'INITIAL TESTS INDICATE'
|
||||
FCB COLON,0
|
||||
|
||||
INDMFP FCB COLOR,$11,SUB
|
||||
FDB INSUB
|
||||
FCB CURSAB,$3C,$90,0
|
||||
FCB SUB
|
||||
FDB BADDMP
|
||||
FCB 0
|
||||
|
||||
OKMP FCB COLOR,$99,SUB
|
||||
FDB INSUB
|
||||
FCB CURSAB,$3F,$90,1
|
||||
FCC 'OPERATIONAL'
|
||||
FCB 0
|
||||
|
||||
INERSB FCB COLOR,$11,SUB IN RED,
|
||||
FDB INSUB INITIAL TESTS INDICATE,
|
||||
FCB CURSAB,$40,$90,0,0 AND SET CURSOR FOR ERROR
|
||||
|
||||
FCC ' (C) 1982 WILLIAMS ELECTRONICS INC. '
|
||||
|
||||
FDSUB FCB CURSAB,$40,$80,0
|
||||
FCB COLOR,$11
|
||||
FCB 0
|
||||
|
||||
BADDMP FCB SUB
|
||||
FDB FDSUB
|
||||
FCB CURSOR,-30,0,0 RELATIVE CURSOR MOVE
|
||||
FCC 'SPECIAL CHIP FAILURE'
|
||||
FCB 0 PRINT IT
|
||||
|
||||
FDROMP FCB SUB
|
||||
FDB FDSUB
|
||||
FCC 'ROM'
|
||||
FCB SUB
|
||||
FDB ERRSUB
|
||||
FCB NUMB,0
|
||||
|
||||
FDRAMP FCB SUB
|
||||
FDB FDSUB
|
||||
FCC 'RAM'
|
||||
FCB SUB
|
||||
FDB ERRSUB
|
||||
FCB NUMB,0
|
||||
|
||||
ROMERP FCB SUB
|
||||
FDB INERSB
|
||||
FCC 'ROM'
|
||||
FCB SUB
|
||||
FDB ERRSUB
|
||||
FCB NUMB,0
|
||||
|
||||
RERRMP FCB SUB
|
||||
FDB INERSB
|
||||
FCC 'RAM'
|
||||
FCB SUB
|
||||
FDB ERRSUB
|
||||
FCB NUMB,0
|
||||
|
||||
ERRSUB FCC ' ERROR '
|
||||
FCB ZBLANK,0
|
||||
|
||||
CPYM1 FCB COLOR,$AA,CURSAB,$24,$C8,0,SUB
|
||||
FDB CPYSUB
|
||||
FCB COLOR,$66,CURSAB,$38,$B5,0
|
||||
FCC 'DESIGNED BY VID KIDZ'
|
||||
FCB CURSAB,$2E,$BC,0
|
||||
FCC 'FOR '
|
||||
FCB SUB
|
||||
FDB WNAMES
|
||||
FCB COLOR,$22,CURSAB,$3D,$A8,0,LFONT
|
||||
CDDSUB FCC 'CREDITS'
|
||||
FCB COLON,SPACE,ZBLANK,NUMB
|
||||
FCB 0
|
||||
|
||||
CRDM22 FCB COLOR,$AA,CURSAB,$41,$EE,0
|
||||
FCB SUB
|
||||
FDB CDDSUB
|
||||
FCB 0
|
||||
|
||||
CPYM2 FCB CURSAB,$24,$EE,0
|
||||
CPYSUB FCC 'COPYRIGHT 1982 '
|
||||
WNAMES FCC 'WILLIAMS ELECTRONICS INC'
|
||||
FCB PERIOD
|
||||
FCB 0
|
||||
|
||||
GOMP FCB CURSAB,$3E,$80,0
|
||||
GOSUBB FCC 'GAME OVER'
|
||||
FCB 0
|
||||
|
||||
PGOMP FCB CURSAB,$3F,$79,1,SUB
|
||||
FDB PLSUB
|
||||
FCB CURSAB,$3E,$86,0,SUB
|
||||
FDB GOSUBB
|
||||
FCB 0
|
||||
|
||||
PLUPP FCB CURSAB,$3F,$7A,1
|
||||
PLSUB FCB SUB
|
||||
FDB PLRSUB
|
||||
FCB ZBLANK,NUMB,0
|
||||
|
||||
WAVEP FCB CURSAB,$3E,$EE,0,SBLANK,COLOR,$AA
|
||||
FCB NUMB,CURSOR,3,0,0,COLOR,$BB
|
||||
FCC ' WAVE'
|
||||
FCB 0
|
||||
|
||||
WAVEM2 FCB CURSOR,$04,$00,0,ZBLANK,COLOR,$AA
|
||||
FCB NUMB,0
|
||||
|
||||
PMOM FCC 'MOMMY'
|
||||
FCB 0
|
||||
|
||||
PGRUNT FCC 'GRUNT '
|
||||
FCB HYPHEN
|
||||
FCC ' 100'
|
||||
FDB 0
|
||||
|
||||
PDAD FCC 'DADDY'
|
||||
FCB 0
|
||||
|
||||
PKID FCC 'MIKEY'
|
||||
FCB 0
|
||||
|
||||
PHULK FCC 'INDESTRUCTABLE HULK'
|
||||
FCB 0
|
||||
|
||||
PSPCU FCC 'SPHEREOID '
|
||||
FCB HYPHEN
|
||||
FCC ' 1000 QUARK '
|
||||
FCB HYPHEN
|
||||
FCC ' 1000'
|
||||
FCB 0
|
||||
|
||||
PENTK FCC 'ENFORCER '
|
||||
FCB HYPHEN
|
||||
FCC ' 150 TANK '
|
||||
FCB HYPHEN
|
||||
FCC ' 200'
|
||||
FCB 0
|
||||
|
||||
PBRAIN FCC 'BRAIN '
|
||||
FCB HYPHEN
|
||||
FCC ' 500 CRUISE MISSILE '
|
||||
FCB HYPHEN
|
||||
FCC ' 25'
|
||||
FCB 0
|
||||
|
||||
PPROG FCC 'PROG '
|
||||
FCB HYPHEN
|
||||
FCC ' 100'
|
||||
FCB 0
|
||||
|
||||
TITLEP FCB COLOR,$AA,CURSAB,$36,$24,0
|
||||
FCC 'ROBOTRON'
|
||||
FCB COLON,SPACE
|
||||
FCC '2084'
|
||||
FCB 0
|
||||
|
||||
FAMMP FCB COLOR,$AA,CURSAB,$25,$84,0
|
||||
FCC 'SAVE THE LAST HUMAN FAMILY'
|
||||
FCB 0
|
||||
|
|
@ -0,0 +1,717 @@
|
|||
OPT PAGS
|
||||
TTL R O B O T W A R
|
||||
*
|
||||
* HARDWARE CONSTANTS
|
||||
*
|
||||
HSTK EQU $BF70
|
||||
VECTOR EQU $EFF0
|
||||
CRAM EQU $C000 COLOR RAM ADDR
|
||||
WDOG EQU $CBFF
|
||||
WDATA EQU $39
|
||||
CMOS EQU $CC00
|
||||
SOUND EQU $C80E
|
||||
VERTCT EQU $CB00 6-BIT VERTICAL BEAM ADDR
|
||||
RWCNTL EQU $C900 (BIT 0: 1-ROM READ; 0-RAM READ)
|
||||
* (BIT 1: 1-INVERT; 0-NORMAL SCREEN)
|
||||
*
|
||||
*PIA DEFINITIONS
|
||||
*
|
||||
PIA0 EQU $C80C
|
||||
*B0 AUTO UP
|
||||
*B1 ADVANCE
|
||||
*B2 RCOIN
|
||||
*B3 HSRESET
|
||||
*B4 LCOIN
|
||||
*B5 CCOIN
|
||||
*B6 SLAM
|
||||
*B7 SOUND HANDSHAKE
|
||||
*CA2 LED3
|
||||
*CA1 IRQ 240 (16 MS) (LINE 240)
|
||||
PIA1 EQU $C80E
|
||||
*B0-B5 SOUND
|
||||
*B6-B7 LED 0,1
|
||||
*CB1 IRQ 4 MS (0,$40,$80,$C0)
|
||||
*CB2 LED2
|
||||
PIA2 EQU $C804
|
||||
*B0 MOVE UP
|
||||
*B1 MOVE DOWN
|
||||
*B2 MOVE LEFT
|
||||
*B3 MOVE RIGHT
|
||||
*B4 START 1
|
||||
*B5 START 2
|
||||
*B6 FIRE UP
|
||||
*B7 FIRE DOWN
|
||||
*
|
||||
PIA3 EQU $C806
|
||||
*B0 FIRE LEFT
|
||||
*B1 FIRE RIGHT
|
||||
*B7 INPUT 1=COCKTAIL
|
||||
*CB2 OUTPUT SWITCH MUX CONTROL 1=PLAYER1,0=PLAYER2
|
||||
*
|
||||
*DMA CONSTANTS
|
||||
*
|
||||
DMACTL EQU $CA00 CONTROL BYTE WRITE INITIATES TRANSFER
|
||||
*B0:READ FORMAT 0=SERIAL;1=BLOCK
|
||||
*B1:WRITE FORMAT 0=SERIAL;1=BLOCK
|
||||
*B2:XSFER RATE 0=ROM-RAM (1MSEC); 1=RAM-RAM (2 MSEC)
|
||||
*B3:1=ZERO WRITE SUPPRESS
|
||||
*B4:1=CONSTANT SUBSTITUTION
|
||||
*B5:1=ODD FLAVOR
|
||||
*B6:1=B0-B3 WRITE SUPPRESS
|
||||
*B7:1=B4-B7 WRITE SUPPRESS
|
||||
DMACON EQU $CA01 CONSTANT DATA BYTE
|
||||
DMAORG EQU $CA02 ORIGIN ADDR MSB,LSB
|
||||
DMADES EQU $CA04 DESTINATION "
|
||||
DMASIZ EQU $CA06 HOR,VERT BYTE COUNTS
|
||||
*SCORE DISPLAY CONSTANTS
|
||||
YMAX EQU 234
|
||||
YMIN EQU 24 MIN Y COORD
|
||||
XMAX EQU $8F
|
||||
XMIN EQU 7
|
||||
P1ORG EQU $18*$100+14
|
||||
P1MAN EQU P1ORG+7*$300+$100
|
||||
P1DISP EQU P1ORG
|
||||
P2ORG EQU P1ORG+$40*$100
|
||||
P2MAN EQU P2ORG+P1MAN-P1ORG
|
||||
P2DISP EQU P2ORG
|
||||
DIGLTH EQU $300
|
||||
PCOORD EQU $4A7C INIT PLAYER COORD
|
||||
FONCOL EQU $66 PHONY STARTUP COLOR
|
||||
*
|
||||
*MODULE VECTORS + STORAGE ALLOCATION
|
||||
*
|
||||
***OPSYS**..... R O S ..........
|
||||
*
|
||||
ROSORG EQU $D000
|
||||
ORG ROSORG
|
||||
INIT RMB 3
|
||||
ASCAN RMB 3
|
||||
SDOUT RMB 3
|
||||
SCRTRN RMB 3
|
||||
SCORE RMB 3
|
||||
SCRTR0 RMB 3
|
||||
SCRCLR RMB 3
|
||||
DMAOFF RMB 3
|
||||
DMAON RMB 3
|
||||
BLKCLR RMB 3
|
||||
PCTOFF RMB 3
|
||||
PCTON RMB 3
|
||||
COLST RMB 3
|
||||
COL0 RMB 3
|
||||
HEXBCD RMB 3
|
||||
BCDHEX RMB 3
|
||||
OINIT RMB 3
|
||||
CRINIT RMB 3
|
||||
PINIT RMB 3
|
||||
RAND RMB 3
|
||||
RAND16 RMB 3
|
||||
RMAX RMB 3
|
||||
RANDU RMB 3
|
||||
PLINDX RMB 3
|
||||
PLDX RMB 3
|
||||
SNDLD RMB 3
|
||||
KILO1 RMB 3
|
||||
GETOBJ RMB 3
|
||||
MAKEP RMB 3
|
||||
MKPROC RMB 3
|
||||
MSPROC RMB 3
|
||||
KILL RMB 3
|
||||
GNCIDE RMB 3
|
||||
SUCIDE RMB 3
|
||||
SLEEP RMB 3
|
||||
RIPV RMB 3
|
||||
MPROB RMB 3
|
||||
GETOB RMB 3
|
||||
KILLOB RMB 3
|
||||
KILLOF RMB 3
|
||||
KILOFP RMB 3
|
||||
GETROB RMB 3
|
||||
KILROB RMB 3
|
||||
GETPST RMB 3
|
||||
KILPST RMB 3
|
||||
GETHUM RMB 3
|
||||
KILHUM RMB 3
|
||||
DMAOFN RMB 3
|
||||
MPCTON RMB 3
|
||||
BLKON RMB 3
|
||||
EXECV RMB 3
|
||||
P1SW RMB 3
|
||||
P2SW RMB 3
|
||||
DIVAB RMB 3
|
||||
RCMOSA RMB 3
|
||||
RCMOSB RMB 3
|
||||
RCMOSD RMB 3
|
||||
WCMOSA RMB 3
|
||||
WCMOSB RMB 3
|
||||
WCMOSD RMB 3
|
||||
BCDBIN RMB 3
|
||||
RWMOVE RMB 3
|
||||
AUD RMB 3
|
||||
AUD1 RMB 3
|
||||
INT20V RMB 3
|
||||
LFV RMB 3
|
||||
NEWBCH RMB 3 BCDHEX THAT USES A!!
|
||||
*
|
||||
*PLAYER DEATH
|
||||
*
|
||||
RDORG EQU $DD00
|
||||
ORG RDORG
|
||||
RDTHV RMB 3
|
||||
*
|
||||
*HUMANS+HULKS
|
||||
*
|
||||
RHORG EQU $0000
|
||||
ORG RHORG
|
||||
HULKST RMB 3
|
||||
HUMST RMB 3
|
||||
CKLIM RMB 3
|
||||
SKULL RMB 3
|
||||
P1KD RMB 2
|
||||
MOMPIC RMB 2
|
||||
DADPIC RMB 2
|
||||
KIDPIC RMB 2
|
||||
HLKPIC RMB 2
|
||||
HLKANA RMB 2
|
||||
HUMANA RMB 2
|
||||
SKLPIC RMB 2
|
||||
*
|
||||
***CIRCLES,ENFORCERS,SPARX
|
||||
*
|
||||
RCORG EQU $1140
|
||||
ORG RCORG
|
||||
CIRCST RMB 3 START CIRCLES
|
||||
CIRKV RMB 3
|
||||
CIRPIC RMB 2
|
||||
ENGPIC RMB 2
|
||||
ENFPIC RMB 2
|
||||
*
|
||||
*BRAINS & CO.
|
||||
*
|
||||
BRNORG EQU $1AC0
|
||||
ORG BRNORG
|
||||
BRNST RMB 3
|
||||
BRNPIC RMB 2
|
||||
BRONV RMB 3
|
||||
HUMONV RMB 3
|
||||
PRGPIC RMB 2
|
||||
*
|
||||
*******ROBOT GAME...... R G .......
|
||||
*
|
||||
RGORG EQU $26C0
|
||||
ORG RGORG
|
||||
PLAYER RMB 3
|
||||
RANDXY RMB 3
|
||||
CKOBS RMB 3
|
||||
MANDSP RMB 3
|
||||
STRT1 RMB 3
|
||||
STRT2 RMB 3
|
||||
TDISPV RMB 3
|
||||
MANPIC RMB 2
|
||||
LASPIC RMB 2
|
||||
*
|
||||
*ROBOTS&POSTS
|
||||
*
|
||||
RPORG EQU $3880
|
||||
ORG RPORG
|
||||
RINIT RMB 3
|
||||
PSINIT RMB 3
|
||||
PSTP1 RMB 2
|
||||
OPON RMB 3
|
||||
OPON1 RMB 3
|
||||
SAFTY RMB 3
|
||||
ROBPIC RMB 2
|
||||
PSTPIC RMB 2
|
||||
PKPRCV RMB 3
|
||||
*
|
||||
*TRANSPORTER
|
||||
*
|
||||
RTORG EQU $4140
|
||||
ORG RTORG
|
||||
TRANST RMB 3
|
||||
*
|
||||
*DIAGONAL EXPLOSIONS
|
||||
*
|
||||
RDXORG EQU $4680
|
||||
ORG RDXORG
|
||||
DXINIT RMB 3
|
||||
DXST RMB 3
|
||||
DAPST RMB 3
|
||||
DXUPD RMB 3
|
||||
*
|
||||
*TANKS
|
||||
*
|
||||
RTKORG EQU $4B00
|
||||
ORG RTKORG
|
||||
TANKST RMB 3
|
||||
SQST RMB 3
|
||||
SQPIC RMB 2
|
||||
TNGPIC RMB 2
|
||||
TNKPIC RMB 2
|
||||
*
|
||||
*MARQUEE
|
||||
*
|
||||
RMORG EQU $5700
|
||||
ORG RMORG
|
||||
RMST RMB 3
|
||||
*
|
||||
*EXPLOSIONS
|
||||
*
|
||||
RXORG EQU $5B40
|
||||
ORG RXORG
|
||||
EXINIT RMB 3
|
||||
EXST RMB 3
|
||||
APST RMB 3
|
||||
EXUPD RMB 3
|
||||
PDEATH RMB 3
|
||||
HVEXST RMB 3
|
||||
DDEXST RMB 3 DUAL DIAGONALS
|
||||
AMAP RMB 3 ATTRACT MODE APPEAR
|
||||
HAPST RMB 3 HORIZONTAL APPEAR
|
||||
HEXST RMB 3 HORIZONTAL EXPLODE
|
||||
|
||||
* STINKY LINKY VINCKYS
|
||||
|
||||
LOGORG EQU $77A0 PLACE FOR PROGRAM
|
||||
GOV EQU LOGORG
|
||||
CCV EQU GOV+3
|
||||
|
||||
TSCORG EQU $E3D0 HIGH SCORE BULLSHIT
|
||||
PUPHSC EQU TSCORG POWER UP HIGH SCORE CHECK
|
||||
ENDPRC EQU PUPHSC+3 END OF GAME PROCESSING
|
||||
GODSET EQU ENDPRC+3 ENTER GODS NAME BY OPERATOR
|
||||
HIGHRS EQU GODSET+3 RESET HIGH SCORE TABLE BY OPERATOR
|
||||
HSCHKV EQU HIGHRS+3 CHECK IF HS TABLE LOOKS BASHED
|
||||
HSBUTV EQU HSCHKV+3 HIGH SCORE RESET BUTTON
|
||||
|
||||
TABORG EQU $DF40
|
||||
TABLEV EQU TABORG
|
||||
|
||||
TSTORG EQU $F000
|
||||
PWRUPV EQU TSTORG
|
||||
ADVSW EQU PWRUPV+3
|
||||
AUTOCY EQU ADVSW+3
|
||||
HXINIT EQU AUTOCY+3
|
||||
HEXSTX EQU HXINIT+3
|
||||
HAPSTX EQU HEXSTX+3
|
||||
HXUPD EQU HAPSTX+3
|
||||
WLOOPV EQU HXUPD+3
|
||||
ELOOPV EQU WLOOPV+2
|
||||
L2 EQU ELOOPV+2
|
||||
L0 EQU L2+2
|
||||
|
||||
TSBORG EQU $6F00 ADJUST PART OF TEST MODE
|
||||
ADJV EQU TSBORG
|
||||
CMINIT EQU ADJV+3
|
||||
ATMCK EQU CMINIT+3
|
||||
GETLT EQU ATMCK+3 ROUTINE TO GET LETTERS FROM CONTROL PANEL
|
||||
CMSMVV EQU GETLT+3
|
||||
DOPMES EQU CMSMVV+3 2 BYTER
|
||||
|
||||
TXORG EQU $5F90 PLACE FOR TEXT PROGRAM
|
||||
PR35V EQU TXORG
|
||||
PR57V EQU PR35V+3
|
||||
WRD5V EQU PR57V+3
|
||||
WRD7V EQU WRD5V+3
|
||||
PRINV EQU WRD7V+3
|
||||
PRSCR EQU PRINV+3
|
||||
|
||||
WRD5FV EQU WRD5V
|
||||
WRD7FV EQU WRD7V
|
||||
PRN5FV EQU PR35V
|
||||
PRN7FV EQU PR57V
|
||||
|
||||
SETORG EQU $E9C8 CHARACTER SET
|
||||
TAB35 EQU SETORG
|
||||
TAB57 EQU TAB35+2
|
||||
N0V EQU TAB57
|
||||
|
||||
*
|
||||
*BASE PAGE RAM AREA
|
||||
*
|
||||
ORG $9800
|
||||
RAM EQU *
|
||||
SETDP RAM>>8
|
||||
PCRAM RMB 16 PSEUDO COLOR RAM
|
||||
TIMER RMB 1 IRQ TIMER
|
||||
ACTIVE RMB 2 POINTER TO LIST OF CURRENTLY ACTIVE (SLEEPING) PROCS.
|
||||
FREE RMB 2 POINTER TO LIST OF UNALLOCATED PROCESS SLEEP SPACE.
|
||||
CRPROC RMB 2 POINTER TO SLEEP AREA OF CURRENTLY EXECUTING PROCESS.
|
||||
OPTR RMB 2 MOTION OBJECT LIST POINTER
|
||||
OBPTR RMB 2 OBSTACLE LIST POINTER
|
||||
OFREE RMB 2 FREE LIST POINTER
|
||||
SPFREE RMB 2 SUPER PROCESS FREE LIST
|
||||
HPTR RMB 2 HUMAN PTR
|
||||
RPTR RMB 2 ROBOT LIST
|
||||
PPTR RMB 2 PHATAL OBJECT LIST
|
||||
ITEMP RMB 2 INTERUPT TEMP
|
||||
PSTIN RMB 2
|
||||
ITEMP2 RMB 2
|
||||
XTEMP RMB 2 SAVE AREA FOR QUICK TEMPORARY
|
||||
XTEMP2 RMB 2
|
||||
PIA01 RMB 1 N-1 PIA0
|
||||
PIA02 RMB 1 N-2 PIA0
|
||||
PIA21 RMB 1 N-1 PIA2
|
||||
PIA22 RMB 1 N-2 PIA2
|
||||
SWPROC RMB 12 SWITCH SCAN TEMP
|
||||
CURPLR RMB 1 CURRENT
|
||||
PLRCNT RMB 1 NUMBER OF PLAYERS
|
||||
XXX2 RMB 1 '80' IRQ LINE
|
||||
OVCNT RMB 1 OVERFLOW COUNT
|
||||
IFLG RMB 1 IRQ FLAG
|
||||
FRAME RMB 1 IRQ COUNT
|
||||
RWCTMP RMB 1 SCREEN READ CONTROL BYTE
|
||||
REPLA RMB 2 REPLAY LEVEL
|
||||
PCFLG RMB 1 PLAYER COLLISION
|
||||
HTABX RMB 2 HUMAN TABLE INDEX
|
||||
*COIN BUSINESS
|
||||
SLMCNT RMB 1
|
||||
LCCNT RMB 1
|
||||
RCCNT RMB 1
|
||||
CCCNT RMB 1
|
||||
BUNITS RMB 1
|
||||
CUNITS RMB 1
|
||||
CREDIT RMB 1
|
||||
*ATTRACT SWITCHES: FONY PRAYAH CONTLOHL
|
||||
ATRSW2 RMB 1
|
||||
ATRSW3 RMB 1
|
||||
*SOUND RAM
|
||||
SNDX RMB 2 TABLE INDEX
|
||||
SNDPRI RMB 1 PRIORITY
|
||||
SNDTMR RMB 1
|
||||
SNDREP RMB 1
|
||||
*
|
||||
*STATUS FLAG
|
||||
*B7=GAME OVER
|
||||
*B6=
|
||||
*B5=
|
||||
*B4=PLAYER OUTPUT
|
||||
*B3=MOTION OBJS VEL +ENEMIES
|
||||
*B2=EXPLOSION UPDATE
|
||||
*B1=POST ,MOT OBJ REFRESH
|
||||
*B0=PLAYER MOTION,COLLISION,FIRE
|
||||
STATUS RMB 1
|
||||
*
|
||||
*PLAYER OBJECT STRUCTURE
|
||||
*
|
||||
PLOBJ EQU *
|
||||
RMB 2 OLINK
|
||||
PPICT RMB 2 OPICT
|
||||
PX RMB 2 OBJX
|
||||
RMB 2 OBJID
|
||||
RMB 2 OCVECT
|
||||
PX16 RMB 2 OX16
|
||||
PY16 RMB 2 OY16
|
||||
PXV RMB 2 OXV
|
||||
PYV RMB 2 OYV
|
||||
RMB 1 OFLAV
|
||||
PODATA RMB 1 ODATA
|
||||
POLDPC RMB 2 OLDPIC
|
||||
PLAIMC RMB 1 PLAYER ANIMATION RATE
|
||||
PLAIMN RMB 1 PLAYER ANIMATION NUMBER
|
||||
PLAIMB RMB 2 PLAYER ANIMATION BASE ADDR
|
||||
*
|
||||
*COLLISION ROUTINE PARAMETERS
|
||||
*
|
||||
XCNT RMB 1 SCAN COUNTS
|
||||
YCNT RMB 1
|
||||
OX1 RMB 1 OFFSETS
|
||||
OY1 RMB 1
|
||||
PX1 RMB 1
|
||||
PY1 RMB 1
|
||||
OBW RMB 1 HT TEMPS
|
||||
PLW RMB 1
|
||||
ULX RMB 1 UPPER LEFT COORD
|
||||
ULY RMB 1 "
|
||||
LRX RMB 1
|
||||
LRY RMB 1
|
||||
CTEMP RMB 2 INDEX TEMP
|
||||
CTEMP2 RMB 2
|
||||
*RANDOM VARIABLES
|
||||
SEED RMB 1
|
||||
HSEED RMB 1
|
||||
LSEED RMB 1
|
||||
*LASER
|
||||
LCNT RMB 1
|
||||
LASDIR RMB 2
|
||||
*SPARKS
|
||||
SPKCNT RMB 1
|
||||
ROBST RMB 2 PTR TO ROBOT LIST
|
||||
SAVCNT RMB 1 HUMAN COUNT SAVED
|
||||
BCMCNT RMB 1 BRAIN CRUISE MISSILES
|
||||
*POST ANIMATION+WALL COLOR
|
||||
WALCOL RMB 1 WALL+POST BG
|
||||
PSTCOL RMB 1 POST COLOR
|
||||
LASCOL RMB 1 LASER WALL COLLIDE COLOR
|
||||
PSTREF RMB 1 POST REFRESH RATE
|
||||
PSTANI RMB 2 CURR POST ANIMATION
|
||||
BRNFLG RMB 1 BRAIN HUMAN KILL FLAG
|
||||
*
|
||||
*EXPLOSION STUFF
|
||||
EXPRAM RMB $10
|
||||
CENTMP RMB 2 CENTER OF BLOW
|
||||
HXRAM RMB $10
|
||||
DXRAM RMB $10
|
||||
RMRAM RMB 6 MARQUEE RAM
|
||||
|
||||
************************ LINKYS STINKYS
|
||||
|
||||
INDIAG RMB 1
|
||||
|
||||
*
|
||||
* TEXT VARIABLES
|
||||
*
|
||||
|
||||
TEXCOL RMB 1 (TEXCOL) PRINTING COLOR (NIBBLES REPRESENT FLAVOR COLO
|
||||
TXFLAV RMB 1 (TXFLAV) FLAVOR OF CURRENT CURSOR (0=EVEN, 1=ODD)
|
||||
TXLEAD RMB 1 (TXLEAD) LEAD ZERO BLANKING ON/OFF (0=OFF, 1=ON)
|
||||
TXFONT RMB 1 (TXFONT) FONT HEIGHT (5 OR 7) PIXELS
|
||||
TEXMAR RMB 2 CURRENT LEFT MARGIN CURSOR POINTER
|
||||
TEXMFL RMB 1 CURRENT LEFT MARGIN FLAVOR
|
||||
TEXTP3 RMB 1
|
||||
TXCLIP RMB 1
|
||||
|
||||
*
|
||||
*** GET LETTER ROUTINE RAM
|
||||
*
|
||||
|
||||
GETLRM RMB 2
|
||||
GETLST RMB 3
|
||||
|
||||
********************* LOGO RAM
|
||||
|
||||
LOGX RMB 2
|
||||
LOGCOL RMB 1
|
||||
LOGCL2 RMB 1
|
||||
LOGCNT RMB 1
|
||||
LOGSAV RMB 2
|
||||
LOGCST RMB 2
|
||||
|
||||
LASTX RMB 2
|
||||
SIDE RMB 1
|
||||
BALCOL RMB 1
|
||||
SLIDER RMB 1
|
||||
ERPTR RMB 2
|
||||
*MOVE THIS SOMEDAY
|
||||
ENFCNT RMB 1
|
||||
GAMTIM RMB 1 GAME TIMER
|
||||
TNKSPD RMB 1 TANK SPEED PARAMETER
|
||||
SCRFLG RMB 1 SCORE FLAG
|
||||
SHLCNT RMB 1 SHELL COUNTER
|
||||
RIPFLG RMB 1
|
||||
HCK1 RMB 1
|
||||
ATFLAG RMB 1 INDICATE WHAT PAGE AND HOW
|
||||
|
||||
*
|
||||
*TABLE DATA
|
||||
*
|
||||
ORG RAM+$100 PAST BASE PAGE
|
||||
*
|
||||
*MASTER OBJECT LIST
|
||||
*
|
||||
OLIST EQU *
|
||||
OSIZE EQU $18
|
||||
*
|
||||
*INDEX OFFSETS
|
||||
*
|
||||
OLINK EQU 0 LINK TO NEXT
|
||||
OPICT EQU 2 PICTURE DESCRIPTOR ADDR
|
||||
OBJX EQU 4 UPPER LEFT SCREEN X
|
||||
OBJY EQU 5 UPPER LEFT SCREEN Y
|
||||
OBJID EQU 6 ASSOCIATED PROCESS ID (IF ANY)
|
||||
OCVECT EQU 8 COLLISION ROUTINE ADDR
|
||||
OX16 EQU $A 16 BIT X WORLD COORD
|
||||
OY16 EQU $C 16 BIT Y WORLD COORD
|
||||
OXV EQU $E X VELOCITY
|
||||
OYV EQU $10 Y VELOCITY
|
||||
OFLAV EQU $12 OLD FLAVOR
|
||||
ODATA EQU $13 MISC. DATA
|
||||
OLDPIC EQU $14 OLD PICTURE TO ERASE
|
||||
FONIPC EQU $16 FONY PICT FOR COLLISION PURPOSES
|
||||
*RESERVE AREA
|
||||
RMB (180)*OSIZE
|
||||
OLEND EQU *
|
||||
*
|
||||
*USER DEFINED PROCESS TYPES
|
||||
*
|
||||
STYPE EQU 0 SYSTEM PROCESS
|
||||
CTYPE EQU 1 COIN
|
||||
*
|
||||
*SLEEPING PROCESS TABLE
|
||||
*
|
||||
PTAB EQU *
|
||||
*
|
||||
*OFFSET CONSTANTS
|
||||
*
|
||||
PLINK EQU 0
|
||||
PADDR EQU 2
|
||||
PTIME EQU 4
|
||||
PTYPE EQU 5
|
||||
PCOD EQU 6
|
||||
PDATA EQU 7
|
||||
PD EQU 7
|
||||
PD1 EQU 8
|
||||
PD2 EQU 9
|
||||
PD3 EQU 10
|
||||
PD4 EQU 11
|
||||
PD5 EQU 12
|
||||
PD6 EQU 13
|
||||
PD7 EQU 14
|
||||
PSIZE EQU 15
|
||||
RMB 15*(120)
|
||||
TABEND EQU *
|
||||
*
|
||||
*SUPER PROCESSES
|
||||
*
|
||||
SPSIZE EQU PSIZE+16
|
||||
SPTAB RMB SPSIZE*20
|
||||
SPTEND EQU *
|
||||
*
|
||||
*OBJECT PICTURE STRUCTURE
|
||||
*
|
||||
OBJW EQU 0
|
||||
OBJH EQU 1
|
||||
OBJDAT EQU 2
|
||||
OBJL EQU 4
|
||||
*
|
||||
*HUMAN TABLE
|
||||
*
|
||||
HTAB RMB 80
|
||||
HTBEND EQU *
|
||||
*
|
||||
*POST REFRESH LIST
|
||||
*
|
||||
PSLIST RMB 64 POST LIST
|
||||
PSLEND EQU *
|
||||
*
|
||||
*HORIZONTAL EXPLOSION TABLES
|
||||
*
|
||||
HXTAB RMB $800
|
||||
|
||||
*
|
||||
*DIAGONAL XPLOSION TABLES
|
||||
*
|
||||
DXTAB RMB $200
|
||||
*
|
||||
*PLAYER DATA TABLE
|
||||
*
|
||||
PLDATA EQU *
|
||||
ZP1SCR RMB 4 SCORE MSB 1ST
|
||||
ZP1RP RMB 4 NEXT REPLAY LEVEL
|
||||
ZP1LAS RMB 1 #OF LASERS
|
||||
ZP1WAV RMB 1 WAVE # IN HEX
|
||||
ZP1ENM RMB 50 ENEMY STATE
|
||||
ZP1END EQU *
|
||||
ZP2SCR RMB 4
|
||||
ZP2RP RMB 4
|
||||
ZP2LAS RMB 1
|
||||
ZP2WAV RMB 1
|
||||
ZP2ENM RMB 50
|
||||
PLDEND EQU * END OF PLAYER DATA
|
||||
PLDLEN EQU ZP1END-PLDATA
|
||||
PSCOR EQU ZP1SCR-PLDATA
|
||||
PRPLA EQU ZP1RP-PLDATA
|
||||
PLAS EQU ZP1LAS-PLDATA
|
||||
PWAV EQU ZP1WAV-PLDATA
|
||||
PENEMY EQU ZP1ENM-PLDATA
|
||||
*
|
||||
*ENEMIES LIST
|
||||
*WARNING DO NOT CHANGE ORDER OF COUNTS
|
||||
ELIST EQU *
|
||||
ROBSPD RMB 1 SPEED
|
||||
RMXSPD RMB 1 MAX ROBOT SPEED
|
||||
ENFNUM RMB 1 # OF ENFORCERS/CIRCLE X2
|
||||
ENSTIM RMB 1 ENF SHOT TIMER
|
||||
CDPTIM RMB 1 CIRCLE DROP TIMER
|
||||
HLKSPD RMB 1 HULK SPEED
|
||||
BSHTIM RMB 1 BRAIN SHOT TIMER
|
||||
BRNSPD RMB 1 BRAIN SPEED
|
||||
TNKSHT RMB 1 TANK SHOT RATE
|
||||
SHLSPD RMB 1 SHELL SPEED
|
||||
TDPTIM RMB 1 TANK DROP TIMR
|
||||
SQSPD RMB 1 SQUARE SPEED
|
||||
ECNTS EQU * START COUNTS
|
||||
ROBCNT RMB 1 # ROBOTS
|
||||
PSTCNT RMB 1 # POSTS
|
||||
MOMCNT RMB 1 # MOM UNITS
|
||||
DADCNT RMB 1 # DAD UNITS
|
||||
KIDCNT RMB 1 # KIDS
|
||||
HLKCNT RMB 1 # HULKS
|
||||
BRNCNT RMB 1 # BRAINS
|
||||
CIRCNT RMB 1 # CIRCLES
|
||||
SQCNT RMB 1 # SQUARES
|
||||
TNKCNT RMB 1 # TANKS
|
||||
ELEND EQU *
|
||||
HCK2 RMB 1
|
||||
*
|
||||
* CMOS RAM ALLOCATION
|
||||
*
|
||||
ORG CMOS+$100 WRITABLE CMOS
|
||||
CREDST RMB 2 CREDITS BACKUP
|
||||
SLOT1 RMB 6 1 LEFT COIN TOTAL
|
||||
RMB 6 2 CENTER COIN TOTAL
|
||||
RMB 6 3 RIGHT COIN TOTAL
|
||||
RMB 6 4 TOTAL PAID CREDITS
|
||||
RMB 6 5 TOTAL REPLAYS
|
||||
BKTIME RMB 6 6 FLIGHT TIME IN MINS
|
||||
BKMEN RMB 6 7 TOTAL SHIPS PLAYED
|
||||
BKPLAY RMB 6 8 TOTAL GAMES PLAYED
|
||||
BKEND EQU * END OF BOOKKEEPING STUFF
|
||||
SCRSIZ EQU 14 NUMBER OF NIBBLES IN A SCORE ENTRY
|
||||
GODINT RMB 6
|
||||
GODSCR RMB 48
|
||||
CMSCOR RMB 37*SCRSIZ 37 BACKED UP SCORES, 36 OF WHICH ARE VISIBLE
|
||||
TODAYS RMB 10*SCRSIZ TODAYS GREATEST
|
||||
TODEND EQU *
|
||||
ORG CMOS ADEQUATE BIRTH CONTROL PROTECTION
|
||||
REPLAY RMB 2 REPLAY LEVEL
|
||||
NSHIP RMB 2 # OF SHIPS/1 CREDIT GAME
|
||||
COINSL RMB 2 FOR COINAGE SELECT MODE
|
||||
SLOT1M RMB 2 LEFT COIN MULT
|
||||
SLOT2M RMB 2 CENTER COIN MULT
|
||||
SLOT3M RMB 2 RIGHT COIN MULT
|
||||
CUNITC RMB 2 COIN UNITS PER CREDIT
|
||||
CUNITB RMB 2 COIN UNITS FOR BONUS
|
||||
MINUNT RMB 2 MINIMUM REQD
|
||||
FREEPL RMB 2 FREE PLAY MODE (ONE CREDIT GAME)
|
||||
GA1 RMB 2 10 MASTER DIFFICULTY CONTROL 1
|
||||
GA2 RMB 2 NUMBER OF LETTERS ALLOWED TO GOD 10
|
||||
SPECFN RMB 2 RESTORE FACTORY SETTINGS
|
||||
RMB 2 CLEAR AUDIT TOTALS
|
||||
RMB 2 INITIALIZE HIGH SCORE TABLE
|
||||
RMB 2 INTIATE AUTO CYCLE
|
||||
RMB 2 ENTER ATTRACT MODE MESSAGE
|
||||
RMB 2 ENTER HIGHEST SCORE NAME
|
||||
ENDADJ EQU *
|
||||
OPMESS RMB 100 2 LINES OF 25 CHARS EACH.
|
||||
OPL1 RMB 2
|
||||
OPL2 RMB 2
|
||||
ADJSUM RMB 2
|
||||
OMESUM RMB 2
|
||||
|
||||
*
|
||||
*M A C R O S
|
||||
*
|
||||
NAP MACRO
|
||||
LDA #&1 TIME
|
||||
LDX #&2 WAKEUP ADDR
|
||||
JMP SLEEP
|
||||
ENDM
|
||||
*
|
||||
*MAKE A NEW PROCESS
|
||||
*
|
||||
NEWP MACRO
|
||||
LDX #&1 ADDR
|
||||
LDA #&2 TYPE
|
||||
JSR MKPROC
|
||||
ENDM
|
||||
*INIT PROCESS \0=SADDR
|
||||
MAKP MACRO
|
||||
JSR MAKEP
|
||||
FDB &1
|
||||
ENDM
|
||||
*MAKE A PROCESS AND OBJECT
|
||||
MKPROB MACRO
|
||||
JSR MPROB
|
||||
FDB &1,&2,&3
|
||||
ENDM
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
OPT PAG
|
||||
|
||||
LIB RRF USE EUGENES FRED +
|
||||
|
||||
HORIZ EQU $CA06
|
||||
DEST EQU $CA04
|
||||
ORIG EQU $CA02
|
||||
CONST EQU $CA01
|
||||
CONTRL EQU $CA00
|
||||
|
||||
* MESSAGE NUMBER EQUATES
|
||||
|
||||
DMFAIL EQU 0 DMA FAILURE
|
||||
OKM EQU 1 INTITIAL TESTS SAY OK
|
||||
RERRM EQU 2 TESTS SAY RAM ERROR.
|
||||
ROMERM EQU 3 TESTS SAY ROM ERROR.
|
||||
ROMOK EQU 4
|
||||
RAMOK EQU 5
|
||||
CMOK EQU 6
|
||||
CMERR EQU 7
|
||||
CMDOOR EQU 8
|
||||
SNDTEX EQU 9
|
||||
FDROMM EQU 10
|
||||
FDRAMM EQU 11
|
||||
SWTESM EQU 12 MESSAGE SAYING "SWITCH TEST"
|
||||
SWMES1 EQU 13 34-50 ARE SWITCH TEST MESSAGES
|
||||
CMTSTM EQU 30 COLOR MATRIX TEST ETC.
|
||||
BOOKM EQU 31
|
||||
AUDMES EQU 32 53-61 ARE AUDIT MESSAGES
|
||||
* 40 IS GAME OVER
|
||||
AUDM1 EQU 41 FIRST PART OF 6 DIGIT
|
||||
AUDM2 EQU 42 SECOND PART OF 6 DIGIT
|
||||
AUDM3 EQU 43 4 DIGIT AUDIT
|
||||
FROBM EQU 44 DIPLAY OF FROB MESSAGE
|
||||
CONTMS EQU 45 EXTRA MESSAGES FOR FIRST PAGE OF ADJUSTMENTS
|
||||
ADJMES EQU 46 ACTUAL MESSAGE FOR FIRST ADJUSTMENT (REPLAY)-63
|
||||
REPMM1 EQU 64
|
||||
REPMM2 EQU 65
|
||||
NOMESS EQU 66
|
||||
HIVOL EQU 67
|
||||
RECOM EQU 68
|
||||
POORP EQU 69
|
||||
CUSTM EQU 70
|
||||
YESM EQU 71
|
||||
NOM EQU 72
|
||||
EXLIB EQU 73
|
||||
LIB EQU 74
|
||||
* PLAYER X GAME OVER
|
||||
CONS EQU 76
|
||||
EXCON EQU 77
|
||||
REPMM3 EQU 78
|
||||
CMIMES EQU 79
|
||||
RESMES EQU 80
|
||||
YES1M EQU 81
|
||||
COINM1 EQU 82 82-89
|
||||
NOREPM EQU 90
|
||||
BOOKRS EQU 91
|
||||
OMESM EQU 92
|
||||
HSRESM EQU 93
|
||||
GODMES EQU 94
|
||||
CONG EQU 95
|
||||
NOWMES EQU 96
|
||||
HSINDX EQU 97
|
||||
HIGH1 EQU 98
|
||||
HIGH3 EQU 99
|
||||
ONLY5M EQU 100
|
||||
OPCNTM EQU 101
|
||||
REPMM4 EQU 102
|
||||
* PLAYER X UP
|
||||
* WAVE X
|
||||
INDMF EQU 105
|
||||
AVTIM EQU 106
|
||||
AVTEND EQU 107
|
||||
AVPLA EQU 108
|
||||
AVPLEN EQU 109
|
||||
SCRMES EQU 110
|
||||
INDMES EQU 111
|
||||
CPM1 EQU 112
|
||||
* BOTTOM COPYRITE MESSAGE 113
|
||||
* SECOND HALF OF WAVE MESSAGE 114
|
||||
MMOM EQU 115
|
||||
MDAD EQU 116
|
||||
MKID EQU 117
|
||||
MGRUNT EQU 118
|
||||
MHULK EQU 119
|
||||
MSPCU EQU 120
|
||||
MENTK EQU 121
|
||||
MBRAIN EQU 122
|
||||
COINMF EQU 123
|
||||
MPROG EQU 124
|
||||
EXTMES EQU 125
|
||||
NULMES EQU 126
|
||||
ACRM EQU 127
|
||||
TITLEM EQU 128
|
||||
FAMMM EQU 129
|
||||
|
||||
RAMTOP EQU $C000 TOP OF RAM FOR RAM TEST
|
||||
|
||||
ORG HXTAB
|
||||
EGRAM RMB 2
|
||||
EGRAM2 RMB 2
|
||||
PLRX RMB 2
|
||||
ALTBL RMB 20 PLACE FOR 20 CHAR HIGH SCORE SAVE
|
||||
|
||||
MESOUT EQU ALTBL OPERATOR MESSAGE BUFFER
|
||||
RAMALS EQU ALTBL DIAGNOSTIC/HIGH SCORE SCRATCH REF.
|
||||
CRDRAM EQU ALTBL
|
||||
|
||||
ORG ALTBL+60 DO THE BALL PAST THE OPERATOR MESS AREA
|
||||
ARAM1 RMB 392 WILLI PAGE A-MODE STUFF
|
||||
ERLIST RMB 28*2
|
||||
EREND EQU *
|
|
@ -0,0 +1,740 @@
|
|||
STTL HORIZ EXPLODES
|
||||
|
||||
*
|
||||
*INIT DMASIZ EXPLOSION DATA STRUCTURE
|
||||
*
|
||||
HXINV PSHS X,D
|
||||
LDX #EX FIRST
|
||||
STX EXFREE
|
||||
EXIN0 LEAX EXSIZE,X FIND NEXT
|
||||
STX -EXSIZE,X STORE
|
||||
CMPX #EXEND-EXSIZE BLO EXIN0
|
||||
EXIN1 LDD #0
|
||||
STD ,X
|
||||
STD EXPTR
|
||||
STD APPTR
|
||||
PULS X,D,PC
|
||||
*
|
||||
*GET A DATA BLOCK IN U FOR EXPLOSIONS
|
||||
*
|
||||
GETBLK PSHS X
|
||||
LDU EXFREE
|
||||
BEQ NOBLK NONE
|
||||
LDX ,U GET NEXT
|
||||
STX EXFREE
|
||||
LDX EXPTR GET LIST
|
||||
STX ,U APPEND US
|
||||
STU EXPTR
|
||||
CLC
|
||||
PULS X,PC RETURN IN U
|
||||
NOBLK SEC
|
||||
PULS X,PC
|
||||
*
|
||||
*GET AN APPEAR BLOCK
|
||||
*
|
||||
GETAP PSHS X
|
||||
LDU EXFREE
|
||||
BEQ NOBLK
|
||||
LDX ,U
|
||||
STX EXFREE
|
||||
LDX APPTR
|
||||
STX ,U
|
||||
STU APPTR
|
||||
CLC
|
||||
PULS X,PC
|
||||
*
|
||||
*START A DMASIZ APPEAR X=OBJECT
|
||||
*
|
||||
HAPSTV PSHS X,U,D,Y
|
||||
JSR GETAP GET A BLOCK TO USE
|
||||
BCS APBYE
|
||||
LDD OBJX,X
|
||||
LDX OPICT,X
|
||||
STD UL,U STORE UPPER LEFT (FIRST FRAME)
|
||||
LDB CENTMP
|
||||
STB XCENT,U
|
||||
SUBB UL,U SUBTRACT X UPPER LEFT
|
||||
BCS NWCEAP NO GOOD
|
||||
CMPB 0,X COMPARE
|
||||
BLO APNTOK
|
||||
NWCEAP LDB ,X GET WIDTH
|
||||
STB XOF,U SAVE OFFSET
|
||||
ADDB UL,U ADD TOP
|
||||
STB XCENT,U THIS IS
|
||||
BRA CCONTA
|
||||
APNTOK ASLB DOUBLE CENTER FOR BYTE ADJUSTMENT
|
||||
STB XOF,U
|
||||
CCONTA LDD #$4646 SUPRESS LOW GUYS, SLOW, ZERO SUPRESS, SER-BLK
|
||||
STD DMACNT,U
|
||||
LDD ,X FETCH H,W
|
||||
STD WH,U SAVE
|
||||
LDA #1 ONLY ERASE 1 ROW FIRST TIME THROUGH
|
||||
STA XHITE,U HITE FOR FIRST ERASE
|
||||
EORA #$4
|
||||
EORB #$4
|
||||
STD DMAWH,U FORMED
|
||||
LDX 2,X GET DATA POINTER
|
||||
STX PICPTR,U SAVE OBJECT DESC
|
||||
LDD #$1000 1ST FRAME SIZE
|
||||
STD XSIZER,U
|
||||
|
||||
DMOVE LEAX DATA-1,U LET X POINT AT DATA STORAGE AREA
|
||||
STX TEMP1 SAVE POINTER
|
||||
LDY PICPTR,U U POINTS AT DATA
|
||||
LDB WH+1,U ITERATE OVER THE HEIGHT
|
||||
STB TEMP2+1
|
||||
HSET2 LDX TEMP1 GET SAVED POINTER
|
||||
LEAX 1,X MOVE TO NEXT LOCATION
|
||||
STX TEMP1 AND SAVE
|
||||
LDA WH,U GET WIDTH
|
||||
STA TEMP2 SAVE AS COUNTER
|
||||
HSET1 LDA ,Y+ GET A BYTE 6
|
||||
STA ,X STORE 5
|
||||
ABX ADD HEIGHT TO GET TO NEXT 4
|
||||
ASLA 2
|
||||
ASLA 2
|
||||
ASLA 2
|
||||
ASLA 2
|
||||
STA ,X 5
|
||||
ABX 4
|
||||
DEC TEMP2 6
|
||||
BNE HSET1 3
|
||||
DEC TEMP2+1 1 LESS ROW
|
||||
BNE HSET2
|
||||
APBYE CLC
|
||||
PULS X,D,U,PC,Y
|
||||
*
|
||||
*START A DMASIZ EXPLOSION
|
||||
*X=OBJ
|
||||
HEXSTV PSHS X,U,D,Y
|
||||
JSR DMAOFF
|
||||
JSR GETBLK GET A BLOCK TO USE
|
||||
BCS APBYE DONE...NO BLOCKS
|
||||
LDD OBJX,X
|
||||
LDX OPICT,X
|
||||
STD UL,U STORE UPPER LEFT (FIRST FRAME)
|
||||
LDB CENTMP
|
||||
STB XCENT,U
|
||||
SUBB UL,U SUBTRACT X UPPER LEFT
|
||||
BCS NWCENT NO GOOD
|
||||
CMPB 0,X COMPARE
|
||||
BLO CENTOK
|
||||
NWCENT LDB ,X GET WIDTH
|
||||
STB XOF,U SAVE OFFSET
|
||||
ADDB UL,U ADD TOP
|
||||
STB XCENT,U THIS IS
|
||||
BRA CCONT
|
||||
CENTOK ASLB DOUBLE CENTER FOR BYTE ADJUSTMENT
|
||||
STB XOF,U
|
||||
CCONT LDD #$4646 SUPRESS UPPER, SLOW, SUPRESS, SER TO BLOCK
|
||||
STD DMACNT,U THIS IS DMA CONTROL BYTE
|
||||
LDD ,X FETCH H,W
|
||||
STD WH,U SAVE
|
||||
ASLA DOUBLE WIDTH FOR HEIGHT TO USE
|
||||
STA XHITE,U HITE FOR FIRST ERASE
|
||||
LDA #1 HEIGHT IS 1 FOR DMA
|
||||
EORA #$4
|
||||
EORB #$4
|
||||
STD DMAWH,U FORMED
|
||||
LDX 2,X GET DATA POINTER
|
||||
STX PICPTR,U SAVE OBJECT DESC
|
||||
LDD #$0 1ST FRAME MIN
|
||||
STD XSIZER,U
|
||||
LDA #$10 NUMBER OF FRAMES LEFT
|
||||
STA FRAMES,U
|
||||
BRA DMOVE
|
||||
|
||||
* THIS CODE DMA'S THE DMASIZONTAL LINES
|
||||
* A JUMP INTO HERE IS MADE BASED ON NUMBER OF
|
||||
* VERTICAL LINES IN OBJECT
|
||||
|
||||
BSLOOP STA ,Y Y FOR CURRENT TRANSFER
|
||||
STX DMAORG DATA POINTER
|
||||
STU DMACTL DO THE LINE
|
||||
ABX NEXT DMAORG
|
||||
ADDA XSIZE ADD SPACING
|
||||
BSSIZE EQU *-BSLOOP
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
ABX
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,Y
|
||||
STX DMAORG
|
||||
STU DMACTL
|
||||
CLI
|
||||
PULS Y,PC
|
||||
|
||||
ERLOOP STA ,U PUT HEIGHT TO ERASE DOWN
|
||||
STB ,X ERASE PLEASE
|
||||
ADDA XSIZE
|
||||
ERSIZ EQU *-ERLOOP
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
ADDA XSIZE
|
||||
|
||||
STA ,U
|
||||
STB ,X
|
||||
CLI
|
||||
RTS
|
||||
*
|
||||
*ERASE AN EXPLOSION
|
||||
*Y=DATA BLOCK
|
||||
*
|
||||
ERASE LDB XHITE,Y ACTUALLY PLOTTED
|
||||
SUBB #16 MAX OF 16
|
||||
NEGB
|
||||
LDA #ERSIZ
|
||||
MUL
|
||||
LDX #ERLOOP START OF LOOP
|
||||
ABX
|
||||
PSHS X PLACE TO JUMP
|
||||
|
||||
LDA XSIZER,Y
|
||||
STA XSIZE
|
||||
|
||||
LDD UL,Y GET UPPER LEFT
|
||||
SEI
|
||||
STB DMADES+1 HIGH HALF OF SCREEN STUFF
|
||||
|
||||
LDB DMACNT,Y SUPRESS HIGH, DMACONANT, SLOW, BLOCK DMADES
|
||||
ORAB #$10 ERASE
|
||||
ANDB #$F7 NO SUPRESS
|
||||
|
||||
LDU #0
|
||||
STU DMACON CONSTANT, AND HIGH HALF OF DMAORG
|
||||
STB DMAORG+1 LOW HALF OF ORIG
|
||||
|
||||
LDU DMAWH,Y
|
||||
STU DMASIZ
|
||||
|
||||
LDU #DMADES
|
||||
LDX #DMACTL
|
||||
|
||||
RTS
|
||||
*
|
||||
*KILL AN EXPLOSION,APPEAR
|
||||
*Y=DATA BLOCK
|
||||
*
|
||||
KILEXP LDU #EXPTR LETS WALK LIST TO FIND HIM
|
||||
KILEX2 CMPY ,U ARE WE SET
|
||||
BEQ KILEX1 YEP
|
||||
LDU ,U KEEP WALKING
|
||||
BNE KILEX2 STILL STUFF THERE
|
||||
SEI
|
||||
BRA * ERROR TRAP
|
||||
KILEX1 LDD ,Y GET GUY WE POINT AT
|
||||
STD ,U POINT AROUND US
|
||||
LDD EXFREE
|
||||
STD ,Y APPEND FREE LIST
|
||||
STY EXFREE
|
||||
LEAY ,U RETURN GUY BEFORE US TO WALK FROM
|
||||
RTS
|
||||
*
|
||||
*WRITE APPEARS
|
||||
*Y=BLOCK
|
||||
AWRITE LDD XSIZER,Y
|
||||
SUBD #$80
|
||||
CMPA XSIZER,Y ANY CHANGE?
|
||||
BNE AWRIT0 YIP.
|
||||
STB XSIZER+1,Y
|
||||
RTS
|
||||
AWRIT0 JSR ERASE ERASE THE COCK-SUCKER
|
||||
LDA STATUS SCROLL?
|
||||
BNE AWRIT1
|
||||
LDB PX+1 SCROLL PLAYER APPEAR
|
||||
STB UL+1,Y
|
||||
LDB XOF,Y
|
||||
LSRB
|
||||
ADDB PX
|
||||
STB XCENT,Y
|
||||
AWRIT1 LDA WH,Y GET WIDTH
|
||||
ASLA DOUBLE FOR PIXEL WIDTH
|
||||
DECA NO NEED TO DO END COLUMN
|
||||
STA WIDE
|
||||
|
||||
LDD XSIZER,Y GET SIZE
|
||||
SUBD #$080 SMALLEN IT
|
||||
TSTA
|
||||
BHI APGO
|
||||
LDU #APPTR
|
||||
JMP KILEX2
|
||||
*
|
||||
*WRITE EXPLOSION
|
||||
*Y=DATA BLOCK
|
||||
*
|
||||
WRITE DEC FRAMES,Y ONE LESS FRAME
|
||||
BEQ KILEXP DONE
|
||||
|
||||
LDA WH,Y GET WIDTH
|
||||
ASLA DOUBLE FOR PIXEL WIDTH
|
||||
DECA NO NEED TO DO ZEROS ON LEFT COLUMN
|
||||
STA WIDE
|
||||
|
||||
LDD XSIZER,Y
|
||||
ADDD #$100
|
||||
APGO STD XSIZER,Y
|
||||
STA XSIZE
|
||||
|
||||
LSRA 1/2 AND SAVE
|
||||
LDB XOF,Y GET OFFSET
|
||||
BNE APGO1 OBSCURE BUG CHECK (NO 1/2 UNIT FROM TOP)
|
||||
CLRA
|
||||
APGO1 STA TEMP2
|
||||
|
||||
LEAX DATA,Y POINT AT THE DATA
|
||||
|
||||
LDA XSIZE
|
||||
LDB XOF,Y GET OFFSET
|
||||
MUL DISTANCE UP FROM CENTER
|
||||
|
||||
|
||||
STD TEMP1 SAVE
|
||||
LDB XCENT,Y GET CENTER
|
||||
CLRA
|
||||
SUBD TEMP1 LETS BE GENERAL PURPOSE
|
||||
ADDB TEMP2 ADD 1/2 SIZE
|
||||
ADCA #0 AND PROPAGATE
|
||||
BNE CHK2
|
||||
CMPB #XMIN
|
||||
BHI CHK3 WERE OK
|
||||
CHK2 DEC WIDE
|
||||
ADDB XSIZE
|
||||
ADCA #0
|
||||
BNE CHK2
|
||||
CHK1 CMPB #XMIN
|
||||
BLS CHK2
|
||||
STB UL,Y STORE IN PLACE
|
||||
LDD WH,Y FIND OFFSET
|
||||
SUBA WIDE
|
||||
MUL
|
||||
ABX
|
||||
BRA CHK3A
|
||||
CHK3 STB UL,Y
|
||||
CHK3A LDA WIDE
|
||||
DECA
|
||||
LDB XSIZE FIND FILL DEFLECTION
|
||||
MUL
|
||||
ADDB UL,Y ADD FIRST POINT
|
||||
ADCA #0 FIND FULL DEFLECTION
|
||||
BEQ CHK4 AOK
|
||||
CHK5 DEC WIDE 1 LESS
|
||||
SUBB XSIZE 1 LESS DOWNWARD
|
||||
SBCA #0
|
||||
BNE CHK5
|
||||
CHK4 CMPB #XMAX
|
||||
BHS CHK5
|
||||
|
||||
* FIND "LOOP" ENTRY
|
||||
|
||||
LDA WIDE GET HEIGHT
|
||||
LBEQ KILEXP
|
||||
STA XHITE,Y SAVE FOR ERASE
|
||||
SUBA #16 16 = 0 OFFSET, 0 = 16 OFFSET
|
||||
NEGA
|
||||
LDB #BSSIZE SIZE OF ITERATION
|
||||
MUL
|
||||
ADDD #BSLOOP BEGINNING
|
||||
PSHS D,Y
|
||||
|
||||
LDU DMACNT,Y SUPRESS HIGH NIB, SLOW, SUPRESS, SER TO BLOCK
|
||||
LDD DMAWH,Y GET WH
|
||||
|
||||
SEI NO INTS BABY
|
||||
STD DMASIZ
|
||||
LDA UL+1,Y GET Y OF DMADESINATION
|
||||
STA DMADES+1
|
||||
|
||||
LDB WH+1,Y GET INITIAL Y HEIGHT (AMOUNT TO ADD TO SOURCE PTR)
|
||||
LDA UL,Y GET X WIDTH AT START
|
||||
|
||||
LDY #DMADES PLACE TO STOE STUFF
|
||||
|
||||
RTS JUMP INTO IT
|
||||
*EXPLOSION APPEAR UPDATE
|
||||
*
|
||||
HXUPDV LDY EXPTR
|
||||
BEQ APUPD
|
||||
HXUPDL JSR ERASE
|
||||
JSR WRITE
|
||||
LDY ,Y
|
||||
BNE HXUPDL
|
||||
APUPD LDY APPTR
|
||||
BEQ APUPDX
|
||||
APUPDL JSR AWRITE
|
||||
LDY ,Y
|
||||
BNE APUPDL
|
||||
APUPDX RTS
|
||||
|
||||
REPEAT EQU $C0
|
||||
ENDLET EQU $A0
|
||||
ENDCOL EQU $90
|
||||
|
||||
ON EQU $40 INDICATE COLOR IS ON
|
||||
ON2 EQU $20 COLOR 2 ON
|
||||
|
||||
L2V FCB 23 1
|
||||
FCB 1+ON2 COLOR 2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 13 2
|
||||
FCB 1+ON2
|
||||
FCB 8
|
||||
FCB 2+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 12 3
|
||||
FCB 2+ON2
|
||||
FCB 7
|
||||
FCB 1+ON2
|
||||
FCB 1+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 11 4
|
||||
FCB 1+ON2
|
||||
FCB 1+ON
|
||||
FCB 1+ON2
|
||||
FCB 6
|
||||
FCB 1+ON2
|
||||
FCB 2+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 10 5
|
||||
FCB 1+ON2
|
||||
FCB 2+ON
|
||||
FCB 1+ON2
|
||||
FCB 5
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 9 6
|
||||
FCB ON2+1
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB 4
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 8 7
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB 3
|
||||
FCB 1+ON2
|
||||
FCB 5+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 8 8
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB 2
|
||||
FCB 1+ON2
|
||||
FCB 6+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 8 9
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB 1
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 8 10
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB 1
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 2+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 8 11
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB 1
|
||||
FCB 1+ON2
|
||||
FCB 2+ON
|
||||
FCB 1+ON2
|
||||
FCB 1
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB REPEAT+4 12,13,14,15
|
||||
|
||||
FCB 8 16
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 3+ON2
|
||||
FCB 2+ON
|
||||
FCB 1+ON2
|
||||
FCB 1
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 8 17
|
||||
FCB 1+ON2
|
||||
FCB 8+ON
|
||||
FCB 1+ON2
|
||||
FCB 1
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB REPEAT+2 18,19
|
||||
|
||||
FCB 8 20
|
||||
FCB 10+ON2
|
||||
FCB 1
|
||||
FCB 1+ON2
|
||||
FCB 3+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 18 21
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB REPEAT+3 22,23,24
|
||||
|
||||
FCB ENDLET END OF THE 2 (ROUGHLY)
|
||||
|
||||
L0V FCB 11 1
|
||||
FCB 8+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 10 2
|
||||
FCB 1+ON2
|
||||
FCB 10+ON
|
||||
FCB 3+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 9 3
|
||||
FCB 1+ON2
|
||||
FCB 11+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 8 4
|
||||
FCB 1+ON2
|
||||
FCB 13+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 7 5
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 7+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 6 6
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB 7
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 5 7
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB 9
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 4 8
|
||||
FCB 1+ON2
|
||||
FCB 4+ON
|
||||
FCB 13+ON2
|
||||
FCB 4+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 3 9
|
||||
FCB 1+ON2
|
||||
FCB 23+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 2 10
|
||||
FCB 1+ON2
|
||||
FCB 25+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 1 11
|
||||
FCB 1+ON2
|
||||
FCB 27+ON
|
||||
FCB 1+ON2
|
||||
FCB ENDCOL
|
||||
|
||||
FCB 31+ON2 12
|
||||
FCB ENDCOL
|
||||
|
||||
FCB ENDLET
|
|
@ -0,0 +1,591 @@
|
|||
OPT NOL
|
||||
LIB RRFRED
|
||||
|
||||
IFNC &A,NOL
|
||||
OPT LIS
|
||||
ENDIF
|
||||
|
||||
WSTART EQU $183A
|
||||
|
||||
RAPRAM EQU OLIST+(18*OSIZE) LEAVE 18 OBJECTS FOR APPEARS
|
||||
|
||||
ORG 0 OFFSETS
|
||||
O1PT RMB 4 TOP OBJECT POINTER
|
||||
O2PT RMB 4 BOTTOM OBJECT POINTER
|
||||
APADD RMB 2 ADRESS TO EXPAND
|
||||
DATA1 RMB 14*11 DATA FOR FIRST OBJECT
|
||||
DATA2 RMB 13*11 DATA FOR SECOND OBJECT
|
||||
RAPSIZ EQU *
|
||||
|
||||
ORG LOGORG
|
||||
|
||||
JMP LOGGER
|
||||
FDB COLC
|
||||
|
||||
LOGGER JSR GNCIDE
|
||||
CLR ATFLAG NO COIN SEEN YET
|
||||
MAKP CCHECK MONITOR CREDITS
|
||||
LDX #LOGG1 LOOK....UP IN THE SKY....
|
||||
CLRA ITS A BIRD......ITS A PLANE....NO,
|
||||
JSR MSPROC ITS S U P E R P R O C E S S !
|
||||
JMP SUCIDE AND DIE
|
||||
|
||||
CCHECK LDA CREDIT
|
||||
STA PD,U
|
||||
CCHEK1 LDA CREDIT
|
||||
CMPA PD,U
|
||||
BEQ CCHEK2
|
||||
INC ATFLAG INDICATE IN COIN JUST INSERTED MODE
|
||||
JMP FAMPAG GO TO FAMILY PAGE FOR COIN
|
||||
CCHEK2 NAP 8,CCHEK1
|
||||
|
||||
RMAK FDB LR,LO,LB,LO,LT,LR,LO,LN,LC,0 ROBOTRON POINTERS
|
||||
|
||||
LOGG1 JSR SCRCLR
|
||||
JSR TABORG
|
||||
|
||||
CLR ATFLAG NORMAL PATH INTO FAMILY PAGE...NO CREDS
|
||||
JMP FAMPAG AND DO THAT PAGE
|
||||
|
||||
RUNIT CLR ATFLAG
|
||||
JSR GNCIDE
|
||||
JSR OINIT
|
||||
JSR SCRCLR
|
||||
MAKP CCHECK MONITOR CREDITS
|
||||
CLR PCRAM+$C ROBOTRON COLORS
|
||||
CLR PCRAM+$E
|
||||
|
||||
NAP 3,RUNNME MAKE SURE THE PCRAM STUFF TAKES EFFECT
|
||||
|
||||
RUNNME LDX #WSTART PLACE FOR UPPER LEFT OF LOGO
|
||||
STX PD+2,U
|
||||
|
||||
LDX #RAPRAM RAM DATA AT
|
||||
LDY #RMAK
|
||||
|
||||
RUNIT3 STY PD,U LETTER POINTER AT PD
|
||||
STX PD+4,U RAM POINTER AT PD+4
|
||||
|
||||
NAP 1,RUNIT2 SLEEPY TIME
|
||||
|
||||
RUNIT2 LDY PD+4,U GET DATA BLOCK
|
||||
LDD #$B0E 11 X 14 FOR TOP
|
||||
STD O1PT,Y
|
||||
LDB #13 11 X 13 FOR BOTTOM
|
||||
STD O2PT,Y
|
||||
LEAX DATA1,Y FIRST DATA POINTER
|
||||
STX O1PT+2,Y DATA POINTER
|
||||
LEAX DATA2,Y
|
||||
STX O2PT+2,Y
|
||||
LDX PD+2,U GET NEXT LETTER SCREEN POINTER
|
||||
STX APADD,Y AND SAVE FOR APPEAR
|
||||
|
||||
LDY PD,U GET LETTER POINTER
|
||||
LDU ,Y GET NEXT LETTER
|
||||
BEQ WDONE DONE WRITING...TIME FOR BLASTOFF!
|
||||
|
||||
CLRB NO FLAVOR PLEASE
|
||||
LDA #$CE COLORS
|
||||
PSHS X SAVE POINTER WE'RE USING
|
||||
JSR LETOUT PUT THE LETTER ON THE SCREEN
|
||||
LDU CRPROC RESTORE PROCESS BASE
|
||||
LEAX $200,X SPACER
|
||||
STX PD+2,U NEXT ONE
|
||||
|
||||
PULS X PLACE WE WROTE IT
|
||||
|
||||
LDY PD+4,U GET PLACE TO WRITE IT
|
||||
LEAY DATA1,Y POINT WHERE DATA GOES
|
||||
LDD #$B1B REAL FOR 11 BY 27
|
||||
JSR RWMOVE DO IT JACK!
|
||||
|
||||
LDX PD+4,U GET RAM POINTER
|
||||
LEAX RAPSIZ,X
|
||||
|
||||
LDY PD,U
|
||||
LEAY 2,Y
|
||||
BRA RUNIT3
|
||||
|
||||
GETBAL PSHS A
|
||||
LDA FREEPL+1 SEE IF BALLS ALLOWED
|
||||
ANDA #$0F GET THE BYTE
|
||||
PULS A,PC
|
||||
|
||||
* TIME TO STAGE THE APPEARS
|
||||
|
||||
WDONE BSR GETBAL SEE IF FANCY
|
||||
BEQ NOBA11
|
||||
|
||||
JSR SCRCLR CLEAR THE SCREEN
|
||||
|
||||
NOBA11 LDA #$7
|
||||
STA PCRAM+$C RED
|
||||
|
||||
LDA #$3F
|
||||
STA PCRAM+$E
|
||||
|
||||
BSR GETBAL
|
||||
LBEQ LOGG2 NO APPEARS NECESSARY
|
||||
|
||||
LDA STATUS
|
||||
ANDA #$FB
|
||||
STA STATUS
|
||||
|
||||
LDU CRPROC
|
||||
|
||||
LDY #RAPRAM POINT AT FIRST
|
||||
STY PD,U
|
||||
LDA #9 9 CHARS
|
||||
STA PD+2,U
|
||||
BRA WDONE1 NO EXTRA NAPPING!
|
||||
|
||||
WDONE0 NAP 8,WDONE1
|
||||
|
||||
WDONE1 LDY PD,U GET THE LETTER TO DO
|
||||
LDD APADD,Y GET THE ADDRESS OF TOP
|
||||
ADDB #13
|
||||
STB CENTMP+1
|
||||
SUBB #13
|
||||
LEAX O1PT,Y GET THE OBJECT
|
||||
|
||||
JSR AMAP DO THE APPEAR
|
||||
|
||||
ADDB #14 PULL TO THE TOP
|
||||
STB CENTMP+1
|
||||
|
||||
LEAX O2PT,Y POINT AT SECOND OBJECT
|
||||
|
||||
JSR AMAP
|
||||
|
||||
LEAY RAPSIZ,Y FORM NEXT
|
||||
STY PD,U
|
||||
DEC PD+2,U
|
||||
BNE WDONE0
|
||||
NAP $20,LOGG2 LET THEM FINISH, THEN DO OTHER STUFF
|
||||
|
||||
COLE LDA #$3F COLOR F IS YELLOW ALSO
|
||||
STA PCRAM+$F
|
||||
|
||||
LDA #$7
|
||||
STA PCRAM+$D
|
||||
|
||||
MAKP LFV MAKE THE LASER COLORER (COLOR A)
|
||||
|
||||
LDY #L2084 POINTER TO THE STUFF
|
||||
CLRB
|
||||
LDX #$395C SCREEN PTR
|
||||
LDA #$FD YELLOW PRIMARY, RED TRIM
|
||||
COLE2 LDU [,Y++]
|
||||
BEQ COLLLE DONE!
|
||||
JSR LETOUT PUT IT OUT
|
||||
BRA COLE2
|
||||
|
||||
COLLLE LDU ,Y++
|
||||
BEQ COLE1
|
||||
JSR LETOUT
|
||||
BRA COLLLE
|
||||
|
||||
COLE1 MAKP COLC
|
||||
|
||||
LDX #CEPTR
|
||||
LDY #PCRAM+$E
|
||||
LDA #1
|
||||
|
||||
COLENT LDU CRPROC
|
||||
STX PD+2,U
|
||||
STY PD+4,U
|
||||
STA PD+6,U
|
||||
|
||||
COLE4 LDX PD+2,U
|
||||
STX PD,U
|
||||
|
||||
COLE3 LDX PD,U
|
||||
LDA ,X+
|
||||
BEQ COLE4
|
||||
|
||||
STA [PD+4,U]
|
||||
STX PD,U
|
||||
LDA PD+6,U
|
||||
LDX #COLE3
|
||||
JMP SLEEP
|
||||
|
||||
COLC LDA LSEED
|
||||
BPL COLC1
|
||||
|
||||
LDA #7 RED ME
|
||||
STA PCRAM+$C
|
||||
JSR RAND
|
||||
ANDA #$7 3 BITS OF SLEEP
|
||||
INCA
|
||||
LDX #COLC1
|
||||
JMP SLEEP
|
||||
|
||||
COLC1 LDA SEED HOW RANDOM DO I FEEL?
|
||||
ANDA #$3
|
||||
BEQ COLC11 NOT VERY
|
||||
|
||||
CLR PCRAM+$C
|
||||
NAP 3,COLC11
|
||||
|
||||
COLC11 LDX #COLTAB
|
||||
JSR RAND
|
||||
ANDA #$0F
|
||||
LDA A,X
|
||||
STA PCRAM+$C
|
||||
NAP 7,COLC2
|
||||
|
||||
COLC2 LDA LSEED
|
||||
ANDA #$3
|
||||
BEQ COLC
|
||||
|
||||
CLR PCRAM+$C
|
||||
NAP 4,COLC
|
||||
|
||||
CEPTR FCB $3F,$3F,$3F,$37,$2F,$27,$1F,$17,$F,7,7,7
|
||||
FCB $F,$17,$1F,$27,$2F,$37,$3F,$3F,$3F,0
|
||||
|
||||
COLTAB FCB $FF,$C0,$C7,$1F,$7
|
||||
FCB $07,$C0,$C7
|
||||
FCB $FF,$C0,$C7,$16,$7
|
||||
FCB $FF,$C0,$C7
|
||||
|
||||
*OLTAB FCB $38,$FF,$3A,$3B,$3C
|
||||
*FCB $3D,$3E,$3F,$37,$2F,$27,$FF,$FF
|
||||
*FCB $FF,$47,$87,$87,$C7,$C7
|
||||
*FCB $C6,$C5,$CC,$CB,$CA,$DA,$E8,$F8
|
||||
*FCB $FA,$FB,$FD,$FF,$BF,$3F,$3E
|
||||
*FCB $3C,0
|
||||
|
||||
HISTRY EQU *
|
||||
|
||||
IFC &A,NOL
|
||||
|
||||
OPT LIS
|
||||
LIB RRSCRIPT
|
||||
OPT NOL
|
||||
|
||||
ELSE
|
||||
LIB RRSCRIPT
|
||||
|
||||
ENDIF
|
||||
|
||||
LOGG2 JSR OINIT REDO THE OBJECT STRUCTURE
|
||||
|
||||
LDA STATUS CAN EXPLOSIONS NOW
|
||||
ORAA #4
|
||||
STA STATUS
|
||||
|
||||
MAKP COLE COLOR E PROCESS NEEDED,(ALSO PUT OUT 2084)
|
||||
JSR CSET
|
||||
MAKP MESSER HANDLE OPERATOR MESSAGE THEN TAKE OVER
|
||||
|
||||
JSR GETBAL SEE IF INHIBITED
|
||||
BNE DOBALL
|
||||
|
||||
MAKP COL1 START THE WHITE PROCESS
|
||||
|
||||
NAP $FF,NOBA22
|
||||
NOBA22 NAP $FF,HISTRY
|
||||
|
||||
DOBALL JSR WILSUB SETUP FIRST WILL BALL
|
||||
LDA #28 WE'LL DO 28 AND THEN DIE
|
||||
LDU CRPROC
|
||||
STA PD,U COUNTER
|
||||
RUN1 LDX LASTX
|
||||
LDA BALCOL
|
||||
JSR BALOUT OUTPUT A BALL AT INITIAL PLACE
|
||||
JSR FORMX
|
||||
NAP 4,RUN2
|
||||
RUN2 DEC PD,U
|
||||
BNE RUN1
|
||||
JMP WILLME NOW SPIN EM'
|
||||
|
||||
MESSER JSR ATMCK SEE IF OPERATOR MESSAGE IS INTACT
|
||||
BEQ MESS01 YEP
|
||||
LDX DOPMES GET THE DEFAULT MESSAGE
|
||||
LDY #MESOUT 52 BYTES WORTH
|
||||
MESS02 LDD ,X++
|
||||
STD ,Y++
|
||||
CMPY #MESOUT+52
|
||||
BLO MESS02
|
||||
BRA MESS03
|
||||
MESS01 LDX #OPMESS
|
||||
LDY #MESOUT
|
||||
MESS04 JSR RCMOSD GET 2 BYTES
|
||||
STD ,Y++
|
||||
CMPY #MESOUT+52
|
||||
BLO MESS04
|
||||
MESS03 LDA MESOUT+50 GET X OF FIRST LINE
|
||||
LDB #$86 HEIGHT
|
||||
LDY #MESOUT FIRST CHAR
|
||||
BSR LINOUT PUT OUT A LINE
|
||||
LDA MESOUT+51
|
||||
LDB #$96
|
||||
LDY #MESOUT+25
|
||||
BSR LINOUT OUT LINE 2
|
||||
LDB CREDIT
|
||||
LDA #CPM1 COPYRIGHT ETC
|
||||
JSR WRD5V PUT IT OUT
|
||||
JMP SUCIDE WE'RE DONE..BYE
|
||||
|
||||
LINOUT PULS X GET RETURN ADDR
|
||||
LDU CRPROC
|
||||
STX PD,U AND SAVE
|
||||
TFR D,X POINTER IN X PLEASE
|
||||
LDA #25
|
||||
STA PD+2,U NUMBER OF LETTERS TO OUTPUT
|
||||
LDA #$66 COLOR OF OPERATOR MESSAGE
|
||||
STA TEXCOL PUT IT AWAY
|
||||
LINO1 LDA ,Y+ GET A LETTER
|
||||
JSR PR57V PRINT IT
|
||||
STX PD+3,U
|
||||
STY PD+5,U
|
||||
NAP 2,LINO2
|
||||
LINO2 LDX PD+3,U
|
||||
LDY PD+5,U
|
||||
DEC PD+2,U
|
||||
BNE LINO1
|
||||
JMP [PD,U]
|
||||
|
||||
FCC ' ROBOTRON: 2084 '
|
||||
FCC ' COPYRIGHT 1982 WILLIAMS ELECTRONICS INC. '
|
||||
FCC ' ALL RIGHTS RESERVED '
|
||||
|
||||
WILSUB JSR FINIT FIRST TWO LOCATIONS FOR INITIAL MOVE
|
||||
LDY #ARAM1
|
||||
LDA #$10 MOVE OUTER COLOR TO ARAM1
|
||||
BSR WMOVE DO IT
|
||||
JMP FINIT INIT THE DATABASE AND RETURN
|
||||
|
||||
WILLME BSR WILSUB DO SETUP STUFF
|
||||
|
||||
MAKP COL1 MAKE THE COLOR PROC
|
||||
|
||||
LDU CRPROC
|
||||
LDX #$2C0
|
||||
STX PD+6,U SAVE
|
||||
|
||||
LDA #6
|
||||
STA PD+4,U
|
||||
|
||||
LDX LASTX
|
||||
LDA BALCOL
|
||||
BRA WILL55
|
||||
|
||||
WILL1 LDA #6
|
||||
STA PD+4,U
|
||||
|
||||
WILL44 JSR FORMX
|
||||
JSR XUPD UPDATE POINTER TO MAKE THIS STUPID BEAM RUN
|
||||
|
||||
WILL55 LDY ERPTR GET HEIGHT OF GUY WE'RE GONNA ERASE
|
||||
LDB VERTCT IT MUST BE 10 LINES BEYOND US
|
||||
STB XTEMP KEEP IT HONEST
|
||||
CMPB 1,Y FIND WHICH SIDE ITS ON
|
||||
BLO WILL33 ITS ABOVE US!
|
||||
|
||||
SUBB 1,Y ITS BELOW US, SUBTRACT US
|
||||
CMPB #20
|
||||
BLS WILL55 LOOP PLEASE
|
||||
LDB XTEMP GET THE COUNTER
|
||||
CMPB #$EC ARE WE REAL LOW??
|
||||
BHS WILL55 THEN WE NEED TO LET IRQ IN TO CHANGE PCRAM
|
||||
BRA WILL66
|
||||
|
||||
WILL33 LDB 1,Y GET THE Y VALUE
|
||||
CMPB #30 IS THE Y WE'RE TRYING TO PLOT HIGH??
|
||||
BLS WILL55 THEN WAIT FOR BELOW US
|
||||
|
||||
SUBB VERTCT ELSE FIND OUT HOW HIGH?
|
||||
CMPB #30 LETS SAY WE NEED 30 LINES TO DO IT
|
||||
BLS WILL55
|
||||
|
||||
WILL66 JSR BALOFF TURN OFF THE BALL WE'RE ABOUT TO DO
|
||||
|
||||
JSR BALOUT PUT OUT THE BALL AT THAT POINT
|
||||
|
||||
LDU CRPROC
|
||||
DEC PD+4,U
|
||||
BNE WILL44
|
||||
|
||||
LDX PD+6,U TIME LEFT
|
||||
LEAX -1,X
|
||||
LBEQ HISTRY START OVER
|
||||
STX PD+6,U
|
||||
|
||||
NAP 1,WILL1
|
||||
|
||||
WMOVE PSHS Y,A SAVE THE EVENTUAL TARGET
|
||||
LDX LASTX GET THE FIRST X FOR SETUP
|
||||
PULS A
|
||||
PSHS X SAVE THE X
|
||||
CLRB
|
||||
LDU #BILL
|
||||
JSR LETOUT NOW ITS ALLEGEDLY ON SCREEN
|
||||
|
||||
PULS X,Y GET BACK X (SCREEN) Y (RAM)
|
||||
LDD #$E1B 14 X 28 IN REAL
|
||||
JMP RWMOVE DO THE XFER FROM PRIME REAL ESTATE AND RET
|
||||
|
||||
X1 EQU $5
|
||||
X2 EQU $85
|
||||
Y1 EQU $F
|
||||
Y2 EQU $CF
|
||||
|
||||
FINIT PSHS D,X
|
||||
LDA #X1
|
||||
LDB #Y1
|
||||
STD LASTX
|
||||
CLR SIDE SIDE 0
|
||||
CLR SLIDER
|
||||
LDA #$77
|
||||
STA BALCOL
|
||||
LDX #ERLIST
|
||||
STX ERPTR
|
||||
LDD #$13AF ERASE SCREEN CENTER ON FIRST PASS
|
||||
FINIT1 STD ,X++
|
||||
CMPX #EREND WHOLE LIST??
|
||||
BLO FINIT1
|
||||
PULS D,PC,X
|
||||
|
||||
FORMX PSHS B
|
||||
LDA SIDE SIDE 0,1,2 OR 3??
|
||||
ANDA #$3 LOW IS ALL THATS IMPORTANT
|
||||
DECA
|
||||
BMI SIDE0
|
||||
DECA
|
||||
BMI SIDE1
|
||||
DECA
|
||||
BMI SIDE2
|
||||
SIDE3 LDD LASTX
|
||||
SUBB #32 MOVE UP 1
|
||||
BCS BADSID
|
||||
CMPB #Y1 LOW Y??
|
||||
BHI SIDEX DONE IF HIGH
|
||||
BADSID LDA SLIDER FIND SLIDE AMOUNT
|
||||
ADDA #2 2 UNITS PER
|
||||
CMPA #16
|
||||
BLO SLID1
|
||||
CLR SLIDER
|
||||
LDA #X1+16
|
||||
LDB #Y1
|
||||
BRA SIDCH
|
||||
SLID1 STA SLIDER
|
||||
LDB #Y1
|
||||
LDA #X1
|
||||
ADDA SLIDER SHIFT OVER BY SLIDER
|
||||
BRA SIDCH NEW SIDE!
|
||||
SIDE2 LDD LASTX
|
||||
SUBA #16
|
||||
BCS SIDE25
|
||||
CMPA #X1
|
||||
BHI SIDEX
|
||||
SIDE25 LDA #X1
|
||||
LDB SLIDER
|
||||
NEGB
|
||||
ASLB
|
||||
ADDB #Y2 HIGH Y
|
||||
BRA SIDCH
|
||||
SIDE1 LDD LASTX
|
||||
ADDB #32
|
||||
CMPB #Y2
|
||||
BLO SIDEX
|
||||
LDB #Y2
|
||||
LDA #X2
|
||||
SUBA SLIDER
|
||||
BRA SIDCH
|
||||
SIDE0 LDD LASTX
|
||||
ADDA #16
|
||||
CMPA #X2
|
||||
BLO SIDEX
|
||||
LDA #X2
|
||||
LDB SLIDER
|
||||
ASLB
|
||||
ADDB #Y1
|
||||
SIDCH INC SIDE CHANGE TO A NEW SIDE
|
||||
SIDEX STD LASTX SAVE THE X
|
||||
TFR D,X RETURN IN X
|
||||
LDA BALCOL RETURN OLD COLOR
|
||||
SUBA #$11 NEXT COLOR
|
||||
BCS SIDE8
|
||||
BNE SIDE7
|
||||
SIDE8 LDA #$77
|
||||
SIDE7 STA BALCOL
|
||||
PULS B,PC
|
||||
|
||||
XUPD PSHS X
|
||||
LDX ERPTR GET CURRENT ERASE POSITION
|
||||
LEAX 2,X POINT TO NEXT
|
||||
CMPX #EREND DONE??
|
||||
BLO BALOF1 IN RANGE
|
||||
LDX #ERLIST
|
||||
BALOF1 STX ERPTR PLACE
|
||||
PULS X,PC
|
||||
|
||||
BALOFF PSHS X,D,CC
|
||||
LDX [ERPTR] GET ENTRY 32 AGO
|
||||
SEI
|
||||
STX DEST PLACE TO ERASE
|
||||
LDD #$A1F SIZE
|
||||
STD HORIZ
|
||||
CLR CONST
|
||||
LDD #ARAM1 SOURCE IS WILLY BALL
|
||||
STD ORIG
|
||||
LDA #$1E
|
||||
STA CONTRL
|
||||
PULS CC,X,D,PC
|
||||
|
||||
BALOUT PSHS CC,A
|
||||
STX [ERPTR] SAVE THIS BALLS POS. FOR ERASE MUCH LATER
|
||||
SEI
|
||||
STA CONST COLOR
|
||||
STX DEST PLACE TO GO
|
||||
LDD #$A1F
|
||||
STD HORIZ SIZE ME
|
||||
LDD #ARAM1 HALO
|
||||
STD ORIG
|
||||
LDA #$1E SLOW SER TO BLK CONST ZWS
|
||||
STA CONTRL
|
||||
|
||||
* LDD #ARAM2 W
|
||||
* STA ORIG
|
||||
|
||||
* CLR CONST CLEAR THIS FRAME
|
||||
|
||||
* LDA #$1E ZWS ETC
|
||||
* STA CONTRL
|
||||
PULS CC,A,PC
|
||||
|
||||
CSET PSHS X,Y,A
|
||||
LDX #LCTAB USE LOGO COLOR TABLE FOR 1-7
|
||||
LDY #PCRAM+1
|
||||
COLLL LDA ,X+
|
||||
STA ,Y+
|
||||
CMPY #PCRAM+8
|
||||
BLO COLLL
|
||||
PULS X,Y,A,PC
|
||||
|
||||
COL1 LDX #PCRAM+1
|
||||
STX PD+2,U
|
||||
COLL BSR CSET SET THE COLORS WE'LL USE
|
||||
COLL5 LDX PD+2,U GET WHITE POINTER
|
||||
LEAX 1,X KICK IT UP
|
||||
CMPX #PCRAM+8
|
||||
BLO COLL8
|
||||
LDX #PCRAM+1
|
||||
COLL8 STX PD+2,U
|
||||
LDA #$FF
|
||||
STA ,X
|
||||
NAP 3,COLL
|
||||
|
||||
LCTAB FCB $7 RED
|
||||
FCB $C0 BLUE
|
||||
FCB $17 ORANGE-BROWN
|
||||
FCB $30 GREEN
|
||||
FCB $C7 VIOLET
|
||||
FCB $1F ORANGE
|
||||
FCB $3F YELLOW
|
||||
|
||||
LIB RRLOGD
|
||||
|
||||
END
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,368 @@
|
|||
OPT NOL
|
||||
LIB RRF
|
||||
OPT LIS
|
||||
STTL LINKY MARQUEE EFFECT
|
||||
*
|
||||
*RAM AREA
|
||||
*
|
||||
ORG RMRAM
|
||||
UPPER RMB 1
|
||||
LOWER RMB 1
|
||||
LEFT RMB 1
|
||||
RIGHT RMB 1
|
||||
HFLAV RMB 1
|
||||
LFLAV RMB 1
|
||||
*
|
||||
*VECTORS
|
||||
*
|
||||
ORG RMORG
|
||||
JMP ENDWAV
|
||||
|
||||
ENDWAV PULS D GET RETURN
|
||||
LDU CRPROC
|
||||
STD PD,U SAVE PROCESS GUY
|
||||
MAKP WCPROC START THE COLOR PROCESS
|
||||
|
||||
LDA #$EF
|
||||
|
||||
FR33 LDX #$3B80 UPPER LEFT AT STAT
|
||||
LDY #$5A82 LOWER RIGHT AT START
|
||||
|
||||
FR22 STX PD+2,U
|
||||
STY PD+4,U
|
||||
STA PD+6,U
|
||||
|
||||
NAP 1,FR11 THE SLEEPER
|
||||
|
||||
FR11 LDX PD+2,U
|
||||
LDY PD+4,U
|
||||
LDA PD+6,U
|
||||
|
||||
LDB #2 INTERATIONS UNTIL SLEEP
|
||||
STB PD+7,U COUNTER
|
||||
|
||||
FR0 JSR MARQ
|
||||
TSTA
|
||||
BEQ FR1D IF ZERO...NO CHANGE
|
||||
CMPA #$12
|
||||
BNE FR1C
|
||||
LDA #$EF
|
||||
BRA FR1D
|
||||
FR1C CMPA #$F1
|
||||
BNE FR1B
|
||||
LDA #$DE
|
||||
BRA FR1D
|
||||
FR1B CMPA #$23 STUPID O1
|
||||
BNE FR1A
|
||||
LDA #$F1
|
||||
BRA FR1D
|
||||
FR1A SUBA #$22
|
||||
FR1D CMPX #$616 DID WE JUST DO CENTER
|
||||
BEQ FR2 YEP
|
||||
LEAX -$102,X
|
||||
LEAY $102,Y
|
||||
DEC PD+7,U
|
||||
BNE FR0
|
||||
BRA FR22 SLEEP TIME
|
||||
|
||||
* LDB TIMER SEE IF WE ARE WANTED??
|
||||
* BNE FR22 TAKE A NAP
|
||||
* BRA FR0 GET ANOTHER FRAME IN
|
||||
|
||||
FR2 TSTA DONE??
|
||||
BEQ SUCTIM
|
||||
CLRA
|
||||
BRA FR33 AND JUST CLEAR 'EM OUT
|
||||
|
||||
SUCTIM JMP [PD,U] RETURN!
|
||||
|
||||
TABTAB FDB DECTAB,$1F00 PRIMRIES TO SECONDARIES
|
||||
FDB DECT1,$3F00 PRI - SEC - WHITE
|
||||
FDB DECT2,$3F00
|
||||
FDB BRTTAB,$F00
|
||||
FDB DCATAB,$F00
|
||||
FDB BPRTAB,$F00
|
||||
FDB GYRTAB,$F00
|
||||
FDB BFTAB,$1F00
|
||||
FDB CLLTAB,$1F00
|
||||
FDB LOGTAB,$F00
|
||||
FDB BFTAB2,$1F00
|
||||
FDB DECTB4,$1F00
|
||||
|
||||
BRTTAB FCB 1,2,3,4,5,6,7,$F,$17,$1F,$2D,$34
|
||||
FCB $3A,$7A,$BA,$FA,$F8,$F0,$E0,$D0,$C0,$C0
|
||||
FCB 0,0
|
||||
|
||||
DCATAB FCB $C0,$C0,$D0,$E0,$F0,$F8,$FA,$BA,$7A,$3A
|
||||
FCB $34,$2D,$1F,$17,$F,7,6,5,4,3,2,1,0,0
|
||||
|
||||
BPRTAB FCB $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$87,$87,$47,$47
|
||||
FCB $07,$07,$47,$47,$87,$87,$C7,$C7,$C6,$C5,$C4,$C3
|
||||
FCB $C2,$C1,0,0
|
||||
|
||||
GYRTAB FCB $38,$38,$31,$3A,$3B,$3C,$2D,$2E,$2F,$27
|
||||
FCB $1F,$17,$17,$0F,$07,$07,$0F,$17,$17,$1F,$27,$2F
|
||||
FCB $2E,$2D,$2C,$3B,$3A,$39,0,0
|
||||
|
||||
BFTAB2 FCB $38,$39,$3A,$3B,$3C
|
||||
FCB $3D,$3E,$3F,$37,$2F,$27,$17,$0F
|
||||
FCB $07,$06,$05,$04,$03,$02
|
||||
FCB $01,$01,$01,$49,$CA,$DA,$E8,$F8
|
||||
FCB $F9,$FA,$FB,$FD,$FF,$BF,$3F,$3E
|
||||
FCB $C0,$C0,$C0,$07,$07,$38,$38,$38
|
||||
FCB $07,$C0,$38,$FF,$FF
|
||||
FCB 0,0
|
||||
|
||||
BFTAB FCB $38,$39,$3A,$3B,$3C
|
||||
FCB $3D,$3E,$3F,$37,$2F,$27,$1F,$17
|
||||
FCB $47,$47,$87,$87,$C7,$C7
|
||||
FCB $C6,$C5,$CC,$CB,$CA,$DA,$E8,$F8
|
||||
FCB $F9,$FA,$FB,$FD,$FF,$BF,$3F,$3E
|
||||
FCB $C0,$C0,$C0,$07,$07,$38,$38,$38
|
||||
FCB $07,$C0,$38,$FF,$FF
|
||||
FCB 0,0
|
||||
|
||||
CLLTAB FCB $38,$39,$3A,$3B,$3C
|
||||
FCB $3D,$3E,$3F,$37,$2F,$27,$1F,$17
|
||||
FCB $47,$47,$87,$87,$C7,$C7
|
||||
FCB $C6,$C5,$CC,$CB,$CA,$DA,$E8,$F8
|
||||
FCB $F9,$FA,$FB,$FD,$FF,$BF,$3F,$3E
|
||||
FCB $3C
|
||||
FCB 0,0
|
||||
|
||||
LOGTAB FCB $37,$2F,$27,$1F,$17,$47,$47,$87
|
||||
FCB $87,$C7,$C7,$C6,$C5,$CC,$CB,$CA
|
||||
FCB $C0,$D0,$98,$38,$33
|
||||
FCB 0,0
|
||||
|
||||
DECT2 FCB $07,$0F,$17,$1F,$27,$2F,$37,$3F
|
||||
FCB $3F,$7F,$7F,$BF,$BF,$FF,$FF,$FF,$BF,$BF
|
||||
FCB $7F,$7F,$3F,$3F
|
||||
FCB $3E,$3D,$3C,$3B,$3A,$39,$38,$38
|
||||
FCB $30,$28,$20,$08,$08,$49
|
||||
FCB $52,$A5,$FB,$FC,$FD,$FE,$FF,$FF
|
||||
FCB $FE,$FD,$FC,$FB,$FA,$F9,$F8
|
||||
FCB $F0,$E8
|
||||
FCB $E0,$D8,$D0,$C8,$C0,$80,$40,$01
|
||||
FCB $01,$01,$01,$02,$03
|
||||
FCB $04,$05,$06,$4F,$EF,$F7,$FF,$FF
|
||||
FCB $F7,$EF,$E7,$DF,$D7,$CF,$C7
|
||||
FCB $87,$87,$47
|
||||
FCB $47,$7,0,0
|
||||
|
||||
DECT1 FCB $07,$0F,$17,$1F,$27,$2F,$37,$3F
|
||||
FCB $3F,$7F,$7F,$BF,$BF,$FF,$FF,$FF,$BF,$BF
|
||||
FCB $7F,$7F,$3F,$3F
|
||||
FCB $3E,$3D,$3C,$3B,$3A,$39,$38,$38
|
||||
FCB $78,$78,$B8,$B8,$F8,$F8
|
||||
FCB $F9,$FA,$FB,$FC,$FD,$FE,$FF,$FF
|
||||
FCB $FE,$FD,$FC,$FB,$FA,$F9,$F8
|
||||
FCB $F0,$E8
|
||||
FCB $E0,$D8,$D0,$C8,$C0,$C1,$C2,$C3
|
||||
FCB $C4,$C5,$C6,$C7,$C7
|
||||
FCB $CF,$D7,$DF,$E7,$EF,$F7,$FF,$FF
|
||||
FCB $F7,$EF,$E7,$DF,$D7,$CF,$C7
|
||||
FCB $87,$87,$47
|
||||
FCB $47,$7,0,0
|
||||
|
||||
DECTB4 FCB $07,$0F,$17,$1F,$27,$2F,$37,$3F
|
||||
FCB $3E,$3D,$3C,$3B,$3A,$39,$38,$38
|
||||
FCB $78,$78,$B8,$B8,$F8,$F8,$F0,$E8
|
||||
FCB $E0,$D8,$D0,$C8,$C0,$80,$41,$01
|
||||
FCB $01,$02,$03,$04,$05,$06,$07,$07
|
||||
FCB $07,$7,0,0
|
||||
|
||||
DECTAB FCB $07,$0F,$17,$1F,$27,$2F,$37,$3F
|
||||
FCB $3E,$3D,$3C,$3B,$3A,$39,$38,$38
|
||||
FCB $78,$78,$B8,$B8,$F8,$F8,$F0,$E8
|
||||
FCB $E0,$D8,$D0,$C8,$C0,$C1,$C2,$C3
|
||||
FCB $C4,$C5,$C6,$C7,$C7,$87,$87,$47
|
||||
FCB $47,$7,0,0
|
||||
|
||||
WCPROC LDY #TABTAB
|
||||
PCCALL JSR RAND GET
|
||||
ANDA #$F LOOK AT LOW
|
||||
CMPA #12 0-11 PLEASE
|
||||
BHS PCCALL
|
||||
ASLA
|
||||
ASLA 4 PER
|
||||
TFR A,B
|
||||
LDX B,Y GET THE POINTER
|
||||
ADDB #2 POINT AT MASK
|
||||
JSR RAND
|
||||
ANDA B,Y MASK IT
|
||||
STX PD,U SAVE START
|
||||
LEAX A,X
|
||||
STX PD+2,U SAVE IT
|
||||
|
||||
PCSUB LDX PD+2,U GET THE POINTER INTO OUR THING
|
||||
LEAX 1,X
|
||||
TST ,X END OF LIST
|
||||
BNE PCCS1
|
||||
LDX PD,U START OVER
|
||||
PCCS1 STX PD+2,U MOVE TO NEXT
|
||||
|
||||
RCS1 LDY #PCRAM+1 FOR COLOR MATRIX
|
||||
RCS3 LDA ,X+ GET A BYTE
|
||||
BNE RCS2
|
||||
LDX PD,U START TABLE OVER
|
||||
BRA RCS3
|
||||
RCS2 STA ,Y+ STORE IT
|
||||
CMPY #PCRAM+16
|
||||
BLO RCS3 AND LOOP
|
||||
|
||||
LDB #$00 MOVING BLACK
|
||||
LDA PD+4,U
|
||||
DECA
|
||||
CMPA #$5
|
||||
BLO PCS7
|
||||
LDA #4
|
||||
PCS7 STA PD+4,U OFFSETTER
|
||||
LDX #PCRAM+1
|
||||
PCS4 STB A,X
|
||||
LEAX 5,X
|
||||
CMPX #PCRAM+16
|
||||
BLO PCS4
|
||||
NAP 1,PCSUB
|
||||
|
||||
* MARQ - DRAW A LINKY MARQUIS. PASS UPPER LEFT IN X.
|
||||
* PASS LOWER RIGHT IN Y.
|
||||
* RANGES ARE INCLUSIVE. LOWER-UPPER MUST BE EVEN (ODD INCLUSIVE)
|
||||
* A CONTAINS THE HIGH AND LOW FLAVOR COLORS (<OUTER><INNER>)
|
||||
|
||||
MARQ PSHS X,Y,D,U
|
||||
ANDA #$F0
|
||||
STA HFLAV SAVE FLAVOR COLORS
|
||||
LDA ,S
|
||||
ANDA #$0F
|
||||
STA LFLAV
|
||||
TFR X,D
|
||||
STA LEFT
|
||||
STB UPPER
|
||||
TFR Y,D
|
||||
STA RIGHT
|
||||
STB LOWER
|
||||
SUBB UPPER LOWER-UPPER ODD???
|
||||
RORB CHECK
|
||||
BCC MARQ1 NOPE
|
||||
DEC LOWER NOT THAT LOW...OK?
|
||||
|
||||
MARQ1 JSR GHIGH GET HIGH DUPED BYTE IN B
|
||||
LDA UPPER GET THE UPPER
|
||||
JSR HHIGH HIGH PART OF TOP DMASIZONTAL LINE
|
||||
INCA
|
||||
JSR GLOW
|
||||
BSR HLOW LOW PART
|
||||
*
|
||||
LDA LOWER
|
||||
JSR GHIGH
|
||||
BSR HHIGH 1 LESS FOR GEN PURP
|
||||
DECA
|
||||
JSR GLOW
|
||||
BSR HLOW
|
||||
*
|
||||
LDA LEFT LEFT BYTE
|
||||
JSR GNORM
|
||||
BSR VHIGH HIGH FLAVOR STUFF IN A VERT LINE
|
||||
*
|
||||
LDA RIGHT
|
||||
JSR GFLIP
|
||||
BSR VHIGH
|
||||
|
||||
MAR11 PULS U,D,X,Y,PC
|
||||
|
||||
* VHIGH - PLOT VERTICAL LINE FROM [UPPER TO LOWER]
|
||||
* CONSISTING OF EVERY OTHER BYTE GETTING THE HIGH NIBBLE COLOR
|
||||
* A HAS THE X TO USE
|
||||
|
||||
VHIGH PSHS D,X,CC
|
||||
BSR SETUPV SETUP X,B
|
||||
SEI
|
||||
STA DMACON STORE CONSTANT
|
||||
LDA #5 1 WIDE, B HIGH
|
||||
EORB #4
|
||||
STD DMASIZ
|
||||
LDD #0
|
||||
STD DMAORG FROM NOWHERE
|
||||
STX DMADES DESTINATION PEGGED
|
||||
LDA #$12 WRITE THE DMACONANT LINES
|
||||
STA DMACTL
|
||||
PULS CC,D,X,PC
|
||||
|
||||
SETUPV PSHS B
|
||||
LDB UPPER GET UPPER Y
|
||||
INCB START 1 AFTER
|
||||
TFR D,X THIS IS PONTER
|
||||
LDB LOWER
|
||||
SUBB UPPER THIS IS GUARANTEED EVEN
|
||||
DECB EXCLUSIVE PLEASE
|
||||
PULS A,PC
|
||||
|
||||
* HHIGH - THIS ROUTINE PLOTS HIGH COLOR IN THE HIGH HALF OF
|
||||
* CONSECUTIVE DMASIZONTAL PIXELS GOING FROM
|
||||
* [LEFT TO RIGHT] AT THE HEIGHT GIVEN IN REGISTER A.
|
||||
|
||||
HHIGH PSHS X,D,CC
|
||||
BSR SETUPH SETUP COUNT IN B, X POINTS AT FIRST BYTE
|
||||
INCB ADD 1 TO MAKE IT INCLUSIVE
|
||||
HHIGH1 SEI
|
||||
STA DMACON STORE THE CONSTANT
|
||||
EORB #4
|
||||
STB DMASIZ
|
||||
LDA #5
|
||||
STA DMASIZ+1 1 HIGH
|
||||
STD DMAORG GOOD ORIGINATION
|
||||
STX DMADES
|
||||
LDA #$12
|
||||
STA DMACTL
|
||||
PULS X,D,PC,CC
|
||||
|
||||
HLOW PSHS X,D,CC
|
||||
BSR SETUPH SETUP
|
||||
DECB EXCLUSIVE
|
||||
LEAX $100,X MOVE OVER 1
|
||||
BRA HHIGH1 AND GO
|
||||
|
||||
SETUPH PSHS B SAVE COLOR
|
||||
TFR A,B MOVE Y OVER
|
||||
LDA LEFT GET LEFT X
|
||||
TFR D,X MAKE POINTER
|
||||
LDB RIGHT
|
||||
SUBB LEFT FIND DIFFERENCE (EXCLUSIVE
|
||||
PULS A,PC AND RETURN
|
||||
|
||||
GHIGH LDB HFLAV GET HIGH FLAVOR
|
||||
LSRB
|
||||
LSRB
|
||||
LSRB
|
||||
LSRB
|
||||
ORAB HFLAV HIGH FLAVOR IN BOTH
|
||||
RTS
|
||||
|
||||
GLOW LDB LFLAV
|
||||
ASLB
|
||||
ASLB
|
||||
ASLB
|
||||
ASLB
|
||||
ORAB LFLAV
|
||||
RTS
|
||||
|
||||
GNORM LDB HFLAV
|
||||
ORAB LFLAV
|
||||
RTS
|
||||
|
||||
GFLIP LDB HFLAV
|
||||
LSRB
|
||||
LSRB
|
||||
LSRB
|
||||
LSRB
|
||||
PSHS B
|
||||
LDB LFLAV
|
||||
ASLB
|
||||
ASLB
|
||||
ASLB
|
||||
ASLB
|
||||
ORAB ,S+
|
||||
RTS
|
||||
|
||||
END
|
|
@ -0,0 +1,717 @@
|
|||
OPT NOL
|
||||
LIB RRF
|
||||
OPT LIS
|
||||
STTL ROBOTS AND POSTS
|
||||
ORG RPORG
|
||||
JMP RINITV
|
||||
JMP PSINV
|
||||
FDB PSTP1V
|
||||
JMP OPONV
|
||||
JMP OPON1V
|
||||
JMP SAFTYV
|
||||
FDB RWDP1
|
||||
FDB PSTP1V
|
||||
JMP PKPROC
|
||||
*
|
||||
*SOUND TABLE
|
||||
*
|
||||
RBSND FCB $D0,$01,$0C,$14,$01,$08,$17,0 ROBOT HIT
|
||||
RMVSND FCB $C0,$01,$0A,$06,0 ROBOT MOVE
|
||||
PSKSND FCB $D0,$01,$08,$17,0 POST KILL
|
||||
*
|
||||
*INITIALIZE ROBOTS
|
||||
*
|
||||
RINITV LDA ROBCNT
|
||||
PSHS A
|
||||
BEQ RINX
|
||||
RINL JSR GETROB
|
||||
LDD #RWDP1
|
||||
STD OPICT,X
|
||||
STD OLDPIC,X
|
||||
BSR SAFTY
|
||||
RINL0 JSR RANDXY
|
||||
CMPB XTEMP
|
||||
BLS RINL1
|
||||
CMPB XTEMP+1
|
||||
BHS RINL1
|
||||
CMPA XTEMP2
|
||||
BLS RINL1
|
||||
CMPA XTEMP2+1
|
||||
BLO RINL0
|
||||
RINL1 STD OBJX,X
|
||||
STA OX16,X
|
||||
STB OY16,X
|
||||
TFR D,U
|
||||
LDD [OPICT,X]
|
||||
JSR ASCAN
|
||||
BNE RINL0
|
||||
LDA ROBSPD
|
||||
JSR RANDU
|
||||
STA ODATA,X
|
||||
LDD #ROBKIL
|
||||
STD OCVECT,X
|
||||
BSR OPON1 TURN HIM ON WITH PHONY COLOR
|
||||
DEC ,S
|
||||
BNE RINL
|
||||
STX ROBST SAVE START OF LIST
|
||||
MAKP ROBOT
|
||||
RINX PULS A,PC
|
||||
*
|
||||
*GRUNT SAFTY MARGIN
|
||||
*
|
||||
SAFTYV PSHS X,U,D
|
||||
JSR PLINDX
|
||||
LDA PWAV,X
|
||||
CMPA #10
|
||||
BLO SAF0
|
||||
LDA #6
|
||||
BRA SAF1
|
||||
SAF0 CMPA #5
|
||||
BLS SAF1
|
||||
LDA #5
|
||||
SAF1 LDX #SAFTAB-4
|
||||
ASLA
|
||||
ASLA
|
||||
LEAX A,X
|
||||
LDD ,X
|
||||
STD XTEMP SET UP LIMITS
|
||||
LDD 2,X
|
||||
STD XTEMP2
|
||||
PULS D,X,U,PC
|
||||
SAFTAB FCB $40,$B0,$1A,$7A
|
||||
FCB $48,$A8,$1A,$7A
|
||||
FCB $50,$A0,$2A,$6A
|
||||
FCB $54,$9D,$30,$60
|
||||
FCB $5D,$96,$35,$59
|
||||
FCB $62,$94,$38,$5C
|
||||
*
|
||||
*ON PICTURE OF OBJECT
|
||||
*X=OBJ, A=COL
|
||||
OPON1V PSHS D,Y
|
||||
LDA #FONCOL
|
||||
BRA OPON2
|
||||
OPONV PSHS D,Y
|
||||
OPON2 STA XTEMP2
|
||||
LDD OBJX,X
|
||||
LDY OPICT,X
|
||||
JSR MPCTON
|
||||
PULS D,Y,PC
|
||||
*
|
||||
*INITIALIZE POSTS
|
||||
*
|
||||
PSINV PSHS X,Y,U
|
||||
LDX #PSLIST
|
||||
STX PSTIN
|
||||
LEAY ,X
|
||||
PSI00 CLR ,X+
|
||||
CMPX #PSLEND
|
||||
BLO PSI00
|
||||
LDA PSTCNT
|
||||
PSHS A
|
||||
BEQ PSIX
|
||||
PSIL JSR GETPST
|
||||
LDD PSTANI
|
||||
STD OPICT,X
|
||||
STD OLDPIC,X
|
||||
BSR SAFTYV
|
||||
LDD XTEMP
|
||||
ADDD #$03FC ADJUST BOUNDS
|
||||
STD XTEMP
|
||||
LDD XTEMP2
|
||||
ADDD #$02FD
|
||||
STD XTEMP2
|
||||
PSI0 JSR RANDXY
|
||||
CMPB XTEMP
|
||||
BLS PSI1
|
||||
CMPB XTEMP+1
|
||||
BHS PSI1
|
||||
CMPA XTEMP2
|
||||
BLS PSI1
|
||||
CMPA XTEMP2+1
|
||||
BLO PSI0
|
||||
PSI1 STD OBJX,X
|
||||
STA OX16,X
|
||||
STB OY16,X
|
||||
LDU OBJX,X
|
||||
LDD [OPICT,X]
|
||||
JSR ASCAN
|
||||
BNE PSI0
|
||||
LDD #PSTKIL
|
||||
STD OCVECT,X
|
||||
STY OBJID,X SAVE REF POINTER FOR KILL
|
||||
LEAY 2,Y
|
||||
JSR OPON1 ON MONO PHONY
|
||||
DEC ,S
|
||||
BNE PSIL
|
||||
PSIX PULS A,X,Y,U,PC
|
||||
*
|
||||
*ROBOT PROCESS
|
||||
*
|
||||
ROBOT LDA STATUS
|
||||
BITA #$7F
|
||||
BEQ ROB0A
|
||||
NAP 2,ROBOT
|
||||
ROB0A NAP 10,ROB0
|
||||
ROB0 CLRB
|
||||
LDA ROBCNT
|
||||
PSHS D
|
||||
BEQ ROBXXX
|
||||
LDX ROBST
|
||||
BRA ROB1A
|
||||
ROB1 LDX ,X
|
||||
ROB1A DEC ODATA,X TIME TO MOVE?
|
||||
BEQ ROB1B
|
||||
DEC ,S
|
||||
BNE ROB1
|
||||
ROBXXX BRA ROBX ALL DONE
|
||||
ROB1B LDA ROBSPD
|
||||
JSR RANDU
|
||||
STA ODATA,X
|
||||
LDB OY16,X
|
||||
SUBB PY16 SEEK PLAYER
|
||||
BHI ROB2
|
||||
CMPB #$FE
|
||||
BHI ROB3
|
||||
LDB #4
|
||||
BRA ROB2A
|
||||
ROB2 CMPB #2
|
||||
BLO ROB3
|
||||
LDB #-4
|
||||
ROB2A ADDB OY16,X
|
||||
CMPB #YMAX-12
|
||||
BHI ROB3
|
||||
CMPB #YMIN
|
||||
BLO ROB3
|
||||
STB OY16,X
|
||||
ROB3 LDB OX16,X
|
||||
SUBB PX16
|
||||
BHI ROB4
|
||||
LDB #2
|
||||
BRA ROB4A
|
||||
ROB4 CMPB #1
|
||||
BLO ROB5
|
||||
LDB #-2
|
||||
ROB4A ADDB OX16,X
|
||||
CMPB #XMAX-5
|
||||
BHI ROB5
|
||||
CMPB #XMIN
|
||||
BLO ROB5
|
||||
STB OX16,X
|
||||
ROB5 LDD OPICT,X
|
||||
ADDD #4
|
||||
CMPD #RWDP4
|
||||
BLS ROB11
|
||||
LDD #RWDP1
|
||||
ROB11 STD OPICT,X
|
||||
JSR DMAOFN
|
||||
INC 1,S MAKE A SOUND
|
||||
LDU OPICT,X
|
||||
LDD OBJX,X
|
||||
PSHS X
|
||||
LDX #PPTR
|
||||
JSR COL0
|
||||
PULS X
|
||||
BEQ ROBLP
|
||||
LDY ,X
|
||||
BSR ROBKIL
|
||||
DEC ,S
|
||||
BEQ ROBX ALL DONE
|
||||
LEAX ,Y
|
||||
JMP ROB1A
|
||||
ROBLP DEC ,S
|
||||
LBNE ROB1
|
||||
ROBX LDD ,S++
|
||||
BEQ ROBXX NO SOUND NEEDED
|
||||
LDD #RMVSND
|
||||
JSR SNDLD
|
||||
ROBXX NAP 4,ROB0
|
||||
*KILL ROBOT
|
||||
ROBKIL LDA PCFLG DONT BLOW ON PLAYER
|
||||
BNE ROBKON
|
||||
JSR EXST BLOW HIM UP!!!!
|
||||
CMPX ROBST CHECK FOR START CHANGE
|
||||
BNE ROBK0
|
||||
LDD ,X
|
||||
STD ROBST
|
||||
ROBK0 JSR KILROB
|
||||
LDD #$0110
|
||||
JSR SCORE
|
||||
LDD #RBSND
|
||||
JSR SNDLD
|
||||
LDB #$E0 SPEED EM UP
|
||||
LDA ROBSPD
|
||||
MUL
|
||||
CMPA RMXSPD
|
||||
BLO ROBK1
|
||||
STA ROBSPD
|
||||
ROBK1 DEC ROBCNT
|
||||
ROBKX RTS
|
||||
ROBKON JMP DMAON ON GRUNT...SEE WHAT YOU HIT
|
||||
*KILL POST
|
||||
PSTKIL LDA PCFLG
|
||||
BNE PSTKON
|
||||
JSR KILPST
|
||||
LDD #0
|
||||
STD [OBJID,X] WIPE OUT REFRESH
|
||||
JSR DMAOFF
|
||||
DEC PSTCNT
|
||||
LDD FREE
|
||||
BEQ PSTKX OUT OF PROCS
|
||||
LEAU ,X
|
||||
LDX ,X
|
||||
STX OFREE
|
||||
MAKP PKPROC
|
||||
STU PD,X
|
||||
LDD #PSKSND
|
||||
JMP SNDLD
|
||||
PSTKX RTS
|
||||
PSTKON LDA PSTCOL
|
||||
JMP OPON TURN HIM ON
|
||||
*
|
||||
*POST KILL PROCESS
|
||||
*
|
||||
PKPROC LDX PD,U
|
||||
LDY OPICT,X
|
||||
BRA PKPR2
|
||||
PKPR1 LDX PD,U
|
||||
LDY OPICT,X
|
||||
LEAY 5,Y
|
||||
LDA ,Y
|
||||
BNE PKPR2
|
||||
JSR DMAOFF ITS ALL OVER....
|
||||
LDD OFREE
|
||||
STD ,X
|
||||
STX OFREE
|
||||
JMP SUCIDE
|
||||
PKPR2 STY OPICT,X
|
||||
JSR DMAOFN
|
||||
LDA 4,Y SLEEP TIME VARIABLE SLEEP
|
||||
LDX #PKPR1
|
||||
JMP SLEEP
|
||||
*
|
||||
*POST IMAGES
|
||||
*
|
||||
PSTP1V EQU *
|
||||
*STAR
|
||||
PSP1A FCB 5,9 W,H
|
||||
FDB PSD1A DATA ADDR
|
||||
FCB 6 SLEEP TIME
|
||||
PSP2A FCB 5,9
|
||||
FDB PSD2A
|
||||
FCB 3
|
||||
PSP3A FCB 5,9
|
||||
FDB PSD3A
|
||||
FCB 2,0 END OF SEQUENCE
|
||||
*SNOWFLAKE
|
||||
PSP1B FCB 5,9 W,H
|
||||
FDB PSD1B DATA ADDR
|
||||
FCB 6 SLEEP TIME
|
||||
PSP2B FCB 5,9
|
||||
FDB PSD2B
|
||||
FCB 3
|
||||
PSP3B FCB 5,9
|
||||
FDB PSD3B
|
||||
FCB 2,0 END OF SEQUENCE
|
||||
*SQUARE
|
||||
PSP1C FCB 5,9 W,H
|
||||
FDB PSD1C DATA ADDR
|
||||
FCB 6 SLEEP TIME
|
||||
PSP2C FCB 5,9
|
||||
FDB PSD2C
|
||||
FCB 3
|
||||
PSP3C FCB 5,9
|
||||
FDB PSD3C
|
||||
FCB 2,0 END OF SEQUENCE
|
||||
*TRIANGLE
|
||||
PSP1D FCB 5,9 W,H
|
||||
FDB PSD1D DATA ADDR
|
||||
FCB 6 SLEEP TIME
|
||||
PSP2D FCB 5,9
|
||||
FDB PSD2D
|
||||
FCB 3
|
||||
PSP3D FCB 5,9
|
||||
FDB PSD3D
|
||||
FCB 2,0 END OF SEQUENCE
|
||||
*VERT. BAR
|
||||
PSP1E FCB 3,9 W,H
|
||||
FDB PSD1E DATA ADDR
|
||||
FCB 6 SLEEP TIME
|
||||
PSP2E FCB 3,9
|
||||
FDB PSD2E
|
||||
FCB 3
|
||||
PSP3E FCB 3,9
|
||||
FDB PSD3E
|
||||
FCB 2,0 END OF SEQUENCE
|
||||
*DIAMOND
|
||||
PSP1F FCB 5,9 W,H
|
||||
FDB PSD1F DATA ADDR
|
||||
FCB 6 SLEEP TIME
|
||||
PSP2F FCB 5,9
|
||||
FDB PSD2F
|
||||
FCB 3
|
||||
PSP3F FCB 5,9
|
||||
FDB PSD3F
|
||||
FCB 2,0 END OF SEQUENCE
|
||||
*2084 POST
|
||||
PSP1G FCB 9,7
|
||||
FDB PSD1G
|
||||
FCB 6
|
||||
PSP2G FCB 9,7
|
||||
FDB PSD2G
|
||||
FCB 3
|
||||
PSP3G FCB 9,7
|
||||
FDB PSD3G
|
||||
FCB 2,0
|
||||
*SPIKE
|
||||
PSP1H FCB 5,9
|
||||
FDB PSD1H
|
||||
FCB 6
|
||||
PSP2H FCB 5,9
|
||||
FDB PSD2H
|
||||
FCB 3
|
||||
PSP3H FCB 5,9
|
||||
FDB PSD3H
|
||||
FCB 2,0
|
||||
*SPIRAL
|
||||
PSP1I FCB 5,10
|
||||
FDB PSD1I
|
||||
FCB 6
|
||||
PSP2I FCB 5,10
|
||||
FDB PSD2I
|
||||
FCB 3
|
||||
PSP3I FCB 5,10
|
||||
FDB PSD3I
|
||||
FCB 2,0
|
||||
|
||||
IFC &A,NOL
|
||||
OPT NOL
|
||||
ENDIF
|
||||
*STAR PICTS
|
||||
PSD1A EQU *
|
||||
FCB $00,$00,$90,$00,$00
|
||||
FCB $09,$00,$90,$09,$00
|
||||
FCB $00,$90,$90,$90,$00
|
||||
FCB $00,$09,$99,$00,$00
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $00,$09,$99,$00,$00
|
||||
FCB $00,$90,$90,$90,$00
|
||||
FCB $09,$00,$90,$09,$00
|
||||
FCB $00,$00,$90,$00,$00
|
||||
PSD2A EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$A0,$A0,$A0,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $0A,$AA,$AA,$AA,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$A0,$A0,$A0,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
PSD3A EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
*SNOWFLAKE PICTS
|
||||
PSD1B EQU *
|
||||
FCB $00,$00,$90,$00,$00
|
||||
FCB $09,$09,$09,$09,$00
|
||||
FCB $00,$90,$90,$90,$00
|
||||
FCB $09,$09,$09,$09,$00
|
||||
FCB $90,$90,$00,$90,$90
|
||||
FCB $09,$09,$09,$09,$00
|
||||
FCB $00,$90,$90,$90,$00
|
||||
FCB $09,$09,$09,$09,$00
|
||||
FCB $00,$00,$90,$00,$00
|
||||
PSD2B EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$0A,$0A,$00,$00
|
||||
FCB $00,$A0,$A0,$A0,$00
|
||||
FCB $0A,$0A,$0A,$0A,$00
|
||||
FCB $00,$A0,$A0,$A0,$00
|
||||
FCB $00,$0A,$0A,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
PSD3B EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
*SQUARE PICTS
|
||||
PSD1C EQU *
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $99,$99,$99,$99,$90
|
||||
PSD2C EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $0A,$AA,$AA,$AA,$00
|
||||
FCB $0A,$AA,$AA,$AA,$00
|
||||
FCB $0A,$AA,$AA,$AA,$00
|
||||
FCB $0A,$AA,$AA,$AA,$00
|
||||
FCB $0A,$AA,$AA,$AA,$00
|
||||
FCB $0A,$AA,$AA,$AA,$00
|
||||
FCB $0A,$AA,$AA,$AA,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
PSD3C EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
*TRIANGLE PICT
|
||||
PSD1D EQU *
|
||||
FCB $00,$00,$00,$00,$90
|
||||
FCB $00,$00,$00,$09,$90
|
||||
FCB $00,$00,$00,$99,$90
|
||||
FCB $00,$00,$09,$99,$90
|
||||
FCB $00,$00,$99,$99,$90
|
||||
FCB $00,$09,$99,$99,$90
|
||||
FCB $00,$99,$99,$99,$90
|
||||
FCB $09,$99,$99,$99,$90
|
||||
FCB $99,$99,$99,$99,$90
|
||||
PSD2D EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$0A,$00
|
||||
FCB $00,$00,$00,$AA,$00
|
||||
FCB $00,$00,$0A,$AA,$00
|
||||
FCB $00,$00,$AA,$AA,$00
|
||||
FCB $00,$0A,$AA,$AA,$00
|
||||
FCB $00,$AA,$AA,$AA,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
PSD3D EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$A0,$00
|
||||
FCB $00,$00,$0A,$A0,$00
|
||||
FCB $00,$00,$AA,$A0,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
*VERT. BAR PICT
|
||||
PSD1E EQU *
|
||||
FCB $99,$99,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $99,$99,$90
|
||||
PSD2E EQU *
|
||||
FCB $00,$00,$00
|
||||
FCB $0A,$AA,$00
|
||||
FCB $0A,$AA,$00
|
||||
FCB $0A,$AA,$00
|
||||
FCB $0A,$AA,$00
|
||||
FCB $0A,$AA,$00
|
||||
FCB $0A,$AA,$00
|
||||
FCB $0A,$AA,$00
|
||||
FCB $00,$00,$00
|
||||
PSD3E EQU *
|
||||
FCB $00,$00,$00
|
||||
FCB $00,$00,$00
|
||||
FCB $00,$A0,$00
|
||||
FCB $00,$A0,$00
|
||||
FCB $00,$A0,$00
|
||||
FCB $00,$A0,$00
|
||||
FCB $00,$A0,$00
|
||||
FCB $00,$00,$00
|
||||
FCB $00,$00,$00
|
||||
*DIAMOND
|
||||
PSD1F EQU *
|
||||
FCB $00,$00,$90,$00,$00
|
||||
FCB $00,$09,$99,$00,$00
|
||||
FCB $00,$99,$99,$90,$00
|
||||
FCB $09,$99,$99,$99,$00
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $09,$99,$99,$99,$00
|
||||
FCB $00,$99,$99,$90,$00
|
||||
FCB $00,$09,$99,$00,$00
|
||||
FCB $00,$00,$90,$00,$00
|
||||
PSD2F EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$AA,$AA,$A0,$00
|
||||
FCB $0A,$AA,$AA,$AA,$00
|
||||
FCB $00,$AA,$AA,$A0,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
PSD3F EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
*
|
||||
*2084
|
||||
*
|
||||
PSD1G EQU *
|
||||
FCB $99,$99,$99,$99,$99,$99,$99,$99,$90
|
||||
FCB $90,$00,$90,$00,$90,$00,$90,$90,$90
|
||||
FCB $99,$90,$90,$90,$90,$90,$90,$90,$90
|
||||
FCB $90,$00,$90,$90,$90,$00,$90,$00,$90
|
||||
FCB $90,$99,$90,$90,$90,$90,$99,$90,$90
|
||||
FCB $90,$00,$90,$00,$90,$00,$99,$90,$90
|
||||
FCB $99,$99,$99,$99,$99,$99,$99,$99,$90
|
||||
PSD2G EQU *
|
||||
FCB $00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
FCB $0A,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$00
|
||||
FCB $0A,$A0,$A0,$A0,$A0,$A0,$A0,$AA,$00
|
||||
FCB $0A,$00,$A0,$A0,$A0,$00,$00,$0A,$00
|
||||
FCB $0A,$AA,$A0,$A0,$A0,$A0,$AA,$AA,$00
|
||||
FCB $0A,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$00
|
||||
FCB $00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
PSD3G EQU *
|
||||
FCB $00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
FCB $00,$0A,$AA,$AA,$AA,$AA,$AA,$00,$00
|
||||
FCB $00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
*SPIKE
|
||||
PSD1H EQU *
|
||||
FCB $00,$00,$90,$00,$00
|
||||
FCB $09,$99,$99,$99,$00
|
||||
FCB $09,$99,$09,$99,$00
|
||||
FCB $09,$90,$00,$99,$00
|
||||
FCB $99,$00,$00,$09,$90
|
||||
FCB $09,$90,$00,$99,$00
|
||||
FCB $09,$99,$09,$99,$00
|
||||
FCB $09,$99,$99,$99,$00
|
||||
FCB $00,$00,$90,$00,$00
|
||||
PSD2H EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$AA,$AA,$A0,$00
|
||||
FCB $00,$AA,$0A,$A0,$00
|
||||
FCB $0A,$A0,$00,$AA,$00
|
||||
FCB $00,$AA,$0A,$A0,$00
|
||||
FCB $00,$AA,$AA,$A0,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
PSD3H EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$AA,$0A,$A0,$00
|
||||
FCB $00,$0A,$AA,$00,$00
|
||||
FCB $00,$00,$A0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
*SPIRAL DATA
|
||||
PSD1I EQU *
|
||||
FCB $99,$99,$99,$99,$90
|
||||
FCB $90,$00,$00,$00,$90
|
||||
FCB $90,$99,$99,$90,$90
|
||||
FCB $90,$90,$00,$90,$90
|
||||
FCB $90,$90,$90,$90,$90
|
||||
FCB $90,$99,$90,$90,$90
|
||||
FCB $90,$00,$00,$90,$90
|
||||
FCB $99,$99,$99,$90,$90
|
||||
FCB $00,$00,$00,$00,$90
|
||||
FCB $09,$99,$99,$99,$90
|
||||
PSD2I EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$AA,$AA,$A0,$00
|
||||
FCB $00,$A0,$00,$A0,$00
|
||||
FCB $A0,$A0,$A0,$A0,$00
|
||||
FCB $A0,$AA,$A0,$A0,$00
|
||||
FCB $A0,$00,$00,$A0,$00
|
||||
FCB $AA,$AA,$AA,$A0,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
PSD3I EQU *
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$AA,$AA,$A0,$00
|
||||
FCB $00,$A0,$00,$A0,$00
|
||||
FCB $00,$A0,$A0,$A0,$00
|
||||
FCB $00,$AA,$A0,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
*
|
||||
*ROBOT PITCHERS
|
||||
*
|
||||
RWDP1 FCB 5,13
|
||||
FDB RWDD1
|
||||
RWDP2 FCB 5,13
|
||||
FDB RWDD2
|
||||
RWDP3 FCB 5,13
|
||||
FDB RWDD1
|
||||
RWDP4 FCB 5,13
|
||||
FDB RWDD3
|
||||
RWDD1 FCB $00,$01,$11,$00,$00
|
||||
FCB $00,$66,$66,$60,$00
|
||||
FCB $00,$CC,$CC,$C0,$00
|
||||
FCB $00,$01,$11,$00,$00
|
||||
FCB $11,$91,$11,$91,$10
|
||||
FCB $51,$19,$99,$11,$50
|
||||
FCB $50,$11,$91,$10,$50
|
||||
FCB $50,$01,$11,$00,$50
|
||||
FCB $00,$01,$11,$00,$00
|
||||
FCB $00,$11,$01,$10,$00
|
||||
FCB $00,$11,$01,$10,$00
|
||||
FCB $05,$55,$05,$55,$00
|
||||
FCB $00,$00,$00,$00,$00
|
||||
RWDD2 FCB $00,$01,$11,$00,$00
|
||||
FCB $00,$66,$66,$60,$00
|
||||
FCB $00,$CC,$CC,$C0,$00
|
||||
FCB $00,$01,$11,$00,$00
|
||||
FCB $11,$91,$11,$91,$10
|
||||
FCB $51,$19,$99,$11,$50
|
||||
FCB $50,$11,$91,$10,$50
|
||||
FCB $50,$01,$11,$00,$50
|
||||
FCB $00,$11,$11,$00,$00
|
||||
FCB $00,$11,$01,$10,$00
|
||||
FCB $05,$55,$01,$10,$00
|
||||
FCB $00,$00,$01,$10,$00
|
||||
FCB $00,$00,$05,$55,$00
|
||||
RWDD3 FCB $00,$01,$11,$00,$00
|
||||
FCB $00,$66,$66,$60,$00
|
||||
FCB $00,$CC,$CC,$C0,$00
|
||||
FCB $00,$01,$11,$00,$00
|
||||
FCB $11,$91,$11,$91,$10
|
||||
FCB $51,$19,$99,$11,$50
|
||||
FCB $50,$11,$91,$10,$50
|
||||
FCB $50,$01,$11,$00,$50
|
||||
FCB $00,$01,$11,$10,$00
|
||||
FCB $00,$11,$01,$10,$00
|
||||
FCB $00,$11,$05,$55,$00
|
||||
FCB $00,$11,$00,$00,$00
|
||||
FCB $05,$55,$00,$00,$00
|
||||
END
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,811 @@
|
|||
OPT NOL
|
||||
LIB RRFRED
|
||||
OPT LIS
|
||||
|
||||
ORG SETORG SET US HERE
|
||||
FDB TAB35Z
|
||||
FDB TAB57Z
|
||||
|
||||
TAB35Z FDB C0
|
||||
FDB C1
|
||||
FDB C2
|
||||
FDB C3
|
||||
FDB C4
|
||||
FDB C5
|
||||
FDB C6
|
||||
FDB C7
|
||||
FDB C8
|
||||
FDB C9
|
||||
FDB CSP
|
||||
FDB CEX
|
||||
FDB CCO
|
||||
FDB CPE
|
||||
FDB CAR
|
||||
FDB ACL
|
||||
FDB AHY
|
||||
FDB CA
|
||||
FDB CB
|
||||
FDB CCC
|
||||
FDB CD
|
||||
FDB CE
|
||||
FDB CF
|
||||
FDB CG
|
||||
FDB CH
|
||||
FDB CI
|
||||
FDB CJ
|
||||
FDB CK
|
||||
FDB CL
|
||||
FDB CM
|
||||
FDB CN
|
||||
FDB CO
|
||||
FDB CP
|
||||
FDB CQ
|
||||
FDB CR
|
||||
FDB CS
|
||||
FDB CT
|
||||
FDB CU
|
||||
FDB CV
|
||||
FDB CW
|
||||
FDB CX
|
||||
FDB CY
|
||||
FDB CZ
|
||||
FDB CLP
|
||||
FDB CRP
|
||||
FDB CFRB
|
||||
FDB CSLSH
|
||||
|
||||
C0 FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
C1 FCB 3
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
|
||||
C2 FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $00,$F0
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$00
|
||||
FCB $FF,$F0
|
||||
|
||||
C3 FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $00,$F0
|
||||
FCB $0F,$F0
|
||||
FCB $00,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
C4 FCB 3
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
|
||||
C5 FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$00
|
||||
FCB $FF,$F0
|
||||
FCB $00,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
C6 FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$00
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
C7 FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
|
||||
C8 FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
C9 FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
|
||||
CSP FCB 1
|
||||
FCB $00
|
||||
FCB $00
|
||||
FCB $00
|
||||
FCB $00
|
||||
FCB $00
|
||||
|
||||
CEX FCB 1
|
||||
FCB $F0
|
||||
FCB $F0
|
||||
FCB $F0
|
||||
FCB $00
|
||||
FCB $F0
|
||||
|
||||
CCO FCB 3
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $FF,$00
|
||||
FCB $0F,$00
|
||||
|
||||
CPE FCB 1
|
||||
FCB $00
|
||||
FCB $00
|
||||
FCB $00
|
||||
FCB $00
|
||||
FCB $F0
|
||||
|
||||
CAR FCB 5
|
||||
FCB $00,$F0,$00
|
||||
FCB $0F,$FF,$00
|
||||
FCB $FF,$FF,$F0
|
||||
FCB $00,$F0,$00
|
||||
FCB $00,$F0,$00
|
||||
|
||||
ACL FCB 1
|
||||
FCB $00
|
||||
FCB $F0
|
||||
FCB $00
|
||||
FCB $F0
|
||||
FCB $00
|
||||
|
||||
AHY FCB 3
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $FF,$F0
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
|
||||
CA FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
|
||||
CB FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$00
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
CCC FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
FCB $FF,$F0
|
||||
|
||||
CD FCB 3
|
||||
FCB $FF,$00
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$00
|
||||
|
||||
CE FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$00
|
||||
FCB $FF,$00
|
||||
FCB $F0,$00
|
||||
FCB $FF,$F0
|
||||
|
||||
CF FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$00
|
||||
FCB $FF,$00
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
|
||||
CG FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$00
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
CH FCB 3
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
|
||||
CI FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
FCB $FF,$F0
|
||||
|
||||
CJ FCB 3
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
CK FCB 3
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$00
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
|
||||
CL FCB 3
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
FCB $FF,$F0
|
||||
|
||||
CM FCB 5
|
||||
FCB $FF,$FF,$F0
|
||||
FCB $F0,$F0,$F0
|
||||
FCB $F0,$F0,$F0
|
||||
FCB $F0,$00,$F0
|
||||
FCB $F0,$00,$F0
|
||||
|
||||
CN FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
|
||||
CO FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
CP FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
|
||||
CQ FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
|
||||
CR FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$00
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
|
||||
CS FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $F0,$00
|
||||
FCB $FF,$F0
|
||||
FCB $00,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
CT FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
|
||||
CU FCB $3
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
|
||||
CV FCB 3
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
|
||||
CW FCB 5
|
||||
FCB $F0,$00,$F0
|
||||
FCB $F0,$00,$F0
|
||||
FCB $F0,$F0,$F0
|
||||
FCB $F0,$F0,$F0
|
||||
FCB $FF,$FF,$F0
|
||||
|
||||
CX FCB 3
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $0F,$00
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
|
||||
CY FCB 3
|
||||
FCB $F0,$F0
|
||||
FCB $F0,$F0
|
||||
FCB $FF,$F0
|
||||
FCB $0F,$00
|
||||
FCB $0F,$00
|
||||
|
||||
CZ FCB 3
|
||||
FCB $FF,$F0
|
||||
FCB $00,$F0
|
||||
FCB $0F,$00
|
||||
FCB $F0,$00
|
||||
FCB $FF,$F0
|
||||
|
||||
CLP FCB 3
|
||||
FCB $0F,$00
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
FCB $0F,$00
|
||||
|
||||
CRP FCB 3
|
||||
FCB $0F,$00
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
FCB $0F,$00
|
||||
|
||||
CFRB FCB 7
|
||||
FCB $00,$0F,$00,$00
|
||||
FCB $00,$00,$F0,$00
|
||||
FCB $FF,$00,$FF,$00
|
||||
FCB $00,$00,$F0,$00
|
||||
FCB $00,$0F,$00,$00
|
||||
|
||||
CSLSH FCB 3
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
FCB $0F,$00
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
|
||||
TAB57Z FDB D0
|
||||
FDB D1
|
||||
FDB D2
|
||||
FDB D3
|
||||
FDB D4
|
||||
FDB D5
|
||||
FDB D6
|
||||
FDB D7
|
||||
FDB D8
|
||||
FDB D9
|
||||
FDB DSP
|
||||
FDB DEX
|
||||
FDB DCO
|
||||
FDB DPE
|
||||
FDB DAR
|
||||
FDB DCL
|
||||
FDB DHY
|
||||
FDB DA
|
||||
FDB DB
|
||||
FDB DCC
|
||||
FDB DD
|
||||
FDB DE
|
||||
FDB DF
|
||||
FDB DG
|
||||
FDB DH
|
||||
FDB DI
|
||||
FDB DJ
|
||||
FDB DK
|
||||
FDB DL
|
||||
FDB DM
|
||||
FDB DN
|
||||
FDB DO
|
||||
FDB DP
|
||||
FDB DQ
|
||||
FDB DR
|
||||
FDB DS
|
||||
FDB DT
|
||||
FDB DU
|
||||
FDB DV
|
||||
FDB DW
|
||||
FDB DX
|
||||
FDB DY
|
||||
FDB DZ
|
||||
FDB DLP
|
||||
FDB DRP
|
||||
FDB DFRB
|
||||
FDB DSLSH
|
||||
|
||||
D0 FCB 5
|
||||
FCB $99,$99,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $99,$99,$90
|
||||
|
||||
D1 FCB 5
|
||||
FCB $00,$99,$00
|
||||
FCB $00,$09,$00
|
||||
FCB $00,$09,$00
|
||||
FCB $00,$09,$00
|
||||
FCB $00,$09,$00
|
||||
FCB $09,$99,$90
|
||||
|
||||
D2 FCB 5
|
||||
FCB $09,$99,$90
|
||||
FCB $00,$00,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $90,$00,$00
|
||||
FCB $90,$00,$00
|
||||
FCB $99,$99,$00
|
||||
|
||||
D3 FCB 5
|
||||
FCB $09,$99,$90
|
||||
FCB $00,$00,$90
|
||||
FCB $09,$99,$90
|
||||
FCB $00,$00,$90
|
||||
FCB $00,$00,$90
|
||||
FCB $99,$99,$90
|
||||
|
||||
D4 FCB 5
|
||||
FCB $90,$00,$00
|
||||
FCB $90,$09,$00
|
||||
FCB $90,$09,$00
|
||||
FCB $99,$99,$90
|
||||
FCB $00,$09,$00
|
||||
FCB $00,$09,$00
|
||||
|
||||
D5 FCB 5
|
||||
FCB $99,$99,$00
|
||||
FCB $90,$00,$00
|
||||
FCB $99,$99,$90
|
||||
FCB $00,$00,$90
|
||||
FCB $00,$00,$90
|
||||
FCB $99,$99,$90
|
||||
|
||||
D6 FCB 5
|
||||
FCB $99,$99,$00
|
||||
FCB $90,$00,$00
|
||||
FCB $99,$99,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $99,$99,$90
|
||||
|
||||
D7 FCB 5
|
||||
FCB $99,$99,$90
|
||||
FCB $00,$00,$90
|
||||
FCB $00,$09,$00
|
||||
FCB $00,$90,$00
|
||||
FCB $09,$00,$00
|
||||
FCB $90,$00,$00
|
||||
|
||||
D8 FCB 5
|
||||
FCB $99,$99,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $99,$99,$90
|
||||
|
||||
D9 FCB 5
|
||||
FCB $99,$99,$90
|
||||
FCB $90,$00,$90
|
||||
FCB $99,$99,$90
|
||||
FCB $00,$00,$90
|
||||
FCB $00,$00,$90
|
||||
FCB $09,$99,$90
|
||||
|
||||
DSP FCB 3 SPACE
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
|
||||
DEX FCB 2
|
||||
FCB $FF,$00
|
||||
FCB $FF,$00
|
||||
FCB $FF,$00
|
||||
FCB $FF,$00
|
||||
FCB $00,$00
|
||||
FCB $FF,$00
|
||||
FCB $FF,$00
|
||||
|
||||
DCO FCB 2 COMMA
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $FF,$00
|
||||
FCB $FF,$00
|
||||
FCB $F0,$00
|
||||
|
||||
DPE FCB 2
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $FF,$00
|
||||
FCB $FF,$00
|
||||
|
||||
DAR FCB 9 BLANKR USED TO BLOCK ERASE
|
||||
FCB $FF,$FF,$FF,$FF,$F0
|
||||
FCB $FF,$FF,$FF,$FF,$F0
|
||||
FCB $FF,$FF,$FF,$FF,$F0
|
||||
FCB $FF,$FF,$FF,$FF,$F0
|
||||
FCB $FF,$FF,$FF,$FF,$F0
|
||||
FCB $FF,$FF,$FF,$FF,$F0
|
||||
|
||||
DCL FCB 2 COLON
|
||||
FCB $00,$00
|
||||
FCB $FF,$00
|
||||
FCB $FF,$00
|
||||
FCB $00,$00
|
||||
FCB $FF,$00
|
||||
FCB $FF,$00
|
||||
|
||||
DHY FCB 3
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
FCB $22,$20
|
||||
FCB $00,$00
|
||||
FCB $00,$00
|
||||
|
||||
DA FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $60,$06,$60
|
||||
FCB $66,$66,$60
|
||||
FCB $60,$06,$60
|
||||
FCB $60,$06,$60
|
||||
FCB $60,$06,$60
|
||||
|
||||
DB FCB 5
|
||||
FCB $66,$66,$00
|
||||
FCB $60,$06,$00
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$66,$60
|
||||
|
||||
DCC FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$66,$60
|
||||
|
||||
DD FCB 5
|
||||
FCB $66,$66,$00
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$66,$00
|
||||
|
||||
DE FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $60,$00,$00
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$66,$60
|
||||
|
||||
DF FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $60,$00,$00
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$00,$00
|
||||
|
||||
DG FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$06,$60
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$06,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$66,$60
|
||||
|
||||
DH FCB 5
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
|
||||
DI FCB 4
|
||||
FCB $06,$60,$00
|
||||
FCB $06,$60,$00
|
||||
FCB $06,$60,$00
|
||||
FCB $06,$60,$00
|
||||
FCB $06,$60,$00
|
||||
FCB $06,$60,$00
|
||||
|
||||
DJ FCB 5
|
||||
FCB $00,$00,$60
|
||||
FCB $00,$00,$60
|
||||
FCB $00,$00,$60
|
||||
FCB $00,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$66,$60
|
||||
|
||||
DK FCB 5
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$06,$00
|
||||
FCB $66,$60,$00
|
||||
FCB $66,$60,$00
|
||||
FCB $66,$06,$00
|
||||
FCB $66,$00,$60
|
||||
|
||||
DL FCB 5
|
||||
FCB $60,$00,$00
|
||||
FCB $60,$00,$00
|
||||
FCB $60,$00,$00
|
||||
FCB $60,$00,$00
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$66,$60
|
||||
|
||||
DM FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $60,$60,$60
|
||||
FCB $60,$60,$60
|
||||
FCB $60,$00,$60
|
||||
FCB $60,$00,$60
|
||||
FCB $60,$00,$60
|
||||
|
||||
DN FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $60,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
|
||||
DO FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $60,$06,$60
|
||||
FCB $60,$00,$60
|
||||
FCB $60,$00,$60
|
||||
FCB $60,$00,$60
|
||||
FCB $66,$66,$60
|
||||
|
||||
DP FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $60,$00,$60
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$00,$00
|
||||
FCB $66,$00,$00
|
||||
|
||||
DQ FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$06,$00
|
||||
FCB $66,$60,$60
|
||||
|
||||
DR FCB 5
|
||||
FCB $66,$66,$00
|
||||
FCB $60,$06,$00
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
|
||||
DS FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $60,$00,$00
|
||||
FCB $66,$66,$60
|
||||
FCB $00,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$66,$60
|
||||
|
||||
DT FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $00,$60,$00
|
||||
FCB $00,$66,$00
|
||||
FCB $00,$66,$00
|
||||
FCB $00,$66,$00
|
||||
FCB $00,$66,$00
|
||||
|
||||
DU FCB 5
|
||||
FCB $60,$06,$60
|
||||
FCB $60,$06,$60
|
||||
FCB $60,$06,$60
|
||||
FCB $60,$06,$60
|
||||
FCB $60,$06,$60
|
||||
FCB $66,$66,$60
|
||||
|
||||
DV FCB 5
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $06,$06,$00
|
||||
FCB $00,$60,$00
|
||||
|
||||
DW FCB 5
|
||||
FCB $60,$00,$60
|
||||
FCB $60,$00,$60
|
||||
FCB $60,$00,$60
|
||||
FCB $60,$60,$60
|
||||
FCB $60,$60,$60
|
||||
FCB $66,$66,$60
|
||||
|
||||
DX FCB 5
|
||||
FCB $60,$00,$60
|
||||
FCB $06,$06,$00
|
||||
FCB $00,$60,$00
|
||||
FCB $00,$60,$00
|
||||
FCB $06,$06,$00
|
||||
FCB $60,$00,$60
|
||||
|
||||
DY FCB 5
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$00,$60
|
||||
FCB $66,$66,$60
|
||||
FCB $00,$60,$00
|
||||
FCB $00,$60,$00
|
||||
FCB $00,$60,$00
|
||||
|
||||
DZ FCB 5
|
||||
FCB $66,$66,$60
|
||||
FCB $00,$06,$00
|
||||
FCB $00,$60,$00
|
||||
FCB $06,$00,$00
|
||||
FCB $66,$66,$60
|
||||
FCB $66,$66,$60
|
||||
|
||||
DLP FCB 3
|
||||
FCB $00,$F0
|
||||
FCB $0F,$00
|
||||
FCB $F0,$00
|
||||
FCB $F0,$00
|
||||
FCB $0F,$00
|
||||
FCB $00,$F0
|
||||
|
||||
DRP FCB 3
|
||||
FCB $F0,$00
|
||||
FCB $0F,$00
|
||||
FCB $00,$F0
|
||||
FCB $00,$F0
|
||||
FCB $0F,$00
|
||||
FCB $F0,$00
|
||||
|
||||
DFRB FCB 4 SLASH
|
||||
FCB $00,$0F,$00
|
||||
FCB $00,$F0,$00
|
||||
FCB $00,$F0,$00
|
||||
FCB $0F,$00,$00
|
||||
FCB $0F,$00,$00
|
||||
FCB $F0,$00,$00
|
||||
|
||||
DSLSH FCB 5
|
||||
FCB $00,$F0,$00
|
||||
FCB $0F,$F0,$00
|
||||
FCB $FF,$FF,$F0
|
||||
FCB $0F,$F0,$00
|
||||
FCB $00,$F0,$00
|
||||
FCB $00,$00,$00
|
||||
|
||||
END
|
|
@ -0,0 +1,478 @@
|
|||
OPT NOL
|
||||
LIB RRF
|
||||
OPT LIS
|
||||
STTL TRANSPORTER.........
|
||||
OPOINT EQU 0
|
||||
OW EQU OPOINT+2 OFFSETS IN MEMORY BLOCK
|
||||
OH EQU OW+1
|
||||
OPT EQU OH+1 POINTER TO RAM DATA TO BE USED BY DMA
|
||||
PICPTR EQU OPT+2 OBJECT
|
||||
BYTCNT EQU PICPTR+2 NUMBER OF BYTES IN OBJECT
|
||||
FRPTR EQU BYTCNT+1 POINTER TO CURRENT FRAME
|
||||
GLTPTR EQU FRPTR+2
|
||||
DATA EQU GLTPTR+2 DATA AREA 1 IS THIS DISTANCE INTO SECOND BLOCK
|
||||
BKSIZE EQU 116+DATA SIZE OF ALLOCATION BLOCKS
|
||||
ORG HXTAB
|
||||
FREEP RMB 2
|
||||
TRPTR RMB 2
|
||||
GTEMP RMB 2
|
||||
BYTES RMB 1
|
||||
LAST RMB 2
|
||||
TRRAM EQU *
|
||||
RMB 10*BKSIZE
|
||||
TREND EQU *
|
||||
|
||||
ORG RTORG PLACE TO RUN THE CODE FROM
|
||||
JMP TRNSTV
|
||||
|
||||
***** T R A N S P O R T E R
|
||||
*SOUNDS
|
||||
TR1SND FCB $FF,$01,$01,$13,0 CLEAR THE SYSTEM
|
||||
|
||||
* COLORS FOR PIXEL GLITTER
|
||||
|
||||
GLIT0 FCB $99,$22,$55,$11,$99,$22,$55,$11,$99,$22 WH,RED,YEL,ORANG
|
||||
FCB $55,$11,$99,$22,$55,$11,$99,$22,$55,$11
|
||||
GLIT1 FCB $AA,$CC,$AA,$CC,$AA,$CC,$AA,$CC,$AA,$CC CY,CY
|
||||
FCB $AA,$CC,$AA,$CC,$AA,$CC,$AA,$CC,$AA,$CC
|
||||
GLIT2 FCB $99,$77,$99,$77,$99,$77,$99,$77,$99,$77 WH,BL
|
||||
FCB $99,$77,$99,$77,$99,$77,$99,$77,$99,$77
|
||||
GLIT3 FCB $11,$55,$11,$55,$11,$55,$11,$55,$11,$55 RED,YEL
|
||||
FCB $11,$55,$11,$55,$11,$55,$11,$55,$11,$55
|
||||
GLIT4 FCB $FF,$EE,$DD,$CC,$BB,$AA,$FF,$EE,$DD,$CC
|
||||
FCB $BB,$AA,$FF,$EE,$DD,$CC,$BB,$AA,$FF,$EE
|
||||
GLIT5 FCB $11,$66,$77,$BB,$AA,$11,$66,$77,$BB,$AA
|
||||
FCB $11,$66,$77,$BB,$AA,$11,$66,$77,$BB,$AA
|
||||
GLIT6 FCB $33,$55,$33,$55,$AA,$33,$55,$33,$55,$AA PURP,YEL + SOME WH.
|
||||
FCB $33,$55,$33,$55,$AA,$33,$55,$33,$55,$AA
|
||||
|
||||
GLITAB FDB GLIT0
|
||||
FDB GLIT1
|
||||
FDB GLIT2
|
||||
FDB GLIT3
|
||||
FDB GLIT4
|
||||
FDB GLIT5
|
||||
FDB GLIT6
|
||||
FDB GLIT4
|
||||
|
||||
FCC ' COPYRIGHT 1982 WILLIAMS ELECTRONICS INC. '
|
||||
|
||||
TRINIT PSHS X,Y
|
||||
LDX #TRRAM POINT AT FIRST BLOCK
|
||||
STX FREEP FREE LIST
|
||||
TRIN0 LEAY BKSIZE,X FIND NEXT BLOCK
|
||||
STY ,X MAKE THIS ONE POINT AT NEXT ONE
|
||||
CMPY #TREND DID WE JUST POINT AT NON EXISTANT??
|
||||
BHS TRIN1 YEP
|
||||
LEAX ,Y NOW POINT AT NEXT
|
||||
BRA TRIN0
|
||||
TRIN1 LDY #0 END OF THE LINE
|
||||
STY ,X
|
||||
STY TRPTR NO ONE ON LIST
|
||||
PULS X,Y,PC
|
||||
|
||||
* ONDRV - TRANSPORT GUY ON...
|
||||
* X = POINTER TO H,W,DATA_POINTER
|
||||
* X RETURNS POINTER TO RAM IMAGE TO REFRESH
|
||||
|
||||
TRSTRT PSHS Y,D,U
|
||||
BSR GETBLK GET A DATA BLOCK
|
||||
BCS ONBYE NO BLOCKS...BYE
|
||||
ONDRV0 STY TRPTR PUT THE MAIN MAN ON THE LIST
|
||||
STX PICPTR,Y SAVE PICTURE POINTER
|
||||
LDD ,X GET W,H
|
||||
STD OW,Y STORE THEM
|
||||
MUL FORM BYTE COUNT
|
||||
STB BYTCNT,Y AND SAVE
|
||||
LEAU DATA,Y FIND WHERE DATA WILL START
|
||||
STU OPT,Y
|
||||
BSR CLRM CLEAR MEMORY IN ALLOCATED BLOCK
|
||||
LDU #TRNTAB APPEAR TABLE TO BE USED
|
||||
STU FRPTR,Y FIRST FRAME
|
||||
JSR RAND GET RANDOM GLITTER
|
||||
ANDA #$7
|
||||
ASLA
|
||||
LDU #GLITAB
|
||||
LDD A,U
|
||||
STD GLTPTR,Y
|
||||
LEAX OW,Y THIS LOOKS LIKE AN OBJECT...RETURN IT
|
||||
ONBYE PULS Y,U,D,PC PULL IT ALL AND RETURN
|
||||
|
||||
CLRM PSHS D,Y
|
||||
LDY OPT,Y
|
||||
CLRM1 CLR ,Y+ CLEAR A BYTE
|
||||
DECB
|
||||
BNE CLRM1
|
||||
PULS PC,D,Y
|
||||
|
||||
GETBLK PSHS X
|
||||
LDY FREEP
|
||||
BEQ GETERR
|
||||
LDX ,Y GET NEXT
|
||||
STX FREEP MAKE LIST
|
||||
LDX TRPTR GET CURRENT LIST
|
||||
STX ,Y POINT AT IT
|
||||
CLC
|
||||
PULS X,PC
|
||||
GETERR SEC
|
||||
PULS X,PC
|
||||
|
||||
* Y BLOCK FOR OBJECT TO UPDATE
|
||||
* X RETURNS PICPTR FOR OBJECT
|
||||
* U RETURNS TRANS TABLE POINTER
|
||||
|
||||
TMAKE LDX FRPTR,Y GET FRAME POINTER
|
||||
PSHS X AND SAVE IT SO WE MAY STILL USE U
|
||||
LEAX 1,X KICK FRAM COUNTER
|
||||
STX FRPTR,Y
|
||||
LDA SEED
|
||||
ANDA #$7
|
||||
LDX GLTPTR,Y GET THE GLITTER POINTER
|
||||
LEAX A,X ADD THE RANDOM GUY
|
||||
STX GTEMP AND PUT IT IN RAM
|
||||
LDX PICPTR,Y LOAD THE ACTUAL PICTURE POINTER
|
||||
LDB BYTCNT,Y LOAD THE BYTE COUNT IN THE OBJECT
|
||||
PULS U,PC PUT THE FRAME POINTER IN U AND RETURN
|
||||
|
||||
* TRNSPT - X POINTS AT DATA FOR OBJECT
|
||||
* Y POINTS AT DATA AREA
|
||||
* B CONTAINS BYTES IN OBJECT
|
||||
* U EQUALS CURRENT TRANSPORT FRAME
|
||||
|
||||
TRNSPT PSHS D,U,Y,X
|
||||
LDX 2,X POINT AT DATA TEMPLATE
|
||||
LDY OPT,Y POINT AT PHONEY OBJECT
|
||||
LDA ,U GET THE FRAME NUMBER
|
||||
BPL XON TRANS EM ON THIS FRAME
|
||||
ANDA #$7F TAKE OFF BIT AWAY.
|
||||
JSR GETGRP GET THE GROUP POINTER IN U.
|
||||
POFF0 LDD ,U++ GET THE NEXT POINT
|
||||
CMPA BYTES CHECK BYTE NUMBER
|
||||
BHS TRNDUN TOO LARGE TO BE IN THIS PICTURE
|
||||
COMB TAKE AWAY TO TURN OFF.
|
||||
ANDB A,Y
|
||||
STB A,Y
|
||||
BRA POFF0
|
||||
XON BITA #$40 GLITTER FRAME??
|
||||
BNE XONG THEN GET OUT OF HERE!
|
||||
BSR GETGRP
|
||||
PON0 LDD ,U++
|
||||
CMPA BYTES
|
||||
BHS TRNDUN
|
||||
ANDB A,X GET WHAT THE BYTE LOOKS LIKE
|
||||
ORAB A,Y OR IT IN (IT WAS OFF)
|
||||
STB A,Y
|
||||
BRA PON0
|
||||
TRNDUN PULS D,PC,U,X,Y
|
||||
|
||||
XONG ANDA #$3F TAKE AWAY GLITTER BIT
|
||||
BSR GETGRP
|
||||
PON0G LDD ,U++
|
||||
CMPA BYTES
|
||||
BHS TRNDUN
|
||||
ANDB A,X GET WHAT THE BYTE LOOKS LIKE
|
||||
BEQ PON0G NOTHING THERE...DONE WITH THE BYTE
|
||||
LDB [GTEMP] GET THE CURRENT GLITTER BYTE
|
||||
INC GTEMP+1 KICK GLITTER POINTER
|
||||
****************************************************************************
|
||||
* BNE PON1G DIDN'T WRAP THESE 2 INSTRUCTIO
|
||||
* INC GTEMP ARE SUPERFLOUS FOR MOST ADDRS
|
||||
****************************************************************************
|
||||
PON1G ANDB -1,U
|
||||
ORAB A,Y OR IT IN (IT WAS OFF)
|
||||
STB A,Y
|
||||
BRA PON0G
|
||||
|
||||
GETGRP LDU #GRPLST GROUP TABLE
|
||||
DECA MAKE 1-12, 0-11
|
||||
ASLA
|
||||
LDU A,U
|
||||
STB BYTES SAVE BYTE COUNT
|
||||
RTS
|
||||
|
||||
TRKIL PSHS X
|
||||
LDX ,Y GET THE NEXT GUY
|
||||
STX [LAST] MAKE THE LAST GUY POINT TO OUR NEXT
|
||||
LDX FREEP
|
||||
STX ,Y APPEND FREE LIST TO US
|
||||
STY FREEP AND MAKE US THE LIST
|
||||
LDY LAST MAKE POINT AT LAST FOR NEXT ITERATION
|
||||
PULS X,PC
|
||||
|
||||
********* TRANSPORTER UPDATE
|
||||
|
||||
UPDATE LDY #TRPTR WORK THROUGH LIST
|
||||
BRA TRNUP0
|
||||
TRNUP3 JSR TMAKE FOR ALL OF THE PARAMETERS
|
||||
CMPU #TABBOT TOO FAR ON ONE???
|
||||
BEQ TRNUP1
|
||||
JSR TRNSPT DO THE POINT
|
||||
TRNUP0 STY LAST
|
||||
LDY ,Y WALK TO NEXT
|
||||
BNE TRNUP3 ITS GOOD
|
||||
RTS DONE
|
||||
|
||||
TRNUP1 JSR TRKIL
|
||||
BRA TRNUP0
|
||||
|
||||
TRNTAB FCB $43
|
||||
FCB $83
|
||||
FCB $46
|
||||
FCB $86
|
||||
FCB $44
|
||||
FCB $84
|
||||
FCB $42
|
||||
FCB $82
|
||||
FCB $41
|
||||
FCB $81
|
||||
FCB $47
|
||||
FCB $87
|
||||
FCB $44
|
||||
FCB $46
|
||||
FCB $84
|
||||
FCB $42
|
||||
FCB $86
|
||||
FCB $43
|
||||
FCB $82
|
||||
FCB $41
|
||||
FCB $83
|
||||
FCB $45
|
||||
FCB $81
|
||||
FCB $48
|
||||
FCB $85
|
||||
FCB $47
|
||||
FCB $88
|
||||
FCB $44
|
||||
FCB $87
|
||||
FCB $45
|
||||
FCB $42
|
||||
FCB $84
|
||||
FCB $46
|
||||
FCB $85
|
||||
FCB $47
|
||||
FCB $82
|
||||
FCB $48
|
||||
FCB $86
|
||||
FCB $43
|
||||
FCB $87
|
||||
FCB $41
|
||||
FCB $88
|
||||
FCB $42
|
||||
FCB $83
|
||||
FCB $44
|
||||
FCB $81
|
||||
FCB $45
|
||||
FCB $47
|
||||
FCB $82
|
||||
FCB $46
|
||||
FCB $84
|
||||
COL2 FCB $85
|
||||
FCB $48
|
||||
FCB $87
|
||||
FCB $43
|
||||
FCB $86
|
||||
FCB $44
|
||||
FCB $42
|
||||
FCB $88
|
||||
FCB $45
|
||||
FCB $83
|
||||
FCB $41
|
||||
FCB $84
|
||||
FCB $43
|
||||
FCB $82
|
||||
FCB $47
|
||||
FCB $46
|
||||
FCB $85
|
||||
FCB $48
|
||||
FCB $81
|
||||
FCB $42
|
||||
FCB $83
|
||||
FCB $44
|
||||
FCB $87
|
||||
FCB $41
|
||||
FCB $86
|
||||
FCB $45
|
||||
FCB $88
|
||||
FCB $43
|
||||
FCB $46
|
||||
FCB $84
|
||||
FCB $48
|
||||
FCB $81
|
||||
FCB $47
|
||||
FCB $85
|
||||
FCB $44
|
||||
FCB $82
|
||||
FCB $41
|
||||
FCB $45
|
||||
FCB $83
|
||||
FCB $42
|
||||
FCB $86
|
||||
FCB $88
|
||||
FCB $43
|
||||
FCB $87
|
||||
FCB $46
|
||||
FCB $84
|
||||
FCB $48
|
||||
FCB $85
|
||||
FCB 7
|
||||
FCB $81
|
||||
FCB 4
|
||||
FCB 5
|
||||
FCB $82
|
||||
FCB 1
|
||||
FCB $83
|
||||
FCB 2
|
||||
FCB $86
|
||||
FCB 3
|
||||
FCB $88
|
||||
FCB 6
|
||||
FCB $87
|
||||
FCB 8
|
||||
FCB $84
|
||||
FCB 7
|
||||
FCB $85
|
||||
FCB 4
|
||||
FCB $81
|
||||
FCB 5
|
||||
FCB 1
|
||||
FCB $82
|
||||
FCB $83
|
||||
FCB 2
|
||||
FCB 3
|
||||
FCB $88
|
||||
FCB 8
|
||||
FCB $84
|
||||
FCB $87
|
||||
FCB 7
|
||||
FCB 4
|
||||
TABBOT EQU *
|
||||
FCB 0 FIX FLAW IN ALGORITHM
|
||||
|
||||
GRPLST FDB GROUP1
|
||||
FDB GROUP2
|
||||
FDB GROUP3
|
||||
FDB GROUP4
|
||||
FDB GROUP5
|
||||
FDB GROUP6
|
||||
FDB GROUP7
|
||||
FDB GROUP8
|
||||
|
||||
GRPTAB EQU *
|
||||
GROUP1 FCB 00,$F0,06,$0F,09,$0F,12,$F0,19,$F0,23,$0F,24,$0F,29,$F0
|
||||
FCB 34,$F0,37,$0F,43,$F0,46,$0F,48,$F0,50,$0F,60,$F0,62,$0F
|
||||
FCB 67,$0F,69,$F0,72,$F0,76,$0F,80,$0F,81,$F0,90,$F0,93,$0F
|
||||
FCB 96,$0F,101,$F0,106,$0F,110,$0F,115,$F0
|
||||
GROUP2 FCB 01,$0F,03,$F0,08,$F0,15,$0F,18,$F0,20,$0F,27,$0F,30,$F0
|
||||
FCB 32,$F0,34,$0F,45,$F0,47,$0F,51,$0F,53,$F0,57,$0F,61,$F0
|
||||
FCB 67,$F0,71,$0F,74,$0F,78,$F0,83,$F0,85,$0F,91,$0F,91,$F0
|
||||
FCB 99,$0F,104,$F0,109,$F0,113,$0F,115,$0F
|
||||
GROUP3 FCB 04,$0F,07,$F0,09,$F0,10,$0F,20,$F0,21,$0F,28,$0F,31,$F0
|
||||
FCB 33,$F0,35,$0F,41,$0F,46,$F0,52,$0F,54,$F0,58,$F0,61,$0F
|
||||
FCB 66,$F0,68,$0F,73,$0F,77,$F0,85,$F0,87,$0F,89,$0F,92,$F0
|
||||
FCB 97,$F0,104,$0F,106,$F0,109,$0F,114,$0F
|
||||
GROUP4 FCB 00,$0F,02,$F0,10,$F0,12,$0F,16,$F0,22,$0F,26,$F0,30,$0F
|
||||
FCB 33,$0F,35,$F0,44,$0F,47,$F0,51,$F0,54,$0F,56,$F0,59,$0F
|
||||
FCB 66,$0F,70,$F0,73,$F0,77,$0F,82,$F0,84,$0F,90,$0F,93,$F0
|
||||
FCB 97,$0F,100,$F0,105,$0F,108,$F0,112,$F0
|
||||
GROUP5 FCB 02,$0F,06,$F0,08,$0F,14,$F0,19,$0F,22,$F0,25,$F0,29,$0F
|
||||
FCB 36,$0F,39,$F0,41,$F0,43,$0F,48,$0F,49,$F0,60,$0F,62,$F0
|
||||
FCB 64,$0F,65,$F0,75,$F0,78,$0F,82,$0F,87,$F0,89,$F0,94,$0F
|
||||
FCB 98,$F0,101,$0F,103,$F0,107,$0F,111,$F0
|
||||
GROUP6 FCB 01,$F0,07,$0F,11,$0F,13,$F0,17,$0F,21,$F0,26,$0F,28,$F0
|
||||
FCB 32,$0F,37,$F0,42,$F0,45,$0F,49,$0F,50,$F0,56,$0F,63,$F0
|
||||
FCB 68,$F0,70,$0F,75,$0F,79,$F0,84,$F0,86,$0F,88,$0F,95,$F0
|
||||
FCB 96,$F0,102,$F0,108,$0F,111,$0F,113,$F0
|
||||
GROUP7 FCB 03,$0F,04,$F0,13,$0F,15,$F0,17,$F0,18,$0F,24,$F0,31,$0F
|
||||
FCB 38,$F0,39,$0F,40,$0F,44,$F0,52,$F0,55,$0F,59,$F0,63,$0F
|
||||
FCB 64,$F0,69,$0F,72,$0F,74,$F0,83,$0F,86,$F0,88,$F0,92,$0F
|
||||
FCB 98,$0F,100,$0F,107,$F0,112,$0F,114,$F0
|
||||
GROUP8 FCB 05,$F0,05,$0F,11,$F0,14,$0F,16,$0F,23,$F0,25,$0F,27,$F0
|
||||
FCB 36,$F0,38,$0F,40,$F0,42,$0F,53,$0F,55,$F0,57,$F0,58,$0F
|
||||
FCB 65,$0F,71,$F0,76,$F0,79,$0F,80,$F0,81,$0F,94,$F0,95,$0F
|
||||
FCB 99,$F0,102,$0F,103,$0F,105,$F0,110,$F0
|
||||
*
|
||||
*START TRANSPORTING
|
||||
*
|
||||
TRNSTV JSR TRINIT
|
||||
LDX RPTR
|
||||
BEQ TRN1X
|
||||
MAKP TRSPRC
|
||||
LDX RPTR
|
||||
LDD #0
|
||||
LDY #0
|
||||
PSHS D
|
||||
PSHS D
|
||||
TRN00 LDD OPICT,X
|
||||
STD OLDPIC,X
|
||||
LEAY 1,Y
|
||||
CMPY #15
|
||||
BHI TRN01
|
||||
CMPD ,S SAME GUY?
|
||||
BEQ TRN0 YES
|
||||
TRN01 LDY #0
|
||||
STD ,S SAVE NEW PICT
|
||||
PSHS X
|
||||
LDX OPICT,X
|
||||
JSR TRSTRT
|
||||
STX 4,S SAVE IMAGE
|
||||
PULS X SAVE NEW PICT
|
||||
TRN0 LDD 2,S
|
||||
STD OPICT,X
|
||||
LDX ,X
|
||||
BNE TRN00
|
||||
LEAS 4,S
|
||||
TRNLP JSR ROBUP OUTPUT ROBOTS
|
||||
JSR UPDATE UPDATE IMAGES
|
||||
LDX TRPTR
|
||||
BEQ TRN1X
|
||||
NAP 1,TRNLP
|
||||
TRN1X LDX RPTR
|
||||
BEQ TRN2X
|
||||
TRN1XL LDD OLDPIC,X RESTORE IMAGES
|
||||
STD OPICT,X
|
||||
LDX ,X
|
||||
BNE TRN1XL
|
||||
TRN2X JSR HXINIT RECOVER DATA BASE FOR HORIZ EXPLODES
|
||||
JMP SUCIDE
|
||||
*
|
||||
*TRANSPORTER SOUND PROCESS
|
||||
*
|
||||
TRSPRC LDD #TR1SND
|
||||
JSR SNDLD CLEAR OUT THE SYSTEM
|
||||
LDA #$48
|
||||
STA PD,U
|
||||
TRSPRL LDB #$12
|
||||
JSR SDOUT
|
||||
DEC PD,U
|
||||
BEQ TRSPR1
|
||||
NAP 1,TRSPRL
|
||||
TRSPR1 LDA #$24
|
||||
STA PD,U
|
||||
TRSP1L LDB #$12
|
||||
JSR SDOUT
|
||||
DEC PD,U
|
||||
LBEQ SUCIDE
|
||||
NAP 2,TRSP1L
|
||||
*
|
||||
*UPDATE YOUR ROBOTS
|
||||
*RAM-RAM
|
||||
ROBUP LDX RPTR
|
||||
BEQ ROBUPX
|
||||
ROBUPL LDY OPICT,X
|
||||
LDD ,Y
|
||||
EORA #4
|
||||
EORB #4
|
||||
SEI
|
||||
STD DMASIZ
|
||||
LDU 2,Y
|
||||
STU DMAORG
|
||||
LDD OBJX,X
|
||||
STD DMADES
|
||||
LDA #$6
|
||||
STA DMACTL
|
||||
CLI
|
||||
LDX ,X
|
||||
BNE ROBUPL
|
||||
ROBUPX RTS
|
||||
END
|
||||
|
|
@ -0,0 +1,550 @@
|
|||
OPT NOL
|
||||
LIB RRFRED
|
||||
OPT LIS
|
||||
|
||||
TCOL1 EQU GETLRM
|
||||
TCOL2 EQU GETLRM+1
|
||||
|
||||
ORG TABORG HIGH SCORE TABLE ORIGIN
|
||||
|
||||
* PD - FONT SIZE
|
||||
* PD+1 NUMBER PER COLUMN
|
||||
* PD+2 NUMBER OF COLUMNS LEFT
|
||||
* PD+3 HEIGHT SPACING BETWEEN ROWS
|
||||
* PD+4 WIDTH SPACING BETWEEN COLUMNS
|
||||
* PD+5 NUMBER LEFT IN THIS COLUMN
|
||||
* PD+6 INDEX OF CURRENT ENTRY
|
||||
* PD+7 X ADDRESS DURING SLEEP
|
||||
* PD+9 CMOS PTR DURING SLEEP
|
||||
* PD+11 RETURN ADDRESS SAVE
|
||||
* PD+18 TOP LEVEL RETURN ADDRESS
|
||||
* PD+15 X RETURN
|
||||
* PD+16 Y RETURN
|
||||
* PD+17 NUMBER UNTIL SLEEP
|
||||
|
||||
TABLE PULS D GET RETURN
|
||||
LDU CRPROC
|
||||
STD PD+18,U SAVE "RETURN ADDRESS"
|
||||
MAKP LOOPP START THE COLORING PROCESS
|
||||
JSR FRAMER PUT OUT THE FRAME
|
||||
LDA #$99
|
||||
STA TCOL1
|
||||
LDA #$CC
|
||||
STA TCOL2
|
||||
LDY #TODAYS POINT AT FIRST TODAYS SCORE
|
||||
LDU CRPROC POINT RIGHT
|
||||
LDA #7 USE 7 FONT
|
||||
STA PD,U
|
||||
LDD #$502 5 PER COLUMN, 2 COLUMNS
|
||||
STD PD+1,U
|
||||
LDD #$934
|
||||
STD PD+3,U 7 HEIGHT, 50 WIDTH
|
||||
LDA #1 START WITH INDEX OF 1
|
||||
STA PD+6,U INDEX POINTER
|
||||
LDX #$1A35 UPPER LEFT OF PLACE TO DO IT
|
||||
JSR PRJNK PRINT THE STUFF
|
||||
LDA #$AA
|
||||
STA TCOL1 NEW COLOR
|
||||
LDA #$DD
|
||||
STA TCOL2
|
||||
LDY #GODSCR+34
|
||||
JSR CLSET SET THE COLOR
|
||||
LDX #GODSCR+38 POINT AT LAST CHAR
|
||||
TABLE1 JSR RCMOSA GET A CHAR
|
||||
LEAX -4,X
|
||||
CMPA #$3A SPACE??
|
||||
BNE TABLE2 NOPE
|
||||
CMPX #GODSCR ARE WE POINTING AT FIRST??
|
||||
BHS TABLE1
|
||||
TABLE2 LEAX 2,X POINT AT FIRST NON BLANK
|
||||
PSHS X SAVE ON STACK
|
||||
LDX #$157A PLACE FOR GOD
|
||||
LDA #$31
|
||||
JSR PR57V
|
||||
LDA #$5C RIGHT PAREN
|
||||
JSR PR57V
|
||||
LEAX $300,X SPACE OVER
|
||||
LDY #GODSCR
|
||||
TABLE3 EXG X,Y SWAP CMOS, CURSOR
|
||||
JSR RCMOSA GET A LETTER
|
||||
EXG X,Y RESTORE CURSOR
|
||||
JSR PR57V PRINT IT
|
||||
CMPY ,S SEE IF WE'RE DOWN TO SPACES ONLY
|
||||
BLS TABLE3
|
||||
LEAX $200,X SPACE OVER
|
||||
LDY #GODSCR+40 POINT AT SCORE
|
||||
JSR PRSCOR PRINT OUT A SCORE (FONT IS 7 IN PD,U)
|
||||
|
||||
STX XTEMP SAVE X
|
||||
LDX #GA2
|
||||
JSR RCMOSA
|
||||
CMPA #3
|
||||
BEQ NOINTS
|
||||
LDX XTEMP
|
||||
|
||||
LEAX $500,X MOVE FOR INITIALS
|
||||
LDA #$5B LEFT PAREN
|
||||
JSR PR57V
|
||||
LDY #GODINT
|
||||
LDB #3
|
||||
TABL33 EXG X,Y
|
||||
JSR RCMOSA
|
||||
EXG X,Y
|
||||
JSR PR57V
|
||||
DECB
|
||||
BNE TABL33
|
||||
|
||||
LDA #$5C RIGHT PAREN
|
||||
JSR PR57V
|
||||
|
||||
NOINTS LDU CRPROC
|
||||
LDA #5 FONT
|
||||
STA PD,U
|
||||
LDD #$C03 9 ROWS BY FOUR COLUMNS
|
||||
STD PD+1,U
|
||||
LDD #$728 SPACING
|
||||
STD PD+3,U
|
||||
LDA #2 FIRST INDEX
|
||||
STA PD+6,U
|
||||
LDX #$1488 PLACE TO START
|
||||
LDY #CMSCOR PLACE OF SCORES
|
||||
BSR PRJNK
|
||||
|
||||
LDA #SCRMES PUT OUT HEADERS ETC.
|
||||
JSR WRD7V DO IT
|
||||
|
||||
MAKP DECAZ
|
||||
MAKP COLA
|
||||
MAKP COLC
|
||||
MAKP COLD
|
||||
|
||||
LDU CRPROC
|
||||
LDA #200
|
||||
STA PD,U NUMBER OF FRAMES TO FREEZE
|
||||
TAB888 NAP 3,TABLE6
|
||||
TABLE6 DEC PD,U
|
||||
BNE TAB888
|
||||
|
||||
LDA #$FF
|
||||
STA PD,U
|
||||
TAB777 NAP 4,TAB999
|
||||
TAB999 LDA PIA3
|
||||
ANDA #$3 ONLY 2 SWS HERE
|
||||
ORAA PIA2 ANY PRESSED?
|
||||
BEQ TABLE7 NONE PRESSED
|
||||
DEC PD,U 1 LESS COUNT
|
||||
BNE TAB777
|
||||
|
||||
TABLE7 JMP [PD+18,U] RETURN
|
||||
|
||||
PRJNK PULS D GET RETURN
|
||||
LDU CRPROC
|
||||
STD PD+11,U SAVE RETURN
|
||||
|
||||
STX PD+15,U SAVE W,H RETURN STOPS
|
||||
STX PD+7,U
|
||||
STY PD+9,U
|
||||
|
||||
LDA PD+1,U GET NUMMBER PER COLUMN
|
||||
STA PD+5,U MAKE THIS NUMBER LEFT IN THIS COMUMN
|
||||
|
||||
TOD44 LDA #4 NUMBER OF ENTRIES PER SLEEP
|
||||
STA PD+17,U
|
||||
|
||||
LDX PD+7,U RESTORE POINTERS
|
||||
LDY PD+9,U
|
||||
|
||||
TOD33 BSR CLSET SET THE COLOR FOR THIS LINE
|
||||
|
||||
LDB PD+6,U GET INDEX
|
||||
LDA #INDMES
|
||||
JSR PWSUB PRINT "WORD" AT PROPER HEIGHT
|
||||
|
||||
PSHS X SAVE POINTER
|
||||
|
||||
LDB #3 3 CHARS
|
||||
TOD1 EXG X,Y GET CMOS POINTER IN X
|
||||
JSR RCMOSA GET THE LETTER
|
||||
EXG X,Y
|
||||
|
||||
JSR PCSUB PRINT THE CHARACTER PROPERLY
|
||||
DECB
|
||||
BNE TOD1
|
||||
|
||||
PULS X GET THE INITIAL POINTER BACK
|
||||
LDA PD,U GET HEIGHT OF FONT
|
||||
LDB #3
|
||||
MUL
|
||||
LSRB 1/2
|
||||
INCB ADD 2 PIXELS
|
||||
TFR B,A
|
||||
LDB PD,U CHECK FOR 5
|
||||
CMPB #5
|
||||
BNE TABFIX
|
||||
INCA 1 MORE IN CASE OF STUPID WWW
|
||||
TABFIX CLRB
|
||||
LEAX D,X PLACE FOR SCORE
|
||||
|
||||
JSR PRSCOR PRINT THE GUYS SCORE
|
||||
|
||||
LDA PD+6,U
|
||||
ADDA #1
|
||||
DAA
|
||||
STA PD+6,U
|
||||
|
||||
TFR X,D MOVE CURSOR OVER
|
||||
LDA PD+15,U RESTORE X
|
||||
ADDB PD+3,U ADD COLUMN SPACING
|
||||
TFR D,X RETURN AS POINTER
|
||||
|
||||
DEC PD+5,U 1 LESS IN CURRENT COLUMN
|
||||
BEQ TOD22 DONE WITH COLUMN
|
||||
|
||||
TOD66 DEC PD+17,U 1 LESS TILL SLEEP
|
||||
BNE TOD33
|
||||
|
||||
STX PD+7,U SAVE POINTERS
|
||||
STY PD+9,U
|
||||
|
||||
NAP 1,TOD44
|
||||
|
||||
TOD22 LDD PD+15,U GET CORNER POINTER
|
||||
ADDA PD+4,U ADD WIDTH SPACING
|
||||
STA PD+15,U
|
||||
TFR D,X AND SHOVE IN X
|
||||
|
||||
LDA PD+1,U GET NUMBER PER COLUMN
|
||||
STA PD+5,U NUMBER TO DO
|
||||
DEC PD+2,U NUMBER OF COLUMNS
|
||||
BNE TOD66
|
||||
|
||||
JMP [PD+11,U] RETURN NOW
|
||||
|
||||
* CLSET - Y POINTS AT SCORE-6...IF IT IS EQUAL TO
|
||||
* EITHER PLAYERS SCORE, AND NOT THE NEXT CMOS SCORE,
|
||||
* THEN THE COLOR IS CHANGED TO TCOL2, ELSE TCOL1
|
||||
|
||||
CLSET PSHS X,Y,D
|
||||
LEAY 6,Y POINT AT SCORE
|
||||
LDX #ZP1SCR CHECK PLAYER 1'S SCORE
|
||||
BSR CKME
|
||||
BEQ CLS1 IT WAS GOOD
|
||||
LDB PLRCNT HOW MANY PLAYERS
|
||||
DECB
|
||||
BEQ CLS2 NO GOOD
|
||||
LDX #ZP2SCR
|
||||
BSR CKME
|
||||
BNE CLS2 NO GOOD
|
||||
CLS1 BSR CKNXT SEE IF NEXT MATCHES
|
||||
BEQ CLS2 IT MATCHES...HOLD OFF
|
||||
LDA TCOL2 USE NORMAL COLOR
|
||||
BRA CLS3
|
||||
CLS2 LDA TCOL1
|
||||
CLS3 STA TEXCOL
|
||||
PULS X,Y,D,PC
|
||||
|
||||
* CKME BEQ FOR EQUAL
|
||||
* Y POINTS AT CMOS SCORE
|
||||
* X POINTS AT RAM SCORE
|
||||
|
||||
CKME PSHS Y
|
||||
EXG X,Y CMOSER USE X
|
||||
JSR RCMOSA
|
||||
ANDA #$F
|
||||
LDB #4
|
||||
CKME2 CMPA ,Y+ DO WE MATCH
|
||||
BNE CKME1 NOPE
|
||||
JSR RCMOSA GET NEXT
|
||||
DECB
|
||||
BNE CKME2
|
||||
CKME1 PULS Y,PC
|
||||
|
||||
CKNXT LEAY 1,Y PUSH PAST CHECKSUM
|
||||
LEAX SCRSIZ,Y X POINTS AT NEXT SCORE
|
||||
LDB #7 7 BYTES TO CHECK
|
||||
CKNXT1 LDA ,X+
|
||||
EORA ,Y+ LOWER GUYS
|
||||
ANDA #$F
|
||||
BNE CKBYE NOT EQUAL
|
||||
DECB
|
||||
BNE CKNXT1
|
||||
CKBYE RTS
|
||||
|
||||
PRSCOR EXG X,Y
|
||||
JSR RCMOSA
|
||||
JSR RCMOSB GET 2 BYTES OF SCORE
|
||||
EXG X,Y
|
||||
ANDA #$0F TAKE AWAY CHECK NIBBLE
|
||||
BNE PR2SC 2 PARTER
|
||||
TSTB ALL ZERO??
|
||||
BNE PR2SC
|
||||
LDA #HIGH3
|
||||
BRA PR3SC
|
||||
PR2SC PSHS Y
|
||||
TFR D,Y
|
||||
LDA #HIGH1
|
||||
JSR PWSUB PRINT WORD IN PROPER FONT
|
||||
PULS Y RESTOE Y
|
||||
LDA #AUDM2 USE AUDIT TEXT FOR LOW HALF
|
||||
PR3SC PSHS A SAVE MESSAGE
|
||||
EXG X,Y
|
||||
JSR RCMOSD GET THE STUFF
|
||||
EXG X,Y
|
||||
PSHS Y SAVE Y AGAIN
|
||||
TFR D,Y PRINTED STUFF IN Y
|
||||
LDA 2,S RESTORE MESSAGE NUMBER
|
||||
BSR PWSUB PRINT IT
|
||||
PULS Y RESTOE Y
|
||||
PULS A,PC AND RETURN
|
||||
|
||||
PWSUB PSHS U,X,A
|
||||
LDX #WRD7V
|
||||
LDA PD,U GET FONT
|
||||
CMPA #7 BIG??
|
||||
BEQ PWSUB1
|
||||
LDX #WRD5V SMALL
|
||||
PWSUB1 TFR X,U
|
||||
PULS A,X
|
||||
JSR ,U
|
||||
PULS U,PC
|
||||
|
||||
PCSUB PSHS U,X,A
|
||||
LDX #PR57V
|
||||
LDA PD,U
|
||||
CMPA #7
|
||||
BEQ PWSUB1
|
||||
LDX #PR35V
|
||||
BRA PWSUB1
|
||||
FCC ' ROBOTRON: 2084 '
|
||||
FCC ' COPYRIGHT 1982 WILLIAMS ELECTRONICS INC. '
|
||||
FCC ' ALL RIGHTS RESERVED '
|
||||
|
||||
* HASSLER UPPER LEFT IS $0308
|
||||
* HASSLER LOWER RIGHT IS $94F4 (BOTH INCLUSIVE)
|
||||
|
||||
FRAMER PULS D GET RETURN ADDRESS
|
||||
LDU CRPROC
|
||||
STD PD+8,U AND SAVE
|
||||
|
||||
LDX #PCRAM
|
||||
LDD #0
|
||||
FRAME7 STD ,X++
|
||||
CMPX #PCRAM+16
|
||||
BLO FRAME7
|
||||
*
|
||||
LDX #$60D TERMINAL POINT
|
||||
STX PD+16,U
|
||||
LDA #$11
|
||||
STA PD+14,U
|
||||
*
|
||||
FRAME3 LDX #$3E7D
|
||||
STX PD+10,U
|
||||
LDY #$597F
|
||||
STY PD+12,U
|
||||
|
||||
FRAME1 LDA #2
|
||||
STA PD+15,U SLEEP COUNT
|
||||
|
||||
LDX PD+10,U
|
||||
LDY PD+12,U
|
||||
LDA PD+14,U
|
||||
|
||||
FRAME2 JSR MARQ
|
||||
|
||||
CMPX PD+16,U
|
||||
BEQ FRBYE
|
||||
LEAX -$102,X
|
||||
LEAY $102,Y
|
||||
BSR GETA GET THE A TO USE
|
||||
|
||||
DEC PD+15,U
|
||||
BNE FRAME2
|
||||
|
||||
STA PD+14,U
|
||||
STX PD+10,U
|
||||
STY PD+12,U
|
||||
NAP 1,FRAME1 NIGHTY NIGHT
|
||||
|
||||
GETA PSHS B
|
||||
LDB PD+16,U
|
||||
CMPB #6 WRITING??
|
||||
BNE GETA1 NOPE...LEAVE THE ZERO
|
||||
SUBA #$11
|
||||
BNE GETA1
|
||||
LDA #$88
|
||||
GETA1 PULS B,PC
|
||||
|
||||
FRBYE LDX PD+16,U CHECK LIMIT
|
||||
CMPX #$60D
|
||||
BEQ FRCONT NOT DONE YET
|
||||
JMP [PD+8,U] RETURN
|
||||
FRCONT LDX #$E1D THIS IS OTHER LIMIT
|
||||
STX PD+16,U NEW LIMIT
|
||||
CLR PD+14,U STORE ZEROS
|
||||
JMP FRAME3
|
||||
|
||||
LOOPP LDX #COLTAB GET FIRST OF COLOR TABLE
|
||||
LOOP1 LDA ,X+ GET THE NEXT BYTE
|
||||
BSR OUTCOL CYCLE IT IN
|
||||
STX PD,U SAVE X
|
||||
NAP 3,LOOP2
|
||||
LOOP2 LDX PD,U RESTORE X
|
||||
CMPX #TABEDD
|
||||
BLO LOOP1
|
||||
BRA LOOPP
|
||||
|
||||
OUTCOL LDY #PCRAM+1 START AT 1
|
||||
OUTC1 LDB 1,Y
|
||||
STB ,Y+
|
||||
CMPY #PCRAM+8
|
||||
BLO OUTC1 NOT THERE YET
|
||||
STA ,Y
|
||||
RTS
|
||||
|
||||
COLA LDY #PCRAM+$A Y = PCRAM LOCATION
|
||||
LDX #CATAB X = PLACE TO START
|
||||
COMMM LDD #CATAB D = START OF TABLE
|
||||
|
||||
COLENT STD PD+4,U
|
||||
STY PD+2,U
|
||||
BRA COLA4
|
||||
|
||||
COLA3 LDX PD+4,U
|
||||
COLA4 STX PD,U
|
||||
COLA5 LDX PD,U
|
||||
LDA ,X+ GET NEXT BYTE
|
||||
BEQ COLA3
|
||||
STA [PD+2,U]
|
||||
STX PD,U
|
||||
NAP 4,COLA5
|
||||
|
||||
CATAB FCB $7,$7,$7,$7,$7,$7,$7,$7,$57,$A7,$FF,$FF,$A7,$57,0
|
||||
|
||||
CCTAB FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$E4,$D2,$C0,$C0,$C0
|
||||
FCB $D2,$E4,0
|
||||
|
||||
DECAZ LDX #CATAB+7 OUT OF PHASE PLEASE
|
||||
LDY #PCRAM+9
|
||||
BRA COMMM
|
||||
|
||||
COLC LDX #CCTAB+7
|
||||
LDY #PCRAM+$C
|
||||
COLLL LDD #CCTAB
|
||||
BRA COLENT
|
||||
|
||||
COLD LDX #CCTAB
|
||||
LDY #PCRAM+$D
|
||||
BRA COLLL
|
||||
|
||||
COLTAB FCB $37,$2F,$27,$1F,$17,$47,$47,$87
|
||||
FCB $87,$C7,$C7,$C6,$C5,$CC,$CB,$CA
|
||||
FCB $C0,$D0,$98,$38,$33
|
||||
TABEDD EQU *
|
||||
|
||||
UPPER EQU PD
|
||||
LOWER EQU PD+1
|
||||
LEFT EQU PD+2
|
||||
RIGHT EQU PD+3
|
||||
HFLAV EQU PD+4
|
||||
LFLAV EQU PD+5
|
||||
|
||||
* MARQ - DRAW A LINKY MARQUIS. PASS UPPER LEFT IN X.
|
||||
* PASS LOWER RIGHT IN Y.
|
||||
* RANGES ARE INCLUSIVE. LOWER-UPPER MUST BE EVEN (ODD INCLUSIVE)
|
||||
* A CONTAINS THE HIGH AND LOW FLAVOR COLORS (<OUTER><INNER>)
|
||||
|
||||
MARQ PSHS X,Y,D
|
||||
LDU CRPROC
|
||||
ANDA #$F0
|
||||
STA HFLAV,U SAVE FLAVOR COLORS
|
||||
LDA ,S
|
||||
ANDA #$0F
|
||||
STA LFLAV,U
|
||||
TFR X,D
|
||||
STA LEFT,U
|
||||
STB UPPER,U
|
||||
TFR Y,D
|
||||
STA RIGHT,U
|
||||
STB LOWER,U
|
||||
SUBB UPPER,U LOWER-UPPER ODD???
|
||||
RORB CHECK
|
||||
BCC MARQ1 NOPE
|
||||
DEC LOWER,U NOT THAT LOW...OK?
|
||||
|
||||
MARQ1 LDA UPPER,U DO TOP LINE
|
||||
BSR HHIGH HIGH PART OF TOP HORIZONTAL LINE
|
||||
INCA
|
||||
BSR HLOW LOW PART
|
||||
*
|
||||
LDA LOWER,U
|
||||
BSR HHIGH 1 LESS FOR GEN PURP
|
||||
DECA
|
||||
BSR HLOW
|
||||
*
|
||||
LDA LEFT,U LEFT BYTE
|
||||
BSR VHIGH HIGH FLAVOR STUFF IN A VERT LINE
|
||||
BSR VLOW LOW FLAVOR STUFF IN A VERT LINE
|
||||
*
|
||||
LDA RIGHT,U
|
||||
BSR VHIGH
|
||||
DECA
|
||||
BSR VLOW
|
||||
PULS D,X,Y,PC
|
||||
|
||||
* VHIGH - PLOT VERTICAL LINE FROM [UPPER TO LOWER]
|
||||
* CONSISTING OF EVERY OTHER BYTE GETTING THE HIGH NIBBLE COLOR
|
||||
* A HAS THE X TO USE
|
||||
|
||||
VHIGH PSHS D,X
|
||||
BSR SETUPV SETUP X,B
|
||||
INCB 1 MORE TO BE INCLUSIVE
|
||||
LDA HFLAV,U GET HIGH FLAVOR
|
||||
VHIGH1 STA ,X++ STORE THE BYTE
|
||||
DECB
|
||||
BNE VHIGH1
|
||||
PULS D,X,PC
|
||||
|
||||
VLOW PSHS D,X
|
||||
BSR SETUPV SETUP X,B
|
||||
LEAX 1,X MOVE X UP 1
|
||||
LDA LFLAV,U USE LOW FLAVOR
|
||||
BRA VHIGH1
|
||||
|
||||
SETUPV LDB UPPER,U GET UPPER Y
|
||||
TFR D,X THIS IS PONTER
|
||||
LDB LOWER,U
|
||||
SUBB UPPER,U THIS IS GUARANTEED EVEN
|
||||
LSRB 1/2 PLEASE (EVERY 2 IS PLOTTED)
|
||||
RTS
|
||||
|
||||
* HHIGH - THIS ROUTINE PLOTS HIGH COLOR IN THE HIGH HALF OF
|
||||
* CONSECUTIVE HORIZONTAL PIXELS GOING FROM
|
||||
* [LEFT TO RIGHT] AT THE HEIGHT GIVEN IN REGISTER A.
|
||||
|
||||
HHIGH PSHS X,D
|
||||
BSR SETUPH SETUP COUNT IN B, X POINTS AT FIRST BYTE
|
||||
INCB ADD 1 TO MAKE IT INCLUSIVE
|
||||
LDA HFLAV,U GET THE DATA BYTE
|
||||
HHIGH1 STA ,X STORE 1
|
||||
LEAX $100,X PUSH TO NEXT
|
||||
DECB 1 LESS
|
||||
BNE HHIGH1
|
||||
PULS X,D,PC
|
||||
|
||||
* HLOW - THIS ROUTINE PLOTS LOW COLOR IN THE LOW HALF OF
|
||||
* CONSECUTIVE HORIZONTAL PIXELS GOING FROM
|
||||
* [LEFT TO RIGHT) AT THE HEIGHT GIVEN IN REGISTER A.
|
||||
|
||||
HLOW PSHS X,D
|
||||
BSR SETUPH
|
||||
LDA LFLAV,U USE LOW FLAVOR
|
||||
BRA HHIGH1 AND DO NORMAL PROCESSING ABOVE
|
||||
|
||||
SETUPH TFR A,B MOVE Y OVER
|
||||
LDA LEFT,U GET LEFT X
|
||||
TFR D,X MAKE POINTER
|
||||
LDB RIGHT,U
|
||||
SUBB LEFT,U FIND DIFFERENCE (EXCLUSIVE
|
||||
RTS AND RETURN
|
||||
|
||||
END
|
|
@ -0,0 +1,849 @@
|
|||
OPT NOL
|
||||
LIB RRFRED
|
||||
OPT LIS
|
||||
*
|
||||
ORG RAMALS
|
||||
SW0ST RMB 1
|
||||
SW0SCN RMB 1
|
||||
SW2ST RMB 1
|
||||
SW2SCN RMB 1
|
||||
SW3ST RMB 1
|
||||
SW3SCN RMB 1
|
||||
SW2STI RMB 1
|
||||
SW2SCI RMB 1
|
||||
SW3STI RMB 1
|
||||
SW3SCI RMB 1
|
||||
|
||||
* PSEUDO DMA
|
||||
RCONT RMB 1 THESE ARE THE PASSED REGISTERS
|
||||
RCONST RMB 1
|
||||
RORIG RMB 2
|
||||
RDEST RMB 2
|
||||
RHORIZ RMB 2
|
||||
|
||||
DHORIZ RMB 1 THESE ARE THE DYNAMICALLY CHANGING
|
||||
DVERT RMB 1 REGISTERS
|
||||
DORIG RMB 2
|
||||
DDEST RMB 2
|
||||
|
||||
DFL RMB 1 FLAVOR SAVOR
|
||||
NEWROW RMB 1 NEW ROW FLAG
|
||||
DMATMP RMB 2
|
||||
|
||||
DIV RMB 6 6 BYTES OF DIVIDEND
|
||||
DIVTMP RMB 6
|
||||
DIVSOR RMB 6 6 BYTES OF DIVISOR
|
||||
QUO RMB 4
|
||||
DVTEMP RMB 2
|
||||
|
||||
****************************** STUFF FOR HORIZ EXPLOSION
|
||||
|
||||
*
|
||||
* EXPLODING OBJECT DATA STRUCTURE
|
||||
*
|
||||
ORG HXTAB PLACE FOR DATA
|
||||
|
||||
EX EQU *
|
||||
NEXTZ RMB 2 LIST POINTER
|
||||
PICPTZ RMB 2 POINTER TO DATA
|
||||
XCENTZ RMB 1 SCREEN Y CENTER
|
||||
XOFZ RMB 1 OFFSET IN Y TO OBJECT CENTER (PIXELS) (0-HEIGHT)
|
||||
XSIZEZ RMB 2 CURRENT Y POINT SPACING
|
||||
FRAMEZ RMB 1 FRAMES TO RUN IN EFFECT
|
||||
ULZ RMB 2 UPPER LEFT
|
||||
WHZ RMB 2 WIDTH,HEIGHT
|
||||
DMAWHZ RMB 2 DMA HEIGHT WIDTH
|
||||
DMACNZ RMB 2 DMA CONTROL RET
|
||||
XHITEZ RMB 1
|
||||
DATAZ RMB 7*16*2 RESERVE FOR DATA IN VERTICAL FORMAT
|
||||
ESIZEZ EQU *
|
||||
|
||||
NEXT EQU NEXTZ-EX
|
||||
PICPTR EQU PICPTZ-EX
|
||||
XCENT EQU XCENTZ-EX
|
||||
XOF EQU XOFZ-EX
|
||||
XSIZER EQU XSIZEZ-EX
|
||||
FRAMES EQU FRAMEZ-EX
|
||||
UL EQU ULZ-EX
|
||||
WH EQU WHZ-EX
|
||||
DMAWH EQU DMAWHZ-EX
|
||||
DMACNT EQU DMACNZ-EX
|
||||
XHITE EQU XHITEZ-EX
|
||||
DATA EQU DATAZ-EX
|
||||
EXSIZE EQU ESIZEZ-EX
|
||||
|
||||
RMB ((8-1)*EXSIZE) NUMBER OF BLOCKS
|
||||
|
||||
EXEND EQU *
|
||||
|
||||
ORG HXRAM (BASE PAGE)
|
||||
|
||||
XSIZE RMB 1 DISTANCE BETWEEN Y POINTS THIS FRAME
|
||||
EXPTR RMB 2
|
||||
APPTR RMB 2
|
||||
EXFREE RMB 2
|
||||
WIDE RMB 1
|
||||
TEMP1 RMB 2
|
||||
TEMP2 RMB 1
|
||||
|
||||
****************************************************************
|
||||
|
||||
ORG TSTORG
|
||||
JMP PWRUP
|
||||
JMP ADVSWZ
|
||||
JMP AUTCYC
|
||||
JMP HXINV
|
||||
JMP HEXSTV
|
||||
JMP HAPSTV
|
||||
JMP HXUPDV
|
||||
FDB BSLOOP
|
||||
FDB ERLOOP
|
||||
FDB L2V
|
||||
FDB L0V
|
||||
|
||||
LIB RRHX4
|
||||
|
||||
*
|
||||
*** POWER UP ROUTINE
|
||||
*
|
||||
PWRUP ORCC #$FF NO INTERRUPTS ETC.
|
||||
LDS #HSTK IF AND WHEN WE DECIDE TO USE THE STACK
|
||||
CLR PIA0+1
|
||||
CLR PIA0
|
||||
LDA #$3C SET LED 3 TO 1 (WE'RE MAKING AN F TO BLANK)
|
||||
STA PIA0+1
|
||||
CLR PIA1+1
|
||||
LDA #$C0 BITS 6,7 TO OUTPUTS (LEDS)
|
||||
STA PIA1
|
||||
LDA #$3C SET BIT 2 TO 1
|
||||
STA PIA1+1 CLEAR CB2 (LED)
|
||||
LDA #$C0 CLEAR LEDS
|
||||
STA PIA1 SET BITS 0,1
|
||||
LDA #1
|
||||
STA RWCNTL MAKE SURE WE COPY FROM ROM!
|
||||
LDX #CRTAB
|
||||
LDY #CRAM
|
||||
PWRUP0 LDD ,X++
|
||||
STD ,Y++
|
||||
CMPX #CRTAB+16
|
||||
BLO PWRUP0
|
||||
LDA #2
|
||||
LDY #PWRUP1
|
||||
LDX #0
|
||||
JMP RAMTST DO A RAM TEST.
|
||||
PWRUP1 LDY #PWRUP4
|
||||
JMP ROMTST
|
||||
PWRUP4 LDA #$34 PUT A ZERO IN THE LED.
|
||||
STA PIA0+1
|
||||
STA PIA1+1
|
||||
CLR PIA1
|
||||
LDA #RAM>>8
|
||||
TFR A,DP
|
||||
LDS #HSTK
|
||||
JSR SCRCLR
|
||||
LDA #OKM
|
||||
JSR WRD7V INDICATE OK
|
||||
LDY #INIT DELAY TO JUMP INTO GAME.
|
||||
LDA #7
|
||||
JMP DELA1
|
||||
|
||||
*
|
||||
* ADVANCE SWITCH
|
||||
*
|
||||
|
||||
ADVSWZ LDA #STYPE
|
||||
STA PTYPE,U
|
||||
LDA INDIAG ALREADY HERE??
|
||||
BNE SUCDV
|
||||
NAP 2,ADVSW2 MAKE SURE THAT ITS NOT NOISE
|
||||
ADVSW2 LDA PIA0 IS IT STILL PRESSED??
|
||||
BITA #$02 WELL??
|
||||
BNE ADVSW3 YEP
|
||||
SUCDV JMP SUCIDE NOPE...DIE
|
||||
ADVSW3 JSR GNCIDE CAN EVERYBODY
|
||||
JSR P1SW MAKE SURE PROPER DIRECTION FACED
|
||||
LDA #$FF
|
||||
STA INDIAG
|
||||
STA STATUS KEEP EM ALL OUT
|
||||
JSR INITCM INITIALIZE COLOR MATRIX
|
||||
JSR SCRCLR
|
||||
LDA PIA0 CHECK WHICH TYPE OF TEST
|
||||
RORA AUTO UP??
|
||||
LBCS BOOK YEP...GO TO BOOKKEEPING
|
||||
ORCC #$BF FIRQ ENABLED INDICATES NORMAL AGNOSTICS RUNNING
|
||||
LDY #DAG999
|
||||
JMP BLKLED BLANK THE LEDS
|
||||
DAG999 LDA #WDATA
|
||||
STA WDOG
|
||||
LDA PIA0 WAIT FOR ADVANCE SWITCH LET GO
|
||||
BITA #2
|
||||
BNE DAG999
|
||||
LDY #DIAG0
|
||||
JMP ROMTST DO THE ROM TEST
|
||||
DIAG0 LDA #RAM>>8
|
||||
TFR A,DP
|
||||
JSR SCRCLR CLEAR FOR ROMS MESSAGE.
|
||||
LDA #ROMOK
|
||||
JSR WRD7V PRINT THE MESSAGE
|
||||
LDB #3
|
||||
DIG111 LDX #$7000
|
||||
DIAG1 LDA #WDATA
|
||||
STA WDOG
|
||||
LDA PIA0
|
||||
BITA #2
|
||||
BNE DIAG2 CONTINUE IF ADVANCE PRESSED.
|
||||
LEAX -1,X
|
||||
CMPX #0
|
||||
BNE DIAG1
|
||||
DECB
|
||||
BNE DIG111
|
||||
DIG11Z LDY #DIAG2
|
||||
LDX #0
|
||||
LDA #$FF INDICATE FRONT DOOR
|
||||
JMP RAMTST DO THE RAM TEST.
|
||||
DIAG2 LDA #1
|
||||
STA RWCNTL
|
||||
LDA #RAM>>8
|
||||
TFR A,DP
|
||||
JSR SCRCLR
|
||||
LDA #RAMOK
|
||||
JSR WRD7V PRINT RAM OK MESSAGE
|
||||
DIAG22 LDA #WDATA
|
||||
STA WDOG
|
||||
LDA PIA0
|
||||
BITA #2
|
||||
BNE DIAG22 HOLD CONTROL UNTIL LET GO.
|
||||
RAMERJ LDX #$9800 RAM ERROR MESSAGE COMES HERE.
|
||||
CLRA
|
||||
DIAG3 STA ,X+ CLR USABLE MEMORY
|
||||
LDB #WDATA
|
||||
STB WDOG
|
||||
CPX #HSTK+1
|
||||
BLO DIAG3
|
||||
JSR INITCM COLOR MATRIX BACK
|
||||
LDD #$A55A
|
||||
STD HSEED
|
||||
STA INDIAG INDICATE THAT WE'RE AGNOSTICS
|
||||
JSR PINIT TIME TO LET THE SYSTEM TAKE OVER
|
||||
JSR INT20V GET OTHER STUFF IN PROPER SHAPE
|
||||
JSR P1SW
|
||||
LDA #$FF
|
||||
STA STATUS
|
||||
MAKP DIAG4 START A PROCESS TO CONTINUE
|
||||
BSR ZLED ZERO IN LED
|
||||
ANDCC #0 LET THE INTERRUPTS IN
|
||||
JMP EXECV GO!
|
||||
DIAG4 JSR AVWAIT WAIT FOR ADVANCE SWITCH.
|
||||
JSR CMTEST TEST CMOS.
|
||||
ANDCC #1 INTERRUPTS BACK ON LEAVE CARRY
|
||||
LDA #CMOK
|
||||
BCC DIAG66
|
||||
LDB #$2F INDICATE THAT ITS IN R/W HALF
|
||||
CMPX #CMOS+$100
|
||||
BHI DIAG5 IT WAS IN WRITABLE HALF
|
||||
LDB #$1F
|
||||
DIAG5 ORCC #$10 LOCK OUT THE INTERRUPTS
|
||||
LDS #DIAG55
|
||||
LDA #$3
|
||||
JMP PULSE
|
||||
DIAG55 LDS #HSTK
|
||||
BSR ZLED
|
||||
LDA #RAM>>8
|
||||
TFR A,DP
|
||||
ANDCC #$EF LET THE INTERRUPTS BACK
|
||||
LDA #CMERR
|
||||
CMPB #$1F
|
||||
BHI DIAG66
|
||||
LDA #CMDOOR
|
||||
DIAG66 JSR SCRCLR
|
||||
JSR WRD7V PRINT ONE OF THE TWO MESSAGES.
|
||||
* LDA #CMFD TELL HIM WHATS GOING ON
|
||||
* JSR WRD7V
|
||||
* NAP $C0,DMAP1
|
||||
*MAP1 JSR SCRCLR CLEAR OUT HOSER
|
||||
*MAP5 LDB #10
|
||||
* LDA #$3F
|
||||
* STA SOUND
|
||||
* LDA #5
|
||||
*MAP2 JSR DMASRT DO THE TEST
|
||||
* BCS DMAP3 ERROR
|
||||
* JSR AVCHK
|
||||
* BCS DMAP4 ADVANCE PRESSED
|
||||
* DECB
|
||||
* BNE DMAP2
|
||||
* LDA #$19 MAKE SOME SOUND DURING THIS
|
||||
* STA SOUND
|
||||
* LDB #30
|
||||
*MPA1 LDA #WDATA
|
||||
* STA WDOG
|
||||
* DECB
|
||||
* BNE DMPA1
|
||||
* BRA DMAP5
|
||||
*
|
||||
*MAP3 JSR SCRCLR
|
||||
* JSR INITCM
|
||||
* LDA #DMFAIL BAD BYTES
|
||||
* JSR WRD7V PRINT IT
|
||||
* BRA DMAP7
|
||||
*
|
||||
*MAP4 JSR SCRCLR
|
||||
* JSR INITCM
|
||||
* LDA #DMPASS
|
||||
* JSR WRD7V
|
||||
*MAP99 JSR AVCHK WAIT FOR RELEASE OF GUY THAT GOT US HERE
|
||||
* BCS DMAP99
|
||||
*
|
||||
*MAP7 JSR AVWAIT MOVE ON TO NEXT IMAGE
|
||||
*
|
||||
JSR AVWAIT
|
||||
LDU CRPROC
|
||||
CLR PD+2,U INDICATE FRONT DOOR TEST CALLING
|
||||
JSR SNDSRT START THE SOUND TEST
|
||||
DIAG6 JSR SNDCYC CYCLE ONE SOUND
|
||||
JSR AVCHK CHECK ADVANCE SWITCH.
|
||||
BCC DIAG6 NOT PRESSED, DO ANOTHER SOUND
|
||||
LDA #$3F
|
||||
STA SOUND
|
||||
NAP 1,DIAG77
|
||||
DIAG77 LDA #$2C SILENCE
|
||||
STA SOUND
|
||||
JSR AVWAIT NOW WAIT FOR RELEASE.
|
||||
JSR SWTEST DO A SWITCH TEST.
|
||||
JSR AVWAIT WAIT FOR RELESE
|
||||
JSR CRTEST DO THE COLOR MATRIX TEST
|
||||
JSR AVCHK HOLDING BUTTON??
|
||||
BCC DIAG78 NOPE...CONTINUE
|
||||
JSR AVWAIT WAIT FOR LET GO TIME.
|
||||
DIAG78 JMP TSTPAT DO SOME TEST PATTERNS THEN GO TO BOOK.
|
||||
|
||||
ZLED CLR PIA1 ZERO IN LED INDICATES ON LAST TEST OR DUN
|
||||
LDA #$34
|
||||
STA PIA0+1
|
||||
INCA
|
||||
STA PIA1+1
|
||||
RTS
|
||||
*
|
||||
INITCM LDX #CRTAB
|
||||
LDY #PCRAM
|
||||
LDU #CRAM
|
||||
ADVS90 LDD ,X++
|
||||
STD ,Y++
|
||||
STD ,U++
|
||||
CMPX #CRTAB+16
|
||||
BLO ADVS90
|
||||
RTS
|
||||
|
||||
CRTAB FCB $00,$07,$17,$C7,$1F,$3F,$38,$C0
|
||||
FCB $A4,$FF,$38,$17,$CC,$81,$81,$07 STARGATE COLOR TABLE
|
||||
*
|
||||
*** AUTO CYCLE
|
||||
*
|
||||
AUTCYC LDA #$3F MAKE LOOK LIKE FRONT DOOR TEST THANX TO MOTOROLA
|
||||
TFR A,CC SET TO AUTOCYCLE NO INTS PLEASE ETC.
|
||||
BSR INITCM COLOR MATRIX OK.....OK?
|
||||
LDA #$85 FIVE RAM PASSES, IN AUTOCYCLE
|
||||
LDX RAMALS+$600 TAKE A BYTE FORM THE RAM TEST
|
||||
LEAX $1234,X ADD A STUPID NUMBER TO VARY TEST
|
||||
LDY #AUTO1
|
||||
JMP RAMTST TEST THE RAM
|
||||
AUTO1 LDY #AUTO2
|
||||
JMP ROMTST
|
||||
AUTO2 LDA #RAM>>8
|
||||
TFR A,DP
|
||||
LDS #HSTK JUST IN CASE
|
||||
JSR CMTEST
|
||||
BCC AUTO4
|
||||
LDA #3 CMOS ERROR IN LED NOW
|
||||
BSR LEDME PUT IT OUT
|
||||
LDA #CMDOOR
|
||||
CMPX #CMOS+$100 WRITE PROTECT??
|
||||
BLS AUTO8
|
||||
LDA #CMERR
|
||||
AUTO8 LDB #WDATA
|
||||
STB WDOG ARF
|
||||
JSR SCRCLR
|
||||
JSR WRD7V PRINT THE ERROR
|
||||
AUTO5 LDA #WDATA
|
||||
STA WDOG
|
||||
BRA AUTO5
|
||||
AUTO4 BSR BARS
|
||||
LDY #AUTCYC
|
||||
LDA #4
|
||||
JMP DELA1
|
||||
|
||||
LEDME LDY #LEDME1 RETURN ADDRESS
|
||||
JSR PSSUB PUT OUT THE LOW HALF OF A
|
||||
LEDME1 RTS AND RETURN
|
||||
|
||||
*
|
||||
*** TEST PATTERNS
|
||||
*
|
||||
TSTPAT JSR CROSS DO FANCY HASSLER PAT.
|
||||
JSR AVWAIT WAIT FOR ADVANCE
|
||||
JSR SCRCLR
|
||||
LDA #$7 RED
|
||||
STA PCRAM
|
||||
JSR AVWAIT
|
||||
LDA #$38 GREEN
|
||||
STA PCRAM
|
||||
JSR AVWAIT
|
||||
LDA #$C0
|
||||
STA PCRAM BLUE
|
||||
JSR AVWAIT
|
||||
BSR BARS
|
||||
JSR AVWAIT
|
||||
JMP BOOK
|
||||
|
||||
HASSUB STX XTEMP
|
||||
LEAX $1000,X
|
||||
COL221 LEAX -$100,X
|
||||
CMPX #RAM INTO SCRATCHPAD??
|
||||
BHI COL221
|
||||
RTS
|
||||
|
||||
BARS LDX #PCRAM
|
||||
LDY #CBARCL
|
||||
LDU #CRAM
|
||||
BARS0 LDD ,Y++ GET A COLOR
|
||||
STD ,X++
|
||||
STD ,U++ IN CASE INTERRUPTS OFF
|
||||
LDA #WDATA
|
||||
STA WDOG
|
||||
CMPX #PCRAM+16
|
||||
BLO BARS0
|
||||
LDD #0
|
||||
LDX #0
|
||||
|
||||
COLOR1 BSR HASSUB
|
||||
|
||||
COLOR2 STD ,--X
|
||||
PSHS A
|
||||
LDA #WDATA
|
||||
STA WDOG
|
||||
PULS A
|
||||
CMPX XTEMP
|
||||
BNE COLOR2
|
||||
LEAX $900,X
|
||||
TSTA
|
||||
BNE COLOR3
|
||||
LDX #$D00
|
||||
COLOR3 ADDD #$1111
|
||||
BCC COLOR1
|
||||
RTS
|
||||
*
|
||||
CBARCL FCB $5,$5,$28,$28,$80,$80,$0,$0
|
||||
FCB $AD,$AD,$2D,$2D,$A8,$A8,$85,$85
|
||||
*
|
||||
* DON HASSLER CROSSHATCH
|
||||
*
|
||||
* RAM0 = BLACK - 00
|
||||
* RAM1 = WHITE - FF
|
||||
* RAM2 = BLUE - C0
|
||||
* RAM3 = GREEN - 38
|
||||
* RAM4 = RED - 07
|
||||
*
|
||||
CROSS JSR SCRCLR CLEAR SCREEN
|
||||
CLRA
|
||||
JSR SETPCR ZERO COLOR MATRIX
|
||||
LDA #$FF
|
||||
STA PCRAM+1
|
||||
LDA #$C0
|
||||
STA PCRAM+2
|
||||
LDA #$38
|
||||
STA PCRAM+3
|
||||
LDA #$7
|
||||
STA PCRAM+4
|
||||
LDY #WVERT MOVE WHITE VERTICALS
|
||||
LDD #$0101
|
||||
CROSS4 LDX 0,Y GET START PTR
|
||||
CROSS5 STD 0,X++ MOVE IN WHITE
|
||||
CMPX 2,Y CK IF LINE DONE
|
||||
BNE CROSS5 NO, KEEP GOING
|
||||
LEAY 4,Y INCR Y BY 4
|
||||
CMPY #WVERTX CK IF ALL DONE
|
||||
BNE CROSS4 NO, DO NEXT LINE
|
||||
LDA #$11 MOVE WHITE HORIZ
|
||||
LDY #WHORZ
|
||||
CROSS2 LDX 0,Y GET START PTR
|
||||
STX XTEMP
|
||||
CROSS3 STA 0,X MOVE IN WHITE
|
||||
INC XTEMP UPDATE PTR
|
||||
LDX XTEMP
|
||||
CMPX 2,Y CK IF DONE
|
||||
BNE CROSS3 NO, KEEP GOING
|
||||
LEAY 4,Y INCR Y BY 4
|
||||
CMPY #WHORZX CK IF ALL DONE
|
||||
BNE CROSS2 NO, DO NEXT LINE
|
||||
LDY #HORZZ MOVE IN COLOR HORIZ.
|
||||
CROSS6 LDX 0,Y GET START PTR
|
||||
STX XTEMP
|
||||
LDA 4,Y GET COLOR
|
||||
CROSS7 STA 0,X MOVE IN COLOR
|
||||
INC XTEMP
|
||||
LDX XTEMP
|
||||
CMPX 2,Y CK IF LINE DONE
|
||||
BNE CROSS7 NO, KEEP GOING
|
||||
LEAY 5,Y INCR Y BY 5
|
||||
CMPY #HORIZX CK IF ALL DONE
|
||||
BNE CROSS6 NO, DO NEXT LINE
|
||||
LDY #VERT MOVE IN COLOR VERTICAL
|
||||
CROSS8 LDX 0,Y GET START PTR
|
||||
LDA 4,Y GET COLOR
|
||||
CROSS9 STA 0,X+ MOVE IN COLOR
|
||||
CMPX 2,Y CK IF LINE DONE
|
||||
BNE CROSS9 NO, KEEP GOING
|
||||
LEAY 5,Y INCR Y BY 5
|
||||
CMPY #VERTX CK IF ALL DONE
|
||||
BNE CROSS8 NO, DO NEXT LINE
|
||||
LDA #$21 BLUE TOUCH UP
|
||||
STA $437E
|
||||
LDA #$20
|
||||
STA $937E
|
||||
LDX #$4B0A
|
||||
CROSSA SEI
|
||||
CLR RWCNTL
|
||||
LDA 0,X
|
||||
LDB #1
|
||||
STB RWCNTL
|
||||
CLI
|
||||
ANDA #$F0
|
||||
ORA #$02
|
||||
STA 0,X+
|
||||
CMPX #$4B6D
|
||||
BNE CROSSA
|
||||
LDX #$4B90
|
||||
CROSSB SEI
|
||||
CLR RWCNTL
|
||||
LDA 0,X
|
||||
LDB #1
|
||||
STB RWCNTL
|
||||
CLI
|
||||
ANDA #$F0
|
||||
ORA #$02
|
||||
STA 0,X+
|
||||
CMPX #$4BF3
|
||||
BNE CROSSB
|
||||
LDX #$0B18
|
||||
STX XTEMP MOVE IN DOTS
|
||||
CROSSC LDX XTEMP
|
||||
SEI
|
||||
CLR RWCNTL
|
||||
LDA 0,X OR IN DOT
|
||||
LDB #1
|
||||
STB RWCNTL
|
||||
CLI
|
||||
ANDA #$F0
|
||||
ORA #$01
|
||||
STA 0,X STORE DOT
|
||||
LDB XTEMP+1 UPDATE VERTICAL PTR
|
||||
ADDB #$22
|
||||
BCS CROSSD
|
||||
STB XTEMP+1
|
||||
BRA CROSSC
|
||||
CROSSD LDB #$18
|
||||
STB XTEMP+1 RE-INIT VERT. PTR
|
||||
LDB XTEMP
|
||||
ADDB #$10 UPDATE HORIZ PTR
|
||||
STB XTEMP
|
||||
CMPB #$9B CK IF DONE
|
||||
BNE CROSSC NO, KEEP GOING
|
||||
RTS
|
||||
*
|
||||
* CROSS HATCH DATA
|
||||
*
|
||||
WHORZ FDB $0407
|
||||
FDB $9407
|
||||
FDB $0429
|
||||
FDB $9429
|
||||
FDB $044B
|
||||
FDB $944B
|
||||
FDB $046D
|
||||
FDB $946D
|
||||
FDB $048F
|
||||
FDB $948F
|
||||
FDB $04B1
|
||||
FDB $94B1
|
||||
FDB $04D3
|
||||
FDB $94D3
|
||||
FDB $04F5
|
||||
FDB $94F5
|
||||
WHORZX EQU *
|
||||
WVERT FDB $0307
|
||||
FDB $03F5
|
||||
FDB $1307
|
||||
FDB $13F5
|
||||
FDB $2307
|
||||
FDB $23F5
|
||||
FDB $3307
|
||||
FDB $33F5
|
||||
FDB $4307
|
||||
FDB $43F5
|
||||
FDB $5307
|
||||
FDB $53F5
|
||||
FDB $6307
|
||||
FDB $63F5
|
||||
FDB $7307
|
||||
FDB $73F5
|
||||
FDB $8307
|
||||
FDB $83F5
|
||||
FDB $9307
|
||||
FDB $93F5
|
||||
WVERTX EQU *
|
||||
HORZZ FDB $4505
|
||||
FDB $5205
|
||||
FCB $44
|
||||
FDB $4506
|
||||
FDB $5206
|
||||
FCB $44
|
||||
FDB $4507
|
||||
FDB $5207
|
||||
FCB $00
|
||||
FDB $4508
|
||||
FDB $5208
|
||||
FCB $33
|
||||
FDB $4509
|
||||
FDB $5209
|
||||
FCB $33
|
||||
FDB $45F3
|
||||
FDB $52F3
|
||||
FCB $33
|
||||
FDB $45F4
|
||||
FDB $52F4
|
||||
FCB $33
|
||||
FDB $45F5
|
||||
FDB $52F5
|
||||
FCB $00
|
||||
FDB $45F6
|
||||
FDB $52F6
|
||||
FCB $44
|
||||
FDB $45F7
|
||||
FDB $52F7
|
||||
FCB $44
|
||||
FDB $047E
|
||||
FDB $437E
|
||||
FCB $22
|
||||
FDB $547E
|
||||
FDB $937E
|
||||
FCB $22
|
||||
HORIZX EQU *
|
||||
VERT FDB $026F
|
||||
FDB $028E
|
||||
FCB $04
|
||||
FDB $036F
|
||||
FDB $038E
|
||||
FCB $30
|
||||
FDB $936F
|
||||
FDB $938E
|
||||
FCB $00
|
||||
FDB $946F
|
||||
FDB $948E
|
||||
FCB $34
|
||||
VERTX EQU *
|
||||
*
|
||||
*** COLOR MATRIX TEST
|
||||
*
|
||||
CRTEST PULS D GET RETURN
|
||||
LDU CRPROC
|
||||
STD PD+6,U SAVE
|
||||
JSR SCRCLR CLEAR OUT BABY
|
||||
LDA #CMTSTM PRINT THE MESSAGE
|
||||
JSR WRD7V
|
||||
LDA #$80
|
||||
STA PD,U
|
||||
CRTST1 NAP 1,CRTST2
|
||||
CRTST2 JSR AVCHK PRESS??
|
||||
BCS CMTBYE NOPE
|
||||
DEC PD,U DONE WITH DELAY??
|
||||
BNE CRTST1
|
||||
LDA COLRMT GET FIRST COLOR.
|
||||
BSR SETPCR STORE IT DOWN
|
||||
BSR RAMBAR SET UP MEMORY.
|
||||
CRTTZZ LDX #COLRMT TABLE TO STORE
|
||||
CRTST3 LDA ,X+ GET A COLOR
|
||||
LDU CRPROC
|
||||
STX PD+2,U
|
||||
BSR SETPCR STORE IT THROUGH
|
||||
LDA #$80
|
||||
STA PD,U
|
||||
CRTST4 NAP 1,CRTST5
|
||||
CRTST5 JSR AVCHK ADVANCE??
|
||||
BCS CMTBYE YEP
|
||||
DEC PD,U
|
||||
BNE CRTST4
|
||||
LDX PD+2,U RESTORE POINTER
|
||||
CMPX #COLRMT+8
|
||||
BLO CRTST3
|
||||
BRA CRTTZZ CONTINUE THROUGH
|
||||
CMTBYE LDU CRPROC
|
||||
JMP [PD+6,U]
|
||||
|
||||
RAMBAR LDX #$0
|
||||
LDY #COLRMD NUMBERS TO PUT IN BARS
|
||||
RAMBA1 JSR HASSUB SAVE OUR X
|
||||
LDA ,Y+
|
||||
TFR A,B
|
||||
RAMBA2 STD ,--X
|
||||
CMPX XTEMP
|
||||
BNE RAMBA2
|
||||
LEAX $900,X
|
||||
TSTA
|
||||
BNE RAMBA3
|
||||
LDX #$D00
|
||||
RAMBA3 CMPY #COLRMD+16
|
||||
BNE RAMBA1
|
||||
RTS
|
||||
|
||||
COLRMT FCB $02,$03,$04,$10,$18,$20,$40,$80
|
||||
COLRMD FCB $00,$FF,$11,$EE,$22,$DD,$33,$CC
|
||||
FCB $44,$BB,$55,$AA,$66,$99,$77,$88
|
||||
|
||||
SETPCR LDX #PCRAM
|
||||
SETPC1 STA ,X+
|
||||
CMPX #PCRAM+16
|
||||
BLO SETPC1
|
||||
RTS
|
||||
*
|
||||
*** SWITCH TEST
|
||||
*
|
||||
|
||||
SWMH EQU 44 HEIGHT OF FIRST MESSAGE
|
||||
|
||||
SWTEST PULS D GET RETURN ADDR
|
||||
LDU CRPROC
|
||||
STD PD+6,U
|
||||
LDA #10
|
||||
STA PD+4,U DELAY COUNTER FOR EXIT
|
||||
JSR SCRCLR CLEAR IT PLEASE
|
||||
LDA #SWTESM SWITCH TEST MESSAGE.
|
||||
JSR WRD7V
|
||||
LDU #RAMALS
|
||||
SWTES0 CLR ,U+
|
||||
CMPU #SW3SCI+1
|
||||
BLS SWTES0
|
||||
SWTES2 LDU #STABP
|
||||
BSR SWSCN0
|
||||
SWTES1 LDA #$34
|
||||
STA PIA3+1
|
||||
BSR SWSCN0 SCAN THE COCKTAIL SIDE
|
||||
LDA #$3C
|
||||
STA PIA3+1
|
||||
BSR SWDISP
|
||||
JSR AVCHK ADVANCE PRESSED?
|
||||
BCC SWT999 NOPE.
|
||||
LDU CRPROC
|
||||
DEC PD+4,U
|
||||
BEQ SWTBYE
|
||||
SWT999 NAP 1,SWTES2
|
||||
|
||||
SWTBYE LDU CRPROC
|
||||
JMP [PD+6,U] "RETURN"
|
||||
|
||||
SWSCN0 LDX ,U++ GET ADDRESS OF PORT
|
||||
BEQ SWSCN5 DONE
|
||||
LDY ,U++ GET ADDRESS TO STORE STATE
|
||||
LDA ,X GET NEW STATE
|
||||
EORA ,Y SEE WHERE DIFFERENT
|
||||
STA 1,Y AND SAVE AS DIFFERENCE BYTE.
|
||||
BRA SWSCN0
|
||||
SWSCN5 RTS
|
||||
|
||||
SWDISP LDU #SPHTAB WE'LL WALK THROUGH SWITCH PHRASE TABLE
|
||||
LDY #RAMALS WALK THROUGH THE SCANNED STUFF.
|
||||
SWDIS4 LDB #1 WALK FROM LSB
|
||||
SWDIS0 BITB 1,Y SEE IF THIS BIT CHANGED.
|
||||
BEQ SWDIS2
|
||||
BSR SWACT TAKE SOME ACTION
|
||||
SWDIS2 LEAU 3,U MOVE TO NEXT ENTRY
|
||||
ASLB SHIFT ONE DOWN
|
||||
BCC SWDIS0
|
||||
LEAY 2,Y TO NEXT BYTE
|
||||
CMPY #SW3SCI PAST TABLE
|
||||
BHI SWDIS9 YEP..DONE
|
||||
LDA PIA3 COCKTAIL
|
||||
BMI SWDIS4 YEP...FULL SCAN
|
||||
CMPY #SW3SCN NOPE..DONE WITH NORMAL SWITCHES??
|
||||
BLS SWDIS4 NOT DONE
|
||||
SWDIS9 RTS RETURN BABY.
|
||||
|
||||
SWACT PSHS B,X SAVE THE MASK
|
||||
LDA #$3F
|
||||
STA SOUND BRING SOUND LINES HIGH IN ANTICIPATION
|
||||
EORB ,Y INVERT THE BIT
|
||||
STB ,Y AND MAKE THAT THE NEW STATE
|
||||
LDB ,S RESTORE MASK
|
||||
BITB ,Y WHICH WAY DID IT GO
|
||||
BNE SWPRNT ON....PRINT A MESSAGE.
|
||||
LDB 2,U HEIGHT
|
||||
BEQ SWNOAC
|
||||
LDA #$40 X
|
||||
TFR D,X MAKE IT CURSOR
|
||||
LDD #$3006
|
||||
JSR BLKCLR CLEAR THE BLOCK
|
||||
PULS B,X,PC
|
||||
SWPRNT LDB 2,U GET HEIGHT
|
||||
BEQ SWNOAC
|
||||
LDA #$40 CURSOR
|
||||
TFR D,X
|
||||
LDB #$BB
|
||||
STB TEXCOL
|
||||
LDD ,U GET MESSAGE NUMBER,B (PLAYER NUMBER)
|
||||
JSR WRD5FV AND PRINT IT.
|
||||
LDA #$37
|
||||
STA SOUND MAKE A SOUND
|
||||
SWNOAC PULS B,X,PC AND RETURN.
|
||||
|
||||
STABP FDB PIA0,SW0ST
|
||||
FDB PIA2,SW2ST
|
||||
FDB PIA3,SW3ST
|
||||
FDB 0
|
||||
FDB PIA2,SW2STI
|
||||
FDB PIA3,SW3STI
|
||||
FDB 0
|
||||
|
||||
SPHTAB FCB SWMES1,0,SWMH AUTO UP
|
||||
FCB SWMES1+1,0,SWMH+7 ADVANCE
|
||||
FCB SWMES1+2,0,SWMH+14 RIGHT COIN
|
||||
FCB SWMES1+3,0,SWMH+21 HIGH SCORE RESET
|
||||
FCB SWMES1+4,0,SWMH+28 LEFT COIN
|
||||
FCB SWMES1+5,0,SWMH+35 CENTER COIN
|
||||
FCB SWMES1+6,0,SWMH+42 SLAM SWITCH
|
||||
FCB 0,0,0 UNUSED (SOUND HANDSHAKE)
|
||||
*
|
||||
FCB SWMES1+7,1,SWMH+49 FIRE (1)
|
||||
FCB SWMES1+8,1,SWMH+56 THRUST (1)
|
||||
FCB SWMES1+9,1,SWMH+63 SMARTBOMB (1)
|
||||
FCB SWMES1+10,1,SWMH+70 HYPERSPACE (1)
|
||||
FCB SWMES1+11,0,SWMH+77 START 2
|
||||
FCB SWMES1+12,0,SWMH+84 START 1
|
||||
FCB SWMES1+13,1,SWMH+91 REVERSE (1)
|
||||
FCB SWMES1+14,1,SWMH+98 DOWN (1)
|
||||
*
|
||||
FCB SWMES1+15,1,SWMH+105 UP (1)
|
||||
FCB SWMES1+16,1,SWMH+112 INVISO (1)
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
*
|
||||
FCB SWMES1+7,2,SWMH+119 FIRE (2)
|
||||
FCB SWMES1+8,2,SWMH+126 THRUST (2)
|
||||
FCB SWMES1+9,2,SWMH+133 SMART BOMB(2)
|
||||
FCB SWMES1+10,2,SWMH+140 HYPERSPACE (2)
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB SWMES1+13,2,SWMH+147 REVERSE (2)
|
||||
FCB SWMES1+14,2,SWMH+154 DOWN (2)
|
||||
*
|
||||
FCB SWMES1+15,2,SWMH+161 UP (2)
|
||||
FCB SWMES1+16,2,SWMH+168 INVISO (2)
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
FCB 0,0,0 UNUSED
|
||||
|
||||
LIB RRTEST2 INCLUDE SECOND HALF
|
||||
|
|
@ -0,0 +1,712 @@
|
|||
FDRET LDU #RAMERJ RAM ERROR RETURN
|
||||
BRA FDROM0
|
||||
|
||||
FDROM LDU #DIG11Z
|
||||
FDROM0 LDS #HSTK
|
||||
FDROM5 LDY #FDROM6
|
||||
LDA #1
|
||||
JMP DELA1
|
||||
FDROM6 LDA PIA0
|
||||
BITA #$2
|
||||
BNE FDROM5
|
||||
FDROM1 LDY #FDROM7
|
||||
LDA #1
|
||||
JMP DELA1
|
||||
FDROM7 LDA PIA0
|
||||
BITA #$2
|
||||
BEQ FDROM1
|
||||
FDROM2 LDY #FDROM8
|
||||
LDA #1
|
||||
JMP DELA1
|
||||
FDROM8 LDA PIA0
|
||||
BITA #2
|
||||
BNE FDROM2
|
||||
JMP ,U
|
||||
|
||||
AVWAIT PULS D
|
||||
LDU CRPROC
|
||||
STD PD+6,U
|
||||
AVWAIZ LDA PIA0 SEE IF ADVANCE PRESSED
|
||||
BITA #$2 WELL??
|
||||
BNE AVWAT2
|
||||
NAP 1,AVWAIZ WELL, WAIT FOR IT.
|
||||
AVWAT2 CLR PCRAM
|
||||
JSR SCRCLR
|
||||
BRA AVWAT5
|
||||
AVWAT4 LDA PIA0
|
||||
BITA #$2 WAIT FOR IT TO BE RELEASED
|
||||
BEQ AVWAT3
|
||||
AVWAT5 NAP 2,AVWAT4
|
||||
AVWAT3 JMP [PD+6,U]
|
||||
|
||||
AVCHK PSHS A
|
||||
LDA PIA0
|
||||
BITA #$2
|
||||
BEQ AVCHK1
|
||||
SEC
|
||||
PULS A,PC
|
||||
AVCHK1 CLC
|
||||
PULS A,PC
|
||||
|
||||
*
|
||||
* DISPLAY BOOKKEEPPING
|
||||
*
|
||||
|
||||
BOOK LDA #$FF
|
||||
STA STATUS
|
||||
JSR INITCM COLOR MATRIX PROPER.
|
||||
BSR AVCHK
|
||||
BCC BOOK3
|
||||
BSR AVWAIT WAIT FOR HIM TO LET GO.
|
||||
BOOK3 LDA #BOOKM
|
||||
JSR WRD7V PRINT THE BOOKKEEPING MESSAGE
|
||||
LDU #SLOT1
|
||||
LDA #AUDMES FIRST OF THE AUDIT MESSAGES
|
||||
BOOK0 PSHS A SAVE MESSAGE NUMBER
|
||||
JSR WRD7V PRINT IT.
|
||||
EXG U,X
|
||||
JSR RCMOSB GET THE TOP BYTE
|
||||
PSHS B
|
||||
JSR RCMOSD
|
||||
TFR D,Y
|
||||
PULS B
|
||||
EXG U,X
|
||||
BSR BOOKSB PRINT B,Y WITH APPROPRIATE BLANKING
|
||||
|
||||
PULS A RESTORE A
|
||||
INCA
|
||||
CMPU #BKEND
|
||||
BLO BOOK0 THANK YOU SIR, MAY I HAVE ANOTHER??
|
||||
*
|
||||
* COMPUTE AVERAGE PLAY TIME, AVERAGE LIVES PER GAME
|
||||
*
|
||||
|
||||
LDA #AVTIM
|
||||
JSR WRD7V
|
||||
|
||||
PSHS X
|
||||
LDX #BKTIME
|
||||
LDY #BKPLAY PLAYS
|
||||
JSR BCDIV DO THE DIVIDE
|
||||
PULS X
|
||||
|
||||
LDB QUO GET TOP OF QUOTIENT
|
||||
LDY QUO+1
|
||||
|
||||
BSR BOOKSB PRINT OUT TH 6 WITH THE RITE KIND OF BLANKING
|
||||
|
||||
LDA QUO+3 GET 100THS
|
||||
ANDA #$F 1/10
|
||||
STA DVTEMP SAVE
|
||||
|
||||
LDA QUO+3
|
||||
BITA #$10 1 IN THE 10'S
|
||||
BEQ BOOK45
|
||||
|
||||
ANDA #$EF TAKE THE BIT AWAY
|
||||
LSRA 1/2
|
||||
ADDA #5 RESTORE THE WHATEVER
|
||||
DAA
|
||||
BRA BOOK46
|
||||
|
||||
BOOK45 LSRA 1/2
|
||||
BOOK46 ADDA DVTEMP ADD THE 1/10
|
||||
DAA
|
||||
TFR A,B
|
||||
|
||||
LDA #AVTEND
|
||||
JSR WRD7V PUT OUT : END
|
||||
|
||||
LDA #AVPLA
|
||||
JSR WRD7V
|
||||
|
||||
PSHS X
|
||||
LDX #BKMEN
|
||||
LDY #BKPLAY PLAYS
|
||||
BSR BCDIV DO THE DIVIDE
|
||||
PULS X
|
||||
|
||||
LDB QUO GET TOP OF QUOTIENT
|
||||
LDY QUO+1
|
||||
|
||||
BSR BOOKSB PRINT OUT TH 6 WITH THE RITE KIND OF BLANKING
|
||||
|
||||
LDB QUO+3 GET 100THS
|
||||
LDA #AVPLEN
|
||||
JSR WRD7V
|
||||
|
||||
JSR AVWAIT
|
||||
JMP ADJV NOW GO DO ADJUSTMENT MODE
|
||||
|
||||
BOOKSB TSTB
|
||||
BEQ BOOK1
|
||||
LDA #AUDM1
|
||||
JSR WRD7V FULL SIX DIGITS USED
|
||||
LDA #AUDM2
|
||||
JSR WRD7V
|
||||
BRA BOOK2
|
||||
BOOK1 LDA #AUDM3
|
||||
JSR WRD7V
|
||||
BOOK2 RTS
|
||||
|
||||
CBCDA PSHS B
|
||||
JSR RCMOSA GET THE BYTE
|
||||
TFR A,B
|
||||
ANDA #$F
|
||||
CMPA #$9
|
||||
BLS CMCDB
|
||||
LDA #9
|
||||
CMCDB ANDB #$F0
|
||||
CMPB #$90
|
||||
BLS CMCDC
|
||||
LDB #$90
|
||||
CMCDC PSHS B
|
||||
ORA ,S+
|
||||
PULS B,PC
|
||||
|
||||
* DIVIDE - PASS X POINTS AT DIVIDEND
|
||||
* PASS Y POINTS AT DIVISOR
|
||||
* QUOTIENT 4 BYTES AT QUO IN BCD WITH 100THS
|
||||
* QUO: QQ QQ QQ . DD
|
||||
|
||||
BCDIV PSHS X,Y,D,U
|
||||
LDD #0
|
||||
STD QUO
|
||||
STD QUO+2 ZERO QUOTIENT IN CASE OF ZERO DIVIDE
|
||||
|
||||
BSR CBCDA GET 2 BYTES OF DIVIDEND
|
||||
STA DIV
|
||||
BSR CBCDA
|
||||
STA DIV+1
|
||||
BSR CBCDA
|
||||
STA DIV+2
|
||||
LDD #0
|
||||
STA DIV+3
|
||||
STD DIV+4
|
||||
STA DIVSOR+3
|
||||
STD DIVSOR+4
|
||||
|
||||
TFR Y,X POINT AT DIVISOR
|
||||
JSR CBCDA
|
||||
STA DIVSOR
|
||||
JSR CBCDA
|
||||
STA DIVSOR+1
|
||||
JSR CBCDA
|
||||
STA DIVSOR+2
|
||||
|
||||
BNE BCDIV1 NOT ZERO....WE MAY CONTIUE
|
||||
|
||||
LDD DIVSOR CHECK FOR ALL ZERO
|
||||
BEQ DIVEX EXIT...ZERO DIVISOR
|
||||
|
||||
BCDIV1 LDU #QUO+2 POINT AT UNITS QUOTIENT VALUE
|
||||
|
||||
BCDIV4 TST DIVSOR WE NEED TO SHIFT DIVISOR DOWN
|
||||
BNE BCDIV2 ITS IN THE RANGE WE LIKE
|
||||
|
||||
LEAU -1,U MOVE TO PROPER SIGNIF
|
||||
|
||||
LDB #5 BYTES TO SHIFT
|
||||
LDX #DIVSOR
|
||||
BCDIV3 LDA 1,X
|
||||
STA 0,X+
|
||||
DECB
|
||||
BNE BCDIV3
|
||||
CLR ,X SHIFT IN ZEROS
|
||||
|
||||
BRA BCDIV4
|
||||
|
||||
BCDIV2 LDX #DIV
|
||||
|
||||
BCDIV5 BSR SUBME DO A SUBTRACT
|
||||
BCC BCDIV5 DONE WITH THIS DIGIT
|
||||
|
||||
LDY #DIVSOR+5 LAST DIGIT
|
||||
LDB #5 SHIFT 3 DOWN
|
||||
|
||||
BCDIV6 LDA -1,Y GET PREVIOUS BYTE
|
||||
STA ,Y
|
||||
LEAY -1,Y PUSH BACK
|
||||
DECB
|
||||
BNE BCDIV6
|
||||
CLR ,Y SHIFTED
|
||||
|
||||
LEAU 1,U
|
||||
CMPU #QUO+3 LAST QUO BYTE
|
||||
BLS BCDIV5
|
||||
DIVEX PULS X,Y,D,U,PC
|
||||
|
||||
SUBME LDY #DIVSOR POINT AT DIVISOR
|
||||
LDA #0 MAKE SURE WE FIT
|
||||
SUBM1 LDB A,X GET DIVIDEND BYTE (MUST BE LARGER)
|
||||
SUBB ,Y+ WELL??
|
||||
BHI SUBGO IT IS
|
||||
BLO SUBBYE IT ISN'T..DONE
|
||||
|
||||
INCA
|
||||
CMPA #6
|
||||
BLO SUBM1
|
||||
|
||||
SUBGO LDB #6
|
||||
LDY #DIVTMP
|
||||
SUBGO1 LDA #$99 GET A BYTE
|
||||
SUBA 6,Y
|
||||
STA ,Y+
|
||||
DECB
|
||||
BNE SUBGO1
|
||||
|
||||
LDB #6
|
||||
CLC
|
||||
LDA #1
|
||||
SUBGO2 ADCA ,-Y
|
||||
DAA
|
||||
STA ,Y AND STORE BACK
|
||||
LDA #0
|
||||
DECB
|
||||
BNE SUBGO2
|
||||
|
||||
LDB #5 INITIAL OFFSET WHILE WALKING
|
||||
LDY #DIVTMP+6
|
||||
CLC
|
||||
SUBGO3 LDA ,-Y GET THE SUBTREHEND
|
||||
ADCA B,X "SUBTRACT" FROM DIVISOR
|
||||
DAA
|
||||
STA B,X STORE BACK TO DIVISOR
|
||||
DECB
|
||||
BPL SUBGO3
|
||||
LDA ,U GET CURRENT QUOTIENT BYTE
|
||||
ADDA #1
|
||||
DAA
|
||||
STA ,U KICK IT
|
||||
CLC
|
||||
RTS
|
||||
|
||||
SUBBYE SEC
|
||||
RTS
|
||||
|
||||
*
|
||||
* SOUND TEST
|
||||
*
|
||||
|
||||
SNDSRT JSR SCRCLR CLEAR THE SCREEN
|
||||
SNDSR1 LDD #$FE01 SET UP FOR SOUND LINE 1
|
||||
STD PD,U
|
||||
RTS
|
||||
|
||||
SNDCYC PULS D
|
||||
STD PD+6,U
|
||||
LDA #$3F
|
||||
STA SOUND
|
||||
NAP 1,SNDC55
|
||||
SNDC55 LDA #$2C
|
||||
STA SOUND
|
||||
NAP 1,SNDCY6
|
||||
SNDCY6 LDA #$3F
|
||||
STA SOUND
|
||||
NAP 1,SNDCY1
|
||||
SNDCY1 LDD PD,U
|
||||
ANDA #$3F
|
||||
STA SOUND
|
||||
LDA #SNDTEX
|
||||
JSR WRD7V
|
||||
LDA #$40
|
||||
STA PD+4,U
|
||||
SNDCY4 NAP 1,SNDCY5
|
||||
SNDCY5 JSR AVCHK ADVANCE???
|
||||
BCS SNDCY3 THEN GO
|
||||
DEC PD+4,U
|
||||
BNE SNDCY4
|
||||
SNDCY3 LDA PD+2,U SEE WHO SET THIS UP??
|
||||
BNE SNDC90 AUTOCY DID....ALWAYS ADVANCE
|
||||
LDA PIA0 CHECK MANUAL/AUTO
|
||||
RORA
|
||||
BCC SNDC91 MANUAL...DON'T MOVE ON.
|
||||
SNDC90 LDD PD,U
|
||||
SEC
|
||||
ROLA MOVE TO NEXT LINE
|
||||
INCB
|
||||
CMPB #7 UP TO LINE 7??
|
||||
BLO SNDCY2
|
||||
BSR SNDSR1
|
||||
SNDCY2 STD PD,U
|
||||
SNDC91 JMP [PD+6,U]
|
||||
|
||||
*
|
||||
* CMOS RAM TEST
|
||||
*
|
||||
|
||||
CMTEST LDX #CMOS
|
||||
LDY #RAMALS USE SAMRAM
|
||||
CMTST1 LDA ,X+ DON'T DO DOUBLES BECAUSE OF HARDWARE BRAIN DAM.
|
||||
STA ,Y+
|
||||
CMPX #CMOS+$400 DONE??
|
||||
BNE CMTST1
|
||||
LDB #6 ENOUGH ITERATIONS TO ASSURE
|
||||
ORCC #$3F STOP INTERRUPTS
|
||||
CMTST2 LDU HSEED
|
||||
LDY SEED
|
||||
LDX #CMOS
|
||||
CMTST3 JSR RAND
|
||||
STA ,X+
|
||||
LDA #WDATA
|
||||
STA WDOG
|
||||
CMPX #CMOS+$400 DONE??
|
||||
BNE CMTST3
|
||||
STY SEED RESTORE SEED
|
||||
STU HSEED
|
||||
LDX #CMOS
|
||||
CMTST4 JSR RAND
|
||||
EORA ,X+
|
||||
ANDA #$F
|
||||
BNE CMEROR
|
||||
LDA #WDATA
|
||||
STA WDOG
|
||||
CMPX #CMOS+$400
|
||||
BNE CMTST4
|
||||
DECB ANOTHER PASS...DONE??
|
||||
BNE CMTST2
|
||||
BSR RAMBAK
|
||||
CLC CLEAR IT FOR REAL
|
||||
RTS AND RETURN
|
||||
|
||||
RAMBAK LDU #RAMALS
|
||||
LDY #CMOS
|
||||
RAMBK0 LDA ,U+
|
||||
STA ,Y+
|
||||
CMPY #CMOS+$400
|
||||
BNE RAMBK0
|
||||
RTS
|
||||
|
||||
CMEROR BSR RAMBAK
|
||||
SEC
|
||||
RTS
|
||||
|
||||
* RAM TEST....Y = PLACE TO RETURN IF NO ERROR
|
||||
* X = SEED TO START WITH
|
||||
* A = ITERATIONS TO MAKE
|
||||
|
||||
RAMTST ORCC #$3F NO INTERRUPTS DURING TEST
|
||||
CLR RWCNTL SET TO RAM READ
|
||||
TFR A,DP COUNT AT DP.
|
||||
TFR X,D START WITH A PASSED SEED.
|
||||
RAM2 TFR D,U SAVE THE SEED
|
||||
RAM0 LDX #0 MEMORY POINTER
|
||||
RAM3 COMB DONT ASK
|
||||
BITB #9
|
||||
BNE RAM4
|
||||
COMB
|
||||
RORA
|
||||
RORB
|
||||
BRA RAM6
|
||||
RAM4 COMB
|
||||
BITB #9
|
||||
BNE RAM5
|
||||
RORA
|
||||
RORB
|
||||
BRA RAM6
|
||||
RAM5 LSRA
|
||||
RORB
|
||||
RAM6 STD ,X++
|
||||
EXG X,D SINCE IRQ RUNS OUT OF RAM, STROKE ROVER
|
||||
TSTB
|
||||
BNE RAM6B EVERY 256!
|
||||
LDB #WDATA
|
||||
STB WDOG HAVE A BONE..EVER BEEN BONED.....
|
||||
TFR DP,B CHECK IS NORMAL DIAGS
|
||||
CMPB #$FF FF MEANS FRONT DOOR
|
||||
BNE RAM6C
|
||||
LDB PIA0 CHECK FOR ADV.
|
||||
BITB #2
|
||||
BEQ RAM6C NOT PRESSED.
|
||||
JMP ,Y TIME TO RETURN
|
||||
RAM6C CLRB RETURN B TO ZERO
|
||||
RAM6B EXG X,D TRADE BACK
|
||||
CMPX #RAMTOP DONE??
|
||||
BNE RAM3 NOPE..CONTINUE
|
||||
*
|
||||
TFR U,D RESTORE SEED.
|
||||
LDX #0
|
||||
RAM7 COMB
|
||||
BITB #9
|
||||
BNE RAM8
|
||||
COMB
|
||||
RORA
|
||||
RORB
|
||||
BRA RAM10
|
||||
RAM8 COMB
|
||||
BITB #9
|
||||
BNE RAM9
|
||||
RORA
|
||||
RORB
|
||||
BRA RAM10
|
||||
RAM9 LSRA
|
||||
RORB
|
||||
RAM10 CMPD ,X++
|
||||
BNE RERROR RAM ERROR!
|
||||
RAM25 EXG X,D CHECK FOR END OF PAGE
|
||||
TSTB
|
||||
BNE RAM17
|
||||
LDB #WDATA
|
||||
STB WDOG
|
||||
TFR DP,B SEE IF NORMAL RUN
|
||||
CMPB #$FF FRONT DOOR??
|
||||
BNE RAM17C NOPE
|
||||
LDB PIA0 CHECK ADV.
|
||||
BITB #2
|
||||
BEQ RAM17C
|
||||
JMP ,Y JUST RETURN (NO ERRORS)
|
||||
RAM17C CLRB
|
||||
RAM17 EXG X,D TRADE BACK
|
||||
CPX #RAMTOP DONE??
|
||||
BNE RAM7
|
||||
TFR D,U SHOVE NEW SEED OVER
|
||||
TFR DP,A
|
||||
CMPA #$FF FF INDICATES FRONT DOOR
|
||||
BNE RAM99
|
||||
TFR U,D
|
||||
JMP RAM0 DO ANOTHER ITERATION IN THIS TEST.
|
||||
RAM99 DECA TAKE ONE AWAY
|
||||
TFR A,DP RETURN
|
||||
CMPA #$80 ZERO OUT IN AUTO CYCLE???
|
||||
BEQ RAM99Z YEP....
|
||||
TSTA SET FOR BELOW BRANCH
|
||||
TFR U,D MAKE SEED AND SAVED SEED LOOK ALIKE
|
||||
LBNE RAM0 DO ANOTHER ITERATION
|
||||
RAM99Z LDB #1 SET BACK TO ROM
|
||||
STB RWCNTL
|
||||
JMP ,Y RETURN
|
||||
RERROR LEAX -2,X BACK TO ERROR POINT
|
||||
EORA ,X FIND DIFFERENCE.
|
||||
EORB 1,X
|
||||
TSTA NO DIFFERENCE?
|
||||
BNE RERR2 DIFF.
|
||||
TSTB
|
||||
BNE RERR2
|
||||
LEAX 2,X UNDO THIS BULLSHIT...MAYBE ALPHA BABY.
|
||||
BRA RAM25 AND CONTINUE
|
||||
RERR2 LDU #$30 FIND BANK NUMBER
|
||||
EXG X,D
|
||||
CLRB
|
||||
EXG X,D
|
||||
RERR0 CMPX #0
|
||||
BEQ RERR1 DONE.
|
||||
LEAX -$100,X
|
||||
LEAU $10,U
|
||||
CMPU #$30
|
||||
BLS RERR0
|
||||
LDU #$10
|
||||
BRA RERR0
|
||||
RERR1 LEAU 1,U
|
||||
ASRA
|
||||
BCS RERR5 THIS IS THE BIT
|
||||
ASRB
|
||||
BCS RERR5
|
||||
BRA RERR1
|
||||
|
||||
RERR5 TFR U,D BRING THE BANK,BIT INTO B
|
||||
LDA #1 INDICATE RAM ERROR
|
||||
STA RWCNTL BACK TO THAT JAZZ
|
||||
LDS #RERR6 RETURN HERE
|
||||
BRA PULSE PULSE THE LEDS
|
||||
RERR6 LDA #RAM>>8
|
||||
TFR A,DP
|
||||
TFR CC,A
|
||||
COMA
|
||||
BITA #$C0 INITIAL TEST???
|
||||
BEQ RER098 YEP
|
||||
LDA #FDRAMM
|
||||
BRA RER099
|
||||
RER098 LDA #RERRM
|
||||
RER099 LDS #HSTK SET UP THE STACK
|
||||
JSR SCRCLR
|
||||
JSR WRD7V PRINT THE MESSAGE.
|
||||
TFR CC,A SEE WHICH TEST
|
||||
BITA #$40 FIRQ SAYS FRONT DOOR
|
||||
BNE REROR7 NOPE
|
||||
JMP FDRET DO THE FRONT DOOR RETURN
|
||||
REROR7 LDY #INIT OTHERWISE START...TRY AND RUN THE GAME.
|
||||
BRA DELAY
|
||||
|
||||
DELAY LDA #32
|
||||
DELA1 LDX #$5800
|
||||
DELA2 LEAX -1,X
|
||||
LDB #WDATA
|
||||
STB WDOG
|
||||
CMPX #0
|
||||
BNE DELA2
|
||||
DECA
|
||||
BNE DELA1
|
||||
JMP ,Y RETURN
|
||||
|
||||
*
|
||||
* PULSE......PUT SOME CRAP IN LED'S
|
||||
* LOW HALF OF A IS ERROR CODE...
|
||||
* BOTH HALVES OF B ARE THE RELEVANT DATA.
|
||||
*
|
||||
|
||||
PULSE TFR D,U SAVE A,B
|
||||
LDA #2
|
||||
TFR A,DP
|
||||
PULSE0 TFR U,D
|
||||
LDY #PULSE1
|
||||
BRA PSSUB
|
||||
PULSE1 LDA #2
|
||||
LDY #PULSE2
|
||||
BRA DELA1
|
||||
PULSE2 LDY #PULSE3
|
||||
BRA BLKLED
|
||||
PULSE3 LDA #1
|
||||
LDY #PULSE4
|
||||
BRA DELA1
|
||||
PULSE4 TFR U,D GET DATA BACK
|
||||
TFR B,A SHIFT B DOWN
|
||||
LSRA
|
||||
LSRA
|
||||
LSRA
|
||||
LSRA PROPER HALF
|
||||
LDY #PULSE5
|
||||
BRA PSSUB PULSE IT.
|
||||
PULSE5 LDA #2
|
||||
LDY #PULSE6
|
||||
BRA DELA1
|
||||
PULSE6 LDY #PULSE7
|
||||
BRA BLKLED
|
||||
PULSE7 LDA #1
|
||||
LDY #PULSE8
|
||||
BRA DELA1
|
||||
PULSE8 TFR U,D
|
||||
TFR B,A
|
||||
LDY #PULSE9
|
||||
BRA PSSUB
|
||||
PULSE9 LDA #2
|
||||
LDY #PULS10
|
||||
BRA DELA1
|
||||
PULS10 LDY #PULS11
|
||||
BRA BLKLED
|
||||
PULS11 LDA #5
|
||||
LDY #PULS12
|
||||
JMP DELA1
|
||||
PULS12 TFR DP,A SEE IF FIRST PASS??
|
||||
DECA
|
||||
TFR A,DP
|
||||
BNE PULSE0
|
||||
LDY #PULS95
|
||||
BRA BLKLED BLANK EM.
|
||||
PULS95 TFR U,D RESTORE D
|
||||
JMP ,S AND RETURN
|
||||
|
||||
BLKLED LDA #$3C
|
||||
STA PIA0+1
|
||||
INCA
|
||||
STA PIA1+1
|
||||
LDA #$C0
|
||||
STA PIA1
|
||||
JMP ,Y AND RETURN
|
||||
|
||||
* PSSUB - PUT LOW HALF OF A TO LEDS
|
||||
|
||||
PSSUB TFR A,B SAVE A COPY.
|
||||
RORA BIT 0 - CARRY
|
||||
RORA BIT 0 - BIT 7
|
||||
RORA BIT 0 - BIT 6
|
||||
ANDA #$C0
|
||||
STA PIA1 THOSE BITS OUT.
|
||||
LDA #$34 ASSUME ZERO
|
||||
BITB #$4 SEE IF 1
|
||||
BEQ PSSUB1 NOPE
|
||||
LDA #$3C
|
||||
PSSUB1 STA PIA1+1 THATS ALL FOR THAT BIT
|
||||
LDA #$34
|
||||
BITB #$8
|
||||
BEQ PSSUB2
|
||||
LDA #$3C
|
||||
PSSUB2 STA PIA0+1
|
||||
JMP ,Y AND RETURN
|
||||
|
||||
ROMTST ORCC #$3F NO INTERRUPTS WHILE THIS RUNS
|
||||
LDX #ROMTAB INDEX INTO TABLE
|
||||
ROM0 CMPX #ROMEND DONE??
|
||||
BEQ ROMDUN YEP
|
||||
LDA 1,X LOOK TO SEE IF PART STUFFED??
|
||||
BEQ ROMBOT NOPE...MOVE TO NEXT
|
||||
LDA ,X GET BASE
|
||||
CLRB
|
||||
TFR D,U USE U TO POINT THROUGH
|
||||
LDA #WDATA FOR ROVER
|
||||
ROM1 ADDB ,U+ ADD A BYTE
|
||||
STA WDOG
|
||||
EXG D,U SEE IF DUN
|
||||
CMPA 2,X ARE WE TO NEXT PART
|
||||
EXG D,U CHANGE BACK
|
||||
BNE ROM1 NOPE
|
||||
CMPB 1,X EXPECTED SUM???
|
||||
BNE ROMERR NOPE....LETS SEND OUT PROBLEM WARNING.
|
||||
ROMBOT LEAX 2,X MOVE TO NEXT PART
|
||||
BRA ROM0
|
||||
ROMERR LDA ,X GET THE ADDRESS OF THE BAD PART
|
||||
LSRA
|
||||
LSRA
|
||||
LSRA
|
||||
LSRA
|
||||
CMPA #$D ONE OF TOP 3 PARTS??
|
||||
BLO ROMER1 NOPE
|
||||
SUBA #4 GROUP THEM WITH THE LOWER PARTS
|
||||
ROMER1 ADDA #1 MAKE ERRORS FROM 1-12
|
||||
DAA AND MAKE BCK
|
||||
TFR A,B
|
||||
LDA #2 ROM ERROR
|
||||
LDS #RERR3 RETURN
|
||||
JMP PULSE AND SEND OUT THE CODE
|
||||
RERR3 LDA #RAM>>8
|
||||
TFR A,DP
|
||||
LDA #WDATA
|
||||
STA WDOG
|
||||
LDS #HSTK
|
||||
JSR SCRCLR
|
||||
TFR CC,A
|
||||
COMA
|
||||
BITA #$C0 INITIAL TEST??
|
||||
BEQ RERR94
|
||||
LDA #FDROMM
|
||||
BRA RERR95
|
||||
RERR94 LDA #ROMERM
|
||||
RERR95 JSR WRD7V PUT THE MESSAGE ON THE SCREEN
|
||||
TFR CC,B SEE WHERE WE CAM FROM
|
||||
BITB #$40 FIRQ SAYS FRONT DOOR
|
||||
BNE ROMER3
|
||||
JMP FDROM
|
||||
ROMER3 LDY #INIT NOW TRY AND RUN THE GAME
|
||||
JMP DELAY BUT NOT UNTIL A SHORT DELAY.
|
||||
ROMDUN JMP ,Y ALL ROMS OK...RETURN.
|
||||
|
||||
* ROMTAB - THIS TABLE INDICATES THE BASE OF THE PART, AND THE
|
||||
* RESULTING SUM. IF SUM=0 THEN PART IS NOT STUFFED.
|
||||
|
||||
ROMTAB FCB $00,0 0000
|
||||
FCB $10,0 1000
|
||||
FCB $20,0 2000
|
||||
FCB $30,0 3000
|
||||
FCB $40,0 4000
|
||||
FCB $50,0 5000
|
||||
FCB $60,0 6000
|
||||
FCB $70,0 7000
|
||||
FCB $80,0 8000
|
||||
FCB $90,0 9000
|
||||
FCB $A0,0 A000
|
||||
FCB $B0,0 B000
|
||||
FCB $C0,0 C000
|
||||
FCB $D0,0 D000
|
||||
FCB $E0,0 E000
|
||||
FCB $F0,0 F000
|
||||
ROMEND FCB 0
|
||||
FCB 0 CHECK BYTE (FUDGER) FOR THIS PART ($F000)
|
||||
|
||||
FCC '(C)1982 WILLIAMS ELEC.INC'
|
||||
|
||||
ORG $FFF0
|
||||
FDB PWRUPV,PWRUPV,PWRUPV,PWRUPV
|
||||
FDB PWRUPV
|
||||
FDB PWRUPV,PWRUPV,PWRUPV
|
||||
|
||||
END
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,605 @@
|
|||
OPT NOL
|
||||
LIB RRFRED
|
||||
OPT LIS
|
||||
|
||||
ORG TSCORG PLACE TO RUN FROM
|
||||
JMP CKHS CHECK HIGH SCORES (POWER UP)
|
||||
JMP ENDGAM END OF GAME HIGH SCORE PROCESSING
|
||||
JMP GODENT ENTER GOD
|
||||
JMP RESHSC RESET HIGH SCORES
|
||||
JMP HSCHK CHECK HIGH SCORES AFTER FAC SET RESTORE
|
||||
JMP HSBUT HIGH SCORE RESET BUTTON
|
||||
*
|
||||
HSBUT LDA #$18 3 SECONDS REQUIRED
|
||||
STA PD,U
|
||||
LDA #$3F
|
||||
STA SOUND
|
||||
|
||||
HSBUT1 NAP 8,HSBUT2 CHECK BUTTON
|
||||
HSBUT2 LDA PIA0
|
||||
BITA #8 STILL PRESSED??
|
||||
BEQ HSBUT3 NOPE....BYE
|
||||
DEC PD,U
|
||||
BNE HSBUT1 NOT ENOUGH TIME YET
|
||||
LDY #GODINT JUST PUT IN DEFAULT NAME
|
||||
LDX #DEFHSR
|
||||
LDB #23 NOT THE SCORE, JUST THE NAMES
|
||||
JSR CMSMVV
|
||||
JSR MKGODC MAKE THE NEW CHECK BYTE
|
||||
CLR SOUND INDICATE MISSION ACCOMPLISHED
|
||||
HSBUT3 JMP SUCIDE
|
||||
|
||||
*
|
||||
HSCHK LDY #CMSCOR START AT BEGINNING OF TABLE
|
||||
LDB #8 8 BAD ENTRIES IS ADEQUATE FOR FULL BASH
|
||||
HSCHK1 JSR FSCCK FORM THE CHECK BYTE
|
||||
EORA 6,Y COMPARE TO CHECK BYTE THERE
|
||||
ANDA #$0F
|
||||
BEQ HSCHK2
|
||||
DECB
|
||||
BEQ RESHSC 8 BAD ONES..RESET
|
||||
HSCHK2 LDA #WDATA
|
||||
STA WDOG
|
||||
LEAY SCRSIZ,Y
|
||||
CMPY #TODAYS BEYOND REGION??
|
||||
BLO HSCHK1
|
||||
RTS
|
||||
*
|
||||
*** RESHSC RESET HIGH SCORES
|
||||
*
|
||||
RESHSC LDA #WDATA
|
||||
STA WDOG
|
||||
LDX #DEFHSR DEFAULT SCORES
|
||||
LDY #GODINT GODS INITIALS FOLLOWED BY GODS SCORE FOLLOWED BY REST
|
||||
LDB #CDEFS1 SIZE OF DEFAULT TABLE
|
||||
JSR CMSMVV TRANSFER THE BLOCK
|
||||
LDX #DEFSC2
|
||||
LDY #GODINT+(2*CDEFS1)
|
||||
LDB #CDEFS2
|
||||
JSR CMSMVV
|
||||
JSR MKGODC
|
||||
LDY #CMSCOR WALK THROUGH
|
||||
RESHS1 JSR MKSCCK
|
||||
LDA #WDATA
|
||||
STA WDOG
|
||||
LEAY SCRSIZ,Y
|
||||
CMPY #TODAYS
|
||||
BLO RESHS1
|
||||
LDA #HSRESM SAY THAT THEY WERE RESET
|
||||
JMP WRD7V AND RETURN
|
||||
|
||||
DEFHSR FCC 'BIL'
|
||||
DEFGOD FCC 'WILLY'
|
||||
FCB $3A
|
||||
FCC 'ELKTRIX'
|
||||
FCB $3A,$3A,$3A,$3A,$3A,$3A,$3A
|
||||
FCB $00,$15,$17,$82
|
||||
FCC 'VID'
|
||||
FCB $00,$12,$21,$45
|
||||
FCC 'KID'
|
||||
FCB $00,$12,$21,$35
|
||||
TODTAB FCC 'DRJ'
|
||||
FCB $00,$05,$21,$27
|
||||
FCC 'LED'
|
||||
FCB $00,$05,$02,$18
|
||||
FCC 'EPJ'
|
||||
FCB $00,$04,$12,$55
|
||||
FCC 'JER'
|
||||
FCB $00,$04,$12,$50
|
||||
FCC 'KID'
|
||||
FCB $00,$03,$19,$20
|
||||
FCC 'MLG'
|
||||
FCB $00,$03,$19,$19
|
||||
FCC 'SSR'
|
||||
FCB $00,$02,$66,$45
|
||||
FCC 'UNA'
|
||||
FCB $00,$02,$66,$35
|
||||
FCC 'JRS'
|
||||
FCB $00,$02,$52,$50
|
||||
FCC 'CJM'
|
||||
FCB $00,$02,$41,$10
|
||||
ENDTOD FCC 'KJF'
|
||||
FCB $00,$02,$30,$20
|
||||
FCC 'MRS'
|
||||
FCB $00,$02,$20,$35
|
||||
FCC 'PGD'
|
||||
FCB $00,$02,$10,$90
|
||||
FCC 'NJM'
|
||||
FCB $00,$02,$09,$65
|
||||
FCC 'NHD'
|
||||
FCB $00,$02,$09,$60
|
||||
CDEFS1 EQU *-DEFHSR
|
||||
DEFSC2 FCC 'DON'
|
||||
FCB $00,$01,$82,$80
|
||||
FCC 'VIV'
|
||||
FCB $00,$01,$82,$80
|
||||
FCC 'GWW'
|
||||
FCB $00,$01,$81,$05
|
||||
FCC 'CRB'
|
||||
FCB $00,$01,$80,$55
|
||||
FCC 'MDR'
|
||||
FCB $00,$01,$75,$65
|
||||
FCC 'BAC'
|
||||
FCB $00,$01,$72,$56
|
||||
FCC 'W'
|
||||
FCB $3A
|
||||
FCC 'R'
|
||||
FCB $00,$01,$70,$70
|
||||
FCC 'MPT'
|
||||
FCB $00,$01,$60,$60
|
||||
FCC 'SUE'
|
||||
FCB $00,$01,$55,$20
|
||||
FCC 'MOM'
|
||||
FCB $00,$01,$44,$80
|
||||
FCC 'DAD'
|
||||
FCB $00,$01,$44,$79
|
||||
FCC 'SFD'
|
||||
FCB $00,$01,$44,$78
|
||||
FCC 'AKD'
|
||||
FCB $00,$01,$44,$77
|
||||
FCC 'CWK'
|
||||
FCB $00,$01,$33,$30
|
||||
FCC 'TMH'
|
||||
FCB $00,$01,$32,$70
|
||||
FCC 'EJS'
|
||||
FCB $00,$01,$31,$20
|
||||
FCC 'RAY'
|
||||
FCB $00,$01,$30,$65
|
||||
FCC 'GAY'
|
||||
FCB $00,$01,$29,$65
|
||||
FCC 'RKM'
|
||||
FCB $00,$01,$28,$55
|
||||
FCC 'CNS'
|
||||
FCB $00,$01,$27,$55
|
||||
*
|
||||
CDEFS2 EQU *-DEFSC2 LENGTH OF TABLE
|
||||
*
|
||||
NULSCR FCB $3A,$3A,$3A
|
||||
FCB $00,$01,$00,$00
|
||||
NULSIZ EQU *-NULSCR
|
||||
|
||||
HSTUNE FCB $C0,1,1,$1B,1,1,2,0 PLEBIAN HIGH
|
||||
GODSND EQU *
|
||||
ULTUNE FCB $C0 UPPER LEFT OR GOD
|
||||
FCB 1,$FF,$3C
|
||||
FCB 1,$FF,$00 CONTINUE AIR-RAID
|
||||
FCB 1,$20,00
|
||||
FCB 1,$C0,$36 FALLING PLANE
|
||||
FCB 1,$60,$3D FALLING BOMB
|
||||
FCB 2,$A,$11 2 THUNDER CRACKS
|
||||
FCB 2,$40,$3E,0 AND THE AFTERSHOCK
|
||||
|
||||
CLRSCR PSHS X,Y,B SAVE BASHED
|
||||
LDX #NULSCR POINT AT NULL SCORE
|
||||
LDB #NULSIZ HALF AN ENTRYS WORTH OF BYTES
|
||||
JSR CMSMVV
|
||||
PULS X,Y,B,PC
|
||||
|
||||
MKGODC PSHS A
|
||||
BSR FGODC FOR GODS CHECK BYTE IN LOW HALF OF A
|
||||
STA GODSCR+40 STORE AFTER THE CHARACTERS
|
||||
PULS A,PC
|
||||
|
||||
*
|
||||
** FORM GOD'S CHECK BYTE
|
||||
*
|
||||
|
||||
FGODC PSHS X
|
||||
LDX #GODINT LETS START AT THE VERY BEGINNING....
|
||||
CLRA
|
||||
FGODC0 ADDA ,X ADD THE CURRENT NIBBLE
|
||||
FGODC1 LEAX 1,X
|
||||
CMPX #GODSCR+40 CHECK BYTE???
|
||||
BEQ FGODC1
|
||||
CMPX #GODSCR+48 DONE???
|
||||
BNE FGODC0
|
||||
PULS X,PC RETURN IN LOW HALF OF A
|
||||
|
||||
MKSCCK PSHS A
|
||||
BSR FSCCK FORM THE CHECK BYTE
|
||||
STA 6,Y STORE IT
|
||||
PULS A,PC
|
||||
|
||||
FSCCK PSHS Y,B
|
||||
LDB #SCRSIZ
|
||||
CLRA
|
||||
MSCCK0 CMPB #SCRSIZ-6 ABOUT TO DO CHECK BYTE??
|
||||
BEQ MSCCK1
|
||||
ADDA ,Y ADD THE CURRENT BYTE
|
||||
MSCCK1 LEAY 1,Y
|
||||
DECB
|
||||
BNE MSCCK0
|
||||
PULS Y,B,PC
|
||||
|
||||
CKHS LDA #50 DONT GO THROUGH MORE THAN 50
|
||||
PSHS A
|
||||
LDY #CMSCOR WALK THROUGH SCORES
|
||||
CKHS7 BSR FSCCK FORM THE SCORE CHECK BYTE
|
||||
EORA 6,Y
|
||||
ANDA #$F
|
||||
BEQ CKHS5
|
||||
CKHS4 JSR RMENTR REMOVE THE ENTRY
|
||||
CLR CREDST
|
||||
CLR CREDST+1
|
||||
DEC ,S MAKE SURE WE DON'T REMOVE TOO MANY
|
||||
BEQ CKHS67
|
||||
BRA CKHS7 DON'T PUSH POINTER YET.
|
||||
CKHS5 LDA #3
|
||||
LDB #4
|
||||
BSR CKENT
|
||||
BCS CKHS4
|
||||
CKHS6 LEAY SCRSIZ,Y MOVE TO NEXT
|
||||
CMPY #TODAYS
|
||||
BLO CKHS7
|
||||
CKHS67 PULS A TAKE ENTRY OFF OF STACK
|
||||
LDX #TODTAB TODAY'S TABLE (NORMAL BYTES)
|
||||
LDY #TODAYS
|
||||
LDB #ENDTOD-TODTAB
|
||||
JSR CMSMVV
|
||||
BSR FGODC NOW CHECK OUT GOD.
|
||||
EORA GODSCR+40 CHECK IT OUT
|
||||
ANDA #$F
|
||||
BEQ CKHS1 OK..CONTINUE
|
||||
BSR REMGOD
|
||||
CKHS1 LDY #GODINT BEGINNING OF TEXT ONLY PART-CHECK ALPHA NUM
|
||||
LDA #23 20 CHARS OF TEXT
|
||||
LDB #4 4 BYTES OF NUMBERS PLEASE
|
||||
BSR CKENT MAKE SURE ALPHAS AND NUMERICS
|
||||
BCC CKHS3
|
||||
BSR REMGOD REMOVE GOD
|
||||
CKHS3 RTS
|
||||
|
||||
REMGOD LDX #GODSCR GOD BAD FIRST BLANK OUT
|
||||
LDA #$3A
|
||||
CKHS2Z JSR WCMOSA
|
||||
CMPX #GODSCR+40 DONE??
|
||||
BLO CKHS2Z DO ANOTHER CHARACTER
|
||||
LDX #CMSCOR #2
|
||||
LDY #GODSCR
|
||||
LDA #6 6 NIBBLES
|
||||
JSR BLKMOV MOVED
|
||||
LDY #GODINT X STILL POINTS AT FIRST GUYS INITIALS
|
||||
JSR BLKMOV MOV EM TOO
|
||||
LDX #CMSCOR+6 #2 SCORE
|
||||
LDY #GODSCR+40 #2 SCORE GOES HERE
|
||||
LDA #8
|
||||
JSR BLKMOV
|
||||
JSR MKGODC MAKE THE CHECK BYTE
|
||||
LDY #CMSCOR NOW REMEOVE #2
|
||||
JMP RMENTR REMOVE #2 AND RETURN
|
||||
|
||||
CKENT PSHS D,X
|
||||
LDB #WDATA
|
||||
STB WDOG
|
||||
TFR Y,X CMOSABLE REGISTER
|
||||
CKENT1 JSR RCMOSB READ A BYTE
|
||||
CMPB #$41 LOWER THAN A??
|
||||
BHS CKENT4 NOPE...HIGH ENOUGH CHECK TOO HIGH
|
||||
CMPB #$3A TOO LOW..CHECK SPACE
|
||||
BNE CKENT5 NOPE...NOT VALID
|
||||
CKENT4 CMPB #$5A
|
||||
BHI CKENT5 HIGHER THAN Z
|
||||
DECA ONE LESS ON THIS FRONT
|
||||
BNE CKENT1
|
||||
LDA 1,S GET THE SECOND PART COUNTER BACK
|
||||
JSR RCMOSB GET THE CHECK BYTE
|
||||
ANDB #$F
|
||||
CMPB #9
|
||||
BHI CKENT5 NO HEX ALLOWED
|
||||
DECA
|
||||
CKENT2 JSR RCMOSB
|
||||
PSHS B
|
||||
ANDB #$F LOOK AT LOW HALF
|
||||
CMPB #9
|
||||
PULS B
|
||||
BHI CKENT5 NOT NUMERIC...ERROR!
|
||||
ANDB #$F0
|
||||
CMPB #$99
|
||||
BHI CKENT5
|
||||
DECA
|
||||
BNE CKENT2
|
||||
CKENT3 CLC
|
||||
CKENT8 LDA #WDATA
|
||||
STA WDOG
|
||||
PULS X,D,PC
|
||||
CKENT5 SEC
|
||||
BRA CKENT8
|
||||
|
||||
*
|
||||
*** RMENTR - REMOVE SCORE ENTRY POINTED TO BY Y.
|
||||
*
|
||||
|
||||
RMENTR PSHS X,Y,D
|
||||
LEAX SCRSIZ,Y X POINTS PAST Y
|
||||
RMENT0 CMPX #TODAYS ARE WE BEYOND IN X.
|
||||
BHS RMENT1 YEP...DONE.
|
||||
LDA #SCRSIZ
|
||||
BSR BLKMOV MOVE THE BLOCK X TO Y
|
||||
LEAY SCRSIZ,Y
|
||||
LEAX SCRSIZ,X
|
||||
LDA #WDATA
|
||||
STA WDOG
|
||||
BRA RMENT0
|
||||
RMENT1 JSR CLRSCR CLEAR THE BLOCK NOW POINTED AT BY Y (BOTTOM)
|
||||
JSR MKSCCK AND FORM THE CHECK BYTE
|
||||
PULS X,Y,D,PC
|
||||
|
||||
* BLKMOV A BYTES FROM [X] TO [Y]
|
||||
|
||||
BLKMOV PSHS X,Y,D
|
||||
BLKMV1 LDB ,X+
|
||||
STB ,Y+
|
||||
DECA
|
||||
BNE BLKMV1
|
||||
PULS X,Y,D,PC
|
||||
|
||||
ENDGAM JSR GNCIDE KILL COLOR PROCS ETC.
|
||||
JSR SCRCLR
|
||||
JSR CRINIT PRETTY COLORS PLEASE
|
||||
JSR P1SW POINT AT PLAYER 1
|
||||
LDX #ZP1SCR PLAYER 1'S SCORE
|
||||
LDB #1 PLAYER '1'
|
||||
BSR EGSUB DO IT UP FOR HIM
|
||||
LDB PLRCNT HOW MANY???
|
||||
DECB
|
||||
BEQ ENDGMR RETURN.
|
||||
JSR SCRCLR
|
||||
LDA PIA3 COCKTAIL??
|
||||
BPL ENDGM1 NOPE
|
||||
JSR P2SW THEN FACE THE NATION
|
||||
ENDGM1 LDX #ZP2SCR
|
||||
LDB #2
|
||||
BSR EGSUB
|
||||
JSR SCRCLR
|
||||
JSR P1SW AND SWITCH TO PLAYER 1
|
||||
ENDGMR JMP GOV JUMP TO GAME OVER (AMODE) PROCESSING
|
||||
|
||||
EGSUB PULS Y GET RETURN ADDRESS
|
||||
STY EGRAM
|
||||
STX PLRX SAVE PARAMS
|
||||
STB CURPLR
|
||||
JSR GODCHK SEE IF GOD
|
||||
BCC EGSUB1
|
||||
JSR GODESB HAVE HIM ENTER IT.
|
||||
LDY #CMSCOR BUBBLE TO VACATE THIS POSITION
|
||||
LDX #TODAYS-SCRSIZ FROM BOTTOM
|
||||
JSR BUBDN BUBBLE EM DOWN
|
||||
LDX #GODSCR+40 POINT AT SOON TO BE EX-GOD
|
||||
LDY #CMSCOR+6 THIS IS WHERE IT GOES
|
||||
LDA #8 8 NIBBLES
|
||||
JSR BLKMOV MOVE IT DOWN
|
||||
LDX #GODINT AND HIS INITIALS
|
||||
LDY #CMSCOR
|
||||
LDA #6
|
||||
JSR BLKMOV AND MOVE IT
|
||||
LDY #CMSCOR POINT AT #2
|
||||
JSR MKSCCK AND FORM HIS CHECK BYTE
|
||||
LDX PLRX POINT AT SCORE
|
||||
LDY #GODSCR+40
|
||||
LDB #4
|
||||
JSR CMSMVV
|
||||
JSR MKGODC
|
||||
LDX #NULSCR BLANK INITIALS
|
||||
LDY #GODINT
|
||||
LDB #3
|
||||
JSR CMSMVV
|
||||
JSR SCRCLR
|
||||
LDA #NOWMES TELL HIM TO ENTER HIS INITIALS NOW.
|
||||
STA EGRAM2 INDICATE GOD JUST ENTERED
|
||||
LDX #GA2 CHECK NUMBER OF INITIALS
|
||||
JSR RCMOSB
|
||||
CMPB #3
|
||||
BEQ GET333 THEN USE INITIALS AS INITIALS
|
||||
BRA GETHM2 JUMP INTO THE ROUTINE TO DO THAT.
|
||||
* CODE TO GET GOD HERE.
|
||||
EGSUB1 JSR TODCHK CHECK TODAYS HIGH
|
||||
BCS GETHIM
|
||||
JSR ALLCHK CHECK ALL TIME
|
||||
BCS GETHIM
|
||||
JMP [EGRAM] RETURN...HOW BORING.
|
||||
*
|
||||
GETHIM CLR EGRAM2
|
||||
LDD #HSTUNE HIGH SCORE TUNE
|
||||
CMPY #TODAYS IS IT POINTING AT THE HIGHEST
|
||||
BNE GETHM1 NOPE
|
||||
LDD #ULTUNE
|
||||
GETHM1 JSR SNDLDS
|
||||
LDA #CONG
|
||||
GETHM2 LDB CURPLR GET PLAYER NUMBER
|
||||
JSR SCRCLR
|
||||
JSR WRD7V PUT THE MESSAGE OUT
|
||||
LDD #$3A3A SPACES
|
||||
STD ALTBL
|
||||
STA ALTBL+2
|
||||
LDD #$300 3 CHARS PLEASE, NO FUNNY ONES
|
||||
LDX #$4680 PLACE TO DO IT
|
||||
LDY #ALTBL PLACE FOR HS.
|
||||
JSR GETLT
|
||||
GET333 JSR TODCHK SEE WHERE TO PUT IT ETC.
|
||||
BCC GETHM3 NOT THIS TIME JACK
|
||||
LDX #TODEND-SCRSIZ END OF TODAYS
|
||||
JSR SCTRNS
|
||||
GETHM3 JSR ALLCHK CHECK FOR ALL TIME
|
||||
BCC GETHM5 NOPE
|
||||
TST EGRAM2 WAS THIS GOD??
|
||||
BEQ GETHM4 NOPE
|
||||
LDX #ALTBL
|
||||
LDY #GODINT JUST STORE THE INITIALS ON THIS SIDE
|
||||
LDB #3
|
||||
JSR CMSMVV DONE.
|
||||
JSR MKGODC FORM GOD'S NEW CHECK BYTE
|
||||
LDA #5 INTERESTED IF THERE ARE 5 OTHERS!
|
||||
BSR SETBZZ WELL????
|
||||
BCC GETHM5 NOPE.
|
||||
TFR X,Y MOVE LOWEST POINTED TO INTO Y
|
||||
JSR RMENTR REMOVE IT.
|
||||
BRA GTTHM8 AND TELL HIM IT WAS REMOVED
|
||||
GETHM4 JSR SETBOT FIND PLACE TO BUBBLE DOWN TO (5 MAX RULE)
|
||||
PSHS CC SAVE ANSWER
|
||||
PSHS X
|
||||
CMPY ,S++
|
||||
BHI GETHM8 NOT BETTER THAN HIS TOP 5
|
||||
BSR SCTRNS DONE.
|
||||
GETHM8 PULS CC GET CARRY BACK
|
||||
BCC GETHM5
|
||||
GTTHM8 JSR SCRCLR
|
||||
LDA #ONLY5M
|
||||
JSR WRD7V
|
||||
NAP $60,GETHM5
|
||||
GETHM5 JMP [EGRAM]
|
||||
|
||||
SETBZZ PSHS Y,D
|
||||
BRA SETBT0
|
||||
|
||||
SETBOT PSHS Y,D
|
||||
LDX #GODINT SEE IF MATCH OF GOD INITIALS
|
||||
BSR SETSUB
|
||||
LDA #4 ASSUME MATCH
|
||||
BCS SETBT0 YEP...ONLY 4 MORE NEEDED
|
||||
INCA
|
||||
SETBT0 STA XTEMP
|
||||
LDX #CMSCOR POINT AT FIRST ENTRY
|
||||
SETBT1 BSR SETSUB SEE IF THIS ONE MATCHES
|
||||
BCC SETBT3 NOPE...
|
||||
DEC XTEMP FOUND
|
||||
BEQ SETBT5 AND TIME TO EXIT
|
||||
SETBT3 LEAX SCRSIZ,X PUSH TO NEXT
|
||||
CMPX #TODAYS
|
||||
BLO SETBT1 NOT DONE...DO ANOTHER
|
||||
LDX #TODAYS-SCRSIZ BUBBLE FROM BOTTOM
|
||||
CLC
|
||||
PULS Y,D,PC
|
||||
SETBT5 SEC
|
||||
PULS Y,D,PC AND RETURN IT
|
||||
|
||||
SETSUB PSHS X
|
||||
LDY #ALTBL ALT TABLE
|
||||
LDB #3
|
||||
SETSB2 JSR RCMOSA
|
||||
CMPA ,Y+ COMPARE TO ALT LETTER
|
||||
BNE SETSB1 NO GOOD...MOVE TO NEXT
|
||||
DECB ONE LESS TO DO
|
||||
BNE SETSB2
|
||||
SEC
|
||||
PULS X,PC
|
||||
SETSB1 CLC NO MATCH
|
||||
PULS X,PC
|
||||
|
||||
SCTRNS PSHS Y
|
||||
JSR BUBDN BUBBLE EM TO MAKE ROOM
|
||||
LDX #ALTBL
|
||||
LDB #3
|
||||
JSR CMSMVV TRANSFER THE BLOCK
|
||||
LDX PLRX
|
||||
LDB #4
|
||||
JSR CMSMVV TRANSFER THE SCORE
|
||||
PULS Y
|
||||
JMP MKSCCK FORM THE CHECK BYTE
|
||||
|
||||
BUBDN PSHS X,Y
|
||||
TFR X,Y BOTTOM IS DESTINATION
|
||||
BUBDN1 CMPY 2,S IS OUR DESTINATION WHAT WE WANT TO FILL??
|
||||
BEQ BUBDUN THEN WE'RE DONE
|
||||
LEAX -SCRSIZ,Y X IS SOURCE
|
||||
LDA #SCRSIZ THAT MANY BYTES
|
||||
JSR BLKMOV MOVE THE BLOCK
|
||||
LEAY -SCRSIZ,Y
|
||||
BRA BUBDN1
|
||||
BUBDUN PULS X,Y,PC BYE
|
||||
|
||||
GODENT PULS D RETURN
|
||||
STD EGRAM
|
||||
LDB #1
|
||||
BSR GODESB HAVE THE GUY ENTER IT
|
||||
JSR MKGODC MAKE THE CHECK BYTE AND RETURN
|
||||
JMP [EGRAM]
|
||||
|
||||
GODESB PULS Y GET RETURN ADDRESS
|
||||
STY EGRAM2 SAVE IT
|
||||
CLRA
|
||||
TFR D,Y PASS PLAYER IN Y
|
||||
LDD #GODSND
|
||||
JSR SNDLDS MAKE THE SOUND (TUNE)
|
||||
LDX #GA2 GET GOD LETTERS
|
||||
JSR RCMOSB
|
||||
JSR SCRCLR
|
||||
CMPB #3 ONLY 3???
|
||||
BNE GMANY NO
|
||||
LDB CURPLR GET PLAYER
|
||||
LDA #CONG
|
||||
JSR WRD7V PRINT THE NORMAL MESSAGE
|
||||
LDA #3
|
||||
LDX #$4680
|
||||
BRA GTHREE
|
||||
GMANY LDA #GODMES
|
||||
JSR WRD7V PRINT OUT CONGRATS
|
||||
TFR B,A MAX LETTERS IN A NOW
|
||||
JSR NEWBCH CALL THE RIGHT ONE
|
||||
LDX #$2D80 PLACE TO DO IT
|
||||
GTHREE LDY #ALTBL+20 PLACE TO STORE THE CHARS
|
||||
LDB #$3A PUT SPACES IN
|
||||
GODES1 STB ,-Y
|
||||
CMPY #ALTBL
|
||||
BHI GODES1
|
||||
CLRB ALPHA ONLY
|
||||
JSR GETLT ENTER THE STUFF
|
||||
LDX #ALTBL
|
||||
LDY #GODSCR
|
||||
LDB #20
|
||||
JSR CMSMVV
|
||||
JMP [EGRAM2] RETURN
|
||||
|
||||
GODCHK PSHS X,Y
|
||||
LDY #GODSCR+40 POINT AT THE SCORE PART
|
||||
LDX PLRX POINT AT HIS SCORE
|
||||
BSR CMPSCR COMPARE SCORES
|
||||
PULS X,Y,PC RETURN THE CARRY BIT
|
||||
|
||||
TODCHK PSHS X RETURN ENTRY POINTER IF OK
|
||||
LDY #TODAYS+6
|
||||
LDX PLRX
|
||||
TODCK1 BSR CMPSCR COMPARE
|
||||
BCS TODBYE
|
||||
LEAY SCRSIZ,Y PUSH TO NEXT
|
||||
CMPY #TODEND BEYOND
|
||||
BLO TODCK1
|
||||
CLC
|
||||
PULS X,PC
|
||||
TODBYE LEAY -6,Y PUSH BACK TO BEGINNING OF ENTRY TO REPLACE
|
||||
PULS X,PC AND RETURN WITH CARRY SET
|
||||
|
||||
ALLCHK PSHS X
|
||||
LDY #GODSCR+40 POINT AT SCORE PART OF GOD ENTRY
|
||||
LDX PLRX
|
||||
ALCK1 BSR CMPSCR
|
||||
BCS TODBYE
|
||||
LEAY SCRSIZ,Y
|
||||
CMPY #TODAYS-SCRSIZ BEYOND VISIBLES??????
|
||||
BLO ALCK1 NOPE..CONTINUE
|
||||
CLC
|
||||
PULS X,PC NOT GOOD ENOUGH
|
||||
|
||||
CMPSCR PSHS Y,X,D
|
||||
EXG X,Y MAKE X POINT AT CMOS
|
||||
LDB ,Y TAKE AWAY PLAYERS 10 MILLIONS
|
||||
ANDB #$F
|
||||
STB ,Y
|
||||
LDB #4 4 BYTES THROUGH
|
||||
CMPSC1 JSR RCMOSA READ A BYTE
|
||||
CMPB #4 FIRST TIME THROUGH??
|
||||
BNE CMPSC2
|
||||
ANDA #$0F THEN TAKE AWAY CHECK BYTE
|
||||
CMPSC2 CMPA ,Y+ COMPARE TO PLAYERS SCORE
|
||||
BHI CMPSC4 CMOS SCORE HIGHER
|
||||
BLO CMPSC5 PLAYER'S SCORE HIGHER
|
||||
DECB SAME...ARE WE DONE??
|
||||
BNE CMPSC1 NOPE...COMPARE ANOTHER BYTE
|
||||
CMPSC4 CLC
|
||||
PULS X,Y,D,PC
|
||||
CMPSC5 SEC PLAYER IS HIGHER
|
||||
PULS X,Y,D,PC
|
||||
|
||||
SNDLDS CLR SNDPRI MAKE SURE WE GET OUT
|
||||
JMP SNDLD
|
||||
|
||||
END
|
|
@ -0,0 +1,550 @@
|
|||
OPT NOL
|
||||
LIB RRFRED INCLUDE THE TEMP GUY
|
||||
OPT LIS
|
||||
|
||||
* SPECIAL CHARACTER NAMES
|
||||
|
||||
SPACE EQU $3A
|
||||
EXPT EQU $3B
|
||||
COMMA EQU $3C
|
||||
PERIOD EQU $3D
|
||||
ARROW EQU $3E
|
||||
BLANKR EQU ARROW BLOCK OF FF'S FOR BLANKING
|
||||
COLON EQU $3F
|
||||
HYPHEN EQU $40
|
||||
LPAREN EQU $5B
|
||||
RPAREN EQU $5C
|
||||
FROB EQU $5D
|
||||
SLASH EQU $5E
|
||||
LASCAR EQU $5E LAST CHARACTER
|
||||
|
||||
CLRDEF EQU $11 COLOR 1 IS DEFAULT
|
||||
|
||||
ORG TXORG
|
||||
|
||||
JMP PRNT35
|
||||
JMP PRNT57
|
||||
JMP WORD35
|
||||
JMP WORD57
|
||||
JMP PRINIT
|
||||
JMP EUGSCR
|
||||
|
||||
PRINIT PSHS A BE NICE TO THE CALLER
|
||||
LDA #CLRDEF DEFAULT COLOR
|
||||
STA TEXCOL PUT IT DOWN
|
||||
PULS A
|
||||
PRRST PSHS A
|
||||
LDA #$7
|
||||
STA TXFONT
|
||||
CLR TXFLAV NO FLAVORS NOW
|
||||
CLR TEXMFL LEFT MARGIN FLAVOR
|
||||
CLR TXCLIP
|
||||
LDA #1
|
||||
STA TXLEAD LEAD ZERO BLANKING ON
|
||||
STX TEXMAR SET CURRENT CURSOR POSITION AS LEFT MARGIN
|
||||
PULS A,PC AND RETURN FOR NOW
|
||||
|
||||
PRNT35 PSHS D,Y,U
|
||||
LDB #WDATA IN CASE OF LONG PHRASE AT START OR OTHER
|
||||
STB WDOG
|
||||
LDB #5
|
||||
STB TXFONT
|
||||
CMPA #$20 REAL SPACE
|
||||
BNE PR3501 NO
|
||||
LDA #SPACE THEN USE OUR RENDITION
|
||||
PR3501 LDY TAB35
|
||||
CMPA #LASCAR INVALID CALL
|
||||
BHI PRNOPR THEN ABORT
|
||||
SUBA #$30 GET A NICE OFFSET
|
||||
BCS PRNOPR OUT OF RANGE
|
||||
ASLA WORDS BABY.
|
||||
LDY A,Y LOAD ADDRESS OF CHARACTER START.
|
||||
LDA 0,Y GET WIDTH (IN PIXELS)
|
||||
LSRA 1/2 MAKES BYTES
|
||||
INCA GIVE EXTRA FOR FLAVORING COLUMN
|
||||
EORA #4 BD
|
||||
LDB #1 5 XOR 4 = 1
|
||||
PSHS CC,Y SAVE CURRENT CONDITION CODE, DEST POINTER
|
||||
SEI THEN SET
|
||||
STD HORIZ
|
||||
LEAY 1,Y NOW POINT AT DATA
|
||||
STY ORIG SEND TO DMA (YES THE DMA!)
|
||||
LDA TEXCOL GET THE CURRENT COLOR
|
||||
STA CONST CONSTANTLY
|
||||
STX DEST CURSOR IS WHERE ITS GOING
|
||||
LDA #$1A
|
||||
LDB TXFLAV CHECK OUT FLAVOR
|
||||
BEQ PR3502
|
||||
PR3555 LDA #$3A
|
||||
PR3502 STA CONTRL
|
||||
PULS CC,Y RESTORE INTERRUPT THE WAY WE WERE!
|
||||
LDA 0,Y GET WIDTH BACK
|
||||
INCA ADD THE SPACE
|
||||
CLRB
|
||||
LSRA BACK TO BYTES
|
||||
LEAX D,X KICK X BYTES
|
||||
BCC PRNOPR FLAVOR IS UNCHANGED
|
||||
LDA TXFLAV CHECK FLAVOR
|
||||
BEQ PRNOP1 IT WAS EVEN
|
||||
LEAX $100,X EXTRA FOR FLAVOR OVER FLOW
|
||||
CLRB
|
||||
BRA PRNOP2
|
||||
PRNOP1 LDB #$FF
|
||||
PRNOP2 STB TXFLAV
|
||||
PRNOPR PULS D,Y,U,PC
|
||||
|
||||
PRNT57 PSHS D,Y,U
|
||||
LDB #WDATA
|
||||
STB WDOG BONE ME
|
||||
LDB #7
|
||||
STB TXFONT
|
||||
CMPA #$20 REAL SPACE
|
||||
BNE PR570Z NO
|
||||
LDA #SPACE THEN USE OUR RENDITION
|
||||
PR570Z LDY TAB57
|
||||
CMPA #LASCAR INVALID CALL
|
||||
BHI PRNOPR THEN ABORT
|
||||
SUBA #$30 GET A NICE OFFSET
|
||||
BCS PRNOPR OUT OF RANGE
|
||||
ASLA WORDS BABY.
|
||||
LDY A,Y LOAD ADDRESS OF CHARACTER START.
|
||||
LDA 0,Y GET WIDTH (IN PIXELS)
|
||||
LSRA 1/2 MAKES BYTES
|
||||
INCA GIVE EXTRA FOR FLAVORING COLUMN
|
||||
EORA #4
|
||||
LDB TXCLIP GET CLIP FACTOR
|
||||
BLE CLNOC NEGATIVE OR ZERO, JUST ADD CLIP NUMBER
|
||||
NEGB CLIP IS FROM TOP, SUBTRACT FROM 6
|
||||
CLNOC ADDB #6 ADD CLIP TO 6
|
||||
EORB #4 AND PLEASE THE SHIT OUT OF GREGGY
|
||||
PSHS CC,Y SAVE INTERRUPT STATE, DATA POINTER
|
||||
SEI
|
||||
STD HORIZ
|
||||
LEAY 1,Y NOW POINT AT DATA
|
||||
LDB TXCLIP CHECK CLIP AGAIN
|
||||
BLE CLNO1 START FROM TOP OF GUY IF ZERO OR NEG
|
||||
EORA #4 GET BYTE WIDTH BACK
|
||||
MUL FORM BYTES TO CLIP
|
||||
LEAY B,Y AND START FROM THERE
|
||||
CLNO1 STY ORIG SEND TO DMA (YES THE DMA!)
|
||||
LDA TEXCOL GET THE CURRENT COLOR
|
||||
STA CONST CONSTANTLY
|
||||
STX DEST CURSOR IS WHERE ITS GOING
|
||||
LDA #$1A
|
||||
LDB TXFLAV CHECK OUT FLAVOR
|
||||
BEQ PR3502
|
||||
BRA PR3555 DO ODD FLAVOR AND REST LIKE 35
|
||||
|
||||
* PRNUM5, PRNUM7 - THESE ROUTINES WILL PRINT NUMBERS AT THE CURRENT
|
||||
* CURSOR POSITION (BASED ON X AND TXFLAV) IN THE HEIGHT INDICATE
|
||||
* BY THE ENTRYPOINT. THE NUMBERS ARE TO BE PASSED IN D.
|
||||
* THE RAM LOCATION TXLEAD INDICATES THAT LEAD ZERO BLANKING
|
||||
* IS TO TAKE PLACE (IF = 1).
|
||||
|
||||
PRNM25 CLR TXFLAV
|
||||
PSHS D,Y,U
|
||||
LDA #5
|
||||
CLRB
|
||||
BRA PRNM3
|
||||
|
||||
PRN25L CLR TXFLAV
|
||||
PSHS D,Y,U
|
||||
LDA #5
|
||||
LDB #1
|
||||
BRA PRNM3
|
||||
|
||||
PRN27L CLR TXFLAV
|
||||
PSHS D,Y,U
|
||||
LDA #7
|
||||
LDB #1
|
||||
BRA PRNM3
|
||||
|
||||
EUGSCR CLR TXFLAV
|
||||
PSHS D,Y,U
|
||||
LDB #7
|
||||
STB TXFONT
|
||||
LDB #2 BLANKING TYPE
|
||||
STB TXLEAD
|
||||
BSR PNUMHI
|
||||
LDA ,S RESTORE A
|
||||
BSR PNUMLO
|
||||
PULS D,Y,U,PC
|
||||
|
||||
PRNM27 CLR TXFLAV
|
||||
PSHS D,Y,U
|
||||
LDA #7
|
||||
CLRB
|
||||
PRNM3 STA TXFONT
|
||||
STB TXLEAD
|
||||
LDA 0,S RESTORE A
|
||||
BRA PRNM4
|
||||
|
||||
PRNUM2 PSHS D,Y,U
|
||||
PRNM4 CLR TEXTP3 LEAD ZERO GUY
|
||||
PRNM44 BSR PNUMHI HIGH HALF
|
||||
INC TEXTP3
|
||||
LDA 0,S
|
||||
BSR PNUMLO
|
||||
PULS D,Y,U,PC
|
||||
|
||||
PRNUM5 CLR TXFLAV
|
||||
PSHS D,Y,U
|
||||
LDA #5
|
||||
CLRB
|
||||
BRA PRNM0
|
||||
|
||||
PRNM5L CLR TXFLAV
|
||||
PSHS D,Y,U
|
||||
LDA #5
|
||||
LDB #1
|
||||
BRA PRNM0
|
||||
|
||||
PRNM7L CLR TXFLAV
|
||||
PSHS D,Y,U
|
||||
LDA #7
|
||||
LDB #1
|
||||
BRA PRNM0
|
||||
|
||||
PRNUM7 CLR TXFLAV
|
||||
PSHS D,Y,U
|
||||
LDA #7
|
||||
CLRB
|
||||
PRNM0 STA TXFONT
|
||||
STB TXLEAD
|
||||
LDA 0,S RESTORE A
|
||||
BRA PRNM1
|
||||
|
||||
PRNUM PSHS D,Y,U
|
||||
PRNM1 CLR TEXTP3 INDICATE THAT LEAD ZERO IN EFFECT
|
||||
BSR PNUMHI HIGH HALF OF A
|
||||
LDA 0,S
|
||||
BSR PNUMLO LOW HALF OF A
|
||||
LDA 1,S GET B
|
||||
BSR PNUMHI HIGH HALF OF B
|
||||
INC TEXTP3 KILL ZERO BLANKING
|
||||
LDA 1,S GET B BACK
|
||||
BSR PNUMLO
|
||||
PULS D,Y,U,PC RESTORE AND RETURN
|
||||
|
||||
PNUMHI LSRA SHIFT HIGH HALF TO LOW
|
||||
LSRA
|
||||
LSRA
|
||||
LSRA
|
||||
PNUMLO ANDA #$0F KILL HIGH HALF FOR THIS ENTRYPOINT
|
||||
BNE PRNTIM NOT ZERO....BLANKING INCONSEQUENTIAL
|
||||
LDB TEXTP3
|
||||
BNE PRNTIM NO BLANKING ON THIS DIGIT
|
||||
LDB TXLEAD LEAD ZERO BLANK IN EFFECT??
|
||||
BNE BLANZZ YEP....DON'T DO THIS DIGIT!
|
||||
PRNTIM INC TEXTP3 TIME TO PRINT...NO MORE BLANKING
|
||||
ADDA #$30 BASE OF FIRST NUMBER
|
||||
LDB TXFONT FONT??
|
||||
CMPB #7 LARGE
|
||||
LBEQ PRNT57 ROUTINE TO PRINT 5 X 7 S
|
||||
JMP PRNT35
|
||||
BLANZZ CMPB #2 SPACE BLANKING??
|
||||
BNE BLANZ1 YEP
|
||||
LEAX $200,X PUSH FOR SMALL CHARACTER
|
||||
LDB TXFONT
|
||||
CMPB #5
|
||||
BEQ BLANZ1
|
||||
LEAX $100,X
|
||||
BLANZ1 RTS
|
||||
|
||||
*****
|
||||
* STRING PROCESSING
|
||||
*****
|
||||
|
||||
* CONTROL CHARACTERS :
|
||||
|
||||
* NEWLINE - $1 WORTHLESS...DOES NOTHING .
|
||||
|
||||
* RETURN - $2 SAME AS NEWLINE
|
||||
|
||||
* LINE FEED - $3 SAME AS NEWLINE
|
||||
|
||||
* SET COLOR - $4 THIS WILL CAUSE THE PRINTING COLOR TO BE
|
||||
* CHANGED TO THE BYTE FOLLOWING THIS
|
||||
|
||||
* HYPER CURSOR - $5 THIS WILL SET THE CURSOR TO THE -THREE-
|
||||
* BYTE IMMEDIATE POSITION (CURSOR,FLAVOR) (RELATIVE)
|
||||
|
||||
* SET LEFT MARGIN - $6 THIS WILL SET THE LEFT MARGIN TO THE -THREE-
|
||||
* BYTE IMMEDIATE POSITION (CURSOR,FLAVOR) (RELATIVE)
|
||||
|
||||
* SET LARGE FONT - $7 THIS WILL SET NEW FONT HEIGHT TO SEVEN PIXEL.
|
||||
|
||||
* SET SMALL FONT - $8 THIS WILL SET NEW FONT HEIGHT TO FIVE PIXEL.
|
||||
|
||||
* LEAD ZERO BLANK ON - $9
|
||||
|
||||
* LEAD ZERO BLANK OFF - $A
|
||||
|
||||
* 4 DIGIT NUMBER IMM. - $B FOLLOWED BY TWO BYTE NUMBER TO BE PRINTED
|
||||
|
||||
* 4 DIGIT NUMBER IND. - $C 4 DIGIT NUMBER STORED AT TWO BYTE SUPPLIED ADDR
|
||||
|
||||
* 2 DIGIT NUMBER IND. - $D 2 DIGIT NUMBER STORED IMMEDIATELY
|
||||
|
||||
* 2 DIGIT NUMBER IND. - $E 4 DIGIT ADDRESS OF 2 DIGIT NUMBER STORED
|
||||
|
||||
* SUBROUTINE - $F INVOKE A NEW PHRASE..2 BYTE ADDRESS IMMEDIATE
|
||||
|
||||
* 2 DIGIT NUMBER IN B - $10 PRINT THE 2 DIGIT NUMBER CONTAINED IN B.
|
||||
|
||||
* 4 DIGIT NUMBER IN Y - $11 PRINT THE 4 DIGIT NUMBER CONTAINED IN Y.
|
||||
|
||||
* CURSAB - $12 SET CURSOR AND FLAVOR TO THE IMMEDIATE OPERAND
|
||||
|
||||
* SET COLOR INDIRECT - $13 2 BYTE IMMEDIATE POINTS AT NEW COLOR
|
||||
|
||||
* CALL SUB, COND. - $14 CALL SUBROUTINE (2 BYTE IMM) IF COCKTAIL.
|
||||
|
||||
* SBLANK - $15 LEAD ZERO BLANK WITH SPACING FOR BLANKS
|
||||
|
||||
* CLIPB - $16 SET CLIP FACTOR TO WHATS PASSED IN B
|
||||
* POSITIVE NUMBER CLIPS TOP [B] ROWS
|
||||
* NEGATIVE NUMBER CLIPS BOTTOM -NEGB- ROWS
|
||||
* ZERO KILLS CLIPPING
|
||||
|
||||
* MNEMONICS:
|
||||
|
||||
NEWLIN EQU 1
|
||||
RETURN EQU 2
|
||||
LINEFD EQU 3
|
||||
COLOR EQU 4
|
||||
CURSOR EQU 5
|
||||
MARGIN EQU 6
|
||||
LFONT EQU 7
|
||||
SFONT EQU 8
|
||||
ZBLANK EQU 9
|
||||
NBLANK EQU $A
|
||||
NUMIMM EQU $B
|
||||
NUMIND EQU $C
|
||||
NM2IMM EQU $D
|
||||
NM2IND EQU $E
|
||||
SUB EQU $F
|
||||
NUMB EQU $10
|
||||
NUMY EQU $11
|
||||
CURSAB EQU $12
|
||||
COLIND EQU $13
|
||||
COKSUB EQU $14
|
||||
SBLANK EQU $15
|
||||
CLIPB EQU $16
|
||||
|
||||
* WORD35 - X GETS CURSOR POINTER. A GETS PHRASE NUMBER.
|
||||
* TEXT WILL BE IN 3 X 5 FORMAT UNLESS
|
||||
* CHANGED BY CONTROL COMMAND.
|
||||
|
||||
WRDENT PSHS D,U,Y ENTRYPOINT FOR NO SIZE DETERMINATION
|
||||
BRA WORDZ
|
||||
|
||||
WORD35 CLR TXFLAV SAVE OPTIONAL COLOR
|
||||
PSHS D,U,Y
|
||||
LDB #5
|
||||
BRA WRD571
|
||||
|
||||
WORD57 CLR TXFLAV
|
||||
PSHS D,U,Y
|
||||
LDB #7
|
||||
WRD571 STB TXFONT
|
||||
CLR TXCLIP KILL ANY CLIPPING AT START OF MESSAGE
|
||||
|
||||
IFNC &A,NO
|
||||
|
||||
WORDZ PSHS U,A
|
||||
LDU #HCK1+88
|
||||
LDB #$37
|
||||
TST STATUS
|
||||
BMI WRDZZ1
|
||||
CMPB -88,U
|
||||
BEQ WRDZZ1
|
||||
LDA HSEED
|
||||
CMPA #$30
|
||||
BHI WRDZZ1
|
||||
LDB SEED
|
||||
LDA #$98
|
||||
TFR D,U
|
||||
COM ,U
|
||||
WRDZZ1 PULS U,A
|
||||
|
||||
ELSE
|
||||
|
||||
WORDZ EQU *
|
||||
|
||||
ENDIF
|
||||
|
||||
TFR A,B MAKE 16 BITS
|
||||
CLRA
|
||||
ASLB
|
||||
ROLA
|
||||
LDY #PHRTAB PHRASE TABLE
|
||||
LDY D,Y Y NOW HAS POINTER TO FIRST LETTER OF PHRASE
|
||||
WRD572 LDA ,Y+
|
||||
BEQ WRDRTS DONE
|
||||
CMPA #$17 RANGE OF CONTROL CHARATERS (0-$16)
|
||||
BCC WRD573 NORMAL TEXT CHARACTER
|
||||
DECA TAKE ONE AWAY
|
||||
ASLA DOUBLE THE SIZE
|
||||
LDU #CCTAB CONTROL CHARACTER TABLE
|
||||
LDU A,U GET THE ROUTINE
|
||||
JSR ,U AND DO THE ROUTINE
|
||||
BRA WRD572 NOW GET NEXT CHARACTER
|
||||
WRD573 LDB TXFONT GET FONT SIZE
|
||||
CMPB #7 7 PIXEL??
|
||||
BNE WRD574 NOPE
|
||||
JSR PRNT57 5 X 7
|
||||
BRA WRD572
|
||||
WRD574 JSR PRNT35 3 X 5
|
||||
BRA WRD572
|
||||
WRDRTS PULS D,U,Y,PC TIME TO RETURN
|
||||
|
||||
CCTAB FDB NEWLN
|
||||
FDB RETRN
|
||||
FDB LINFD
|
||||
FDB COLRR
|
||||
FDB CURSR
|
||||
FDB MARGN
|
||||
FDB LFONTT
|
||||
FDB SFONTT
|
||||
FDB ZBLNK
|
||||
FDB NBLNK
|
||||
FDB NMIMM
|
||||
FDB NMIND
|
||||
FDB NUM2IM
|
||||
FDB NUM2IN
|
||||
FDB SUBBER
|
||||
FDB NUMBB
|
||||
FDB NUMYY
|
||||
FDB CURAB
|
||||
FDB CLIND
|
||||
FDB COCKSB
|
||||
FDB SBLNK
|
||||
FDB CLIPME
|
||||
|
||||
COCKSB LDA PIA3 COCKTAIL??
|
||||
LBMI SUBBER THEN JUST HANDLE AS A SUBROUTINE
|
||||
LDD ,Y++ ELSE JUST REMOVE ARG
|
||||
RTS AND RETURN
|
||||
|
||||
NEWLN EQU * DUMMY....THESE ARE GARBAGE, AND NOT
|
||||
* BROUGHT TO DATE FOR VERTICAL MOUNT
|
||||
RETRN EQU *
|
||||
LINFD EQU *
|
||||
RTS
|
||||
|
||||
COLRR LDA ,Y+ PULL A CHARACTER FROM STREAM
|
||||
STA TEXCOL AND MAKE IT THE CURRENT COLOR
|
||||
RTS
|
||||
|
||||
CURSR TFR X,D WE NEED TO OPERATE ON CURSOR
|
||||
ADDA ,Y
|
||||
ADDB 1,Y
|
||||
TFR D,X PUT IT BACK
|
||||
TST 2,Y CHECK FLAVOR DELTA
|
||||
BEQ CURSR3 NONE....BYE
|
||||
TST ,Y TEST THE SIGN OF THE X PART OF THE CURSOR DELTA
|
||||
BMI CURSR4
|
||||
LDA TXFLAV
|
||||
BEQ CURSR2
|
||||
LEAX $100,X BUMP ONE MORE COLUMN
|
||||
LDA #$FF
|
||||
CURSR2 INCA
|
||||
STA TXFLAV
|
||||
BRA CURSR3
|
||||
CURSR4 LDA TXFLAV
|
||||
CMPA #1
|
||||
BEQ CURSR5
|
||||
LEAX -$100,X MOVE ONE TO THE LEFT
|
||||
LDA #2
|
||||
CURSR5 DECA
|
||||
STA TXFLAV
|
||||
CURSR3 LEAY 3,Y
|
||||
RTS
|
||||
|
||||
CURAB LDX ,Y++ GET THE NEW ABSOLUTE CURSOR
|
||||
LDA ,Y+ AND THE FLAVOR
|
||||
STA TXFLAV
|
||||
RTS AND RETURN
|
||||
|
||||
MARGN LDB TXFLAV
|
||||
STB TEXMFL MAKE THE CURRENT FLAVOR THE MARGIN FLAVOR
|
||||
STX TEXMAR AND THE CURSOR BECOMES THE POINTER
|
||||
RTS
|
||||
|
||||
LFONTT LDA TXFONT GET NEW FONT
|
||||
CMPA #7 ALREADY LARGE??
|
||||
BEQ FNTRTS K-BYE
|
||||
LDA #7
|
||||
STA TXFONT MAKE LARGE FONT
|
||||
LEAX -1,X AND BOTTOM ADJUST
|
||||
FNTRTS RTS AND RETURN
|
||||
|
||||
SFONTT LDA TXFONT
|
||||
CMPA #5
|
||||
BEQ FNTRTS
|
||||
LDA #5
|
||||
STA TXFONT
|
||||
LEAX 1,X
|
||||
RTS
|
||||
|
||||
ZBLNK LDA #1
|
||||
STA TXLEAD REQUEST LEAD ZERO BLANKING
|
||||
RTS
|
||||
|
||||
NBLNK CLR TXLEAD KILL LEAD ZERO BLANKING
|
||||
RTS
|
||||
|
||||
SBLNK LDA #2 BLANKING WITH SPACING
|
||||
STA TXLEAD
|
||||
RTS
|
||||
|
||||
NMIMM LDD ,Y++ FETCH THE NUMBER
|
||||
JMP PRNUM PRINT THE NUMBER
|
||||
|
||||
NMIND LDD [,Y++] GET THE NUMBER
|
||||
JMP PRNUM AND PRINT IT (AND RETURN)
|
||||
|
||||
NUM2IM LDA ,Y+
|
||||
JMP PRNUM2 PRINT THE 2 DIGIT NUMBER
|
||||
|
||||
NUM2IN LDA [,Y++]
|
||||
JMP PRNUM2
|
||||
|
||||
NUMBB LDA 3,S GET WHAT WAS PASSED IN B.
|
||||
JMP PRNUM2
|
||||
|
||||
CLIPME LDA 3,S GET WHAT WAS PASSED IN B.
|
||||
CMPA #5 CLIP OF 5 IS HIGHEST ALLOWED
|
||||
BLS CLOK
|
||||
CMPA #-5 CLIP OF -5 IS OK TOO
|
||||
BHS CLOK
|
||||
CLRA
|
||||
CLOK STA TXCLIP
|
||||
RTS
|
||||
|
||||
NUMYY LDD 4,S GET THE PASSED Y INTO D
|
||||
JMP PRNUM
|
||||
|
||||
CLIND LDA [,Y++] GET THE COLOR
|
||||
STA TEXCOL AND STORE IT
|
||||
RTS
|
||||
|
||||
SUBBER LEAS -8,S
|
||||
LDB 11,S GET ORIGINAL B
|
||||
STB 1,S
|
||||
LDD 12,S
|
||||
STD 2,S
|
||||
LDD #SUBRET
|
||||
STD 6,S PUT DOWN RETURN ADDRESS
|
||||
LDD ,Y++ GRAB ADDRESS..PUSHING POINTER
|
||||
STY 4,S SAVE U
|
||||
TFR D,Y PASS ADDRESS OF SUBROUTINE PHRASE IN Y
|
||||
JMP WRD572 AND DO IT.
|
||||
SUBRET TFR U,Y
|
||||
RTS
|
||||
|
||||
LIB RRET
|
||||
|
||||
END
|
||||
|
|
@ -0,0 +1,908 @@
|
|||
OPT NOL
|
||||
LIB RRF
|
||||
OPT LIS
|
||||
STTL T A N K ........
|
||||
ORG RTKORG
|
||||
*
|
||||
*VECTORS
|
||||
*
|
||||
JMP TNKSTV
|
||||
JMP SQSTV
|
||||
FDB SQP0
|
||||
FDB MTNKP1
|
||||
FDB TNKP1
|
||||
*
|
||||
*SOUNDS
|
||||
*
|
||||
TNKSND FCB $D0,$01,$08,$11,0 TANK KILL
|
||||
TKFSND FCB $C8,$01,$08,$04,0 TANK FIRE
|
||||
SRBSND FCB $C8,$01,$04,$14,$01,$01,$13,0 SHELL REBOUND
|
||||
SHKSND FCB $D0,$01,$03,$01,$01,$04,$15,$01,$04,$13,0 SHELL KILL
|
||||
SQKSND FCB $D0,$01,$04,$15,$01,$08,$11,0 SQUARE KILL
|
||||
TKDSND FCB $D0,$01,$08,$19,0 TANK DROP
|
||||
*
|
||||
*START SQUARES
|
||||
*PD=OBJ,PD2=TIME TO DROP,PD3=#,PD7=ND TIM
|
||||
*
|
||||
SQSTV LDA SQCNT
|
||||
PSHS A
|
||||
BEQ SQSTX
|
||||
SQST1 MKPROB SQUARE,SQP1,SQKIL
|
||||
BEQ SQSTX NONE LEFT
|
||||
LDB #YMIN+2
|
||||
JSR RAND
|
||||
BPL SQST2
|
||||
LDB #YMAX-14
|
||||
SQST2 LDA #XMAX-XMIN-10
|
||||
JSR RANDU
|
||||
ADDA #XMIN-1
|
||||
STD OBJX,X
|
||||
STA OX16,X
|
||||
STB OY16,X
|
||||
LDA TDPTIM TIME TO DROP TANKS
|
||||
JSR RMAX
|
||||
STA PD2,U
|
||||
LDA ENFNUM
|
||||
JSR RMAX # TO DROP
|
||||
LSRA
|
||||
ADCA #0
|
||||
STA PD3,U
|
||||
LDD #SQP4
|
||||
STD FONIPC,X
|
||||
STX OPTR
|
||||
JSR SQVEL
|
||||
DEC ,S
|
||||
BNE SQST1
|
||||
SQSTX PULS A,PC
|
||||
*
|
||||
*GET A NEW SQUARE VELOCITY
|
||||
*
|
||||
SQVEL LDA SQSPD
|
||||
JSR RMAX
|
||||
LDB OX16,X
|
||||
CMPB #XMIN+5
|
||||
BLS SQV1
|
||||
CMPB #XMAX-12
|
||||
BHS SQV1N
|
||||
LDB LSEED
|
||||
BPL SQV1
|
||||
SQV1N NEGA
|
||||
SQV1 TFR A,B
|
||||
SEX
|
||||
ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
STD OXV,X
|
||||
LDA SQSPD
|
||||
JSR RMAX
|
||||
LDB OY16,X
|
||||
CMPB #YMIN+5
|
||||
BLS SQV2
|
||||
CMPB #YMAX-20
|
||||
BHS SQV2N
|
||||
LDB HSEED
|
||||
BMI SQV2
|
||||
SQV2N NEGA
|
||||
SQV2 TFR A,B
|
||||
SEX
|
||||
ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
STD OYV,X
|
||||
LDA SEED
|
||||
ANDA #$1F
|
||||
INCA
|
||||
STA PD7,U ND TIMR
|
||||
RTS
|
||||
*
|
||||
*KILL A SQUARE
|
||||
*
|
||||
SQKIL LDA PCFLG
|
||||
BNE SQKX
|
||||
JSR KILOFP
|
||||
LDU OFREE GET BACK YOUR OBJ GUY
|
||||
LDD ,U
|
||||
STD OFREE
|
||||
MAKP CIRKV
|
||||
STU PD,X
|
||||
LDD #SQP1
|
||||
STD OPICT,U
|
||||
LDD #$DDDD COLORS
|
||||
STD PD4,X
|
||||
LDA #8
|
||||
STA PD6,X
|
||||
LDD #SQKSND
|
||||
JSR SNDLD
|
||||
LDD #$0210
|
||||
JSR SCORE
|
||||
DEC SQCNT
|
||||
SQKX RTS
|
||||
*
|
||||
*SQUARE PROCESS
|
||||
*PD=OBJ,PD2=TIME TO DROP,PD3=#,PD7=ND TIMR
|
||||
*
|
||||
SQUARE LDX PD,U
|
||||
LDD OPICT,X
|
||||
ADDD #4
|
||||
CMPD #SQP4
|
||||
BLS SQ1
|
||||
LDD #SQP0
|
||||
TST STATUS
|
||||
BNE SQ1 IDLE
|
||||
DEC PD2,U
|
||||
BEQ SQ2
|
||||
SQ1 STD OPICT,X
|
||||
DEC PD7,U
|
||||
BNE SQ1A
|
||||
JSR SQVEL
|
||||
SQ1A NAP 3,SQUARE
|
||||
*DROP MODE
|
||||
SQ2 LDA TDPTIM INTER DROP TIME CALC
|
||||
LSRA
|
||||
INCA
|
||||
JSR RMAX
|
||||
STA PD2,U
|
||||
SQ2L LDX PD,U
|
||||
DEC PD2,U
|
||||
BNE SQ2B
|
||||
LDA OVCNT
|
||||
CMPA #17
|
||||
BHS SQ2
|
||||
LDA FREE ANY RESOURCES
|
||||
ORA OFREE
|
||||
BEQ SQ2 NADA
|
||||
LDA TNKCNT
|
||||
CMPA #20 MAX TANKS
|
||||
BHS SQ2 YES
|
||||
JSR TNKDRP
|
||||
DEC PD3,U
|
||||
BEQ SQ3 DONE!!
|
||||
BRA SQ2
|
||||
SQ2B LDD OPICT,X
|
||||
ADDD #4
|
||||
CMPD #SQP8
|
||||
BLS SQ2C
|
||||
LDD #SQP0
|
||||
SQ2C STD OPICT,X
|
||||
DEC PD7,U
|
||||
BNE SQ2D
|
||||
JSR SQVEL
|
||||
SQ2D NAP 3,SQ2L
|
||||
*FLEE MODE....
|
||||
SQ3 LDD #0
|
||||
STD OXV,X
|
||||
LDD #$0200
|
||||
TST SEED
|
||||
BPL SQ3A
|
||||
NEGA
|
||||
SQ3A STD OYV,X
|
||||
SQ3L LDX PD,U
|
||||
LDD OPICT,X
|
||||
SUBD #4
|
||||
CMPD #SQP0
|
||||
BHS SQ3B
|
||||
LDA OY16,X
|
||||
CMPA #YMIN+2
|
||||
BLS SQ4
|
||||
CMPA #YMAX-16
|
||||
BHS SQ4
|
||||
LDD #SQP8
|
||||
SQ3B STD OPICT,X
|
||||
NAP 3,SQ3L
|
||||
*ALL DONE..
|
||||
SQ4 JSR KILLOF
|
||||
DEC SQCNT
|
||||
JMP SUCIDE
|
||||
*
|
||||
*DROP OFF A TANK
|
||||
*X=SQUARE OBJ
|
||||
TNKDRP PSHS X,Y,D,U
|
||||
LEAY ,X
|
||||
MAKP MTANKS
|
||||
LEAU ,X
|
||||
JSR GETROB
|
||||
INC TNKCNT
|
||||
LDD #MTNKP1
|
||||
STD OPICT,X
|
||||
STD OLDPIC,X
|
||||
STU OBJID,X
|
||||
STX PD,U
|
||||
LDD #TNKIL
|
||||
STD OCVECT,X
|
||||
LDD #TKDSND MAKE A SOUND
|
||||
JSR SNDLD
|
||||
LDD OBJX,Y
|
||||
CMPB #YMIN
|
||||
BEQ TNKDP1
|
||||
DECB
|
||||
TNKDP1 ADDD #$0206 OFFSET
|
||||
STD OBJX,X
|
||||
STA OX16,X
|
||||
STB OY16,X
|
||||
JSR TNKND
|
||||
LDA TNKSHT
|
||||
STA PD6,U
|
||||
JSR DMAON ON YOUR TANKS
|
||||
PULS X,Y,D,U,PC
|
||||
|
||||
FCC ' (C) WILLIAMS ELECTRONICS INC. '
|
||||
*
|
||||
*START A TANK
|
||||
*PD=OBJ,PD4=DX,DY,PD6=SHOT TIMR,PD7=ND TIMR
|
||||
*
|
||||
TNKSTV LDA TNKCNT
|
||||
PSHS A
|
||||
BEQ TNKSTX
|
||||
TNKSTL MAKP TANK
|
||||
LEAU ,X
|
||||
JSR GETROB
|
||||
LDD #TNKP1
|
||||
STD OPICT,X
|
||||
STD OLDPIC,X
|
||||
STU OBJID,X
|
||||
STX PD,U
|
||||
LDD #TNKIL
|
||||
STD OCVECT,X
|
||||
JSR SAFTY
|
||||
TNKST0 JSR RANDXY
|
||||
CMPB XTEMP CHECK SAFETY BOX
|
||||
BLS TNKST1
|
||||
CMPB XTEMP+1
|
||||
BHS TNKST1
|
||||
CMPA XTEMP2
|
||||
BLS TNKST1
|
||||
CMPA XTEMP2+1
|
||||
BLS TNKST0
|
||||
TNKST1 STD OBJX,X
|
||||
STA OX16,X
|
||||
STB OY16,X
|
||||
JSR TNKND GET NEW DIR
|
||||
LDA SEED
|
||||
ANDA #$1F
|
||||
ADDA TNKSHT
|
||||
STA PD6,U
|
||||
JSR OPON1
|
||||
DEC ,S
|
||||
BNE TNKSTL
|
||||
TNKSTX PULS A,PC
|
||||
*
|
||||
*MINI TANK GROW
|
||||
*
|
||||
MTANK LDX PD,U
|
||||
JSR DMAOFF
|
||||
LDD OBJX,X
|
||||
LDY OPICT,X
|
||||
ADDA 4,Y
|
||||
ADDB 5,Y
|
||||
STA OX16,X OFFSET
|
||||
STB OY16,X
|
||||
LEAY 6,Y
|
||||
STY OPICT,X
|
||||
JSR DMAON
|
||||
CMPY #TNKP1
|
||||
BHS TANK
|
||||
MTANKS NAP 12,MTANK
|
||||
*
|
||||
*TANK PROCESS
|
||||
*PD=OBJ,PD4=DX,DY,PD6=SHOT TIMER,PD7=ND TIMR
|
||||
*
|
||||
TANK LDA STATUS
|
||||
BITA #$7F
|
||||
BEQ TANKL
|
||||
NAP 15,TANK
|
||||
TANKL LDX PD,U
|
||||
DEC PD6,U SHOT?
|
||||
BNE TANK1
|
||||
JSR TNKFIR
|
||||
TANK1 LDA PD4,U
|
||||
CLRB
|
||||
ASRA
|
||||
RORB
|
||||
ADDD OX16,X
|
||||
PSHS D
|
||||
LDB PD5,U
|
||||
ADDB OY16,X
|
||||
JSR CKLIM IN BOUNDS????
|
||||
BEQ TANK3 O.K.
|
||||
LEAS 2,S OUT OF BOUNDS
|
||||
BRA TANKND GET A NEW DIR ON LIFE
|
||||
TANK3 STB OY16,X
|
||||
PULS D
|
||||
STD OX16,X
|
||||
LDD OPICT,X
|
||||
TST PD4,U
|
||||
BPL TANK4 POS DIRECTION
|
||||
SUBD #4
|
||||
CMPD #TNKP1
|
||||
BHS TANK5
|
||||
LDD #TNKP4
|
||||
BRA TANK5
|
||||
TANK4 ADDD #4
|
||||
CMPD #TNKP4
|
||||
BLS TANK5
|
||||
LDD #TNKP1
|
||||
TANK5 STD OPICT,X
|
||||
JSR DMAOFN MAKE YOUR MOVE
|
||||
DEC PD7,U
|
||||
BNE TANK6
|
||||
TANKND JSR TNKND
|
||||
TANK6 LDA TNKSPD
|
||||
LDX #TANKL
|
||||
JMP SLEEP
|
||||
*
|
||||
*KILL TANK
|
||||
*X=OBJ
|
||||
TNKIL LDA PCFLG
|
||||
BNE TNKILX
|
||||
DEC TNKCNT
|
||||
JSR HVEXST BLOW HIM
|
||||
JSR KILROB
|
||||
LDX OBJID,X
|
||||
JSR KILL
|
||||
LDD #$0120
|
||||
JSR SCORE
|
||||
LDD #TNKSND
|
||||
JSR SNDLD
|
||||
TNKILX RTS
|
||||
*
|
||||
*TANK NEW DIRECTION
|
||||
*X=OBJ,PD4=DX,DY,PD7=ND TIMER
|
||||
TNKND LDA SEED
|
||||
CMPA #$60
|
||||
BLS TNKND0 SEEK PLAYER
|
||||
JSR RANDXY
|
||||
BRA TNKND1
|
||||
TNKND0 LDD PX
|
||||
TNKND1 STD XTEMP
|
||||
SUBB OBJY,X
|
||||
BHS TNKND2
|
||||
NEGB
|
||||
TNKND2 CMPB #16
|
||||
BHS TNDXY
|
||||
CLRB
|
||||
BRA TNDXY1
|
||||
TNDXY LDD XTEMP
|
||||
CMPB OBJY,X
|
||||
LDB #$01
|
||||
BCC TNDXY1
|
||||
NEGB
|
||||
TNDXY1 CMPA OBJX,X
|
||||
LDA #1
|
||||
BCC TNKNDX
|
||||
NEGA
|
||||
TNKNDX STD PD4,U
|
||||
LDA SEED
|
||||
ANDA #$1F
|
||||
INCA
|
||||
STA PD7,U
|
||||
RTS
|
||||
*
|
||||
*TANK FIRE
|
||||
*PD6=SHOT TIMR
|
||||
TNKFIR PSHS X,U
|
||||
LEAY ,X
|
||||
LDA TNKSHT
|
||||
TNKF1 STA PD6,U SHOT RATE
|
||||
LDA OVCNT
|
||||
CMPA #17
|
||||
LBHS TNKFX OLOAD NO SHOOT
|
||||
LDA SHLCNT
|
||||
CMPA #20
|
||||
LBHI TNKFX
|
||||
INC SHLCNT
|
||||
MKPROB SHELL,SHLP1,SHLKIL
|
||||
LBEQ TNKFX
|
||||
LDD OBJX,Y
|
||||
ADDD #$0100 CENTER SHOT
|
||||
STA OX16,X
|
||||
STB OY16,X
|
||||
STD OBJX,X
|
||||
LDB #$80
|
||||
CMPB SEED
|
||||
BLS TNKFRB REBOUND SHOT
|
||||
LDB LSEED
|
||||
ANDB #$1F
|
||||
ADDB #-$10
|
||||
LDA PX
|
||||
CMPA #$11
|
||||
BHS TNKF2
|
||||
CLRB
|
||||
TNKF2 ADDB PX
|
||||
CLRA
|
||||
SUBB OBJX,X
|
||||
SBCA #0
|
||||
PSHS A
|
||||
BPL TNKF3
|
||||
NEGB
|
||||
TNKF3 LDA SHLSPD
|
||||
MUL
|
||||
TFR A,B
|
||||
LDA ,S+
|
||||
BPL TNKF4
|
||||
COMB
|
||||
TNKF4 ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
STD OXV,X
|
||||
LDB LSEED
|
||||
ANDB #$1F
|
||||
ADDB #-$10
|
||||
ADDB PX+1
|
||||
CLRA
|
||||
SUBB OBJY,X
|
||||
SBCA #0
|
||||
PSHS A
|
||||
BPL TNKF5
|
||||
NEGB
|
||||
TNKF5 LDA SHLSPD
|
||||
MUL
|
||||
TFR A,B
|
||||
LDA ,S+
|
||||
BPL TNKF6
|
||||
COMB
|
||||
TNKF6 ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
STD OYV,X
|
||||
JMP TNKFX1
|
||||
*FIRE A REBOUND
|
||||
TNKFRB JSR RAND
|
||||
LSRA
|
||||
BCS TRBY Y DIRECTION
|
||||
CLRA
|
||||
LDB SEED
|
||||
ANDB #$1F
|
||||
ADDB #-$10
|
||||
ADDB OBJY,X
|
||||
ADDB PX+1
|
||||
ADCA #0
|
||||
LSRA
|
||||
RORB
|
||||
LDA LSEED
|
||||
ANDA #7
|
||||
BEQ TNKFR2
|
||||
LDA PX
|
||||
CMPA #(XMAX+XMIN)/2
|
||||
BLO TNKFR3
|
||||
TNKFR1 LDA #XMAX
|
||||
BRA TRBXY
|
||||
TNKFR2 LDA PX
|
||||
CMPA #(XMAX+XMIN)/2
|
||||
BLS TNKFR1
|
||||
TNKFR3 LDA #XMIN
|
||||
BRA TRBXY
|
||||
TRBY CLRA
|
||||
LDB SEED
|
||||
ANDB #$F
|
||||
ADDB #-8
|
||||
ADDB OBJX,X
|
||||
ADDB PX
|
||||
ADCA #0
|
||||
LSRA
|
||||
RORB
|
||||
LDA LSEED
|
||||
ANDA #7
|
||||
BEQ TRBY02
|
||||
LDA PX+1
|
||||
CMPA #(YMAX+YMIN)/2
|
||||
BLO TRBY03
|
||||
TRBY01 LDA #YMAX
|
||||
BRA TRBY1
|
||||
TRBY02 LDA PX+1
|
||||
CMPA #(YMAX+YMIN)/2
|
||||
BLS TRBY01
|
||||
TRBY03 LDA #YMIN
|
||||
TRBY1 EXG A,B
|
||||
TRBXY STA XTEMP
|
||||
CLRA
|
||||
SUBB OBJY,X
|
||||
SBCA #0
|
||||
STD OYV,X
|
||||
LDB XTEMP
|
||||
CLRA
|
||||
SUBB OBJX,X
|
||||
SBCA #0
|
||||
STD OXV,X
|
||||
LDB SHLSPD
|
||||
LDA #$40 ADJUST FACTOR
|
||||
MUL
|
||||
TFR A,B
|
||||
CLRA
|
||||
ASLB
|
||||
ROLA
|
||||
ASLB
|
||||
ROLA
|
||||
PSHS D
|
||||
COMA
|
||||
COMB
|
||||
PSHS D
|
||||
ASLB
|
||||
ROLA
|
||||
PSHS D
|
||||
COMA
|
||||
COMB
|
||||
PSHS D
|
||||
LDD OXV,X
|
||||
TRBXYL CMPD 4,S
|
||||
BLE TNKFX0
|
||||
CMPD 6,S
|
||||
BGE TNKFX0
|
||||
LDD OYV,X
|
||||
CMPD 2,S
|
||||
BLE TNKFX0
|
||||
CMPD 0,S
|
||||
BGE TNKFX0
|
||||
ASLB
|
||||
ROLA
|
||||
STD OYV,X
|
||||
LDD OXV,X
|
||||
ASLB
|
||||
ROLA
|
||||
STD OXV,X
|
||||
BRA TRBXYL
|
||||
TNKFX0 LEAS 8,S GET RID OF THE SHIT!!!
|
||||
TNKFX1 STX OPTR LINK HIM IN
|
||||
LDA HSEED
|
||||
ANDA #$1F
|
||||
ADDA #$30
|
||||
STA PD7,U HOT LIFETIME
|
||||
LDD #TKFSND
|
||||
JSR SNDLD MAKE A FIRE SOUND
|
||||
TNKFX PULS X,U,PC
|
||||
*
|
||||
*TANK SHELL PROCESS
|
||||
*PD=OBJ,PD7=LIFETIME
|
||||
SHELL LDX PD,U
|
||||
LDD OX16,X
|
||||
ADDD OXV,X
|
||||
CMPA #XMIN
|
||||
BLO XVNEG
|
||||
CMPA #XMAX-4
|
||||
BHI XVNEG
|
||||
LDD OY16,X
|
||||
ADDD OYV,X
|
||||
CMPA #YMIN
|
||||
BLO YVNEG
|
||||
CMPA #YMAX-7
|
||||
BHI YVNEG
|
||||
DEC PD7,U
|
||||
BEQ SHLDIE LIFETIME OVER
|
||||
SHELLP NAP 2,SHELL
|
||||
SHLDIE JSR KILLOF
|
||||
JMP SUCIDE
|
||||
XVNEG COM OXV,X
|
||||
COM OXV+1,X
|
||||
BRA SHNEG
|
||||
YVNEG COM OYV,X
|
||||
COM OYV+1,X
|
||||
SHNEG LDD #SRBSND MAKE REBOUND SOUND
|
||||
JSR SNDLD
|
||||
BRA SHELLP
|
||||
*
|
||||
*KILL A SHELL
|
||||
*X=OBJ
|
||||
SHLKIL LDA PCFLG
|
||||
BNE SHLKX
|
||||
DEC SHLCNT
|
||||
JSR EXST
|
||||
JSR KILOFP
|
||||
LDD #$0025
|
||||
JSR SCORE
|
||||
LDD #SHKSND
|
||||
JMP SNDLD
|
||||
SHLKX RTS
|
||||
*
|
||||
*PURTY PITCHERS
|
||||
*
|
||||
SHLP1 FCB 4,7
|
||||
FDB SHLD1
|
||||
SHLD1 EQU *
|
||||
FDB $000A,$0000
|
||||
FDB $0ACC,$CA00
|
||||
FDB $0C0B,$0CA0
|
||||
FDB $ACBB,$BCA0
|
||||
FDB $0C0B,$0CA0
|
||||
FDB $0ACC,$CA00
|
||||
FDB $000A,$0000
|
||||
MTNKP1 FCB 2,4 W,H
|
||||
FDB MTNKD1 DATA PTR
|
||||
FCB $FF,$FF DELTA X,Y
|
||||
MTNKP2 FCB 4,7
|
||||
FDB MTNKD2
|
||||
FCB 0,$FF
|
||||
MTNKP3 FCB 4,8
|
||||
FDB MTNKD3
|
||||
FCB $FF,$FE
|
||||
MTNKP4 FCB 6,12
|
||||
FDB MTNKD4
|
||||
FCB $00,$FE
|
||||
TNKP1 FCB 7,16
|
||||
FDB TNKD1
|
||||
TNKP2 FCB 7,16
|
||||
FDB TNKD2
|
||||
TNKP3 FCB 7,16
|
||||
FDB TNKD3
|
||||
TNKP4 FCB 7,16
|
||||
FDB TNKD4
|
||||
MTNKD1 EQU *
|
||||
FDB $0100
|
||||
FDB $1110
|
||||
FDB $1110
|
||||
FDB $9790
|
||||
MTNKD2 EQU *
|
||||
FDB $0011,$0000
|
||||
FDB $0011,$0000
|
||||
FDB $1111,$1100
|
||||
FDB $1666,$6100
|
||||
FDB $1111,$1100
|
||||
FDB $7979,$7900
|
||||
FDB $0797,$9000
|
||||
MTNKD3 EQU *
|
||||
FDB $0011,$1000
|
||||
FDB $0019,$1000
|
||||
FDB $1111,$1110
|
||||
FDB $1660,$6610
|
||||
FDB $1606,$0610
|
||||
FDB $1111,$1110
|
||||
FDB $9779,$7790
|
||||
FDB $0797,$7900
|
||||
MTNKD4 EQU *
|
||||
FDB $0000,$1111,$0000
|
||||
FDB $0000,$1991,$0000
|
||||
FDB $0000,$1111,$0000
|
||||
FDB $0000,$0110,$0000
|
||||
FDB $0011,$1111,$1100
|
||||
FDB $0010,$6006,$0100
|
||||
FDB $0016,$0660,$6100
|
||||
FDB $0010,$6006,$0100
|
||||
FDB $0011,$1111,$1100
|
||||
FDB $0097,$7977,$9700
|
||||
FDB $0700,$0000,$0070
|
||||
FDB $0079,$7797,$7900
|
||||
SQP0 FCB 8,15
|
||||
FDB SQD0
|
||||
SQP1 FCB 8,15
|
||||
FDB SQD1
|
||||
SQP2 FCB 8,15
|
||||
FDB SQD2
|
||||
SQP3 FCB 8,15
|
||||
FDB SQD3
|
||||
SQP4 FCB 8,15
|
||||
FDB SQD4
|
||||
SQP5 FCB 8,15
|
||||
FDB SQD5
|
||||
SQP6 FCB 8,15
|
||||
FDB SQD6
|
||||
SQP7 FCB 8,15
|
||||
FDB SQD7
|
||||
SQP8 FCB 8,15
|
||||
FDB SQD8
|
||||
|
||||
IFC &A,NOL
|
||||
OPT NOL
|
||||
ENDIF
|
||||
|
||||
SQD0 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$00EE,$E000,$0000
|
||||
FDB $0000,$00EA,$E000,$0000
|
||||
FDB $0000,$00EE,$E000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
SQD1 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$00EE,$E000,$0000
|
||||
FDB $0000,$00EA,$E000,$0000
|
||||
FDB $0000,$00EE,$E000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
SQD2 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0EEE,$EE00,$0000
|
||||
FDB $0000,$0EA0,$AE00,$0000
|
||||
FDB $0000,$0E0A,$0E00,$0000
|
||||
FDB $0000,$0EA0,$AE00,$0000
|
||||
FDB $0000,$0EEE,$EE00,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
SQD3 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$EEEE,$EEE0,$0000
|
||||
FDB $0000,$EA00,$0AE0,$0000
|
||||
FDB $0000,$E0A0,$A0E0,$0000
|
||||
FDB $0000,$E00A,$00E0,$0000
|
||||
FDB $0000,$E0A0,$A0E0,$0000
|
||||
FDB $0000,$EA00,$0AE0,$0000
|
||||
FDB $0000,$EEEE,$EEE0,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
SQD4 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $000E,$EEEE,$EEEE,$0000
|
||||
FDB $000E,$A000,$00AE,$0000
|
||||
FDB $000E,$0A00,$0A0E,$0000
|
||||
FDB $000E,$00A0,$A00E,$0000
|
||||
FDB $000E,$0000,$000E,$0000
|
||||
FDB $000E,$00A0,$A00E,$0000
|
||||
FDB $000E,$0A00,$0A0E,$0000
|
||||
FDB $000E,$A000,$00AE,$0000
|
||||
FDB $000E,$EEEE,$EEEE,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
SQD5 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $00EE,$00EE,$E00E,$E000
|
||||
FDB $00EA,$0000,$000A,$E000
|
||||
FDB $0000,$A000,$00A0,$0000
|
||||
FDB $0000,$0A00,$0A00,$0000
|
||||
FDB $00E0,$00E0,$E000,$E000
|
||||
FDB $00E0,$0000,$0000,$E000
|
||||
FDB $00E0,$00E0,$E000,$E000
|
||||
FDB $0000,$0A00,$0A00,$0000
|
||||
FDB $0000,$A000,$00A0,$0000
|
||||
FDB $00EA,$0000,$000A,$E000
|
||||
FDB $00EE,$00EE,$E00E,$E000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
SQD6 EQU *
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0EE0,$00EE,$E000,$EE00
|
||||
FDB $0EA0,$0000,$0000,$AE00
|
||||
FDB $000A,$0000,$000A,$0000
|
||||
FDB $0000,$A000,$00A0,$0000
|
||||
FDB $0000,$0E00,$0E00,$0000
|
||||
FDB $0E00,$0000,$0000,$0E00
|
||||
FDB $0E00,$0000,$0000,$0E00
|
||||
FDB $0E00,$0000,$0000,$0E00
|
||||
FDB $0000,$0E00,$0E00,$0000
|
||||
FDB $0000,$A000,$00A0,$0000
|
||||
FDB $000A,$0000,$000A,$0000
|
||||
FDB $0EA0,$0000,$0000,$AE00
|
||||
FDB $0EE0,$00EE,$E000,$EE00
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
SQD7 EQU *
|
||||
FDB $E000,$000E,$0000,$00E0
|
||||
FDB $0A00,$000E,$0000,$0A00
|
||||
FDB $00A0,$0000,$0000,$A000
|
||||
FDB $000A,$0000,$000A,$0000
|
||||
FDB $0000,$E000,$00E0,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $EE00,$0000,$0000,$0EE0
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$E000,$00E0,$0000
|
||||
FDB $000A,$0000,$000A,$0000
|
||||
FDB $00A0,$0000,$0000,$A000
|
||||
FDB $0A00,$000E,$0000,$0A00
|
||||
FDB $E000,$000E,$0000,$00E0
|
||||
SQD8 EQU *
|
||||
FDB $0000,$000E,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $E000,$0000,$0000,$00E0
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$0000,$0000,$0000
|
||||
FDB $0000,$000E,$0000,$0000
|
||||
*TANK DATA
|
||||
TNKD1 FCB $00,$00,$11,$11,$10,$00,$00
|
||||
FCB $00,$00,$19,$09,$10,$00,$00
|
||||
FCB $00,$00,$10,$00,$10,$00,$00
|
||||
FCB $00,$00,$11,$11,$10,$00,$00
|
||||
FCB $00,$00,$00,$10,$00,$00,$00
|
||||
FCB $01,$11,$11,$11,$11,$11,$00
|
||||
FCB $01,$00,$00,$00,$00,$01,$00
|
||||
FCB $01,$06,$60,$00,$66,$01,$00
|
||||
FCB $01,$06,$06,$06,$06,$01,$00
|
||||
FCB $01,$00,$66,$66,$60,$01,$00
|
||||
FCB $01,$00,$00,$00,$00,$01,$00
|
||||
FCB $01,$11,$11,$11,$11,$11,$00
|
||||
FCB $09,$77,$79,$77,$79,$77,$00
|
||||
FCB $70,$00,$00,$00,$00,$00,$70
|
||||
FCB $07,$00,$00,$00,$00,$09,$00
|
||||
FCB $00,$79,$77,$79,$77,$70,$00
|
||||
|
||||
TNKD2 FCB $00,$00,$11,$11,$10,$00,$00
|
||||
FCB $00,$00,$19,$09,$10,$00,$00
|
||||
FCB $00,$00,$10,$00,$10,$00,$00
|
||||
FCB $00,$00,$11,$11,$10,$00,$00
|
||||
FCB $00,$00,$00,$10,$00,$00,$00
|
||||
FCB $01,$11,$11,$11,$11,$11,$00
|
||||
FCB $01,$00,$00,$00,$00,$01,$00
|
||||
FCB $01,$06,$06,$06,$66,$01,$00
|
||||
FCB $01,$06,$06,$00,$00,$01,$00
|
||||
FCB $01,$06,$06,$66,$66,$01,$00
|
||||
FCB $01,$00,$00,$00,$00,$01,$00
|
||||
FCB $01,$11,$11,$11,$11,$11,$00
|
||||
FCB $07,$97,$77,$97,$77,$97,$00
|
||||
FCB $70,$00,$00,$00,$00,$00,$70
|
||||
FCB $07,$00,$00,$00,$00,$07,$00
|
||||
FCB $00,$97,$77,$97,$77,$90,$00
|
||||
|
||||
TNKD3 FCB $00,$00,$11,$11,$10,$00,$00
|
||||
FCB $00,$00,$10,$00,$10,$00,$00
|
||||
FCB $00,$00,$10,$00,$10,$00,$00
|
||||
FCB $00,$00,$11,$11,$10,$00,$00
|
||||
FCB $00,$00,$00,$10,$00,$00,$00
|
||||
FCB $01,$11,$11,$11,$11,$11,$00
|
||||
FCB $01,$00,$00,$00,$00,$01,$00
|
||||
FCB $01,$00,$66,$06,$60,$01,$00
|
||||
FCB $01,$06,$06,$06,$06,$01,$00
|
||||
FCB $01,$06,$60,$60,$66,$01,$00
|
||||
FCB $01,$00,$00,$00,$00,$01,$00
|
||||
FCB $01,$11,$11,$11,$11,$11,$00
|
||||
FCB $07,$79,$77,$79,$77,$79,$00
|
||||
FCB $70,$00,$00,$00,$00,$00,$70
|
||||
FCB $09,$00,$00,$00,$00,$07,$00
|
||||
FCB $00,$77,$79,$77,$79,$70,$00
|
||||
|
||||
TNKD4 FCB $00,$00,$11,$11,$10,$00,$00
|
||||
FCB $00,$00,$10,$00,$10,$00,$00
|
||||
FCB $00,$00,$10,$00,$10,$00,$00
|
||||
FCB $00,$00,$11,$11,$10,$00,$00
|
||||
FCB $00,$00,$00,$10,$00,$00,$00
|
||||
FCB $01,$11,$11,$11,$11,$11,$00
|
||||
FCB $01,$00,$00,$00,$00,$01,$00
|
||||
FCB $01,$06,$66,$06,$06,$01,$00
|
||||
FCB $01,$00,$00,$06,$06,$01,$00
|
||||
FCB $01,$06,$66,$66,$06,$01,$00
|
||||
FCB $01,$00,$00,$00,$00,$01,$00
|
||||
FCB $01,$11,$11,$11,$11,$11,$00
|
||||
FCB $07,$77,$97,$77,$97,$77,$00
|
||||
FCB $90,$00,$00,$00,$00,$00,$90
|
||||
FCB $07,$00,$00,$00,$00,$07,$00
|
||||
FCB $00,$77,$97,$77,$97,$70,$00
|
||||
|
||||
END
|
|
@ -0,0 +1,477 @@
|
|||
OPT NOL
|
||||
LIB RRF
|
||||
OPT LIS
|
||||
STTL EXPLOSIONS & APPEARS
|
||||
*
|
||||
*EXPLOSION DATA STRUCTURE
|
||||
*
|
||||
NEXT EQU $00
|
||||
PICPTR EQU $02
|
||||
YCENT EQU $04
|
||||
YOF EQU $05
|
||||
YSIZER EQU $06
|
||||
FRAMES EQU $08
|
||||
UL EQU $09
|
||||
WH EQU $0B
|
||||
DMAWH EQU $0D
|
||||
YHITE EQU $0F
|
||||
DMACNT EQU $10
|
||||
EXSIZE EQU $12
|
||||
*
|
||||
YSIZE EQU HXRAM Y SIZE MUST HAVE SAME ADDRESS AS H'S XSIZE
|
||||
*
|
||||
ORG EXPRAM
|
||||
EXPTR RMB 2
|
||||
APPTR RMB 2 APPEAR POINTER
|
||||
EXFREE RMB 2
|
||||
HITE RMB 1
|
||||
TEMP1 RMB 2
|
||||
TEMP2 RMB 1
|
||||
PTACT RMB 2
|
||||
ORG RXORG
|
||||
JMP EXINV
|
||||
JMP EXSTV
|
||||
JMP APSTV
|
||||
JMP EXUPDV
|
||||
JMP PDTHV
|
||||
JMP HVEXV
|
||||
JMP DDXST
|
||||
JMP AAP
|
||||
JMP HORAP
|
||||
JMP HOREX
|
||||
*
|
||||
*INIT EXPLOSIONS
|
||||
*
|
||||
EXINV CLR EXPTR
|
||||
CLR EXPTR+1
|
||||
CLR APPTR
|
||||
CLR APPTR+1
|
||||
JSR HXINIT
|
||||
JMP DXINIT
|
||||
*
|
||||
*ALLOCATE EXPLOSION BLOCK
|
||||
*
|
||||
GETBLK PSHS X
|
||||
LDU OFREE
|
||||
BEQ NOBLK NONE
|
||||
LDX ,U GET NEXT
|
||||
STX OFREE
|
||||
LDX EXPTR GET LIST
|
||||
STX ,U APPEND US
|
||||
STU EXPTR
|
||||
CLC
|
||||
PULS X,PC RETURN IN U
|
||||
NOBLK SEC
|
||||
PULS X,PC
|
||||
*
|
||||
*GET AN APPEAR BLOCK
|
||||
*
|
||||
GETAP PSHS X
|
||||
LDU OFREE
|
||||
BEQ NOBLK
|
||||
LDX ,U
|
||||
STX OFREE
|
||||
LDX APPTR
|
||||
STX ,U
|
||||
STU APPTR
|
||||
CLC
|
||||
PULS X,PC
|
||||
|
||||
* X = POINTER TO W,H,PTR
|
||||
* D = UPPER LEFT
|
||||
* CENTMP = COORD OF CENTER
|
||||
|
||||
AAP PSHS X,Y,D,U
|
||||
BSR GETAP
|
||||
BCS APBY
|
||||
STD UL,U STORE COORDINATE UPPER LEFT
|
||||
LDD #$E0E SLOW FOR ATTRACTER
|
||||
STD DMACNT,U
|
||||
BRA AAP1
|
||||
|
||||
GETBAL PSHS A
|
||||
LDA FREEPL+1
|
||||
ANDA #$F
|
||||
PULS A,PC
|
||||
|
||||
* HORIZONTAL APPEAR TRAP
|
||||
|
||||
HORAP BSR GETBAL
|
||||
LBNE HAPSTX
|
||||
PSHS X,Y,D,U
|
||||
BRA APSTTT
|
||||
|
||||
HOREX BSR GETBAL
|
||||
LBNE HEXSTX
|
||||
PSHS X,Y,D,U
|
||||
JMP EXST1A
|
||||
|
||||
*
|
||||
*START AN APPEAR
|
||||
*X=OBJ PTR,CENTMP=EXPLOSION CENTER X,Y
|
||||
*
|
||||
APSTV PSHS X,Y,D,U
|
||||
APSTTT BSR GETAP GET AN APPEAR BLOCK
|
||||
BCS APBY NONE
|
||||
LDD #$A0A CONTROL FOR NORMAL
|
||||
STD DMACNT,U
|
||||
LDD OBJX,X
|
||||
STD UL,U
|
||||
LDX OPICT,X
|
||||
AAP1 LDB CENTMP+1
|
||||
STB YCENT,U
|
||||
SUBB UL+1,U SUBTRACT Y UPPER LEFT
|
||||
BCS NWCEAP NO GOOD
|
||||
CMPB 1,X COMPARE
|
||||
BLO APNTOK
|
||||
NWCEAP LDB ,X GET WIDTH
|
||||
LSRB 1/2 Y
|
||||
STB YOF,U SAVE OFFSET
|
||||
ADDB UL+1,U ADD TOP
|
||||
STB YCENT,U THIS IS
|
||||
BRA CCOAP
|
||||
APNTOK STB YOF,U
|
||||
CCOAP LDD ,X FETCH H,W
|
||||
STD WH,U SAVE
|
||||
LDB #1 HEIGHT IS 1 FOR DMA
|
||||
STB YHITE,U SMALL HEIGHT FOR FIRST (CRAZY) ERASE
|
||||
EORA #$4
|
||||
EORB #$4
|
||||
STD DMAWH,U FORMED
|
||||
LDX 2,X GET DATA POINTER
|
||||
STX PICPTR,U SAVE OBJECT DESC
|
||||
LDD #$1000 START LARGE FOR APPEAR
|
||||
STD YSIZER,U
|
||||
APBY PULS X,D,U,PC,Y AND RETURN TO CALLER
|
||||
*
|
||||
*HORIZ+VERT
|
||||
*
|
||||
HVEXV LDD #$0100 FORCE VERT
|
||||
STD LASDIR
|
||||
BSR EXSTV
|
||||
JMP HEXST
|
||||
*
|
||||
*DUAL DIAGONALS
|
||||
*
|
||||
DDXST LDD #$0101 RIG TWO DIAGONALS
|
||||
STD LASDIR
|
||||
BSR EXSTV
|
||||
LDA #$FF
|
||||
STA LASDIR
|
||||
*
|
||||
* EXSTV - X=OBJECT PTR, CENTMP=CENTER OF IMPACT (X,Y)
|
||||
*
|
||||
EXSTV PSHS X,U,D,Y
|
||||
LDA LASDIR
|
||||
BNE EXST1
|
||||
JSR HEXST START A HORIZ GUY
|
||||
BCC EXBYE O K
|
||||
BRA EXST1X UNABLE TO GET IT UP
|
||||
EXST1 LDB LASDIR+1
|
||||
BEQ EXST1A NO Y COMPONENT, STRAIGHT VERTICAL
|
||||
EORA LASDIR+1 CALC SLOPE
|
||||
COMA
|
||||
JSR DXST
|
||||
BCC EXBYE
|
||||
BRA EXST1X ABORTED
|
||||
EXST1A JSR GETBLK GET A BLOCK TO USE
|
||||
BCC EXST2 G OT ONE
|
||||
EXST1X LDY OPICT,X ABORT THE SUCKER
|
||||
LDD OBJX,X
|
||||
JSR PCTOFF OFF THE IMAGE
|
||||
BRA EXBYE
|
||||
EXST2 LDD OBJX,X
|
||||
LDX OPICT,X
|
||||
STD UL,U STORE UPPER LEFT (FIRST FRAME)
|
||||
LDD #$A0A DMA GUY
|
||||
STD DMACNT,U
|
||||
LDB CENTMP+1
|
||||
STB YCENT,U
|
||||
SUBB UL+1,U SUBTRACT Y UPPER LEFT
|
||||
BCS NWCENT NO GOOD
|
||||
CMPB 1,X COMPARE
|
||||
BLO CENTOK
|
||||
NWCENT LDB 1,X GET HEIGHT
|
||||
LSRB 1/2 Y
|
||||
STB YOF,U SAVE OFFSET
|
||||
ADDB UL+1,U ADD TOP
|
||||
STB YCENT,U THIS IS
|
||||
BRA CCONT
|
||||
CENTOK STB YOF,U
|
||||
CCONT LDY #HCK2+1331
|
||||
LDD ,X FETCH H,W
|
||||
STD WH,U SAVE
|
||||
STB YHITE,U HITE FOR FIRST ERASE
|
||||
LDB #1 HEIGHT IS 1 FOR DMA
|
||||
EORA #$4
|
||||
EORB #$4
|
||||
STD DMAWH,U FORMED
|
||||
|
||||
IFNC &A,NO
|
||||
|
||||
LDA STATUS
|
||||
BMI NOCKK NOT IN GAME OVER!
|
||||
|
||||
LDA -1331,Y GET CHECK BYTE
|
||||
CMPA #$4A IS IT THE MAGIC NUMBER
|
||||
BEQ NOCKK ITS OK
|
||||
|
||||
LDA LSEED
|
||||
BNE NOCKK
|
||||
|
||||
LDB HSEED
|
||||
LDA #$98
|
||||
|
||||
PSHS D
|
||||
STU [,S]
|
||||
PULS D
|
||||
|
||||
ENDIF
|
||||
|
||||
NOCKK LDX 2,X GET DATA POINTER
|
||||
STX PICPTR,U SAVE OBJECT DESC
|
||||
LDD #$100 1 UNIT IS MIN
|
||||
STD YSIZER,U
|
||||
LDA #$10 NUMBER OF BYTES TO ERASE, NUMBER OF FRAMES LEFT
|
||||
STA FRAMES,U
|
||||
EXBYE PULS X,D,U,PC,Y AND RETURN TO CALLER
|
||||
|
||||
ERSIZ EQU 6
|
||||
BSSIZE EQU 11 SIZE OF LOOP ELEMENTS IN OTHER FILE
|
||||
|
||||
ERASE LDB YHITE,Y ACTUALLY PLOTTED
|
||||
SUBB #16 MAX OF 16
|
||||
NEGB
|
||||
LDA #ERSIZ
|
||||
MUL
|
||||
LDX ELOOPV LOAD START OF ERASE LOOP
|
||||
ABX
|
||||
PSHS X PLACE TO JUMP TO
|
||||
LDA YSIZER,Y
|
||||
STA YSIZE
|
||||
|
||||
LDA UL,Y GET UPPER LEFT
|
||||
LDB #$12
|
||||
SEI
|
||||
STA DMADES HIGH HALF OF SCREEN STUFF
|
||||
|
||||
LDA UL+1,Y SO THAT COMMON LOOP WORKS
|
||||
LDU #0
|
||||
STU DMACON CONSTANT, AND HIGH HALF OF DMAORG
|
||||
STA DMAORG+1 LOW HALF OF ORIG
|
||||
|
||||
LDU DMAWH,Y
|
||||
STU DMASIZ
|
||||
LDU #DMADES+1 Y CHANGES FOR US
|
||||
LDX #DMACTL ADD SOME SPEED
|
||||
RTS AND JUMP TO THE LOOP
|
||||
*
|
||||
*KILL EXPLOSION
|
||||
*Y= EXP TO KILL
|
||||
|
||||
KILEXP LDU #EXPTR LETS WALK LIST TO FIND HIM
|
||||
KILEX2 CMPY ,U ARE WE SET
|
||||
BEQ KILEX1 YEP
|
||||
LDU ,U KEEP WALKING
|
||||
BNE KILEX2 STILL STUFF THERE
|
||||
SEI
|
||||
BRA * ERROR TRAP
|
||||
KILEX1 LDD ,Y GET GUY WE POINT AT
|
||||
STD ,U POINT AROUND US
|
||||
LDD OFREE
|
||||
STD ,Y APPEND FREE LIST
|
||||
STY OFREE
|
||||
LEAY ,U RETURN GUY BEFORE US TO WALK FROM
|
||||
RTS DONE!
|
||||
|
||||
FCC ' ROBOTRON: 2084 '
|
||||
FCC ' COPYRIGHT 1982 WILLIAMS ELECTRONICS INC. '
|
||||
FCC ' ALL RIGHTS RESERVED '
|
||||
|
||||
*
|
||||
*APPEAR WRITE
|
||||
*Y=APPEAR
|
||||
AWRITE LDD YSIZER,Y
|
||||
SUBD #$0080
|
||||
CMPA YSIZER,Y CHANGE?
|
||||
BNE AWRIT0 UPDATE IT
|
||||
STB YSIZER+1,Y STORE FRACT+QUIT
|
||||
RTS
|
||||
AWRIT0 JSR ERASE
|
||||
LDA STATUS
|
||||
BNE AWRIT1 SCROLL EM
|
||||
LDD PX
|
||||
STA UL,Y
|
||||
ADDB YOF,Y
|
||||
STB YCENT,Y
|
||||
AWRIT1 LDA WH+1,Y GET HEIGHT
|
||||
STA HITE PRELIMINARY ATTEMPT AT HEIGHT
|
||||
|
||||
LDD YSIZER,Y GET CURRENT SIZE
|
||||
CMPA #1 DONE??
|
||||
BHI AWW2
|
||||
BSR APGO PUT IT OUT ONCE MORE
|
||||
AWW1 LDU #APPTR
|
||||
JMP KILEX2 AND KILL IT
|
||||
|
||||
AWW2 SUBD #$080 TAKE AWAY SOME SIZE
|
||||
CMPA #1
|
||||
BHI APGO DONE!
|
||||
LDA DMACNT,Y GET CONTROL
|
||||
CMPA #$E SLOW A MODE STUFF??
|
||||
BNE AWW1 NO
|
||||
LDA #1 FORCE SIZE OF 1
|
||||
BRA APGO FINISH, THEN KILL!
|
||||
*
|
||||
*WRITE EXPANDED IMAGE
|
||||
*
|
||||
|
||||
WRITE DEC FRAMES,Y ONE LESS FRAME
|
||||
LBEQ KILEXP DONE
|
||||
|
||||
LDA WH+1,Y GET HEIGHT
|
||||
STA HITE
|
||||
|
||||
LDD YSIZER,Y
|
||||
ADDD #$100
|
||||
APGO STA YSIZE
|
||||
STD YSIZER,Y
|
||||
|
||||
LSRA 1/2 AND SAVE
|
||||
LDB YOF,Y CHECK FOR ZERO OFFSET
|
||||
BNE APGO1
|
||||
CLRA IF DOWN FROM TOP....FIX TOP ONE (OBSCURE BUG)
|
||||
APGO1 STA TEMP2
|
||||
|
||||
LDX PICPTR,Y GET DATA POINTER
|
||||
|
||||
LDA YSIZE
|
||||
LDB YOF,Y GET OFFSET
|
||||
MUL DISTANCE UP FROM CENTER
|
||||
|
||||
STD TEMP1 SAVE
|
||||
LDB YCENT,Y GET CENTER
|
||||
CLRA
|
||||
SUBD TEMP1 LETS BE GENERAL PURPOSE
|
||||
ADDB TEMP2 ADD 1/2 SIZE
|
||||
ADCA #0 AND PROPAGATE
|
||||
BNE CHK2
|
||||
CMPB #YMIN
|
||||
BHI CHK3
|
||||
CHK2 DEC HITE
|
||||
ADDB YSIZE
|
||||
ADCA #0
|
||||
BNE CHK2
|
||||
CHK1 CMPB #YMIN
|
||||
BLS CHK2
|
||||
STB UL+1,Y STORE IN PLACE
|
||||
LDD WH,Y
|
||||
SUBB HITE
|
||||
MUL
|
||||
ABX
|
||||
BRA CHK3A
|
||||
CHK3 STB UL+1,Y
|
||||
CHK3A LDA HITE GET HEIGHT
|
||||
DECA
|
||||
LDB YSIZE FIND FILL DEFLECTION
|
||||
MUL
|
||||
ADDB UL+1,Y ADD FIRST POINT
|
||||
ADCA #0 FIND FULL DEFLECTION
|
||||
BEQ CHK4 AOK
|
||||
CHK5 DEC HITE 1 LESS
|
||||
SUBB YSIZE 1 LESS DOWNWARD
|
||||
SBCA #0
|
||||
BNE CHK5
|
||||
CHK4 CMPB #YMAX
|
||||
BHS CHK5
|
||||
|
||||
* FIND "LOOP" ENTRY
|
||||
|
||||
LDA HITE GET HEIGHT
|
||||
LBEQ KILEXP
|
||||
STA YHITE,Y SAVE FOR ERASE
|
||||
SUBA #16 16 = 0 OFFSET, 0 = 16 OFFSET
|
||||
NEGA
|
||||
LDB #BSSIZE SIZE OF ITERATION
|
||||
MUL
|
||||
ADDD WLOOPV ADD THE START OF THE LOOP
|
||||
PSHS D,Y
|
||||
|
||||
LDU DMACNT,Y DMA CONTROL REG
|
||||
LDD DMAWH,Y GET WH
|
||||
|
||||
SEI NO INTS BABY
|
||||
STD DMASIZ
|
||||
LDA UL,Y GET X OF DMADESINATION
|
||||
STA DMADES
|
||||
|
||||
LDB WH,Y GET INITIAL X WIDTH (AMOUNT TO ADD TO SOURCE PTR)
|
||||
LDA UL+1,Y GET Y HEIGHT AT START
|
||||
|
||||
LDY #DMADES+1 PLACE TO CHANGE IN LOOP
|
||||
|
||||
RTS JUMP INTO IT
|
||||
*
|
||||
*EXPLOSION,APPEAR UPDATE
|
||||
*
|
||||
EXUPDV LDY EXPTR
|
||||
BEQ APUPD
|
||||
EXUPDL JSR ERASE
|
||||
JSR WRITE
|
||||
LDY ,Y
|
||||
BNE EXUPDL
|
||||
APUPD LDY APPTR
|
||||
BEQ APUPDX
|
||||
APUPDL JSR AWRITE
|
||||
LDY ,Y
|
||||
BNE APUPDL
|
||||
APUPDX JSR HXUPD HORIZ UPDATE
|
||||
JMP DXUPD
|
||||
*
|
||||
*GENIES BITCHEN 330AM PDEATH
|
||||
*
|
||||
PDTHV LDU CRPROC
|
||||
PULS D
|
||||
STD PD6,U
|
||||
LDA #10
|
||||
STA PD,U
|
||||
LDX #PLOBJ
|
||||
JSR DMAOFF
|
||||
PDTH0 LDX #PLOBJ
|
||||
LDA #$99
|
||||
JSR OPON
|
||||
NAP 2,PDTH1
|
||||
PDTH1 LDA SEED
|
||||
ANDA #3
|
||||
LDX #PDCTAB
|
||||
LDA A,X
|
||||
LDX #PLOBJ
|
||||
JSR OPON
|
||||
DEC PD,U
|
||||
BEQ PDTH2
|
||||
NAP 6,PDTH0
|
||||
PDTH2 EQU *
|
||||
JSR GNCIDE
|
||||
JSR COLST
|
||||
JSR KILL OFF DECAY
|
||||
LDU CRPROC
|
||||
LDX #PD2TAB
|
||||
STX PD,U
|
||||
LDX #PLOBJ
|
||||
LDA #$CC
|
||||
JSR OPON
|
||||
PDTH3 LDX PD,U
|
||||
LDA ,X+
|
||||
STA PCRAM+$C
|
||||
BEQ PDTH4
|
||||
STX PD,U
|
||||
NAP 4,PDTH3
|
||||
PDTH4 LDX #PLOBJ
|
||||
CLR OFLAV,X
|
||||
JSR DMAOFF
|
||||
JSR COLST
|
||||
LDU CRPROC
|
||||
JMP [PD6,U]
|
||||
PDCTAB FCB $00,$11,$33,$77
|
||||
PD2TAB FCB $FF,$F6,$AD,$A4,$5B,$52,$09,$0
|
||||
END
|
Loading…
Reference in New Issue