HRTABLES.S (8289B)
1 * hires tables 2 org = $e000 3 tr on 4 lst off 5 *------------------------------- 6 org org 7 *------------------------------- 8 * 9 * YLO/YHI 10 * 11 * Index: Screen Y-coord (0-191, 0 = top) 12 * Returns base address on hires page 1 (add $2000 for page 2) 13 * 14 *------------------------------- 15 16 YLO hex 00000000000000008080808080808080 17 hex 00000000000000008080808080808080 18 hex 00000000000000008080808080808080 19 hex 00000000000000008080808080808080 20 21 hex 2828282828282828A8A8A8A8A8A8A8A8 22 hex 2828282828282828A8A8A8A8A8A8A8A8 23 hex 2828282828282828A8A8A8A8A8A8A8A8 24 hex 2828282828282828A8A8A8A8A8A8A8A8 25 26 hex 5050505050505050D0D0D0D0D0D0D0D0 27 hex 5050505050505050D0D0D0D0D0D0D0D0 28 hex 5050505050505050D0D0D0D0D0D0D0D0 29 hex 5050505050505050D0D0D0D0D0D0D0D0 30 31 YHI hex 2024282C3034383C2024282C3034383C 32 hex 2125292D3135393D2125292D3135393D 33 hex 22262A2E32363A3E22262A2E32363A3E 34 hex 23272B2F33373B3F23272B2F33373B3F 35 36 hex 2024282C3034383C2024282C3034383C 37 hex 2125292D3135393D2125292D3135393D 38 hex 22262A2E32363A3E22262A2E32363A3E 39 hex 23272B2F33373B3F23272B2F33373B3F 40 41 hex 2024282C3034383C2024282C3034383C 42 hex 2125292D3135393D2125292D3135393D 43 hex 22262A2E32363A3E22262A2E32363A3E 44 hex 23272B2F33373B3F23272B2F33373B3F 45 46 *------------------------------- 47 * 48 * SHIFTn/CARRYn 49 * 50 * n = # of pixels to shift right (0-6) 51 * Index: byte value w/hibit clr (0-127) 52 * 53 * SHIFT returns shifted byte w/hibit set 54 * CARRY returns carryover to next byte w/hibit clr 55 * 56 *------------------------------- 57 58 SHIFT0 hex 808182838485868788898A8B8C8D8E8F 59 hex 909192939495969798999A9B9C9D9E9F 60 hex A0A1A2A3A4A5A6A7A8A9AAABACADAEAF 61 hex B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF 62 63 hex C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF 64 hex D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF 65 hex E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF 66 hex F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF 67 68 SHIFT1 hex 80828486888A8C8E90929496989A9C9E 69 hex A0A2A4A6A8AAACAEB0B2B4B6B8BABCBE 70 hex C0C2C4C6C8CACCCED0D2D4D6D8DADCDE 71 hex E0E2E4E6E8EAECEEF0F2F4F6F8FAFCFE 72 73 hex 80828486888A8C8E90929496989A9C9E 74 hex A0A2A4A6A8AAACAEB0B2B4B6B8BABCBE 75 hex C0C2C4C6C8CACCCED0D2D4D6D8DADCDE 76 hex E0E2E4E6E8EAECEEF0F2F4F6F8FAFCFE 77 78 SHIFT2 hex 8084888C9094989CA0A4A8ACB0B4B8BC 79 hex C0C4C8CCD0D4D8DCE0E4E8ECF0F4F8FC 80 hex 8084888C9094989CA0A4A8ACB0B4B8BC 81 hex C0C4C8CCD0D4D8DCE0E4E8ECF0F4F8FC 82 83 hex 8084888C9094989CA0A4A8ACB0B4B8BC 84 hex C0C4C8CCD0D4D8DCE0E4E8ECF0F4F8FC 85 hex 8084888C9094989CA0A4A8ACB0B4B8BC 86 hex C0C4C8CCD0D4D8DCE0E4E8ECF0F4F8FC 87 88 SHIFT3 hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8 89 hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8 90 hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8 91 hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8 92 93 hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8 94 hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8 95 hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8 96 hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8 97 98 SHIFT4 hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0 99 hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0 100 hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0 101 hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0 102 103 hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0 104 hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0 105 hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0 106 hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0 107 108 SHIFT5 hex 80A0C0E080A0C0E080A0C0E080A0C0E0 109 hex 80A0C0E080A0C0E080A0C0E080A0C0E0 110 hex 80A0C0E080A0C0E080A0C0E080A0C0E0 111 hex 80A0C0E080A0C0E080A0C0E080A0C0E0 112 113 hex 80A0C0E080A0C0E080A0C0E080A0C0E0 114 hex 80A0C0E080A0C0E080A0C0E080A0C0E0 115 hex 80A0C0E080A0C0E080A0C0E080A0C0E0 116 hex 80A0C0E080A0C0E080A0C0E080A0C0E0 117 118 SHIFT6 hex 80C080C080C080C080C080C080C080C0 119 hex 80C080C080C080C080C080C080C080C0 120 hex 80C080C080C080C080C080C080C080C0 121 hex 80C080C080C080C080C080C080C080C0 122 123 hex 80C080C080C080C080C080C080C080C0 124 hex 80C080C080C080C080C080C080C080C0 125 hex 80C080C080C080C080C080C080C080C0 126 hex 80C080C080C080C080C080C080C080C0 127 128 CARRY0 hex 00000000000000000000000000000000 129 hex 00000000000000000000000000000000 130 hex 00000000000000000000000000000000 131 hex 00000000000000000000000000000000 132 133 hex 00000000000000000000000000000000 134 hex 00000000000000000000000000000000 135 hex 00000000000000000000000000000000 136 hex 00000000000000000000000000000000 137 138 CARRY1 hex 00000000000000000000000000000000 139 hex 00000000000000000000000000000000 140 hex 00000000000000000000000000000000 141 hex 00000000000000000000000000000000 142 143 hex 01010101010101010101010101010101 144 hex 01010101010101010101010101010101 145 hex 01010101010101010101010101010101 146 hex 01010101010101010101010101010101 147 148 CARRY2 hex 00000000000000000000000000000000 149 hex 00000000000000000000000000000000 150 hex 01010101010101010101010101010101 151 hex 01010101010101010101010101010101 152 153 hex 02020202020202020202020202020202 154 hex 02020202020202020202020202020202 155 hex 03030303030303030303030303030303 156 hex 03030303030303030303030303030303 157 158 CARRY3 hex 00000000000000000000000000000000 159 hex 01010101010101010101010101010101 160 hex 02020202020202020202020202020202 161 hex 03030303030303030303030303030303 162 163 hex 04040404040404040404040404040404 164 hex 05050505050505050505050505050505 165 hex 06060606060606060606060606060606 166 hex 07070707070707070707070707070707 167 168 CARRY4 hex 00000000000000000101010101010101 169 hex 02020202020202020303030303030303 170 hex 04040404040404040505050505050505 171 hex 06060606060606060707070707070707 172 173 hex 08080808080808080909090909090909 174 hex 0A0A0A0A0A0A0A0A0B0B0B0B0B0B0B0B 175 hex 0C0C0C0C0C0C0C0C0D0D0D0D0D0D0D0D 176 hex 0E0E0E0E0E0E0E0E0F0F0F0F0F0F0F0F 177 178 CARRY5 hex 00000000010101010202020203030303 179 hex 04040404050505050606060607070707 180 hex 08080808090909090A0A0A0A0B0B0B0B 181 hex 0C0C0C0C0D0D0D0D0E0E0E0E0F0F0F0F 182 183 hex 10101010111111111212121213131313 184 hex 14141414151515151616161617171717 185 hex 18181818191919191A1A1A1A1B1B1B1B 186 hex 1C1C1C1C1D1D1D1D1E1E1E1E1F1F1F1F 187 188 CARRY6 hex 00000101020203030404050506060707 189 hex 080809090A0A0B0B0C0C0D0D0E0E0F0F 190 hex 10101111121213131414151516161717 191 hex 181819191A1A1B1B1C1C1D1D1E1E1F1F 192 193 hex 20202121222223232424252526262727 194 hex 282829292A2A2B2B2C2C2D2D2E2E2F2F 195 hex 30303131323233333434353536363737 196 hex 383839393A3A3B3B3C3C3D3D3E3E3F3F 197 198 *------------------------------- 199 * 200 * MIRROR 201 * 202 * Index: byte value w/hibit clr (0-127) 203 * Returns mirrored byte w/hibit set 204 * 205 *------------------------------- 206 207 MIRROR hex 80C0A0E090D0B0F088C8A8E898D8B8F8 208 hex 84C4A4E494D4B4F48CCCACEC9CDCBCFC 209 hex 82C2A2E292D2B2F28ACAAAEA9ADABAFA 210 hex 86C6A6E696D6B6F68ECEAEEE9EDEBEFE 211 212 hex 81C1A1E191D1B1F189C9A9E999D9B9F9 213 hex 85C5A5E595D5B5F58DCDADED9DDDBDFD 214 hex 83C3A3E393D3B3F38BCBABEB9BDBBBFB 215 hex 87C7A7E797D7B7F78FCFAFEF9FDFBFFF 216 217 *------------------------------- 218 * 219 * MASKTAB 220 * 221 * Index: byte value w/hibit clr (0-127) 222 * Returns mask byte w/hibit set 223 * 224 *------------------------------- 225 226 MASKTAB HEX FF,FC,F8,F8,F1,F0,F0,F0 227 HEX E3,E0,E0,E0,E1,E0,E0,E0 228 HEX C7,C4,C0,C0,C1,C0,C0,C0 229 HEX C3,C0,C0,C0,C1,C0,C0,C0 230 231 HEX 8F,8C,88,88,81,80,80,80 232 HEX 83,80,80,80,81,80,80,80 233 HEX 87,84,80,80,81,80,80,80 234 HEX 83,80,80,80,81,80,80,80 235 236 HEX 9F,9C,98,98,91,90,90,90 237 HEX 83,80,80,80,81,80,80,80 238 HEX 87,84,80,80,81,80,80,80 239 HEX 83,80,80,80,81,80,80,80 240 241 HEX 8F,8C,88,88,81,80,80,80 242 HEX 83,80,80,80,81,80,80,80 243 HEX 87,84,80,80,81,80,80,80 244 HEX 83,80,80,80,81,80,80,80 245 246 *------------------------------- 247 * 248 * SHIFTL-H/CARRYL-H 249 * 250 * Index: Bit offset (0-6) 251 * Returns address of corresponding shift/carry table 252 * 253 *------------------------------- 254 255 SHIFTL dfb #SHIFT0-$80 256 dfb #SHIFT1-$80 257 dfb #SHIFT2-$80 258 dfb #SHIFT3-$80 259 dfb #SHIFT4-$80 260 dfb #SHIFT5-$80 261 dfb #SHIFT6-$80 262 263 SHIFTH dfb >SHIFT0-$80 264 dfb >SHIFT1-$80 265 dfb >SHIFT2-$80 266 dfb >SHIFT3-$80 267 dfb >SHIFT4-$80 268 dfb >SHIFT5-$80 269 dfb >SHIFT6-$80 270 271 CARRYL dfb #CARRY0-$80 272 dfb #CARRY1-$80 273 dfb #CARRY2-$80 274 dfb #CARRY3-$80 275 dfb #CARRY4-$80 276 dfb #CARRY5-$80 277 dfb #CARRY6-$80 278 279 CARRYH dfb >CARRY0-$80 280 dfb >CARRY1-$80 281 dfb >CARRY2-$80 282 dfb >CARRY3-$80 283 dfb >CARRY4-$80 284 dfb >CARRY5-$80 285 dfb >CARRY6-$80 286 287 *------------------------------- 288 * 289 * AMASKS/BMASKS 290 * 291 * Index: Bit offset (0-6) 292 * Returns appropriate mask bytes 293 * 294 *------------------------------- 295 296 AMASKS dfb %10000000 297 dfb %10000001 298 dfb %10000011 299 dfb %10000111 300 dfb %10001111 301 dfb %10011111 302 dfb %10111111 303 304 BMASKS dfb %11111111 305 dfb %11111110 306 dfb %11111100 307 dfb %11111000 308 dfb %11110000 309 dfb %11100000 310 dfb %11000000 311 312 *------------------------------- 313 * 314 * OPCODE 315 * 316 * Index: OPACITY (0-5) 317 * Returns opcode to put in self-mod code 318 * 319 *------------------------------- 320 321 OPCODE dfb $31 ;and (oper),Y 322 dfb $11 ;ora 323 dfb $91 ;sta 324 dfb $51 ;eor 325 dfb $31 ;and 326 dfb $91 ;sta 327 328 *------------------------------- 329 lst 330 usr $a9,2,$0000,*-org 331 lst off