├── 2048 ├── pic │ └── 2048-game.jpg ├── res │ └── 2048-sprites.xlsx ├── README.md ├── 2048.hex ├── 2048_64x4.hex ├── 2048.asm └── 2048_64x4.asm ├── tools ├── char.xlsx └── retroPrintChar.asm ├── atomix ├── res │ ├── sprites.xlsx │ ├── atomix-level2.txt │ └── atomix-level.txt ├── pic │ ├── logo-168x40.bmp │ ├── logo-168x40.psd │ ├── start-400x240.bmp │ └── logo-168x40.m64 ├── atomix-minimal64-start.jpg ├── atomix-minimal64-level-14.jpg ├── atomix-minimal64-level-25.jpg └── README.md ├── sokoban ├── sokoban-title.jpg ├── sokoban-level-10.jpg ├── tools │ ├── sprites.xlsx │ └── sokoban-title.bmp └── README.md ├── loderunner ├── pic │ ├── level-58.jpg │ └── loderunner.jpg ├── loderunner_64x4.asm ├── res │ └── sprites-loderunner.xlsx ├── README.md ├── loderunner.hex └── loderunner_64x4.hex └── README.md /tools/char.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/tools/char.xlsx -------------------------------------------------------------------------------- /2048/pic/2048-game.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/2048/pic/2048-game.jpg -------------------------------------------------------------------------------- /atomix/res/sprites.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/atomix/res/sprites.xlsx -------------------------------------------------------------------------------- /sokoban/sokoban-title.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/sokoban/sokoban-title.jpg -------------------------------------------------------------------------------- /2048/res/2048-sprites.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/2048/res/2048-sprites.xlsx -------------------------------------------------------------------------------- /atomix/pic/logo-168x40.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/atomix/pic/logo-168x40.bmp -------------------------------------------------------------------------------- /atomix/pic/logo-168x40.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/atomix/pic/logo-168x40.psd -------------------------------------------------------------------------------- /atomix/pic/start-400x240.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/atomix/pic/start-400x240.bmp -------------------------------------------------------------------------------- /loderunner/pic/level-58.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/loderunner/pic/level-58.jpg -------------------------------------------------------------------------------- /sokoban/sokoban-level-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/sokoban/sokoban-level-10.jpg -------------------------------------------------------------------------------- /sokoban/tools/sprites.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/sokoban/tools/sprites.xlsx -------------------------------------------------------------------------------- /loderunner/loderunner_64x4.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/loderunner/loderunner_64x4.asm -------------------------------------------------------------------------------- /loderunner/pic/loderunner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/loderunner/pic/loderunner.jpg -------------------------------------------------------------------------------- /atomix/atomix-minimal64-start.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/atomix/atomix-minimal64-start.jpg -------------------------------------------------------------------------------- /sokoban/tools/sokoban-title.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/sokoban/tools/sokoban-title.bmp -------------------------------------------------------------------------------- /atomix/atomix-minimal64-level-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/atomix/atomix-minimal64-level-14.jpg -------------------------------------------------------------------------------- /atomix/atomix-minimal64-level-25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/atomix/atomix-minimal64-level-25.jpg -------------------------------------------------------------------------------- /loderunner/res/sprites-loderunner.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hans61/Minimal64/HEAD/loderunner/res/sprites-loderunner.xlsx -------------------------------------------------------------------------------- /2048/README.md: -------------------------------------------------------------------------------- 1 | # 2048 for the Minimal 64 2 | 3 | Another simple game for the minimal 64. 4 | You can find everything about the Minimal 64 here: 5 | 6 | https://github.com/slu4coder/The-Minimal-64-Home-Computer 7 | 8 | It is a simple variant of the classic game 2048. The goal of the puzzle is to reach the tile with the value 2048. 9 | 10 | ![atomix](pic/2048-game.jpg) 11 | 12 | ## Controls 13 | 14 | |Buttons | | 15 | |:----------:|:--------------------| 16 | |Cursor keys |moves the cursur | 17 | |or I,J,K,M | | 18 | |N |restart the game | 19 | |Q |return to Minimal OS | 20 | 21 | 22 | More about the game on Wikipedia: 23 | 24 | https://en.wikipedia.org/wiki/2048_(video_game) 25 | 26 | -------------------------------------------------------------------------------- /atomix/README.md: -------------------------------------------------------------------------------- 1 | # Atomix for the Minimal 64 2 | 3 | My second game for the Minimal 64. 4 | You can find everything about the Minimal 64 here: 5 | 6 | https://github.com/slu4coder/The-Minimal-64-Home-Computer 7 | 8 | The game is an Atomix clone. There are currently 26 playable levels. The first 25 levels are the original levels without the bonus levels. More levels will follow. 9 | 10 | ![atomix](atomix-minimal64-start.jpg) 11 | 12 | Level 25 of 25 (21 no bonus levels) 13 | 14 | ![atomix](atomix-minimal64-level-25.jpg) 15 | 16 | ## Controls 17 | 18 | |Buttons | | 19 | |:----------:|:-------------------------| 20 | |Cursor keys |moves the cursur | 21 | |space or CR |lock/unlock atom to move | 22 | |R |restart current level | 23 | |- or PgDn |back one level | 24 | |+ or PgUp |one level forward | 25 | 26 | 27 | Atomix is a game from 1990 that was also available on other systems in addition to a DOS PC. 28 | 29 | https://en.wikipedia.org/wiki/Atomix_(video_game) 30 | 31 | -------------------------------------------------------------------------------- /sokoban/README.md: -------------------------------------------------------------------------------- 1 | # Sokoban for the Minimal 64 2 | 3 | My first attempt to write a game for the Minimal 64. 4 | You can find everything about the Minimal 64 here: 5 | 6 | https://github.com/slu4coder/The-Minimal-64-Home-Computer 7 | 8 | The game is a Sokoban clone. In the first version there are 90 playable levels. 9 | 10 | ![sokoban](sokoban-title.jpg) 11 | 12 | Level 10 of 90 13 | 14 | ![sokoban](sokoban-level-10.jpg) 15 | 16 | ## Controls 17 | 18 | |Buttons | | 19 | |:---------:|:-------------------------------------------| 20 | |Cursor keys|moves the player in four possible directions| 21 | |N |restart current level | 22 | |G |starts a level 1..90 | 23 | |- or PgDn |back one level | 24 | |+ or PgUp |one level forward | 25 | |R |Undo last 15 moves | 26 | 27 | 28 | I played Sokoban at the end of the 1980s on the XT PC with CGA graphics. You can still find it on YouTube today. 29 | 30 | https://www.youtube.com/watch?v=i_WmVBwEE4U 31 | 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Minimal 64 TTL Computer 2 | 3 | Here is my software collection for the Minimal 64 from this project: 4 | 5 | https://github.com/slu4coder/The-Minimal-64-Home-Computer 6 | 7 | ## License 8 | 9 | Copyright 2023 H.-J. Jacob 10 | 11 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 16 | 17 | -------------------------------------------------------------------------------- /loderunner/README.md: -------------------------------------------------------------------------------- 1 | # Lode Runner for the Minimal 64 2 | 3 | Here is my first attempt to implement the game "Loderunner" on the Minimal 64. 4 | As a starting point I used the version for the BBC Micro from here: 5 | 6 | https://github.com/0xC0DE6502/lode-runner-disassembled 7 | 8 | Unfortunately, this version does not use the enemy AI as I know it from Apple][. 9 | A source that is very close to the original can be found here: 10 | 11 | https://github.com/SimonHung/LodeRunner_TotalRecall 12 | 13 | It can be easily played in the browser using the keyboard: 14 | 15 | https://loderunnerwebgame.com/game/ 16 | 17 | The Minimal 64 version currently includes 100 levels from "Classic Lode Runner". 18 | 19 | to do: 20 | - load all 150 levels from SSD 21 | - High score 22 | - Improve catcher AI 23 | 24 | ## Controls 25 | 26 | | Buttons | | 27 | |:----------:|:-------------------------| 28 | |Cursor keys | moves the player | 29 | | a | give up level | 30 | | y | digging left | 31 | | x | digging right | 32 | | | | 33 | 34 | ## Picture 35 | 36 | ![Lode Runner](pic/loderunner.jpg) 37 | 38 | Since the hunters' algorithm is not like Apple's ][, the game requires a slightly different strategy. But it is playable, I have already made it past level 60. 39 | 40 | ![Lode Runner Level](pic/level-58.jpg) 41 | -------------------------------------------------------------------------------- /atomix/pic/logo-168x40.m64: -------------------------------------------------------------------------------- 1 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 2 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0xc0,0x01,0x00,0x00,0x00, 3 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0xde,0xc7,0x01,0xc0,0x01,0x00,0x00,0x00, 4 | 0xe0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x80,0xff,0xcf,0x01,0xc0,0x01,0x00,0x00,0x00, 5 | 0xf0,0x0f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x80,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, 6 | 0xf8,0x1f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x80,0x73,0xce,0xc1,0xc3,0x01,0x00,0x00,0x00, 7 | 0xfc,0x1f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x80,0x73,0xce,0xe1,0xcf,0x01,0x00,0x00,0x00, 8 | 0xfe,0x3f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x80,0x73,0xce,0xf1,0xcf,0x01,0x00,0x00,0x00, 9 | 0xfe,0x3f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x80,0x73,0xce,0x71,0xce,0x01,0x00,0x00,0x00, 10 | 0xfe,0x3f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x80,0x73,0xce,0x71,0xce,0x01,0x00,0x00,0x00, 11 | 0xfe,0x7f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x80,0x73,0xce,0x71,0xce,0x01,0x00,0x00,0x00, 12 | 0xff,0x7f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x73,0xce,0x71,0xce,0x01,0x00,0x00,0x00, 13 | 0xff,0x7f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 14 | 0x7f,0x7e,0xfc,0x03,0x3c,0x00,0x78,0xf0,0x00,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 15 | 0x3f,0x7e,0xfc,0x03,0xff,0x00,0xfc,0xfc,0x01,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0xc0,0x7f, 16 | 0x3f,0x7e,0xfc,0x83,0xff,0x01,0xfe,0xff,0x03,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0xc0,0x7f, 17 | 0x3f,0x7e,0xfc,0xc3,0xff,0x03,0xff,0xff,0x07,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0xe0,0x7f, 18 | 0x3f,0x7e,0xfc,0xc3,0xff,0x03,0xff,0xff,0x07,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0xe0,0x7f, 19 | 0x3f,0x7e,0xfc,0xe3,0xff,0x87,0xff,0xff,0x07,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0xe0,0x7f, 20 | 0x3f,0x7e,0xfc,0xe3,0xff,0x87,0xff,0xff,0x0f,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0xf0,0x7f, 21 | 0xff,0x7e,0xfc,0xe3,0xff,0x87,0xff,0xff,0x0f,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x0e,0x7e,0x00,0xf0,0x7f, 22 | 0xff,0x7e,0xfc,0xf3,0xff,0x8f,0xff,0xff,0x0f,0x3f,0xfc,0x3f,0x00,0x00,0x00,0x00,0x0e,0x7e,0x01,0xf0,0x7d, 23 | 0xff,0x7e,0xfc,0xf0,0xe7,0x8f,0xdf,0xcf,0x0f,0x3f,0xfc,0x1f,0x00,0x00,0x00,0x00,0x0e,0x3e,0x07,0xf8,0x7d, 24 | 0xff,0x7e,0xfc,0xf0,0xc3,0x8f,0xdf,0xcf,0x0f,0x3f,0xf8,0x1f,0x00,0xde,0x87,0x1f,0x0e,0xbf,0x0f,0xf8,0x7c, 25 | 0xff,0x7e,0xfc,0xf0,0xc3,0x8f,0xdf,0xcf,0x0f,0x3f,0xf8,0x0f,0x80,0xff,0xcf,0x3f,0x0e,0xbf,0x1f,0xf8,0x7c, 26 | 0xff,0x7e,0xfc,0xf0,0xc3,0x8f,0xdf,0xcf,0x0f,0x3f,0xfc,0x1f,0x80,0xff,0xef,0x7f,0x0e,0x9f,0x1f,0x7c,0x7c, 27 | 0xff,0x7e,0xfc,0xf1,0xc3,0x8f,0xdf,0xcf,0x0f,0x3f,0xfc,0x1f,0x80,0x73,0xee,0x70,0x0e,0xdf,0x3f,0x7c,0x7c, 28 | 0xff,0x7e,0xfc,0xf7,0xe7,0x8f,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x80,0x73,0xee,0x77,0x8e,0xdf,0x3f,0xfc,0x7c, 29 | 0xff,0x7e,0xfc,0xf7,0xff,0x8f,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x80,0x73,0xce,0x77,0x8e,0x0f,0x3f,0xfe,0x7c, 30 | 0x3f,0x7e,0xf8,0xe7,0xff,0x87,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x80,0x73,0x8e,0x77,0x8e,0x0f,0x3e,0xfe,0x7c, 31 | 0x3f,0x7e,0xf8,0xe7,0xff,0x87,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x80,0x0f,0x3e,0xfe,0x7c, 32 | 0x3f,0x7e,0xf8,0xe7,0xff,0x87,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x80,0x1f,0x3f,0xff,0x7c, 33 | 0x3f,0x7e,0xf0,0xc7,0xff,0x83,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x80,0xff,0x3f,0x00,0x7c, 34 | 0x3f,0x7e,0xf0,0xc7,0xff,0x83,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0xff,0x1f,0x00,0x7c, 35 | 0x3f,0x7e,0xe0,0x87,0xff,0x81,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0xff,0x1f,0x00,0x7c, 36 | 0x3f,0x7e,0xc0,0x07,0xff,0x80,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0xfe,0x0f,0x00,0x7c, 37 | 0x3f,0x7e,0x00,0x07,0x3c,0x80,0xdf,0xcf,0x0f,0x3f,0x7e,0x3f,0x00,0x00,0x00,0x00,0x00,0xfe,0x0f,0x00,0x7c, 38 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x07,0x00,0x7c, 39 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x01,0x00,0x7c, 40 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 41 | -------------------------------------------------------------------------------- /tools/retroPrintChar.asm: -------------------------------------------------------------------------------- 1 | #org 0x8000 2 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 | Start: LDI 0xfe STA 0xffff 4 | JPS _Clear 5 | CLB _XPos 6 | LDI 3 7 | STA _YPos 8 | 9 | JPS printLine 10 | '! "#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\;]^_', 0 11 | 12 | CLB _XPos 13 | LDI 23 14 | STA _YPos 15 | 16 | JPS printLine 17 | '! "#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\;]^_', 0 18 | 19 | HLT 20 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21 | ; Outputs the text immediately after JPS 22 | ; must be terminated 0 23 | printLine: LDS 1 24 | STA ptr1+1 25 | LDS 2 26 | STA ptr1+0 27 | INW ptr1 28 | INW ptr1 29 | pL1: LDR ptr1 30 | CPI 0x00 31 | BNE pL2 32 | DEW ptr1 33 | LDA ptr1+0 34 | STS 2 35 | LDA ptr1+1 36 | STS 1 37 | RTS 38 | pL2: PHS JPS printCharXY PLS 39 | INW ptr1 40 | JPA pL1 41 | ptr1: 0x00, 0x00, 42 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | ; PHS Char 44 | ; outputs a character at the position _XPos(0..39), _YPos (0..23) grid 10x10 pixel 45 | ; XPos and _YPos are updated, there is no scrolling 46 | printCharXY: 47 | CLB xPos16+0x01 48 | LDA _XPos 49 | LSL 50 | STA xPos16+0x00 ; xPos16 = _XPos * 2 51 | PHS ; memorize _XPos * 2 52 | LLW xPos16 ; xPos16 = _XPos * 4 53 | LLW xPos16 ; xPos16 = _XPos * 8 54 | PLS ; Restore _XPos * 2 55 | ADW xPos16 ; xPos16 = _XPos * 8 + _XPos * 2 = _XPos * 10 56 | LDA xPos16+0x00 57 | PHS ; XPos low 58 | LDA xPos16+0x01 59 | PHS ; XPos hight 60 | LDA _YPos 61 | LSL 62 | STA yPos8 63 | LL2 64 | ADA yPos8 65 | PHS ; yPos = _YPos* 10 66 | LDS 6 ; Char is LDS 3+3 67 | PHS 68 | JPS printChar 69 | PLS PLS PLS PLS 70 | INB _XPos 71 | LDA _XPos 72 | CPI 40 73 | BCC pCxy1 74 | CLB _XPos 75 | INB _YPos 76 | LDA _YPos 77 | CPI 24 78 | BCC pCxy1 79 | CLB _YPos 80 | pCxy1: RTS 81 | xPos16: 0x00, 0x00, 82 | yPos8: 0x00, 83 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 84 | ; print char 0x20..0x5f 85 | ; PHS: xLow, xHiht, y, char 86 | printChar: LDI 1 87 | STA _tmp+1 88 | LDS 4 ; 89 | LL6 STA addr+0 ; 90 | LDS 4 ; 91 | RL7 ANI 63 ADI 0xc3 STA addr+1 92 | LDS 5 ; xHight 93 | DEC 94 | LDS 6 ; xLow 95 | RL6 ANI 63 ADI 12 ORB addr+0 96 | LDS 6 ANI 7 STA shift 97 | LDI 8 STA scnt ; scnt Loop counter 8 bytes 98 | LDS 3 99 | CPI 0x60 100 | BCS rPCrts 101 | SBI 0x20 102 | BCC rPCrts 103 | CPI 0x20 104 | BCC pC1 105 | SBI 0x20 106 | CLB _tmp+1 107 | pC1: LL3 STA _tmp ; A = Char * 8 108 | clineloop: LDA _tmp+1 109 | CPI 0x00 110 | BEQ cl1 111 | LDA _tmp 112 | LTA alphaNumSprites 113 | JPA cl2 114 | cl1: LDA _tmp 115 | LTA alphaNumSprites2 116 | cl2: STA buffer+0 117 | CLB buffer+1 118 | LXA shift 119 | DEX 120 | BCC cshiftdone 121 | cshiftloop: LLW buffer+0 122 | DEX 123 | BCS cshiftloop 124 | cshiftdone: LDA buffer+0 125 | ORR addr 126 | STR addr 127 | INW addr 128 | LDA buffer+1 129 | ORR addr 130 | STR addr 131 | ccommon: LDI 63 132 | ADW addr 133 | INB _tmp 134 | DEB scnt 135 | BNE clineloop 136 | rPCrts: RTS 137 | _tmp: 0x00,0x00, 138 | scnt: 0x00 139 | shift: 0xff 140 | addr: 0xffff 141 | buffer: 0xff, 0xff, 0xff 142 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | alphaNumSprites: 144 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ; 0x20 space 145 | 0x38,0x38,0x38,0x38,0x20,0x20,0x00,0x30, ; 0x21 ! 146 | 0x00,0x36,0x36,0x24,0x00,0x00,0x00,0x00, ; 0x22 " 147 | 0x66,0xff,0xff,0x66,0x66,0xff,0xff,0x66, ; 0x23 # 148 | 0x18,0x7e,0x03,0x7e,0xe0,0xe0,0x7e,0x18, ; 0x24 $ 149 | 0xc7,0xe5,0x77,0x38,0x1c,0xee,0xa7,0xe3, ; 0x25 % 150 | 0x06,0x09,0x09,0x46,0x6d,0x11,0x71,0xce, ; 0x26 & 151 | 0x00,0x0c,0x0c,0x08,0x00,0x00,0x00,0x00, ; 0x27 ' 152 | 0x38,0x1c,0x0e,0x0e,0x0e,0x0e,0x1c,0x38, ; 0x28 ( 153 | 0x1c,0x38,0x70,0x70,0x70,0x70,0x38,0x1c, ; 0x29 ) 154 | 0x99,0x5a,0x3c,0xff,0xff,0x3c,0x5a,0x99, ; 0x2a * 155 | 0x18,0x18,0x18,0xff,0xff,0x18,0x18,0x18, ; 0x2b + 156 | 0x00,0x00,0x00,0x00,0x0c,0x0c,0x08,0x04, ; 0x2c , 157 | 0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00, ; 0x2d - 158 | 0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00, ; 0x2e . 159 | 0xc0,0xe0,0x70,0x38,0x1c,0x0e,0x07,0x03, ; 0x2f / 160 | 0xff,0xc3,0xc3,0xc3,0xf3,0xf3,0xf3,0xff, ; 0x30 0 161 | 0x1e,0x1e,0x18,0x18,0x18,0x18,0x7e,0x7e, ; 0x31 1 162 | 0xff,0xc3,0xc0,0xff,0x03,0x03,0xf3,0xff, ; 0x32 2 163 | 0xff,0xc3,0xc0,0xfc,0xc0,0xc0,0xc3,0xff, ; 0x33 3 164 | 0xcf,0xcf,0xcf,0xff,0xc0,0xc0,0xc0,0xc0, ; 0x34 4 165 | 0xff,0x03,0x03,0xff,0xf0,0xf0,0xf0,0xff, ; 0x35 5 166 | 0xff,0xc3,0x03,0xff,0xe3,0xe3,0xe3,0xff, ; 0x36 6 167 | 0xff,0xf0,0xf0,0xf0,0x3c,0x0c,0x0c,0x0c, ; 0x37 7 168 | 0xfc,0xcc,0xcc,0xff,0xc3,0xc3,0xc3,0xff, ; 0x38 8 169 | 0xff,0xc3,0xc3,0xff,0xf0,0xf0,0xf0,0xf0, ; 0x39 9 170 | 0x00,0x0c,0x0c,0x00,0x00,0x0c,0x0c,0x00, ; 0x3a : 171 | 0x00,0x18,0x18,0x00,0x18,0x18,0x10,0x08, ; 0x3b ; 172 | 0xc0,0xf0,0x7c,0x0f,0x0f,0x7c,0xf0,0xc0, ; 0x3c < 173 | 0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00, ; 0x3d = 174 | 0x03,0x0f,0x3c,0xf0,0xf0,0x3c,0x0f,0x03, ; 0x3e > 175 | 0x3c,0x62,0x70,0x38,0x18,0x18,0x00,0x18, ; 0x3f ? 176 | alphaNumSprites2: 177 | 0x3c,0x42,0x99,0xa5,0x45,0x39,0x02,0x7c, ; 0x40 @ 178 | 0xfc,0xcc,0xcc,0xff,0xc3,0xc3,0xf3,0xf3, ; 0x41 A 179 | 0x3f,0x33,0x33,0xff,0xc3,0xc3,0xc3,0xff, ; 0x42 B 180 | 0xff,0xc3,0x03,0x03,0x0f,0x0f,0xcf,0xff, ; 0x43 C 181 | 0x3f,0xc3,0xc3,0xc3,0xcf,0xcf,0xcf,0x3f, ; 0x44 D 182 | 0xff,0x0f,0x0f,0x3f,0x03,0x03,0x03,0xff, ; 0x45 E 183 | 0xff,0x0f,0x0f,0x3f,0x03,0x03,0x03,0x03, ; 0x46 F 184 | 0xff,0xc3,0x03,0x03,0xf3,0xf3,0xc3,0xff, ; 0x47 G 185 | 0xc3,0xc3,0xc3,0xff,0xcf,0xcf,0xcf,0xcf, ; 0x48 H 186 | 0x08,0x08,0x08,0x38,0x38,0x38,0x38,0x38, ; 0x49 I 187 | 0x20,0x20,0x20,0xe0,0xe0,0xe0,0xe3,0xff, ; 0x4a J 188 | 0xc3,0xe3,0x73,0x3f,0xff,0xcf,0xcf,0xcf, ; 0x4b K 189 | 0x03,0x03,0x03,0x0f,0x0f,0x0f,0x0f,0xff, ; 0x4c L 190 | 0xc3,0xcf,0xff,0xff,0xc3,0xc3,0xc3,0xc3, ; 0x4d M 191 | 0xc3,0xc3,0xcf,0xff,0xff,0xf3,0xc3,0xc3, ; 0x4e N 192 | 0xff,0xf3,0xf3,0xf3,0xc3,0xc3,0xc3,0xff, ; 0x4f O 193 | 0xff,0xc3,0xc3,0xff,0x0f,0x0f,0x0f,0x0f, ; 0x50 P 194 | 0xff,0xf3,0xf3,0xc3,0xc3,0x23,0x63,0xdf, ; 0x51 Q 195 | 0xff,0xc3,0xc3,0xff,0x3f,0x3f,0xcf,0xcf, ; 0x52 R 196 | 0xff,0xc3,0x03,0xff,0xf0,0xf0,0xf3,0xff, ; 0x53 S 197 | 0xff,0x0c,0x0c,0x3c,0x3c,0x3c,0x3c,0x3c, ; 0x54 T 198 | 0xc3,0xc3,0xc3,0xcf,0xcf,0xcf,0xcf,0xff, ; 0x55 U 199 | 0xcf,0xcf,0xcf,0xcf,0xcf,0xff,0x3c,0x0c, ; 0x56 V 200 | 0xc3,0xc3,0xc3,0xc3,0xff,0xff,0xcf,0xc3, ; 0x57 W 201 | 0xc3,0xc3,0xc3,0x3c,0x3c,0xc3,0xc3,0xc3, ; 0x58 X 202 | 0xf3,0xf3,0xf3,0xff,0x3c,0x3c,0x3c,0x3c, ; 0x59 Y 203 | 0xff,0x81,0x80,0xf8,0x3f,0x01,0xc1,0xff, ; 0x5a Z 204 | 0x7e,0x06,0x06,0x06,0x1e,0x1e,0x1e,0x7e, ; 0x5b [ 205 | 0x03,0x07,0x0e,0x1c,0x38,0x70,0xe0,0xc0, ; 0x5c \; 206 | 0x7e,0x60,0x60,0x60,0x78,0x78,0x78,0x7e, ; 0x5d ] 207 | 0x18,0x3c,0x66,0xc3,0x00,0x00,0x00,0x00, ; 0x5e ^ 208 | 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, ; 0x5f _ 209 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 210 | #mute ; MinOS API definitions generated by 'asm os.asm -s_' 211 | 212 | #org 0xb000 _Start: 213 | #org 0xb003 _Prompt: 214 | #org 0xb006 _ReadLine: 215 | #org 0xb009 _ReadSpace: 216 | #org 0xb00c _ReadHex: 217 | #org 0xb00f _SerialWait: 218 | #org 0xb012 _SerialPrint: 219 | #org 0xb015 _FindFile: 220 | #org 0xb018 _LoadFile: 221 | #org 0xb01b _SaveFile: 222 | #org 0xb01e _MemMove: 223 | #org 0xb021 _Random: 224 | #org 0xb024 _ScanPS2: 225 | #org 0xb027 _ReadInput: 226 | #org 0xb02a _WaitInput: 227 | #org 0xb02d _ClearVRAM: 228 | #org 0xb030 _Clear: 229 | #org 0xb033 _ClearRow: 230 | #org 0xb036 _SetPixel: 231 | #org 0xb039 _ClrPixel: 232 | #org 0xb03c _GetPixel: 233 | #org 0xb03f _Char: 234 | #org 0xb042 _Line: 235 | #org 0xb045 _Rect: 236 | #org 0xb048 _Print: 237 | #org 0xb04b _PrintChar: 238 | #org 0xb04e _PrintHex: 239 | #org 0xb051 _ScrollUp: 240 | #org 0xb054 _ScrollDn: 241 | #org 0xb057 _ResetPS2: 242 | 243 | #org 0xbcb0 _ReadPtr: 244 | #org 0xbcb2 _ReadNum: 245 | #org 0xbcc4 _RandomState: 246 | #org 0xbccc _XPos: 247 | #org 0xbccd _YPos: 248 | #org 0xbcce _ReadBuffer: 249 | -------------------------------------------------------------------------------- /2048/2048.hex: -------------------------------------------------------------------------------- 1 | :102000001DFE28FFFF55D521552AB022715C00B076 2 | :1020100022515C00B05530B055C4243B542C3B5386 3 | :102020002C55472455472455772255AC24558224F6 4 | :1020300022005C4E2027532C22005C482055472468 5 | :1020400055822422005C4E203B532C265620559668 6 | :102050002222005C542127542C22005B5421552A53 7 | :10206000B0226E5C1520224E5C152022715C00B0FF 8 | :1020700022515C00B022E15CB42022695CB42022D1 9 | :10208000495CB42022E25CDC20226D5CDC20224D25 10 | :102090005CDC2022E35C2C21226A5C2C21224A5C3D 11 | :1020A0002C2122E45C0421226B5C0421224B5C0481 12 | :1020B000212648201D0428522C1D00284F2C555144 13 | :1020C000231D01284F2C5551231D02284F2C5551FB 14 | :1020D000231D03284F2C555123262A201DFC28524E 15 | :1020E0002C1D0C284F2C5551231D0D284F2C5551BC 16 | :1020F000231D0E284F2C5551231D0F284F2C5551B1 17 | :1021000023262A201DFF28522C1D03284F2C555111 18 | :10211000231D07284F2C5551231D0B284F2C55519B 19 | :10212000231D0F284F2C555123262A201D012852EC 20 | :102130002C1D00284F2C5551231D04284F2C555180 21 | :10214000231D08284F2C5551231D0C284F2C555169 22 | :1021500023262A201D0D28CCBC1D0328CDBC55CE1E 23 | :1021600028202A2A2A2A2A2A2A2A2A2A2A20002712 24 | :10217000542C22005B93211D0D28CCBC3ECDBC55B8 25 | :10218000CE282A2047414D45204F564552202A004F 26 | :1021900026AC211D0D28CCBC3ECDBC55CE282A2016 27 | :1021A00020594F552057494E20202A001D0D28CC7C 28 | :1021B000BC3ECDBC55CE28202A2A2A2A2A2A2A2AE1 29 | :1021C0002A2A2A2000552AB022715C00B022515CD4 30 | :1021D00000B02615205530B05577221D0328CCBC01 31 | :1021E0003ECDBC3ECDBC3ECDBC55CE285553452042 32 | :1021F000435552534F52204B455953204F5220497B 33 | :102200002C4A2C4B2C4D20544F204D4F5645001D31 34 | :102210000A28CCBC3ECDBC3ECDBC55CE284E20526B 35 | :1022200045535441525453205448452047414D454D 36 | :10223000001D0C28CCBC3ECDBC3ECDBC55CE28519B 37 | :102240002051554954205448452047414D45001DD3 38 | :102250000928CCBC3ECDBC3ECDBC3ECDBC55CE2825 39 | :10226000505245535320414E59204B455920544F0D 40 | :1022700020504C415900561D0C28CCBC1D0228CDC5 41 | :10228000BC55CE28323034382050555A5A4C45204F 42 | :1022900047414D4500561D0128522C1D00284F2C4A 43 | :1022A00055042322005B4E231D04284F2C55042384 44 | :1022B00022005B4E231D08284F2C55042322005B6F 45 | :1022C0004E231D0C284F2C55042322005B4E231D4A 46 | :1022D0000428522C1D00284F2C55042322005B4E4D 47 | :1022E000231D01284F2C55042322005B4E231D0281 48 | :1022F000284F2C55042322005B4E231D03284F2C0E 49 | :1023000055042356274F2C28512C28502C27522C6B 50 | :1023100040502C27522C0D29522C40512C274F2C49 51 | :1023200057551D2458284B2C27502C57551D2458E1 52 | :102330002D4B2C5C4E2327522C40502C27522C40E6 53 | :102340004F2C274F2C2D512C5B1D231D00561D019A 54 | :1023500056274F2C28512C27522C0D29522C4051F6 55 | :102360002C274F2C28502C2D512C5C072427522C25 56 | :1023700040502C274F2C57551D245822005BBB235F 57 | :1023800027502C57551D245822005B9F2327502C83 58 | :102390002D512C5C072427522C40502C268023578B 59 | :1023A000274F2C5755082458583E532C1D005727AB 60 | :1023B000502C575508245858266123284B2C275059 61 | :1023C0002C57551D245822005BDD2327502C2D51FE 62 | :1023D0002C5C072427522C40502C26BE232D4B2C3E 63 | :1023E0005BFE23274F2C5755322458220B5BF523D5 64 | :1023F0001D0128542C27522C404F2C26A92327524C 65 | :102400002C404F2C266123561D2E281A241D2C28C3 66 | :102410001B2459034F1A24590428FFFF561D2E2848 67 | :102420002D241D2C282E2459034F2D2427FFFF5A1D 68 | :1024300003561D2E2842241D2C28432459034F42A5 69 | :10244000243EFFFF5A03565521B0230F284C2C760B 70 | :102450002E2C22005B47241D2E2879241D2C287A3F 71 | :1024600024274C2C4F79245521B0230322035B767B 72 | :10247000241D022678241D0128FFFF284A2C55E040 73 | :1024800024561D0F284C2C3B492C1D2E2895241D0D 74 | :102490002C28962427FFFF22005B9F243E492C4DC9 75 | :1024A00095243F4C2C5F942427492C561D0F284C13 76 | :1024B0002C274C2C762E2C284A2C55E0243F4C2CD3 77 | :1024C0005FB124561D2E28D4241D2C28D5241D1080 78 | :1024D00028482C3BFFFF4DD4243F482C5BD3245687 79 | :1024E000274C2C0D6368362528442C69683625282E 80 | :1024F000452C274A2C0D6368562528462C696856BA 81 | :102500002528472C1D1828482C32462C33442C4DA6 82 | :10251000462C4D442C32462C33442C4D462C4D44F5 83 | :102520002C32462C33442C4D462C1D3E4F442C3F20 84 | :10253000482C5B0925561FD522D525D528D51FDB6C 85 | :1025400022DB25DB28DB1FE122E125E128E11FE773 86 | :1025500022E725E728E76E25B625FE2546268E26A6 87 | :10256000D6261E276627AE27F6273E288628000097 88 | :1025700000000000FCFF3F0200400200400200405B 89 | :1025800002004002004002004002004002004002FF 90 | :1025900000400200400200400200400200400200F1 91 | :1025A00040020040020040020040020040020040A1 92 | :1025B000FCFF3F000000000000000000FCFF3F0A9D 93 | :1025C0000068C6FF43E2FF4772004E02004C020063 94 | :1025D0004C02004CC2FF4FE2FF47F2FF4372004043 95 | :1025E00032004032004032004072004EF2FF47F6A7 96 | :1025F000FF430A0060565555FCFF3F0000000000F5 97 | :1026000000000000FCFF3F0A806A060755020768C9 98 | :10261000820350820160C20150C20060E2C0416288 99 | :10262000C04172C04132C041F2FF4FF2FF4FE2FFA2 100 | :102630004F02C04102C04106C0410A0060565555D4 101 | :10264000FCFF3F000000000000000000FCFF3F0A0C 102 | :102650000068C6FF53E2FF6772004E32006C320022 103 | :102660004C62004EC2FF47C2FF43E2FF4372004686 104 | :1026700032004C32004C32004C72004EE2FF47C632 105 | :10268000FF430A0060565555FCFF3F000000000064 106 | :1026900000000000FCFF3FAAAA6A565555AAAA6A84 107 | :1026A000565555020060F2F04FF2304CC23040C235 108 | :1026B0003040C2F04FC2304FF2334FF2F34F0200BE 109 | :1026C00060565555AAAA6A565555AAAA6A5655552E 110 | :1026D000FCFF3F000000000000000000FCFF3FAADC 111 | :1026E000AA6A565555AAAA6A565555020060FAE7D5 112 | :1026F0005F1A6658020658E2E75F026640026640CB 113 | :102700001A6658FAE75F020060565555AAAA6A563B 114 | :102710005555AAAA6A565555FCFF3F000000000017 115 | :1027200000000000FCFF3FAAAA6A565555AAAA6AF3 116 | :10273000565555020060FAE7591AE6591AE0591A37 117 | :10274000E05FFA07589A07589A0758FA07580200A4 118 | :1027500060565555AAAA6A565555AAAA6A5655559D 119 | :10276000FCFF3F000000000000000000FCFF3FAA4B 120 | :10277000AA6A565555AAAA6A565555AAAA6A0200C7 121 | :1027800040221C4732A2482AA048221C47228248E5 122 | :10279000228248FA3E47020040AAAA6A565555AA24 123 | :1027A000AA6A565555AAAA6AFCFF3F00000000001D 124 | :1027B00000000000FCFF3FAAAA6A565555AAAA6A63 125 | :1027C000565555AAAA6A020040723E478A82408244 126 | :1027D0009E4072A0470AA0480AA248FA1C4702007D 127 | :1027E00040AAAA6A565555AAAA6A565555AAAA6A6F 128 | :1027F000FCFF3F000000000000000000FCFF3FAABB 129 | :10280000AA6A565555AAAA6A565555AAAA6A020036 130 | :1028100040F2114E121851F2145002114E021141A1 131 | :10282000121141E27C5F020040AAAA6A565555AADD 132 | :10283000AA6A565555AAAA6AFCFF3F00000000008C 133 | :1028400000000000FCFF3FAAAA6A565555AAAA6AD2 134 | :10285000565555AAAA6A0600500200402232453257 135 | :102860004545222547221544727244020040060065 136 | :1028700050AAAA6A565555AAAA6A565555AAAA6ACE 137 | :10288000FCFF3F000000000000000000FCFF3FAA2A 138 | :10289000AA6A565555AAAA6A565555AAAA6A0600A2 139 | :1028A0005002004032524742554522754712454575 140 | :1028B000724247020040060050AAAA6A565555AA1D 141 | :1028C000AA6A565555AAAA6AFCFF3F0000005901A2 142 | :1028D000283F2C5902283E2C4D3E2C4D3E2C323E9A 143 | :1028E0002C22005BF4284E3E2C273E2C5A02273F18 144 | :1028F0002C5A01565755FF28584D3E2C26DE283BB2 145 | :10290000562C27CCBC0D28552C5753552C53552CE1 146 | :10291000584F552C27552C5727562C5727CDBC0DD3 147 | :1029200028572C0E29572C57590657554F295858B8 148 | :1029300058583ECCBC27CCBC22285D4E293BCCBC91 149 | :102940003ECDBC27CDBC22185D4E293BCDBC56598F 150 | :10295000041228582C59041B233F1EC328592C59F4 151 | :10296000050A59061A233F1E0C45582C5906230701 152 | :10297000285A2C1D0A28612C590322605E2D2A1F1B 153 | :10298000205D2D2A28622C3B632C53622C53622C31 154 | :1029900053622C1D2E4F622C1D2A40632C4E622C3C 155 | :1029A00027612C220A5CB62922015CB6294D622CD3 156 | :1029B00032622C26B8291D00285B2C3B5C2C3B5D29 157 | :1029C0002C3B5E2C1DFC285F2C1DFF28602C755AAB 158 | :1029D0002C785DE629535B2C485D2C0C545E2C480A 159 | :1029E000602C785ED529275E2C39582C33582C273B 160 | :1029F0005B2C3A582C33582C4D582C275F2C3958C7 161 | :102A00002C33582C275C2C3A582C33582C4D582CEE 162 | :102A100027602C39582C33582C275D2C3A582C33EE 163 | :102A2000582C1D3E4F582C3F612C5BA029560000AE 164 | :102A30000000000000003838383820200030003610 165 | :102A400036240000000066FFFF6666FFFF66187E02 166 | :102A5000037EE0E07E18C7E577381CEEA7E30609A1 167 | :102A600009466D1171CE000C0C0800000000381CE6 168 | :102A70000E0E0E0E1C381C3870707070381C995A6F 169 | :102A80003CFFFF3C5A99181818FFFF18181800004F 170 | :102A900000000C0C0804000000FFFF000000000014 171 | :102AA0000000000C0C00C0E070381C0E0703FFC3D0 172 | :102AB000C3C3F3F3F3FF1E1E181818187E7EFFC35E 173 | :102AC000C0FF0303F3FFFFC3C0FCC0C0C3FFCFCFF1 174 | :102AD000CFFFC0C0C0C0FF0303FFF0F0F0FFFFC393 175 | :102AE00003FFE3E3E3FFFFF0F0F03C0C0C0CFCCC45 176 | :102AF000CCFFC3C3C3FFFFC3C3FFF0F0F0F0000C73 177 | :102B00000C00000C0C00001818001818100806061D 178 | :102B1000000C1CD8C0000000000000DBDB0060607F 179 | :102B20000030381B03003C627038181800183C4213 180 | :102B300099A54539027CFCCCCCFFC3C3F3F33F33EA 181 | :102B400033FFC3C3C3FFFFC303030F0FCFFF3FC355 182 | :102B5000C3C3CFCFCF3FFF0F0F3F030303FFFF0FD1 183 | :102B60000F3F03030303FFC30303F3F3C3FFC3C315 184 | :102B7000C3FFCFCFCFCF08080838383838382020E7 185 | :102B800020E0E0E0E3FFC3E3733FFFCFCFCF0303D9 186 | :102B9000030F0F0F0FFFC3CFFFFFC3C3C3C3C3C3D5 187 | :102BA000CFFFFFF3C3C3FFF3F3F3C3C3C3FFFFC3FD 188 | :102BB000C3FF0F0F0F0FFFF3F3C3C32363DFFFC385 189 | :102BC000C3FF3F3FCFCFFFC303FFF0F0F3FFFF0C86 190 | :102BD0000C3C3C3C3C3CC3C3C3CFCFCFCFFFCFCF9B 191 | :102BE000CFCFCFFF3C0CC3C3C3C3FFFFCFC3C3C30F 192 | :102BF000C33C3CC3C3C3F3F3F3FF3C3C3C3CFF8109 193 | :102C000080F83F01C1FF00C0D81C0C00060600DBA5 194 | :102C1000DB000000000000031B3830006060060687 195 | :0E2C20000018180006066060001818006060BA 196 | :00000001FF -------------------------------------------------------------------------------- /2048/2048_64x4.hex: -------------------------------------------------------------------------------- 1 | :1080000074FE7EFFFF67D5816715F0E4715D00F0B7 2 | :10801000E4515D00F06733F067C4848F5F8C8F5E3E 3 | :108020008C67478467478467778267AC84678284FC 4 | :10803000E4005D4E80765E8CE4005D488067478496 5 | :10804000678284E4005D4E808F5E8C645680679604 6 | :1080500082E4005D5481765F8CE4005C5481671596 7 | :10806000F0E46E5D1580E44E5D1580E4715D00F016 8 | :10807000E4515D00F0E4E15DB480E4695DB480E466 9 | :10808000495DB480E4E25DDC80E46D5DDC80E44D5C 10 | :108090005DDC80E4E35D2C81E46A5D2C81E44A5D73 11 | :1080A0002C81E4E45D0481E46B5D0481E44B5D04B8 12 | :1080B0008164488074047E5D8C74007E5A8C6751A4 13 | :1080C0008374017E5A8C67518374027E5A8C675187 14 | :1080D0008374037E5A8C675183642A8074FC7E5DAE 15 | :1080E0008C740C7E5A8C675183740D7E5A8C675148 16 | :1080F00083740E7E5A8C675183740F7E5A8C67513D 17 | :1081000083642A8074FF7E5D8C74037E5A8C675171 18 | :108110008374077E5A8C675183740B7E5A8C675127 19 | :1081200083740F7E5A8C675183642A8074017E5D4C 20 | :108130008C74007E5A8C67518374047E5A8C67510C 21 | :108140008374087E5A8C675183740C7E5A8C6751F5 22 | :1081500083642A80740D7EC00074037EC10067D6DC 23 | :1081600088202A2A2A2A2A2A2A2A2A2A2A20007603 24 | :108170005F8CE4005C9381740D7EC00096C1006743 25 | :10818000D6882A2047414D45204F564552202A0087 26 | :1081900064AC81740D7EC00096C10067D6882A2029 27 | :1081A00020594F552057494E20202A00740D7EC07B 28 | :1081B0000096C10067D688202A2A2A2A2A2A2A2A33 29 | :1081C0002A2A2A20006715F0E4715D00F0E4515D71 30 | :1081D00000F06415806733F067778274037EC00017 31 | :1081E00096C10096C10096C10067D68855534520B8 32 | :1081F000435552534F52204B455953204F5220491B 33 | :108200002C4A2C4B2C4D20544F204D4F564500747A 34 | :108210000A7EC00096C10096C10067D6884E2052E3 35 | :1082200045535441525453205448452047414D45ED 36 | :1082300000740C7EC00096C10096C10067D68851BC 37 | :108240002051554954205448452047414D4500741C 38 | :10825000097EC00096C10096C10096C10067D6880D 39 | :10826000505245535320414E59204B455920544FAD 40 | :1082700020504C41590069740C7EC00074027EC1CC 41 | :108280000067D688323034382050555A5A4C452031 42 | :1082900047414D45006974017E5D8C74007E5A8CA7 43 | :1082A000670483E4005C4E8374047E5A8C67048305 44 | :1082B000E4005C4E8374087E5A8C670483E4005C9F 45 | :1082C0004E83740C7E5A8C670483E4005C4E837486 46 | :1082D000047E5D8C74007E5A8C670483E4005C4EDF 47 | :1082E0008374017E5A8C670483E4005C4E837402BD 48 | :1082F0007E5A8C670483E4005C4E8374037E5A8C40 49 | :1083000067048369765A8C7E5C8C7E5B8C765D8C90 50 | :10831000A85B8C765D8C08A45D8CA85C8C765A8CEE 51 | :108320006A671D846B7E568C765B8C6A671D846BD6 52 | :10833000E6568C5D4E83765D8CA85B8C765D8CA852 53 | :108340005A8C765A8CE65C8C5C1D837400697401CF 54 | :1083500069765A8C7E5C8C765D8C08A45D8CA85CFA 55 | :108360008C765A8C7E5B8CE65C8C5D0784765D8CAB 56 | :10837000A85B8C765A8C6A671D846BE4005CBB83B7 57 | :10838000765B8C6A671D846BE4005C9F83765B8CF4 58 | :10839000E65C8C5D0784765D8CA85B8C6480836A68 59 | :1083A000765A8C6A6708846B6B965E8C74006A766A 60 | :1083B0005B8C6A6708846B6B6461837E568C765B2A 61 | :1083C0008C6A671D846BE4005CDD83765B8CE65C05 62 | :1083D0008C5D0784765D8CA85B8C64BE83E6568CCE 63 | :1083E0005CFE83765A8C6A6732846BE40B5CF5839F 64 | :1083F00074017E5F8C765D8CA85A8C64A983765D4F 65 | :108400008CA85A8C6461836974397E1A84748C7E5A 66 | :108410001B846C03AC1A846C047EFFFF6974397E84 67 | :108420002D84748C7E2E846C03AC2D8476FFFF6DBE 68 | :10843000036974397E4284748C7E43846C03AC423D 69 | :108440008496FFFF6D03696709F03E0F7E578C7AB3 70 | :10845000398CE4005C478474397E7984748C7E7A2C 71 | :108460008476578CAC79846709F03E03E4035C762C 72 | :1084700084740264788474017EFFFF7E558C67E00B 73 | :108480008469740F7E578C8F548C74397E958474F4 74 | :108490008C7E968476FFFFE4005C9F8496548C98D3 75 | :1084A00095849D578C60948476548C69740F7E57A4 76 | :1084B0008C76578C7A398C7E558C67E0849D578CEE 77 | :1084C00060B1846974397ED484748C7ED5847410D0 78 | :1084D0007E538C8FFFFF98D4849D538C5CD384692A 79 | :1084E00076578C087D007C003E857E4F8C95007C05 80 | :1084F000003E857E508C76558C087D007C005E8524 81 | :108500007E518C95007C005E857E528C74187E5363 82 | :108510008C78518C804F8C98518C984F8C78518CE2 83 | :10852000804F8C98518C984F8C78518C804F8C98C0 84 | :10853000518C743EAC4F8C9D538C5C1185691F55DA 85 | :108540002255255528551F5B225B255B285B1F6143 86 | :108550002261256128611F67226725672867768564 87 | :10856000BE8506864E869686DE8626876E87B68709 88 | :10857000FE8746888E88000000000000FCFF3F0256 89 | :1085800000400200400200400200400200400200A1 90 | :108590004002004002004002004002004002004051 91 | :1085A000020040020040020040020040020040027F 92 | :1085B0000040020040020040FCFF3F0000000000BD 93 | :1085C00000000000FCFF3F0A0068C6FF43E2FF47CF 94 | :1085D00072004E02004C02004C02004CC2FF4FE2FF 95 | :1085E000FF47F2FF43720040320040320040320049 96 | :1085F0004072004EF2FF47F6FF430A0060565555A1 97 | :10860000FCFF3F000000000000000000FCFF3F0AEC 98 | :10861000806A060755020768820350820160C20122 99 | :1086200050C20060E2C04162C04172C04132C041EC 100 | :10863000F2FF4FF2FF4FE2FF4F02C04102C041067E 101 | :10864000C0410A0060565555FCFF3F000000000085 102 | :1086500000000000FCFF3F0A0068C6FF53E2FF670E 103 | :1086600072004E32006C32004C62004EC2FF47C2B4 104 | :10867000FF43E2FF4372004632004C32004C3200AE 105 | :108680004C72004EE2FF47C6FF430A006056555544 106 | :10869000FCFF3F000000000000000000FCFF3FAABC 107 | :1086A000AA6A565555AAAA6A565555020060F2F0B4 108 | :1086B0004FF2304CC23040C23040C2F04FC2304F57 109 | :1086C000F2334FF2F34F020060565555AAAA6A568C 110 | :1086D0005555AAAA6A565555FCFF3F0000000000F8 111 | :1086E00000000000FCFF3FAAAA6A565555AAAA6AD4 112 | :1086F000565555020060FAE75F1A6658020658E2BE 113 | :10870000E75F0266400266401A6658FAE75F0200B9 114 | :1087100060565555AAAA6A565555AAAA6A5655557D 115 | :10872000FCFF3F000000000000000000FCFF3FAA2B 116 | :10873000AA6A565555AAAA6A565555020060FAE724 117 | :10874000591AE6591AE0591AE05FFA07589A075879 118 | :108750009A0758FA0758020060565555AAAA6A5651 119 | :108760005555AAAA6A565555FCFF3F000000000067 120 | :1087700000000000FCFF3FAAAA6A565555AAAA6A43 121 | :10878000565555AAAA6A020040221C4732A2482A1E 122 | :10879000A048221C47228248228248FA3E47020013 123 | :1087A00040AAAA6A565555AAAA6A565555AAAA6A4F 124 | :1087B000FCFF3F000000000000000000FCFF3FAA9B 125 | :1087C000AA6A565555AAAA6A565555AAAA6A020017 126 | :1087D00040723E478A8240829E4072A0470AA0486B 127 | :1087E0000AA248FA1C47020040AAAA6A565555AA8E 128 | :1087F000AA6A565555AAAA6AFCFF3F00000000006D 129 | :1088000000000000FCFF3FAAAA6A565555AAAA6AB2 130 | :10881000565555AAAA6A020040F2114E121851F29A 131 | :10882000145002114E021141121141E27C5F02000C 132 | :1088300040AAAA6A565555AAAA6A565555AAAA6ABE 133 | :10884000FCFF3F000000000000000000FCFF3FAA0A 134 | :10885000AA6A565555AAAA6A565555AAAA6A060082 135 | :108860005002004022324532454522254722154418 136 | :10887000727244020040060050AAAA6A565555AAD0 137 | :10888000AA6A565555AAAA6AFCFF3F0000000000DC 138 | :1088900000000000FCFF3FAAAA6A565555AAAA6A22 139 | :1088A000565555AAAA6A0600500200403252474265 140 | :1088B0005545227547124545724247020040060061 141 | :1088C00050AAAA6A565555AAAA6A565555AAAA6A1E 142 | :1088D000FCFF3F0000006C017E4A8C6C027E498CDC 143 | :1088E00098498C98498C78498CE4005CFC889F49B5 144 | :1088F0008C76498C6D02764A8C6D01696A670789AE 145 | :108900006B98498C64E6888F618C76C000087E6025 146 | :108910008C6A23608C23608C6BAC608C76608C6A74 147 | :1089200076618C6A76C100087E628C09A4628C6ACA 148 | :108930006C066A6757896B6B6B6B96C00076C000DC 149 | :10894000E4285E56898FC00096C10076C100E41805 150 | :108950005E56898FC100696C040D7E638C6C0416B1 151 | :108960003E3FA2437E648C6C059B6C06153E3FA285 152 | :108970000C4B638C6C063E077E658C740A7E6C8C97 153 | :108980006C03E4605F388AC3205E388A7E6D8C8F0A 154 | :108990006E8C236D8C236D8C236D8C7439AC6D8C37 155 | :1089A000748AA86E8C9F6D8C766C8CE40A5DBE898F 156 | :1089B000E4015DBE89986D8C786D8C64C08974000B 157 | :1089C0007E668C8F678C8F688C8F698C74FC7E6A56 158 | :1089D0008C74FF7E6B8C8A658C019C015EF189230F 159 | :1089E000668C29688C052B698C296B8C9C015FDF58 160 | :1089F0008976698C42638C80638C76668C49638C43 161 | :108A000080638C98638C766A8C42638C80638C76EE 162 | :108A1000678C49638C80638C98638C766B8C426323 163 | :108A20008C80638C76688C49638C80638C743EACDC 164 | :108A3000638C9D6C8C5CA8896900000000000000BC 165 | :108A40000038383838202000300036362400000046 166 | :108A50000066FFFF6666FFFF66187E037EE0E07E2D 167 | :108A600018C7E577381CEEA7E3060909466D1171B2 168 | :108A7000CE000C0C0800000000381C0E0E0E0E1C60 169 | :108A8000381C3870707070381C995A3CFFFF3C5A83 170 | :108A900099181818FFFF181818000000000C0C088F 171 | :108AA00004000000FFFF00000000000000000C0CAC 172 | :108AB00000C0E070381C0E0703FFC3C3C3F3F3F319 173 | :108AC000FF1E1E181818187E7EFFC3C0FF0303F395 174 | :108AD000FFFFC3C0FCC0C0C3FFCFCFCFFFC0C0C02B 175 | :108AE000C0FF0303FFF0F0F0FFFFC303FFE3E3E386 176 | :108AF000FFFFF0F0F03C0C0C0CFCCCCCFFC3C3C36C 177 | :108B0000FFFFC3C3FFF0F0F0F0000C0C00000C0CF2 178 | :108B10000000181800181810080606000C1CD8C011 179 | :108B2000000000000000DBDB0060600030381B0349 180 | :108B3000003C627038181800183C4299A54539026B 181 | :108B40007CFCCCCCFFC3C3F3F33F3333FFC3C3C3BD 182 | :108B5000FFFFC303030F0FCFFF3FC3C3C3CFCFCF6D 183 | :108B60003FFF0F0F3F030303FFFF0F0F3F030303FD 184 | :108B700003FFC30303F3F3C3FFC3C3C3FFCFCFCFCD 185 | :108B8000CF0808083838383838202020E0E0E0E303 186 | :108B9000FFC3E3733FFFCFCFCF0303030F0F0F0FCD 187 | :108BA000FFC3CFFFFFC3C3C3C3C3C3CFFFFFF3C321 188 | :108BB000C3FFF3F3F3C3C3C3FFFFC3C3FF0F0F0F21 189 | :108BC0000FFFF3F3C3C32363DFFFC3C3FF3F3FCFF5 190 | :108BD000CFFFC303FFF0F0F3FFFF0C0C3C3C3C3C29 191 | :108BE0003CC3C3C3CFCFCFCFFFCFCFCFCFCFFF3C7F 192 | :108BF0000CC3C3C3C3FFFFCFC3C3C3C33C3CC3C386 193 | :108C0000C3F3F3F3FF3C3C3C3CFF8180F83F01C1E0 194 | :108C1000FF00C0D81C0C00060600DBDB00000000D3 195 | :108C20000000031B383000606006060018180006BC 196 | :098C300006606000181800606085 197 | :00000001FF -------------------------------------------------------------------------------- /atomix/res/atomix-level2.txt: -------------------------------------------------------------------------------- 1 | Level 30: 36_Blausaeure = hydrocyanic acid 2 | 3 | H 8,14,38,14,37,0, 30, 'HYDROCYANIC..',0, 4 | | 5 | C 6 | # 7 | N 8 | 9 | 01234567890123 10 | 0 #### 00111100 00000000 0x3c,0x00, 11 | 1 # #### 00100110 11000000 0x26,0xc0, 12 | 2 ## #### 00110000 01111000 0x30,0x78, 13 | 3 # N # # # ; N3N=37 00100010 01001000 0x22,0x48, 14 | 4 ### # # 00111010 00001000 0x3a,0x08, 15 | 5 # H ## ; HS=8 00100000 00011000 0x20,0x18, 16 | 6 ##C ## ; C3SN=38 00110000 00001100 0x30,0x0c, 17 | 7 ### # # 11100000 01000100 0xe0,0x44, 18 | 8 # ### ##### 10111000 01111100 0xb8,0x7c, 19 | 9 # # 10000000 00100000 0x80,0x20, 20 | 10########## 11111110 11100000 0xfe,0xe0, 21 | 11 0x00,0x00, 22 | 12 0x00,0x00, 23 | 01234567890123 24 | 25 | 37,4,3, 8,6,5, 38,4,6,0 26 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 27 | Level 31: Dichlorethen 28 | 29 | H Cl 11,3,25, 12,15,1,16, 12,18,3,13,0, 31, 'DICHLORETHEN',0 30 | \ / 31 | C=C 32 | / \ 33 | Cl H 34 | 35 | 01234567890123 36 | 0 ############## 11111110 11111110 0xfe,0xfe, 37 | 1 # l# # # ; ClNE=18 10001010 00000010 0x8a,0x02, 38 | 2 # C## # # ; C2WNESN=16 10001100 00010010 0x8c,0x12, 39 | 3 # # C# # ; C2ENWSW=15 10001000 00010010 0x88,0x12, 40 | 4 # # #### 10000010 00011110 0x82,0x1e, 41 | 5 # # 10000000 00010000 0x80,0x10, 42 | 6 # # # 10001000 00010000 0x88,0x10, 43 | 7 # # # 10001000 00010000 0x88,0x10, 44 | 8 # # # 10001000 00010000 0x88,0x10, 45 | 9 # # # l# ; ClSW=25 10001000 10010000 0x88,0x90, 46 | 10# # #H# ; HNW=13 10001000 01010000 0x88,0x50, 47 | 11# H# ## ; HSE=11 10001000 00110000 0x88,0x30, 48 | 12########### 11111110 11110000 0xfe,0xf0, 49 | 01234567890123 50 | 51 | 18,3,1, 16,3,2, 15,9,3, 25,9,9, 13,9,10, 11,9,11,0 52 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 53 | Level 32: Pyran 54 | 55 | H H 8,1,8, 13,39,1,40,2,12, 10,43,3,26, 12,41,1,42,2,13, 11,9,1,9,0, 32, 'PYRAN',0, 56 | | | 57 | C=C H 58 | / \ / 59 | O C 60 | \ / \ 61 | C=C H 62 | | | 63 | H H 64 | 65 | 01234567890123 ; 66 | 0 ####### ; 01111110 10000000 0x7e,0x80, 67 | 1 # # ; 01000000 10000000 0x40,0x80, 68 | 2 # C ###### ; C40 01000000 11111100 0x40,0xfc, 69 | 3 # ## #H # ; H12 01011000 10000100 0x58,0x84, 70 | 4 # OH C#### # ; O43 H8 C42 01000000 11110100 0x40,0xf4, 71 | 5 ### # # ; 01110000 10000100 0x70,0x84, 72 | 6 ## ## # C # ; C41 11011000 10000100 0xd8,0x84, 73 | 7 # #H # # ; H8 10000010 00100100 0x82,0x24, 74 | 8 # #H # ; H9 10000000 00100100 0x80,0x24, 75 | 9 # CH#H # ## # ; C39 H13 H9 10001000 10110100 0x88,0xb4, 76 | 10##### # # ; 11111000 10000100 0xf8,0x84, 77 | 11 # #C#### ; C10 00010000 10111100 0x10,0xbc, 78 | 12 ####### ; 00011110 11100000 0x1e,0xe0, 79 | 01234567890123 ; 80 | 81 | 40,4,2, 12,8,3, 43,3,4, 8,4,4, 42,6,4, 41,9,6, 8,7,7, 9,10,8, 39,2,9, 13,3,9, 9,5,9, 26,8,11,0, 82 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | Level 33: Cyclopentan 84 | 85 | H H 11,2,12, 11,11,2,26,2,12, 10,5,1,44,2,26, 11,5,1,10,1,45,2,13, 11,9,1,9,1,13,0, 33, 'CYCLOPENTAN',0, 86 | \ / 87 | \ / 88 | H C H 89 | \ / \ / 90 | \ / \ / 91 | H--C C 92 | | / \ 93 | | / \ 94 | H--C--C H 95 | | |\ 96 | | | \ 97 | H H H 98 | 99 | 01234567890123 100 | 0 ######## ; 01111110 11000000 0x7e,0xc0, 101 | 1 #H ##### ; H9 01000000 01111100 0x40,0x7c, 102 | 2 ## H# H # ; H5 H13 01100010 00000100 0x62,0x04, 103 | 3 # C#H###C # ; C26 H11 C44 01000100 11100100 0x44,0xe4, 104 | 4 # #### ; 01000000 00111100 0x40,0x3c, 105 | 5 # # ; 01000000 00010000 0x40,0x10, 106 | 6 ##H# H# # ; H5 H12 01101000 10010000 0x68,0x90, 107 | 7 ### ## # ; 00111010 10010000 0x3a,0x90, 108 | 8 ###CHC ### ; C10 H9 C45 11100000 00011100 0xe0,0x1c, 109 | 9 #H ## #H # ; H11 H13 10001100 01000100 0x8c,0x44, 110 | 10# C ##### ; C26 10000000 01111100 0x80,0x7c, 111 | 11# # H# ; H12 10100000 01000000 0xa0,0x40, 112 | 12######### ; 11111110 11000000 0xfe,0xc0, 113 | 01234567890123 114 | 115 | 9,2,1, 5,5,2, 13,9,2, 26,4,3, 11,6,3, 44,10,3, 5,3,6, 12,6,6, 10,4,8, 9,5,8, 45,6,8, 11,1,9, 13,9,9, 26,5,10, 12,7,11,0, 116 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | Level 34: Ethan 118 | 119 | H H H 11 8 12 11,1,8,1,12, 13,27, 14,46, 13,14,1,9,1,13,0, 34,'ETHAN',0, 120 | \|/ 121 | C 27 122 | | 123 | C 46 124 | /|\ 125 | H H H 14 9 13 126 | 127 | 01234567890123 128 | 0 ######### ; 00111110 11110000 0x3e,0xf0, 129 | 1 # H # ; H14 00100000 00010000 0x20,0x10, 130 | 2 # # # # ; 00100100 10010000 0x24,0x90, 131 | 3 #H C #### ; H8 C46 00100000 11110000 0x20,0xf0, 132 | 4 #####C #H# ; C27 H11 11111000 10100000 0xf8,0xa0, 133 | 5 # # # ; 10001000 00100000 0x88,0x20, 134 | 6 # # ; 10000000 00100000 0x80,0x20, 135 | 7 # H ###H ## ; H9 H13 10001110 00110000 0x8e,0x30, 136 | 8 ###H # # ; H12 11100000 10010000 0xe0,0x90, 137 | 9 # # ; 10000000 00010000 0x80,0x10, 138 | 10########### ; 11111110 11110000 0xfe,0xf0, 139 | 11 0x00,0x00, 140 | 12 0x00,0x00, 141 | 01234567890123 142 | 143 | 14,7,1, 8,3,3, 46,5,3, 27,5,4, 11,8,4, 9,2,7, 13,7,7, 12,3,8,0, 144 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | Level 35: Glykol 146 | 147 | H H H 11,2,12,2,12, 11,26,2,47, 11,47,2,26, 11,14,2,14,2,13,0, 35,'GLYKOL',0, 148 | \ / / 149 | C O 150 | / \ / 151 | O C 152 | / / \ 153 | H H H 154 | 155 | 012345678901203 156 | 0 ########## 00011110 11111100 0x1e,0xfc, 157 | 1 # O# # ; O47 00010000 00100100 0x10,0x24, 158 | 2 # # # # ; 00010100 00100100 0x14,0x24, 159 | 3 # # # ; 00010010 00000100 0x12,0x04, 160 | 4 #### # ## ; 11110000 10001100 0xf0,0x8c, 161 | 5 # C# C# # ; C26 C26 10001000 01000100 0x88,0x44, 162 | 6 # H#H # ## ; H11 H14 10000100 00101100 0x84,0x2c, 163 | 7 # # # H# # ; H12 10010010 00101000 0x92,0x28, 164 | 8 ##H## # ### ; H14 11011000 10111000 0xd8,0xb8, 165 | 9 # O # ; O47 01000000 00010000 0x40,0x10, 166 | 10 # # H # ; H13 01000010 00010000 0x42,0x10, 167 | 11 ###### H # ; H12 01111110 00010000 0x3e,0x10, 168 | 12 ##### 00000010 11110000 0x02,0xf0, 169 | 01234567890123 170 | 171 | 47,8,1, 26,3,5, 26,7,5, 11,4,6, 14,7,6, 12,8,7, 14,2,8, 47,6,9, 13,8,10, 12,8,11,0, 172 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 173 | Level 36: L-Alanin 174 | 175 | H H O 11,2,8,1,24, 11,5,1,48,1,10,1,23,1,6,1,7, 9,14,2,49, 13,14,2,13,0, 36,'L-ALANIN',0; 176 | \ | # 177 | H-C-C-C-O-H 178 | / | 179 | H N 180 | / \ 181 | H H 182 | 183 | 01234567890123 184 | 0 ############# 11111110 11111100 0xfe,0xfc, 185 | 1 # O C H # ; 06 C48 H8 10000000 00000100 0x80,0x04, 186 | 2 # #### ## # ; 10111100 01100100 0xbc,0x64, 187 | 3 # H H # ; H14 H14 10000000 00000100 0x80,0x04, 188 | 4 ## N # # ; N49 11000000 00010100 0xc0,0x14, 189 | 5 # # # #H # # ; H5 10010100 10010100 0x94,0x94, 190 | 6 # H # # # # ; H11 10000100 10010100 0x84,0x94, 191 | 7 #H# C # ; H7 C23 10100000 00000100 0xa0,0x04, 192 | 8 # # O # ; O24 10100000 00000100 0xa0,0x04, 193 | 9 # # #H ## ; H13 10000100 01001100 0x84,0x4c, 194 | 10# # # # # ; 10010100 01000100 0x94,0x44, 195 | 11# #C # # ; C10 10000100 01000100 0x84,0x44, 196 | 12############# 11111110 11111100 0xfe,0xfc, 197 | 01234567890123 198 | 199 | 6,2,1, 48,4,1, 8,8,1, 14,3,3, 14,10,3, 49,7,4, 5,8,5, 11,2,6, 7,1,7, 23,9,7, 24,7,8, 13,9,9, 10,6,11,0, 200 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | Level 37: Guanidin 202 | 203 | H H 11,3,8, 12,50,1,21,1,51,1,52, 10,14,2,53,2,37, 12,9,0, 37, 'GUANIDIN',0, 204 | \ | 205 | N-C-N-C 206 | / = # 207 | H N N 208 | | 209 | H 210 | 211 | 01234567890123 212 | 0 ########### 11111110 11110000 0xfe,0xf0, 213 | 1 # # # 10100000 00010000 0xa0,0x10, 214 | 2 #C###N N# # ; C52 N53 N50 10111000 01010000 0xb8,0x50, 215 | 3 # H # N # ; H14 N37 10000100 00010000 0x84,0x10, 216 | 4 #### ### ; 11110000 01110000 0xf0,0x10, 217 | 5 # N # ; N51 10000000 00010000 0x80,0x10, 218 | 6 #H #H###H# ; H8 H9 H11 10001010 11010000 0x8a,0xd0, 219 | 7 # C # ; C21 10000000 00010000 0x80,0x10, 220 | 8 ########### 11111110 11110000 0xfe,0xf0, 221 | 9 0x00,0x00, 222 | 10 0x00,0x00, 223 | 11 0x00,0x00, 224 | 12 0x00,0x00, 225 | 01234567890123 226 | 227 | 52,1,2, 53,5,2, 50,7,2, 14,3,3, 37,8,3, 51,6,5, 8,1,6, 9,5,6, 11,9,6, 21,7,7,0 228 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 229 | Level 38: Thiazol 230 | 231 | H H 11,3,12, 12,41,1,16, 13,54,2,55, 12,56,1,16, 15,13,0, 38, 'THIAZOL',0, 232 | \ / 233 | C=C 234 | | \ 235 | | S 236 | | / 237 | N=C 238 | \ 239 | H 240 | 241 | 01234567890123 242 | 0 ########### 01111110 11111000 0x7e,0xf8, 243 | 1 ## ## 11000000 00001100 0xc0,0x0c, 244 | 2 # # ### H # ; H11 10010010 11000100 0x92,0xc4, 245 | 3 # ## #H # # ; H13 10110010 00010100 0xb2,0x14, 246 | 4 #|# # ## # ; |54 10100010 00110100 0xa2,0x34, 247 | 5 # C # ; C16 10000000 00000100 0x80,0x04, 248 | 6 # ### C#### ; C16 10001110 00111100 0x8e,0x3c, 249 | 7 # #C#S #N # ; C41 S55 N56 10101000 01000100 0xa8,0x44, 250 | 8 #H# # # ; H12 10101000 00000100 0xa8,0x04, 251 | 9 # # # # 10100000 01000100 0xa0,0x44, 252 | 10# ## # 10000000 11000100 0x80,0xc4, 253 | 11## # ## 11000000 10001100 0xc0,0x8c, 254 | 12 ########### 01111110 11111000 0x7e,0xf8, 255 | 01234567890123 256 | 257 | 11,10,2, 13,7,3, 54,1,4, 16,10,5, 16,8,6, 41,3,7, 55,5,7, 56,9,7, 12,1,8,0, 258 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | Level 39: Saccharin 260 | 261 | O 24, 14,57,2,8,2,12, 8,5,1,34,2,41,1,61,1,59, 10,30,1,60,1,17,1,32,1,58, 11,22,2,9,2,13,0, 39, 'SACCHARIN',0, 262 | = 263 | C H H 264 | / \ | / 265 | H-N C=C-C 266 | \ | = 267 | O=S-C=C-C 268 | = | \ 269 | O H H 270 | 271 | 01234567890123 272 | 0 ##### 00000010 11110000 0x02,0xf0, 273 | 1 ######C#O### ; C58 O30 01111110 01011100 0x7e,0x5c, 274 | 2 #C O# # CH# ; C57 O24 C61 H12 01000010 01000100 0x42,0x44, 275 | 3 # H # ; H9 01000000 00000100 0x40,0x04, 276 | 4 #C#S # ; C59 S60 01010000 00000100 0x50,0x04, 277 | 5 ## # # # ; 11000010 01000100 0xc2,0x44, 278 | 6 # #H#H # ; H8 H5 10000010 01000100 0x82,0x44, 279 | 7 # H### ### # ; H13 10001110 01110100 0x8e,0x74, 280 | 8 # N # ; N34 10000000 00000100 0x80,0x04, 281 | 9 #### #O ### ; O22 11110000 10011100 0xf0,0x9c, 282 | 10 #C C # ; C32 C17 00010000 00010000 0x10,0x10, 283 | 11 ### C # ; C41 00011100 00010000 0x1c,0x10, 284 | 12 ###### 00000110 11110000 0x06,0xf0, 285 | 01234567890123 286 | 287 | 58,7,1, 30,9,1, 57,2,2, 24,5,2, 61,10,2, 12,11,2, 9,8,3, 59,2,4, 60,4,4, 8,7,6, 5,9,6, 13,3,7, 34,6,8, 22,8,9, 32,4,10, 17,8,10, 41,8,11,0, 288 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | Level 40: Styrol 290 | 291 | H H 11,3,12, 12,15,1,16,3,12, 9,14,3,64,1,59, 12,5,1,63,1,62,1,7, 12,39,1,40, 12,14,3,13,0, 40, 'STYROL',0, 292 | \ / 293 | C=C H 294 | / \ / 295 | H C-C 296 | = = 297 | H-C C-H 298 | | | 299 | C=C 300 | / \ 301 | H H 302 | 303 | 01234567890123 304 | 0 ########### 11111110 11110000 0xfe,0xf0, 305 | 1 # # # 10000000 01010000 0x80,0x50, 306 | 2 # C### C # ; C62 C63 10001110 00010000 0x8e,0x10, 307 | 3 # HH# # # ; H11 H12 10000010 01010000 0x82,0x50, 308 | 4 # HH H#H# ; H14 H13 H12 H5 10000000 01010000 0x80,0x50, 309 | 5 # C C ## # ; C40 C15 10000000 11010000 0x80,0xd0, 310 | 6 # ##H## C## ; H14 C64 10110110 00110000 0xb6,0x30, 311 | 7 # #C# # ; C16 10010100 00010000 0x94,0x10, 312 | 8 ##C# # H # ; C39 H7 11010100 00010000 0xd4,0x10, 313 | 9 # # C# ; C59 10000000 10010000 0x80,0x90, 314 | 10########### 11111110 11110000 0xfe,0xf0, 315 | 11 0x00,0x00, 316 | 12 0x00,0x00, 317 | 01234567890123 318 | 319 | 62,3,2, 63,8,2, 11,4,3, 12,5,3, 14,4,4, 13,5,4, 12,7,4, 5,1,4, 40,3,5, 15,5,5, 14,4,6, 64,8,6, 16,4,7, 39,2,8, 7,7,8, 59,9,9,0, 320 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Level 41: Melamin 322 | 323 | H H 8,4,8, 9,5,1,51,1,21,1,67,1,21,1,51,1,7, 10,66,1,10,1,65, 13,49, 13,14,2,13,0, 41, 'MELAMIN',0, 324 | | | 325 | H-N-C-N-C-N-H 326 | = | = 327 | N-C-N 328 | | 329 | N 330 | / \ 331 | H H 332 | 333 | 01234567890123 334 | 0 #### #### 11110000 00111100 0xf0,0x3c, 335 | 1 # #######N # ; N51 10011110 11100100 0x9f,0xf4, 336 | 2 #N # H# ; N49 H14 10000010 00000100 0x82,0x04, 337 | 3 ## # C# # ## ; C21 11010010 00101100 0xd2,0x2c, 338 | 4 # # ; 01000000 00001000 0x40,0x08, 339 | 5 # H H # ; H8 H8 01000000 00001000 0x40,0x08, 340 | 6 ### HNH ### ; H5 N51 H7 01110000 00111000 0x70,0x38, 341 | 7 #N # ; N67 01000000 00001000 0x40,0x08, 342 | 8 # C N# ; C21 N65 01000000 00001000 0x40,0x08, 343 | 9 ## # #N # ## ; N66 11010010 00101100 0xd2,0x2c, 344 | 10# #C # ; C10 10000010 00000100 0x82,0x04, 345 | 11#H ####### # ; H13 10011110 11100100 0x9e,0xe4, 346 | 12#### #### 11110000 00111100 0xf0,0x3c, 347 | 01234567890123 348 | 349 | 51,10,1, 49,1,2, 14,11,2, 21,5,3, 8,6,5, 8,9,5, 5,5,6, 51,6,6, 7,7,6, 67,2,7, 21,6,8, 65,10,8, 66,7,9, 10,7,10, 13,1,11,0, 350 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Level 42: Cyclobutan 352 | 353 | H H 8,1,8, 12,5,1,10,1,10,1,7, 11,5,1,10,1,10,1,7, 12,9,1,9,0, 42, 'CYCLOBUTAN',0, 354 | | | 355 | H-C-C-H 356 | | | 357 | H-C-C-H 358 | | | 359 | H H 360 | 361 | 01234567890123 362 | 0 ######## 11111110 10000000 0xfe,0x80, 363 | 1 # H ## ; H5 10000000 11000000 0x80,0xc0, 364 | 2 ##H ## H### ; H7 H9 11001100 01110000 0xcc,0x70, 365 | 3 ## C # ; C10 01100000 00010000 0x60,0x10, 366 | 4 # # # ; 00101000 00010000 0x28,0x10, 367 | 5 ##H## #C# ; H5 C10 01101100 01010000 0x6c,0x50, 368 | 6 # H#H### ; H7 H8 01000010 01110000 0x42,0x70, 369 | 7 # # # ; 01000000 01010000 0x40,0x50, 370 | 8 #C C H# ; C10 C10 H8 01000000 00010000 0x40,0x10, 371 | 9 #H # ### # ; H9 01001010 11010000 0x4a,0xd0, 372 | 10 ###### ### 01111110 01110000 0x7e,0x70, 373 | 11 0x00,0x00, 374 | 12 0x00,0x00, 375 | 01234567890123 376 | 377 | 5,4,1, 7,2,2, 9,7,2, 10,4,3, 5,3,5, 10,4,5, 7,5,6, 8,7,6, 10,2,8, 10,6,8, 8,9,8, 9,2,9,0, 378 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 379 | -------------------------------------------------------------------------------- /2048/2048.asm: -------------------------------------------------------------------------------- 1 | #org 0xc30c ViewPort: 2 | #org 0xd51f leftUpperCorner: 3 | 4 | #org 0x2000 5 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Start ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 | begin: LDI 0xfe STA 0xffff ; SP initialize 7 | JPS printHelp 8 | JPS _WaitInput 9 | CPI 'q' 10 | BEQ _Start 11 | CPI 'Q' 12 | BEQ _Start 13 | newGame: 14 | JPS _Clear 15 | JPS clrArray 16 | CLB gameWin 17 | CLB flagM 18 | JPS addNum 19 | JPS addNum 20 | JPS printTitle 21 | gameLoop: 22 | JPS printArray 23 | JPS checkArray ; there are still free fields 24 | CPI 0x00 ; 0 = no free field 25 | BEQ gNoField 26 | LDA flagM 27 | CPI 0x00 28 | BEQ gNoAdd 29 | JPS addNum 30 | JPS checkArray ; there are still free fields 31 | CPI 0x00 ; 0 = no free field 32 | BEQ gNoField 33 | gNoAdd: CLB flagM 34 | JPA gameL1 35 | gNoField: 36 | JPS chkMove ; no space left, is there still a way to push? 37 | CPI 0x00 ; <>0 Move is possible 38 | BEQ gameOver ; Pushing not possible 39 | gameL1: LDA gameWin ; Flag game won 40 | CPI 0x00 41 | BNE gameOver 42 | JPS _WaitInput 43 | CPI 'n' 44 | BEQ newGame 45 | CPI 'N' 46 | BEQ newGame 47 | 48 | CPI 'q' 49 | BEQ _Start 50 | CPI 'Q' 51 | BEQ _Start 52 | 53 | CPI 0xe1 54 | BEQ key_up 55 | CPI 'i' 56 | BEQ key_up 57 | CPI 'I' 58 | BEQ key_up 59 | 60 | CPI 0xe2 61 | BEQ key_down 62 | CPI 'm' 63 | BEQ key_down 64 | CPI 'M' 65 | BEQ key_down 66 | 67 | CPI 0xe3 68 | BEQ key_left 69 | CPI 'j' 70 | BEQ key_left 71 | CPI 'J' 72 | BEQ key_left 73 | 74 | CPI 0xe4 75 | BEQ key_right 76 | CPI 'k' 77 | BEQ key_right 78 | CPI 'K' 79 | BEQ key_right 80 | 81 | JPA gNoAdd 82 | key_up: 83 | LDI 4 STA delta 84 | LDI 0 STA idxA JPS chkField 85 | LDI 1 STA idxA JPS chkField 86 | LDI 2 STA idxA JPS chkField 87 | LDI 3 STA idxA JPS chkField 88 | JPA gameLoop 89 | key_down: 90 | LDI -4 STA delta 91 | LDI 12 STA idxA JPS chkField 92 | LDI 13 STA idxA JPS chkField 93 | LDI 14 STA idxA JPS chkField 94 | LDI 15 STA idxA JPS chkField 95 | JPA gameLoop 96 | key_right: 97 | LDI -1 STA delta 98 | LDI 3 STA idxA JPS chkField 99 | LDI 7 STA idxA JPS chkField 100 | LDI 11 STA idxA JPS chkField 101 | LDI 15 STA idxA JPS chkField 102 | JPA gameLoop 103 | key_left: 104 | LDI 1 STA delta 105 | LDI 0 STA idxA JPS chkField 106 | LDI 4 STA idxA JPS chkField 107 | LDI 8 STA idxA JPS chkField 108 | LDI 12 STA idxA JPS chkField 109 | JPA gameLoop 110 | 111 | gameOver: 112 | LDI 13 STA _XPos LDI 3 STA _YPos 113 | JPS printLine 114 | ' *********** ', 0x00, 115 | LDA gameWin 116 | CPI 0x00 117 | BNE winner 118 | LDI 13 STA _XPos INB _YPos 119 | JPS printLine 120 | '* GAME OVER *', 0x00, 121 | JPA gameOv1 122 | winner: LDI 13 STA _XPos INB _YPos 123 | JPS printLine 124 | '* YOU WIN *', 0x00, 125 | gameOv1: 126 | LDI 13 STA _XPos INB _YPos 127 | JPS printLine 128 | ' *********** ', 0x00, 129 | JPS _WaitInput 130 | CPI 'q' 131 | BEQ _Start 132 | CPI 'Q' 133 | BEQ _Start 134 | JPA newGame 135 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | printHelp: 137 | JPS _Clear 138 | JPS printTitle 139 | 140 | LDI 3 STA _XPos INB _YPos INB _YPos INB _YPos 141 | JPS printLine 142 | 'USE CURSOR KEYS OR I,J,K,M TO MOVE', 0x00, 143 | LDI 10 STA _XPos INB _YPos INB _YPos 144 | JPS printLine 145 | 'N RESTARTS THE GAME', 0x00, 146 | LDI 12 STA _XPos INB _YPos INB _YPos 147 | JPS printLine 148 | 'Q QUIT THE GAME', 0x00, 149 | 150 | LDI 9 STA _XPos INB _YPos INB _YPos INB _YPos 151 | JPS printLine 152 | 'PRESS ANY KEY TO PLAY', 0x00, 153 | RTS 154 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 155 | printTitle: 156 | LDI 12 STA _XPos LDI 2 STA _YPos 157 | JPS printLine 158 | '2048 PUZZLE GAME', 0x00, 159 | RTS 160 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | ; Output A=1 Move possible A=0 no move possible 162 | chkMove: 163 | LDI 1 STA delta 164 | LDI 0 STA idxA JPS chkLine 165 | CPI 0x00 BNE retTrue 166 | LDI 4 STA idxA JPS chkLine 167 | CPI 0x00 BNE retTrue 168 | LDI 8 STA idxA JPS chkLine 169 | CPI 0x00 BNE retTrue 170 | LDI 12 STA idxA JPS chkLine 171 | CPI 0x00 BNE retTrue 172 | LDI 4 STA delta 173 | LDI 0 STA idxA JPS chkLine 174 | CPI 0x00 BNE retTrue 175 | LDI 1 STA idxA JPS chkLine 176 | CPI 0x00 BNE retTrue 177 | LDI 2 STA idxA JPS chkLine 178 | CPI 0x00 BNE retTrue 179 | LDI 3 STA idxA JPS chkLine 180 | RTS 181 | chkLine: ; 182 | LDA idxA STA idxL STA idxB 183 | LDA delta ADB idxB ; idxB is the successor of idxA 184 | LDA delta LSL ADA delta ADB idxL ; idxL is last index 185 | chkL1: LDA idxA PHS JPS loadArray PLS ; array(idxA) 186 | STA tmp01 187 | LDA idxB PHS JPS loadArray PLS ; array(idxB) 188 | CPA tmp01 ; CMP array(idxB), array(idxA) 189 | BEQ retTrue ; if equal, then done Move is possible 190 | LDA delta ADB idxB ; 191 | LDA delta ADB idxA 192 | LDA idxA 193 | CPA idxL 194 | BNE chkL1 195 | LDI 0 196 | RTS 197 | retTrue: LDI 1 198 | RTS 199 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | ; input: idxA = start; delta= delta 201 | chkField: 202 | LDA idxA STA idxL 203 | LDA delta LSL ADA delta ADB idxL ; indL is last index 204 | chkLoop: 205 | LDA idxA STA idxB 206 | CPA idxL ; last index reached? 207 | BEQ chkRTS ; idxA at the end 208 | LDA delta ADB idxB ; idxB is the successor of idxA 209 | chk01: LDA idxA PHS JPS loadArray PLS ; A = array(idxA) 210 | CPI 0x00 211 | BNE chk04 212 | ; array(idxA) = leer 213 | chk01a: LDA idxB PHS JPS loadArray PLS ; A = array(idxB) 214 | CPI 0x00 215 | BNE chk01b ; Content there to be moved 216 | ; array(idxB) = leer 217 | LDA idxB 218 | CPA idxL 219 | BEQ chkRTS ; nothing more until the end 220 | LDA delta ADB idxB ; idxB one field further 221 | JPA chk01a 222 | 223 | chk01b: PHS LDA idxA PHS JPS storeArray PLS PLS ; Move to empty field array(idxA) = array(idxB) 224 | chk02: INB flagM 225 | LDI 0x00 226 | PHS LDA idxB PHS JPS storeArray PLS PLS ; array(idxB) = 0 227 | JPA chkLoop 228 | ; array(idxA) = Value 229 | chk04: STA tmp01 ; array(idxA) remember 230 | chk05: LDA idxB PHS JPS loadArray PLS ; A = array(idxB) 231 | CPI 0x00 232 | BNE chk06 233 | LDA idxB 234 | CPA idxL 235 | BEQ chkRTS 236 | LDA delta ADB idxB 237 | JPA chk05 238 | 239 | chk06: CPA tmp01 240 | BNE chk07 241 | LDA idxA PHS JPS incArray PLS 242 | CPI 11 243 | BNE chk09 ; not 2048 reached 244 | LDI 0x01 ; Game Over Winner 245 | STA gameWin 246 | chk09: LDA delta ADB idxA 247 | JPA chk02 248 | chk07: LDA delta ADB idxA 249 | JPA chkLoop 250 | chkRTS: RTS 251 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | ; input: PHS arrayValue; PHS arrayIndex 253 | storeArray: 254 | LDI array STA storeA1+2 256 | LDS 3 257 | ADW storeA1+1 258 | LDS 4 259 | storeA1: 260 | STA 0xffff 261 | RTS 262 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 263 | ; input: PHS = arrayIndex output: A = arrayValue 264 | loadArray: 265 | LDI array STA loadA1+2 267 | LDS 3 268 | ADW loadA1+1 269 | loadA1: LDA 0xffff 270 | STS 3 271 | RTS 272 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 273 | ; input: PHS = arrayIndex 274 | incArray: 275 | LDI array STA incA1+2 277 | LDS 3 278 | ADW incA1+1 279 | incA1: INB 0xffff 280 | STS 3 281 | RTS 282 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | addNum: 284 | addN1: JPS _Random 285 | ANI 0x0f 286 | STA fieldId 287 | LTA array 288 | CPI 0x00 289 | BNE addN1 290 | LDI array 293 | STA addN3+2 294 | LDA fieldId 295 | ADW addN3+1 296 | JPS _Random 297 | ANI 0x03 298 | CPI 0x03 299 | BNE addN2 300 | LDI 0x02 301 | JPA addN3 302 | addN2: LDI 0x01 303 | addN3: STA 0xffff 304 | STA sprId 305 | JPS print24x24 306 | RTS 307 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | ; output: A = Number of empty fields 309 | checkArray: 310 | LDI 15 311 | STA fieldId 312 | CLB count2 313 | LDI array STA checkA1+2 315 | checkA1: 316 | LDA 0xffff 317 | CPI 0x00 318 | BNE checkA2 319 | INB count2 320 | checkA2: 321 | INW checkA1+1 322 | DEB fieldId 323 | BPL checkA1 324 | LDA count2 325 | RTS 326 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | printArray: 328 | LDI 15 329 | STA fieldId 330 | beg1: LDA fieldId 331 | LTA array 332 | STA sprId 333 | JPS print24x24 334 | DEB fieldId 335 | BPL beg1 336 | RTS 337 | 338 | clrArray: 339 | LDI array 342 | STA clrAr1+2 343 | LDI 16 344 | STA count1 345 | clrAr1: CLB 0xffff 346 | INW clrAr1+1 347 | DEB count1 348 | BNE clrAr1 349 | RTS 350 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | ; 24x24 Output pixel graphics in the playing field, aligned with a byte boundary 352 | ; Input (fieldId) 353 | print24x24: 354 | LDA fieldId 355 | LSL ; A = 2 * A 356 | TAX ; X = A 357 | LTX coordinates 358 | STA adress+0 ;{{sprite addr lo}} 359 | INX 360 | LTX coordinates 361 | STA adress+1 ;{{sprite addr hi}} 362 | 363 | LDA sprId 364 | LSL ; A = 2 * A 365 | TAX ; X = A 366 | LTX spriteAddr16 367 | STA spoint+0 ;{{sprite addr lo}} 368 | INX 369 | LTX spriteAddr16 370 | STA spoint+1 ;{{sprite addr hi}} 371 | 372 | LDI 24 373 | STA count1 374 | 375 | p24x24: LDR spoint 376 | STR adress 377 | INW spoint 378 | INW adress 379 | LDR spoint 380 | STR adress 381 | INW spoint 382 | INW adress 383 | LDR spoint 384 | STR adress 385 | INW spoint 386 | LDI 62 387 | ADW adress 388 | DEB count1 389 | BNE p24x24 390 | RTS 391 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | ; Top left corner of each 4x4 playing field tile 393 | coordinates: 394 | leftUpperCorner, leftUpperCorner+3, leftUpperCorner+6, leftUpperCorner+9, 395 | leftUpperCorner+1536, leftUpperCorner+1536+3, leftUpperCorner+1536+6, leftUpperCorner+1536+9, 396 | leftUpperCorner+3072, leftUpperCorner+3072+3, leftUpperCorner+3072+6, leftUpperCorner+3072+9, 397 | leftUpperCorner+4608, leftUpperCorner+4608+3, leftUpperCorner+4608+6, leftUpperCorner+4608+9, 398 | ; Table for faster sprite access 399 | spriteAddr16: 400 | empty, 401 | spr02, 402 | spr04, 403 | spr08, 404 | spr16, 405 | spr32, 406 | spr64, 407 | spr128, 408 | spr256, 409 | spr512, 410 | spr1024, 411 | spr2048, 412 | ; Sprite Daten 413 | empty: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 414 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 415 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 416 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 417 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 418 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 419 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 420 | 0x02,0x00,0x40,0xfc,0xff,0x3f,0x00,0x00,0x00, 421 | spr02: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 422 | 0x0a,0x00,0x68,0xc6,0xff,0x43,0xe2,0xff,0x47, 423 | 0x72,0x00,0x4e,0x02,0x00,0x4c,0x02,0x00,0x4c, 424 | 0x02,0x00,0x4c,0xc2,0xff,0x4f,0xe2,0xff,0x47, 425 | 0xf2,0xff,0x43,0x72,0x00,0x40,0x32,0x00,0x40, 426 | 0x32,0x00,0x40,0x32,0x00,0x40,0x72,0x00,0x4e, 427 | 0xf2,0xff,0x47,0xf6,0xff,0x43,0x0a,0x00,0x60, 428 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 429 | spr04: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 430 | 0x0a,0x80,0x6a,0x06,0x07,0x55,0x02,0x07,0x68, 431 | 0x82,0x03,0x50,0x82,0x01,0x60,0xc2,0x01,0x50, 432 | 0xc2,0x00,0x60,0xe2,0xc0,0x41,0x62,0xc0,0x41, 433 | 0x72,0xc0,0x41,0x32,0xc0,0x41,0xf2,0xff,0x4f, 434 | 0xf2,0xff,0x4f,0xe2,0xff,0x4f,0x02,0xc0,0x41, 435 | 0x02,0xc0,0x41,0x06,0xc0,0x41,0x0a,0x00,0x60, 436 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 437 | spr08: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 438 | 0x0a,0x00,0x68,0xc6,0xff,0x53,0xe2,0xff,0x67, 439 | 0x72,0x00,0x4e,0x32,0x00,0x6c,0x32,0x00,0x4c, 440 | 0x62,0x00,0x4e,0xc2,0xff,0x47,0xc2,0xff,0x43, 441 | 0xe2,0xff,0x43,0x72,0x00,0x46,0x32,0x00,0x4c, 442 | 0x32,0x00,0x4c,0x32,0x00,0x4c,0x72,0x00,0x4e, 443 | 0xe2,0xff,0x47,0xc6,0xff,0x43,0x0a,0x00,0x60, 444 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 445 | spr16: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 446 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 447 | 0x56,0x55,0x55,0x02,0x00,0x60,0xf2,0xf0,0x4f, 448 | 0xf2,0x30,0x4c,0xc2,0x30,0x40,0xc2,0x30,0x40, 449 | 0xc2,0xf0,0x4f,0xc2,0x30,0x4f,0xf2,0x33,0x4f, 450 | 0xf2,0xf3,0x4f,0x02,0x00,0x60,0x56,0x55,0x55, 451 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 452 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 453 | spr32: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 454 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 455 | 0x56,0x55,0x55,0x02,0x00,0x60,0xfa,0xe7,0x5f, 456 | 0x1a,0x66,0x58,0x02,0x06,0x58,0xe2,0xe7,0x5f, 457 | 0x02,0x66,0x40,0x02,0x66,0x40,0x1a,0x66,0x58, 458 | 0xfa,0xe7,0x5f,0x02,0x00,0x60,0x56,0x55,0x55, 459 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 460 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 461 | spr64: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 462 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 463 | 0x56,0x55,0x55,0x02,0x00,0x60,0xfa,0xe7,0x59, 464 | 0x1a,0xe6,0x59,0x1a,0xe0,0x59,0x1a,0xe0,0x5f, 465 | 0xfa,0x07,0x58,0x9a,0x07,0x58,0x9a,0x07,0x58, 466 | 0xfa,0x07,0x58,0x02,0x00,0x60,0x56,0x55,0x55, 467 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 468 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 469 | spr128: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 470 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 471 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x02,0x00,0x40, 472 | 0x22,0x1c,0x47,0x32,0xa2,0x48,0x2a,0xa0,0x48, 473 | 0x22,0x1c,0x47,0x22,0x82,0x48,0x22,0x82,0x48, 474 | 0xfa,0x3e,0x47,0x02,0x00,0x40,0xaa,0xaa,0x6a, 475 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 476 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 477 | spr256: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 478 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 479 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x02,0x00,0x40, 480 | 0x72,0x3e,0x47,0x8a,0x82,0x40,0x82,0x9e,0x40, 481 | 0x72,0xa0,0x47,0x0a,0xa0,0x48,0x0a,0xa2,0x48, 482 | 0xfa,0x1c,0x47,0x02,0x00,0x40,0xaa,0xaa,0x6a, 483 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 484 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 485 | spr512: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 486 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 487 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x02,0x00,0x40, 488 | 0xf2,0x11,0x4e,0x12,0x18,0x51,0xf2,0x14,0x50, 489 | 0x02,0x11,0x4e,0x02,0x11,0x41,0x12,0x11,0x41, 490 | 0xe2,0x7c,0x5f,0x02,0x00,0x40,0xaa,0xaa,0x6a, 491 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 492 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 493 | spr1024: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 494 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 495 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x06,0x00,0x50, 496 | 0x02,0x00,0x40,0x22,0x32,0x45,0x32,0x45,0x45, 497 | 0x22,0x25,0x47,0x22,0x15,0x44,0x72,0x72,0x44, 498 | 0x02,0x00,0x40,0x06,0x00,0x50,0xaa,0xaa,0x6a, 499 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 500 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 501 | spr2048: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 502 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 503 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x06,0x00,0x50, 504 | 0x02,0x00,0x40,0x32,0x52,0x47,0x42,0x55,0x45, 505 | 0x22,0x75,0x47,0x12,0x45,0x45,0x72,0x42,0x47, 506 | 0x02,0x00,0x40,0x06,0x00,0x50,0xaa,0xaa,0x6a, 507 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 508 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 509 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | ; Outputs the text immediately after JPS 511 | ; must be terminated 0 512 | printLine: 513 | LDS 1 514 | STA ptr1+1 515 | LDS 2 516 | STA ptr1+0 517 | INW ptr1 518 | INW ptr1 519 | pL1: LDR ptr1 520 | CPI 0x00 521 | BNE pL2 522 | DEW ptr1 523 | LDA ptr1+0 524 | STS 2 525 | LDA ptr1+1 526 | STS 1 527 | RTS 528 | pL2: PHS JPS printCharXY PLS 529 | INW ptr1 530 | JPA pL1 531 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 532 | ; PHS Char 533 | ; outputs a character at the position _XPos(0..39), _YPos (0..23) grid 10x10 pixel 534 | ; _XPos and _YPos are updated, there is no scrolling 535 | printCharXY: 536 | CLB xpos16+1 537 | LDA _XPos 538 | LSL 539 | STA xpos16+0 ; xpos16 = _XPos * 2 540 | PHS ; memorize _XPos * 2 541 | LLW xpos16 ; xpos16 = _XPos * 4 542 | LLW xpos16 ; xpos16 = _XPos * 8 543 | PLS ; Restore _XPos * 2 544 | ADW xpos16 ; xpos16 = _XPos * 8 + _XPos * 2 = _XPos * 10 545 | LDA xpos16+0x00 546 | PHS ; XPos low 547 | LDA xpos16+0x01 548 | PHS ; XPos hight 549 | LDA _YPos 550 | LSL 551 | STA ypos8 552 | LL2 553 | ADA ypos8 554 | PHS ; yPos = _YPos* 10 555 | LDS 6 ; Char is LDS 3+3 556 | PHS 557 | JPS printChar 558 | PLS PLS PLS PLS 559 | INB _XPos 560 | LDA _XPos 561 | CPI 40 562 | BCC pCxy1 563 | CLB _XPos 564 | INB _YPos 565 | LDA _YPos 566 | CPI 24 567 | BCC pCxy1 568 | CLB _YPos 569 | pCxy1: RTS 570 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 571 | ; print char 0x20..0x5f 572 | ; PHS: xLow, xHiht, y, char 573 | printChar: 574 | LDS 4 ; Y 575 | LL6 STA vAddr+0 ; 576 | LDS 4 ; Y 577 | RL7 ANI 63 ADI >ViewPort STA vAddr+1 578 | LDS 5 ; Xhight 579 | DEC 580 | LDS 6 ; Xlow 581 | RL6 ANI 63 ADI 12 ORB vAddr+0 582 | LDS 6 ANI 7 STA shift ; Xlow 583 | LDI 10 STA lineCnt ; scnt loop counter 8 byte + 2 byte space 584 | LDS 3 ; char 585 | CPI 0x60 586 | BCS rPCrts ; char > 0x5f 587 | SBI 0x20 588 | BCC rPCrts ; char < 0x20 589 | STA spritePtr+0 590 | CLB spritePtr+1 ; spritePtr=(char-' ') 591 | LLW spritePtr ; *2 592 | LLW spritePtr ; *4 593 | LLW spritePtr ; *8 8 bytes per character 594 | LDI alphaNumSprites 597 | ADB spritePtr+1 598 | DEW spritePtr 599 | clineloop: 600 | LDA lineCnt 601 | CPI 10 602 | BEQ cl1 603 | CPI 1 604 | BEQ cl1 605 | INW spritePtr 606 | LDR spritePtr 607 | JPA cl2 608 | cl1: LDI 0x00 609 | cl2: STA buffer+0 610 | CLB buffer+1 611 | CLB buffer+2 612 | CLB mask+0 613 | LDI 0xfc 614 | STA mask+1 615 | LDI 0xff 616 | STA mask+2 617 | LYA shift ; shift counter 618 | DEY ; X coordinate 619 | BCC cshiftdone 620 | cshiftloop: 621 | LLW buffer+0 ; logical shift to the left word absolute vAddress 622 | RLB buffer+2 ; rotate shift left byte absolute vAddress 623 | SEC 624 | RLW mask+0 625 | RLB mask+2 626 | DEY 627 | BCS cshiftloop ; branch on carry Set 628 | cshiftdone: 629 | LDA mask+0 630 | ANR vAddr 631 | STR vAddr 632 | LDA buffer+0 633 | ORR vAddr 634 | STR vAddr 635 | INW vAddr 636 | LDA mask+1 637 | ANR vAddr 638 | STR vAddr 639 | LDA buffer+1 640 | ORR vAddr 641 | STR vAddr 642 | INW vAddr 643 | LDA mask+2 644 | ANR vAddr 645 | STR vAddr 646 | LDA buffer+2 647 | ORR vAddr 648 | STR vAddr 649 | ccommon: LDI 62 650 | ADW vAddr 651 | DEB lineCnt 652 | BNE clineloop 653 | rPCrts: RTS 654 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | alphaNumSprites: 656 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ; 0x20 space 657 | 0x38,0x38,0x38,0x38,0x20,0x20,0x00,0x30, ; 0x21 ! 658 | 0x00,0x36,0x36,0x24,0x00,0x00,0x00,0x00, ; 0x22 " 659 | 0x66,0xff,0xff,0x66,0x66,0xff,0xff,0x66, ; 0x23 # 660 | 0x18,0x7e,0x03,0x7e,0xe0,0xe0,0x7e,0x18, ; 0x24 $ 661 | 0xc7,0xe5,0x77,0x38,0x1c,0xee,0xa7,0xe3, ; 0x25 % 662 | 0x06,0x09,0x09,0x46,0x6d,0x11,0x71,0xce, ; 0x26 & 663 | 0x00,0x0c,0x0c,0x08,0x00,0x00,0x00,0x00, ; 0x27 ' 664 | 0x38,0x1c,0x0e,0x0e,0x0e,0x0e,0x1c,0x38, ; 0x28 ( 665 | 0x1c,0x38,0x70,0x70,0x70,0x70,0x38,0x1c, ; 0x29 ) 666 | 0x99,0x5a,0x3c,0xff,0xff,0x3c,0x5a,0x99, ; 0x2a * 667 | 0x18,0x18,0x18,0xff,0xff,0x18,0x18,0x18, ; 0x2b + 668 | 0x00,0x00,0x00,0x00,0x0c,0x0c,0x08,0x04, ; 0x2c , 669 | 0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00, ; 0x2d - 670 | 0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00, ; 0x2e . 671 | 0xc0,0xe0,0x70,0x38,0x1c,0x0e,0x07,0x03, ; 0x2f / 672 | 0xff,0xc3,0xc3,0xc3,0xf3,0xf3,0xf3,0xff, ; 0x30 0 673 | 0x1e,0x1e,0x18,0x18,0x18,0x18,0x7e,0x7e, ; 0x31 1 674 | 0xff,0xc3,0xc0,0xff,0x03,0x03,0xf3,0xff, ; 0x32 2 675 | 0xff,0xc3,0xc0,0xfc,0xc0,0xc0,0xc3,0xff, ; 0x33 3 676 | 0xcf,0xcf,0xcf,0xff,0xc0,0xc0,0xc0,0xc0, ; 0x34 4 677 | 0xff,0x03,0x03,0xff,0xf0,0xf0,0xf0,0xff, ; 0x35 5 678 | 0xff,0xc3,0x03,0xff,0xe3,0xe3,0xe3,0xff, ; 0x36 6 679 | 0xff,0xf0,0xf0,0xf0,0x3c,0x0c,0x0c,0x0c, ; 0x37 7 680 | 0xfc,0xcc,0xcc,0xff,0xc3,0xc3,0xc3,0xff, ; 0x38 8 681 | 0xff,0xc3,0xc3,0xff,0xf0,0xf0,0xf0,0xf0, ; 0x39 9 682 | 0x00,0x0c,0x0c,0x00,0x00,0x0c,0x0c,0x00, ; 0x3a : 683 | 0x00,0x18,0x18,0x00,0x18,0x18,0x10,0x08, ; 0x3b ; 684 | 0x06,0x06,0x00,0x0c,0x1c,0xd8,0xc0,0x00, ; 0x3c < ;other use 685 | 0x00,0x00,0x00,0x00,0x00,0xdb,0xdb,0x00, ; 0x3d = ;other use 686 | 0x60,0x60,0x00,0x30,0x38,0x1b,0x03,0x00, ; 0x3e > ;other use 687 | 0x3c,0x62,0x70,0x38,0x18,0x18,0x00,0x18, ; 0x3f ? 688 | 0x3c,0x42,0x99,0xa5,0x45,0x39,0x02,0x7c, ; 0x40 @ 689 | 0xfc,0xcc,0xcc,0xff,0xc3,0xc3,0xf3,0xf3, ; 0x41 A 690 | 0x3f,0x33,0x33,0xff,0xc3,0xc3,0xc3,0xff, ; 0x42 B 691 | 0xff,0xc3,0x03,0x03,0x0f,0x0f,0xcf,0xff, ; 0x43 C 692 | 0x3f,0xc3,0xc3,0xc3,0xcf,0xcf,0xcf,0x3f, ; 0x44 D 693 | 0xff,0x0f,0x0f,0x3f,0x03,0x03,0x03,0xff, ; 0x45 E 694 | 0xff,0x0f,0x0f,0x3f,0x03,0x03,0x03,0x03, ; 0x46 F 695 | 0xff,0xc3,0x03,0x03,0xf3,0xf3,0xc3,0xff, ; 0x47 G 696 | 0xc3,0xc3,0xc3,0xff,0xcf,0xcf,0xcf,0xcf, ; 0x48 H 697 | 0x08,0x08,0x08,0x38,0x38,0x38,0x38,0x38, ; 0x49 I 698 | 0x20,0x20,0x20,0xe0,0xe0,0xe0,0xe3,0xff, ; 0x4a J 699 | 0xc3,0xe3,0x73,0x3f,0xff,0xcf,0xcf,0xcf, ; 0x4b K 700 | 0x03,0x03,0x03,0x0f,0x0f,0x0f,0x0f,0xff, ; 0x4c L 701 | 0xc3,0xcf,0xff,0xff,0xc3,0xc3,0xc3,0xc3, ; 0x4d M 702 | 0xc3,0xc3,0xcf,0xff,0xff,0xf3,0xc3,0xc3, ; 0x4e N 703 | 0xff,0xf3,0xf3,0xf3,0xc3,0xc3,0xc3,0xff, ; 0x4f O 704 | 0xff,0xc3,0xc3,0xff,0x0f,0x0f,0x0f,0x0f, ; 0x50 P 705 | 0xff,0xf3,0xf3,0xc3,0xc3,0x23,0x63,0xdf, ; 0x51 Q 706 | 0xff,0xc3,0xc3,0xff,0x3f,0x3f,0xcf,0xcf, ; 0x52 R 707 | 0xff,0xc3,0x03,0xff,0xf0,0xf0,0xf3,0xff, ; 0x53 S 708 | 0xff,0x0c,0x0c,0x3c,0x3c,0x3c,0x3c,0x3c, ; 0x54 T 709 | 0xc3,0xc3,0xc3,0xcf,0xcf,0xcf,0xcf,0xff, ; 0x55 U 710 | 0xcf,0xcf,0xcf,0xcf,0xcf,0xff,0x3c,0x0c, ; 0x56 V 711 | 0xc3,0xc3,0xc3,0xc3,0xff,0xff,0xcf,0xc3, ; 0x57 W 712 | 0xc3,0xc3,0xc3,0x3c,0x3c,0xc3,0xc3,0xc3, ; 0x58 X 713 | 0xf3,0xf3,0xf3,0xff,0x3c,0x3c,0x3c,0x3c, ; 0x59 Y 714 | 0xff,0x81,0x80,0xf8,0x3f,0x01,0xc1,0xff, ; 0x5a Z 715 | 0x00,0xc0,0xd8,0x1c,0x0c,0x00,0x06,0x06, ; 0x5b [ ;other use 716 | 0x00,0xdb,0xdb,0x00,0x00,0x00,0x00,0x00, ; 0x5c \ ;other use 717 | 0x00,0x03,0x1b,0x38,0x30,0x00,0x60,0x60, ; 0x5d ] ;other use 718 | 0x06,0x06,0x00,0x18,0x18,0x00,0x06,0x06, ; 0x5e ^ ;other use 719 | 0x60,0x60,0x00,0x18,0x18,0x00,0x60,0x60, ; 0x5f _ ;other use 720 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | 722 | 723 | #mute 724 | ; #org 0x3000 ; only for debug 725 | array: 0x00,0x00,0x00,0x00, 726 | 0x00,0x00,0x00,0x00, 727 | 0x00,0x00,0x00,0x00, 728 | 0x00,0x00,0x00,0x00, 729 | 730 | ptr1: 0x00,0x00, 731 | ptrA: 0x00,0x00, 732 | ptrB: 0x00,0x00, 733 | adress: 0x00,0x00, 734 | spoint: 0x00,0x00, 735 | count1: 0x00, 736 | count2: 0x00, 737 | sprId: 0x00, 738 | tmp01: 0x00, 739 | fieldId: 0x00, 740 | Xidx: 0x00, 741 | Yidx: 0x00, 742 | idxA: 0x00, 743 | idxB: 0x00, 744 | idxL: 0x00, 745 | delta: 0x00, 746 | flagM: 0x00, 747 | gameWin: 0x00, 748 | ; variable printLine, printCharXY, printChar 749 | xpos16: 0x0000, 750 | ypos8: 0x00, 751 | vAddr: 0x0000, 752 | shift: 0x00, 753 | buffer: 0xff, 0xff, 0xff ; move buffer 754 | mask: 0xff, 0xff, 0xff, 755 | lineCnt: 0x00, 756 | spritePtr: 0x0000, 757 | 758 | 759 | 760 | #org 0xb000 _Start: 761 | #org 0xb003 _Prompt: 762 | #org 0xb006 _ReadLine: 763 | #org 0xb009 _ReadSpace: 764 | #org 0xb00c _ReadHex: 765 | #org 0xb00f _SerialWait: 766 | #org 0xb012 _SerialPrint: 767 | #org 0xb015 _FindFile: 768 | #org 0xb018 _LoadFile: 769 | #org 0xb01b _SaveFile: 770 | #org 0xb01e _MemMove: 771 | #org 0xb021 _Random: 772 | #org 0xb024 _ScanPS2: 773 | #org 0xb027 _ReadInput: 774 | #org 0xb02a _WaitInput: 775 | #org 0xb02d _ClearVRAM: 776 | #org 0xb030 _Clear: 777 | #org 0xb033 _ClearRow: 778 | #org 0xb036 _SetPixel: 779 | #org 0xb039 _ClrPixel: 780 | #org 0xb03c _GetPixel: 781 | #org 0xb03f _Char: 782 | #org 0xb042 _Line: 783 | #org 0xb045 _Rect: 784 | #org 0xb048 _Print: 785 | #org 0xb04b _PrintChar: 786 | #org 0xb04e _PrintHex: 787 | #org 0xb051 _ScrollUp: 788 | #org 0xb054 _ScrollDn: 789 | #org 0xb057 _ResetPS2: 790 | 791 | #org 0xbcb0 _ReadPtr: 792 | #org 0xbcb2 _ReadNum: 793 | #org 0xbcb5 PtrA: ; lokaler pointer (3 bytes) used for FLASH addr and bank 794 | #org 0xbcb8 PtrB: ; lokaler pointer (3 bytes) 795 | #org 0xbcbb PtrC: ; lokaler pointer (3 bytes) 796 | #org 0xbcc4 _RandomState: 797 | #org 0xbccc _XPos: 798 | #org 0xbccd _YPos: 799 | #org 0xbcce _ReadBuffer: -------------------------------------------------------------------------------- /2048/2048_64x4.asm: -------------------------------------------------------------------------------- 1 | #org 0x430c ViewPort: 2 | #org 0x551f leftUpperCorner: 3 | 4 | #org 0x8000 5 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Start ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 | begin: LDI 0xfe STB 0xffff ; SP initialize 7 | JPS printHelp 8 | JPS _WaitInput 9 | CPI 'q' 10 | BEQ _Start 11 | CPI 'Q' 12 | BEQ _Start 13 | newGame: 14 | JPS _Clear 15 | JPS clrArray 16 | CLB gameWin 17 | CLB flagM 18 | JPS addNum 19 | JPS addNum 20 | JPS printTitle 21 | gameLoop: 22 | JPS printArray 23 | JPS checkArray ; there are still free fields 24 | CPI 0x00 ; 0 = no free field 25 | BEQ gNoField 26 | LDB flagM 27 | CPI 0x00 28 | BEQ gNoAdd 29 | JPS addNum 30 | JPS checkArray ; there are still free fields 31 | CPI 0x00 ; 0 = no free field 32 | BEQ gNoField 33 | gNoAdd: CLB flagM 34 | JPA gameL1 35 | gNoField: 36 | JPS chkMove ; no space left, is there still a way to push? 37 | CPI 0x00 ; <>0 Move is possible 38 | BEQ gameOver ; Pushing not possible 39 | gameL1: LDB gameWin ; Flag game won 40 | CPI 0x00 41 | BNE gameOver 42 | JPS _WaitInput 43 | CPI 'n' 44 | BEQ newGame 45 | CPI 'N' 46 | BEQ newGame 47 | 48 | CPI 'q' 49 | BEQ _Start 50 | CPI 'Q' 51 | BEQ _Start 52 | 53 | CPI 0xe1 54 | BEQ key_up 55 | CPI 'i' 56 | BEQ key_up 57 | CPI 'I' 58 | BEQ key_up 59 | 60 | CPI 0xe2 61 | BEQ key_down 62 | CPI 'm' 63 | BEQ key_down 64 | CPI 'M' 65 | BEQ key_down 66 | 67 | CPI 0xe3 68 | BEQ key_left 69 | CPI 'j' 70 | BEQ key_left 71 | CPI 'J' 72 | BEQ key_left 73 | 74 | CPI 0xe4 75 | BEQ key_right 76 | CPI 'k' 77 | BEQ key_right 78 | CPI 'K' 79 | BEQ key_right 80 | 81 | JPA gNoAdd 82 | key_up: 83 | LDI 4 STB delta 84 | LDI 0 STB idxA JPS chkField 85 | LDI 1 STB idxA JPS chkField 86 | LDI 2 STB idxA JPS chkField 87 | LDI 3 STB idxA JPS chkField 88 | JPA gameLoop 89 | key_down: 90 | LDI -4 STB delta 91 | LDI 12 STB idxA JPS chkField 92 | LDI 13 STB idxA JPS chkField 93 | LDI 14 STB idxA JPS chkField 94 | LDI 15 STB idxA JPS chkField 95 | JPA gameLoop 96 | key_right: 97 | LDI -1 STB delta 98 | LDI 3 STB idxA JPS chkField 99 | LDI 7 STB idxA JPS chkField 100 | LDI 11 STB idxA JPS chkField 101 | LDI 15 STB idxA JPS chkField 102 | JPA gameLoop 103 | key_left: 104 | LDI 1 STB delta 105 | LDI 0 STB idxA JPS chkField 106 | LDI 4 STB idxA JPS chkField 107 | LDI 8 STB idxA JPS chkField 108 | LDI 12 STB idxA JPS chkField 109 | JPA gameLoop 110 | 111 | gameOver: 112 | LDI 13 STB _XPos LDI 3 STB _YPos 113 | JPS printLine 114 | ' *********** ', 0x00, 115 | LDB gameWin 116 | CPI 0x00 117 | BNE winner 118 | LDI 13 STB _XPos INB _YPos 119 | JPS printLine 120 | '* GAME OVER *', 0x00, 121 | JPA gameOv1 122 | winner: LDI 13 STB _XPos INB _YPos 123 | JPS printLine 124 | '* YOU WIN *', 0x00, 125 | gameOv1: 126 | LDI 13 STB _XPos INB _YPos 127 | JPS printLine 128 | ' *********** ', 0x00, 129 | JPS _WaitInput 130 | CPI 'q' 131 | BEQ _Start 132 | CPI 'Q' 133 | BEQ _Start 134 | JPA newGame 135 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | printHelp: 137 | JPS _Clear 138 | JPS printTitle 139 | 140 | LDI 3 STB _XPos INB _YPos INB _YPos INB _YPos 141 | JPS printLine 142 | 'USE CURSOR KEYS OR I,J,K,M TO MOVE', 0x00, 143 | LDI 10 STB _XPos INB _YPos INB _YPos 144 | JPS printLine 145 | 'N RESTARTS THE GAME', 0x00, 146 | LDI 12 STB _XPos INB _YPos INB _YPos 147 | JPS printLine 148 | 'Q QUIT THE GAME', 0x00, 149 | 150 | LDI 9 STB _XPos INB _YPos INB _YPos INB _YPos 151 | JPS printLine 152 | 'PRESS ANY KEY TO PLAY', 0x00, 153 | RTS 154 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 155 | printTitle: 156 | LDI 12 STB _XPos LDI 2 STB _YPos 157 | JPS printLine 158 | '2048 PUZZLE GAME', 0x00, 159 | RTS 160 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | ; Output A=1 Move possible A=0 no move possible 162 | chkMove: 163 | LDI 1 STB delta 164 | LDI 0 STB idxA JPS chkLine 165 | CPI 0x00 BNE retTrue 166 | LDI 4 STB idxA JPS chkLine 167 | CPI 0x00 BNE retTrue 168 | LDI 8 STB idxA JPS chkLine 169 | CPI 0x00 BNE retTrue 170 | LDI 12 STB idxA JPS chkLine 171 | CPI 0x00 BNE retTrue 172 | LDI 4 STB delta 173 | LDI 0 STB idxA JPS chkLine 174 | CPI 0x00 BNE retTrue 175 | LDI 1 STB idxA JPS chkLine 176 | CPI 0x00 BNE retTrue 177 | LDI 2 STB idxA JPS chkLine 178 | CPI 0x00 BNE retTrue 179 | LDI 3 STB idxA JPS chkLine 180 | RTS 181 | chkLine: ; 182 | LDB idxA STB idxL STB idxB 183 | LDB delta AD.B idxB ; idxB is the successor of idxA 184 | LDB delta LL1 ADB delta AD.B idxL ; idxL is last index 185 | chkL1: LDB idxA PHS JPS loadArray PLS ; array(idxA) 186 | STB tmp01 187 | LDB idxB PHS JPS loadArray PLS ; array(idxB) 188 | CPB tmp01 ; CMP array(idxB), array(idxA) 189 | BEQ retTrue ; if equal, then done Move is possible 190 | LDB delta AD.B idxB ; 191 | LDB delta AD.B idxA 192 | LDB idxA 193 | CPB idxL 194 | BNE chkL1 195 | LDI 0 196 | RTS 197 | retTrue: LDI 1 198 | RTS 199 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | ; input: idxA = start; delta= delta 201 | chkField: 202 | LDB idxA STB idxL 203 | LDB delta LL1 ADB delta AD.B idxL ; indL is last index 204 | chkLoop: 205 | LDB idxA STB idxB 206 | CPB idxL ; last index reached? 207 | BEQ chkRTS ; idxA at the end 208 | LDB delta AD.B idxB ; idxB is the successor of idxA 209 | chk01: LDB idxA PHS JPS loadArray PLS ; A = array(idxA) 210 | CPI 0x00 211 | BNE chk04 212 | ; array(idxA) = leer 213 | chk01a: LDB idxB PHS JPS loadArray PLS ; A = array(idxB) 214 | CPI 0x00 215 | BNE chk01b ; Content there to be moved 216 | ; array(idxB) = leer 217 | LDB idxB 218 | CPB idxL 219 | BEQ chkRTS ; nothing more until the end 220 | LDB delta AD.B idxB ; idxB one field further 221 | JPA chk01a 222 | 223 | chk01b: PHS LDB idxA PHS JPS storeArray PLS PLS ; Move to empty field array(idxA) = array(idxB) 224 | chk02: INB flagM 225 | LDI 0x00 226 | PHS LDB idxB PHS JPS storeArray PLS PLS ; array(idxB) = 0 227 | JPA chkLoop 228 | ; array(idxA) = Value 229 | chk04: STB tmp01 ; array(idxA) remember 230 | chk05: LDB idxB PHS JPS loadArray PLS ; A = array(idxB) 231 | CPI 0x00 232 | BNE chk06 233 | LDB idxB 234 | CPB idxL 235 | BEQ chkRTS 236 | LDB delta AD.B idxB 237 | JPA chk05 238 | 239 | chk06: CPB tmp01 240 | BNE chk07 241 | LDB idxA PHS JPS incArray PLS 242 | CPI 11 243 | BNE chk09 ; not 2048 reached 244 | LDI 0x01 ; Game Over Winner 245 | STB gameWin 246 | chk09: LDB delta AD.B idxA 247 | JPA chk02 248 | chk07: LDB delta AD.B idxA 249 | JPA chkLoop 250 | chkRTS: RTS 251 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | ; input: PHS arrayValue; PHS arrayIndex 253 | storeArray: 254 | LDI array STB storeA1+2 256 | LDS 3 257 | ADW storeA1+1 258 | LDS 4 259 | storeA1: 260 | STB 0xffff 261 | RTS 262 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 263 | ; input: PHS = arrayIndex output: A = arrayValue 264 | loadArray: 265 | LDI array STB loadA1+2 267 | LDS 3 268 | ADW loadA1+1 269 | loadA1: LDB 0xffff 270 | STS 3 271 | RTS 272 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 273 | ; input: PHS = arrayIndex 274 | incArray: 275 | LDI array STB incA1+2 277 | LDS 3 278 | ADW incA1+1 279 | incA1: INB 0xffff 280 | STS 3 281 | RTS 282 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | addNum: 284 | addN1: JPS _Random 285 | ANI 0x0f 286 | STB fieldId 287 | LAB array 288 | CPI 0x00 289 | BNE addN1 290 | LDI array 293 | STB addN3+2 294 | LDB fieldId 295 | ADW addN3+1 296 | JPS _Random 297 | ANI 0x03 298 | CPI 0x03 299 | BNE addN2 300 | LDI 0x02 301 | JPA addN3 302 | addN2: LDI 0x01 303 | addN3: STB 0xffff 304 | STB sprId 305 | JPS print24x24 306 | RTS 307 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | ; output: A = Number of empty fields 309 | checkArray: 310 | LDI 15 311 | STB fieldId 312 | CLB count2 313 | LDI array STB checkA1+2 315 | checkA1: 316 | LDB 0xffff 317 | CPI 0x00 318 | BNE checkA2 319 | INB count2 320 | checkA2: 321 | INW checkA1+1 322 | DEB fieldId 323 | BPL checkA1 324 | LDB count2 325 | RTS 326 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | printArray: 328 | LDI 15 329 | STB fieldId 330 | beg1: LDB fieldId 331 | LAB array 332 | STB sprId 333 | JPS print24x24 334 | DEB fieldId 335 | BPL beg1 336 | RTS 337 | 338 | clrArray: 339 | LDI array 342 | STB clrAr1+2 343 | LDI 16 344 | STB count1 345 | clrAr1: CLB 0xffff 346 | INW clrAr1+1 347 | DEB count1 348 | BNE clrAr1 349 | RTS 350 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | ; 24x24 Output pixel graphics in the playing field, aligned with a byte boundary 352 | ; Input (fieldId) 353 | print24x24: 354 | LDB fieldId 355 | LL1 ; A = 2 * A 356 | STZ 0 ; X = A 357 | LZB 0, coordinates 358 | STB adress+0 ;{{sprite addr lo}} 359 | INZ 0 360 | LZB 0, coordinates 361 | STB adress+1 ;{{sprite addr hi}} 362 | 363 | LDB sprId 364 | LL1 ; A = 2 * A 365 | STZ 0 ; X = A 366 | LZB 0, spriteAddr16 367 | STB spoint+0 ;{{sprite addr lo}} 368 | INZ 0 369 | LZB 0, spriteAddr16 370 | STB spoint+1 ;{{sprite addr hi}} 371 | 372 | LDI 24 373 | STB count1 374 | 375 | p24x24: LDR spoint 376 | STR adress 377 | INW spoint 378 | INW adress 379 | LDR spoint 380 | STR adress 381 | INW spoint 382 | INW adress 383 | LDR spoint 384 | STR adress 385 | INW spoint 386 | LDI 62 387 | ADW adress 388 | DEB count1 389 | BNE p24x24 390 | RTS 391 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | ; Top left corner of each 4x4 playing field tile 393 | coordinates: 394 | leftUpperCorner, leftUpperCorner+3, leftUpperCorner+6, leftUpperCorner+9, 395 | leftUpperCorner+1536, leftUpperCorner+1536+3, leftUpperCorner+1536+6, leftUpperCorner+1536+9, 396 | leftUpperCorner+3072, leftUpperCorner+3072+3, leftUpperCorner+3072+6, leftUpperCorner+3072+9, 397 | leftUpperCorner+4608, leftUpperCorner+4608+3, leftUpperCorner+4608+6, leftUpperCorner+4608+9, 398 | ; Table for faster sprite access 399 | spriteAddr16: 400 | empty, 401 | spr02, 402 | spr04, 403 | spr08, 404 | spr16, 405 | spr32, 406 | spr64, 407 | spr128, 408 | spr256, 409 | spr512, 410 | spr1024, 411 | spr2048, 412 | ; Sprite Daten 413 | empty: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 414 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 415 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 416 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 417 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 418 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 419 | 0x02,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40, 420 | 0x02,0x00,0x40,0xfc,0xff,0x3f,0x00,0x00,0x00, 421 | spr02: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 422 | 0x0a,0x00,0x68,0xc6,0xff,0x43,0xe2,0xff,0x47, 423 | 0x72,0x00,0x4e,0x02,0x00,0x4c,0x02,0x00,0x4c, 424 | 0x02,0x00,0x4c,0xc2,0xff,0x4f,0xe2,0xff,0x47, 425 | 0xf2,0xff,0x43,0x72,0x00,0x40,0x32,0x00,0x40, 426 | 0x32,0x00,0x40,0x32,0x00,0x40,0x72,0x00,0x4e, 427 | 0xf2,0xff,0x47,0xf6,0xff,0x43,0x0a,0x00,0x60, 428 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 429 | spr04: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 430 | 0x0a,0x80,0x6a,0x06,0x07,0x55,0x02,0x07,0x68, 431 | 0x82,0x03,0x50,0x82,0x01,0x60,0xc2,0x01,0x50, 432 | 0xc2,0x00,0x60,0xe2,0xc0,0x41,0x62,0xc0,0x41, 433 | 0x72,0xc0,0x41,0x32,0xc0,0x41,0xf2,0xff,0x4f, 434 | 0xf2,0xff,0x4f,0xe2,0xff,0x4f,0x02,0xc0,0x41, 435 | 0x02,0xc0,0x41,0x06,0xc0,0x41,0x0a,0x00,0x60, 436 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 437 | spr08: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 438 | 0x0a,0x00,0x68,0xc6,0xff,0x53,0xe2,0xff,0x67, 439 | 0x72,0x00,0x4e,0x32,0x00,0x6c,0x32,0x00,0x4c, 440 | 0x62,0x00,0x4e,0xc2,0xff,0x47,0xc2,0xff,0x43, 441 | 0xe2,0xff,0x43,0x72,0x00,0x46,0x32,0x00,0x4c, 442 | 0x32,0x00,0x4c,0x32,0x00,0x4c,0x72,0x00,0x4e, 443 | 0xe2,0xff,0x47,0xc6,0xff,0x43,0x0a,0x00,0x60, 444 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 445 | spr16: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 446 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 447 | 0x56,0x55,0x55,0x02,0x00,0x60,0xf2,0xf0,0x4f, 448 | 0xf2,0x30,0x4c,0xc2,0x30,0x40,0xc2,0x30,0x40, 449 | 0xc2,0xf0,0x4f,0xc2,0x30,0x4f,0xf2,0x33,0x4f, 450 | 0xf2,0xf3,0x4f,0x02,0x00,0x60,0x56,0x55,0x55, 451 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 452 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 453 | spr32: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 454 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 455 | 0x56,0x55,0x55,0x02,0x00,0x60,0xfa,0xe7,0x5f, 456 | 0x1a,0x66,0x58,0x02,0x06,0x58,0xe2,0xe7,0x5f, 457 | 0x02,0x66,0x40,0x02,0x66,0x40,0x1a,0x66,0x58, 458 | 0xfa,0xe7,0x5f,0x02,0x00,0x60,0x56,0x55,0x55, 459 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 460 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 461 | spr64: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 462 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 463 | 0x56,0x55,0x55,0x02,0x00,0x60,0xfa,0xe7,0x59, 464 | 0x1a,0xe6,0x59,0x1a,0xe0,0x59,0x1a,0xe0,0x5f, 465 | 0xfa,0x07,0x58,0x9a,0x07,0x58,0x9a,0x07,0x58, 466 | 0xfa,0x07,0x58,0x02,0x00,0x60,0x56,0x55,0x55, 467 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 468 | 0x56,0x55,0x55,0xfc,0xff,0x3f,0x00,0x00,0x00, 469 | spr128: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 470 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 471 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x02,0x00,0x40, 472 | 0x22,0x1c,0x47,0x32,0xa2,0x48,0x2a,0xa0,0x48, 473 | 0x22,0x1c,0x47,0x22,0x82,0x48,0x22,0x82,0x48, 474 | 0xfa,0x3e,0x47,0x02,0x00,0x40,0xaa,0xaa,0x6a, 475 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 476 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 477 | spr256: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 478 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 479 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x02,0x00,0x40, 480 | 0x72,0x3e,0x47,0x8a,0x82,0x40,0x82,0x9e,0x40, 481 | 0x72,0xa0,0x47,0x0a,0xa0,0x48,0x0a,0xa2,0x48, 482 | 0xfa,0x1c,0x47,0x02,0x00,0x40,0xaa,0xaa,0x6a, 483 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 484 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 485 | spr512: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 486 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 487 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x02,0x00,0x40, 488 | 0xf2,0x11,0x4e,0x12,0x18,0x51,0xf2,0x14,0x50, 489 | 0x02,0x11,0x4e,0x02,0x11,0x41,0x12,0x11,0x41, 490 | 0xe2,0x7c,0x5f,0x02,0x00,0x40,0xaa,0xaa,0x6a, 491 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 492 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 493 | spr1024: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 494 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 495 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x06,0x00,0x50, 496 | 0x02,0x00,0x40,0x22,0x32,0x45,0x32,0x45,0x45, 497 | 0x22,0x25,0x47,0x22,0x15,0x44,0x72,0x72,0x44, 498 | 0x02,0x00,0x40,0x06,0x00,0x50,0xaa,0xaa,0x6a, 499 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 500 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 501 | spr2048: 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f, 502 | 0xaa,0xaa,0x6a,0x56,0x55,0x55,0xaa,0xaa,0x6a, 503 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x06,0x00,0x50, 504 | 0x02,0x00,0x40,0x32,0x52,0x47,0x42,0x55,0x45, 505 | 0x22,0x75,0x47,0x12,0x45,0x45,0x72,0x42,0x47, 506 | 0x02,0x00,0x40,0x06,0x00,0x50,0xaa,0xaa,0x6a, 507 | 0x56,0x55,0x55,0xaa,0xaa,0x6a,0x56,0x55,0x55, 508 | 0xaa,0xaa,0x6a,0xfc,0xff,0x3f,0x00,0x00,0x00, 509 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | ; Outputs the text immediately after JPS 511 | ; must be terminated 0 512 | printLine: 513 | LDS 1 514 | STB ptr1+1 515 | LDS 2 516 | STB ptr1+0 517 | INW ptr1 518 | INW ptr1 519 | pL1: LDR ptr1 520 | CPI 0x00 521 | BNE pL2 522 | DEW ptr1 523 | LDB ptr1+0 524 | STS 2 525 | LDB ptr1+1 526 | STS 1 527 | RTS 528 | pL2: PHS JPS printCharXY PLS 529 | INW ptr1 530 | JPA pL1 531 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 532 | ; PHS Char 533 | ; outputs a character at the position _XPos(0..39), _YPos (0..23) grid 10x10 pixel 534 | ; _XPos and _YPos are updated, there is no scrolling 535 | printCharXY: 536 | CLB xpos16+1 537 | LDB _XPos 538 | LL1 539 | STB xpos16+0 ; xpos16 = _XPos * 2 540 | PHS ; memorize _XPos * 2 541 | LLW xpos16 ; xpos16 = _XPos * 4 542 | LLW xpos16 ; xpos16 = _XPos * 8 543 | PLS ; Restore _XPos * 2 544 | ADW xpos16 ; xpos16 = _XPos * 8 + _XPos * 2 = _XPos * 10 545 | LDB xpos16+0x00 546 | PHS ; XPos low 547 | LDB xpos16+0x01 548 | PHS ; XPos hight 549 | LDB _YPos 550 | LL1 551 | STB ypos8 552 | LL2 553 | ADB ypos8 554 | PHS ; yPos = _YPos* 10 555 | LDS 6 ; Char is LDS 3+3 556 | PHS 557 | JPS printChar 558 | PLS PLS PLS PLS 559 | INB _XPos 560 | LDB _XPos 561 | CPI 40 562 | BCC pCxy1 563 | CLB _XPos 564 | INB _YPos 565 | LDB _YPos 566 | CPI 24 567 | BCC pCxy1 568 | CLB _YPos 569 | pCxy1: RTS 570 | ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 571 | ; print char 0x20..0x5f 572 | ; PHS: xLow, xHiht, y, char 573 | printChar: 574 | LDS 4 ; Y 575 | LL6 STB vAddr+0 ; 576 | LDS 4 ; Y 577 | RL7 ANI 63 ADI >ViewPort STB vAddr+1 578 | LDS 5 ; Xhight 579 | DEC 580 | LDS 6 ; Xlow 581 | RL6 ANI 63 ADI 12 OR.B vAddr+0 582 | LDS 6 ANI 7 STB shift ; Xlow 583 | LDI 10 STB lineCnt ; scnt loop counter 8 byte + 2 byte space 584 | LDS 3 ; char 585 | CPI 0x60 586 | BCS rPCrts ; char > 0x5f 587 | SUI 0x20 588 | BCC rPCrts ; char < 0x20 589 | STB spritePtr+0 590 | CLB spritePtr+1 ; spritePtr=(char-' ') 591 | LLW spritePtr ; *2 592 | LLW spritePtr ; *4 593 | LLW spritePtr ; *8 8 bytes per character 594 | LDI alphaNumSprites 597 | AD.B spritePtr+1 598 | DEW spritePtr 599 | clineloop: 600 | LDB lineCnt 601 | CPI 10 602 | BEQ cl1 603 | CPI 1 604 | BEQ cl1 605 | INW spritePtr 606 | LDR spritePtr 607 | JPA cl2 608 | cl1: LDI 0x00 609 | cl2: STB buffer+0 610 | CLB buffer+1 611 | CLB buffer+2 612 | CLB mask+0 613 | LDI 0xfc 614 | STB mask+1 615 | LDI 0xff 616 | STB mask+2 617 | MBZ shift,1 ; shift counter 618 | DEZ 1 ; X coordinate 619 | BCC cshiftdone 620 | cshiftloop: 621 | LLW buffer+0 ; logical shift to the left word absolute vAddress 622 | RLB buffer+2 ; rotate shift left byte absolute vAddress 623 | SEC 624 | RLW mask+0 625 | RLB mask+2 626 | DEZ 1 627 | BCS cshiftloop ; branch on carry Set 628 | cshiftdone: 629 | LDB mask+0 630 | ANR vAddr 631 | STR vAddr 632 | LDB buffer+0 633 | ORR vAddr 634 | STR vAddr 635 | INW vAddr 636 | LDB mask+1 637 | ANR vAddr 638 | STR vAddr 639 | LDB buffer+1 640 | ORR vAddr 641 | STR vAddr 642 | INW vAddr 643 | LDB mask+2 644 | ANR vAddr 645 | STR vAddr 646 | LDB buffer+2 647 | ORR vAddr 648 | STR vAddr 649 | ccommon: LDI 62 650 | ADW vAddr 651 | DEB lineCnt 652 | BNE clineloop 653 | rPCrts: RTS 654 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | alphaNumSprites: 656 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ; 0x20 space 657 | 0x38,0x38,0x38,0x38,0x20,0x20,0x00,0x30, ; 0x21 ! 658 | 0x00,0x36,0x36,0x24,0x00,0x00,0x00,0x00, ; 0x22 " 659 | 0x66,0xff,0xff,0x66,0x66,0xff,0xff,0x66, ; 0x23 # 660 | 0x18,0x7e,0x03,0x7e,0xe0,0xe0,0x7e,0x18, ; 0x24 $ 661 | 0xc7,0xe5,0x77,0x38,0x1c,0xee,0xa7,0xe3, ; 0x25 % 662 | 0x06,0x09,0x09,0x46,0x6d,0x11,0x71,0xce, ; 0x26 & 663 | 0x00,0x0c,0x0c,0x08,0x00,0x00,0x00,0x00, ; 0x27 ' 664 | 0x38,0x1c,0x0e,0x0e,0x0e,0x0e,0x1c,0x38, ; 0x28 ( 665 | 0x1c,0x38,0x70,0x70,0x70,0x70,0x38,0x1c, ; 0x29 ) 666 | 0x99,0x5a,0x3c,0xff,0xff,0x3c,0x5a,0x99, ; 0x2a * 667 | 0x18,0x18,0x18,0xff,0xff,0x18,0x18,0x18, ; 0x2b + 668 | 0x00,0x00,0x00,0x00,0x0c,0x0c,0x08,0x04, ; 0x2c , 669 | 0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00, ; 0x2d - 670 | 0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00, ; 0x2e . 671 | 0xc0,0xe0,0x70,0x38,0x1c,0x0e,0x07,0x03, ; 0x2f / 672 | 0xff,0xc3,0xc3,0xc3,0xf3,0xf3,0xf3,0xff, ; 0x30 0 673 | 0x1e,0x1e,0x18,0x18,0x18,0x18,0x7e,0x7e, ; 0x31 1 674 | 0xff,0xc3,0xc0,0xff,0x03,0x03,0xf3,0xff, ; 0x32 2 675 | 0xff,0xc3,0xc0,0xfc,0xc0,0xc0,0xc3,0xff, ; 0x33 3 676 | 0xcf,0xcf,0xcf,0xff,0xc0,0xc0,0xc0,0xc0, ; 0x34 4 677 | 0xff,0x03,0x03,0xff,0xf0,0xf0,0xf0,0xff, ; 0x35 5 678 | 0xff,0xc3,0x03,0xff,0xe3,0xe3,0xe3,0xff, ; 0x36 6 679 | 0xff,0xf0,0xf0,0xf0,0x3c,0x0c,0x0c,0x0c, ; 0x37 7 680 | 0xfc,0xcc,0xcc,0xff,0xc3,0xc3,0xc3,0xff, ; 0x38 8 681 | 0xff,0xc3,0xc3,0xff,0xf0,0xf0,0xf0,0xf0, ; 0x39 9 682 | 0x00,0x0c,0x0c,0x00,0x00,0x0c,0x0c,0x00, ; 0x3a : 683 | 0x00,0x18,0x18,0x00,0x18,0x18,0x10,0x08, ; 0x3b ; 684 | 0x06,0x06,0x00,0x0c,0x1c,0xd8,0xc0,0x00, ; 0x3c < ;other use 685 | 0x00,0x00,0x00,0x00,0x00,0xdb,0xdb,0x00, ; 0x3d = ;other use 686 | 0x60,0x60,0x00,0x30,0x38,0x1b,0x03,0x00, ; 0x3e > ;other use 687 | 0x3c,0x62,0x70,0x38,0x18,0x18,0x00,0x18, ; 0x3f ? 688 | 0x3c,0x42,0x99,0xa5,0x45,0x39,0x02,0x7c, ; 0x40 @ 689 | 0xfc,0xcc,0xcc,0xff,0xc3,0xc3,0xf3,0xf3, ; 0x41 A 690 | 0x3f,0x33,0x33,0xff,0xc3,0xc3,0xc3,0xff, ; 0x42 B 691 | 0xff,0xc3,0x03,0x03,0x0f,0x0f,0xcf,0xff, ; 0x43 C 692 | 0x3f,0xc3,0xc3,0xc3,0xcf,0xcf,0xcf,0x3f, ; 0x44 D 693 | 0xff,0x0f,0x0f,0x3f,0x03,0x03,0x03,0xff, ; 0x45 E 694 | 0xff,0x0f,0x0f,0x3f,0x03,0x03,0x03,0x03, ; 0x46 F 695 | 0xff,0xc3,0x03,0x03,0xf3,0xf3,0xc3,0xff, ; 0x47 G 696 | 0xc3,0xc3,0xc3,0xff,0xcf,0xcf,0xcf,0xcf, ; 0x48 H 697 | 0x08,0x08,0x08,0x38,0x38,0x38,0x38,0x38, ; 0x49 I 698 | 0x20,0x20,0x20,0xe0,0xe0,0xe0,0xe3,0xff, ; 0x4a J 699 | 0xc3,0xe3,0x73,0x3f,0xff,0xcf,0xcf,0xcf, ; 0x4b K 700 | 0x03,0x03,0x03,0x0f,0x0f,0x0f,0x0f,0xff, ; 0x4c L 701 | 0xc3,0xcf,0xff,0xff,0xc3,0xc3,0xc3,0xc3, ; 0x4d M 702 | 0xc3,0xc3,0xcf,0xff,0xff,0xf3,0xc3,0xc3, ; 0x4e N 703 | 0xff,0xf3,0xf3,0xf3,0xc3,0xc3,0xc3,0xff, ; 0x4f O 704 | 0xff,0xc3,0xc3,0xff,0x0f,0x0f,0x0f,0x0f, ; 0x50 P 705 | 0xff,0xf3,0xf3,0xc3,0xc3,0x23,0x63,0xdf, ; 0x51 Q 706 | 0xff,0xc3,0xc3,0xff,0x3f,0x3f,0xcf,0xcf, ; 0x52 R 707 | 0xff,0xc3,0x03,0xff,0xf0,0xf0,0xf3,0xff, ; 0x53 S 708 | 0xff,0x0c,0x0c,0x3c,0x3c,0x3c,0x3c,0x3c, ; 0x54 T 709 | 0xc3,0xc3,0xc3,0xcf,0xcf,0xcf,0xcf,0xff, ; 0x55 U 710 | 0xcf,0xcf,0xcf,0xcf,0xcf,0xff,0x3c,0x0c, ; 0x56 V 711 | 0xc3,0xc3,0xc3,0xc3,0xff,0xff,0xcf,0xc3, ; 0x57 W 712 | 0xc3,0xc3,0xc3,0x3c,0x3c,0xc3,0xc3,0xc3, ; 0x58 X 713 | 0xf3,0xf3,0xf3,0xff,0x3c,0x3c,0x3c,0x3c, ; 0x59 Y 714 | 0xff,0x81,0x80,0xf8,0x3f,0x01,0xc1,0xff, ; 0x5a Z 715 | 0x00,0xc0,0xd8,0x1c,0x0c,0x00,0x06,0x06, ; 0x5b [ ;other use 716 | 0x00,0xdb,0xdb,0x00,0x00,0x00,0x00,0x00, ; 0x5c \ ;other use 717 | 0x00,0x03,0x1b,0x38,0x30,0x00,0x60,0x60, ; 0x5d ] ;other use 718 | 0x06,0x06,0x00,0x18,0x18,0x00,0x06,0x06, ; 0x5e ^ ;other use 719 | 0x60,0x60,0x00,0x18,0x18,0x00,0x60,0x60, ; 0x5f _ ;other use 720 | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | #mute 722 | array: 0x00,0x00,0x00,0x00, 723 | 0x00,0x00,0x00,0x00, 724 | 0x00,0x00,0x00,0x00, 725 | 0x00,0x00,0x00,0x00, 726 | 727 | ptr1: 0x00,0x00, 728 | ptrA: 0x00,0x00, 729 | ptrB: 0x00,0x00, 730 | adress: 0x00,0x00, 731 | spoint: 0x00,0x00, 732 | count1: 0x00, 733 | count2: 0x00, 734 | sprId: 0x00, 735 | tmp01: 0x00, 736 | fieldId: 0x00, 737 | Xidx: 0x00, 738 | Yidx: 0x00, 739 | idxA: 0x00, 740 | idxB: 0x00, 741 | idxL: 0x00, 742 | delta: 0x00, 743 | flagM: 0x00, 744 | gameWin: 0x00, 745 | ; variable printLine, printCharXY, printChar 746 | xpos16: 0x0000, 747 | ypos8: 0x00, 748 | vAddr: 0x0000, 749 | shift: 0x00, 750 | buffer: 0xff, 0xff, 0xff ; move buffer 751 | mask: 0xff, 0xff, 0xff, 752 | lineCnt: 0x00, 753 | spritePtr: 0x0000, 754 | 755 | 756 | 757 | #org 0xf000 _Start: 758 | #org 0xf003 _Prompt: 759 | #org 0xf006 _MemMove: 760 | #org 0xf009 _Random: 761 | #org 0xf00c _ScanPS2: 762 | #org 0xf00f _ResetPS2: 763 | #org 0xf012 _ReadInput: 764 | #org 0xf015 _WaitInput: 765 | #org 0xf018 _ReadLine: 766 | #org 0xf01b _SkipSpace: 767 | #org 0xf01e _ReadHex: 768 | #org 0xf021 _SerialWait: 769 | #org 0xf024 _SerialPrint: 770 | #org 0xf027 _FindFile: 771 | #org 0xf02a _LoadFile: 772 | #org 0xf02d _SaveFile: 773 | #org 0xf030 _ClearVRAM: 774 | #org 0xf033 _Clear: 775 | #org 0xf036 _ClearRow: 776 | #org 0xf039 _ScrollUp: 777 | #org 0xf03c _ScrollDn: 778 | #org 0xf03f _Char: 779 | #org 0xf042 _PrintChar: 780 | #org 0xf045 _Print: 781 | #org 0xf048 _PrintHex: 782 | #org 0xf04b _Pixel: 783 | #org 0xf04e _Line: 784 | #org 0xf051 _Rect: 785 | 786 | #org 0x0080 PtrA: ; lokaler pointer (3 bytes) used for FLASH addr and bank 787 | #org 0x0083 PtrB: ; lokaler pointer (3 bytes) 788 | #org 0x0086 PtrC: ; lokaler pointer (3 bytes) 789 | #org 0x0089 PtrD: ; lokaler pointer (3 bytes) 790 | #org 0x008c PtrE: ; lokaler pointer (2 bytes) 791 | #org 0x008e PtrF: ; lokaler pointer (2 bytes) 792 | #org 0x0090 Z0: ; OS zero-page multi-purpose registers 793 | #org 0x0091 Z1: 794 | #org 0x0092 Z2: 795 | #org 0x0093 Z3: 796 | #org 0x0094 Z4: 797 | 798 | #org 0x00c0 _XPos: ; current VGA cursor col position (x: 0..Width-1) 799 | #org 0x00c1 _YPos: ; current VGA cursor row position (y: 0..Height-1) 800 | #org 0x00c2 _RandomState: ; 4-byte storage (x, a, b, c) state of the pseudo-random generator 801 | #org 0x00c6 _ReadNum: ; 3-byte storage for parsed 16-bit number, MSB: 0xf0=invalid, 0x00=valid 802 | #org 0x00c9 _ReadPtr: ; Zeiger (2 bytes) auf das letzte eingelesene Zeichen (to be reset at startup) 803 | #org 0x00cb ; 2 bytes unused 804 | #org 0x00cd _ReadBuffer: ; bytes of OS line input buffer 805 | #org 0x00fe ReadLast: ; last byte of read buffer 806 | #org 0x00ff SystemReg: ; Don't use it unless you know what you're doing. -------------------------------------------------------------------------------- /atomix/res/atomix-level.txt: -------------------------------------------------------------------------------- 1 | Level 1: Water 2 | H-O-H [567](5,1,6,1,7,0) 3 | 4 | ##### 11111000 00000000 0xf8,0x00, 5 | # # 10001000 00000000 0x88,0x00, 6 | # H###### ; HW=7 10001110 11100000 0x8e,0xe0, 7 | # # # 10010000 00100000 0x90,0x20, 8 | # # ## 10100000 00110000 0xa0,0x30, 9 | # # # ## # 10100100 11010000 0xa4,0xd0, 10 | # # #O # ; OEW=6 10000100 10010000 0x84,0x90, 11 | ###H# # # ; HE=5 11101000 10010000 0xe8,0x90, 12 | # # 01000000 00010000 0x40,0x10, 13 | ########## 01111110 11110000 0x7e,0xf0, 14 | 00000000 00000000 0x00,0x00, 15 | 00000000 00000000 0x00,0x00, 16 | 00000000 00000000 0x00,0x00, 17 | 6,3,2, 7,8,6, 5,3,7,0, 18 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19 | Level 2: Methane 20 | 21 | H 8, 13,5,1,10,1,7, 13,9,0 22 | | 23 | H-C-H 24 | | 25 | H 26 | 27 | 0 ##### 11111000 00000000 0xf8,0x00, 28 | 1 # # 10001000 00000000 0x88,0x00, 29 | 2 # ########## 10001110 11111110 0x8e,0xfe, 30 | 3 # # # # # 10101010 00000010 0xaa,0x02, 31 | 4 # # #C# H# # ; C=10 HS=8 10101010 00010010 0xaa,0x12, 32 | 5 # H# ##### # ; HE=5 10010010 11110010 0x92,0xf2, 33 | 6 # # # 10000000 01000010 0x80,0x42, 34 | 7 # # # 10000000 01000010 0x80,0x42, 35 | 8 # ##### H # ; HW=7 10111110 00000010 0xbe,0x02, 36 | 9 # H# ####### ; HN=9 10001000 11111110 0x88,0xfe, 37 | 10 ######## 11111110 10000000 0xfe,0x80, 38 | 01234567890123 00000000 00000000 0x00,0x00, 39 | 00000000 00000000 0x00,0x00, 40 | 10,5,4, 8,9,4, 5,5,2, 7,8,8, 9,3,9, 0 41 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | Level 3: Methanol 43 | 44 | HS 8 8,13,5,1,10,1,6,1,7,12,9,0 45 | | | 46 | HE-C-O-HW 5-10-6-7 47 | | | 48 | HN 9 49 | 0123456789 50 | 0 #### 11110000 00000000 0xf0,0x00, 51 | 1 # # 10010000 00000000 0x90,0x00, 52 | 2 # # 10010000 00000000 0x90,0x00, 53 | 3 # H# ; HS=8 10010000 00000000 0x90,0x00, 54 | 4 # ######## 10011110 11110000 0x9e,0xf0, 55 | 5 # # # ### 10001000 01011100 0x88,0x5c, 56 | 6 # # # # 10100000 01000100 0xc0,0x44, 57 | 7 # #C # ; C=10 10000000 01000100 0x80,0x44, 58 | 8 # H###O # # # ; HE=5 WOE=6 10011100 01010100 0x9c,0x54, 59 | 9 # # 10000000 00000100 0x80,0x04, 60 | 10# H #H # # ; HN=9 HW=7 10000000 10010100 0x80,0x94, 61 | 11###### # # 11111100 00010100 0xfc,0x14, 62 | 12 ######## 00000110 11111100 0x06,0xfc, 63 | 64 | 8,3,3, 10,7,9, 5,8,3, 6,8,6, 9,10,5, 7,10,8,0 65 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 66 | Level 4: Ethylen 67 | 68 | HSE\ /HSW 11,3, 12,14, 15,1, 16,12, 14,3, 13,0 69 | C=C 70 | HNE/ \HNW 71 | 01234567890123 72 | 0 ####### 11111110 00000000 0xfe,0x00, 73 | 1 # # # 10100010 00000000 0xa2,0x00, 74 | 2 # #H# # ; HNE=14 10101010 00000000 0xaa,0x00, 75 | 3 # # # 10100010 00000000 0xa2,0x00, 76 | 4 # # # 10100010 00000000 0xa2,0x00, 77 | 5 # ####### 10001110 11110000 0x8e,0xf0, 78 | 6 # # 10000000 00010000 0x80,0x10, 79 | 7 # C##C H # ; C2W=16 C2E=15 HSW=12 10011000 00010000 0x98,0x10, 80 | 8 # #### 10000000 11110000 0x80,0xf0, 81 | 9 ## #H # ; HSE=11 11001000 00010000 0xc8,0x10, 82 | 10# # # # 10001010 00010000 0x8a,0x10, 83 | 11# H# ### ; HNW=13 10001000 01110000 0x88,0x70, 84 | 12######## 11111110 10000000 0xfe,0x80, 85 | 86 | 14,3,2, 16,2,7, 15,5,7, 12,7,7, 11,5,9, 13,3,11,0 87 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | Level 5: Propene 89 | 90 | H H H 8,1,8,2,12, 10,5,18,1,17,1,16, 12,9,3,13,0 91 | | | / 92 | H-C-C=C 93 | | \ 94 | H H 95 | 96 | 01234567890123 97 | 0 #### 00000010 11100000 0x02,0xe0, 98 | 1 ##### # 00111110 00100000 0x3e,0x20, 99 | 2 # H# ; HSW=12 00100000 00100000 0x20,0x20, 100 | 3 # H######## ; HS=8 00100010 11111110 0x22,0xfe, 101 | 4 #C # # ; C2EWN=17 00100000 00100010 0x20,0x22, 102 | 5 #### ## C # ; C2W=16 00111100 01100010 0x3c,0x62, 103 | 6 ###H # C# # ; HE=5 C4NESW=18 11100100 00100010 0xe4,0x22, 104 | 7 # # H # ; HS=8 10000100 00000010 0x84,0x02, 105 | 8 # # # ####### 10100100 11111110 0xa4,0xfe, 106 | 9 # # 10000000 00000010 0x80,0x02, 107 | 10# # ## # 10001000 00110010 0x88,0x32, 108 | 11#H # H # ; HNW=13 HN=9 10001000 00000010 0x88,0x02, 109 | 12############## 11111110 11111110 0xfe,0xfe, 110 | 01234567890123 111 | 112 | 12,8,2, 8,5,3, 17,3,4, 16,11,5, 5,3,6, 18,8,6, 8,10,7, 13,1,11, 9,9,11,0, 113 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | Level 7: Ethanol 115 | 116 | H H 8,1,8, 12,5,1,18,1,18,1,6,1,7, 11,9,1,9,0 117 | | | 118 | H-C-C-O-H 119 | | | 120 | H H 121 | 122 | 01234567890123 123 | 0 ########### ; 11111110 11110000 0xfe,0xf0, 124 | 1 # H # ; HS=8 10000000 00010000 0x80,0x10, 125 | 2 # ## # # ; 10110010 00010000 0xb2,0x10, 126 | 3 # C# # ; C4NESW=18 10000000 10010000 0x80,0x90, 127 | 4 # # # # ; 10001000 10010000 0x88,0x90, 128 | 5 # #H# #C # ; HW=7 C4NESW=18 10101000 10010000 0xa8,0x90, 129 | 6 # #### ; 10000000 00111100 0x80,0x3c, 130 | 7 ##### # # ; 11111000 10000100 0xf8,0x84, 131 | 8 # O # # # ; OEW=6 01000000 10100100 0x40,0xa4, 132 | 9 ##H## H # ; HE=5 HS=8 11011000 00000100 0xd8,0x04, 133 | 10# H ##### ; HN=9 10000000 01111100 0x80,0x7c, 134 | 11# H # # ; HN=9 10000010 01000000 0x82,0x40, 135 | 12######### ; 11111110 11000000 0xfe,0xc0, 136 | 01234567890123 137 | 138 | 8,3,1, 18,6,3, 7,3,5, 18,8,5, 6,5,8, 5,2,9, 8,9,9, 9,6,10, 9,3,11,0, 139 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | Level 8: Isopropanol 141 | 142 | H H H 8,1,8,1,8, 11,5,1,18,1,18,1,18,1,7, 11,9,1,19,1,9, 13,9,0, 143 | | | | 144 | H-C-C-C-H 145 | | | | 146 | H O H 147 | | 148 | H 149 | 150 | 01234567890123 151 | 0 ########### 11111110 11110000 0xfe,0xf0, 152 | 1 # # H # ; HS=8 10000010 00010000 0x82,0x10, 153 | 2 # # # ; 10000010 00010000 0x82,0x10, 154 | 3 # # O # ; ONS=19 10010000 00010000 0x90,0x10, 155 | 4 # H#H#### ## ; HS=8 HN=9 10010110 11011000 0x96,0xd8, 156 | 5 # # # H#C # ; HN=9 C4NESW=18 10010100 01001000 0x94,0x48, 157 | 6 # ## # # ; 10110000 01001000 0xb0,0x48, 158 | 7 # #H # ; HS=8 10000000 01001000 0x80,0x48, 159 | 8 # C# ## # ; C4NESW=18 10010000 11001000 0x90,0xc8, 160 | 9 # ## H H # ; HN=9 HW=7 10011000 00001000 0x98,0x08, 161 | 10# H# C ### ; HE=5 C4NESW=18 10001000 00111000 0x88,0x38, 162 | 11# # # # 10001000 10001000 0x88,0x88, 163 | 12############ 11111110 11111000 0xfe,0xf8, 164 | 01234567890123 165 | 166 | 8,8,1, 19,6,3, 8,2,4, 9,4,4, 9,7,5, 18,9,5, 8,9,7, 18,2,8, 9,7,9, 7,9,9, 5,3,10, 18,7,10,0, 167 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 168 | Level 9: Ethanal 169 | 170 | H H 8,1,8, 12,5,1,18,1,17,1,20, 12,9,0, 171 | | | 172 | H-C-C=O 173 | | 174 | H 175 | 176 | 01234567890123 177 | 0 ########## 11111110 11100000 0xfe,0xe0, 178 | 1 # O # ; O2W=20 10000000 00100000 0x80,0x20, 179 | 2 # ### # # 10011100 10100000 0x9c,0xa0, 180 | 3 # H# # ; HS=8 10000000 10100000 0x80,0xa0, 181 | 4 # ## C # ; CNESW=18 10110000 00100000 0xb0,0x20, 182 | 5 # H H #H# ; HE=5 HN=9 HS=8 10000000 10100000 0x80,0xa0, 183 | 6 # #### # # 10111100 10100000 0xbc,0xa0, 184 | 7 # C # ; C2EWN=17 10000000 00100000 0x80,0x20, 185 | 8 # # ##### 10100110 11100000 0xa6,0xe0, 186 | 9 # # # 10100100 00000000 0xa4,0x00, 187 | 10###### 11111100 00000000 0xfc,0x00, 188 | 11 0x00,0x00, 189 | 12 0x00,0x00, 190 | 01234567890123 191 | 192 | 20,7,1, 8,6,3, 18,6,4, 5,2,5, 9,5,5, 8,8,5, 17,4,7,0, 193 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | Level 10: Acetone 195 | 196 | H H 8,2,8, 11,5,1,18,1,21,1,18,1,7, 11,9,1,22,1,9,0, 197 | | | 198 | H-C-C-C-H 199 | | # | 200 | H O H 201 | 202 | 203 | 01234567890123 204 | 0 ############# 11111110 11111100 0xfe,0xfc, 205 | 1 # H # # ; HN=9 10000100 00000100 0x84,0x04, 206 | 2 # # # H### ; HW=7 10010000 10011100 0x90,0x9c, 207 | 3 # H H # ; HN=9 HS=8 10000000 00000100 0x80,0x04, 208 | 4 ######### # ; 11111110 11000100 0xfe,0xc4, 209 | 5 # #HC # ; HS=8 CNESW=18 00100000 01000100 0x20,0x44, 210 | 6 # # # ; 00100100 00000100 0x24,0x04, 211 | 7 ### C C # # ; CNESW=18 C2SEW=21 11100000 00010100 0xe0,0x14, 212 | 8 # # O# # ; 02N=22 10001000 00010100 0x88,0x14, 213 | 9 # H### # ; HE=5 10000110 10000100 0x86,0x84, 214 | 10# # # 10000000 10000100 0x80,0x84, 215 | 11############# 11111110 11111100 0xfe,0xfc, 216 | 12 00000000 00000000 0x00,0x00, 217 | 01234567890123 218 | 219 | 9,3,1, 7,9,2, 9,3,3, 8,7,3, 8,9,5, 18,10,5, 18,6,7, 21,8,7, 22,9,8, 5,4,9,0, 220 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 221 | Level 11: Formic Acid 222 | 223 | O 24, 13,5,1,23,1,6,1,7,0, 224 | # 225 | H-C-O-H 226 | 227 | 01234567890123 228 | 0 #### 00000000 00111100 0x00,0x3c, 229 | 1 ###### ### # 11111100 11100100 0xfc,0xe4, 230 | 2 # # # # 10000100 10000100 0x84,0x84, 231 | 3 # ### # # 10000110 10010100 0x86,0x94, 232 | 4 # ## # 10110000 00000100 0xb0,0x04, 233 | 5 # #### 10000000 00111100 0x80,0x3c, 234 | 6 ####CH## # ; C2NEW=23 HE=5 11110010 10000100 0xf2,0x84, 235 | 7 # O # # ; O2S=24 10000000 00010100 0x80,0x14, 236 | 8 ## # # #O## ; OEW=6 11001010 00101100 0xca,0x2c, 237 | 9 # # # ; 10001000 00000100 0x88,0x04, 238 | 10## H # # # ; HW=7 11000000 01010100 0xc0,0x54, 239 | 11# # # # 10000010 01000100 0x82,0x44, 240 | 12############# 11111110 11111100 0xfe,0xfc, 241 | 01234567890123 242 | 243 | 23,4,6, 5,5,6, 24,6,7, 6,9,8, 7,6,10,0, 244 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 245 | Level 13: Acetic Acid 246 | 247 | H O 8,1,24, 12,5,1,18,1,23,1,6,1,7, 11,9,0, 248 | | # 249 | H-C-C-O-H 250 | | 251 | H 252 | 253 | 01234567890123 254 | 0 ####### 01111110 10000000 0x7e,0x80, 255 | 1 # H ### ; HS=8 01000000 11100000 0x40,0xe0, 256 | 2 # H# O # ; HW=7 O2S=24 01001000 00100000 0x48,0x20, 257 | 3 ## # #### 11010010 11100000 0xd2,0xe0, 258 | 4 # # # 10010000 00100000 0x90,0x20, 259 | 5 # C##H # ; CNESW=18 HE=5 10001100 00100000 0x8c,0x20, 260 | 6 # #C # ; C2NEW=23 10000010 00100000 0x82,0x20, 261 | 7 # H# # ; HN=9 10010000 00100000 0x90,0x20, 262 | 8 ## #O# # ; OWE=6 11000100 10100000 0xc4,0xa0, 263 | 9 ##### # 01111100 00100000 0x7c,0x20, 264 | 10 ##### 00000110 11100000 0x06,0xe0, 265 | 11 0x00,0x00, 266 | 12 0x00,0x00, 267 | 01234567890123 268 | 269 | 8,4,1, 7,3,2, 24,6,2, 18,3,5, 5,6,5, 23,7,6, 9,2,7, 6,6,8,0, 270 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | Level 14: trans-Butene 272 | 273 | H H 11,2,12, 10,11,3,26, 10,11,2,25,1,16,2,13, 10,26,3,13, 10,14,2,13,0, 274 | \ / 275 | H C 276 | \ / \ 277 | H C=C H 278 | \ / \ 279 | C H 280 | / \ 281 | H H 282 | 283 | 01234567890123 284 | 0 ############## 11111110 11111110 0xfe,0xfe, 285 | 1 # # H # ; HSE=11 10000010 00000010 0x82,0x02, 286 | 2 # ##H# ## # ; HSE=11 10011010 00110010 0x9a,0x32, 287 | 3 # H #C H H# ; HNW=13 CNWx4=26 HNW=13 HSW=12 10000010 00000010 0x82,0x02, 288 | 4 # # ### ### # 10101110 01110010 0xae,0x72, 289 | 5 # #C # # C # ; CNWx4=26 C2WNESE=16 10100010 01000010 0xa2,0x42, 290 | 6 #H # # # ; HNE=14 10000010 00001010 0x82,0x0a, 291 | 7 # # 10000000 00000010 0x80,0x02, 292 | 8 # ### ## ### # 10111010 10111010 0xba,0xba, 293 | 9 # C # ; C2ENWSW=25 10000000 00000010 0x80,0x02, 294 | 10# #H H # ; HNW=13 HSE=11 10000000 01000010 0x80,0x42, 295 | 11############## 11111110 11111110 0xfe,0xfe, 296 | 12 0x00,0x00, 297 | 01234567890123 298 | 299 | 11,9,1, 11,5,2, 13,3,3, 26,7,3, 13,9,3, 12,12,3, 26,3,5, 16,11,5, 14,1,6, 25,2,9, 13,9,10, 11,11,10,0, 300 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | Level 15: cis-Butene 302 | 303 | H H 11,3,12, 10,11,2,25,1,16,2,12, 10,26,3,26, 10,14,2,13,1,14,2,13,0 304 | \ / 305 | H C=C H 306 | \ / \ / 307 | C C 308 | / \ / \ 309 | H H H H 310 | 311 | 01234567890123 312 | 0 ############# 11111110 11111100 0xfe,0xfc, 313 | 1 # H # ; HNE=14 10000000 00000100 0x80,0x04, 314 | 2 # H H# # ; HNE=14 HSE=11 10000010 00000100 0x82,0x04, 315 | 3 ## # #C##H # ; C2ENWSW=25 HSE=11 11010010 01100100 0xd2,0x64, 316 | 4 # C# H # ; C2WNESE=16 HNW=13 10010000 00000100 0x90,0x04, 317 | 5 # ## ##### H# ; HNW=13 10110110 11100100 0xb6,0xe4, 318 | 6 #H # # ; HSW=12 10010000 00000100 0x90,0x04, 319 | 7 # # H# ; HSW=12 10000000 10000100 0x80,0x84, 320 | 8 # ## # # # 10110100 00010100 0xb4,0x14, 321 | 9 # C # ; CNWx4=26 10000000 00000100 0x80,0x04, 322 | 10#C # # ; CNWx4=26 10000000 10000100 0x80,0x84, 323 | 11############# 11111110 11111100 0xfe,0xfc, 324 | 12 325 | 01234567890123 326 | 327 | 14,10,1, 14,3,2, 14,5,2, 25,7,3, 11,10,3, 16,2,4, 13,8,4, 13,11,5, 12,1,6, 12,11,7, 26,10,9, 26,1,10,0, 328 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | Level 16: Dimethl ether 330 | 331 | H H 8,2,8, 11,5,1,18,1,6,1,18,1,7, 11,9,2,9,0, 332 | | | 333 | H-C-O-C-H 334 | | | 335 | H H 336 | 337 | 01234567890123 338 | 0 ####### 11111110 00000000 0xfe,0x00, 339 | 1 # # 10000010 00000000 0x82,0x00, 340 | 2 #H # # ; HE=5 10010010 00000000 0x92,0x00, 341 | 3 # H C# ; HN=9 CNESW=18 10000010 00000000 0x82,0x00, 342 | 4 # # ###### 10010010 11111000 0x92,0xf8, 343 | 5 # # O # ; OEW=6 10010000 00001000 0x90,0x08, 344 | 6 # # ## # 10010110 00001000 0x96,0x08, 345 | 7 # H # ; HS=8 10000000 00001000 0x80,0x08, 346 | 8 # # #### 10010000 01111000 0x90,0x78, 347 | 9 # # # H # ; HS=8 10010100 00001000 0x94,0x08, 348 | 10# # #### H# ; HW=7 10010110 11001000 0x96,0xc8, 349 | 11# C H # ; CNESW=18 HN=9 10000000 00001000 0x80,0x08, 350 | 12############ 11111110 11111000 0xfe,0xf8, 351 | 01234567890123 352 | 353 | 5,1,2, 9,3,3, 18,5,3, 6,8,5, 8,9,7, 8,8,9, 7,10,10, 18,2,11, 9,10,11,0, 354 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 355 | Level 17: Butanol 356 | 357 | H H H H 8,1,8,1,8,1,8, 10,5,1,18,1,18,1,18,1,18,1,7, 10,9,1,9,1,9,1,19, 14,9,0, 17, 'BUTANOL',0 358 | | | | | 359 | H-C-C-C-C-H 360 | | | | | 361 | H H H O 362 | | 363 | H 364 | 365 | 01234567890123 366 | 0 ############## 11111110 11111110 0xfe,0xfe, 367 | 1 # H # ; HS=8 10000000 00000010 0x80,0x02, 368 | 2 #H # C#### H # ; HS=8 CNESW=18 HN=9 10010010 11100010 0x92,0xe2, 369 | 3 # # O# ; ONS=19 10010000 00000010 0x90,0x02, 370 | 4 # ##H# ; HW=7 10000000 00011010 0x80,0x1a, 371 | 5 # H## # # ; HE=5 10011000 00100010 0x98,0x22, 372 | 6 # # # H # ; HS=8 10000010 00100010 0x82,0x22, 373 | 7 # C H ##### ; CNESW=18 HN=9 10000000 00111110 0x80,0x3e, 374 | 8 #### #C H # ; CNESW=18 HN=9 11110010 00000010 0xf2,0x02, 375 | 9 # # C# # ; CNESW=18 00010010 00100010 0x12,0x22, 376 | 10 #H # H # ; HN=9 HS=8 00010010 00000010 0x12,0x02, 377 | 11 ########### 00011110 11111110 0x1e,0xfe, 378 | 12 00000000 00000000 0x00,0x00, 379 | 01234567890123 380 | 381 | 8,7,1, 8,1,2, 18,5,2, 9,11,2, 19,12,3, 7,12,4, 5,2,5, 8,11,6, 18,2,7, 9,6,7, 18,7,8, 9,11,8, 18,8,9, 9,4,10, 8,11,10,0 382 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 383 | Level 19: 2-Methyl-2-Propanol 384 | 385 | H H H 11,1,8,1,12, 12,8,1,27,1,8, 11,5,1,18,1,18,1,18,1,7, 11,9,1,19,1,9, 13,9,0, 19, '2-METHYL-2-..',0, 386 | \|/ 387 | H C H 388 | | | | 389 | H-C-C-C-H 390 | | | | 391 | H O H 392 | | 393 | H 394 | 395 | 0123456789012 396 | 0 ########## 11111110 11100000 0xfe,0xe0, 397 | 1 # H O # ; HS=8 ONS=19 10000000 00100000 0x80,0x20, 398 | 2 # #H #### ; HE=5 10100000 00111100 0xa0,0x3c, 399 | 3 # # # C # ; CNESW=18 10101000 00000100 0xa8,0x04, 400 | 4 # H# H H## # ; HS=8 HN=9 HN=9 10001000 00110100 0x88,0x34, 401 | 5 # ### #H # ; HN=9 10111010 00000100 0xba,0x04, 402 | 6 #H C ## H # ; HSE=11 CNESW=18 HSW=12 10000010 10000100 0x82,0x84, 403 | 7 # ### C#### ; CNESW=18 10111000 00111100 0xb8,0x3c, 404 | 8 # # # H# # ; HS=8 10101000 10100000 0xa8,0xa0, 405 | 9 # # #H# # ; HW=7 10101010 00100000 0xaa,0x20, 406 | 10### # C# ; CNWNNES=27 11101000 00100000 0xe8,0x20, 407 | 11 ###### ; 00001110 11100000 0x0e,0xe0, 408 | 12 0x00,0x00, 409 | 01234567890123 410 | 411 | 8,2,1, 19,7,1, 5,3,2, 18,8,3, 8,3,4, 9,6,4, 9,8,4, 9,7,5, 11,1,6, 18,4,6, 12,10,6, 18,8,7, 8,6,8, 7,5,9, 27,8,10,0 412 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 413 | Level 20: Glycerin 414 | 415 | H 8, 13,5,1,18,1,6,1,7, 11,5,1,18,1,6,1,7, 11,5,1,18,1,6,1,7, 12,9,0, 20, 'GLYCERIN',0, 416 | | 417 | H-C-O-H 418 | | 419 | H-C-O-H 420 | | 421 | H-C-O-H 422 | | 423 | H 424 | 425 | 0123456789012 426 | 0 ####### 11111110 00000000 0xfe,0x00, 427 | 1 # H# ##### ; HS=8 10001010 11110000 0x8a,0xf0, 428 | 2 # # C # ; CNESW=18 10100000 00010000 0xa0,0x10, 429 | 3 # # # # 10100000 01010000 0xa0,0x50, 430 | 4 # C O H# ; CNESW=18 OWE=6 HW=7 10000000 00010000 0x80,0x10, 431 | 5 # H# H# # ; HE=5 HN=9 10010010 00010000 0x92,0x10, 432 | 6 ### O# # # ; OWE=6 11100100 01010000 0xe4,0x50, 433 | 7 # H # ; HE=5 00100000 00010000 0x20,0x10, 434 | 8 ###C## O# # ; CNESW=18 OWE=6 11101100 01010000 0xec,0x50, 435 | 9 # H H H# ; HE=5 HW=7 HW=7 10000000 00010000 0x80,0x10, 436 | 10# # ##### 10010010 11110000 0x92,0xf0, 437 | 11# ## 10000110 00000000 0x86,0x00, 438 | 12###### 11111100 00000000 0xfc,0x00, 439 | 0123456789012 440 | 441 | 8,3,1, 18,5,2, 18,2,4, 6,6,4, 7,9,4, 5,2,5, 9,5,5, 6,4,6, 5,7,7, 18,3,8, 6,7,8, 5,3,9, 7,5,9, 7,9,9,0, 442 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | Level 21: Poly-Tetra-Fluoro-Ethene 444 | 445 | F F F F 28,1,28,1,28,1,28, 11,18,1,18,1,18,1,18, 11,29,1,29,1,29,1,29,0, 21,'POLY-TETRA-..',0, 446 | | | | | 447 | -C-C-C-C- 448 | | | | | 449 | F F F F 450 | 451 | 01234567890123 452 | 0 ############## 11111110 11111110 0xfe,0xfe, 453 | 1 # F # # ; FN=29 10000000 00100010 0x80,0x42, 454 | 2 # ### # C # ; CNESW=18 10111000 00100010 0xb8,0x42, 455 | 3 # # F # ; FS=28 10100000 00000010 0xa0,0x02, 456 | 4 #F# F# # ## # ; FN=29 FN=29 10100100 01011010 0xa4,0x5a, 457 | 5 # ## # ; 10001100 00000010 0x8c,0x02, 458 | 6 # C F F# ; CNESW=18 FS=28 FN=29 10000000 00000010 0x80,0x02, 459 | 7 ## #### # ; 11000010 11100010 0xc2,0xe2, 460 | 8 # C # ; CNESW=18 10000000 00000010 0x80,0x02, 461 | 9 # # ## # # ; 10010010 10010010 0x92,0x92, 462 | 10# #F F # # ; FS=28 FS=28 10010000 00010010 0x90,0x12, 463 | 11# C # ; CNESW=18 10000000 00000010 0x80,0x02, 464 | 12############## ; 11111110 11111110 0xfe,0xfe, 465 | 01234567890123 466 | 467 | 29,3,1, 18,11,2, 28,7,3, 29,1,4, 29,4,4, 18,6,6,28,8,6, 29,12,6, 18,10,8, 28,4,10, 28,7,10, 18,9,11,0, 468 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | Level 22: Oxalic Acid 470 | 471 | O=C-C=O 30,1,32,1,31,1,20, 12,19,1,19, 13,9,1,9,0, 22, 'OXALIC ACID',0, 472 | | | 473 | O O 474 | | | 475 | H H 476 | 477 | 01234567890123 478 | 0 ############## 11111110 11111110 0xfe,0xfe, 479 | 1 # # # # 10001000 10000010 0x88,0x82, 480 | 2 # O O # ; ONS=19 O2E=30 10000000 00000010 0x80,0x02, 481 | 3 # ## # #### # 10110010 01111010 0xb2,0x7a, 482 | 4 # C# O # # ; C2ENW=31 ONS=19 10000010 00001010 0x82,0x0a, 483 | 5 #O C # ; O2W=20 C2WNE=32 10000000 00000010 0x80,0x02, 484 | 6 # # ### # 10010000 01110010 0x90,0x72, 485 | 7 # ## ## #H # ; HN=9 10011000 11010010 0x98,0xd2, 486 | 8 # # # # # 10001000 10010010 0x88,0x92, 487 | 9 # # #### # # 10101110 10010010 0xae,0x92, 488 | 10# #H# ### # ; HN=9 10101000 01110010 0xa8,0x72, 489 | 11# # # # 10001000 01000010 0x88,0x42, 490 | 12##### ###### 11111000 01111110 0xfe,0xfe, 491 | 01234567890123 492 | 493 | 19,4,2, 30,11,2, 31,5,4, 19,8,4, 20,1,5, 32,10,5, 9,11,7, 9,3,10,0 494 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Level 23: Formaldehyde 496 | 497 | H 8, 14,33,1,20, 13,9,0, 23, 'FORMALDEHYDE',0, 498 | | 499 | C=O 500 | | 501 | H 502 | 503 | 01234567890123 504 | 0 ############## 11111110 11111110 0xfe,0xfe, 505 | 1 # H # ; HN=9 10000000 00000010 0x80,0x02, 506 | 2 # # ## # 10001000 01100010 0x88,0x62, 507 | 3 # # # 10001000 00000010 0x88,0x02, 508 | 4 ### # ####### 11101000 11111110 0xe8,0xfe, 509 | 5 #H## # # ; HS=8 00101100 00100010 0x2c,0x22, 510 | 6 # O # # ; O2W=20 00100000 00001010 0x20,0x0a, 511 | 7 # ## ## # 00100110 00011010 0x26,0x1a, 512 | 8 # # # # # 00100100 01010010 0x24,0x52, 513 | 9 # C # # ; C2ENS=33 00100000 01000010 0x20,0x42, 514 | 10 # # # 00100000 01000010 0x20,0x42, 515 | 11 ############ 00111110 11111110 0x3e,0xfe, 516 | 12 0x00,0x00, 517 | 01234567890123 518 | 519 | 9,9,1, 8,3,5 20,9,6, 33,6,9,0 520 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 521 | Level 25: Acetic acid ethyl ester 522 | 523 | H O H H 8,1,24,2,8,1,8, 9,5,1,18,1,23,1,6,1,18,1,18,1,7, 9,9,3,9,1,9,0, 25, 'ACETIC ACID..',0, 524 | | # | | 525 | H-C-C-O-C-C-H 526 | | | | 527 | H H H 528 | 529 | 01234567890123 530 | 0 ############## 11111110 11111110 0xfe,0xfe, 531 | 1 # # 10000000 00000010 0x80,0x02, 532 | 2 # C H H # H# ; CNESW=18 HE=5 HS=8 HN=9 10000000 00010010 0x80,0x12, 533 | 3 # #### ### # 10111100 01110010 0xbc,0x72, 534 | 4 # H # C # ; HN=9 CNESW=18 10000100 00000010 0x84,0x02, 535 | 5 ### # # #### 11100100 10011110 0xe4,0x9e, 536 | 6 # H# H O # ; HN=9 HS=8 O2S=24 10000100 00000010 0x84,0x02, 537 | 7 # # ### # 10100000 01110010 0xa0,0x72, 538 | 8 # ## # # 10001100 00010010 0x8c,0x12, 539 | 9 # # # # 10001000 00010010 0x88,0x12, 540 | 10# C CHO H ## ; C2NEW=23 CNESW=18 HW=7 OEW=6 HS=8 10000000 00000110 0x80,0x06, 541 | 11## ## # # 11011000 10000010 0xd8,0x82, 542 | 12 ############# 01111110 11111110 0x7e,0xfe, 543 | 01234567890123 544 | 545 | 18,2,2, 5,4,2, 8,7,2, 9,12,2, 9,2,4, 18,7,4, 9,4,6, 8,8,6, 24,11,6, 23,3,10, 18,6,10, 7,7,10, 6,8,10, 8,10,10,0, 546 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 547 | Level 26: Ammonia 548 | 549 | H 12, 12,5,1,34, 15,13,0, 26, 'AMMONIA',0, 550 | / 551 | H-N 552 | \ 553 | H 554 | 555 | 01234567890123 556 | 0 ############## 11111110 11111110 0xfe,0xfe, 557 | 1 # # 10000000 00000010 0x80,0x02, 558 | 2 # # ## # 10010010 10000010 0x92,0x82, 559 | 3 #### N # # ; NWSENE=34 11110000 00010010 0xe0,0x12, 560 | 4 ## # # # 11000010 00100010 0xc2,0x42, 561 | 5 # # # # # # 10001010 01010010 0x8a,0x52, 562 | 6 # ## # # # 10011000 01010010 0x98,0x52, 563 | 7 # H # # ; HE=5 10000000 01000010 0x80,0x42, 564 | 8 # #### ### 10011110 00001110 0x9e,0x0e, 565 | 9 # #H H # ; HNW=13 HSW=12 10010000 00000010 0x90,0x02, 566 | 10# # ### # 10010000 11100010 0x90,0xe2, 567 | 11# # # 10000000 10000010 0x80,0x82, 568 | 12############## 11111110 11111110 0xfe,0xfe, 569 | 01234567890123 570 | 571 | 34,5,3, 5,4,7, 13,4,9, 12,9,9,0, 572 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 573 | Level 27: 3-Methyl-Pentane 574 | 575 | H H H 11,1,8,1,12, 11,8,1,8,1,27,1,8,1,8, 9,5,1,18,1,18,1,18,1,18,1,18,1,7, 9,9,1,9,1,9,1,9,1,9,0, 27,'3-METHYL-PE..',0, 576 | \|/ 577 | H H C H H 578 | | | | | | 579 | H-C-C-C-C-C-H 580 | | | | | | 581 | H H H H H 582 | 583 | 01234567890123 584 | 0 ##### ####### 11111000 11111110 0xf8,0xfe, 585 | 1 # H# #C H # ; HN=9 CNESW=18 NS=8 10001000 10000010 0x88,0x82, 586 | 2 # ### # H # ; NS=8 10111000 10000010 0xb8,0x82, 587 | 3 # # # ###H# ; HSE=11 10001000 10111010 0x88,0xba, 588 | 4 #H C# #C # # ; HN=9 CNESW=18 CNWNNES=27 10001000 10001010 0x88,0x8a, 589 | 5 # # # # #C#H# ; CNESW=18 HN=9 10101000 10101010 0xa8,0xaa, 590 | 6 ### #### # # 11101110 10100010 0xee,0xa2, 591 | 7 # H ### ; HN=9 10000000 00001110 0x80,0x0e, 592 | 8 # H ####C # ; HS=8 CNESW=18 10000010 11100010 0x82,0xe2, 593 | 9 # H H H # ; HS=8 HS=8 HN=9 10000000 00000010 0x80,0x02, 594 | 10# H HH####C# ; HSW=12 HE=5 HW=7 CNESW=18 10000000 01111010 0x80,0x7a, 595 | 11# # # # 10000000 01001010 0x80,0x4a, 596 | 12######### ### 11111110 11001110 0xfe,0xce, 597 | 01234567890123 598 | 599 | 9,3,1, 18,8,1, 8,11,1, 8,9,2, 11,12,3, 9,1,4, 18,3,4, 27,8,4, 18,10,5, 9,12,5, 9,8,7, 8,4,8, 18,10,8, 8,2,9, 8,6,9, 9,9,9, 12,4,10, 5,6,10, 7,7,10, 18,12,10,0, 600 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | Level 28: Propanal 602 | 603 | H H 8,1,8, 12,5,1,18,1,18,1,21,1,7, 11,9,1,9,1,22,0, 28, 'PROPANAL',0, 604 | | | 605 | H-C-C-C-H 606 | | | # 607 | H H O 608 | 609 | 01234567890123 610 | 0 ######### 11111110 11000000 0xfe,0xc0, 611 | 1 # # # 10010000 01000000 0x90,0x40, 612 | 2 # H O # ; HN=9 O2N=22 10000000 01000000 0x80,0x40, 613 | 3 # H### ### ; HE=5 10011100 01110000 0x9c,0x70, 614 | 4 # # C # ; C2SEW=21 10010000 00010000 0x90,0x10, 615 | 5 #H # # ; HS=8 10000100 00010000 0x84,0x10, 616 | 6 ## # # 11000010 00010000 0xc4,0x10, 617 | 7 # # #C# # ; CNESW=18 10010010 01010000 0x92,0x50, 618 | 8 # C#### #H# ; CNESW=18 HW=7 10011110 01010000 0x9e,0x50, 619 | 9 # H #H# # ; HS=8 HN=9 10000010 01010000 0x82,0x50, 620 | 10# # # 10000010 00010000 0x82,0x10, 621 | 11########### 11111110 11110000 0xfe,0xf0, 622 | 12 0x00,0x00, 623 | 01234567890123 624 | 625 | 9,4,2, 22,6,2, 5,2,3, 21,8,4, 8,1,5, 18,7,7, 18,2,8, 7,9,8, 8,4,9, 9,7,9,0, 626 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | Level 29: Propyne 628 | 629 | H 8, 11,5,1,35,1,36,1,18,1,7, 13,9,0, 29, 'PROPYNE',0, 630 | | 631 | H-C#C-C-H 632 | | 633 | H 634 | 635 | 01234567890123 636 | 0 ############## 11111110 11111110 0xfe,0xfe, 637 | 1 # # # 10000000 00100010 0x80,0x22, 638 | 2 # ## # H## # ; HS=8 10011010 00110010 0x9a,0x32, 639 | 3 # # H # ; HW=7 10010000 00000010 0x90,0x02, 640 | 4 # # C## # ; C3Ew=35 10010000 11000010 0x90,0xc2, 641 | 5 # ## # 10000000 00011010 0x90,0x1a, 642 | 6 ###### H C# ; HN=9 C3WE=36 11111100 00000010 0xfc,0x02, 643 | 7 # ### # # 00000100 11101010 0x04,0xea, 644 | 8 # # # # 00000100 01001010 0x04,0x4a, 645 | 9 ## # 00001100 00000010 0x0c,0x02, 646 | 10 #H C #### ; HE=5 CNESW=18 00001000 00011110 0x08,0x1e, 647 | 11 # ## 00001000 00110000 0x08,0x30, 648 | 12 ###### 00001110 11100000 0x0e,0xe0, 649 | 01234567890123 650 | 651 | 8,8,2, 7,11,3, 35,6,4, 9,10,6, 36,12,6, 5,5,10, 18,8,10,0, 652 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | -------------------------------------------------------------------------------- /loderunner/loderunner.hex: -------------------------------------------------------------------------------- 1 | :102000001DFE28FFFF55FC29559E375530B0559CC5 2 | :10201000341D50284A3F555D28275E3F22005B272C 3 | :10202000203F4A3F5B16205530B01D0528613F1DFB 4 | :102030000128603F4A623F4A643F556C3E55FC2987 5 | :10204000555233556E3B555D28275F3F22005B623A 6 | :102050002055632A552C2627963F22005B88202690 7 | :102060001621278E3F28893F278F3F288A3F2790B8 8 | :102070003F288B3F278C3F0922095D7F201D0728C1 9 | :102080008D3F555D282632293B963F3F613F2761B2 10 | :102090003F22005C9C20559A39263D201D0A28CC01 11 | :1020A000BC1D0928CDBC555C3C20202A2A2A2A2A9E 12 | :1020B0002A2A2A2A2A2A2020001D0A28CCBC1D0AE6 13 | :1020C00028CDBC555C3C202A2047414D45204F5629 14 | :1020D0004552202A20001D0A28CCBC1D0B28CDBC4F 15 | :1020E000555C3C20202A2A2A2A2A2A2A2A2A2A2AF5 16 | :1020F000202000552AB0559A39559E3755A43522CF 17 | :10210000005C0721555937559C34552AB0559A39EA 18 | :10211000262720263D2027593C22015C8820275A6B 19 | :102120003C22015B2E211D0128613F268820279239 20 | :102130003F22005B832127943F22005B8321279865 21 | :102140003F22005C83211D0028983F285D3F275DCA 22 | :102150003F220F635B7321558D393E613F3E603FE7 23 | :1021600027603F22975B70211D0128603F5530B0EA 24 | :10217000263D205562283E5D3F6650740155493822 25 | :10218000264E21279A3F22005C91213F9A3F26ACA0 26 | :1021900021279B3F22005CAC213E9C3F279C3F2295 27 | :1021A000065BAC211D00289B3F289C3F278E3F28C3 28 | :1021B000893F278F3F288A3F27903F288B3F2799C9 29 | :1021C0003F22005C2922556728279E3F76813F28C1 30 | :1021D000413F279F3F283E3F27A03F283F3F27A161 31 | :1021E0003F28403F55DB3A3F9E3F5C0E22279E3FF3 32 | :1021F00076813F28413F279F3F283E3F27A03F2829 33 | :102200003F3F27A13F28403F55DB3A2632293B99E3 34 | :102210003F27953F22005C1E221D072620221D0A13 35 | :10222000288D3F55772826322927973F22005C8D3D 36 | :1022300022278B3F1E02288B3F3E943F27943F224C 37 | :10224000075B47223B943F27943F22005B32293EA5 38 | :10225000923F1D1C4F873F27913F1E1D5755D62784 39 | :102260005822045B692226872227913F1E39575541 40 | :10227000D6275822015C872222025C872222035C37 41 | :10228000872222065B8A223B973F263229275E3F20 42 | :1022900022005B982226322927533C22015BAF2380 43 | :1022A00027913F1E1E5755D6275822015CDA22225D 44 | :1022B000025CDA2222315CDA2227943F22005CE5BC 45 | :1022C0002227913F1E3A5755D6275822015CDA2221 46 | :1022D00022025CDA2222315BE52227933F22015B56 47 | :1022E000E52226322927913F221B5BF82227933FC4 48 | :1022F00022015BF82226322927913F1E1D5755D611 49 | :10230000275822045B2A2327943F22005B2A232795 50 | :102310008C3F22105D1F2322125E1F232621231DC6 51 | :1023200012766B3F288D3F263A23278C3F22095D8A 52 | :1023300034231D09766B3F288D3F1D024F893F3E98 53 | :10234000933F27933F22075B4C231D0028933F2296 54 | :10235000005B57233E913F1D0128953F27933F2265 55 | :10236000005C672326322927913F1E1D5755D6272B 56 | :102370005822045B812327943F22005B812326326D 57 | :102380002927913F1E395755D6275822005CAC2388 58 | :1023900022FF5CAC2322045CAC2322055CAC23222C 59 | :1023A000315CAC2322325CAC2326322926CB282791 60 | :1023B000543C22015BCE2427913F1E1C5755D62743 61 | :1023C0005822015CF12322025CF12322315CF123CB 62 | :1023D00027943F22005CFC2327913F1E385755D697 63 | :1023E000275822015CF12322025CF12322315BFC9D 64 | :1023F0002327933F22005BFC2326322927913F228B 65 | :10240000005B0F2427933F22005B0F2426322927ED 66 | :10241000913F1E1D5755D6275822045B412427940F 67 | :102420003F22005B4124278C3F22135D3624221576 68 | :102430005E36242638241D15766B3F288D3F26599D 69 | :1024400024278C3F220A5D5124220C5E51242653FE 70 | :10245000241D0C766B3F288D3F1D0250893F3F9312 71 | :102460003F27933F22FF5B6B241D0628933F2206E4 72 | :102470005B76243F913F1D0028953F27933F220024 73 | :102480005C862426322927913F1E1D5755D6275892 74 | :1024900022045BA02427943F22005B81232632295B 75 | :1024A00027913F1E395755D6275822005CCB24224E 76 | :1024B000FF5CCB2422045CCB2422055CCB2422319C 77 | :1024C0005CCB2422325CCB2426322926CB2827560B 78 | :1024D0003C22015B7A2527913F1E1D5755D6275870 79 | :1024E00022035B042527913F1E395755D6275822D2 80 | :1024F000015C012522025C012522065C01252632B1 81 | :102500002526322927913F1E395755D627582200B4 82 | :102510005C2F2522045C2F2522055C2F2522315CAF 83 | :102520002F2522325C2F2522035C322526322926D4 84 | :10253000CB2827913F28683F27923F28693F555075 85 | :102540003A273E3F28893F273F3F288A3F1D0028E2 86 | :10255000933F1D02408B3F3E943F27943F22075BF1 87 | :1025600067251D0028943F27943F22005B77253E76 88 | :10257000923F1D1C4F873F26B32827553C22015B05 89 | :10258000DF2627913F095755D6275822015C9A2507 90 | :1025900022025C9A2522315BA52527943F22005B0D 91 | :1025A000A52526322927913F1E1D5755D62758228B 92 | :1025B000035CD12527943F22005BBF2526322927C3 93 | :1025C000913F1E395755D6275822035CD125263214 94 | :1025D0002927923F22005BE42527943F22005BE4F9 95 | :1025E0002526322927913F28683F27923F28693FB7 96 | :1025F00055503A273E3F28893F273F3F288A3F1DB5 97 | :102600000028933F1D02418B3F3F943F27943F2278 98 | :10261000FF5B19261D0628943F27943F22065B295D 99 | :10262000263F923F1D1C50873F26B3281D0F282CA4 100 | :1026300040556E3B1D34282E401D40282F40272C2E 101 | :1026400040710D794F2E40322E4022FF5CD5262757 102 | :102650002E40283040283240272F40283140283350 103 | :10266000404D30404D32404D3240322E400A332EE4 104 | :102670004022205B80261D1F282D401D1D26B526CB 105 | :1026800022105B8F261D1D282D401D1E26B52622DB 106 | :10269000FF5BB22632304028683F32324028693F23 107 | :1026A00055463A1D01335B3F1D1E282D401D012656 108 | :1026B000B52626D5265732304028683F323240288A 109 | :1026C000693F55503A272D4028413F55DB3A58285D 110 | :1026D000413F55DB3A3F2C4060DE26263126562707 111 | :1026E000573C22015CF22627583C22015CF4262646 112 | :1026F000D3271D0028953F3B573C3B583C27953F2F 113 | :1027000022005C122727913F221B5CD3271D1E2627 114 | :10271000262727913F22005CD3271D1C5727933F74 115 | :102720002200585C262729913F715755D6275822F9 116 | :10273000005C3E2722325C3E2722FF5BD327721EBD 117 | :102740001C715755D6275822015BD32766FF725755 118 | :1027500055452858661627953F22005B5F27696418 119 | :10276000288D3F27953F22005B732727933F220048 120 | :102770005C732727913F28683F27923F28693F5580 121 | :10278000503A273E3F28893F273F3F288A3F1D0078 122 | :1027900028933F1D05289E3F1D0128993F67913FC3 123 | :1027A00027953F22005CAC276926AD276A6428A2E2 124 | :1027B0003F28683F27923F0928A33F28693F55508B 125 | :1027C0003A273E3F289F3F273F3F28A03F27403FD3 126 | :1027D00028A13F26322927873F28E82727883F2836 127 | :1027E000E92759034FE8272700005A0356275B3F84 128 | :1027F00028FF27275C3F28002859034FFF27270081 129 | :10280000005A0356275B3F281728275C3F281828C3 130 | :10281000724F17285903280000561DC62840281D4E 131 | :102820003F284128720D4F4028324028574D4028FC 132 | :102830003240282841285828402859034F4028274B 133 | :1028400000005A035627873F28582827883F2859D1 134 | :102850002859034F5828642800005A03567440260C 135 | :102860006928740026692874106600556E3B6A5BFF 136 | :102870006E28785B6928561D3428573F1D4028581C 137 | :102880003F660032573F22FF5C97281D034F573F9A 138 | :10289000691D106D5B832864282C401DFE33573F53 139 | :1028A0004D573F27A23F33573F4D573F27A33F3355 140 | :1028B000573F56278C3F220D5CC228220E5CC2284F 141 | :1028C0001D0D766B3F288D3F26322975A53F279237 142 | :1028D0003F09571D0157551A28586359016D5BF67A 143 | :1028E0002827913F571D0057551A285863586D5B8C 144 | :1028F000F6285826322978585FD22827913F286831 145 | :102900003F27923F28693F55503A273E3F28893F4D 146 | :10291000273F3F288A3F3B933F27913F1E1D575536 147 | :10292000D6275822035C32291D0128973F1D0F2806 148 | :102930008D3F55C33A27893F288E3F278A3F288FEE 149 | :102940003F278B3F28903F278D3F288C3F55C33A28 150 | :1029500027913F1E1D5755D6275822055C6A29220C 151 | :10296000015B672928963F26F92927873F287F2979 152 | :1029700027883F28802927913F1E1D4F7F293B0034 153 | :102980000027913F28683F27923F28693F55503ADA 154 | :102990001D0528413F55DB3A665074025549381DE4 155 | :1029A00005289A3F3F6A3F5BF9291D0128983F2877 156 | :1029B0009B3F1D0028683F28693F1D8E28573F1DFB 157 | :1029C0004928583F32573F22325BDA291D033357DB 158 | :1029D0003F28413F55503A55DB3A4D573F3E683FFF 159 | :1029E00027683F221C5BC4293E693F27693F2211AB 160 | :1029F0005CF9293B683F26C4292643201D3428570B 161 | :102A00003F1D4028583F660F1DFF33573F1D034FA2 162 | :102A1000573F6A5F082A1DD228573F1D3F28583F5D 163 | :102A20006606740E1D0033573F4D573F785B242ACE 164 | :102A30006A5B222A3B973F3B983F3B993F3B523C86 165 | :102A40003B533C3B543C3B553C3B563C3B573C3B4F 166 | :102A5000583C3B593C3B5A3C3B5E3F1D01285F3F85 167 | :102A60005600001DFF28A63F3EA63F27A63F220690 168 | :102A70005C932A55BC3D32BC3F0933BC3F23012245 169 | :102A8000015C682A27A63F2DA53F5CA62A5E942AF2 170 | :102A900026A62A5666027440556E3B785B982A6AD1 171 | :102AA0005B982A26682A32B23F28893F32B43F28F1 172 | :102AB0008A3F32B63F288B3F32B83F28A73F32BA11 173 | :102AC0003F22005C302B1D02408B3F32B03F093368 174 | :102AD000B03F22075BE32A1D0033B03F32AC3F0911 175 | :102AE00033AC3F32B03F22005B282B32AC3F286929 176 | :102AF0003F32AA3F28683F55463A325B3F22045C8A 177 | :102B0000232B1D1C4F5B3F325B3F22015C232B229A 178 | :102B1000025C232B22035C232B22065C232B22FF47 179 | :102B20005B282B1D0033BA3F57556E3B5826E931C1 180 | :102B300032BE3F22005CA42B1D02408B3F32B03FCF 181 | :102B40000933B03F22075B552B1D0033B03F32AC39 182 | :102B50003F0933AC3F32BE3F0A33BE3F5BA12B324D 183 | :102B6000C43F22005C952B32AC3F0A28693F32AA51 184 | :102B70003F28683F55463A325B3F22005B952B1D4C 185 | :102B800005335B3F28413F1D0033C43F556E3B5525 186 | :102B9000503A55DB3A1D3233C03F667574005549D3 187 | :102BA00038261B2C32C03F22005BAF2B269B2C32D9 188 | :102BB000C03F0A33C03F5BBC2B26F22C220B5CD6F5 189 | :102BC0002B220A5CE12B22095CD62B22085CE12B2C 190 | :102BD0005DEC2B261B2C556E3B1D0150893F261B9F 191 | :102BE0002C556E3B1D014F893F261B2C32B83F22CE 192 | :102BF000265CF92B1D2626FB2B1D2728A73F1D022F 193 | :102C0000418B3F32B03F0A33B03F22FF5B1B2C1D8C 194 | :102C10000633B03F32AC3F0A33AC3F32AE3F220006 195 | :102C20005B982C32AC3F28693F32AA3F28683F5559 196 | :102C30006E3B55463A325B3F22015B982C1D0033B8 197 | :102C4000AE3F33B03F33BE3F33C03F33AC3F1D8E4A 198 | :102C5000285B3F1D49285C3F75913F725755ED2712 199 | :102C60005822005C832C22325C832C7772221C5BFE 200 | :102C70005B2C1D1C4F5B3F32AC3F0933AC3F7400F3 201 | :102C8000265B2C7233AA3F1D0A33C23F1D1F28A7A3 202 | :102C90003F6675740055493826E93132C23F22003B 203 | :102CA0005CF22C22095BD12C32AC3F28693F32AA5E 204 | :102CB0003F28683F55503A273E3F28893F273F3FEE 205 | :102CC000288A3F27403F288B3F1D2F28A73F26E813 206 | :102CD0002C22065BDE2C1D3028A73F26E82C220381 207 | :102CE0005BE82C1D2828A73F32C23F0A33C23F268B 208 | :102CF000E931556E3B1D0028A83F28A93F32AC3F63 209 | :102D00002D923F5C0C2D5D1A2D267C2E32B03F2279 210 | :102D1000005C172D26CB2F26413028693F556E3B8E 211 | :102D200055233A75A53F32AA3F571D0057551A281B 212 | :102D3000586359016D5B4E2D32AC3F09571D015749 213 | :102D4000551A285863586D5B4E2D5826E93178582E 214 | :102D50005F292D32AA3F71725755ED275822015C29 215 | :102D6000942D22025C942D22315C942D721E1C57EE 216 | :102D700055ED275822005C992D22035C992D2204E1 217 | :102D80005C992D22315C992D22325C992D3EA83F11 218 | :102D9000785F572D1DFF28A83F32AA3F7172575503 219 | :102DA000ED275822015CDD2D22025CDD2D22315CF5 220 | :102DB000DD2D721E1C5755ED275822005CE22D2296 221 | :102DC000035CE22D22045CE22D22315CE22D2232F2 222 | :102DD0005CE22D3EA93F7772221C5B9D2D1DFF28D2 223 | :102DE000A93F27A83F22005C092E22FF5BFA2D276E 224 | :102DF000A93F22FF5BFA2D26E93127A83F2DA93FE5 225 | :102E00005D062E265B3026233132AE3F22005C1455 226 | :102E10002E26233132AC3F0928693F55233A32AA86 227 | :102E20003F715755ED275822005C3B2E22325C3B08 228 | :102E30002E22315C3B2E22045B482E1D0133BA3F0B 229 | :102E40001D2828A73F26E93132B83F22265C552E9F 230 | :102E50001D265B572E1D2728A73F1D02408B3F32A2 231 | :102E6000B03F0922075B6A2E1D0033B03F22005B92 232 | :102E7000E93132AC3F0933AC3F26E93128693F558F 233 | :102E80006E3B55233A75A53F32AA3F571D00575553 234 | :102E90001A28586359016D5BB02E32AC3F0A571D9A 235 | :102EA0000157551A285863586D5BB02E5826E931E2 236 | :102EB00078585F8B2E32AA3F71725755ED275822F2 237 | :102EC000045CF02E22035CD62E721E1C5755ED2793 238 | :102ED0005822005C212F725755ED275822035CFAC7 239 | :102EE0002E22015C212F22025C212F22315C212F16 240 | :102EF0003EA83F785FB92E26212F275B3F28FF276A 241 | :102F0000275C3F2800281D1C7A50FF2732FF27220C 242 | :102F1000015CF02E22025CF02E22315CF02E26267F 243 | :102F20002F1DFF28A83F32AA3F715755ED27582281 244 | :102F3000045C602F22035C462F721E1C5755ED2740 245 | :102F40005822005C942F725755ED275822035C6D70 246 | :102F50002F22015C942F22025C942F22315C942F4B 247 | :102F60003EA93F7772221C5B2A2F26942F275B3FB6 248 | :102F700028FF27275C3F2800281D1C7A50FF273296 249 | :102F8000FF2722015C602F22025C602F22315C60EF 250 | :102F90002F26992F1DFF28A93F27A83F22005CCB91 251 | :102FA0002F27A83F22FF5BB42F27A93F22FF5BB446 252 | :102FB0002F26E93132B03F22005BCB2F27A83F2DCF 253 | :102FC000A93F5DC82F265B3026233132AC3F0A284B 254 | :102FD000693F55233A32AA3F715755ED27582201D0 255 | :102FE0005CED2F22025CED2F22315BF82F32B03FD7 256 | :102FF00022005BF82F26E93132AA3F28683F55505E 257 | :103000003A273E3F28893F273F3F288A3F1D00330C 258 | :10301000AE3F32B83F22265C1F301D265B21301D9B 259 | :103020002728A73F1D02418B3F32B03F0A22FF5B9A 260 | :103030003B3032AC3F0A33AC3F1D0633B03F26E98C 261 | :103040003132AA3F2D913F5C50305E58305D5B308D 262 | :103050001D0128963F26E931262331556E3B75A583 263 | :103060003F32AC3F571D0157551A28586359016D1F 264 | :103070005B893032AA3F09571D0057551A285863FB 265 | :10308000586D5B89305826E93178585F643032AC2E 266 | :103090003F28693F55233A32AA3F095755ED275833 267 | :1030A00022015CAF3022025CAF3022315BBD303296 268 | :1030B000AE3F22015CBA3026BD3026E93132AA3F4C 269 | :1030C000715755ED275822045BEA3032B83F222968 270 | :1030D0005DDB30222C5EDB3026DD301D291F29769A 271 | :1030E00026401E2928A73F26063132B83F22205D00 272 | :1030F000FA3022235EFA3026FC301D201F2076266F 273 | :10310000401E2028A73F1D024F893F32AE3F0922B3 274 | :10311000075B1D3132AA3F0933AA3F1D0033AE3F82 275 | :1031200026E931556E3B75A53F32AC3F571D01571F 276 | :10313000551A28586359016D5B513132AA3F0A571D 277 | :103140001D0057551A285863586D5B51315826E9B0 278 | :103150003178585F2C3132AC3F28693F55233A32E1 279 | :10316000AA3F0A715755ED275822015C7831220297 280 | :103170005C783122315B833132AE3F22005B833198 281 | :1031800026E93132AA3F715755ED275822045BB02A 282 | :103190003132B83F222C5DA131222F5EA13126A30E 283 | :1031A000311D2C1F2C7626401E2C28A73F26CC3103 284 | :1031B00032B83F22235DC03122265EC03126C231A3 285 | :1031C0001D231F237626401E2328A73F1D0250895A 286 | :1031D0003F32AE3F0A22FF5BE33132AA3F0A33AAF5 287 | :1031E0003F1D0633AE3F26E931556E3B32AE3F22DE 288 | :1031F000005B943232BE3F22005B943232C03F22E9 289 | :10320000005B943232C23F22005B943232AC3F28E2 290 | :10321000693F55233A32AA3F715755ED275822048A 291 | :103220005C943222035C9432721E1C715755ED2758 292 | :103230005822005C873222325C873222315C87322E 293 | :1032400022045C873222055C873222FF5B94327550 294 | :10325000A53F32AC3F09571D0157551A28586359ED 295 | :10326000016D5B7A3232AA3F571D0057551A285814 296 | :1032700063586D5B7A325826943278585F56321D07 297 | :103280000733BE3F268C321D0133BA3F1D2828A7C5 298 | :103290003F26143332AC3F28693F55233A32AA3FC8 299 | :1032A0007132C43F22005CDE3232B03F22005B1438 300 | :1032B00033725755ED275822005B143372284C3F68 301 | :1032C0001E1C5755ED275822035B14331D0033C4D1 302 | :1032D0003F754C3F1D05575504285826FD3232AE28 303 | :1032E0003F22005B1433725755ED275822055B14BB 304 | :1032F000331D0133C43F1D00575504285832AA3FDF 305 | :1033000028683F32AC3F28693F1D0528413F555092 306 | :103310003A55DB3A55363327893F33B23F278A3F48 307 | :1033200033B43F278B3F33B63F27A73F33B83F55D2 308 | :10333000363326682A5632B23F283E3F32B43F2801 309 | :103340003F3F32B63F28403F32B83F28413F55DB30 310 | :103350003A565530B03B6A3F3B973F1DFF28A53F8B 311 | :1033600055863A1D8E28423F1D4928433F3B683F02 312 | :103370003B693F32423F22005C4C3422325C4C3489 313 | :1033800022315B8A331D012643345755503A582267 314 | :10339000075BDF3357288D3F288C3F273E3F288E21 315 | :1033A0003F273F3F288F3F27403F28903F27683FD8 316 | :1033B00028913F27693F28923F3B973F3B933F3BF4 317 | :1033C000943F55233A275B3F28873F275C3F288857 318 | :1033D0003F1D1D50873F1D0033423F582643342276 319 | :1033E000235B3934571D0033423F3EA53F27A53F9D 320 | :1033F00022055BFC333FA53F58264C3427A53F28C8 321 | :10340000A63F5755BC3D5833BC3F1D2333B83F271B 322 | :103410003E3F33B23F273F3F33B43F27403F33B6B1 323 | :103420003F27683F33AA3F27693F33AC3F1D003336 324 | :10343000AE3F33B03F5826433422055B4334573EFA 325 | :103440006A3F5828413F55503A55DB3A4D423F3E7E 326 | :10345000683F221C5B73333B683F3E693F22105B31 327 | :103460007333554F391D1728CDBC1D0128CCBC55D1 328 | :103470005C3C53434F5245001D1328CCBC555C3C6B 329 | :103480004D454E001D1E28CCBC555C3C4C45564558 330 | :103490004C0055E53855F838559938561D0328CD58 331 | :1034A000BC1D0928CCBC555C3C434C41535349439B 332 | :1034B000204C4F44452052554E4E4552003ECDBC07 333 | :1034C0003ECDBC1D0A28CCBC555C3C4C4F43414C06 334 | :1034D00020484947482053434F524553003ECDBCF6 335 | :1034E0003ECDBC1D0528CCBC555C3C4E4F20202059 336 | :1034F0004E414D45202020202020204C4556454C53 337 | :103500002053434F5245005547391D0928CDBC1D56 338 | :103510006A285B3F1D4B285C3F66011D0428CCBC1C 339 | :1035200064220A5B37351D3157558D3C581D305785 340 | :10353000558D3C582646351D3057558D3C58641ED8 341 | :103540003057558D3C581D2E57558D3C581D034FF7 342 | :10355000CCBC1D0B284F3F325B3F57558D3C584D1F 343 | :103560005B3F3F4F3F5B5735325B3F22005B75351A 344 | :103570001D05269635573ECCBC550B39581D024FBC 345 | :10358000CCBC4D5B3F275B3F28663F275C3F2867ED 346 | :103590003F55AD381D044F5B3F3ECDBC6964220BE7 347 | :1035A0005B1B35561D6A285B3F1D4B285C3F1D0F7A 348 | :1035B0004F5B3F1D0A2858376604275B3F28573F5B 349 | :1035C000275C3F28583F1D6528593F1D3F285A3F1B 350 | :1035D00032573F284B3F32593F2D4B3F5CF0355E11 351 | :1035E00008361D104F5B3F3F58375C553726B835BE 352 | :1035F0004E593F4E573F6A5BD0353F58375C553781 353 | :103600001D104F5B3F26B8353F58375C443627586E 354 | :1036100037102858371D0F505B3F1D0A28573F2889 355 | :10362000593F1D4C28583F285A3F1D1050573F4EB8 356 | :10363000573F4E593F32573F33593F3F58375B2F23 357 | :10364000362649361D0F505B3F1D0A28CCBC1D098C 358 | :1036500028CDBC555C3C20202A2A2A2A2A2A2A2A3C 359 | :103660002A2A2A2A2A2A2A2A2A2A2A2020001D0A25 360 | :1036700028CCBC1D0B28CDBC555C3C20202A2A2A16 361 | :103680002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A9A 362 | :103690002020001D0A28CCBC1D0A28CDBC555C3C4E 363 | :1036A000202A204E414D453A202020202020202055 364 | :1036B00020202020202A2000660B1D1328CCBC557A 365 | :1036C0002AB022085CFB36220A5C1A37220D5C1AEB 366 | :1036D0003722305DBF3622615DDD361F20225B5E02 367 | :1036E000BF36335B3F574D5B3F558D3C586A5BBFE0 368 | :1036F000364E5B3F693FCCBC26BF3664220B5CBFB5 369 | :10370000364E5B3F1D20335B3F693FCCBC1D2057CD 370 | :10371000558D3C583FCCBC26BF36646A5D2A371DA8 371 | :1037200020335B3F4D5B3F261A3727603F335B3FBB 372 | :103730004D5B3F1D6228593F1D3F285A3F660432AA 373 | :10374000593F335B3F4D593F4D5B3F6A5B3F3755B8 374 | :1037500030B01D01561D0056001DF128B0BC1D37AC 375 | :1037600028B1BC5515B022005C9E37660A1D0501C4 376 | :103770001DAA2855051D02011D5528AA0A1D05016F 377 | :103780001DA028550527B7BC011D0033B5BC6A5DD7 378 | :103790009D3732B5BC22005B8E37269E37561DF111 379 | :1037A00028B0BC1D3728B1BC5515B022005BC4370A 380 | :1037B0001D6A571D4B571D09571D4C57551BB058B7 381 | :1037C000585858561D184FB5BC55283F66A01D6A5D 382 | :1037D00028B8BC1D4B28B9BC32B5BC0233B8BC27D5 383 | :1037E000B7BC014DB5BC4DB8BC55283F6A5BD83756 384 | :1037F000566869676873636F72652E6C7200552036 385 | :103800003827453828443827473819284738274863 386 | :103810003819284838552038274538104544385637 387 | :10382000274738230F4046382845383B4638274835 388 | :1038300038230F40453822096243381F0A2845388B 389 | :103840003E46385600000000003B463864284738A2 390 | :1038500027623F28483855FE3727443828623F7290 391 | :1038600028473827633F28483855FE3727443828EB 392 | :10387000633F3B473827643F28483855FE37274485 393 | :103880003828643F3B473827653F28483855FE377E 394 | :1038900027443828653F2699381D1728CDBC1D07B9 395 | :1038A00028CCBC1D6228663F1D3F28673F1D034F83 396 | :1038B000663F32663F230F1E3057558D3C581D0220 397 | :1038C000284D3F4E663F32663F5719230F1E305733 398 | :1038D000558D3C5858230F1E3057558D3C583F4D41 399 | :1038E0003F5FC338561D1728CDBC1D1728CCBC27F9 400 | :1038F000613F57550B3958561D1728CDBC1D24283C 401 | :10390000CCBC27603F57550B3958561D64284D3F96 402 | :103910001D02284C3F59033B4E3F573E4E3F582A0D 403 | :103920004D3F5F1A39294D3F57274E3F1E2F5755A0 404 | :103930008D3C581D0A284D3F3F4C3F585B17391EA0 405 | :103940003057558D3C58561DD7284B3F2654391DAE 406 | :10395000FB284B3F1D4C284A3F284C3F284E3F2711 407 | :103960004B3F284D3F284F3F1D404F4C3F1D804F40 408 | :103970004E3F66311DFF334A3F334C3F334E3F4D80 409 | :103980004A3F4D4C3F4D4E3F6A5F7439561D782873 410 | :103990004C3F1D77284D3F26A4391D00284C3F1D64 411 | :1039A000EF284D3F7478274C3F284A3F55033A276C 412 | :1039B0004A3F28D539274B3F28D639274D3F284A3B 413 | :1039C0003F55033A274A3F28D839274B3F28D93952 414 | :1039D00066311D002800002800004DD5394DD8392A 415 | :1039E0006A5FD2393B4A3F1D20284B3F3F4A3F5B2D 416 | :1039F000EC393F4B3F5BEC393E4C3F3F4D3F785BF2 417 | :103A0000A639563B4B3F534A3F534A3F534A3F53D5 418 | :103A10004A3F534A3F534A3F1D0C4F4A3F1DC34044 419 | :103A20004B3F5627693F0E57285B3F3B5C3F535B3C 420 | :103A30003F535B3F535B3F58505B3F1D8E405B3FA6 421 | :103A40001D49425C3F5655233A27683F4F5B3F561E 422 | :103A500027683F0D284B3F283E3F3B3F3F533E3FAB 423 | :103A6000533E3F533E3F274B3F503E3F27693F0D5C 424 | :103A7000284B3F28403F46403F46403F46403F2777 425 | :103A80004B3F41403F5655DF3E1D8E28473F1D4866 426 | :103A900028483F1D8E28423F1D4928433F66E0329B 427 | :103AA000473F57230F76644033423F4D423F5819FA 428 | :103AB000230F76644033423F4D423F4D473F6A5BA0 429 | :103AC0009F3A56278E3F283E3F278F3F283F3F276C 430 | :103AD000903F28403F278C3F28413F273E3F230708 431 | :103AE00028503F27403F1228473F27403F1B233F96 432 | :103AF0001EC328483F273F3F0A273E3F1A233F1E49 433 | :103B00000C45473F27413F0D6368744228443F6995 434 | :103B100068744228453F1D0E28493F32443F2851D2 435 | :103B20003F4D443F32443F28523F3B533F67503F55 436 | :103B30006A5D3E3B53513F48533F6A5E343B3247D8 437 | :103B40003F30513F33473F4D473F32473F30523F71 438 | :103B500033473F4D473F32473F30533F33473F1D89 439 | :103B60003E4F473F4D443F3F493F5B1B3B5605227D 440 | :103B7000FF5CAE3B22F05C2D3C3B5F3F226B5CAFB9 441 | :103B80003B22745CBE3B22755CCD3B22725CDC3B0D 442 | :103B9000221A5CEB3B22225CFA3B22155C153C228C 443 | :103BA0001C5C093C225A5C213C22295C213C5627A2 444 | :103BB0005E3F28543C2401285E3F3B533C56275E21 445 | :103BC0003F28533C2401285E3F3B543C56275E3F30 446 | :103BD00028553C2401285E3F3B563C56275E3F2833 447 | :103BE000563C2401285E3F3B553C56275E3F2857F4 448 | :103BF0003C2401285E3F3B583C56275E3F28583CFA 449 | :103C00002401285E3F3B573C56275E3F28593C2401 450 | :103C100001285E3F56275E3F285A3C2401285E3F1C 451 | :103C200056275E3F285B3C2401285E3F563B523CB2 452 | :103C30000522FF5B4C3C000000000000000000007B 453 | :103C40000000003E523C5D303C26AE3B3B5E3F26D2 454 | :103C5000793B0000000000000000000059012858D6 455 | :103C60003F590228573F4D573F4D573F32573F224C 456 | :103C7000005B823C4E573F27573F5A0227583F5A16 457 | :103C8000015657558D3C584D573F266C3C3B3F3FA6 458 | :103C900027CCBC0D283E3F57533E3F533E3F584F25 459 | :103CA0003E3F273E3F57273F3F5727CDBC0D28407B 460 | :103CB0003F0E29403F5759065755DD3C5858585834 461 | :103CC0003ECCBC27CCBC22285DDC3C3BCCBC3ECDF2 462 | :103CD000BC27CDBC22185DDC3C3BCDBC5659041240 463 | :103CE00028473F59041B233F1EC328483F59050A54 464 | :103CF00059061A233F1E0C45473F590623072850F3 465 | :103D00003F1D0A28493F590322605EBB3D1F205DCD 466 | :103D1000BB3D28443F3B453F53443F53443F5344FE 467 | :103D20003F1D744F443F1D4040453F4E443F27498F 468 | :103D30003F220A5C443D22015C443D4D443F3244F5 469 | :103D40003F26463D1D0028513F3B523F3B533F3BE2 470 | :103D5000543F1DFC28553F1DFF28563F75503F78A6 471 | :103D60005D743D53513F48533F0C54543F48563FB8 472 | :103D7000785E633D27543F39473F33473F27513FE4 473 | :103D80003A473F33473F4D473F27553F39473F333A 474 | :103D9000473F27523F3A473F33473F4D473F27561C 475 | :103DA0003F39473F33473F27533F3A473F33473F2A 476 | :103DB0001D3E4F473F3F493F5B2E3D561DC628AA3B 477 | :103DC0003F1D3F28AB3F27A63F0D4FAA3F32AA3FDA 478 | :103DD000574DAA3F32AA3F28AB3F28AD3F28AF3FFF 479 | :103DE00028B13F28B33F28B53F28B73F28B93F281F 480 | :103DF000BB3F28BD3F28BF3F28C13F28C33F28C540 481 | :103E00003F5828AA3F28AC3F28AE3F28B03F28B2F1 482 | :103E10003F28B43F28B63F28B83F28BA3F28BC3FC8 483 | :103E200028BE3F28C03F28C23F28C43F4DAC3F1D9D 484 | :103E3000024FAE3F1D034FB03F1D044FB23F1D0563 485 | :103E40004FB43F1D064FB63F1D074FB83F1D084FEB 486 | :103E5000BA3F1D094FBC3F1D0A4FBE3F1D0B4FC04F 487 | :103E60003F1D0C4FC23F1D0D4FC43F561D9E28B035 488 | :103E7000BC1D3E28B1BC5515B022005BAD3E555C63 489 | :103E80003C4C4F444552554E4E45522E44415420D1 490 | :103E90004E4F5420464F554E442E00269B3E6C6F8D 491 | :103EA000646572756E6E65722E646174001D164FC6 492 | :103EB000B5BC55283F32B5BC28B8BC4DB5BC55285B 493 | :103EC0003F32B5BC28B9BC4DB5BC55283F27B5BC61 494 | :103ED00028BBBC27B6BC28BCBC27B7BC28BDBC27A8 495 | :103EE000BBBC28B5BC27BCBC28B6BC27BDBC28B70A 496 | :103EF000BC67603F6A5C033F1DE04FB5BC55283F7F 497 | :103F000026F43E66E01D8E28B8BC1D4828B9BC3298 498 | :103F1000B5BC0233B8BC27B7BC014DB5BC4DB8BC6D 499 | :103F200055283F6A5B0F3F5627B6BC19230F220066 500 | :103F30005C3C3F40B7BC011D0F44B6BC56000000BE 501 | :103F40000000000000000000000000000000000071 502 | :103F500000FFFFFFFFFFFF00000000000000000067 503 | :103F60000105000000000000000000000102030441 504 | :103F700005060809070B0C0A0E0D0F111210141577 505 | :103F8000131C1B1A1918010000000000000000009B 506 | :103F90000000000000000000000000000000000021 507 | :103FA0000000000000000000000000000000000011 508 | :103FB0000000000000000000000000000000000001 509 | :103FC000000000000000D23FE03FEE3FFC3F0A400F 510 | :103FD0001840000000000000000000000000000089 511 | :103FE00000000000000000000000000000000000D1 512 | :103FF00000000000000000000000000000000000C1 513 | :1040000000000000000000000000000000000000B0 514 | :1040100000000000000000000000000000000000A0 515 | :104020000000000000000102000405030000000081 516 | :104030000000000000000000000000000000000080 517 | :104040000000000000000000000000000000000070 518 | :104050000000000000000000000000000000000060 519 | :1040600000000000000102030431320523070000B4 520 | :104070000000000000000000000000003838383860 521 | :1040800020200030003636240000000066FFFF6666 522 | :1040900066FFFF66187E037EE0E07E18C7E577388E 523 | :1040A0001CEEA7E3060909466D1171CE000C0C0841 524 | :1040B00000000000381C0E0E0E0E1C381C387070EC 525 | :1040C0007070381C995A3CFFFF3C5A99181818FF19 526 | :1040D000FF181818000000000C0C0804000000FF76 527 | :1040E000FF00000000000000000C0C00C0E0703871 528 | :1040F0001C0E0703FFC3C3C3F3F3F3FF1E1E181800 529 | :1041000018187E7EFFC3C0FF0303F3FFFFC3C0FC8C 530 | :10411000C0C0C3FFCFCFCFFFC0C0C0C0FF0303FFED 531 | :10412000F0F0F0FFFFC303FFE3E3E3FFFFF0F0F085 532 | :104130003C0C0C0CFCCCCCFFC3C3C3FFFFC3C3FFC0 533 | :10414000F0F0F0F0000C0C00000C0C00001818004F 534 | :10415000181810080606000C1CD8C000000000004B 535 | :1041600000DBDB0060600030381B03003C6270380D 536 | :10417000181800183C4299A54539027CFCCCCCFFAC 537 | :10418000C3C3F3F33F3333FFC3C3C3FFFFC303030F 538 | :104190000F0FCFFF3FC3C3C3CFCFCF3FFF0F0F3FA3 539 | :1041A000030303FFFF0F0F3F03030303FFC30303D7 540 | :1041B000F3F3C3FFC3C3C3FFCFCFCFCF0808083883 541 | :1041C00038383838202020E0E0E0E3FFC3E3733FD5 542 | :1041D000FFCFCFCF0303030F0F0F0FFFC3CFFFFF9F 543 | :1041E000C3C3C3C3C3C3CFFFFFF3C3C3FFF3F3F31F 544 | :1041F000C3C3C3FFFFC3C3FF0F0F0F0FFFF3F3C30F 545 | :10420000C32363DFFFC3C3FF3F3FCFCFFFC303FF22 546 | :10421000F0F0F3FFFF0C0C3C3C3C3C3CC3C3C3CF71 547 | :10422000CFCFCFFFCFCFCFCFCFFF3C0CC3C3C3C3C4 548 | :10423000FFFFCFC3C3C3C33C3CC3C3C3F3F3F3FF0C 549 | :104240003C3C3C3CFF8180F83F01C1FF00C0D81CD2 550 | :104250000C00060600DBDB000000000000031B383A 551 | :10426000300060600606001818000606606000183E 552 | :1042700018006060DE42FA42164332434E436A43FE 553 | :104280008643A243BE43DA43F64312442E444A44D3 554 | :10429000664482449E44BA44D644F2440E452A45BC 555 | :1042A000464562457E459A45B645D245EE450A46A5 556 | :1042B000264642465E467A469646B246CE46EA468E 557 | :1042C000064722473E475A4776479247AE47CA4776 558 | :1042D000E64702481E483A485648724872485455C4 559 | :1042E000A8AA5455A8AA5455A8AA5455A8AA5455E2 560 | :1042F000A8AA5455A8AA5455A8AAFCE7FCE7FCE7CD 561 | :10430000FCE7FCE7FCE700009CFF9CFF9CFF9CFF98 562 | :104310009CFF9CFF0000FCFFFCFFFCFFFCFFFCFF80 563 | :10432000FCFFFCFFFCFFFCFFFCFFFCFFFCFFFCFFB5 564 | :104330000000186018601860F87FF87F1860186037 565 | :10434000186018601860F87FF87F18601860000027 566 | :10435000FCFF000000000000000000000000000062 567 | :10436000000000000000000000000000000000004D 568 | :1043700000000000000000000000C00FC00A400D57 569 | :10438000C00A400DC00FFCFFFCFFFCFF0000000056 570 | :10439000000000000000000000000000000000001D 571 | :1043A000000000000006000F000B800F6003B00F3C 572 | :1043B000803280028007F80C780C000C000C0000A2 573 | :1043C0000006000F000B800FC003E00F901A800260 574 | :1043D0008007000E000F8003000300000006000F9E 575 | :1043E000000B800F6003B013801E80028007C00C9A 576 | :1043F00060183018300000008001C0034003C0077F 577 | :10440000001BC037300500058007C07CC078C000A5 578 | :10441000C00000008001C0034003C007000FC01FA0 579 | :10442000602500058007C001C003000700030000ED 580 | :104430008001C0034003C007001B2037E0050005D2 581 | :104440008007C00C6018603000300000000C000EC7 582 | :10445000000E200EE027003E000A000A000F80191F 583 | :10446000C019C01900380000C000C001C001C0114F 584 | :10447000901FF00140014001C0036006600E600E15 585 | :10448000700000001831983398339831F01F800382 586 | :1044900080028002C007C00CC00CC00CC00000002D 587 | :1044A0001831983398331013F01F80030003000372 588 | :1044B0008007C004C004C0060006000030623067F8 589 | :1044C00030672026E03F000700060006000F800945 590 | :1044D0008009800D000C30003000B001E001C00107 591 | :1044E000800F801B800280028003C006C006C006C9 592 | :1044F0000000003000300036001E000EC0076007CC 593 | :10450000000500050007800D800D800D0000303093 594 | :10451000B031B031E031C01F8003800280028003DF 595 | :10452000800E801880190013000030003000B001A8 596 | :10453000E001C001800F801B800280028003C00662 597 | :10454000C006C0060000003000300036001E000E1D 598 | :10455000C0076007000500050007800D800D800D75 599 | :10456000000000000006000F000B800F6003B00F7A 600 | :10457000807280628007C00CC00CC00CC00C0000B0 601 | :10458000000000000000000000000000000000002B 602 | :104590000000000000000000000000010001DC013C 603 | :1045A0001C00FCE7FCE7000000009CFF9CFF9CFF58 604 | :1045B0009CFF9CFF000000000000000000000002C3 605 | :1045C000C463C00700009CFF9CFF9CFF9CFF9CFFF6 606 | :1045D00000000000000000000000000000000000DB 607 | :1045E0008000800F800FF40F04009CFF000000008B 608 | :1045F00000000000000000000000000000000000BB 609 | :104600008000F000F00FF00F00000000000000003C 610 | :10461000000000000000000000000000000000009A 611 | :104620000CC00CC0000000000000000000000000F2 612 | :104630000000000000001CE01CE01CE01CE01CE08E 613 | :10464000000000000000000000000000000000006A 614 | :10465000000000000000000000000000000000005A 615 | :104660000004000E000A800F6003300F80338003C7 616 | :104670008007E00C780C000C000C00000004000E19 617 | :10468000000A800FC003600F801B800380070003B7 618 | :104690008003C003000300000004000E000A800F26 619 | :1046A00060036013801F80038007C00C60183018FF 620 | :1046B000300000008000C0014001C007001BC03373 621 | :1046C000300700078007C01CC078C000C000000091 622 | :1046D0008000C0014001C007000FC01B6007000739 623 | :1046E000800700030007000F000300008000C001E6 624 | :1046F0004001C007001B201BE00700078007C00C1B 625 | :104700006018603000300000000C000E000E400EFB 626 | :10471000C027003E00060006000F800980088008C0 627 | :10472000001800001831983398339011F01F800161 628 | :1047300080018001C00340064006C006C0000000A2 629 | :104740001831983398339011F01F80018001800157 630 | :10475000C00340064006C006C000003000300036EE 631 | :10476000001E000E8007C006000600060007800D30 632 | :10477000800D800D000030003000B001E001C0016C 633 | :104780008007800D800180018003C006C006C0063E 634 | :1047900000003030B031B031E031C01F8001800105 635 | :1047A000800180038006800C800D0009000030002D 636 | :1047B0003000B001E001C0018007800D8001800160 637 | :1047C0008003C006C006C00600000030003000367E 638 | :1047D000001E000E8007C006000600060007800DC0 639 | :1047E000800D800D0000303030363036301EE00F46 640 | :1047F00000060006000600078005C004C00640024F 641 | :1048000000000000000000000000000000000000A8 642 | :10481000000000000000000000008007E01F000012 643 | :104820000000000000000000000000000000000088 644 | :10483000000000008007E01FE01FFCFFFCFFFCFF02 645 | :1048400000000000F03FF03FF03F000300030003D2 646 | :10485000FCFFFCFFFCFF180018001800F87FF87F31 647 | :1048600018600060006000601860F87FF87F180032 648 | :104870001800000000000000000000000000000020 649 | :104880000000000000000000000000000000000028 650 | :104890000000000000000000000000000000000018 651 | :1048A0000000000000000000000000000000000008 652 | :1048B00000000000000000000000000000000000F8 653 | :1048C00000000000000000000000000000000000E8 654 | :1048D00000000000000000000000000000000000D8 655 | :1048E00000000000000000000000000000000000C8 656 | :1048F00000000000000000000000000000000000B8 657 | :1049000000000000000000000000000000000000A7 658 | :104910000000000000000000000000000000000097 659 | :104920000000000000000000000000000000000087 660 | :104930000000000000000000000000000000000077 661 | :104940000000000000000000000000000000000067 662 | :104950000000000000000000000000000000000057 663 | :104960000000000000000000000000000000000047 664 | :104970000000000000000000000000000000000037 665 | :104980000000000000000000000000000000000027 666 | :104990000005000000000000000000000000000012 667 | :1049A00000000000000000000003030202010202F8 668 | :1049B00003000000000000000000000005000000EF 669 | :1049C00000000000000303000000000003000000DE 670 | :1049D00000030101010101010101010300050000C3 671 | :1049E0000003030005002300030000000003000093 672 | :1049F00000000000000000030101010101030301A8 673 | :104A0000020102010300000000030000000000009A 674 | :104A10000000000300000000000003000000000090 675 | :104A20000304040404030404040404040000230332 676 | :104A30000000000000000300000000000300000070 677 | :104A40000003000000000003010101020202020253 678 | :104A50000203030000000000030000000003000048 679 | :104A60000500000300000000000000000003030038 680 | :104A70000000230003000500000301010101010300 681 | :104A8000000000000000000000030201010102011B 682 | :104A90000102010102030000000000000000000309 683 | :104AA00001010103010102010101020000000000F7 684 | :104AB00000030000000000000000000300000003ED 685 | :104AC00000000205000002000000000000030000DA 686 | :104AD00000040404040404030000000300050101B1 687 | :104AE00001010101010103010101020202020000B2 688 | :104AF00000000003000001010101000000000000AF 689 | :104B0000000003000000000000000000000000039F 690 | :104B10000000000000000000000000000000030092 691 | :104B2000000000070000000000000003000000007B 692 | :104B30000000010101010101010101010101010167 693 | :104B4000010101010101010101010101010106064B 694 | :104B500006060606060606060606060606060606F5 695 | :104B60000606060606060606060620202020202049 696 | :104B700020202020200000000000202020202020D5 697 | :104B800020202020200000000000202020202020C5 698 | :104B900020202020200000000000202020202020B5 699 | :104BA00020202020200000000000202020202020A5 700 | :104BB0002020202020000000000020202020202095 701 | :104BC0002020202020000000000020202020202085 702 | :104BD0002020202020000000000020202020202075 703 | :104BE0002020202020000000000020202020202065 704 | :104BF0002020202020000000000020202020202055 705 | :104C00002020202020000000000020202020202044 706 | :0A4C10002020202020FFFFFFFFFFFF 707 | :00000001FF -------------------------------------------------------------------------------- /loderunner/loderunner_64x4.hex: -------------------------------------------------------------------------------- 1 | :1080000074FE7EFFFF67228A6720986733F0671649 2 | :108010009574507EAA9F67718876BE9FE4005C27A6 3 | :10802000809DAA9F5C16806733F074057EC19F74A3 4 | :10803000017EC09F91C29F91C49F67F79E67228A6D 5 | :1080400067CC9367F69B67718876BF9FE4005C629C 6 | :1080500080678F8A672F8676F69FE4005C8880644D 7 | :10806000168176EE9F7EE99F76EF9F7EEA9F76F0FF 8 | :108070009F7EEB9F76EC9F94E4095E7F8074077E81 9 | :10808000ED9F6771886456898FF69F9DC19F76C169 10 | :108090009FE4005D9C8067159A643D80740A7EC0F1 11 | :1080A0000074097EC10067E49C20202A2A2A2A2A1B 12 | :1080B0002A2A2A2A2A2A202000740A7EC000740A4A 13 | :1080C0007EC10067E49C202A2047414D45204F5641 14 | :1080D0004552202A2000740A7EC000740B7EC10025 15 | :1080E00067E49C20202A2A2A2A2A2A2A2A2A2A2A9B 16 | :1080F0002020006715F067159A672098672396E49B 17 | :10810000005D078167E3976716956715F067159A15 18 | :10811000642780643D8076E19CE4015D888076E29E 19 | :108120009CE4015C2E8174017EC19F64888076F29C 20 | :108130009FE4005C868176F49FE4005C868176F89B 21 | :108140009FE4005D868174007EF89F7EBD9F76BDB2 22 | :108150009FE40F7D005C748167089A96C19F96C06A 23 | :108160009F76C09FE4975C718174017EC09F6733E6 24 | :10817000F0643D8067778896BD9F82500082010140 25 | :1081800067C098644E8176FA9FE4005D94819DFA01 26 | :108190009F64AF8176FB9FE4005DAF8196FC9F7684 27 | :1081A000FC9FE4065CAF8174007EFB9F7EFC9F76A3 28 | :1081B000EE9F7EE99F76EF9F7EEA9F76F09F7EEBB3 29 | :1081C0009F76F99FE4005D2C82677D8876FE9F7A1A 30 | :1081D000E19F7EA19F76FF9F7E9E9F7600A07E9F5F 31 | :1081E0009F7601A07EA09F675C9B9DFE9F5D118294 32 | :1081F00076FE9F7AE19F7EA19F76FF9F7E9E9F766F 33 | :1082000000A07E9F9F7601A07EA09F675C9B645626 34 | :10821000898FF99F76F59FE4005D218274076423BE 35 | :1082200082740A7EED9F67918864568976F79FE491 36 | :10823000005D908276EB9FA2027EEB9F96F49F7684 37 | :10824000F49FE4075C4A828FF49F76F49FE4005C1D 38 | :10825000568996F29F741CACE79F76F19FA21D6A27 39 | :1082600067E7876BE4045C6C82648A8276F19FA284 40 | :10827000396A67E7876BE4015D8A82E4025D8A827E 41 | :10828000E4035D8A82E4065C8D828FF79F645689E1 42 | :1082900076BE9FE4005C9B8264568976DB9CE40199 43 | :1082A0005CB28376F19FA21E6A67E7876BE4015D8B 44 | :1082B000DD82E4025DDD82E4315DDD8276F49FE4FF 45 | :1082C000005DE88276F19FA23A6A67E7876BE40176 46 | :1082D0005DDD82E4025DDD82E4315CE88276F39F5D 47 | :1082E000E4015CE88264568976F19FE41B5CFB82C2 48 | :1082F00076F39FE4015CFB8264568976F19FA21DB0 49 | :108300006A67E7876BE4045C2D8376F49FE4005C86 50 | :108310002D8376EC9FE4105E2283E4125F22836457 51 | :10832000248374127ACB9F7EED9F643D8376EC9F0D 52 | :10833000E4095E378374097ACB9F7EED9F7402ACAB 53 | :10834000E99F96F39F76F39FE4075C4F8374007E6A 54 | :10835000F39FE4005C5A8396F19F74017EF59F764B 55 | :10836000F39FE4005D6A8364568976F19FA21D6ADB 56 | :1083700067E7876BE4045C848376F49FE4005C84A5 57 | :108380008364568976F19FA2396A67E7876BE400B8 58 | :108390005DAF83E4FF5DAF83E4045DAF83E4055D1F 59 | :1083A000AF83E4315DAF83E4325DAF8364568964AB 60 | :1083B000E98876DC9CE4015CD18476F19FA21C6A9A 61 | :1083C00067E7876BE4015DF483E4025DF483E431E5 62 | :1083D0005DF48376F49FE4005DFF8376F19FA2381D 63 | :1083E0006A67E7876BE4015DF483E4025DF483E48C 64 | :1083F000315CFF8376F39FE4005CFF8364568976EB 65 | :10840000F19FE4005C128476F39FE4005C128464C4 66 | :10841000568976F19FA21D6A67E7876BE4045C4486 67 | :108420008476F49FE4005C448476EC9FE4135E3928 68 | :1084300084E4155F3984643B8474157ACB9F7EEDA8 69 | :108440009F645C8476EC9FE40A5E5484E40C5F5481 70 | :1084500084645684740C7ACB9F7EED9F7402CDE9C0 71 | :108460009F9DF39F76F39FE4FF5C6E8474067EF31A 72 | :108470009FE4065C79849DF19F74007EF59F76F3FE 73 | :108480009FE4005D898464568976F19FA21D6A6726 74 | :10849000E7876BE4045CA38476F49FE4005C848348 75 | :1084A00064568976F19FA2396A67E7876BE4005DBD 76 | :1084B000CE84E4FF5DCE84E4045DCE84E4055DCE2D 77 | :1084C00084E4315DCE84E4325DCE8464568964E90F 78 | :1084D0008876DE9CE4015C7D8576F19FA21D6A674B 79 | :1084E000E7876BE4035C078576F19FA2396A67E74B 80 | :1084F000876BE4015D0485E4025D0485E4065D04A8 81 | :108500008564358564568976F19FA2396A67E78765 82 | :108510006BE4005D3285E4045D3285E4055D3285FF 83 | :10852000E4315D3285E4325D3285E4035D35856496 84 | :10853000568964E98876F19F7EC89F76F29F7EC94E 85 | :108540009F67CF9A769E9F7EE99F769F9F7EEA9F48 86 | :1085500074007EF39F7402A8EB9F96F49F76F49FBD 87 | :10856000E4075C6A8574007EF49F76F49FE4005C07 88 | :108570007A8596F29F741CACE79F64D18876DD9C67 89 | :10858000E4015CE48676F19F946A67E7876BE40117 90 | :108590005D9D85E4025D9D85E4315CA88576F49F50 91 | :1085A000E4005CA88564568976F19FA21D6A67E79E 92 | :1085B000876BE4035DD48576F49FE4005CC2856438 93 | :1085C000568976F19FA2396A67E7876BE4035DD429 94 | :1085D0008564568976F29FE4005CE78576F49FE433 95 | :1085E000005CE78564568976F19F7EC89F76F29F8E 96 | :1085F0007EC99F67CF9A769E9F7EE99F769F9F7EDA 97 | :10860000EA9F74007EF39F7402C9EB9F9DF49F76EE 98 | :10861000F49FE4FF5C1C8674067EF49F76F49FE46E 99 | :10862000065C2C869DF29F741CCDE79F64D18874F4 100 | :108630000F7E8CA067F69B74947E8EA074A07E8FB4 101 | :10864000A0768CA07D0108A301AC8EA0788EA0E45A 102 | :10865000FF5DDA86768EA07E90A07E92A0768FA0B7 103 | :108660007E91A07E93A09890A09892A09892A078D6 104 | :108670008EA09B808EA0E4205C8586741F7E8DA0DA 105 | :10868000741D64BA86E4105C9486741D7E8DA0749B 106 | :108690001E64BA86E4FF5CB7867890A07EC89F7897 107 | :1086A00092A07EC99F67C59A740180BB9F741E7E8D 108 | :1086B0008DA0740164BA8664DA866A7890A07EC858 109 | :1086C0009F7892A07EC99F67CF9A768DA07EA19F4A 110 | :1086D000675C9B6B7EA19F675C9B9D8CA061E38622 111 | :1086E0006434866976DF9CE4015DF78676E09CE47D 112 | :1086F000015DF98664E48774007EF59F8FDF9C8FAF 113 | :10870000E09C76F59FE4005D178776F19FE41B5DA2 114 | :10871000E487741E642B8776F19FE4005DE4877420 115 | :108720001C6A76F39FE4006B5D2B87A4F19F7D01AB 116 | :108730006A67E7876BE4005D4487E4325D4487E461 117 | :10874000FF5CE4877501A21C7D016A67E7876BE423 118 | :10875000015CE48782FF0075016A6758886B8216A6 119 | :108760000076F59FE4005C6B87950075007EED9FB9 120 | :1087700076F59FE4005C808776F39FE4005D808758 121 | :1087800076F19F7EC89F76F29F7EC99F67CF9A76CB 122 | :108790009E9F7EE99F769F9F7EEA9F74007EF39F57 123 | :1087A00074057EFE9F74017EF99F8AF19F0076F525 124 | :1087B0009FE4005DBB87950064BD879C0075007ECB 125 | :1087C00002A07EC89F76F29F947E03A07EC99F6719 126 | :1087D000CF9A769E9F7EFF9F769F9F7E00A076A079 127 | :1087E0009F7E01A064568976E79F7EF98776E89F91 128 | :1087F0007EFA876C03ACF9877600006D036976BB5F 129 | :108800009F7E108876BC9F7E11886C03AC108876A2 130 | :1088100000006D036976BB9F7E298876BC9F7E2A07 131 | :10882000887501AC29886C037E00006974267E532C 132 | :108830008874A07E5488750108AC53887853886A80 133 | :108840009853887853887E54886B7E53886C03AC29 134 | :1088500053887600006D036976E79F7E6C8876E822 135 | :108860009F7E6D886C03AC6C8875007E00006D0384 136 | :10887000698280016480888200016480888210019E 137 | :1088800082000067F69B9C005C86889C015C808867 138 | :108890006974947EB79F74A07EB89F82000078B7F9 139 | :1088A0009FE4FF5DB4887403ACB79F95007410E536 140 | :1088B000005C9E8875007E8CA074FE80B79F98B780 141 | :1088C0009F7602A080B79F98B79F7603A080B79F3E 142 | :1088D0006976EC9FE40D5DE088E40E5DE088740D40 143 | :1088E0007ACB9F7EED9F6456898A05A00176F29F20 144 | :1088F000946A74016A672C886B7D006C01E5005CEA 145 | :10890000198976F19F6A74006A672C886B7D006B09 146 | :10891000E5005C19896B6456899C016B60F188766F 147 | :10892000F19F7EC89F76F29F7EC99F67CF9A769E01 148 | :108930009F7EE99F769F9F7EEA9F8FF39F76F19FB0 149 | :10894000A21D6A67E7876BE4035D568974017EF7B1 150 | :108950009F740F7EED9F67449B76E99F7EEE9F7626 151 | :10896000EA9F7EEF9F76EB9F7EF09F76ED9F7EECF9 152 | :108970009F67449B76F19FA21D6A67E7876BE405BA 153 | :108980005D8E89E4015C8B897EF69F641F8A76E7A1 154 | :108990009F7EA38976E89F7EA48976F19FA21DAC75 155 | :1089A000A3898F000076F19F7EC89F76F29F7EC9D3 156 | :1089B0009F67CF9A74057EA19F675C9B825000825F 157 | :1089C000020167C09874057EFA9F9DCA9F5C1F8A4A 158 | :1089D00074017EF89F7EFB9F74007EC89F7EC99FB6 159 | :1089E00074EE7EB79F74A97EB89F78B79FE4325C1F 160 | :1089F000008A740380B79F7EA19F67CF9A675C9BB4 161 | :108A000098B79F96C89F76C89FE41C5CEA8996C970 162 | :108A10009F76C99FE4115D1F8A8FC89F64EA8964AD 163 | :108A2000438074947EB79F74A07EB89F820F0074B9 164 | :108A3000FF80B79F7403ACB79F9C00602F8A74328D 165 | :108A40007EB79F74A07EB89F820600820E017400DC 166 | :108A500080B79F98B79F9C015C4E8A9C005C4B8AB4 167 | :108A60008FF79F8FF89F8FF99F8FDA9C8FDB9C8FFA 168 | :108A7000DC9C8FDD9C8FDE9C8FDF9C8FE09C8FE1E8 169 | :108A80009C8FE29C8FBE9F74017EBF9F6900007423 170 | :108A9000FF7E06A09606A07606A0E4065DBF8A6764 171 | :108AA000479E781CA094801CA03E01E4015D948A3E 172 | :108AB0007606A0E605A05DD68A5FC08A64D68A697C 173 | :108AC00082020082400167F69B9C015CC68A9C0082 174 | :108AD0005CC68A64948A7812A07EE99F7814A07E8E 175 | :108AE000EA9F7816A07EEB9F7818A07E07A0781AE0 176 | :108AF000A0E4005D608B7402A8EB9F7810A09480C6 177 | :108B000010A0E4075C138B74008010A0780CA09474 178 | :108B1000800CA07810A0E4005C588B780CA07EC973 179 | :108B20009F780AA07EC89F67C59A78BB9FE4045DC2 180 | :108B3000538B741CACBB9F78BB9FE4015D538BE4EB 181 | :108B4000025D538BE4035D538BE4065D538BE4FFBE 182 | :108B50005C588B7400801AA06A67F69B6B64559210 183 | :108B6000781EA0E4005DD68B7402A8EB9F7810A05D 184 | :108B7000948010A0E4075C858B74008010A0780CB2 185 | :108B8000A094800CA0781EA09B801EA05CD38B7844 186 | :108B900024A0E4005DC58B780CA09B7EC99F780A59 187 | :108BA000A07EC89F67C59A78BB9FE4005CC58B74A4 188 | :108BB0000580BB9F7EA19F74008024A067F69B6701 189 | :108BC000CF9A675C9B74328020A08275008200017E 190 | :108BD00067C098644D8C7820A0E4005CE18B64D57C 191 | :108BE0008C7820A09B8020A05CEE8B642C8DE40B05 192 | :108BF0005D088CE40A5D138CE4095D088CE4085D73 193 | :108C0000138C5E1E8C644D8C67F69B7401CDE99FBE 194 | :108C1000644D8C67F69B7401ACE99F644D8C7818A9 195 | :108C2000A0E4265D2B8C7426642D8C74277E07A00F 196 | :108C30007402C9EB9F7810A09B8010A0E4FF5C4DEC 197 | :108C40008C74068010A0780CA09B800CA0780EA0DD 198 | :108C5000E4005CD28C780CA07EC99F780AA07EC804 199 | :108C60009F67F69B67C59A78BB9FE4015CD28C74C2 200 | :108C700000800EA08010A0801EA08020A0800CA0EC 201 | :108C800074EE7EBB9F74A97EBC9F8AF19F01750123 202 | :108C90006A67FE876BE4005DBA8CE4325DBA8C953E 203 | :108CA000017501E41C5C8E8C741CACBB9F780CA01D 204 | :108CB00094800CA0820001648E8C7501800AA074DF 205 | :108CC0000A8022A0741F7E07A082750082000167BF 206 | :108CD000C0986455927822A0E4005D2C8DE4095C74 207 | :108CE0000B8D780CA07EC99F780AA07EC89F67CFA5 208 | :108CF0009A769E9F7EE99F769F9F7EEA9F76A09FB1 209 | :108D00007EEB9F742F7E07A064228DE4065C188D95 210 | :108D100074307E07A064228DE4035C228D74287E6B 211 | :108D200007A07822A09B8022A064559267F69B74CE 212 | :108D3000007E08A07E09A0780CA0E6F29F5D468D1B 213 | :108D40005E548D64C68E7810A0E4005D518D64275A 214 | :108D500090649E907EC99F67F69B67A29A8A05A041 215 | :108D600001780AA06A74006A672C886B7D006C0128 216 | :108D7000E5005C8D8D780CA0946A74016A672C887C 217 | :108D80006B7D006BE5005C8D8D6B6455929C016B77 218 | :108D900060648D780AA07D0175016A67FE876BE4C7 219 | :108DA000015DD88DE4025DD88DE4315DD88D75010B 220 | :108DB000A21C6A67FE876BE4005DDD8DE4035DDD68 221 | :108DC0008DE4045DDD8DE4315DDD8DE4325DDD8DAE 222 | :108DD0009608A09C0160988D74FF7E08A0780AA078 223 | :108DE0007D0175016A67FE876BE4015D268EE402F2 224 | :108DF0005D268EE4315D268E7501A21C6A67FE87B2 225 | :108E00006BE4005D2B8EE4035D2B8EE4045D2B8E02 226 | :108E1000E4315D2B8EE4325D2B8E9609A0950175B1 227 | :108E200001E41C5CE28D74FF7E09A07608A0E400DA 228 | :108E30005D528EE4FF5C438E7609A0E4FF5C438EB6 229 | :108E40006455927608A0E609A05E4F8E64B89064DF 230 | :108E50008791780EA0E4005D5D8E648791780CA008 231 | :108E6000947EC99F67A29A780AA07D016A67FE87EF 232 | :108E70006BE4005D858EE4325D858EE4315D858E28 233 | :108E8000E4045C928E7401801AA074287E07A064AA 234 | :108E900055927818A0E4265D9F8E74265CA18E748E 235 | :108EA000277E07A07402A8EB9F7810A094E4075CCB 236 | :108EB000B48E74008010A0E4005C5592780CA094ED 237 | :108EC000800CA06455927EC99F67F69B67A29A8A20 238 | :108ED00005A001780AA06A74006A672C886B7D007F 239 | :108EE0006C01E5005CFF8E780CA09B6A74016A67D8 240 | :108EF0002C886B7D006BE5005CFF8E6B6455929C4B 241 | :108F0000016B60D68E780AA07D0175016A67FE87C5 242 | :108F10006BE4045D448FE4035D298F7501A21C6A34 243 | :108F200067FE876BE4005D778F75016A67FE876B6C 244 | :108F3000E4035D4F8FE4015D778FE4025D778FE49A 245 | :108F4000315D778F9608A09C01600A8F64778F76D9 246 | :108F5000BB9F7E108876BC9F7E1188741CC401CD97 247 | :108F60001088781088E4015D448FE4025D448FE44A 248 | :108F7000315D448F647C8F74FF7E08A0780AA07DE9 249 | :108F8000016A67FE876BE4045DB98FE4035D9E8F21 250 | :108F90007501A21C6A67FE876BE4005DF08F7501A6 251 | :108FA0006A67FE876BE4035DC88FE4015DF08FE4C0 252 | :108FB000025DF08FE4315DF08F9609A09501750197 253 | :108FC000E41C5C818F64F08F76BB9F7E108876BC3A 254 | :108FD0009F7E1188741CC401CD1088781088E4012C 255 | :108FE0005DB98FE4025DB98FE4315DB98F64F58FAF 256 | :108FF00074FF7E09A07608A0E4005D27907608A0A3 257 | :10900000E4FF5C10907609A0E4FF5C109064559238 258 | :109010007810A0E4005C27907608A0E609A05E2402 259 | :109020009064B890648791780CA09B7EC99F67A2DA 260 | :109030009A780AA07D016A67FE876BE4015D4A9019 261 | :10904000E4025D4A90E4315C55907810A0E4005C45 262 | :109050005590645592780AA07EC89F67CF9A769EF5 263 | :109060009F7EE99F769F9F7EEA9F7400800EA07886 264 | :1090700018A0E4265D7C9074265C7E9074277E07A1 265 | :10908000A07402C9EB9F7810A09BE4FF5C989078D5 266 | :109090000CA09B800CA074068010A0645592780AE6 267 | :1090A000A0E6F19F5DAD905FB5905EB89074017ED3 268 | :1090B000F69F64559264879167F69B8A05A00178B4 269 | :1090C0000CA06A74016A672C886B7D006C01E50056 270 | :1090D0005CEB90780AA0946A74006A672C886B7DB8 271 | :1090E000006BE5005CEB906B6455929C016B60C279 272 | :1090F00090780CA07EC99F67A29A780AA0946A67AC 273 | :10910000FE876BE4015D1291E4025D1291E4315C33 274 | :109110002091780EA0E4015D1D9164209164559228 275 | :10912000780AA07D016A67FE876BE4045C4E917843 276 | :1091300018A0E4295E3F91E42C5F3F916441917453 277 | :1091400029C3297A86A0A2297E07A0646A9178188B 278 | :10915000A0E4205E5E91E4235F5E916460917420E0 279 | :10916000C3207A86A0A2207E07A07402ACE99F7873 280 | :109170000EA094E4075C8191780AA094800AA07400 281 | :1091800000800EA064559267F69B8A05A001780CBA 282 | :10919000A06A74016A672C886B7D006C01E5005C35 283 | :1091A000BA91780AA09B6A74006A672C886B7D006C 284 | :1091B0006BE5005CBA916B6455929C016B60919178 285 | :1091C000780CA07EC99F67A29A780AA09B7D016A4D 286 | :1091D00067FE876BE4015DE391E4025DE391E431B6 287 | :1091E0005CEE91780EA0E4005CEE91645592780AF2 288 | :1091F000A07D016A67FE876BE4045C1C927818A06E 289 | :10920000E42C5E0D92E42F5F0D92640F92742CC3D8 290 | :109210002C7A86A0A22C7E07A06438927818A0E44D 291 | :10922000235E2C92E4265F2C92642E927423C32337 292 | :109230007A86A0A2237E07A07402CDE99F780EA0B3 293 | :109240009BE4FF5C4F92780AA09B800AA074068082 294 | :109250000EA064559267F69B780EA0E4005C09931B 295 | :10926000781EA0E4005C09937820A0E4005C0993D8 296 | :109270007822A0E4005C0993780CA07EC99F67A2C5 297 | :109280009A780AA07D016A67FE876BE4045D099302 298 | :10929000E4035D09937501A21C7D016A67FE876B7B 299 | :1092A000E4005DFC92E4325DFC92E4315DFC92E40A 300 | :1092B000045DFC92E4055DFC92E4FF5C09938A0581 301 | :1092C000A001780CA0946A74016A672C886B7D00F9 302 | :1092D0006C01E5005CEE92780AA06A74006A672C63 303 | :1092E000886B7D006BE5005CEE926B6409939C01DA 304 | :1092F0006B60C6927407801EA06401937401801A8B 305 | :10930000A074287E07A0648E93780CA07EC99F6706 306 | :10931000A29A780AA07D017824A0E4005D57937892 307 | :1093200010A0E4005C8E9375016A67FE876BE40011 308 | :109330005C8E9375017EAC9FA21C6A67FE876BE40E 309 | :10934000035C8E9374008024A08AAC9F0174056A2C 310 | :109350006715886B647793780EA0E4005C8E937534 311 | :10936000016A67FE876BE4055C8E9374018024A01C 312 | :1093700074006A6715886B780AA07EC89F780CA075 313 | :109380007EC99F74057EA19F67CF9A675C9B67B07B 314 | :109390009376E99F8012A076EA9F8014A076EB9FD7 315 | :1093A0008016A07607A08018A067B09364948A699D 316 | :1093B0007812A07E9E9F7814A07E9F9F7816A07E34 317 | :1093C000A09F7818A07EA19F675C9B696733F08F90 318 | :1093D000CA9F8FF79F74FF7E05A067059B74EE7E82 319 | :1093E000A29F74A97EA39F8FC89F8FC99F78A29FB9 320 | :1093F000E4005DC694E4325DC694E4315C04947488 321 | :109400000164BD946A67CF9A6BE4075C59946A7EE5 322 | :10941000ED9F7EEC9F769E9F7EEE9F769F9F7EEFD8 323 | :109420009F76A09F7EF09F76C89F7EF19F76C99F12 324 | :109430007EF29F8FF79F8FF39F8FF49F67A29A769C 325 | :10944000BB9F7EE79F76BC9F7EE89F741DCDE79F04 326 | :10945000740080A29F6B64BD94E4235CB3946A742F 327 | :109460000080A29F9605A07605A0E4055C76949DF9 328 | :1094700005A06B64C6947605A07E06A06A67479E29 329 | :109480006B801CA074238018A0769E9F8012A0760B 330 | :109490009F9F8014A076A09F8016A076C89F800A08 331 | :1094A000A076C99F800CA07400800EA08010A06BD5 332 | :1094B00064BD94E4055CBD946A96CA9F6B7EA19FCF 333 | :1094C00067CF9A675C9B98A29F96C89FE41C5CED4F 334 | :1094D000938FC89F96C99FE4105CED9367C89974F9 335 | :1094E000177EC10074017EC00067E49C53434F5255 336 | :1094F000450074137EC00067E49C4D454E00741E09 337 | :109500007EC00067E49C4C4556454C00675E9967F9 338 | :1095100071996712996974037EC10074097EC00055 339 | :1095200067E49C434C4153534943204C4F444520EE 340 | :1095300052554E4E45520096C10096C100740A7EA7 341 | :10954000C00067E49C4C4F43414C204849474820A9 342 | :1095500053434F5245530096C10096C10074057E97 343 | :10956000C00067E49C4E4F2020204E414D452020F6 344 | :1095700020202020204C4556454C2053434F524537 345 | :109580000067C09974097EC10074CA7EBB9F74AB2A 346 | :109590007EBC9F82010074047EC0007500E40A5CFA 347 | :1095A000B39574316A67159D6B74306A67159D6B4E 348 | :1095B00064C39574306A67159D6B7500A2306A6745 349 | :1095C000159D6B742E6A67159D6B7403ACC0007497 350 | :1095D0000B7EAF9F78BB9F6A67159D6B98BB9F9D65 351 | :1095E000AF9F5CD49578BB9FE4005CF295740564F2 352 | :1095F00013966A96C0006784996B7402ACC0009899 353 | :10960000BB9F76BB9F7EC69F76BC9F7EC79F67260B 354 | :10961000997404ACBB9F96C10095007500E40B5C87 355 | :1096200096956974CA7EBB9F74AB7EBC9F740FAC69 356 | :10963000BB9F740A7EE29782040076BB9F7EB79F31 357 | :1096400076BC9F7EB89F74C57EB99F749F7EBA9F7B 358 | :1096500078B79F7EAB9F78B99FE6AB9F5D70965FB2 359 | :1096600089967410ACBB9F9DE2975DDF9764379637 360 | :109670009FB99F9FB79F9C005C50969DE2975DDFCE 361 | :10968000977410ACBB9F6437969DE2975DC5967644 362 | :10969000E2970B7EE297740FCDBB9F746A7EB79FF3 363 | :1096A0007EB99F74AC7EB89F7EBA9F7410CDB79F71 364 | :1096B0009FB79F9FB99F78B79F80B99F9DE2975CA6 365 | :1096C000B09664CA96740FCDBB9F740A7EC00074B6 366 | :1096D000097EC10067E49C20202A2A2A2A2A2A2AF5 367 | :1096E0002A2A2A2A2A2A2A2A2A2A2A2A20200074CE 368 | :1096F0000A7EC000740B7EC10067E49C20202A2AE9 369 | :109700002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AB9 370 | :109710002A202000740A7EC000740A7EC10067E41B 371 | :109720009C202A204E414D453A20202020202020F8 372 | :109730002020202020202A2000820B0074137EC0CD 373 | :10974000006715F0E4085D7F97E40A5DA097E40DDB 374 | :109750005DA097E4305E4197E4615E5F97C320E4CB 375 | :109760005B5F419780BB9F6A98BB9F67159D6B9C11 376 | :10977000005C41979FBB9F95009DC0006441977519 377 | :1097800000E40B5D41979FBB9F742080BB9F9500B9 378 | :109790009DC00074206A67159D6B9DC00064419751 379 | :1097A00075009C005EB297742080BB9F98BB9F643D 380 | :1097B000A09776C09F80BB9F98BB9F74C27EB99FC5 381 | :1097C000749F7EBA9F82040078B99F80BB9F98B92E 382 | :1097D0009F98BB9F9C005CC8976733F074016974C5 383 | :1097E00000690074687EC90074987ECA006727F01B 384 | :1097F000E4005D209874AA72550505745572AA0A92 385 | :109800000274A07255050574007380008214909C48 386 | :10981000905E1F986F8000E4005C0F986420986948 387 | :1098200074687EC90074987ECA006727F0E4005C03 388 | :10983000469874CA6A74AB6A74696A74AC6A672DB4 389 | :10984000F06B6B6B6B69B31880678C9F82A000868E 390 | :10985000CAAB836F80008083009880009883006784 391 | :109860008C9F9C005C5398696869676873636F722A 392 | :10987000652E6C720067979876BC987EBB9876BE12 393 | :1098800098147EBE9876BF98147EBF986797987696 394 | :10989000BC980B4BBB986976BE983E0FA8BD987ECE 395 | :1098A000BC988FBD9876BF983E0FA8BC98E409631A 396 | :1098B000BA98C30A7EBC9896BD9869000000000063 397 | :1098C0008FBD9875007EBE9876C29F7EBF986775E3 398 | :1098D0009876BB987EC29F75017EBE9876C39F7EA8 399 | :1098E000BF9867759876BB987EC39F8FBE9876C4E5 400 | :1098F0009F7EBF9867759876BB987EC49F8FBE98F1 401 | :1099000076C59F7EBF9867759876BB987EC59F6425 402 | :10991000129974177EC10074077EC00074C27EC69F 403 | :109920009F749F7EC79F7403ACC69F78C69F3E0FEF 404 | :10993000A2306A67159D6B74027EAD9F9FC69F78AB 405 | :10994000C69F6A143E0FA2306A67159D6B6B3E0F6F 406 | :10995000A2306A67159D6B9DAD9F603C9969741735 407 | :109960007EC10074177EC00076C19F6A6784996BC0 408 | :109970006974177EC10074247EC00076C09F6A6738 409 | :1099800084996B6974647EAD9F74027EAC9F6C0396 410 | :109990008FAE9F6A96AE9F6BC5AD9F609399A4AD45 411 | :1099A0009F6A76AE9FA22F6A67159D6B740A7EAD83 412 | :1099B0009F9DAC9F6B5C9099A2306A67159D6B6907 413 | :1099C00074577EAB9F64CD99747B7EAB9F744C7E45 414 | :1099D000AA9F7EAC9F7EAE9F76AB9F7EAD9F7EAFF3 415 | :1099E0009F7440ACAC9F7480ACAE9F82310074FF1A 416 | :1099F00080AA9F80AC9F80AE9F98AA9F98AC9F98AA 417 | :109A0000AE9F9C0060EE996974787EAC9F74777EFF 418 | :109A1000AD9F641F9A74007EAC9F74EF7EAD9F82F1 419 | :109A2000780176AC9F7EAA9F67829A76AA9F7E5223 420 | :109A30009A76AB9F7E539A76AD9F7EAA9F67829A55 421 | :109A400076AA9F7E559A76AB9F7E569A8231007495 422 | :109A5000007E00007E000098529A98559A9C006003 423 | :109A60004F9A8FAA9F74207EAB9F9DAA9F5C6A9A93 424 | :109A70009DAB9F5C6A9A96AC9F9DAD9F9C015C22BA 425 | :109A80009A698FAB9F23AA9F23AA9F23AA9F23AAE9 426 | :109A90009F23AA9F23AA9F740CACAA9F7443A8ABD0 427 | :109AA0009F6976C99F096A7EBB9F8FBC9F23BB9F1E 428 | :109AB00023BB9F23BB9F6BCDBB9F74EEA8BB9F7442 429 | :109AC000A9F5BC9F6967A29A76C89FACBB9F6976CF 430 | :109AD000C89F087EAB9F7E9E9F8F9F9F239E9F2344 431 | :109AE0009E9F239E9F76AB9FCD9E9F76C99F087EAB 432 | :109AF000AB9F7EA09F21A09F21A09F21A09F76AB1E 433 | :109B00009FC9A09F6967589F74EE7EA79F74A87E27 434 | :109B1000A89F74EE7EA29F74A97EA39F82E0007826 435 | :109B2000A79F6A3E0F7AC4A080A29F98A29F6B1441 436 | :109B30003E0F7AC4A080A29F98A29F98A79F9C00E6 437 | :109B40005C1F9B6976EE9F7E9E9F76EF9F7E9F9F18 438 | :109B500076F09F7EA09F76EC9F7EA19F769E9F3E93 439 | :109B6000077EB09F76A09F0D7EA79F76A09F163E92 440 | :109B70003FA2437EA89F769F9F9B769E9F153E3F68 441 | :109B8000A20C4BA79F76A19F087D007C00D4A27EEB 442 | :109B9000A49F95007C00D4A27EA59F740E7EA99FF1 443 | :109BA00078A49F7EB19F98A49F78A49F7EB29F8F38 444 | :109BB000B39F8AB09F009C005EC69B23B19F29B3D0 445 | :109BC0009F9C005FBB9B78A79F4EB19F80A79F98EB 446 | :109BD000A79F78A79F4EB29F80A79F98A79F78A71F 447 | :109BE0009F4EB39F80A79F743EACA79F98A49F9D54 448 | :109BF000A99F5CA09B6903E4FF5D369CE4F05DB522 449 | :109C00009C8FBF9FE46B5D379CE4745D469CE4755C 450 | :109C10005D559CE4725D649CE41A5D739CE4225D76 451 | :109C2000829CE4155D9D9CE41C5D919CE45A5DA9B9 452 | :109C30009CE4295DA99C6976BE9F7EDC9C45017EE3 453 | :109C4000BE9F8FDB9C6976BE9F7EDB9C45017EBEFE 454 | :109C50009F8FDC9C6976BE9F7EDD9C45017EBE9F0A 455 | :109C60008FDE9C6976BE9F7EDE9C45017EBE9F8F07 456 | :109C7000DD9C6976BE9F7EDF9C45017EBE9F8FE0A6 457 | :109C80009C6976BE9F7EE09C45017EBE9F8FDF9CD7 458 | :109C90006976BE9F7EE19C45017EBE9F6976BE9F30 459 | :109CA0007EE29C45017EBE9F6976BE9F7EE39C4519 460 | :109CB000017EBE9F698FDA9C03E4FF5CD49C0000A8 461 | :109CC000000000000000000000000096DA9C5EB872 462 | :109CD0009C64369C8FBE9F64019C000000000000C5 463 | :109CE000000000006C017EB89F6C027EB79F98B7A1 464 | :109CF0009F98B79F78B79FE4005C0A9D9FB79F76B7 465 | :109D0000B79F6D0276B89F6D01696A67159D6B9864 466 | :109D1000B79F64F49C8F9F9F76C000087E9E9F6AC9 467 | :109D2000239E9F239E9F6BAC9E9F769E9F6A769FED 468 | :109D30009F6A76C100087EA09F09A4A09F6A6C0656 469 | :109D40006A67659D6B6B6B6B96C00076C000E428FC 470 | :109D50005E649D8FC00096C10076C100E4185E6409 471 | :109D60009D8FC100696C040D7EA79F6C04163E3F59 472 | :109D7000A2437EA89F6C059B6C06153E3FA20C4B30 473 | :109D8000A79F6C063E077EB09F740A7EA99F6C0356 474 | :109D9000E4605F469EC3205E469E7EA49F8FA59F83 475 | :109DA00023A49F23A49F23A49F74D4ACA49F74A036 476 | :109DB000A8A59F9FA49F76A99FE40A5DCC9DE4017E 477 | :109DC0005DCC9D98A49F78A49F64CE9D74007EB1C5 478 | :109DD0009F8FB29F8FB39F8FB49F74FC7EB59F748B 479 | :109DE000FF7EB69F8AB09F019C015EFF9D23B19FBD 480 | :109DF00029B39F052BB49F29B69F9C015FED9D76EB 481 | :109E0000B49F42A79F80A79F76B19F49A79F80A735 482 | :109E10009F98A79F76B59F42A79F80A79F76B29FE6 483 | :109E200049A79F80A79F98A79F76B69F42A79F802C 484 | :109E3000A79F76B39F49A79F80A79F743EACA79F1B 485 | :109E40009DA99F5CB69D6974267E0AA074A07E0BB6 486 | :109E5000A07606A008AC0AA0780AA06A980AA078A2 487 | :109E60000AA07E0BA07E0DA07E0FA07E11A07E1307 488 | :109E7000A07E15A07E17A07E19A07E1BA07E1DA02F 489 | :109E80007E1FA07E21A07E23A07E25A06B7E0AA03F 490 | :109E90007E0CA07E0EA07E10A07E12A07E14A07E5E 491 | :109EA00016A07E18A07E1AA07E1CA07E1EA07E207A 492 | :109EB000A07E22A07E24A0980CA07402AC0EA074F8 493 | :109EC00003AC10A07404AC12A07405AC14A074060A 494 | :109ED000AC16A07407AC18A07408AC1AA07409AC36 495 | :109EE0001CA0740AAC1EA0740BAC20A0740CAC2295 496 | :109EF000A0740DAC24A06974297EC900749F7ECA29 497 | :109F0000006727F0E4005C389F67E49C4C4F4445B1 498 | :109F100052554E4E45522E444154204E4F542046E9 499 | :109F20004F554E442E0064269F6C6F646572756EAB 500 | :109F30006E65722E64617400B31680678C9F6F80AB 501 | :109F4000007D839780678C9F6F80007D84978067FA 502 | :109F50008C9F8C80868882888C86808888828AC044 503 | :109F60009F009C005D709FB3E080678C9F64629F40 504 | :109F700082E00086EEA8836F8000808300988000D6 505 | :109F8000988300678C9F9C005C779F697581143E65 506 | :109F90000FE4005D9C9FA782740F4381690000005D 507 | :109FA00000000000000000000000000000000000B1 508 | :109FB00000FFFFFFFFFFFF000000000000000000A7 509 | :109FC0000105000000000000000000000102030481 510 | :109FD00005060809070B0C0A0E0D0F1112101415B7 511 | :109FE000131C1B1A191801000000000000000000DB 512 | :109FF0000000000000000000000000000000000061 513 | :10A000000000000000000000000000000000000050 514 | :10A010000000000000000000000000000000000040 515 | :10A0200000000000000032A040A04EA05CA06AA08A 516 | :10A0300078A0000000000000000000000000000008 517 | :10A040000000000000000000000000000000000010 518 | :10A050000000000000000000000000000000000000 519 | :10A0600000000000000000000000000000000000F0 520 | :10A0700000000000000000000000000000000000E0 521 | :10A0800000000000000001020004050300000000C1 522 | :10A0900000000000000000000000000000000000C0 523 | :10A0A00000000000000000000000000000000000B0 524 | :10A0B00000000000000000000000000000000000A0 525 | :10A0C00000000000000102030431320523070000F4 526 | :10A0D00000000000000000000000000038383838A0 527 | :10A0E00020200030003636240000000066FFFF66A6 528 | :10A0F00066FFFF66187E037EE0E07E18C7E57738CE 529 | :10A100001CEEA7E3060909466D1171CE000C0C0880 530 | :10A1100000000000381C0E0E0E0E1C381C3870702B 531 | :10A120007070381C995A3CFFFF3C5A99181818FF58 532 | :10A13000FF181818000000000C0C0804000000FFB5 533 | :10A14000FF00000000000000000C0C00C0E07038B0 534 | :10A150001C0E0703FFC3C3C3F3F3F3FF1E1E18183F 535 | :10A1600018187E7EFFC3C0FF0303F3FFFFC3C0FCCC 536 | :10A17000C0C0C3FFCFCFCFFFC0C0C0C0FF0303FF2D 537 | :10A18000F0F0F0FFFFC303FFE3E3E3FFFFF0F0F0C5 538 | :10A190003C0C0C0CFCCCCCFFC3C3C3FFFFC3C3FF00 539 | :10A1A000F0F0F0F0000C0C00000C0C00001818008F 540 | :10A1B000181810080606000C1CD8C000000000008B 541 | :10A1C00000DBDB0060600030381B03003C6270384D 542 | :10A1D000181800183C4299A54539027CFCCCCCFFEC 543 | :10A1E000C3C3F3F33F3333FFC3C3C3FFFFC303034F 544 | :10A1F0000F0FCFFF3FC3C3C3CFCFCF3FFF0F0F3FE3 545 | :10A20000030303FFFF0F0F3F03030303FFC3030316 546 | :10A21000F3F3C3FFC3C3C3FFCFCFCFCF08080838C2 547 | :10A2200038383838202020E0E0E0E3FFC3E3733F14 548 | :10A23000FFCFCFCF0303030F0F0F0FFFC3CFFFFFDE 549 | :10A24000C3C3C3C3C3C3CFFFFFF3C3C3FFF3F3F35E 550 | :10A25000C3C3C3FFFFC3C3FF0F0F0F0FFFF3F3C34E 551 | :10A26000C32363DFFFC3C3FF3F3FCFCFFFC303FF62 552 | :10A27000F0F0F3FFFF0C0C3C3C3C3C3CC3C3C3CFB1 553 | :10A28000CFCFCFFFCFCFCFCFCFFF3C0CC3C3C3C304 554 | :10A29000FFFFCFC3C3C3C33C3CC3C3C3F3F3F3FF4C 555 | :10A2A0003C3C3C3CFF8180F83F01C1FF00C0D81C12 556 | :10A2B0000C00060600DBDB000000000000031B387A 557 | :10A2C000300060600606001818000606606000187E 558 | :10A2D000180060603EA35AA376A392A3AEA3CAA3BC 559 | :10A2E000E6A302A41EA43AA456A472A48EA4AAA40F 560 | :10A2F000C6A4E2A4FEA41AA536A552A56EA58AA5F9 561 | :10A30000A6A5C2A5DEA5FAA516A632A64EA66AA6E1 562 | :10A3100086A6A2A6BEA6DAA6F6A612A72EA74AA7CA 563 | :10A3200066A782A79EA7BAA7D6A7F2A70EA82AA8B3 564 | :10A3300046A862A87EA89AA8B6A8D2A8D2A85455C2 565 | :10A34000A8AA5455A8AA5455A8AA5455A8AA545521 566 | :10A35000A8AA5455A8AA5455A8AAFCE7FCE7FCE70C 567 | :10A36000FCE7FCE7FCE700009CFF9CFF9CFF9CFFD8 568 | :10A370009CFF9CFF0000FCFFFCFFFCFFFCFFFCFFC0 569 | :10A38000FCFFFCFFFCFFFCFFFCFFFCFFFCFFFCFFF5 570 | :10A390000000186018601860F87FF87F1860186077 571 | :10A3A000186018601860F87FF87F18601860000067 572 | :10A3B000FCFF0000000000000000000000000000A2 573 | :10A3C000000000000000000000000000000000008D 574 | :10A3D00000000000000000000000C00FC00A400D97 575 | :10A3E000C00A400DC00FFCFFFCFFFCFF0000000096 576 | :10A3F000000000000000000000000000000000005D 577 | :10A40000000000000006000F000B800F6003B00F7B 578 | :10A41000803280028007F80C780C000C000C0000E1 579 | :10A420000006000F000B800FC003E00F901A80029F 580 | :10A430008007000E000F8003000300000006000FDD 581 | :10A44000000B800F6003B013801E80028007C00CD9 582 | :10A4500060183018300000008001C0034003C007BE 583 | :10A46000001BC037300500058007C07CC078C000E5 584 | :10A47000C00000008001C0034003C007000FC01FE0 585 | :10A48000602500058007C001C0030007000300002D 586 | :10A490008001C0034003C007001B2037E005000512 587 | :10A4A0008007C00C6018603000300000000C000E07 588 | :10A4B000000E200EE027003E000A000A000F80195F 589 | :10A4C000C019C01900380000C000C001C001C0118F 590 | :10A4D000901FF00140014001C0036006600E600E55 591 | :10A4E000700000001831983398339831F01F8003C2 592 | :10A4F00080028002C007C00CC00CC00CC00000006D 593 | :10A500001831983398331013F01F800300030003B1 594 | :10A510008007C004C004C006000600003062306737 595 | :10A5200030672026E03F000700060006000F800984 596 | :10A530008009800D000C30003000B001E001C00146 597 | :10A54000800F801B800280028003C006C006C00608 598 | :10A550000000003000300036001E000EC00760070B 599 | :10A56000000500050007800D800D800D00003030D3 600 | :10A57000B031B031E031C01F80038002800280031F 601 | :10A58000800E801880190013000030003000B001E8 602 | :10A59000E001C001800F801B800280028003C006A2 603 | :10A5A000C006C0060000003000300036001E000E5D 604 | :10A5B000C0076007000500050007800D800D800DB5 605 | :10A5C000000000000006000F000B800F6003B00FBA 606 | :10A5D000807280628007C00CC00CC00CC00C0000F0 607 | :10A5E000000000000000000000000000000000006B 608 | :10A5F0000000000000000000000000010001DC017C 609 | :10A600001C00FCE7FCE7000000009CFF9CFF9CFF97 610 | :10A610009CFF9CFF00000000000000000000000202 611 | :10A62000C463C00700009CFF9CFF9CFF9CFF9CFF35 612 | :10A63000000000000000000000000000000000001A 613 | :10A640008000800F800FF40F04009CFF00000000CA 614 | :10A6500000000000000000000000000000000000FA 615 | :10A660008000F000F00FF00F00000000000000007C 616 | :10A6700000000000000000000000000000000000DA 617 | :10A680000CC00CC000000000000000000000000032 618 | :10A690000000000000001CE01CE01CE01CE01CE0CE 619 | :10A6A00000000000000000000000000000000000AA 620 | :10A6B000000000000000000000000000000000009A 621 | :10A6C0000004000E000A800F6003300F8033800307 622 | :10A6D0008007E00C780C000C000C00000004000E59 623 | :10A6E000000A800FC003600F801B800380070003F7 624 | :10A6F0008003C003000300000004000E000A800F66 625 | :10A7000060036013801F80038007C00C601830183E 626 | :10A71000300000008000C0014001C007001BC033B2 627 | :10A72000300700078007C01CC078C000C0000000D0 628 | :10A730008000C0014001C007000FC01B6007000778 629 | :10A74000800700030007000F000300008000C00125 630 | :10A750004001C007001B201BE00700078007C00C5A 631 | :10A760006018603000300000000C000E000E400E3B 632 | :10A77000C027003E00060006000F80098008800800 633 | :10A78000001800001831983398339011F01F8001A1 634 | :10A7900080018001C00340064006C006C0000000E2 635 | :10A7A0001831983398339011F01F80018001800197 636 | :10A7B000C00340064006C006C0000030003000362E 637 | :10A7C000001E000E8007C006000600060007800D70 638 | :10A7D000800D800D000030003000B001E001C001AC 639 | :10A7E0008007800D800180018003C006C006C0067E 640 | :10A7F00000003030B031B031E031C01F8001800145 641 | :10A80000800180038006800C800D0009000030006C 642 | :10A810003000B001E001C0018007800D800180019F 643 | :10A820008003C006C006C0060000003000300036BD 644 | :10A83000001E000E8007C006000600060007800DFF 645 | :10A84000800D800D0000303030363036301EE00F85 646 | :10A8500000060006000600078005C004C00640028E 647 | :10A8600000000000000000000000000000000000E8 648 | :10A87000000000000000000000008007E01F000052 649 | :10A8800000000000000000000000000000000000C8 650 | :10A89000000000008007E01FE01FFCFFFCFFFCFF42 651 | :10A8A00000000000F03FF03FF03F00030003000312 652 | :10A8B000FCFFFCFFFCFF180018001800F87FF87F71 653 | :10A8C00018600060006000601860F87FF87F180072 654 | :10A8D0001800000000000000000000000000000060 655 | :10A8E0000000000000000000000000000000000068 656 | :10A8F0000000000000000000000000000000000058 657 | :10A900000000000000000000000000000000000047 658 | :10A910000000000000000000000000000000000037 659 | :10A920000000000000000000000000000000000027 660 | :10A930000000000000000000000000000000000017 661 | :10A940000000000000000000000000000000000007 662 | :10A9500000000000000000000000000000000000F7 663 | :10A9600000000000000000000000000000000000E7 664 | :10A9700000000000000000000000000000000000D7 665 | :10A9800000000000000000000000000000000000C7 666 | :10A9900000000000000000000000000000000000B7 667 | :10A9A00000000000000000000000000000000000A7 668 | :10A9B0000000000000000000000000000000000097 669 | :10A9C0000000000000000000000000000000000087 670 | :10A9D0000000000000000000000000000000000077 671 | :10A9E0000000000000000000000000000000000067 672 | :10A9F0000005000000000000000000000000000052 673 | :10AA00000000000000000000000303020201020237 674 | :10AA1000030000000000000000000000050000002E 675 | :10AA2000000000000003030000000000030000001D 676 | :10AA30000003010101010101010101030005000002 677 | :10AA400000030300050023000300000000030000D2 678 | :10AA500000000000000000030101010101030301E7 679 | :10AA600002010201030000000003000000000000DA 680 | :10AA700000000003000000000000030000000000D0 681 | :10AA80000304040404030404040404040000230372 682 | :10AA900000000000000003000000000003000000B0 683 | :10AAA0000003000000000003010101020202020293 684 | :10AAB0000203030000000000030000000003000088 685 | :10AAC0000500000300000000000000000003030078 686 | :10AAD0000000230003000500000301010101010340 687 | :10AAE000000000000000000000030201010102015B 688 | :10AAF0000102010102030000000000000000000349 689 | :10AB00000101010301010201010102000000000036 690 | :10AB1000000300000000000000000003000000032C 691 | :10AB20000000020500000200000000000003000019 692 | :10AB300000040404040404030000000300050101F0 693 | :10AB400001010101010103010101020202020000F1 694 | :10AB500000000003000001010101000000000000EE 695 | :10AB600000000300000000000000000000000003DF 696 | :10AB700000000000000000000000000000000300D2 697 | :10AB800000000007000000000000000300000000BB 698 | :10AB900000000101010101010101010101010101A7 699 | :10ABA000010101010101010101010101010106068B 700 | :10ABB0000606060606060606060606060606060635 701 | :10ABC0000606060606060606060620202020202089 702 | :10ABD0002020202020000000000020202020202015 703 | :10ABE0002020202020000000000020202020202005 704 | :10ABF00020202020200000000000202020202020F5 705 | :10AC000020202020200000000000202020202020E4 706 | :10AC100020202020200000000000202020202020D4 707 | :10AC200020202020200000000000202020202020C4 708 | :10AC300020202020200000000000202020202020B4 709 | :10AC400020202020200000000000202020202020A4 710 | :10AC50002020202020000000000020202020202094 711 | :10AC60002020202020000000000020202020202084 712 | :0AAC70002020202020FFFFFFFFFF3F 713 | :00000001FF --------------------------------------------------------------------------------