Prince-of-Persia-Apple-II/01 POP Source/Source/HRTABLES.S

332 lines
8.1 KiB
ArmAsm
Executable File

* hires tables
org = $e000
tr on
lst off
*-------------------------------
org org
*-------------------------------
*
* YLO/YHI
*
* Index: Screen Y-coord (0-191, 0 = top)
* Returns base address on hires page 1 (add $2000 for page 2)
*
*-------------------------------
YLO hex 00000000000000008080808080808080
hex 00000000000000008080808080808080
hex 00000000000000008080808080808080
hex 00000000000000008080808080808080
hex 2828282828282828A8A8A8A8A8A8A8A8
hex 2828282828282828A8A8A8A8A8A8A8A8
hex 2828282828282828A8A8A8A8A8A8A8A8
hex 2828282828282828A8A8A8A8A8A8A8A8
hex 5050505050505050D0D0D0D0D0D0D0D0
hex 5050505050505050D0D0D0D0D0D0D0D0
hex 5050505050505050D0D0D0D0D0D0D0D0
hex 5050505050505050D0D0D0D0D0D0D0D0
YHI hex 2024282C3034383C2024282C3034383C
hex 2125292D3135393D2125292D3135393D
hex 22262A2E32363A3E22262A2E32363A3E
hex 23272B2F33373B3F23272B2F33373B3F
hex 2024282C3034383C2024282C3034383C
hex 2125292D3135393D2125292D3135393D
hex 22262A2E32363A3E22262A2E32363A3E
hex 23272B2F33373B3F23272B2F33373B3F
hex 2024282C3034383C2024282C3034383C
hex 2125292D3135393D2125292D3135393D
hex 22262A2E32363A3E22262A2E32363A3E
hex 23272B2F33373B3F23272B2F33373B3F
*-------------------------------
*
* SHIFTn/CARRYn
*
* n = # of pixels to shift right (0-6)
* Index: byte value w/hibit clr (0-127)
*
* SHIFT returns shifted byte w/hibit set
* CARRY returns carryover to next byte w/hibit clr
*
*-------------------------------
SHIFT0 hex 808182838485868788898A8B8C8D8E8F
hex 909192939495969798999A9B9C9D9E9F
hex A0A1A2A3A4A5A6A7A8A9AAABACADAEAF
hex B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF
hex C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF
hex D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF
hex E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
hex F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
SHIFT1 hex 80828486888A8C8E90929496989A9C9E
hex A0A2A4A6A8AAACAEB0B2B4B6B8BABCBE
hex C0C2C4C6C8CACCCED0D2D4D6D8DADCDE
hex E0E2E4E6E8EAECEEF0F2F4F6F8FAFCFE
hex 80828486888A8C8E90929496989A9C9E
hex A0A2A4A6A8AAACAEB0B2B4B6B8BABCBE
hex C0C2C4C6C8CACCCED0D2D4D6D8DADCDE
hex E0E2E4E6E8EAECEEF0F2F4F6F8FAFCFE
SHIFT2 hex 8084888C9094989CA0A4A8ACB0B4B8BC
hex C0C4C8CCD0D4D8DCE0E4E8ECF0F4F8FC
hex 8084888C9094989CA0A4A8ACB0B4B8BC
hex C0C4C8CCD0D4D8DCE0E4E8ECF0F4F8FC
hex 8084888C9094989CA0A4A8ACB0B4B8BC
hex C0C4C8CCD0D4D8DCE0E4E8ECF0F4F8FC
hex 8084888C9094989CA0A4A8ACB0B4B8BC
hex C0C4C8CCD0D4D8DCE0E4E8ECF0F4F8FC
SHIFT3 hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8
hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8
hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8
hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8
hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8
hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8
hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8
hex 80889098A0A8B0B8C0C8D0D8E0E8F0F8
SHIFT4 hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0
hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0
hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0
hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0
hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0
hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0
hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0
hex 8090A0B0C0D0E0F08090A0B0C0D0E0F0
SHIFT5 hex 80A0C0E080A0C0E080A0C0E080A0C0E0
hex 80A0C0E080A0C0E080A0C0E080A0C0E0
hex 80A0C0E080A0C0E080A0C0E080A0C0E0
hex 80A0C0E080A0C0E080A0C0E080A0C0E0
hex 80A0C0E080A0C0E080A0C0E080A0C0E0
hex 80A0C0E080A0C0E080A0C0E080A0C0E0
hex 80A0C0E080A0C0E080A0C0E080A0C0E0
hex 80A0C0E080A0C0E080A0C0E080A0C0E0
SHIFT6 hex 80C080C080C080C080C080C080C080C0
hex 80C080C080C080C080C080C080C080C0
hex 80C080C080C080C080C080C080C080C0
hex 80C080C080C080C080C080C080C080C0
hex 80C080C080C080C080C080C080C080C0
hex 80C080C080C080C080C080C080C080C0
hex 80C080C080C080C080C080C080C080C0
hex 80C080C080C080C080C080C080C080C0
CARRY0 hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
CARRY1 hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 01010101010101010101010101010101
hex 01010101010101010101010101010101
hex 01010101010101010101010101010101
hex 01010101010101010101010101010101
CARRY2 hex 00000000000000000000000000000000
hex 00000000000000000000000000000000
hex 01010101010101010101010101010101
hex 01010101010101010101010101010101
hex 02020202020202020202020202020202
hex 02020202020202020202020202020202
hex 03030303030303030303030303030303
hex 03030303030303030303030303030303
CARRY3 hex 00000000000000000000000000000000
hex 01010101010101010101010101010101
hex 02020202020202020202020202020202
hex 03030303030303030303030303030303
hex 04040404040404040404040404040404
hex 05050505050505050505050505050505
hex 06060606060606060606060606060606
hex 07070707070707070707070707070707
CARRY4 hex 00000000000000000101010101010101
hex 02020202020202020303030303030303
hex 04040404040404040505050505050505
hex 06060606060606060707070707070707
hex 08080808080808080909090909090909
hex 0A0A0A0A0A0A0A0A0B0B0B0B0B0B0B0B
hex 0C0C0C0C0C0C0C0C0D0D0D0D0D0D0D0D
hex 0E0E0E0E0E0E0E0E0F0F0F0F0F0F0F0F
CARRY5 hex 00000000010101010202020203030303
hex 04040404050505050606060607070707
hex 08080808090909090A0A0A0A0B0B0B0B
hex 0C0C0C0C0D0D0D0D0E0E0E0E0F0F0F0F
hex 10101010111111111212121213131313
hex 14141414151515151616161617171717
hex 18181818191919191A1A1A1A1B1B1B1B
hex 1C1C1C1C1D1D1D1D1E1E1E1E1F1F1F1F
CARRY6 hex 00000101020203030404050506060707
hex 080809090A0A0B0B0C0C0D0D0E0E0F0F
hex 10101111121213131414151516161717
hex 181819191A1A1B1B1C1C1D1D1E1E1F1F
hex 20202121222223232424252526262727
hex 282829292A2A2B2B2C2C2D2D2E2E2F2F
hex 30303131323233333434353536363737
hex 383839393A3A3B3B3C3C3D3D3E3E3F3F
*-------------------------------
*
* MIRROR
*
* Index: byte value w/hibit clr (0-127)
* Returns mirrored byte w/hibit set
*
*-------------------------------
MIRROR hex 80C0A0E090D0B0F088C8A8E898D8B8F8
hex 84C4A4E494D4B4F48CCCACEC9CDCBCFC
hex 82C2A2E292D2B2F28ACAAAEA9ADABAFA
hex 86C6A6E696D6B6F68ECEAEEE9EDEBEFE
hex 81C1A1E191D1B1F189C9A9E999D9B9F9
hex 85C5A5E595D5B5F58DCDADED9DDDBDFD
hex 83C3A3E393D3B3F38BCBABEB9BDBBBFB
hex 87C7A7E797D7B7F78FCFAFEF9FDFBFFF
*-------------------------------
*
* MASKTAB
*
* Index: byte value w/hibit clr (0-127)
* Returns mask byte w/hibit set
*
*-------------------------------
MASKTAB HEX FF,FC,F8,F8,F1,F0,F0,F0
HEX E3,E0,E0,E0,E1,E0,E0,E0
HEX C7,C4,C0,C0,C1,C0,C0,C0
HEX C3,C0,C0,C0,C1,C0,C0,C0
HEX 8F,8C,88,88,81,80,80,80
HEX 83,80,80,80,81,80,80,80
HEX 87,84,80,80,81,80,80,80
HEX 83,80,80,80,81,80,80,80
HEX 9F,9C,98,98,91,90,90,90
HEX 83,80,80,80,81,80,80,80
HEX 87,84,80,80,81,80,80,80
HEX 83,80,80,80,81,80,80,80
HEX 8F,8C,88,88,81,80,80,80
HEX 83,80,80,80,81,80,80,80
HEX 87,84,80,80,81,80,80,80
HEX 83,80,80,80,81,80,80,80
*-------------------------------
*
* SHIFTL-H/CARRYL-H
*
* Index: Bit offset (0-6)
* Returns address of corresponding shift/carry table
*
*-------------------------------
SHIFTL dfb #SHIFT0-$80
dfb #SHIFT1-$80
dfb #SHIFT2-$80
dfb #SHIFT3-$80
dfb #SHIFT4-$80
dfb #SHIFT5-$80
dfb #SHIFT6-$80
SHIFTH dfb >SHIFT0-$80
dfb >SHIFT1-$80
dfb >SHIFT2-$80
dfb >SHIFT3-$80
dfb >SHIFT4-$80
dfb >SHIFT5-$80
dfb >SHIFT6-$80
CARRYL dfb #CARRY0-$80
dfb #CARRY1-$80
dfb #CARRY2-$80
dfb #CARRY3-$80
dfb #CARRY4-$80
dfb #CARRY5-$80
dfb #CARRY6-$80
CARRYH dfb >CARRY0-$80
dfb >CARRY1-$80
dfb >CARRY2-$80
dfb >CARRY3-$80
dfb >CARRY4-$80
dfb >CARRY5-$80
dfb >CARRY6-$80
*-------------------------------
*
* AMASKS/BMASKS
*
* Index: Bit offset (0-6)
* Returns appropriate mask bytes
*
*-------------------------------
AMASKS dfb %10000000
dfb %10000001
dfb %10000011
dfb %10000111
dfb %10001111
dfb %10011111
dfb %10111111
BMASKS dfb %11111111
dfb %11111110
dfb %11111100
dfb %11111000
dfb %11110000
dfb %11100000
dfb %11000000
*-------------------------------
*
* OPCODE
*
* Index: OPACITY (0-5)
* Returns opcode to put in self-mod code
*
*-------------------------------
OPCODE dfb $31 ;and (oper),Y
dfb $11 ;ora
dfb $91 ;sta
dfb $51 ;eor
dfb $31 ;and
dfb $91 ;sta
*-------------------------------
lst
usr $a9,2,$0000,*-org
lst off