annotate 3rdparty/packages/pacos9/scrns90.as @ 3295:6b7a7b233925 default tip

makefile: Allow PORTS with level1/2 mix https://sourceforge.net/p/nitros9/feature-requests/10/
author Tormod Volden <debian.tormod@gmail.com>
date Tue, 19 Apr 2022 18:12:17 +0200
parents 06508da42c98
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1864
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
3 NAM SCRNS
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
4 TTL Screen handling routines
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
5
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
6 * Program segment to be compiled using Level II RMA
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
7 * This is not a mainline program segment
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
8 * Written by Larry Olson
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
9
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
10 IFP1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
11 * use /dd/defs/os9defs.a
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
12 ENDc
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
13
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
14 STACK EQU 100
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
15
2946
06508da42c98 pacos: Add code and bss sections, lwlink style
Tormod Volden <debian.tormod@gmail.com>
parents: 2945
diff changeset
16 SECTION bss
1864
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
17
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
18 * Local variables
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
19
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
20 RMB STACK
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
21
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
22 ENDSECT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
23
2946
06508da42c98 pacos: Add code and bss sections, lwlink style
Tormod Volden <debian.tormod@gmail.com>
parents: 2945
diff changeset
24 SECTION code
1864
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
25
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
26 ERSCRN fcb 2,32,33,$0B
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
27
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
28 SETCOL fcb $1b,$32,10
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
29
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
30 DELPAC: lda PLAYRS Check for 1 or 2 players
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
31 bne CHKTWO
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
32 lda PACMAN Get # of pacmen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
33 deca Subtract 1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
34 sta PACMAN Save new player count
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
35 lbeq GAMOVR If 0 then END GAME
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
36 lbra NEWSC1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
37
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
38 * 2 players, so check who's up
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
39
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
40 CHKTWO lda PLCRNT Get current player
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
41 cmpa #1 Is it player #1 ?
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
42 bne PLAY2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
43 * Player 1 was up so kill one of his pacmen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
44 lda PACMN1 Get number of pacmen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
45 deca Subtract 1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
46 sta PACMN1 Save new total
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
47 bne TFRTWO
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
48 lbsr GAMOV2 Game over for player 1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
49
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
50 * Transfer player2 variables
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
51 TFRTWO lda PACMN2 Get player 2 pacmen total
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
52 sta PACMAN Put it in current pacman
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
53 lda #2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
54 sta PLCRNT Set current player to 2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
55 leax SCR2,pcr Point arrow at player 2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
56 bra TFRSCR Go transfer score & run NEWSCREEN
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
57
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
58 PLAY2 lda PACMN2 Get player 2 pacmen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
59 deca Subtract 1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
60 sta PACMN2 Save new pacmen count
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
61 lbeq GAMOVR Game over
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
62 lda PACMN1 Get player 1 pacmen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
63 sta PACMAN Put it in current pacman
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
64 lda #1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
65 sta PLCRNT Set current player to 1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
66 leax SCR1,pcr Point arrow at player 1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
67
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
68 * Transfer score variables
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
69
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
70 TFRSCR ldy #18 Output 18 characters to screen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
71 lbsr OUTSTR Go output arrow
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
72 leax SCRPOS,U Point to score string
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
73 leay SCRPO2,U Point to score save area
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
74 ldb #12 Set count to 12 bytes
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
75 stb DOTCNT Save counter
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
76 SRLOOP lda ,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
77 ldb ,Y
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
78 sta ,Y+
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
79 stb ,X+
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
80 dec DOTCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
81 bne SRLOOP Loop till 12 bytes done
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
82
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
83 ldd EXTPAC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
84 pshs d
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
85 ldd EXTPC2,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
86 std EXTPAC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
87 puls D
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
88 std EXTPC2,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
89
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
90 * Transfer board variables
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
91
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
92 leax DOTTOT,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
93 leay DOTTMP,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
94 ldb #6 Transfer 6 bytes
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
95 stb DOTCNT Save counter
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
96 SBLOOP lda ,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
97 ldb ,Y
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
98 sta ,Y+
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
99 stb ,X+
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
100 dec DOTCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
101 bne SBLOOP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
102
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
103 ******************************
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
104 NEWSC1 leax SELECT,pcr *---- Remark out for testing
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
105 ldy #2 *
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
106 lbsr OUTST2 *
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
107 ******************************
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
108
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
109 ldx #75
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
110 lbsr WAIT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
111 lda PLAYRS Check for 1 or 2 players
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
112 beq ONEPLR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
113 lbsr BELL
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
114 leax GETRD1,pcr
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
115 lda PLCRNT Get current player
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
116 cmpa #1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
117 beq PUTPLR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
118 leax GETRD2,pcr
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
119 PUTPLR ldy #29 Output 29 bytes
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
120 lbsr POPUP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
121 bra NEWSC2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
122
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
123 ldx #75
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
124 lbsr WAIT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
125
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
126 lbsr BELL
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
127
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
128 ONEPLR leax GETRDY,pcr
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
129 ldy #12
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
130 lbsr POPUP Do popup and output GETRDY
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
131
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
132 NEWSC2 bsr NEWSCN Erase ghosts & pacman
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
133 lda PLAYRS Check for 1 or 2 players
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
134 beq SKIPTR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
135
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
136 lbsr TRANSF Transfer table to array
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
137
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
138 SKIPTR nop
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
139 ldx #50
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
140 lbsr WAIT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
141
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
142 lbsr BELL
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
143
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
144 leax SELECT,pcr
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
145 ldy #2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
146 lbsr OUTSTR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
147
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
148 leax POPEND,pcr
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
149 ldy #15
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
150 lbsr OUTST2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
151
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
152 lbra MAIN
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
153
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
154 * New screen routines
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
155
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
156 NEWSCN: ldd PXNEW First erase pacman
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
157 std PXLOC
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
158 ldd PYNEW
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
159 std PYLOC
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
160 lda #37 Blank round pacman
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
161 sta PBFN
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
162 lbsr PUTBLK
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
163 * Now erase ghosts
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
164 lda #1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
165 sta PGBFN
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
166 lda #80
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
167 sta GCOUNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
168 GHRSET lda GCOUNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
169 suba #20
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
170 bmi GHRST2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
171 sta GCOUNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
172 leax G1OFST,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
173 leax A,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
174 ldd 2,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
175 std PGXLOC
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
176 ldd 4,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
177 std PGYLOC
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
178 lbsr PUTGHT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
179 bra GHRSET
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
180 GHRST2 lbsr GHDATA
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
181 * Reset palette registers
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
182 leax PALST1,pcr
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
183 ldy #16
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
184 lbsr OUTSTR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
185
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
186 * Clear and setup array
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
187 * Only clear array and dot total at start of game
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
188
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
189 ldd DOTTOT Check dot total
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
190 cmpd SCNTOT Cleared screen ?
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
191 beq NEWBRD
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
192
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
193 lda PLAYRS Check for 2 player mode
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
194 beq PTDOTS
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
195
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
196 lda BRDNUM
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
197 cmpa BRDTMP Are players on same board?
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
198 beq SETVR2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
199
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
200 leax ERSCRN,pcr Erase scrn, leave score
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
201 ldy #4 Output 4 bytes
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
202 lbsr OUTSTR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
203 lbsr BOARDB Go draw players board
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
204 leax SETCOL,pcr Reset foreground color
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
205 ldy #3 Output 3 bytes
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
206 lbsr OUTSTR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
207 bra SETVR2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
208
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
209 NEWBRD: dec SCNFLG
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
210 bne NEWBR2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
211 lda #2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
212 sta SCNFLG Reset screen flag to 2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
213 lda BRDNUM Get board number
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
214 inca
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
215 cmpa #9 Only 8 boards
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
216 bne GETBRD
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
217 lda #1 Reset board to #1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
218 GETBRD sta BRDNUM Save new board number
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
219 leax ERSCRN,pcr Erase scrn, leave score
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
220 ldy #4 Output 4 bytes
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
221 lbsr OUTSTR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
222 lbsr BOARDB Go draw new board
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
223 leax SETCOL,pcr Reset forgroung color
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
224 ldy #3
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
225 lbsr OUTSTR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
226 NEWBR2 lbsr CLRARR Clear array, fill with dots
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
227 ldd #0
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
228 std DOTTOT Reset dot total
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
229
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
230 * Redraw DOTS and PILLS that may have been
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
231 * partially erased by ghosts or pacman
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
232
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
233 PTDOTS lbsr PDOTS
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
234
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
235 RSTBON lbsr RESBON Go reset bonus
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
236
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
237 * Reset pacman variables
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
238 SETVR2 ldd #308
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
239 std PXNEW
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
240 std PCXLOC
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
241 std PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
242 ldd #94
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
243 std PYNEW
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
244 std PCYLOC
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
245 std PYLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
246 lda #28
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
247 sta BUFF
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
248 sta PBFN,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
249 lbsr PUTBLK Put starting pacman
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
250 ldd #1966
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
251 std POFSET
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
252 lda #3
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
253 sta CYCLE
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
254 lda #80
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
255 sta GCOUNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
256 clr HITFLG
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
257 clr POWFLG
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
258
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
259 RETURN rts Return to main loop
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
260
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
261 * Transfer player table to array & array to table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
262 * Used to save one players screen when switching
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
263 * to second player.
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
264
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
265
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
266 TRANSF leay TABLE1,U Point to player 1 table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
267 lda PLCRNT,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
268 cmpa #2 Is new player #2 ?
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
269 beq TRFPUT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
270 leay TABLE2,U Point to player 2 table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
271 TRFPUT leax ARRAY,U Point to start of array
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
272 leax 70,X Move to first dot location
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
273 clr DOTCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
274 TRLOOP inc DOTCNT Bump dot counter
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
275 lda ,X Get a byte from array
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
276 ldb ,Y Get a byte from table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
277 sta ,Y+ Put array byte in table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
278 stb ,X++ Put byte in array,bump pointer
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
279 lda DOTCNT Get dot counter
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
280 cmpa #34 Done 34 yet?
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
281 bne TRLOOP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
282 cmpx #ARREND-69 Are we done?
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
283 bge TRCLR
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
284 leax 139,X Move down 2 lines in array
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
285 clr DOTCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
286 bra TRLOOP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
287
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
288 TRCLR lbsr CLRARR Go clear and setup array
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
289
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
290 leay TABLE1,U Point to player 1 table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
291 lda PLCRNT,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
292 cmpa #1 Is new player #1 ?
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
293 beq TFRPT2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
294 leay TABLE2,U Point to player 2 table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
295 TFRPT2 leax ARRAY,U Point to start of array
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
296 leax 70,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
297 clr DOTCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
298 TRLOP2 inc DOTCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
299 lda ,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
300 ldb ,Y
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
301 sta ,Y+
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
302 stb ,X++
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
303 lda DOTCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
304 cmpa #34
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
305 bne TRLOP2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
306 cmpx #ARREND-69
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
307 bge TRDONE
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
308 leax 139,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
309 clr DOTCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
310 bra TRLOP2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
311
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
312 TRDONE lbsr PDOTS Go put dots on screen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
313
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
314 * Transfer players bonus variables (2 player mode only)
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
315 * Erase last players bonus items from screen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
316
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
317 TRFBON lda #69 Blank Bonus
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
318 sta PBFN,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
319 ldd BONUSX Get scrn x value
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
320 std PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
321 ldd BONUSY Get scrn Y value
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
322 std PYLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
323 lda BONCNT Get count of items
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
324 inca
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
325 sta BONTMP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
326 TBLOOP dec BONTMP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
327 beq TRBON2 Leave routine if 0
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
328 lbsr PUTBLK Go erase item
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
329 ldd PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
330 subd #28
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
331 std PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
332 bra TBLOOP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
333
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
334 * Now transfer bonus variables
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
335
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
336 TRBON2 lda #15 Transfer 15 bytes
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
337 sta BONTMP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
338 leax BONUSX,U Point to first block
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
339 leay BTEMP,U Point to second block
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
340 TLOOP2 lda ,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
341 ldb ,Y
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
342 sta ,Y+
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
343 stb ,X+
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
344 dec BONTMP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
345 bne TLOOP2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
346
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
347 * Now put new players bonus items on screen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
348
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
349 PBONUS ldd #8
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
350 std PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
351 ldd #181
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
352 std PYLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
353 leax BONTAB,U Point to table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
354 stx BONTMP Save table pointer
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
355 lda BONCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
356 beq PBDONE
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
357 PBLOOP pshs A Save count
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
358 ldd PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
359 addd #28
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
360 std PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
361 ldx BONTMP Get pointer
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
362 ldb ,X+ Get next table item
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
363 stb PBFN,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
364 stx BONTMP Save pointer
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
365 lbsr PUTBLK Go put item on screen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
366 puls A
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
367 deca Decrement counter
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
368 bne PBLOOP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
369
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
370 * Pacman may have to be put back on screen here
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
371
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
372 PBDONE rts
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
373
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
374 * Reset bonus variables
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
375
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
376 RESBON: lda BONFLG Check flag
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
377 beq RESBN2 If 0, bonus not on screen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
378 ldd #310
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
379 std PXLOC
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
380 ldd #95
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
381 std PYLOC
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
382 lda #69
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
383 sta PBFN
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
384 lbsr PUTBLK Erase bonus from screen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
385 leax ARRAY,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
386 ldd #1966
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
387 leax D,X
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
388 clr ,X Erase bonus from array
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
389 clr BONFLG
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
390 RESBN2 lda #69
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
391 sta BONBUF Reset bonus buffer #
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
392 lda #250
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
393 sta BONTIM Reset bonus timer
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
394 rts
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
395
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
396 * Bonus was eaten by pacman, so erase it
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
397 * and put it at bottom of screen
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
398
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
399 SETBON: ldd #310 X scrn location of bonus
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
400 std PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
401 ldd #95 Y scrn location of bonus
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
402 std PYLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
403 lda #69 Number for blank bonus
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
404 sta PBFN,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
405 lbsr PUTBLK Go erase bonus
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
406 * Restore pacman (if erased)
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
407 leax PUTPACM,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
408 ldy #8
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
409 lda PATH
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
410 OS9 I$Write
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
411 lbcs ERR1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
412 * Make noise
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
413
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
414 ldx #$3f01
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
415 ldy #3850
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
416 lbsr SND
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
417 ldx #$3401
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
418 ldy #4000
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
419 lbsr SND
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
420
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
421 leax BONTAB,U Point to item table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
422 lda BONCNT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
423 leax A,X Move to next table location
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
424 ldb BONBUF Get buffer number
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
425 stb ,X Put it in table
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
426
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
427 ldd BONUSX
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
428 addd #28 Move to next location
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
429 std BONUSX Save new location
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
430 std PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
431 ldd BONUSY
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
432 std PYLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
433 lda BONBUF Get Bonus buffer number
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
434 sta PBFN,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
435 lbsr PUTBLK Put bonus at bottom of scrn
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
436 inc BONCNT Bump bonus counter
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
437 rts
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
438
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
439 * When screen has been cleared, give an additional
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
440 * 100 points for each bonus at bottom of screen.
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
441 * Erase bonus item at bottom as it is added up.
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
442
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
443 CNTBON: lda BONCNT Check for 0 bonus's
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
444 beq CTRTS If zero, then return
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
445 ldd BONUSY
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
446 std PYLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
447 lda #69 Blank Bonus
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
448 sta PBFN,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
449 ldd BONUSX
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
450 std PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
451 CTLOOP lbsr PUTBLK Go erase bonus item
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
452
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
453 * Make noise
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
454
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
455 ldx #$3f02
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
456 ldy #4000
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
457 lbsr SND
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
458 ldx #$3f03
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
459 ldy #3800
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
460 lbsr SND
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
461 ldx #$3f02
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
462 ldy #4000
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
463 lbsr SND
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
464
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
465 * Bump score
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
466
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
467 lda #1 Add 100 points to score
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
468 sta POINTS+1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
469 clr POINTS+2
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
470 lbsr ADDUP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
471 dec BONCNT Decrement bonus counter
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
472 beq CTDONE
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
473 ldd PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
474 subd #28 Move to next item
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
475 std PXLOC,U
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
476 bra CTLOOP
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
477
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
478 CTDONE clr POINTS+1
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
479 ldd #8
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
480 std BONUSX
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
481
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
482 CTRTS rts
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
483
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
484
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
485
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
486 ENDSECT
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
487
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
488
f351932fa6cd Added pacos9
boisy
parents:
diff changeset
489