INIT.S 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  1. * INIT INITIALIZATION ROUTINES FOR MS PAC MAN
  2. * DO THE INITIALIZATION NEEDED AT THE VERY MINIMUM.
  3. STRTINIT JSR ZERORAM ;ZERO RAM, TURN OFF DISPLAY
  4. FILL $40,#0,#$60 ;NULL OUT LOWER PART OF PAGE ZERO
  5. JSR ZEROSCOR
  6. LDX #$1F ;RANDOMIZE SEED
  7. SIRRLOOP EOR $00,X
  8. DEX
  9. BPL SIRRLOOP
  10. STA NEWRAND
  11. LDX #$00 ;GET JOYSTICK STATE SET UP
  12. STX INPTCTRL
  13. LDA $3900 ;SEE IF HI SCORE CART IS THERE
  14. CMP #$C6
  15. BNE NOHSC
  16. LDA $3904
  17. CMP #$FE
  18. BNE NOHSC
  19. INX
  20. NOHSC STX HSCHERE
  21. LDA #$00
  22. STA CTLSWA ;INITIALIZE JOYSTICKS AND SWITCHES
  23. STA CTLSWB
  24. JSR OURINIT ;INIT IT OUR WAY
  25. LDA #$01
  26. STA STLEVEL ;START DEFAULT AT CHERRY LEVEL
  27. RTS
  28. * INITIALIZE STATE OUR WAY - USED ALSO AFTER HSC STUFF
  29. OURINIT JSR SCREENNO ;TURN SCREEN OFF
  30. LDA #BLACK
  31. STA BACKGRND ;PUT BACKGROUND TO BLACK
  32. JSR LOADDLST ;INITIALIZE DISPLAY LISTS
  33. JSR LOADFONT ;LOAD FONT
  34. LDA #H(STAMPS)
  35. STA CHARBASE ;INSTALL THE MS PAC MAN CHARACTERS
  36. LDA #L(DLL)
  37. STA DPPL ;SET DPPL AND DPPH TO DLLIST
  38. LDA #H(DLL)
  39. STA DPPH
  40. JMP SCREENON ;TURN SCREEN DISPLAY ON
  41. * INITIALIZE THE ENTIRE GAME. ZERO DATA AREAS AND SET CONTROL REGISTERS.
  42. GAMEINIT JSR ZERORAM ;ZERO RAM, TURN OFF SCREEN
  43. JSR SCREENON ;SCREEN BACK ON AGAIN
  44. LDA AUTOPLAY
  45. BNE GIJMP0
  46. JSR ZEROSCOR ;ZERO SCORE IF NOT IN AUTO-PLAY
  47. GIJMP0 LDA #$01 ;SET UP PLAYER 2
  48. STA PLAYER
  49. LDA STLEVEL ;SET STARTING LEVEL
  50. STA LEVEL
  51. STA ADJLEVEL
  52. JSR SETRACK
  53. JSR INITLIV ;INITIALIZE NUMBER OF LIVES
  54. JSR SCRNINIT ;INITIALIZE SCREEN AND TIMERS
  55. JSR SWITCHPL ;SET UP PLAYER 1
  56. LDA STLEVEL ;SET STARTING LEVEL
  57. STA LEVEL
  58. STA ADJLEVEL
  59. JSR SETRACK
  60. JSR INITLIV ;INITIALIZE NUMBER OF LIVES
  61. * THIS ROUTINE INITIALIZES THE STATE FOR A RACK
  62. RACKINIT JSR SCRNINIT
  63. JMP COMNINIT
  64. * THIS ROUTINE INITIALIZES THE SCREEN FOR A RACK
  65. SCRNINIT JSR LOADDOTS ;SET UP DOTS
  66. LDA #$38 ;SET NUMBER OF DOTS BEFORE FRUIT APPEAR
  67. STA FDOTS
  68. LDA #0
  69. STA DOTSEATN
  70. STA PINKDOTS
  71. STA BLUEDOTS
  72. STA GOLDDOTS
  73. STA DEATHFLG
  74. STA EATNDOTS
  75. STA TRELEASE
  76. SCRRAND JSR RAND ;GET A RANDOM NUMBER 0..3 FOR AUTOPLAY
  77. AND #$03
  78. BEQ SCRRAND ;DO NOT ALLOW 0 (SHE DIES TOO MUCH)
  79. STA RACKRAND
  80. RTS
  81. * THIS ROUTINE INITIALIZES BETWEEN PLAYERS
  82. OTHRINIT JSR SAVEDOTS ;UPDATE DOT ARRAY
  83. JSR SWITCHPL ;SWITCH PLAYERS
  84. * THIS ROUTINE IS USED IN COMMON BY RACKINIT AND OTHRINIT
  85. COMNINIT LDA #$00 ;ZERO OUR LOCAL CLOCKS
  86. STA RTLOCAL
  87. STA RTLOCAL+1
  88. STA NORMTIME
  89. STA NORMTIME+1
  90. JSR CLRSCRN ;TURN OFF THE SCREEN
  91. LDX RACK
  92. LDA DOTCOLOR,X ;SET COLORS
  93. STA P0C1
  94. LDA BARCOLOR,X
  95. STA P0C2
  96. LDA OUTCOLOR,X
  97. STA P0C3
  98. JSR LOADDLST ;RESTORE THE DISPLAY LISTS
  99. JSR LOADMAP ;SET UP SCREEN
  100. JSR WRTINDS ;WRITE INDICATORS - GO TO LIFEINIT
  101. * THIS ROUTIINE INITIALIZES A NEW LIFE (OTHRINIT FALLS THROUGH TO HERE)
  102. LIFEINIT JSR CLEARFRT ;SET UP FOR STARTING LIFE
  103. JSR INITPAC
  104. JSR INITMON
  105. JSR INITSPED
  106. JSR CLEARTUN
  107. JSR SETPAC
  108. JSR SETFRT
  109. JMP SETFLSH
  110. * TURN THE SCREEN OFF
  111. SCREENOF JSR WAITVBL ;WAIT TILL VBLANK STARTED
  112. LDA #$7F ;TURN GRAPHICS OFF
  113. STA CTRL
  114. JSR CLRSCRN ;CLEAR OFF LIVES, FRUITS, AND MONSTERS
  115. LDX #$00 ;CLEAR CHARACTER MAP, $1800-$1BFF
  116. TXA
  117. SOLOOP STA $1800,X
  118. STA $1900,X
  119. STA $1A00,X
  120. STA $1B00,X
  121. DEX
  122. BNE SOLOOP
  123. SOEND STA SCRNSTAT ;ZERO SOME STATE
  124. STA KNLTEMP0
  125. STA KNLTEMP1
  126. RTS
  127. * TURN THE SCREEN OFF WITHOUT ZEROING THE SCREEN
  128. SCREENNO JSR WAITVBL ;WAIT TILL VBLANK STARTED
  129. LDA #$7F ;TURN GRAPHICS OFF
  130. STA CTRL
  131. LDA #$00
  132. BEQ SOEND
  133. * TURN THE SCREEN ON
  134. SCREENON LDA SCRNSTAT ;SEE IF SCREEN WAS EVEN OFF
  135. BNE SOOUT
  136. JSR LOADER ;INITIALIZE KERNAL STATE
  137. JSR GETCOLOR ;GET OUR COLORS
  138. JSR WAITVBL
  139. LDA #$FF ;SET THE KERNAL STATE
  140. STA KNLTEMP0
  141. INC SCRNSTAT ;SAY THE SCREEN IS ON
  142. LDA #GRAPHON
  143. STA CTRL ;TURN GRAPHICS ON
  144. SOOUT RTS
  145. * A ROUTINE TO WATI TILL VBLANK
  146. WAITVBL BIT MSTAT ;IS VBLANK STARTED YET?
  147. BPL WAITVBL
  148. BIT MSTAT ;IS VBLANK STILL STARTED?
  149. BPL WAITVBL
  150. RTS
  151. * TURN MISCELLANEOUS GRAPHICS OFF. THE MOVING OBJECTS AND INDICATORS ARE
  152. * TURNED OFF.
  153. CLRSCRN LDA #OFFSCRN ;TURN OFF MOVING OBJECTS
  154. LDX #$05
  155. CSMLOOP STA HPLIST,X
  156. STA DOLIST,X
  157. DEX
  158. BPL CSMLOOP
  159. LDY #$0B ;PUT BONUS LIFE AND FRUIT INDICATORS
  160. LDX #$03 ; OFF SCREEN
  161. LDA #OFFSCRN
  162. CSBLOOP STA BDLIST0,X
  163. STA BDLIST1,X
  164. INX
  165. INX
  166. INX
  167. INX
  168. DEY
  169. BPL CSBLOOP
  170. RTS ;ALL DONE
  171. * THIS ROUTINE WRITES ALL THE INDICATORS ON THE SCREEN
  172. WRTINDS LDX LEVEL ;SET TYPE OF FRUIT AT BOTTOM
  173. CPX #$07
  174. BMI WISETFRT
  175. LDX #$07
  176. WISETFRT INX
  177. STX RACKFRT
  178. JSR LOADINDS ;SET UP THE INDICATORS
  179. JSR WRTSCORE ;WRITE THE SCORE
  180. JMP WRTLIVES ;FALL THROUGH TO LIFEINIT
  181. * THIS ROUTINE ADVANCES THE RACK
  182. NEXTRACK JSR CLEARTUN
  183. JSR FLASHBAR
  184. LDA AUTOPLAY ;SEE IF IN AUTO-PLAY MODE
  185. BNE NRAUTO
  186. LDX ADJLEVEL
  187. LDA ANIMTAB,X ;SEE IF ANIMATION DUE
  188. BMI NRCONT
  189. JSR ANIMATE ;ANIMATE
  190. NRCONT INC LEVEL ;INCREMENT LEVEL
  191. INC ADJLEVEL ;AND ADJUSTED LEVEL
  192. LDA ADJLEVEL ;SEE IF OUT OF RANGE
  193. CMP #$0E
  194. BMI NRJMP0
  195. LDA #$06 ;SET BACK TO LEVEL 6
  196. STA ADJLEVEL
  197. NRJMP0 JSR SETRACK
  198. JSR RACKINIT ;INIT THE NEW RACK
  199. JSR READY ;PUT PLAYER READY UP
  200. JSR WAIT
  201. JMP WCLEAR
  202. NRAUTO INC RACK ;AUTO-PLAY NEXT RACK
  203. LDX RACK
  204. CPX #NUMRACKS
  205. BPL NROVER
  206. LDA RACKLVL,X
  207. STA LEVEL
  208. STA ADJLEVEL
  209. JMP RACKINIT
  210. NROVER LDX #STACKPTR ;ALL OVER - GO BACK TO TITLE PAGE
  211. TXS
  212. JMP ATTRACT
  213. SETRACK LDX ADJLEVEL
  214. LDA RACKTAB,X ;GET THE RACK
  215. STA RACK
  216. RTS
  217. * THIS ROUTINE INITIALIZES THE DISPLAY LISTS
  218. LOADDLST LDX #$58
  219. LDLLOOP0 LDA DLISTS,X ;INITIALIZE SCREEN AND INDICATOR LISTS
  220. STA DLIST0,X
  221. STA DLIST1,X
  222. DEX
  223. BPL LDLLOOP0
  224. LDX #$06
  225. LDLLOOP1 LDA TDLIST,X ;INITIALIZE TOP DISPLAY LIST
  226. STA TOPDLIST,X
  227. DEX
  228. BPL LDLLOOP1
  229. LDX #$6E
  230. LDLLOOP2 LDA DLLIST,X
  231. STA DLL,X
  232. DEX
  233. BPL LDLLOOP2
  234. RTS
  235. * THIS ROUTINE MOVES THE BLACK BARS OFF THE SCREEN
  236. BARSOFF LDA #OFFSCRN
  237. STA DLIST0+$20
  238. STA DLIST0+$24
  239. STA DLIST1+$20
  240. STA DLIST1+$24
  241. RTS
  242. * THIS ROUTINE FLASHES THE BAR COLOR
  243. FLASHBAR LDY #$02
  244. LDX RACK ;GET BAR COLOR
  245. FBLOOP LDA #BLACK ;TURN BAR OFF
  246. STA P0C2
  247. JSR FBWAIT ;PAUSE
  248. LDA BARCOLOR,X ;TURN BAR ON
  249. STA P0C2
  250. JSR FBWAIT ;PAUSE
  251. DEY
  252. BPL FBLOOP
  253. RTS
  254. FBWAIT LDA RTLOCAL+1 ;WAIT A BIT FOR THE BAR FLASHING
  255. CLC
  256. ADC #$0E
  257. STA TEMP16
  258. FBWLOOP JSR SEEBNORM
  259. LDA TEMP16
  260. CMP RTLOCAL+1
  261. BPL FBWLOOP
  262. RTS
  263. * THIS ROUTINE ZEROS OUT THE RAM
  264. ZERORAM JSR SCREENOF ;TURN SCREEN OFF FIRST, ZERO $1800-1BFF
  265. LDA #$00
  266. LDX #$60 ;ZERO OUT $A0-$FF
  267. ZRLOOP0 STA $9F,X
  268. DEX
  269. BNE ZRLOOP0
  270. ZRLOOP STA $1C00,X ;ZERO OUT PAGES $1C00 AND $1D00
  271. STA $1D00,X
  272. DEX
  273. BNE ZRLOOP
  274. RTS
  275. * THIS ROUTINE ZEROS OUT THE SCORE
  276. ZEROSCOR LDX #$05
  277. ZSCLOOP LDA INITSCOR,X
  278. STA P1SCORE,X
  279. STA P2SCORE,X
  280. DEX
  281. BPL ZSCLOOP
  282. RTS
  283. * THIS ROUTINE SIMPLY DOES A BUSY-WAIT. THIS IS USED TO HALT ACTION TEMPORARIL
  284. WAIT LDA RTLOCAL+1
  285. CLC
  286. ADC #$40
  287. STA TEMP16
  288. WLOOP JSR SEEBNORM
  289. LDA TEMP16
  290. CMP RTLOCAL+1
  291. BPL WLOOP
  292. RTS
  293. * SWITCH DATA BETWEEN PLAYERS
  294. SWITCHPL LDX #$0B ;SWITCH PLAYER DEPENDANT DATA
  295. SPLLOOP LDA LIVES,X
  296. LDY BAKLIVES,X
  297. STY LIVES,X
  298. STA BAKLIVES,X
  299. DEX
  300. BPL SPLLOOP
  301. LDX #$7F ;SWITCH DOT ARRAYS
  302. SDTLOOP LDA DOTARRAY,X
  303. LDY BAKDOTS,X
  304. STA BAKDOTS,X
  305. TYA
  306. STA DOTARRAY,X
  307. DEX
  308. BPL SDTLOOP
  309. LDA PLAYER ;SWITCH PLAYER
  310. EOR #$01
  311. STA PLAYER
  312. LDA LIVES ;SWITCH BACK IF NO LIVES LEFT
  313. BMI SWITCHPL
  314. RTS
  315. * ROUTINE TO LOAD MS PAC MAN FONT - ALSO INITIALIZES BLACK CHARACTERS
  316. LOADFONT LDA #L(MSFONT) ;SET UP TEMP0 FOR READS FROM FONT
  317. STA TEMP0
  318. LDA #H(MSFONT)
  319. STA TEMP1
  320. LDA #$30 ;SET UP TEMP2 FOR WRITES TO STAMP AREA
  321. STA TEMP2 ; FONT STARTS AT $30
  322. LDA #$90 ;INDEX FOR OUTER LOOP - HOW MANY CHARS
  323. STA TEMP4 ; GET $60 CHARACTERS FROM FONT
  324. LDY #$00
  325. LFLOOP LDA #H(STAMPS+$500) ;SET HI BYTE OF WRITE
  326. STA TEMP3
  327. LDX #$05 ;INNER LOOP IS SIX BIG (SIZE OF CHAR)
  328. LFLOOP0 LDA (TEMP0),Y ;READ FROM FONT
  329. STA (TEMP2),Y ;WRITE TO STAMPS
  330. INC TEMP0 ;INCREMENT READ
  331. BNE LFLJMP0
  332. INC TEMP1
  333. LFLJMP0 DEC TEMP3 ;DECREMENT HI BYTE OF WRITE
  334. DEX
  335. BPL LFLOOP0
  336. INC TEMP2 ;INCREMENT TO NEXT RAM CHARACTER
  337. DEC TEMP4
  338. BNE LFLOOP
  339. LDA #$FF ;SET UP THE STAMP FOR BLACK BARS
  340. STA STAMPS+2 ; CHARACTERS 2 AND 3
  341. STA STAMPS+3
  342. STA STAMPS+$102
  343. STA STAMPS+$103
  344. STA STAMPS+$202
  345. STA STAMPS+$203
  346. STA STAMPS+$302
  347. STA STAMPS+$303
  348. STA STAMPS+$402
  349. STA STAMPS+$403
  350. STA STAMPS+$502
  351. STA STAMPS+$503
  352. LDA #$00 ;SET UP THE STAMP FOR BLANK AREA
  353. STA STAMPS+0 ; CHARACTERS 2 AND 3
  354. STA STAMPS+1
  355. STA STAMPS+$100
  356. STA STAMPS+$101
  357. STA STAMPS+$200
  358. STA STAMPS+$201
  359. STA STAMPS+$300
  360. STA STAMPS+$301
  361. STA STAMPS+$400
  362. STA STAMPS+$401
  363. STA STAMPS+$500
  364. STA STAMPS+$501
  365. LDX #$1D ;ZERO OUT KERNAL LISTS
  366. LDA #$00
  367. LFLOOP1 STA MSADDR,X
  368. STA FRTADDR,X
  369. STA M0ADDR,X
  370. STA M1ADDR,X
  371. STA M2ADDR,X
  372. STA M3ADDR,X
  373. DEX
  374. BPL LFLOOP1
  375. RTS
  376. * THIS ROUTINE LOADS THE BITMAPS FOR THE INDICATORS AND SETS UP FRUIT INDS
  377. LOADINDS LDA #L(MSCHAR+48) ;TEMP0 IS START OF MS PAC
  378. STA TEMP0
  379. LDA #H(MSCHAR+48)
  380. STA TEMP1
  381. LDA #$28
  382. STA TEMP4
  383. JSR LIBODY ;DO IT - WRITE THE MS PAC INDICATOR
  384. LDA #L(FRUITCHR) ;TEMP0 IS START OF FRUIT
  385. STA TEMP0 ; ENTRY POINT FOR CHANGING FRUIT
  386. LDA #H(FRUITCHR)
  387. STA TEMP1
  388. LDX #$00 ;WRITE THE FRUITS
  389. NFLOOP LDA FRTSTMP,X ;WHERE IT'S GOING TO
  390. STA TEMP4
  391. STX TEMP15
  392. JSR LIBODY ;DO IT
  393. LDX TEMP15
  394. LDA TEMP0 ;MOVE TO NEXT FRUIT STAMP
  395. CLC
  396. ADC #24
  397. STA TEMP0
  398. LDA TEMP1
  399. ADC #$00
  400. STA TEMP1
  401. INX
  402. CPX #$08
  403. BMI NFLOOP
  404. LDX STLEVEL ;NOW - SET UP FRUIT INDS
  405. BNE LIFLOAD
  406. LDA RACKFRT ;IF STARTING AT TDY BEAR AND GOING TO
  407. CMP #$07 ; BANANA, THEN DON'T DISPLAY TDY BEAR
  408. BMI LIFLOAD
  409. INX
  410. LIFLOAD LDY #$2D ;INDEX INTO DISPLAY LISTS
  411. LIFLOOP LDA BDLIST0,Y ;CHANGE PALETTE
  412. AND #$1F
  413. ORA FRTPAL,X
  414. STA BDLIST0,Y
  415. STA BDLIST1,Y
  416. DEY
  417. LDA FRTSTMP,X ;SET STAMP
  418. STA BDLIST0,Y
  419. CLC
  420. ADC #$02
  421. STA BDLIST1,Y
  422. DEY
  423. DEY
  424. DEY
  425. INX
  426. CPX RACKFRT
  427. BMI LIFLOOP
  428. LIFOUT RTS
  429. * THIS ROUTINE DOES THE WORK FOR THE FRUIT AND PAC WRITING ROUTINES
  430. LIBODY LDA #H(STAMPS+$500) ;SET TEMP8 TO DESTINATION
  431. STA TEMP9
  432. LDA TEMP0 ;SET (TEMP2) TO POINT TO SECOND PART
  433. CLC
  434. ADC #$0C
  435. STA TEMP2
  436. LDA TEMP1
  437. ADC #$00
  438. STA TEMP3
  439. LDX #$00 ;AND DO IT
  440. LDY #$00
  441. LILOOP LDA TEMP4 ;MOVING INTO STAMPS STARTING AT TEMP4
  442. STA TEMP8
  443. LDA (TEMP0),Y ;UPPER STAMP FIRST BYTE
  444. STA (TEMP8,X)
  445. INC TEMP8
  446. INY
  447. LDA (TEMP0),Y ;UPPER STAMP SECOND BYTE
  448. STA (TEMP8,X)
  449. INC TEMP8
  450. DEY
  451. LDA (TEMP2),Y ;LOWER STAMP FIRST BYTE
  452. STA (TEMP8,X)
  453. INC TEMP8
  454. INY
  455. LDA (TEMP2),Y ;LOWER STAMP SECOND BYTE
  456. STA (TEMP8,X)
  457. INC TEMP8
  458. INY ;GET SET FOR NEXT
  459. DEC TEMP9 ;MOVE TO NEXT OUTPUT PAGE
  460. LDA TEMP9
  461. CMP #H(STAMPS)
  462. BPL LILOOP
  463. RTS
  464. * DEFAULT TEMPLATE FOR DISPLAY LIST
  465. DLISTS DB L(SCREEN),$60,H(SCREEN),$00+$04,$18 ;SCREEN - PLAY FIELD
  466. DB 0,$20+$1E,H(STAMPS),OFFSCRN ;MS PAC
  467. DB 0,$40+$1E,H(STAMPS),OFFSCRN ;FRUIT
  468. DB 0,$60+$1E,H(STAMPS),OFFSCRN ;MONSTER 0
  469. DB 0,$80+$1E,H(STAMPS),OFFSCRN ;MONSTER 1
  470. DB 0,$A0+$1E,H(STAMPS),OFFSCRN ;MONSTER 2
  471. DB 0,$C0+$1E,H(STAMPS),OFFSCRN ;MONSTER 3
  472. DB $02,$20+$1E,H(STAMPS),$10 ;BLACK BAR
  473. DB $02,$20+$1E,H(STAMPS),$88 ;BLACK BAR
  474. DB $00,$00
  475. DB $00,$20+$1E,H(STAMPS),LEFTSIDE-$01 ;INDICATOR ZONE
  476. DB $00,$20+$1E,H(STAMPS),LEFTSIDE+$08 ; 5 INDS WITH PAC PLT
  477. DB $00,$20+$1E,H(STAMPS),LEFTSIDE+$11
  478. DB $00,$20+$1E,H(STAMPS),LEFTSIDE+$1A
  479. DB $00,$20+$1E,H(STAMPS),LEFTSIDE+$23
  480. DB $00,$00+$1E,H(STAMPS),RGHTSIDE-$44 ;FRUIT INDICATORS
  481. DB $00,$00+$1E,H(STAMPS),RGHTSIDE-$3A ; STAMP AND PALETTES
  482. DB $00,$00+$1E,H(STAMPS),RGHTSIDE-$30 ; MUST BE SET
  483. DB $00,$00+$1E,H(STAMPS),RGHTSIDE-$26
  484. DB $00,$00+$1E,H(STAMPS),RGHTSIDE-$1C
  485. DB $00,$00+$1E,H(STAMPS),RGHTSIDE-$12
  486. DB $00,$00+$1E,H(STAMPS),RGHTSIDE-$08
  487. DB $00,$00
  488. TDLIST DB L(SCORE),$60,H(SCORE),$00+$04,$18 ;SCORE DLIST
  489. DB $00,$00
  490. * THIS IS THE DISPLAY LIST LIST. THIS WILL BE DROPPED INTO RAM.
  491. DLLIST DB $0F,H(NULDLIST),L(NULDLIST) ;16 BLANK LINES
  492. DB $08,H(NULDLIST),L(NULDLIST) ;9 BLANK LINES
  493. DB $85,H(TOPDLIST),L(TOPDLIST) ;SCORE ZONE
  494. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  495. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  496. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  497. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  498. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  499. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  500. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  501. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  502. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  503. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  504. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  505. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  506. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  507. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  508. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  509. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  510. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  511. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  512. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  513. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  514. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  515. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  516. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  517. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  518. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  519. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  520. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  521. DB $85,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  522. DB $85,H(DLIST0),L(DLIST0) ;PF ZONE - 0
  523. DB $05,H(DLIST1),L(DLIST1) ;PF ZONE - 1
  524. DB $85,H(BDLIST0),L(BDLIST0) ;INDICATOR ZONE - 0
  525. DB $85,H(BDLIST1),L(BDLIST1) ;INDICATOR ZONE - 1
  526. DB $0F,H(NULDLIST),L(NULDLIST) ;16 BLANK LINES
  527. DB $0F,H(NULDLIST),L(NULDLIST) ;16 BLANK LINES
  528. * COLORS FOR THE RACKS
  529. BARCOLOR DB PINK,BLUE,BROWN,DKBLUE
  530. OUTCOLOR DB LTPINK,LTBLUE,LTBROWN,LTGREEN
  531. DOTCOLOR DB BLUE,YELLOW,PINK,LTBLUE
  532. * MAPPING FROM LEVEL TO RACK
  533. RACKTAB DB 0,0,0,1,1,1,2,2,2,2,3,3,3,3
  534. ANIMTAB DB -1,-1,0,-1,-1,1,-1,-1,-1,2,-1,-1,-1,2
  535. * MAPPING FROM RACK TO LEVEL FOR AUTO-PLAY
  536. RACKLVL DB $01,$03,$06,$0A
  537. * TABLES TO INITIALIZE SCORES AND BONUSES
  538. INITSCOR DB $00,$00,$00,$00,$09,$99
  539. * MAPPING OF FRUIT TO PALETTE AND STAMP
  540. FRTPAL DB $60,$60,$80,$A0,$60,$60,$C0,$20
  541. FRTSTMP DB $FC,$F8,$F4,$F0,$EC,$E8,$E4,$E0