SSCROLL.S 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716
  1. * SPHINX--SSCROLL.S
  2. *COARSE VERTICAL PRECEDES COARSE HORIZONTAL. CHAR MAP GENERATION IS STILL DONE
  3. *ON THE SAME FRAME AS COARSE VERTICAL
  4. ; ZERODEF
  5. ; RSEG CODED
  6. ZSTHPOS EQU $5A ;STARTING X POS OF CHAR MAP
  7. ZPALWID EQU $4B ;CHARACTER MAP LENGTH 21 BYTES
  8. * SUPER DUPER SCROLLING ROUTINE
  9. SCROLL:
  10. LDA SCROLLS
  11. BEQ SCREND
  12. STA TEMP8
  13. DEC TEMP8
  14. SCROLLP:
  15. JSR VSCROLL ;DO IT
  16. JSR HSCROLL ;DOIT
  17. NOSCROLL:
  18. INC SCRLLCNT
  19. SCRNXT: DEC TEMP8
  20. BPL SCROLLP
  21. SCREND: RTS
  22. * VSCROLL
  23. VSCROLL:
  24. INC ZONEOFF ;INC ZONEOFF AND CHECK
  25. BNE NOT0
  26. LDA #$4F ;RESTORE TOP DUMMY ZONES
  27. STA DLLIST ;HIGH AND LOW BYTES SHOULD BE SAME
  28. LDA #$48
  29. STA DLLIST+3
  30. LDA #$C0 ;ONE LINE OF ZONE 0
  31. STA DLLIST+6 ;STORE IT
  32. LDA #DL0/256
  33. STA DLLIST+7
  34. LDA #DL0&$FF
  35. STA DLLIST+8
  36. LDA #$4F ;FULL ZONE 1 WITH NO DLI
  37. STA DLLIST+9
  38. NOT0:
  39. LDA ZONEOFF ;CHECK FOR COARSE SCROLL
  40. CMP #15
  41. BEQ COARSEV
  42. ORA #$C0 ;ZONEOFF IS HEIGHT OF ZONE0
  43. STA DLLIST+6 ;OFFSET
  44. LDA ZONEOFF ;CALCULATE ZONE 11 STUFF FROM ZONEOFF
  45. CLC
  46. ADC #(CHARS+$100)/256
  47. STA D11CBASE ;CHARBASE OF ZONE 11
  48. LDA #14
  49. SEC
  50. SBC ZONEOFF
  51. ORA #$C0
  52. STA DLLIST+39
  53. CMP #$C0
  54. BNE MORETH1
  55. ;HERE FOR ZONE HEIGHT OF 1
  56. LDA #DLZ11A&$FF ;SPECIAL DLI FOR ZONE HEIGHT OF 1
  57. STA DLZDEST
  58. LDA #DLZ11A/256
  59. STA DLZDEST+1
  60. LDA DLLIST+42
  61. AND #$7F
  62. STA DLLIST+42
  63. RTS
  64. MORETH1:
  65. LDA #DLIZ11&$FF ;REGULAR DLI FOR ZONE 11
  66. STA DLZDEST
  67. LDA #DLIZ11/256
  68. STA DLZDEST+1
  69. LDA DLLIST+42
  70. ORA #$80
  71. STA DLLIST+42
  72. RTS
  73. COARSEV: LDY #$FF ;COARSE V SCROLL
  74. STY ZONEOFF
  75. INY
  76. STY KPTR0
  77. STY KPTR1
  78. LDA #$47 ;CHANGE TOP ZONE TO EIGHT OF BLANK
  79. STA DLLIST
  80. LDA #$48 ;ANOTHER ZONE OF 9 BLANK LINES
  81. STA DLLIST+3
  82. LDA #$47 ;DLI TO SET UP PROPER COLOR
  83. STA DLLIST+6 ;MAKE THIRD ZONE 8 OF BLANK
  84. LDA #NULHDR/256 ;SET UP ITS BLANK HEADER
  85. STA DLLIST+7
  86. LDA #NULHDR&$FF
  87. STA DLLIST+8
  88. LDA #$CF ;ZONE 1 GETS 16 LINES THIS TIME
  89. STA DLLIST+9
  90. LDX #11 ;SHUFFLE CHAR MAPS
  91. VSCRLP: LDA HIBYE,X
  92. STA KPTR1+1
  93. LDA HIBYE-1,X
  94. STA KPTR0+1
  95. LDY #4
  96. LDA (KPTR0),Y ;HPOS
  97. STA (KPTR1),Y
  98. DEY
  99. DEY ;SKIP PALWIDTH
  100. LDA (KPTR0),Y ;HIGH BYTE CHAR MAP
  101. STA (KPTR1),Y
  102. DEY
  103. DEY ;SKIP W1
  104. LDA (KPTR0),Y ;LOW BYTE CHAR MAP
  105. STA (KPTR1),Y
  106. DEX
  107. BPL VSCRLP
  108. LDX BAND ;GET NEXT BAND
  109. DEX
  110. BPL NEXBAND
  111. LDY NEWBLK ;GET NEW BLOCK IF NEEDED
  112. STY BLOCK
  113. INC NBFLAG
  114. LDX BANDTBL,Y ;6 IS MAXIMUM BAND NUMBER
  115. NEXBAND: STX BAND
  116. LDY BLOCK ;GET NEW BLOCK NUMBER
  117. LDA MSKLFTLO,Y ;STUFF POINTERS TO LOAD NEW MASK
  118. STA KTEMP0
  119. LDA MSKLFTHI,Y
  120. STA KTEMP1 ;(KTEMP0) POINTS TO MASKL TABLE FOR BLK
  121. LDA MSKMIDLO,Y
  122. STA KPTR0 ;(KPTR0) POINTS TO MASKM TABLE FOR BLK
  123. LDA MSKMIDHI,Y
  124. STA KPTR0+1
  125. LDA MSKRITLO,Y
  126. STA KTEMP2 ;(KTEMP2) POINTS TO MASKR TABLE FOR BLK
  127. LDA MSKRITHI,Y
  128. STA KTEMP3
  129. LDA BLKTBLLO,Y ;USE BLOCK TABLE AND TIMES33 TABLE TO
  130. LDX STUFFDEX ;GET POINTER TO CURRENT BAND AND MOVE
  131. STA PTRTBLLO,X ;POINTER TABLES USED FOR LOOKAHEAD
  132. LDA BLKTBLHI,Y
  133. STA PTRTBLHI,X
  134. LDY BAND
  135. LDA TIMES33,Y
  136. CLC
  137. ADC PTRTBLLO,X ;add to lo byte
  138. STA PTRTBLLO,X
  139. LDA PTRTBLHI,X
  140. ADC #0
  141. STA PTRTBLHI,X
  142. LDA (KTEMP0),Y ;USE POINTERS TO STUFF MASK TABLE VALUE
  143. STA LEFTMASK,X ;INTO LOCATIONS CORRESPONDING TO CHAR
  144. LDA (KPTR0),Y
  145. STA MIDMASK,X
  146. LDA (KTEMP2),Y ;MAPS
  147. STA RIGTMASK,X
  148. INX
  149. TXA
  150. AND #$03
  151. STA STUFFDEX
  152. ;THIS IS ADDRESS OF CHAR MAP IN ROM
  153. ;NOW WE HAVE TO COPY INTO RAM
  154. LDX BUFDEX
  155. LDA BUFFERLO,X
  156. STA KTEMP2
  157. LDA BUFFERHI,X
  158. STA KTEMP3
  159. DEX
  160. BPL OLDBUF
  161. LDX #11
  162. OLDBUF: STX BUFDEX
  163. LDY LOADFDEX ;COPY POINTER OF CHAR MAP FROM POINTER
  164. LDA PTRTBLLO,Y ;BUFFER TABLE INTO FROM POINTER
  165. STA KTEMP0
  166. LDA PTRTBLHI,Y
  167. STA KTEMP1
  168. INY
  169. TYA
  170. AND #$03
  171. STA LOADFDEX
  172. LDY #32
  173. COPYLOP: LDA (KTEMP0),Y ;THIS COPIES CHAR MAP INTO RAM
  174. STA (KTEMP2),Y
  175. DEY
  176. BPL COPYLOP
  177. LDA #ZSTHPOS ;HEADER FOR NEW CHAR MAP
  178. STA DL0+4
  179. LDA #ZPALWID ;PALLETTE WIDTH
  180. STA DL0+3
  181. LDA KTEMP3 ;HIGH BYTE OF CHAR MAP
  182. STA DL0+2
  183. LDA #$60 ;W1
  184. STA DL0+1
  185. LDA KTEMP2 ;LOW BYTE OF CHAR MAP
  186. STA DL0
  187. LDA #CHARS/256
  188. STA D11CBASE ;CBASE OF ZONE 11
  189. LDA #$CF
  190. STA DLLIST+39
  191. CMP #$C0
  192. BNE MORETH1A
  193. ;HERE FOR ZONE HEIGHT OF 1
  194. LDA #DLZ11A&$FF ;ISN'T THIS THE SAME AS ABOVE
  195. STA DLZDEST
  196. LDA #DLZ11A/256
  197. STA DLZDEST+1
  198. LDA DLLIST+42
  199. AND #$7F
  200. STA DLLIST+42
  201. RTS
  202. MORETH1A:
  203. LDA #DLIZ11&$FF ;AND ISN'T THIS SIMILAR TO ABOVE
  204. STA DLZDEST
  205. LDA #DLIZ11/256
  206. STA DLZDEST+1
  207. LDA DLLIST+42
  208. ORA #$80
  209. STA DLLIST+42
  210. RTS
  211. TIMES33: .dc.b 0*33,1*33,2*33,3*33,4*33,5*33,6*33
  212. BUFFERLO: .dc.b ZBUFF0&$FF,ZBUFF1&$FF,ZBUFF2&$FF
  213. .dc.b ZBUFF3&$FF,ZBUFF4&$FF,ZBUFF5&$FF
  214. .dc.b ZBUFF6&$FF,ZBUFF7&$FF,ZBUFF8&$FF
  215. .dc.b ZBUFF9&$FF,ZBUFFA&$FF,ZBUFFB&$FF
  216. BUFFERHI: .dc.b ZBUFF0/256,ZBUFF1/256,ZBUFF2/256
  217. .dc.b ZBUFF3/256,ZBUFF4/256,ZBUFF5/256
  218. .dc.b ZBUFF6/256,ZBUFF7/256,ZBUFF8/256
  219. .dc.b ZBUFF9/256,ZBUFFA/256,ZBUFFB/256
  220. HIBYE: .dc.b DL0/256,DL1/256,DL2/256,DL3/256
  221. .dc.b DL4/256,DL5/256,DL6/256,DL7/256
  222. .dc.b DL8/256,DL9/256,DL10/256,DL11/256
  223. BANDTBL: .dc.b 6,6,3,2,3,2,3,2,6,3,2,3,2,6
  224. * HSCROLL
  225. HSCROLL:
  226. DEC DL0+4 ;DECREMENT HORIZONTAL POSITIONS
  227. DEC DL1+4
  228. DEC DL2+4
  229. DEC DL3+4
  230. DEC DL4+4
  231. DEC DL5+4
  232. INC JERKOFF ;INCREMENT HOR SCROLL COUNTER
  233. LDA JERKOFF
  234. CMP #7
  235. BEQ COARSEH
  236. DEC DL6+4 ;IF APPROPRIATE, DEC REST OF X POS'S
  237. DEC DL7+4
  238. DEC DL8+4
  239. DEC DL9+4
  240. DEC DL10+4
  241. DEC DL11+4
  242. RTS
  243. COARSEH: LDA #$FF ;COARSE H SCROLL
  244. STA JERKOFF
  245. LDA #0 ;ZERO OUT H POS'S
  246. STA DL6+4
  247. STA DL7+4
  248. STA DL8+4
  249. STA DL9+4
  250. STA DL10+4
  251. STA DL11+4
  252. INC DL6 ;INC START OF CHAR MAP
  253. INC DL7
  254. INC DL8
  255. INC DL9
  256. INC DL10
  257. INC DL11
  258. RTS
  259. BLKTBLLO: .dc.b BLOCK0&$FF,BLOCK1&$FF,BLOCK2&$FF
  260. .dc.b BLOCK3&$FF,BLOCK4&$FF,BLOCK5&$FF
  261. .dc.b BLOCK6&$FF,BLOCK7&$FF,BLOCK8&$FF
  262. .dc.b BLOCK9&$FF,BLOCKA&$FF,BLOCKB&$FF
  263. .dc.b BLOCKC&$FF,BLOCKD&$FF
  264. BLKTBLHI: .dc.b BLOCK0/256,BLOCK1/256,BLOCK2/256
  265. .dc.b BLOCK3/256,BLOCK4/256,BLOCK5/256
  266. .dc.b BLOCK6/256,BLOCK7/256,BLOCK8/256
  267. .dc.b BLOCK9/256,BLOCKA/256,BLOCKB/256
  268. .dc.b BLOCKC/256,BLOCKD/256
  269. MSKLFTLO: .dc.b MASK0L&$FF,MASK1L&$FF,MASK2L&$FF
  270. .dc.b MASK3L&$FF,MASK4L&$FF,MASK5L&$FF
  271. .dc.b MASK6L&$FF,MASK7L&$FF,MASK8L&$FF
  272. .dc.b MASK9L&$FF,MASKAL&$FF,MASKBL&$FF
  273. .dc.b MASKCL&$FF,MASKDL&$FF
  274. MSKLFTHI: .dc.b MASK0L/256,MASK1L/256,MASK2L/256
  275. .dc.b MASK3L/256,MASK4L/256,MASK5L/256
  276. .dc.b MASK6L/256,MASK7L/256,MASK8L/256
  277. .dc.b MASK9L/256,MASKAL/256,MASKBL/256
  278. .dc.b MASKCL/256,MASKDL/256
  279. MSKMIDLO: .dc.b MASK0M&$FF,MASK1M&$FF,MASK2M&$FF,MASK3M&$FF
  280. .dc.b MASK4M&$FF,MASK5M&$FF
  281. .dc.b MASK6M&$FF,MASK7M&$FF,MASK8M&$FF,MASK9M&$FF
  282. .dc.b MASKAM&$FF,MASKBM&$FF
  283. .dc.b MASKCM&$FF,MASKDM&$FF
  284. MSKMIDHI: .dc.b MASK0M/256,MASK1M/256,MASK2M/256
  285. .dc.b MASK3M/256,MASK4M/256,MASK5M/256
  286. .dc.b MASK6M/256,MASK7M/256,MASK8M/256
  287. .dc.b MASK9M/256,MASKAM/256,MASKBM/256
  288. .dc.b MASKCM/256,MASKDM/256
  289. MSKRITLO: .dc.b MASK0R&$FF,MASK1R&$FF,MASK2R&$FF
  290. .dc.b MASK3R&$FF,MASK4R&$FF,MASK5R&$FF
  291. .dc.b MASK6R&$FF,MASK7R&$FF,MASK8R&$FF
  292. .dc.b MASK9R&$FF,MASKAR&$FF,MASKBR&$FF
  293. .dc.b MASKCR&$FF,MASKDR&$FF
  294. MSKRITHI: .dc.b MASK0R/256,MASK1R/256,MASK2R/256
  295. .dc.b MASK3R/256,MASK4R/256,MASK5R/256
  296. .dc.b MASK6R/256,MASK7R/256,MASK8R/256
  297. .dc.b MASK9R/256,MASKAR/256,MASKBR/256
  298. .dc.b MASKCR/256,MASKDR/256
  299. BLOCK0:
  300. Z0BAND0: .dc.b 54,56,58,24,26,24,24,24,28,24,36,24,24,24,112,212,184
  301. .dc.b 184,184,184,184,184,184,184,194,150,82,24,40,42,24,24,28
  302. Z0BAND1: .dc.b 54,56,58,24,24,24,24,24,40,42,40,38,38,24,84,136,212,184
  303. .dc.b 184,184,184,184,184,184,184,184,196,24,24,24,26,38,24
  304. Z0BAND2: .dc.b 54,56,58,24,24,26,24,24,40,24,24,24,24,28,24,24,208,184,184
  305. .dc.b 184,184,184,184,184,184,184,184,184,110,24,40,24,24
  306. Z0BAND3: .dc.b 54,56,58,24,40,24,24,84,136,190,76,24,24,24,24,24,24,24,74,114
  307. .dc.b 176,188,184,184,184,184,184,184,184,184,110,24,24
  308. Z0BAND4: .dc.b 54,56,58,24,24,24,24,28,96,198,150,82,24,24,26,60,62,64,24,24
  309. .dc.b 24,24,24,74,114,176,188,184,184,184,184,184,110
  310. Z0BAND5: .dc.b 54,56,58,24,24,40,42,38,24,24,24,40,24,24,30,24,24,24,66,66
  311. .dc.b 62,64,24,26,24,24,24,24,208,184,184,184,184
  312. Z0BAND6: .dc.b 54,56,58,24,24,24,24,24,40,42,24,24,24,24,36,24,24,24,24,24
  313. .dc.b 24,24,66,70,24,24,24,42,40,112,212,184,184
  314. MASK0L: .dc.b $FF
  315. .dc.b $FF
  316. .dc.b $FF
  317. .dc.b $FE
  318. .dc.b $FF
  319. .dc.b $FF
  320. .dc.b $FF
  321. MASK0M: .dc.b $FC
  322. .dc.b $FC
  323. .dc.b $FF
  324. .dc.b $1F
  325. .dc.b $0F
  326. .dc.b $FF
  327. .dc.b $FF
  328. MASK0R: .dc.b $00,$00,$00,$C0,$FF,$FF,$FF
  329. BLOCK1:
  330. Z1BAND0: .dc.b 54,56,58,30,24,28,24,26,24,24,42,90,92,142,144,212,184
  331. .dc.b 184,184,184,184,184,184,194,146,148,82,28,24,42,40,38,24
  332. Z1BAND1: .dc.b 54,56,58,24,38,90,92,80,80,142,144,186,186,210,204,188
  333. .dc.b 184,184,184,184,184,184,184,194,150,82,24,36,24,40,40,42,38
  334. Z1BAND2: .dc.b 54,56,58,24,28,42,130,212,184,184,184,184,184,194,150,82
  335. .dc.b 24,118,188,184,184,194,150,128,188,196,24,26,38,40,24,28,24
  336. Z1BAND3: .dc.b 54,56,58,24,28,24,24,112,212,184,184,184,194,150,86,88
  337. .dc.b 24,26,42,112,212,194,150,82,42,24,208,110,28,24,24,26,30
  338. Z1BAND4: .dc.b 54,56,58,24,24,42,24,26,38,208,184,184,194,150,82,24
  339. .dc.b 26,42,90,92,136,210,150,82,30,24,26,24,208,110,34,24,24
  340. Z1BAND5: .dc.b 54,56,58,24,24,30,24,24,24,26,24,208,184,184,116,24
  341. .dc.b 42,90,92,136,212,184,184,196,30,24,24,24,24,26,118,110,42
  342. Z1BAND6: .dc.b 54,56,58,24,26,42,24,28,42,40,24,24,28,208,184,184
  343. .dc.b 206,186,186,212,184,184,184,184,194,120,24,26,24,26,24,28,42
  344. MASK1L: .dc.b $FF
  345. .dc.b $F8
  346. .dc.b $FC
  347. .dc.b $FE
  348. .dc.b $FF
  349. .dc.b $FF
  350. .dc.b $FF
  351. MASK1M: .dc.b $E0
  352. .dc.b $00
  353. .dc.b $00
  354. .dc.b $00
  355. .dc.b $81
  356. .dc.b $E1
  357. .dc.b $F8
  358. MASK1R: .dc.b $00
  359. .dc.b $00
  360. .dc.b $80
  361. .dc.b $E0
  362. .dc.b $C0
  363. .dc.b $80
  364. .dc.b $00
  365. BLOCK2:
  366. Z2BAND0: .dc.b 54,56,58,24,26,24,24,24,24,90,92,80,80,142,144,184,184
  367. .dc.b 184,184,184,184,184,184,184,184,150,82,28,24,42,28,26,24
  368. Z2BAND1: .dc.b 54,56,58,24,90,92,80,80,142,144,212,184,184,184,184,184,184
  369. .dc.b 184,184,184,184,184,184,184,194,150,82,24,36,24,26,24,40
  370. Z2BAND2: .dc.b 54,56,58,28,102,104,160,114,176,204,146,148,138,174,184,184
  371. .dc.b 184,184,184,184,184,184,184,184,194,150,82,24,40,42,26,24,34
  372. Z2BAND3: .dc.b 54,56,58,24,98,100,88,24,40,42,24,34,24,84,136,212,184
  373. .dc.b 184,184,184,184,184,184,184,194,150,82,24,28,42,40,42,24
  374. MASK2L: .dc.b $FF
  375. .dc.b $F0
  376. .dc.b $F0
  377. .dc.b $F1
  378. MASK2M: .dc.b $80
  379. .dc.b $00
  380. .dc.b $00
  381. .dc.b $F8
  382. MASK2R: .dc.b $00,$00,$00,$00
  383. BLOCK3:
  384. Z3BAND0: .dc.b 54,56,58,24,26,24,66,68,62,64,24,24,84,80,140,184
  385. .dc.b 184,184,184,184,184,184,194,204,150,138,82,24,26,24,24,24,26
  386. Z3BAND1: .dc.b 54,56,58,24,26,24,28,24,40,24,66,70,24,112,212,184
  387. .dc.b 184,184,184,184,184,184,184,194,122,24,34,24,24,24,24,28,24
  388. Z3BAND2: .dc.b 54,56,58,24,28,24,24,24,24,42,38,40,24,84,136,212
  389. .dc.b 184,184,184,184,184,184,184,184,194,122,24,24,24,26,24,24,24
  390. MASK3L: .dc.b $FF
  391. .dc.b $FF
  392. .dc.b $FF
  393. MASK3M: .dc.b $F0
  394. .dc.b $F8
  395. .dc.b $F8
  396. MASK3R: .dc.b $00,$00,$00
  397. BLOCK4:
  398. Z4BAND0: .dc.b 54,56,58,24,24,24,40,24,24,90,92,80,80,142,144,184
  399. .dc.b 184,184,184,194,150,174,184,184,184,150,82,24,26,42,40,42,24
  400. Z4BAND1: .dc.b 54,56,58,24,24,24,24,24,24,112,186,212,184,184,184,184
  401. .dc.b 184,184,194,150,86,88,112,212,184,194,122,24,26,24,24,24,40
  402. Z4BAND2: .dc.b 54,56,58,24,24,24,26,24,24,24,24,208,184,184,184,184
  403. .dc.b 184,184,184,184,116,42,36,112,212,184,194,122,24,60,62,64,24
  404. Z4BAND3: .dc.b 54,56,58,60,62,64,26,30,24,26,28,24,24,208,184,184
  405. .dc.b 184,184,184,184,184,184,206,186,190,198,146,148,82,24,24,24,66
  406. MASK4L: .dc.b $FF
  407. .dc.b $FF
  408. .dc.b $FF
  409. .dc.b $FF
  410. MASK4M: .dc.b $80
  411. .dc.b $80
  412. .dc.b $E0
  413. .dc.b $F8
  414. MASK4R: .dc.b $00,$00,$06,$00
  415. BLOCK5:
  416. Z5BAND0: .dc.b 54,56,58,24,26,40,42,24,24,26,24,28,84,80,140,212
  417. .dc.b 184,184,184,184,184,184,184,184,184,194,122,24,26,24,30,24,24
  418. Z5BAND1: .dc.b 54,56,58,24,24,24,24,24,38,30,24,24,26,84,202,184
  419. .dc.b 184,184,184,184,184,184,184,194,146,148,86,88,30,24,24,24,24
  420. Z5BAND2: .dc.b 54,56,58,24,26,24,34,24,24,24,40,24,24,84,140,212
  421. .dc.b 184,184,184,184,184,184,184,184,194,122,24,26,24,38,40,42,40
  422. MASK5L: .dc.b $FF
  423. .dc.b $FF
  424. .dc.b $FF
  425. MASK5M: .dc.b $F0
  426. .dc.b $F8
  427. .dc.b $F8
  428. MASK5R: .dc.b $00,$00,$00
  429. BLOCK6:
  430. Z6BAND0: .dc.b 54,56,58,24,28,40,38,24,24,30,24,26,30,36,24,24
  431. .dc.b 26,24,24,24,32,28,24,40,24,24,24,24,90,92,136,212,184
  432. Z6BAND1: .dc.b 54,56,24,60,62,64,24,26,24,40,38,28,24,24,24,90
  433. .dc.b 92,80,80,80,80,80,80,142,144,186,186,186,186,186,212,184,184
  434. Z6BAND2: .dc.b 54,56,58,24,42,26,66,68,68,62,64,24,40,90,92,142
  435. .dc.b 144,212,184,184,184,184,184,184,184,184,184,184,184,184,194
  436. .dc.b 146,148
  437. Z6BAND3: .dc.b 54,56,58,24,42,40,24,26,28,66,72,72,70,84,136,212
  438. .dc.b 184,184,184,184,184,184,184,184,194,146,148,138,138,138,138,86
  439. .dc.b 88
  440. MASK6L: .dc.b $FF
  441. .dc.b $FF
  442. .dc.b $FF
  443. .dc.b $FF
  444. MASK6M: .dc.b $FF
  445. .dc.b $FE
  446. .dc.b $F8
  447. .dc.b $F8
  448. MASK6R: .dc.b $FF,$00,$00,$00
  449. BLOCK7:
  450. Z7BAND0: .dc.b 54,56,58,24,26,40,24,26,24,28,84,80,80,124,126,24
  451. .dc.b 26,24,24,36,24,26,24,40,42,24,90,92,80,142,144,212,184
  452. Z7BAND1: .dc.b 54,56,24,44,46,40,24,24,38,24,26,40,208,184,184,184
  453. .dc.b 206,180,182,124,126,24,24,90,92,80,142,144,212,194,146,148
  454. .dc.b 138
  455. Z7BAND2: .dc.b 54,56,58,24,24,48,50,52,24,24,24,40,24,112,212,184
  456. .dc.b 184,184,184,184,184,184,206,186,190,198,146,148,138,138,86,88
  457. .dc.b 24
  458. MASK7L: .dc.b $FF
  459. .dc.b $FF
  460. .dc.b $FF
  461. MASK7M: .dc.b $C1
  462. .dc.b $F0
  463. .dc.b $F8
  464. MASK7R: .dc.b $FF,$06,$00
  465. BLOCK8:
  466. Z8BAND0: .dc.b 54,56,58,24,24,26,24,28,24,30,24,24,30,24,26,24
  467. .dc.b 24,24,26,24,40,24,24,26,24,24,28,24,84,142,144,212,184
  468. Z8BAND1: .dc.b 54,56,58,84,136,186,186,190,76,24,24,24,26,24,24,28,24
  469. .dc.b 24,24,24,24,28,24,26,24,84,142,144,186,186,212,184,184
  470. Z8BAND2: .dc.b 54,56,84,142,144,212,194,150,86,88,24,26,24,30,24,24,24
  471. .dc.b 24,24,24,24,42,24,24,24,24,130,212,184,184,184,184,184
  472. Z8BAND3: .dc.b 54,56,58,96,198,204,146,148,82,24,42,24,24,24,24,24,60
  473. .dc.b 62,64,24,24,32,24,24,24,38,24,26,208,184,184,184,184
  474. Z8BAND4: .dc.b 54,56,58,24,24,24,34,24,24,38,24,24,24,40,24,24,40
  475. .dc.b 24,24,66,68,62,64,24,24,24,26,24,24,84,202,184,184
  476. Z8BAND5: .dc.b 54,56,58,24,24,26,24,24,26,40,24,24,32,24,24,24,38
  477. .dc.b 24,24,34,24,24,24,66,68,62,64,24,24,24,130,212,184
  478. Z8BAND6: .dc.b 54,56,58,24,24,36,24,24,40,24,24,30,24,24,24,24,24
  479. .dc.b 24,24,26,24,24,24,26,24,24,24,66,70,24,24,84,202
  480. MASK8L: .dc.b $FF
  481. .dc.b $E0
  482. .dc.b $C0
  483. .dc.b $E0
  484. .dc.b $FF
  485. .dc.b $FF
  486. .dc.b $FF
  487. MASK8M: .dc.b $FF
  488. .dc.b $7F
  489. .dc.b $3F
  490. .dc.b $7F
  491. .dc.b $FF
  492. .dc.b $FF
  493. .dc.b $FF
  494. MASK8R: .dc.b $FF,$FF,$FF,$FF,$FF,$FF,$FF
  495. BLOCK9:
  496. Z9BAND0: .dc.b 54,56,58,40,24,24,24,26,24,24,24,26,24,24,40,24
  497. .dc.b 24,24,26,24,24,26,24,24,24,24,24,30,24,84,136,212,184
  498. Z9BAND1: .dc.b 54,56,58,26,24,24,24,36,24,24,24,28,24,24,36,24,24,24,42
  499. .dc.b 24,24,24,24,24,28,24,26,24,28,84,136,212,184
  500. Z9BAND2: .dc.b 54,56,58,24,24,24,24,24,42,24,24,24,24,26,24,24,24,24,36,24
  501. .dc.b 24,26,24,24,24,24,24,24,24,84,136,212,184
  502. Z9BAND3: .dc.b 54,56,58,24,26,24,24,28,24,24,24,40,24,24,24,24,26,24,24,24
  503. .dc.b 24,24,26,28,24,24,24,24,30,94,152,212,184
  504. MASK9L: .dc.b $FF
  505. .dc.b $FF
  506. .dc.b $FF
  507. .dc.b $FF
  508. MASK9M: .dc.b $FF,$FF,$FF,$FF
  509. MASK9R: .dc.b $FF,$FF,$FF,$FF
  510. BLOCKA:
  511. ZABAND0: .dc.b 54,56,58,24,24,24,26,84,142,144,186,134,60,62,64,24,40,84
  512. .dc.b 136,190,76,24,26,24,24,26,24,24,24,24,130,212,184
  513. ZABAND1: .dc.b 54,56,58,24,44,46,24,24,130,212,194,204,150,82,24,66,68,62
  514. .dc.b 64,74,138,82,24,26,24,24,24,24,24,84,142,144,212
  515. ZABAND2: .dc.b 54,56,58,24,24,24,48,50,52,24,74,86,88,24,24,26,24,28
  516. .dc.b 30,66,70,24,24,26,24,24,24,28,24,84,136,212,184
  517. MASKAL: .dc.b $FE
  518. .dc.b $FF
  519. .dc.b $FF
  520. MASKAM: .dc.b $0F,$03,$C7
  521. MASKAR: .dc.b $87,$E3,$FF
  522. BLOCKB:
  523. ZBBAND0: .dc.b 54,56,58,26,24,24,28,24,24,38,24,24,24,26,40,30,24,24,24,24
  524. .dc.b 24,24,24,36,24,30,24,24,90,92,136,212,184
  525. ZBBAND1: .dc.b 54,56,58,24,26,24,24,24,38,24,24,90,92,162,200,200,168,78,24
  526. .dc.b 24,30,24,24,30,90,92,142,144,186,186,212,184,184
  527. ZBBAND2: .dc.b 54,56,58,24,24,26,24,24,24,26,24,102,104,160,86,88,24,24,74
  528. .dc.b 170,166,24,24,84,142,144,198,204,146,148,174,184,184
  529. ZBBAND3: .dc.b 54,56,58,40,24,24,38,24,24,24,24,98,100,88,24,24,28,24,36
  530. .dc.b 24,24,24,164,172,106,108,86,88,24,84,142,144,212
  531. MASKBL: .dc.b $FF
  532. .dc.b $FF
  533. .dc.b $FF
  534. .dc.b $FF
  535. MASKBM: .dc.b $FF,$E0,$E0,$E3
  536. MASKBR: .dc.b $FF,$3F,$C6,$FC
  537. BLOCKC:
  538. ZCBAND0: .dc.b 54,56,58,24,24,24,24,26,24,40,24,28,24,34,24,24,24,24,24
  539. .dc.b 30,26,24,130,132,78,24,40,42,24,84,136,212,184
  540. ZCBAND1: .dc.b 54,56,58,24,24,28,24,26,24,24,40,24,24,24,24,24,40,24,24
  541. .dc.b 40,26,24,80,154,198,204,158,24,26,94,152,212,184
  542. ZCBAND2: .dc.b 54,56,58,24,24,26,24,24,24,24,30,24,24,24,24,26,24,42,24
  543. .dc.b 42,24,24,24,24,74,82,24,42,38,84,136,212,184
  544. MASKCL: .dc.b $FF
  545. .dc.b $FF
  546. .dc.b $FF
  547. MASKCM: .dc.b $FF,$FF,$FF
  548. MASKCR: .dc.b $FC,$FC,$FF
  549. BLOCKD:
  550. ZDBAND0: .dc.b 54,56,58,24,24,24,40,24,24,26,24,28,24,24,28,24,26,24,24
  551. .dc.b 24,24,90,92,78,24,26,24,46,92,142,144,212,184
  552. ZDBAND1: .dc.b 54,56,58,24,26,24,24,24,24,42,42,24,24,30,24,26,24,24,24
  553. .dc.b 90,92,142,144,212,184,206,186,186,190,146,148,114,112
  554. ZDBAND2: .dc.b 54,56,58,90,92,142,144,186,186,190,76,24,40,38,84,80,80,80
  555. .dc.b 80,142,144,212,184,184,184,194,146,148,138,138,82,26,24
  556. ZDBAND3: .dc.b 54,56,58,24,130,212,184,194,146,148,86,88,24,26,24,130,212
  557. .dc.b 184,184,184,184,184,184,184,184,194,150,82,24,26,24,28,24
  558. ZDBAND4: .dc.b 54,56,58,24,24,26,156,204,150,82,24,24,28,24,24,84,136,212
  559. .dc.b 184,184,184,184,184,184,184,194,150,82,24,28,24,24,30
  560. ZDBAND5: .dc.b 54,56,58,24,26,24,36,30,24,24,30,24,24,24,24,24,96,198,188
  561. .dc.b 184,184,194,204,204,204,146,148,82,24,24,40,42,34
  562. ZDBAND6: .dc.b 54,56,58,24,40,24,24,24,28,38,24,24,42,40,26,32,24,24,26
  563. .dc.b 24,74,138,138,82,24,26,24,36,24,84,142,144,186
  564. MASKDL: .dc.b $FF
  565. .dc.b $FF
  566. .dc.b $E0
  567. .dc.b $F0
  568. .dc.b $FC
  569. .dc.b $FF
  570. .dc.b $FF
  571. MASKDM: .dc.b $FF,$FF,$1C,$0E,$3E,$FF,$FF
  572. MASKDR: .dc.b $F9,$E0,$00,$00,$00,$00,$F0
  573. ; END