└── z80asm ├── Default.sublime-keymap ├── Main.sublime-menu ├── README.md ├── Symbol List.JSON-tmPreferences ├── Symbol List.tmPreferences ├── build.bat ├── buildrun.bat ├── helps ├── Basic Symbols └── Z80 Opcodes ├── readme.png ├── run.bat ├── snippets ├── ---.sublime-snippet ├── bank.sublime-snippet ├── basexit.sublime-snippet ├── basic.sublime-snippet ├── border.sublime-snippet ├── cls.sublime-snippet ├── clsa.sublime-snippet ├── clsr.sublime-snippet ├── down.sublime-snippet ├── downs.sublime-snippet ├── fontaddr.sublime-snippet ├── fontpr.sublime-snippet ├── im2.sublime-snippet ├── init.sublime-snippet ├── interr.sublime-snippet ├── loadsec.sublime-snippet ├── loop_bc.sublime-snippet ├── loop_djnz.sublime-snippet ├── m128.sublime-snippet ├── macro.sublime-snippet ├── module.sublime-snippet ├── pp.sublime-snippet ├── savebin.sublime-snippet ├── savesna.sublime-snippet ├── savesp.sublime-snippet ├── savetrd.sublime-snippet ├── shutay.sublime-snippet ├── spr.sublime-snippet ├── struct.sublime-snippet ├── up.sublime-snippet ├── ups.sublime-snippet ├── waitany.sublime-snippet ├── waitenter.sublime-snippet ├── waitnokey.sublime-snippet └── waitspace.sublime-snippet ├── z80asm (breeze).JSON-tmTheme ├── z80asm (breeze).tmTheme ├── z80asm.JSON-tmLanguage ├── z80asm.JSON-tmPreferences ├── z80asm.JSON-tmTheme ├── z80asm.about ├── z80asm.py ├── z80asm.quickhelp ├── z80asm.sublime-build ├── z80asm.sublime-settings ├── z80asm.tmLanguage ├── z80asm.tmPreferences └── z80asm.tmTheme /z80asm/Default.sublime-keymap: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "keys": ["f1"], "command": "a80_quick_help", 4 | "context": [ 5 | { 6 | "operand": "source.z80asm", 7 | "operator": "equal", 8 | "key": "selector" 9 | } 10 | ] 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /z80asm/Main.sublime-menu: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | { 4 | "caption": "Z80Asm", 5 | "mnemonic": "Z", 6 | "id": "z80asm", 7 | "children": 8 | [ 9 | { "command": "", "caption": "New", "mnemonic": "N", 10 | "children": 11 | [ 12 | { "command": "a80_do_cmd", "args": {"cmd":"NewCode"}, "caption": "Code", "mnemonic": "C" }, 13 | { "command": "a80_do_cmd", "args": {"cmd":"NewBasic"}, "caption": "Basic loader", "mnemonic": "B" } 14 | ] 15 | }, 16 | 17 | { "caption": "-"}, 18 | { "command": "a80_do_cmd", "args": {"cmd":"Build"}, "caption": "Build", "mnemonic": "B" }, 19 | { "command": "a80_do_cmd", "args": {"cmd":"Run"}, "caption": "Run", "mnemonic": "R" }, 20 | { "command": "a80_do_cmd", "args": {"cmd":"Build_Run"}, "caption": "Build and Run", "mnemonic": "u" }, 21 | 22 | { "caption": "-"}, 23 | { "command": "a80_do_cmd", "args": {"cmd":"AFormat"}, "caption": "Auto-format", "mnemonic": "A" }, 24 | { "command": "a80_do_cmd", "args": {"cmd":"JLine"}, "caption": "Join lines", "mnemonic": "J" }, 25 | { "command": "a80_do_cmd", "args": {"cmd":"Sline"}, "caption": "Split line", "mnemonic": "S" }, 26 | { "command": "", "caption": "Syntax convert", "mnemonic": "y", 27 | "children": 28 | [ 29 | { "command": "a80_do_cmd", "args": {"cmd":"SynStorm"}, "caption": "From Storm", "mnemonic": "S" }, 30 | { "command": "a80_do_cmd", "args": {"cmd":"SynAlasm"}, "caption": "From Alasm", "mnemonic": "A" } 31 | ] 32 | }, 33 | 34 | { "caption": "-"}, 35 | 36 | { "command": "", "caption": "Settings", "mnemonic": "e", 37 | "children": 38 | [ 39 | { "command": "open_file", "args": {"file": "${packages}/z80asm/z80asm.sublime-settings"}, "caption": "Main settings...", "mnemonic": "M" }, 40 | { "command": "open_file", "args": {"file": "${packages}/z80asm/z80asm.sublime-build"}, "caption": "Build settings...", "mnemonic": "B" }, 41 | { "caption": "-"}, 42 | { "command": "open_file", "args": {"file": "${packages}/z80asm/build.bat"}, "caption": "Build script (win)..." }, 43 | { "command": "open_file", "args": {"file": "${packages}/z80asm/build.sh"}, "caption": "Build script (linux)..." }, 44 | { "command": "open_file", "args": {"file": "${packages}/z80asm/build"}, "caption": "Build script (osx)..." }, 45 | { "caption": "-"}, 46 | { "command": "open_file", "args": {"file": "${packages}/z80asm/run.bat"}, "caption": "Emul script (win)..." }, 47 | { "command": "open_file", "args": {"file": "${packages}/z80asm/run.sh"}, "caption": "Emul script (linux)..." }, 48 | { "command": "open_file", "args": {"file": "${packages}/z80asm/run"}, "caption": "Emul script (osx)..." } 49 | ] 50 | }, 51 | 52 | { "caption": "-"}, 53 | { "command": "", "caption": "Help", "mnemonic": "H", 54 | "children": 55 | [ 56 | { "command": "open_file", "args": {"file": "${packages}/z80asm/README.md"}, "caption": "Read me", "mnemonic": "R" }, 57 | { "caption": "-"}, 58 | {"command": "a80_help", "args": {"indx":0}}, 59 | {"command": "a80_help", "args": {"indx":1}}, 60 | {"command": "a80_help", "args": {"indx":2}}, 61 | {"command": "a80_help", "args": {"indx":3}}, 62 | {"command": "a80_help", "args": {"indx":4}}, 63 | {"command": "a80_help", "args": {"indx":5}}, 64 | {"command": "a80_help", "args": {"indx":6}}, 65 | {"command": "a80_help", "args": {"indx":7}}, 66 | {"command": "a80_help", "args": {"indx":8}}, 67 | {"command": "a80_help", "args": {"indx":9}} 68 | ] 69 | }, 70 | 71 | { "caption": "-"}, 72 | { "command": "open_file", "args": {"file": "${packages}/z80asm/z80asm.about"}, "caption": "About...", "mnemonic": "t" } 73 | 74 | ] 75 | } 76 | 77 | ] 78 | -------------------------------------------------------------------------------- /z80asm/README.md: -------------------------------------------------------------------------------- 1 | # [Z80 Asm plugin for Sublime Text 2/3](https://github.com/psbhlw/sublime-text-z80asm) 2 | --- 3 | 4 | ## Product Info 5 | 6 | This plugin contains syntax definition for Z80 assembler language, code snippets (mostly for ZX-Spectrum), its own shiny color theme. Building system is mainly oriented on [SjASMPlus](http://sourceforge.net/projects/sjasmplus/) assembler and [Unreal Speccy](http://dlcorp.nedopc.com/viewforum.php?f=27) emulator. But of course you can use your own tools with a little fixes to configs. 7 | 8 | ![Screenshot](readme.png) 9 | 10 | --- 11 | 12 | ## Installation and configuration 13 | 14 | 1. Copy the `z80asm` directory to the Sublime Text `Packages` directory. Installation is complete. 15 | 2. (Optional, see below) Go to the `Z80Asm > Settings > Build script...` menu and specify a path to your sjasmplus binary. You also can add your own arguments to sjasmplus. 16 | 3. (Optional, see below) Go to the `Z80Asm > Settings > Emul script...` menu and specify a path to your UnrealSpeccy binary. You also can modify the way the emulator starts. 17 | 4. Go to the `Tools > Build System` menu and select the `z80asm` item. 18 | 19 | --- 20 | 21 | ## Features 22 | 23 | #### Color scheme 24 | 25 | This plugin contains its own color scheme `z80asm.tmTheme` based on Monokai theme. There are some `*.asm` scope selectors with specific colors for assembler tokens. You can tune it on your own taste or integrate it into any other theme. If you don't want any special theme for Z80 Asm - go to the `Z80Asm > Settings > Main settings...` menu and comment the `"color_scheme": "Packages/z80asm/z80asm.tmTheme",` line out. 26 | 27 | #### Build system 28 | 29 | Sublime Text build system is defined in the `z80asm.sublime-build` file (`Z80Asm > Settings > Build settings...`). This definition file will run an appropriate script for Windows/Linux/OSX system. It also defines `Run` and `Build and Run` actions. 30 | 31 | You can specify a path to assembler by `Z80Asm > Settings > Build script...` menu. The included script (`Z80Asm > Settings > Build script...`) performs a search for a `make.bat`/`make.sh` script in the project folder. If the script is found, it will be called (in this case you don't have to specify a path to assembler), otherwise assembler will run against the current file. Included script also removes the `.out` file which is often redundant. If you need this file - comment out the removal. 32 | 33 | #### Emulator support 34 | 35 | You can specify a path to emulator by `Z80Asm > Settings > Emul script...` menu. The included script attempts to do a search for an `emul.bat`/`emul.sh` script in the project folder. If the script is found, it will be called (in this case you don't have to specify a path to emulator), otherwise the emulator will run with `%asm_name%.sna` parameter or, if `.sna` is absent, with `.spg`/`.trd`/`.scl`/`.tap` parameters. So, to make things work, you must put the `emul.bat` or `emul.sh` script into the project folder, or your source file must create .sna/.spg/.trd/.scl/.tap with the same base name (hello.a80 -> hello.sna). 36 | 37 | #### Snippets 38 | 39 | There are a lot of useful snippets for ZX-Spectrum, you can trigger them by typing their name and pressing Tab: 40 | 41 | * --- - Delimiter 42 | * !basic - Basic monoloader skeleton 43 | * !basexit - Restore regs and return to Basic 44 | * !init - Skeleton for assembler 45 | * !im2 - Init IM 2 interrupt (create table) 46 | * !interr - Interrupt routine 47 | * !bank - Switch bank (#7ffd) 48 | * !loop_bc - BC loop 49 | * !loop_djnz - DJNZ loop 50 | * !m128 - Memory 48k/128k test 51 | * !pp - PUSH/POP pair 52 | * !savesp - Save and restore SP 53 | * !shutay - Shut up AY-Chip 54 | * !loadsec - Load sectors (TR-DOS, #3d13) 55 | * !border - Set border color 56 | * !cls - Clear screen 57 | * !clsa - Clear screen attributes 58 | * !clsr - Clear screen (reverse direction) 59 | * !down - Calc address of next screen line 60 | * !downs - Calc address of next screen line (subroutine) 61 | * !up - Calc address of prev screen line 62 | * !ups - Calc address of prev screen line (subroutine) 63 | * !fontaddr - Find character in font (8x8) 64 | * !fontpr - Print character 65 | * !spr - Print sprite 66 | * !waitany - Wait any key 67 | * !waitnokey - Wait all keys unpressed 68 | * !waitenter - Wait Enter key 69 | * !waitspace - Wait Space Key 70 | * !macro - Macro definition 71 | * !module - Module definition 72 | * !struct - Structure definition 73 | * !savetrd - Save binary block into .trd image 74 | * !savesna - Save .sna snapshot 75 | * !savebin - Save binary block 76 | 77 | #### Auto completion and Goto Symbol 78 | 79 | This plugin expands the auto completion feature to all opened tabs (instead of just current file). You can disable it in the settings (`Z80Asm > Settings > Main settings...`). 80 | 81 | You can use `Goto > Goto Symbol...` option to jump to the label definition. In Sublime Text 3 you also can use `Goto > Goto Symbol in Project...` to navigate through labels in the whole project. 82 | 83 | #### Help files 84 | 85 | In the `Z80Asm > Help` sub-menu you can find a few help files. Some of them are provided with the plugin, and you also can put your help file into `Packages/z80asm/helps/`, and it will appear in menu. There are maximum 10 files allowed. 86 | 87 | Also, you can call a quick help panel by pressing F1 where you can do a search through opcodes/mnemonics/timings. 88 | 89 | --- 90 | 91 | ## Support 92 | 93 | If you have a bug/feature request - please post it on [issue tracker](https://github.com/psbhlw/sublime-text-z80asm/issues). 94 | 95 | --- 96 | 97 | ## Thanks 98 | 99 | * breeze 100 | * introspec 101 | * key-jee 102 | * elf/2 103 | * Sean Young 104 | 105 | --- 106 | 107 | ## Copyright and license 108 | 109 | (c) 2013, psb^hlw. 110 | 111 | Software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 112 | -------------------------------------------------------------------------------- /z80asm/Symbol List.JSON-tmPreferences: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Symbol List", 3 | "scope": "entity.name.label.def.asm", 4 | "settings": { 5 | "showInIndexedSymbolList": 1, 6 | "showInSymbolList": 1 7 | }, 8 | "uuid": "46F06118-8CE4-4C95-A4C4-4507E056A597" 9 | } 10 | -------------------------------------------------------------------------------- /z80asm/Symbol List.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List 7 | scope 8 | entity.name.label.def.asm 9 | settings 10 | 11 | showInIndexedSymbolList 12 | 1 13 | showInSymbolList 14 | 1 15 | 16 | uuid 17 | 46F06118-8CE4-4C95-A4C4-4507E056A597 18 | 19 | 20 | -------------------------------------------------------------------------------- /z80asm/build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem ---------------------------------------------------------------------------- 3 | rem This script builds the source. At first it's search for make.bat in the 4 | rem project folder. If it's found - call it, otherwise run ASM against asm-file. 5 | rem Current directory at entry to this script is asm-file's directory. 6 | rem There are two input parameters: 7 | rem 1. filename (without path), 8 | rem 2. project file path. 9 | rem ---------------------------------------------------------------------------- 10 | 11 | set ASM="R:\sjasmplus.exe" 12 | 13 | rem Check if file exists 14 | if not exist %1 ( 15 | echo Source file not found! 16 | set errorlevel=1 17 | goto :end 18 | ) 19 | 20 | rem Run external script from project folder if exists 21 | if exist "%2\make.bat" ( 22 | chdir /d "%2" 23 | call "make.bat" %1 %2 24 | goto :end 25 | ) 26 | 27 | rem Simple compile 28 | "%ASM%" %1 29 | 30 | rem Compile with listings, symbols, exports 31 | rem "%ASM%" --lst="%~dpn1.lst" --sym="%~dpn1.sym" --exp="%~dpn1.exp" %1 32 | 33 | rem Remove .out file 34 | if %errorlevel% neq 0 goto :end 35 | del "%~dpn1.out" 36 | set errorlevel=0 37 | 38 | :end 39 | -------------------------------------------------------------------------------- /z80asm/buildrun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call "%~dp0\build.bat" %1 %2 3 | 4 | if %errorlevel% neq 0 goto :end 5 | call "%~dp0\run.bat" %1 %2 6 | 7 | :end 8 | -------------------------------------------------------------------------------- /z80asm/helps/Basic Symbols: -------------------------------------------------------------------------------- 1 | Control codes 2 | ------------- 3 | 4 | code input (keyb) output (screen) 5 | ------ ------------------ ------------------- 6 | 0 00 cs/ss+cs/8 7 | 1 01 cs/ss+cs/9 8 | 2 02 cs/ss+8 9 | 3 03 cs/ss+9 10 | 4 04 cs/3 (True video) 11 | 5 05 cs/4 (Inv video) 12 | 6 06 cs/2 (caps lock) tab (PRINT ,) 13 | 7 07 cs/1 (Edit) 14 | 8 08 cs/5 (Left) backspace 15 | 9 09 cs/8 (Right) 16 | 10 0a cs/6 (Down) 17 | 11 0b cs/7 (Up) 18 | 12 0c cs/0 (Delete) 19 | 13 0d Enter cr+lf 20 | 14 0e cs/ss (Ext mode) 21 | 15 0f cs/9 (Graph mode) 22 | 16 10 cs/ss+0 INK 23 | 17 11 cs/ss+1 PAPER 24 | 18 12 cs/ss+2 FLASH 25 | 19 13 cs/ss+3 BRIGHT 26 | 20 14 cs/ss+4 INVERSE 27 | 21 15 cs/ss+5 OVER 28 | 22 16 cs/ss+6 AT 29 | 23 17 cs/ss+7 TAB 30 | 24 18 cs/ss+cs/0 31 | 25 19 cs/ss+cs/1 32 | 26 1a cs/ss+cs/2 33 | 27 1b cs/ss+cs/3 34 | 28 1c cs/ss+cs/4 35 | 29 1d cs/ss+cs/5 36 | 30 1e cs/ss+cs/6 37 | 31 1f cs/ss+cs/7 38 | 39 | 40 | User defined graphics (UDG) 41 | --------------------------- 42 | 43 | code char 44 | ------ ---- 45 | 144 90 A 46 | 145 91 B 47 | 146 92 C 48 | 147 93 D 49 | 148 94 E 50 | 149 95 F 51 | 150 96 G 52 | 151 97 H 53 | 152 98 I 54 | 153 99 J 55 | 154 9a K 56 | 155 9b L 57 | 156 9c M 58 | 157 9d N 59 | 158 9e O 60 | 159 9f P 61 | 160 a0 Q 62 | 161 a1 R 63 | 162 a2 S 64 | 163 a3 T 65 | 164 a4 U 66 | 67 | 68 | Basic keywords 69 | -------------- 70 | 71 | code keyword 72 | ------ ------- 73 | 165 a5 RND 74 | 166 a6 INKEY$ 75 | 167 a7 PI 76 | 168 a8 FN 77 | 169 a9 POINT 78 | 170 aa SCREEN$ 79 | 171 ab ATTR 80 | 172 ac AT 81 | 173 ad TAB 82 | 174 ae VAL$ 83 | 175 af CODE 84 | 176 b0 VAL 85 | 177 b1 LEN 86 | 178 b2 SIN 87 | 179 b3 COS 88 | 180 b4 TAN 89 | 181 b5 ASN 90 | 182 b6 ACS 91 | 183 b7 ATN 92 | 184 b8 LN 93 | 185 b9 EXP 94 | 186 ba INT 95 | 187 bb SOR 96 | 188 bc SGN 97 | 189 bd ABS 98 | 190 be PEEK 99 | 191 bf IN 100 | 192 c0 USR 101 | 193 c1 STR$ 102 | 194 c2 CHR$ 103 | 195 c3 NOT 104 | 196 c4 BIN 105 | 197 c5 OR 106 | 198 c6 AND 107 | 199 c7 <= 108 | 200 c8 >= 109 | 201 c9 <> 110 | 202 ca LINE 111 | 203 cb THEN 112 | 204 cc TO 113 | 205 cd STEP 114 | 206 ce DEF FN 115 | 207 cf CAT 116 | 208 d0 FORMAT 117 | 209 d1 MOVE 118 | 210 d2 ERASE 119 | 211 d3 OPEN # 120 | 212 d4 CLOSE # 121 | 213 d5 MERGE 122 | 214 d6 VERIFY 123 | 215 d7 BEEP 124 | 216 d8 CIRCLE 125 | 217 d9 INK 126 | 218 da PAPER 127 | 219 db FLASH 128 | 220 dc BRIGHT 129 | 221 dd INVERSE 130 | 222 de OVER 131 | 223 df OUT 132 | 224 e0 LPRINT 133 | 225 e1 LLIST 134 | 226 e2 STOP 135 | 227 e3 READ 136 | 228 e4 DATA 137 | 229 e5 RESTORE 138 | 230 e6 NEW 139 | 231 e7 BORDER 140 | 232 e8 CONTINUE 141 | 233 e9 DIM 142 | 234 ea REM 143 | 235 eb FOR 144 | 236 ec GO TO 145 | 237 ed GO SUB 146 | 238 ee INPUT 147 | 239 ef LOAD 148 | 240 f0 LIST 149 | 241 f1 LET 150 | 242 f2 PAUSE 151 | 243 f3 NEXT 152 | 244 f4 POKE 153 | 245 f5 PRINT 154 | 246 f6 PLOT 155 | 247 f7 RUN 156 | 248 f8 SAVE 157 | 249 f9 RANDOMIZE 158 | 250 fa IF 159 | 251 fb CLS 160 | 252 fc DRAW 161 | 253 fd CLEAR 162 | 254 fe RETURN 163 | 255 ff COPY 164 | -------------------------------------------------------------------------------- /z80asm/readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psbhlw/sublime-text-z80asm/7dd9274fee64471fa51ceac67beb36fa8530f96e/z80asm/readme.png -------------------------------------------------------------------------------- /z80asm/run.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem ---------------------------------------------------------------------------- 3 | rem This script runs the emulator. At first it's search for emul.bat in the 4 | rem project folder. If it's found - call it, otherwise it will search for 5 | rem .sna/.spg/.trd/.scl/.tap and call EMUL with it. 6 | rem Current directory at entry to this script is asm-file's directory. 7 | rem There are two input parameters: 8 | rem 1. filename (without path), 9 | rem 2. project file path. 10 | rem ---------------------------------------------------------------------------- 11 | 12 | set EMUL="R:\emul\emul.exe" 13 | 14 | rem Run external script from project folder if exists 15 | if exist "%2\emul.bat" ( 16 | chdir /d "%2" 17 | call "emul.bat" %1 %2 18 | goto :end 19 | ) 20 | 21 | rem Check if .sna file exists 22 | if exist "%~n1.sna" ( 23 | "%EMUL%" "%~n1.sna" 24 | goto :end 25 | ) 26 | 27 | rem Check if .spg file exists 28 | if exist "%~n1.spg" ( 29 | "%EMUL%" "%~n1.spg" 30 | goto :end 31 | ) 32 | 33 | rem Check if .trd file exists 34 | if exist "%~n1.trd" ( 35 | "%EMUL%" "%~n1.trd" 36 | goto :end 37 | ) 38 | 39 | rem Check if .scl file exists 40 | if exist "%~n1.scl" ( 41 | "%EMUL%" "%~n1.scl" 42 | goto :end 43 | ) 44 | 45 | rem Check if .tap file exists 46 | if exist "%~n1.tap" ( 47 | "%EMUL%" "%~n1.tap" 48 | goto :end 49 | ) 50 | 51 | echo No image file found! 52 | 53 | :end 54 | -------------------------------------------------------------------------------- /z80asm/snippets/---.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | --- 8 | 9 | source.z80asm 10 | Z80 Asm: delimiter 11 | 12 | -------------------------------------------------------------------------------- /z80asm/snippets/bank.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | !bank 10 | 11 | source.z80asm 12 | Z80 Asm: set bank 13 | 14 | -------------------------------------------------------------------------------- /z80asm/snippets/basexit.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | !basexit 14 | 15 | source.z80asm 16 | Z80 Asm: restore regs and exit to basic 17 | 18 | -------------------------------------------------------------------------------- /z80asm/snippets/basic.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 28 | 29 | !basic 30 | 31 | source.z80asm 32 | Z80 Asm: basic loader skeleton 33 | 34 | -------------------------------------------------------------------------------- /z80asm/snippets/border.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | !border 9 | 10 | source.z80asm 11 | Z80 Asm: set border color 12 | 13 | -------------------------------------------------------------------------------- /z80asm/snippets/cls.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | !cls 13 | 14 | source.z80asm 15 | Z80 Asm: clear screen 16 | 17 | -------------------------------------------------------------------------------- /z80asm/snippets/clsa.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | !clsa 13 | 14 | source.z80asm 15 | Z80 Asm: clear screen attributes 16 | 17 | -------------------------------------------------------------------------------- /z80asm/snippets/clsr.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | !clsr 13 | 14 | source.z80asm 15 | Z80 Asm: clear screen (reverse) 16 | 17 | -------------------------------------------------------------------------------- /z80asm/snippets/down.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | !down 19 | 20 | source.z80asm 21 | Z80 Asm: next screen line address 22 | 23 | -------------------------------------------------------------------------------- /z80asm/snippets/downs.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | !downs 20 | 21 | source.z80asm 22 | Z80 Asm: next screen line address (sub) 23 | 24 | -------------------------------------------------------------------------------- /z80asm/snippets/fontaddr.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | !fontaddr 12 | 13 | source.z80asm 14 | Z80 Asm: calc address in font 15 | 16 | -------------------------------------------------------------------------------- /z80asm/snippets/fontpr.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | !fontpr 16 | 17 | source.z80asm 18 | Z80 Asm: print char 19 | 20 | -------------------------------------------------------------------------------- /z80asm/snippets/im2.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 21 | 22 | !im2 23 | 24 | source.z80asm 25 | Z80 Asm: im2 init 26 | 27 | -------------------------------------------------------------------------------- /z80asm/snippets/init.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | !init 16 | 17 | source.z80asm 18 | Z80 Asm: a80 skeleton 19 | 20 | -------------------------------------------------------------------------------- /z80asm/snippets/interr.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | !int 16 | 17 | source.z80asm 18 | Z80 Asm: interrupt routine 19 | 20 | -------------------------------------------------------------------------------- /z80asm/snippets/loadsec.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | !loadsec 12 | 13 | source.z80asm 14 | Z80 Asm: load sectors (#3d13) 15 | 16 | -------------------------------------------------------------------------------- /z80asm/snippets/loop_bc.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | !loop_bc 14 | 15 | source.z80asm 16 | Z80 Asm: loop 17 | 18 | -------------------------------------------------------------------------------- /z80asm/snippets/loop_djnz.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | !loop_djnz 11 | 12 | source.z80asm 13 | Z80 Asm: loop 14 | 15 | -------------------------------------------------------------------------------- /z80asm/snippets/m128.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | !m128 22 | 23 | source.z80asm 24 | Z80 Asm: 128k mode test 25 | 26 | -------------------------------------------------------------------------------- /z80asm/snippets/macro.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | !macro 10 | 11 | source.z80asm 12 | Z80 Asm: macro 13 | 14 | -------------------------------------------------------------------------------- /z80asm/snippets/module.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | !module 10 | 11 | source.z80asm 12 | Z80 Asm: module 13 | 14 | -------------------------------------------------------------------------------- /z80asm/snippets/pp.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | !pp 10 | 11 | source.z80asm 12 | Z80 Asm: push pop 13 | 14 | -------------------------------------------------------------------------------- /z80asm/snippets/savebin.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | !savebin 8 | 9 | source.z80asm 10 | Z80 Asm: savebin 11 | 12 | -------------------------------------------------------------------------------- /z80asm/snippets/savesna.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | !savesna 8 | 9 | source.z80asm 10 | Z80 Asm: savesna 11 | 12 | -------------------------------------------------------------------------------- /z80asm/snippets/savesp.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | !savesp 11 | 12 | source.z80asm 13 | Z80 Asm: save and restore sp 14 | 15 | -------------------------------------------------------------------------------- /z80asm/snippets/savetrd.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | !savetrd 8 | 9 | source.z80asm 10 | Z80 Asm: savetrd 11 | 12 | -------------------------------------------------------------------------------- /z80asm/snippets/shutay.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | !shutay 16 | 17 | source.z80asm 18 | Z80 Asm: shut AY 19 | 20 | -------------------------------------------------------------------------------- /z80asm/snippets/spr.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | !spr 18 | 19 | source.z80asm 20 | Z80 Asm: print sprite 21 | 22 | -------------------------------------------------------------------------------- /z80asm/snippets/struct.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | !struct 12 | 13 | source.z80asm 14 | Z80 Asm: struct 15 | 16 | -------------------------------------------------------------------------------- /z80asm/snippets/up.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | !up 19 | 20 | source.z80asm 21 | Z80 Asm: prev screen line address 22 | 23 | -------------------------------------------------------------------------------- /z80asm/snippets/ups.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | !ups 20 | 21 | source.z80asm 22 | Z80 Asm: prev screen line address (sub) 23 | 24 | -------------------------------------------------------------------------------- /z80asm/snippets/waitany.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | !waitany 13 | 14 | source.z80asm 15 | Z80 Asm: wait any key 16 | 17 | -------------------------------------------------------------------------------- /z80asm/snippets/waitenter.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | !waitenter 12 | 13 | source.z80asm 14 | Z80 Asm: wait enter key 15 | 16 | -------------------------------------------------------------------------------- /z80asm/snippets/waitnokey.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | !waitnokey 13 | 14 | source.z80asm 15 | Z80 Asm: wait no key pressed 16 | 17 | -------------------------------------------------------------------------------- /z80asm/snippets/waitspace.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | !waitspace 12 | 13 | source.z80asm 14 | Z80 Asm: wait space key 15 | 16 | -------------------------------------------------------------------------------- /z80asm/z80asm (breeze).JSON-tmTheme: -------------------------------------------------------------------------------- 1 | { 2 | "name": "z80asm (Breeze)", 3 | "settings": [ 4 | { 5 | "settings": { 6 | "activeGuide": "#9D550FB0", 7 | "background": "#272822", 8 | "bracketContentsForeground": "#F8F8F2A5", 9 | "bracketContentsOptions": "underline", 10 | "bracketsForeground": "#F8F8F2A5", 11 | "bracketsOptions": "underline", 12 | "caret": "#F8F8F0", 13 | "findHighlight": "#FFE792", 14 | "findHighlightForeground": "#000000", 15 | "foreground": "#F8F8F2", 16 | "invisibles": "#3B3A32", 17 | "lineHighlight": "#3E3D32", 18 | "selection": "#49483E", 19 | "selectionBorder": "#222218", 20 | "tagsOptions": "stippled_underline" 21 | } 22 | }, 23 | { 24 | "name": "Comment", 25 | "scope": "comment", 26 | "settings": { 27 | "foreground": "#75715E" 28 | } 29 | }, 30 | { 31 | "name": "String", 32 | "scope": "string", 33 | "settings": { 34 | "foreground": "#E6DB74" 35 | } 36 | }, 37 | { 38 | "name": "Number", 39 | "scope": "constant.numeric", 40 | "settings": { 41 | "foreground": "#AE81FF" 42 | } 43 | }, 44 | { 45 | "name": "Built-in constant", 46 | "scope": "constant.language", 47 | "settings": { 48 | "foreground": "#AE81FF" 49 | } 50 | }, 51 | { 52 | "name": "User-defined constant", 53 | "scope": "constant.character, constant.other", 54 | "settings": { 55 | "foreground": "#AE81FF" 56 | } 57 | }, 58 | { 59 | "name": "Variable", 60 | "scope": "variable", 61 | "settings": { 62 | "fontStyle": "" 63 | } 64 | }, 65 | { 66 | "name": "Keyword", 67 | "scope": "keyword", 68 | "settings": { 69 | "foreground": "#F92672" 70 | } 71 | }, 72 | { 73 | "name": "Storage", 74 | "scope": "storage", 75 | "settings": { 76 | "fontStyle": "", 77 | "foreground": "#F92672" 78 | } 79 | }, 80 | { 81 | "name": "Storage type", 82 | "scope": "storage.type", 83 | "settings": { 84 | "fontStyle": "italic", 85 | "foreground": "#66D9EF" 86 | } 87 | }, 88 | { 89 | "name": "Class name", 90 | "scope": "entity.name.class", 91 | "settings": { 92 | "fontStyle": "underline", 93 | "foreground": "#A6E22E" 94 | } 95 | }, 96 | { 97 | "name": "Inherited class", 98 | "scope": "entity.other.inherited-class", 99 | "settings": { 100 | "fontStyle": "italic underline", 101 | "foreground": "#A6E22E" 102 | } 103 | }, 104 | { 105 | "name": "Function name", 106 | "scope": "entity.name.function", 107 | "settings": { 108 | "fontStyle": "", 109 | "foreground": "#A6E22E" 110 | } 111 | }, 112 | { 113 | "name": "Function argument", 114 | "scope": "variable.parameter", 115 | "settings": { 116 | "fontStyle": "italic", 117 | "foreground": "#FD971F" 118 | } 119 | }, 120 | { 121 | "name": "Tag name", 122 | "scope": "entity.name.tag", 123 | "settings": { 124 | "fontStyle": "", 125 | "foreground": "#F92672" 126 | } 127 | }, 128 | { 129 | "name": "Tag attribute", 130 | "scope": "entity.other.attribute-name", 131 | "settings": { 132 | "fontStyle": "", 133 | "foreground": "#A6E22E" 134 | } 135 | }, 136 | { 137 | "name": "Library function", 138 | "scope": "support.function", 139 | "settings": { 140 | "fontStyle": "", 141 | "foreground": "#66D9EF" 142 | } 143 | }, 144 | { 145 | "name": "Library constant", 146 | "scope": "support.constant", 147 | "settings": { 148 | "fontStyle": "", 149 | "foreground": "#66D9EF" 150 | } 151 | }, 152 | { 153 | "name": "Library class/type", 154 | "scope": "support.type, support.class", 155 | "settings": { 156 | "fontStyle": "italic", 157 | "foreground": "#66D9EF" 158 | } 159 | }, 160 | { 161 | "name": "Library variable", 162 | "scope": "support.other.variable", 163 | "settings": { 164 | "fontStyle": "" 165 | } 166 | }, 167 | { 168 | "name": "Invalid", 169 | "scope": "invalid", 170 | "settings": { 171 | "background": "#F92672", 172 | "fontStyle": "", 173 | "foreground": "#F8F8F0" 174 | } 175 | }, 176 | { 177 | "name": "Invalid deprecated", 178 | "scope": "invalid.deprecated", 179 | "settings": { 180 | "background": "#AE81FF", 181 | "foreground": "#F8F8F0" 182 | } 183 | }, 184 | { 185 | "name": "JSON String", 186 | "scope": "meta.structure.dictionary.json string.quoted.double.json", 187 | "settings": { 188 | "foreground": "#CFCFC2" 189 | } 190 | }, 191 | { 192 | "name": "diff.header", 193 | "scope": "meta.diff, meta.diff.header", 194 | "settings": { 195 | "foreground": "#75715E" 196 | } 197 | }, 198 | { 199 | "name": "diff.deleted", 200 | "scope": "markup.deleted", 201 | "settings": { 202 | "foreground": "#F92672" 203 | } 204 | }, 205 | { 206 | "name": "diff.inserted", 207 | "scope": "markup.inserted", 208 | "settings": { 209 | "foreground": "#A6E22E" 210 | } 211 | }, 212 | { 213 | "name": "diff.changed", 214 | "scope": "markup.changed", 215 | "settings": { 216 | "foreground": "#E6DB74" 217 | } 218 | }, 219 | { 220 | "scope": "constant.numeric.line-number.find-in-files - match", 221 | "settings": { 222 | "foreground": "#AE81FFA0" 223 | } 224 | }, 225 | { 226 | "scope": "entity.name.filename.find-in-files", 227 | "settings": { 228 | "foreground": "#E6DB74" 229 | } 230 | }, 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | { 239 | "Name": "Bad line", 240 | "scope": "invalid.illegal.asm", 241 | "settings": { 242 | "fontStyle": "", 243 | "background": "#FF0000", 244 | "foreground": "#FFFFFF" 245 | } 246 | }, 247 | { 248 | "Name": "Label", 249 | "scope": "entity.name.label.asm", 250 | "settings": { 251 | "fontStyle": "", 252 | "foreground": "#dab9ff" 253 | } 254 | }, 255 | { 256 | "Name": "Label definition", 257 | "scope": "entity.name.label.def.asm", 258 | "settings": { 259 | "fontStyle": "", 260 | "foreground": "#dab9ff" 261 | } 262 | }, 263 | { 264 | "Name": "Flags", 265 | "scope": "constant.other.flag.asm", 266 | "settings": { 267 | "fontStyle": "", 268 | "foreground": "#5c7fc1" 269 | } 270 | }, 271 | 272 | { 273 | "Name": "Z80 commands", 274 | "scope": "keyword.other.command.asm", 275 | "settings": { 276 | "fontStyle": "", 277 | "foreground": "#c15c95" 278 | } 279 | }, 280 | { 281 | "Name": "Z80 commands / known macros (down/up)", 282 | "scope": "keyword.other.command.extended.asm", 283 | "settings": { 284 | "fontStyle": "", 285 | "foreground": "#FFFFFF" 286 | } 287 | }, 288 | 289 | { 290 | "Name": "Asm data definition directives (db)", 291 | "scope": "storage.type.datadef.asm", 292 | "settings": { 293 | "fontStyle": "", 294 | "foreground": "#506070" 295 | } 296 | }, 297 | { 298 | "Name": "Asm general directives (org/dup)", 299 | "scope": "keyword.control.asm", 300 | "settings": { 301 | "fontStyle": "", 302 | "foreground": "#8ca4dc" 303 | } 304 | }, 305 | 306 | { 307 | "Name": "Asm functions (high/low/shr)", 308 | "scope": "support.function.asm", 309 | "settings": { 310 | "fontStyle": "", 311 | "foreground": "#FFAA00" 312 | } 313 | }, 314 | 315 | { 316 | "Name": "SjASM directives/commands (device/display/savesna)", 317 | "scope": "keyword.directive.extended.asm", 318 | "settings": { 319 | "fontStyle": "", 320 | "foreground": "#dc8cc3" 321 | } 322 | }, 323 | 324 | { 325 | "Name": "register set", 326 | "scope": "variable.parameter.register.asm", 327 | "settings": { 328 | "fontStyle": "", 329 | "foreground": "#dfaf8f" 330 | } 331 | }, 332 | { 333 | "Name": "HEX/DEC/BIN number", 334 | "scope": "constant.numeric.asm", 335 | "settings": { 336 | "fontStyle": "", 337 | "foreground": "#60b48a" 338 | } 339 | }, 340 | 341 | { 342 | "Name": "Comment line", 343 | "scope": "comment.line.asm", 344 | "settings": { 345 | "fontStyle": "italic", 346 | "foreground": "#75715E" 347 | } 348 | }, 349 | { 350 | "Name": "C-style comment block", 351 | "scope": "comment.block.asm", 352 | "settings": { 353 | "fontStyle": "italic", 354 | "foreground": "#75715E" 355 | } 356 | }, 357 | { 358 | "Name": "Single-line string", 359 | "scope": "string.asm", 360 | "settings": { 361 | "fontStyle": "italic", 362 | "foreground": "#dcdccc" 363 | } 364 | } 365 | 366 | ], 367 | "uuid": "D8D5E82E-3D5B-46B5-B38E-8C841C21347F" 368 | } -------------------------------------------------------------------------------- /z80asm/z80asm (breeze).tmTheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | z80asm (Breeze) 7 | settings 8 | 9 | 10 | settings 11 | 12 | activeGuide 13 | #9D550FB0 14 | background 15 | #272822 16 | bracketContentsForeground 17 | #F8F8F2A5 18 | bracketContentsOptions 19 | underline 20 | bracketsForeground 21 | #F8F8F2A5 22 | bracketsOptions 23 | underline 24 | caret 25 | #F8F8F0 26 | findHighlight 27 | #FFE792 28 | findHighlightForeground 29 | #000000 30 | foreground 31 | #F8F8F2 32 | invisibles 33 | #3B3A32 34 | lineHighlight 35 | #3E3D32 36 | selection 37 | #49483E 38 | selectionBorder 39 | #222218 40 | tagsOptions 41 | stippled_underline 42 | 43 | 44 | 45 | name 46 | Comment 47 | scope 48 | comment 49 | settings 50 | 51 | foreground 52 | #75715E 53 | 54 | 55 | 56 | name 57 | String 58 | scope 59 | string 60 | settings 61 | 62 | foreground 63 | #E6DB74 64 | 65 | 66 | 67 | name 68 | Number 69 | scope 70 | constant.numeric 71 | settings 72 | 73 | foreground 74 | #AE81FF 75 | 76 | 77 | 78 | name 79 | Built-in constant 80 | scope 81 | constant.language 82 | settings 83 | 84 | foreground 85 | #AE81FF 86 | 87 | 88 | 89 | name 90 | User-defined constant 91 | scope 92 | constant.character, constant.other 93 | settings 94 | 95 | foreground 96 | #AE81FF 97 | 98 | 99 | 100 | name 101 | Variable 102 | scope 103 | variable 104 | settings 105 | 106 | fontStyle 107 | 108 | 109 | 110 | 111 | name 112 | Keyword 113 | scope 114 | keyword 115 | settings 116 | 117 | foreground 118 | #F92672 119 | 120 | 121 | 122 | name 123 | Storage 124 | scope 125 | storage 126 | settings 127 | 128 | fontStyle 129 | 130 | foreground 131 | #F92672 132 | 133 | 134 | 135 | name 136 | Storage type 137 | scope 138 | storage.type 139 | settings 140 | 141 | fontStyle 142 | italic 143 | foreground 144 | #66D9EF 145 | 146 | 147 | 148 | name 149 | Class name 150 | scope 151 | entity.name.class 152 | settings 153 | 154 | fontStyle 155 | underline 156 | foreground 157 | #A6E22E 158 | 159 | 160 | 161 | name 162 | Inherited class 163 | scope 164 | entity.other.inherited-class 165 | settings 166 | 167 | fontStyle 168 | italic underline 169 | foreground 170 | #A6E22E 171 | 172 | 173 | 174 | name 175 | Function name 176 | scope 177 | entity.name.function 178 | settings 179 | 180 | fontStyle 181 | 182 | foreground 183 | #A6E22E 184 | 185 | 186 | 187 | name 188 | Function argument 189 | scope 190 | variable.parameter 191 | settings 192 | 193 | fontStyle 194 | italic 195 | foreground 196 | #FD971F 197 | 198 | 199 | 200 | name 201 | Tag name 202 | scope 203 | entity.name.tag 204 | settings 205 | 206 | fontStyle 207 | 208 | foreground 209 | #F92672 210 | 211 | 212 | 213 | name 214 | Tag attribute 215 | scope 216 | entity.other.attribute-name 217 | settings 218 | 219 | fontStyle 220 | 221 | foreground 222 | #A6E22E 223 | 224 | 225 | 226 | name 227 | Library function 228 | scope 229 | support.function 230 | settings 231 | 232 | fontStyle 233 | 234 | foreground 235 | #66D9EF 236 | 237 | 238 | 239 | name 240 | Library constant 241 | scope 242 | support.constant 243 | settings 244 | 245 | fontStyle 246 | 247 | foreground 248 | #66D9EF 249 | 250 | 251 | 252 | name 253 | Library class/type 254 | scope 255 | support.type, support.class 256 | settings 257 | 258 | fontStyle 259 | italic 260 | foreground 261 | #66D9EF 262 | 263 | 264 | 265 | name 266 | Library variable 267 | scope 268 | support.other.variable 269 | settings 270 | 271 | fontStyle 272 | 273 | 274 | 275 | 276 | name 277 | Invalid 278 | scope 279 | invalid 280 | settings 281 | 282 | background 283 | #F92672 284 | fontStyle 285 | 286 | foreground 287 | #F8F8F0 288 | 289 | 290 | 291 | name 292 | Invalid deprecated 293 | scope 294 | invalid.deprecated 295 | settings 296 | 297 | background 298 | #AE81FF 299 | foreground 300 | #F8F8F0 301 | 302 | 303 | 304 | name 305 | JSON String 306 | scope 307 | meta.structure.dictionary.json string.quoted.double.json 308 | settings 309 | 310 | foreground 311 | #CFCFC2 312 | 313 | 314 | 315 | name 316 | diff.header 317 | scope 318 | meta.diff, meta.diff.header 319 | settings 320 | 321 | foreground 322 | #75715E 323 | 324 | 325 | 326 | name 327 | diff.deleted 328 | scope 329 | markup.deleted 330 | settings 331 | 332 | foreground 333 | #F92672 334 | 335 | 336 | 337 | name 338 | diff.inserted 339 | scope 340 | markup.inserted 341 | settings 342 | 343 | foreground 344 | #A6E22E 345 | 346 | 347 | 348 | name 349 | diff.changed 350 | scope 351 | markup.changed 352 | settings 353 | 354 | foreground 355 | #E6DB74 356 | 357 | 358 | 359 | scope 360 | constant.numeric.line-number.find-in-files - match 361 | settings 362 | 363 | foreground 364 | #AE81FFA0 365 | 366 | 367 | 368 | scope 369 | entity.name.filename.find-in-files 370 | settings 371 | 372 | foreground 373 | #E6DB74 374 | 375 | 376 | 377 | Name 378 | Bad line 379 | scope 380 | invalid.illegal.asm 381 | settings 382 | 383 | background 384 | #FF0000 385 | fontStyle 386 | 387 | foreground 388 | #FFFFFF 389 | 390 | 391 | 392 | Name 393 | Label 394 | scope 395 | entity.name.label.asm 396 | settings 397 | 398 | fontStyle 399 | 400 | foreground 401 | #dab9ff 402 | 403 | 404 | 405 | Name 406 | Label definition 407 | scope 408 | entity.name.label.def.asm 409 | settings 410 | 411 | fontStyle 412 | 413 | foreground 414 | #dab9ff 415 | 416 | 417 | 418 | Name 419 | Flags 420 | scope 421 | constant.other.flag.asm 422 | settings 423 | 424 | fontStyle 425 | 426 | foreground 427 | #5c7fc1 428 | 429 | 430 | 431 | Name 432 | Z80 commands 433 | scope 434 | keyword.other.command.asm 435 | settings 436 | 437 | fontStyle 438 | 439 | foreground 440 | #c15c95 441 | 442 | 443 | 444 | Name 445 | Z80 commands / known macros (down/up) 446 | scope 447 | keyword.other.command.extended.asm 448 | settings 449 | 450 | fontStyle 451 | 452 | foreground 453 | #FFFFFF 454 | 455 | 456 | 457 | Name 458 | Asm data definition directives (db) 459 | scope 460 | storage.type.datadef.asm 461 | settings 462 | 463 | fontStyle 464 | 465 | foreground 466 | #506070 467 | 468 | 469 | 470 | Name 471 | Asm general directives (org/dup) 472 | scope 473 | keyword.control.asm 474 | settings 475 | 476 | fontStyle 477 | 478 | foreground 479 | #8ca4dc 480 | 481 | 482 | 483 | Name 484 | Asm functions (high/low/shr) 485 | scope 486 | support.function.asm 487 | settings 488 | 489 | fontStyle 490 | 491 | foreground 492 | #FFAA00 493 | 494 | 495 | 496 | Name 497 | SjASM directives/commands (device/display/savesna) 498 | scope 499 | keyword.directive.extended.asm 500 | settings 501 | 502 | fontStyle 503 | 504 | foreground 505 | #dc8cc3 506 | 507 | 508 | 509 | Name 510 | register set 511 | scope 512 | variable.parameter.register.asm 513 | settings 514 | 515 | fontStyle 516 | 517 | foreground 518 | #dfaf8f 519 | 520 | 521 | 522 | Name 523 | HEX/DEC/BIN number 524 | scope 525 | constant.numeric.asm 526 | settings 527 | 528 | fontStyle 529 | 530 | foreground 531 | #60b48a 532 | 533 | 534 | 535 | Name 536 | Comment line 537 | scope 538 | comment.line.asm 539 | settings 540 | 541 | fontStyle 542 | italic 543 | foreground 544 | #75715E 545 | 546 | 547 | 548 | Name 549 | C-style comment block 550 | scope 551 | comment.block.asm 552 | settings 553 | 554 | fontStyle 555 | italic 556 | foreground 557 | #75715E 558 | 559 | 560 | 561 | Name 562 | Single-line string 563 | scope 564 | string.asm 565 | settings 566 | 567 | fontStyle 568 | italic 569 | foreground 570 | #dcdccc 571 | 572 | 573 | 574 | uuid 575 | D8D5E82E-3D5B-46B5-B38E-8C841C21347F 576 | 577 | 578 | -------------------------------------------------------------------------------- /z80asm/z80asm.JSON-tmLanguage: -------------------------------------------------------------------------------- 1 | { "name": "Z80 Asm", 2 | "scopeName": "source.z80asm", 3 | "fileTypes": ["a80","asm"], 4 | "patterns": [ 5 | 6 | { 7 | "match": "^[0-9]+[^0-9\\s:].*$", 8 | "name": "invalid.illegal.asm", 9 | "comment": "Bad temporary label (not only numeric)" 10 | }, 11 | { 12 | "match": "^[^a-zA-Z0-9_.;@/ \\t\\r\\n].*$", 13 | "name": "invalid.illegal.asm", 14 | "comment": "Bad line (not begin from label, space, dot or comment)" 15 | }, 16 | 17 | { 18 | "match": "^\\.\\d+(?=\\s)", 19 | "name": "keyword.control.asm", 20 | "comment": "DUP (storm syntax)" 21 | }, 22 | { 23 | "match": "^(([a-zA-Z_.@][a-zA-Z_.0-9]*)|[0-9]+)(?=\\s|:|=|$)", 24 | "name": "entity.name.label.def.asm", 25 | "comment": "Label" 26 | }, 27 | 28 | 29 | { 30 | "match": "(?i)(?<=\\s|:)(call|jp|jr)\\s+(?:(z|nz|c|nc|po|pe|p|m)\\s*,\\s*)?((?:[a-zA-Z_.@$][a-zA-Z_.0-9]*)|[0-9]+(?:b|f))", 31 | "captures": { 32 | "1": { "name": "keyword.other.command.asm" }, 33 | "2": { "name": "constant.other.flag.asm" }, 34 | "3": { "name": "entity.name.label.asm" } 35 | }, 36 | "comment": "Special case: conditional call/jmp" 37 | }, 38 | { 39 | "match": "(?i)(?<=\\s|:)(djnz)\\s+((?:[a-zA-Z_.@$][a-zA-Z_.0-9]*)|[0-9]+(?:b|f))", 40 | "captures": { 41 | "1": { "name": "keyword.other.command.asm" }, 42 | "2": { "name": "entity.name.label.asm" } 43 | }, 44 | "comment": "Special case: djnz" 45 | }, 46 | { 47 | "match": "(?i)(?<=\\s|:)(ret)(?:\\s+(z|nz|c|nc|po|pe|p|m))?(?=\\s|:|;|$)", 48 | "captures": { 49 | "1": { "name": "keyword.other.command.asm" }, 50 | "2": { "name": "constant.other.flag.asm" } 51 | }, 52 | "comment": "Special case: conditional ret" 53 | }, 54 | 55 | 56 | { 57 | "match": "(?i)(?<=\\s|:)(adc|add|and|bit|call|ccf|cp|cpl|cpd|cpdr|cpi|cpir|daa|dec|di|djnz|ei|ex|exx|halt|im|in|inc|ind|indr|inf|ini|inir|jp|jr|ld|ldd|lddr|ldi|ldir|neg|nop|exx|or|otdr|otir|out|outd|outi|pop|push|res|ret|reti|retn|rl|rla|rlc|rlca|rld|rr|rra|rrc|rrca|rrd|rst|sbc|scf|set|sla|sli|sll|sra|srl|sub|xor)(?=\\s|:|$)", 58 | "name": "keyword.other.command.asm", 59 | "comment": "Z80 commands" 60 | }, 61 | { 62 | "match": "(?i)(?<=\\s|:)(exa|down|up)(?=\\s|:|$)", 63 | "name": "keyword.other.command.extended.asm", 64 | "comment": "Z80 commands / known macros" 65 | }, 66 | { 67 | "match": "(?i)(?<=\\s|:)(db|dw|ds|dm|dd|dz|defb|defw|defs|defm|defd|byte|abyte(c|z)?|word|d24|dword|block|defarray)(?=\\s|:|$)", 68 | "name": "storage.type.datadef.asm", 69 | "comment": "Asm data definition directives" 70 | }, 71 | { 72 | "match": "(?i)(?<=\\s|:)(include|incbin|incl|incb|binary|insert|inchob|inctrd|org|align|page|slot|equ|disp|phase|unphase|dephase|ent|textarea|macro|endm|struct|ends|dup|edup|rept|define|if|ifn|endif|ifdef|ifndef|end)(?=\\s|:|$)", 73 | "name": "keyword.control.asm", 74 | "comment": "Asm general directives" 75 | }, 76 | { 77 | "match": "(?i)\\b(high|low|not|mod|shl|shr)\\b", 78 | "name": "support.function.asm", 79 | "comment": "Asm functions" 80 | }, 81 | { 82 | "match": "(?i)(?<=[a-z0-9_])(\\[|\\])", 83 | "name": "support.function.asm", 84 | "comment": "Asm functions" 85 | }, 86 | 87 | { 88 | "match": "(?i)(?<=\\s|:)(device|display|savesna|savebin|savehob|savetrd|module|endmodule|lua|endlua|includelua|assert|emptytrd|encoding|export|labelslist|output|shellexec|size)(?=\\s|:|$)", 89 | "name": "keyword.directive.extended.asm", 90 | "comment": "SjASM directives/commands" 91 | }, 92 | 93 | 94 | { 95 | "match": "(?i)\\b(a|b|c|d|e|h|l|i|r|xl|lx|xh|hx|ixl|ixh|yl|ly|yh|hy|iyl|iyh)\\b", 96 | "name": "variable.parameter.register.asm", 97 | "comment": "8 bit register set" 98 | }, 99 | { 100 | "match": "(?i)(\\baf')|(\\b(af|bc|de|hl|sp|ix|iy)\\b)", 101 | "name": "variable.parameter.register.asm", 102 | "comment": "16 bit register set" 103 | }, 104 | { 105 | "match": "(?i)(%[01]+\\b)|(\\b[01]+b\\b)|((#|\\$)[0-9a-f]+\\b)|(\\b([0-9]+|0x[0-9a-f]+|[0-9][0-9a-f]*h)\\b)", 106 | "name": "constant.numeric.asm", 107 | "comment": "HEX/DEC/BIN number" 108 | }, 109 | 110 | { 111 | "match": "(\\b|@|\\.)[a-zA-Z_][a-zA-Z_.0-9]*\\b", 112 | "name": "entity.name.label.asm", 113 | "comment": "Label in commands (experimental, marks all unknown words as labels)" 114 | }, 115 | 116 | 117 | { 118 | "match": "(\/\/|;).*", 119 | "name": "comment.line.asm", 120 | "comment": "Comment line" 121 | }, 122 | { 123 | "begin": "(\/\\*)", 124 | "end": "(\\*\/)", 125 | "name": "comment.block.asm", 126 | "comment": "C-style comment block" 127 | }, 128 | 129 | { 130 | "match": "'[^']*'", 131 | "name": "string.asm", 132 | "comment": "Single-line string" 133 | }, 134 | { 135 | "match": "\"[^\"]*\"", 136 | "name": "string.asm", 137 | "comment": "Single-line string" 138 | } 139 | 140 | ], 141 | "uuid": "c15e385b-46ca-4911-b87f-4212fb149803" 142 | } 143 | -------------------------------------------------------------------------------- /z80asm/z80asm.JSON-tmPreferences: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Comments, indent", 3 | "scope": "source.z80asm", 4 | "settings": { 5 | "increaseIndentPattern": "(?x)^[a-zA-Z_.@][a-zA-Z_.0-9]*(?=\\s|:|=|$)", 6 | 7 | "shellVariables": [ 8 | { 9 | "name": "TM_COMMENT_START", 10 | "value": "; " 11 | }, 12 | { 13 | "name": "TM_COMMENT_START_2", 14 | "value": "//" 15 | }, 16 | { 17 | "name": "TM_COMMENT_START_3", 18 | "value": "/*" 19 | }, 20 | { 21 | "name": "TM_COMMENT_END_3", 22 | "value": "*/" 23 | }, 24 | { 25 | "name": "TM_COMMENT_DISABLE_INDENT", 26 | "value": "yes" 27 | } 28 | ] 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /z80asm/z80asm.JSON-tmTheme: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monokai-z80asm", 3 | "settings": [ 4 | { 5 | "settings": { 6 | "activeGuide": "#9D550FB0", 7 | "background": "#272822", 8 | "bracketContentsForeground": "#F8F8F2A5", 9 | "bracketContentsOptions": "underline", 10 | "bracketsForeground": "#F8F8F2A5", 11 | "bracketsOptions": "underline", 12 | "caret": "#F8F8F0", 13 | "findHighlight": "#FFE792", 14 | "findHighlightForeground": "#000000", 15 | "foreground": "#F8F8F2", 16 | "invisibles": "#3B3A32", 17 | "lineHighlight": "#3E3D32", 18 | "selection": "#49483E", 19 | "selectionBorder": "#222218", 20 | "tagsOptions": "stippled_underline" 21 | } 22 | }, 23 | { 24 | "name": "Comment", 25 | "scope": "comment", 26 | "settings": { 27 | "foreground": "#75715E" 28 | } 29 | }, 30 | { 31 | "name": "String", 32 | "scope": "string", 33 | "settings": { 34 | "foreground": "#E6DB74" 35 | } 36 | }, 37 | { 38 | "name": "Number", 39 | "scope": "constant.numeric", 40 | "settings": { 41 | "foreground": "#AE81FF" 42 | } 43 | }, 44 | { 45 | "name": "Built-in constant", 46 | "scope": "constant.language", 47 | "settings": { 48 | "foreground": "#AE81FF" 49 | } 50 | }, 51 | { 52 | "name": "User-defined constant", 53 | "scope": "constant.character, constant.other", 54 | "settings": { 55 | "foreground": "#AE81FF" 56 | } 57 | }, 58 | { 59 | "name": "Variable", 60 | "scope": "variable", 61 | "settings": { 62 | "fontStyle": "" 63 | } 64 | }, 65 | { 66 | "name": "Keyword", 67 | "scope": "keyword", 68 | "settings": { 69 | "foreground": "#F92672" 70 | } 71 | }, 72 | { 73 | "name": "Storage", 74 | "scope": "storage", 75 | "settings": { 76 | "fontStyle": "", 77 | "foreground": "#F92672" 78 | } 79 | }, 80 | { 81 | "name": "Storage type", 82 | "scope": "storage.type", 83 | "settings": { 84 | "fontStyle": "italic", 85 | "foreground": "#66D9EF" 86 | } 87 | }, 88 | { 89 | "name": "Class name", 90 | "scope": "entity.name.class", 91 | "settings": { 92 | "fontStyle": "underline", 93 | "foreground": "#A6E22E" 94 | } 95 | }, 96 | { 97 | "name": "Inherited class", 98 | "scope": "entity.other.inherited-class", 99 | "settings": { 100 | "fontStyle": "italic underline", 101 | "foreground": "#A6E22E" 102 | } 103 | }, 104 | { 105 | "name": "Function name", 106 | "scope": "entity.name.function", 107 | "settings": { 108 | "fontStyle": "", 109 | "foreground": "#A6E22E" 110 | } 111 | }, 112 | { 113 | "name": "Function argument", 114 | "scope": "variable.parameter", 115 | "settings": { 116 | "fontStyle": "italic", 117 | "foreground": "#FD971F" 118 | } 119 | }, 120 | { 121 | "name": "Tag name", 122 | "scope": "entity.name.tag", 123 | "settings": { 124 | "fontStyle": "", 125 | "foreground": "#F92672" 126 | } 127 | }, 128 | { 129 | "name": "Tag attribute", 130 | "scope": "entity.other.attribute-name", 131 | "settings": { 132 | "fontStyle": "", 133 | "foreground": "#A6E22E" 134 | } 135 | }, 136 | { 137 | "name": "Library function", 138 | "scope": "support.function", 139 | "settings": { 140 | "fontStyle": "", 141 | "foreground": "#66D9EF" 142 | } 143 | }, 144 | { 145 | "name": "Library constant", 146 | "scope": "support.constant", 147 | "settings": { 148 | "fontStyle": "", 149 | "foreground": "#66D9EF" 150 | } 151 | }, 152 | { 153 | "name": "Library class/type", 154 | "scope": "support.type, support.class", 155 | "settings": { 156 | "fontStyle": "italic", 157 | "foreground": "#66D9EF" 158 | } 159 | }, 160 | { 161 | "name": "Library variable", 162 | "scope": "support.other.variable", 163 | "settings": { 164 | "fontStyle": "" 165 | } 166 | }, 167 | { 168 | "name": "Invalid", 169 | "scope": "invalid", 170 | "settings": { 171 | "background": "#F92672", 172 | "fontStyle": "", 173 | "foreground": "#F8F8F0" 174 | } 175 | }, 176 | { 177 | "name": "Invalid deprecated", 178 | "scope": "invalid.deprecated", 179 | "settings": { 180 | "background": "#AE81FF", 181 | "foreground": "#F8F8F0" 182 | } 183 | }, 184 | { 185 | "name": "JSON String", 186 | "scope": "meta.structure.dictionary.json string.quoted.double.json", 187 | "settings": { 188 | "foreground": "#CFCFC2" 189 | } 190 | }, 191 | { 192 | "name": "diff.header", 193 | "scope": "meta.diff, meta.diff.header", 194 | "settings": { 195 | "foreground": "#75715E" 196 | } 197 | }, 198 | { 199 | "name": "diff.deleted", 200 | "scope": "markup.deleted", 201 | "settings": { 202 | "foreground": "#F92672" 203 | } 204 | }, 205 | { 206 | "name": "diff.inserted", 207 | "scope": "markup.inserted", 208 | "settings": { 209 | "foreground": "#A6E22E" 210 | } 211 | }, 212 | { 213 | "name": "diff.changed", 214 | "scope": "markup.changed", 215 | "settings": { 216 | "foreground": "#E6DB74" 217 | } 218 | }, 219 | { 220 | "scope": "constant.numeric.line-number.find-in-files - match", 221 | "settings": { 222 | "foreground": "#AE81FFA0" 223 | } 224 | }, 225 | { 226 | "scope": "entity.name.filename.find-in-files", 227 | "settings": { 228 | "foreground": "#E6DB74" 229 | } 230 | }, 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | { 239 | "Name": "Bad line", 240 | "scope": "invalid.illegal.asm", 241 | "settings": { 242 | "fontStyle": "", 243 | "background": "#FF0000", 244 | "foreground": "#FFFFFF" 245 | } 246 | }, 247 | { 248 | "Name": "Label", 249 | "scope": "entity.name.label.asm", 250 | "settings": { 251 | "fontStyle": "", 252 | "foreground": "#FF0088" 253 | } 254 | }, 255 | { 256 | "Name": "Label definition", 257 | "scope": "entity.name.label.def.asm", 258 | "settings": { 259 | "fontStyle": "", 260 | "foreground": "#FF0088" 261 | } 262 | }, 263 | { 264 | "Name": "Flags", 265 | "scope": "constant.other.flag.asm", 266 | "settings": { 267 | "fontStyle": "bold", 268 | "foreground": "#FFAA00" 269 | } 270 | }, 271 | 272 | { 273 | "Name": "Z80 commands", 274 | "scope": "keyword.other.command.asm", 275 | "settings": { 276 | "fontStyle": "bold", 277 | "foreground": "#FFFFFF" 278 | } 279 | }, 280 | { 281 | "Name": "Z80 commands / known macros (down/up)", 282 | "scope": "keyword.other.command.extended.asm", 283 | "settings": { 284 | "fontStyle": "", 285 | "foreground": "#FFFFFF" 286 | } 287 | }, 288 | 289 | { 290 | "Name": "Asm data definition directives (db)", 291 | "scope": "storage.type.datadef.asm", 292 | "settings": { 293 | "fontStyle": "", 294 | "foreground": "#00FFAA" 295 | } 296 | }, 297 | { 298 | "Name": "Asm general directives (org/dup)", 299 | "scope": "keyword.control.asm", 300 | "settings": { 301 | "fontStyle": "", 302 | "foreground": "#FFAA00" 303 | } 304 | }, 305 | 306 | { 307 | "Name": "Asm functions (high/low/shr)", 308 | "scope": "support.function.asm", 309 | "settings": { 310 | "fontStyle": "", 311 | "foreground": "#FFAA00" 312 | } 313 | }, 314 | 315 | { 316 | "Name": "SjASM directives/commands (device/display/savesna)", 317 | "scope": "keyword.directive.extended.asm", 318 | "settings": { 319 | "fontStyle": "", 320 | "foreground": "#0099FF" 321 | } 322 | }, 323 | 324 | { 325 | "Name": "register set", 326 | "scope": "variable.parameter.register.asm", 327 | "settings": { 328 | "fontStyle": "bold", 329 | "foreground": "#FFFF00" 330 | } 331 | }, 332 | { 333 | "Name": "HEX/DEC/BIN number", 334 | "scope": "constant.numeric.asm", 335 | "settings": { 336 | "fontStyle": "", 337 | "foreground": "#00FF00" 338 | } 339 | }, 340 | 341 | { 342 | "Name": "Comment line", 343 | "scope": "comment.line.asm", 344 | "settings": { 345 | "fontStyle": "italic", 346 | "foreground": "#75715E" 347 | } 348 | }, 349 | { 350 | "Name": "C-style comment block", 351 | "scope": "comment.block.asm", 352 | "settings": { 353 | "fontStyle": "italic", 354 | "foreground": "#75715E" 355 | } 356 | }, 357 | { 358 | "Name": "Single-line string", 359 | "scope": "string.asm", 360 | "settings": { 361 | "fontStyle": "", 362 | "foreground": "#E6DB74" 363 | } 364 | } 365 | 366 | ], 367 | "uuid": "D8D5E82E-3D5B-46B5-B38E-8C841C21347D" 368 | } -------------------------------------------------------------------------------- /z80asm/z80asm.about: -------------------------------------------------------------------------------- 1 | .:*"*:,_,:*"*:,_,:*"*:,_,:*"*:,_,:*"*:,_,:*"*:. 2 | 3 | Z80 Asm plugin for Sublime Text 2 4 | --------------------------------- 5 | (c)2013, psb^hlw. 6 | 7 | 8 | * https://github.com/psbhlw/sublime-text-z80asm 9 | -------------------------------------------------------------------------------- /z80asm/z80asm.py: -------------------------------------------------------------------------------- 1 | import sublime, sublime_plugin 2 | import os 3 | 4 | # Consts 5 | THIS_PLUGIN_NAME = 'z80asm' 6 | THIS_PLUGIN_DEBUG = True 7 | 8 | # Initialize plugin 9 | def A80Init(): 10 | global A80_DIR, A80_SYNTAX_FILE, A80_SNIP_DIR, A80_HELP_DIR 11 | A80_DIR=os.path.join(sublime.packages_path(), THIS_PLUGIN_NAME) 12 | A80_SYNTAX_FILE='Packages'+'/'+THIS_PLUGIN_NAME+'/'+THIS_PLUGIN_NAME+'.tmLanguage' 13 | A80_SNIP_DIR='Packages'+'/'+THIS_PLUGIN_NAME+'/'+'snippets' 14 | A80_HELP_DIR=A80_DIR+'/'+'helps' 15 | 16 | 17 | 18 | # Debug print 19 | def dbgprint(s): 20 | if THIS_PLUGIN_DEBUG: 21 | print ("Z80 Asm:",s) 22 | sublime.status_message(s) 23 | 24 | 25 | 26 | # Command handler class 27 | class A80DoCmdCommand(sublime_plugin.WindowCommand): 28 | # Command handler 29 | def run(self, cmd): 30 | 31 | if cmd=="NewCode": 32 | v=self.window.new_file() 33 | v.set_syntax_file(A80_SYNTAX_FILE) 34 | v.run_command("insert_snippet", {"name": A80_SNIP_DIR+'/init.sublime-snippet'}) 35 | dbgprint("New Code created") 36 | 37 | elif cmd=="NewBasic": 38 | v=self.window.new_file() 39 | v.set_syntax_file(A80_SYNTAX_FILE) 40 | v.run_command("insert_snippet", {"name": A80_SNIP_DIR+'/basic.sublime-snippet'}) 41 | dbgprint("New Basic loader created") 42 | 43 | elif cmd=="Build": 44 | self.window.run_command("build") 45 | dbgprint("Build started") 46 | 47 | elif cmd=="Run": 48 | self.window.run_command("build", {"variant": "Run"}) 49 | dbgprint("Emulator started") 50 | 51 | elif cmd=="Build_Run": 52 | self.window.run_command("build", {"variant": "Build and Run"}) 53 | dbgprint("Build and Run script started") 54 | 55 | elif cmd=="AFormat": 56 | dbgprint("Not implemented yet") 57 | 58 | elif cmd=="JLine": 59 | dbgprint("Not implemented yet") 60 | 61 | elif cmd=="Sline": 62 | dbgprint("Not implemented yet") 63 | 64 | elif cmd=="SynStorm": 65 | dbgprint("Not implemented yet") 66 | 67 | elif cmd=="SynAlasm": 68 | dbgprint("Not implemented yet") 69 | 70 | 71 | # Disable not implemented items 72 | def is_enabled(self, cmd): 73 | if cmd not in ["AFormat", "JLine", "Sline", "SynStorm", "SynAlasm"]: 74 | return True 75 | return False 76 | 77 | 78 | 79 | # Helps 80 | class A80HelpCommand(sublime_plugin.WindowCommand): 81 | def run(self, indx): 82 | n=self.help_list() 83 | self.window.run_command("open_file", {"file": "${packages}/z80asm/helps/"+n[indx]}) 84 | 85 | # Scan helps folder for files (10 max) 86 | def help_list(self): 87 | lst=os.listdir(A80_HELP_DIR) 88 | lst.sort() 89 | return lst[:10] 90 | 91 | # Show help 92 | def is_visible(self, indx): 93 | n=self.help_list() 94 | if indx=3000: 152 | def plugin_loaded(): 153 | A80Init() 154 | else: 155 | A80Init() 156 | 157 | dbgprint("Z80 Asm plugin started!") 158 | -------------------------------------------------------------------------------- /z80asm/z80asm.quickhelp: -------------------------------------------------------------------------------- 1 | Opcode Mnemonic T M M1 Notes 2 | ------------------------------------------------------------------------- 3 | 00 NOP 4t 1 1 4 | 01 n n LD BC,nn 10t 3 1 5 | 02 LD (BC),A 7t 2 1 6 | 03 INC BC 6t 1 1 7 | 04 INC B 4t 1 1 8 | 05 DEC B 4t 1 1 9 | 06 n LD B,n 7t 2 1 10 | 07 RLCA 4t 1 1 11 | 08 EX AF,AF' 4t 1 1 12 | 09 ADD HL,BC 11t 3 1 13 | 0A LD A,(BC) 7t 2 1 14 | 0B DEC BC 6t 1 1 15 | 0C INC C 4t 1 1 16 | 0D DEC C 4t 1 1 17 | 0E n LD C,n 7t 2 1 18 | 0F RRCA 4t 1 1 19 | 10 e DJNZ (PC+e) 13t/8t 2/3 1/1 (met/not met) 20 | 11 n n LD DE,nn 10t 3 1 21 | 12 LD (DE),A 7t 2 1 22 | 13 INC DE 6t 1 1 23 | 14 INC D 4t 1 1 24 | 15 DEC D 4t 1 1 25 | 16 n LD D,n 7t 2 1 26 | 17 RLA 4t 1 1 27 | 18 e JR (PC+e) 12t 3 1 28 | 19 ADD HL,DE 11t 3 1 29 | 1A LD A,(DE) 7t 2 1 30 | 1B DEC DE 6t 1 1 31 | 1C INC E 4t 1 1 32 | 1D DEC E 4t 1 1 33 | 1E n LD E,n 7t 2 1 34 | 1F RRA 4t 1 1 35 | 20 e JR NZ,(PC+e) 12t/7t 3/2 1/1 (met/not met) 36 | 21 n n LD HL,nn 10t 3 1 37 | 22 n n LD (nn),HL 16t 5 3 38 | 23 INC HL 6t 1 1 39 | 24 INC H 4t 1 1 40 | 25 DEC H 4t 1 1 41 | 26 n LD H,n 7t 2 1 42 | 27 DAA 4t 1 1 43 | 28 e JR Z,(PC+e) 12t/7t 3/2 1/1 (met/not met) 44 | 29 ADD HL,HL 11t 3 1 45 | 2A n n LD HL,(nn) 16t 5 1 46 | 2B DEC HL 6t 1 1 47 | 2C INC L 4t 1 1 48 | 2D DEC L 4t 1 1 49 | 2E n LD L,n 7t 2 1 50 | 2F CPL 4t 1 1 51 | 30 e JR NC,(PC+e) 12t/7t 3/2 1/1 (met/not met) 52 | 31 n n LD SP,nn 10t 3 1 53 | 32 n n LD (nn),A 13t 4 1 54 | 33 INC SP 6t 1 1 55 | 34 INC (HL) 11t 3 1 56 | 35 DEC (HL) 11t 3 1 57 | 36 n LD (HL),n 10t 3 1 58 | 37 SCF 4t 1 1 59 | 38 e JR C,(PC+e) 12t/7t 3/2 1/1 (met/not met) 60 | 39 ADD HL,SP 11t 3 1 61 | 3A n n LD A,(nn) 13t 4 1 62 | 3B DEC SP 6t 1 1 63 | 3C INC A 4t 1 1 64 | 3D DEC A 4t 1 1 65 | 3E n LD A,n 7t 2 1 66 | 3F CCF 4t 1 1 67 | 40 LD B,B 4t 1 1 68 | 41 LD B,C 4t 1 1 69 | 42 LD B,D 4t 1 1 70 | 43 LD B,E 4t 1 1 71 | 44 LD B,H 4t 1 1 72 | 45 LD B,L 4t 1 1 73 | 46 LD B,(HL) 7t 2 1 74 | 47 LD B,A 4t 1 1 75 | 48 LD C,B 4t 1 1 76 | 49 LD C,C 4t 1 1 77 | 4A LD C,D 4t 1 1 78 | 4B LD C,E 4t 1 1 79 | 4C LD C,H 4t 1 1 80 | 4D LD C,L 4t 1 1 81 | 4E LD C,(HL) 7t 2 1 82 | 4F LD C,A 4t 1 1 83 | 50 LD D,B 4t 1 1 84 | 51 LD D,C 4t 1 1 85 | 52 LD D,D 4t 1 1 86 | 53 LD D,E 4t 1 1 87 | 54 LD D,H 4t 1 1 88 | 55 LD D,L 4t 1 1 89 | 56 LD D,(HL) 7t 2 1 90 | 57 LD D,A 4t 1 1 91 | 58 LD E,B 4t 1 1 92 | 59 LD E,C 4t 1 1 93 | 5A LD E,D 4t 1 1 94 | 5B LD E,E 4t 1 1 95 | 5C LD E,H 4t 1 1 96 | 5D LD E,L 4t 1 1 97 | 5E LD E,(HL) 7t 2 1 98 | 5F LD E,A 4t 1 1 99 | 60 LD H,B 4t 1 1 100 | 61 LD H,C 4t 1 1 101 | 62 LD H,D 4t 1 1 102 | 63 LD H,E 4t 1 1 103 | 64 LD H,H 4t 1 1 104 | 65 LD H,L 4t 1 1 105 | 66 LD H,(HL) 7t 2 1 106 | 67 LD H,A 4t 1 1 107 | 68 LD L,B 4t 1 1 108 | 69 LD L,C 4t 1 1 109 | 6A LD L,D 4t 1 1 110 | 6B LD L,E 4t 1 1 111 | 6C LD L,H 4t 1 1 112 | 6D LD L,L 4t 1 1 113 | 6E LD L,(HL) 7t 2 1 114 | 6F LD L,A 4t 1 1 115 | 70 LD (HL),B 7t 2 1 116 | 71 LD (HL),C 7t 2 1 117 | 72 LD (HL),D 7t 2 1 118 | 73 LD (HL),E 7t 2 1 119 | 74 LD (HL),H 7t 2 1 120 | 75 LD (HL),L 7t 2 1 121 | 76 HALT 4t 1 1 (repeated till next int) 122 | 77 LD (HL),A 7t 2 1 123 | 78 LD A,B 4t 1 1 124 | 79 LD A,C 4t 1 1 125 | 7A LD A,D 4t 1 1 126 | 7B LD A,E 4t 1 1 127 | 7C LD A,H 4t 1 1 128 | 7D LD A,L 4t 1 1 129 | 7E LD A,(HL) 7t 2 1 130 | 7F LD A,A 4t 1 1 131 | 80 ADD A,B 4t 1 1 132 | 81 ADD A,C 4t 1 1 133 | 82 ADD A,D 4t 1 1 134 | 83 ADD A,E 4t 1 1 135 | 84 ADD A,H 4t 1 1 136 | 85 ADD A,L 4t 1 1 137 | 86 ADD A,(HL) 7t 2 1 138 | 87 ADD A,A 4t 1 1 139 | 88 ADC A,B 4t 1 1 140 | 89 ADC A,C 4t 1 1 141 | 8A ADC A,D 4t 1 1 142 | 8B ADC A,E 4t 1 1 143 | 8C ADC A,H 4t 1 1 144 | 8D ADC A,L 4t 1 1 145 | 8E ADC A,(HL) 7t 2 1 146 | 8F ADC A,A 4t 1 1 147 | 90 SUB B 4t 1 1 148 | 91 SUB C 4t 1 1 149 | 92 SUB D 4t 1 1 150 | 93 SUB E 4t 1 1 151 | 94 SUB H 4t 1 1 152 | 95 SUB L 4t 1 1 153 | 96 SUB (HL) 7t 2 1 154 | 97 SUB A 4t 1 1 155 | 98 SBC A,B 4t 1 1 156 | 99 SBC A,C 4t 1 1 157 | 9A SBC A,D 4t 1 1 158 | 9B SBC A,E 4t 1 1 159 | 9C SBC A,H 4t 1 1 160 | 9D SBC A,L 4t 1 1 161 | 9E SBC A,(HL) 7t 2 1 162 | 9F SBC A,A 4t 1 1 163 | A0 AND B 4t 1 1 164 | A1 AND C 4t 1 1 165 | A2 AND D 4t 1 1 166 | A3 AND E 4t 1 1 167 | A4 AND H 4t 1 1 168 | A5 AND L 4t 1 1 169 | A6 AND (HL) 7t 2 1 170 | A7 AND A 4t 1 1 171 | A8 XOR B 4t 1 1 172 | A9 XOR C 4t 1 1 173 | AA XOR D 4t 1 1 174 | AB XOR E 4t 1 1 175 | AC XOR H 4t 1 1 176 | AD XOR L 4t 1 1 177 | AE XOR (HL) 7t 2 1 178 | AF XOR A 4t 1 1 179 | B0 OR B 4t 1 1 180 | B1 OR C 4t 1 1 181 | B2 OR D 4t 1 1 182 | B3 OR E 4t 1 1 183 | B4 OR H 4t 1 1 184 | B5 OR L 4t 1 1 185 | B6 OR (HL) 7t 2 1 186 | B7 OR A 4t 1 1 187 | B8 CP B 4t 1 1 188 | B9 CP C 4t 1 1 189 | BA CP D 4t 1 1 190 | BB CP E 4t 1 1 191 | BC CP H 4t 1 1 192 | BD CP L 4t 1 1 193 | BE CP (HL) 7t 2 1 194 | BF CP A 4t 1 1 195 | C0 RET NZ 11t/5t 3/1 1/1 (met/not met) 196 | C1 POP BC 10t 3 1 197 | C2 n n JP NZ,(nn) 10t 3 1 (met or not) 198 | C3 n n JP (nn) 10t 3 1 199 | C4 n n CALL NZ,(nn) 17t/10t 5/3 1/1 (met/not met) 200 | C5 PUSH BC 11t 3 1 201 | C6 n ADD A,n 7t 2 1 202 | C7 RST 0H 11t 3 1 203 | C8 RET Z 11t/5t 3/1 1/1 (met/not met) 204 | C9 RET 10t 3 1 205 | CA n n JP Z,(nn) 10t 3 1 (always same) 206 | CB00 RLC B 8t 2 2 207 | CB01 RLC C 8t 2 2 208 | CB02 RLC D 8t 2 2 209 | CB03 RLC E 8t 2 2 210 | CB04 RLC H 8t 2 2 211 | CB05 RLC L 8t 2 2 212 | CB06 RLC (HL) 15t 4 2 213 | CB07 RLC A 8t 2 2 214 | CB08 RRC B 8t 2 2 215 | CB09 RRC C 8t 2 2 216 | CB0A RRC D 8t 2 2 217 | CB0B RRC E 8t 2 2 218 | CB0C RRC H 8t 2 2 219 | CB0D RRC L 8t 2 2 220 | CB0E RRC (HL) 15t 4 2 221 | CB0F RRC A 8t 2 2 222 | CB10 RL B 8t 2 2 223 | CB11 RL C 8t 2 2 224 | CB12 RL D 8t 2 2 225 | CB13 RL E 8t 2 2 226 | CB14 RL H 8t 2 2 227 | CB15 RL L 8t 2 2 228 | CB16 RL (HL) 15t 4 2 229 | CB17 RL A 8t 2 2 230 | CB18 RR B 8t 2 2 231 | CB19 RR C 8t 2 2 232 | CB1A RR D 8t 2 2 233 | CB1B RR E 8t 2 2 234 | CB1C RR H 8t 2 2 235 | CB1D RR L 8t 2 2 236 | CB1E RR (HL) 15t 4 2 237 | CB1F RR A 8t 2 2 238 | CB20 SLA B 8t 2 2 239 | CB21 SLA C 8t 2 2 240 | CB22 SLA D 8t 2 2 241 | CB23 SLA E 8t 2 2 242 | CB24 SLA H 8t 2 2 243 | CB25 SLA L 8t 2 2 244 | CB26 SLA (HL) 15t 4 2 245 | CB27 SLA A 8t 2 2 246 | CB28 SRA B 8t 2 2 247 | CB29 SRA C 8t 2 2 248 | CB2A SRA D 8t 2 2 249 | CB2B SRA E 8t 2 2 250 | CB2C SRA H 8t 2 2 251 | CB2D SRA L 8t 2 2 252 | CB2E SRA (HL) 15t 4 2 253 | CB2F SRA A 8t 2 2 254 | CB30 SLL B* 8t 2 2 255 | CB31 SLL C* 8t 2 2 256 | CB32 SLL D* 8t 2 2 257 | CB33 SLL E* 8t 2 2 258 | CB34 SLL H* 8t 2 2 259 | CB35 SLL L* 8t 2 2 260 | CB36 SLL (HL)* 15t 4 2 261 | CB37 SLL A* 8t 2 2 262 | CB38 SRL B 8t 2 2 263 | CB39 SRL C 8t 2 2 264 | CB3A SRL D 8t 2 2 265 | CB3B SRL E 8t 2 2 266 | CB3C SRL H 8t 2 2 267 | CB3D SRL L 8t 2 2 268 | CB3E SRL (HL) 15t 4 2 269 | CB3F SRL A 8t 2 2 270 | CB40 BIT 0,B 8t 2 2 271 | CB41 BIT 0,C 8t 2 2 272 | CB42 BIT 0,D 8t 2 2 273 | CB43 BIT 0,E 8t 2 2 274 | CB44 BIT 0,H 8t 2 2 275 | CB45 BIT 0,L 8t 2 2 276 | CB46 BIT 0,(HL) 12t 3 2 277 | CB47 BIT 0,A 8t 2 2 278 | CB48 BIT 1,B 8t 2 2 279 | CB49 BIT 1,C 8t 2 2 280 | CB4A BIT 1,D 8t 2 2 281 | CB4B BIT 1,E 8t 2 2 282 | CB4C BIT 1,H 8t 2 2 283 | CB4D BIT 1,L 8t 2 2 284 | CB4E BIT 1,(HL) 12t 3 2 285 | CB4F BIT 1,A 8t 2 2 286 | CB50 BIT 2,B 8t 2 2 287 | CB51 BIT 2,C 8t 2 2 288 | CB52 BIT 2,D 8t 2 2 289 | CB53 BIT 2,E 8t 2 2 290 | CB54 BIT 2,H 8t 2 2 291 | CB55 BIT 2,L 8t 2 2 292 | CB56 BIT 2,(HL) 12t 3 2 293 | CB57 BIT 2,A 8t 2 2 294 | CB58 BIT 3,B 8t 2 2 295 | CB59 BIT 3,C 8t 2 2 296 | CB5A BIT 3,D 8t 2 2 297 | CB5B BIT 3,E 8t 2 2 298 | CB5C BIT 3,H 8t 2 2 299 | CB5D BIT 3,L 8t 2 2 300 | CB5E BIT 3,(HL) 12t 3 2 301 | CB5F BIT 3,A 8t 2 2 302 | CB60 BIT 4,B 8t 2 2 303 | CB61 BIT 4,C 8t 2 2 304 | CB62 BIT 4,D 8t 2 2 305 | CB63 BIT 4,E 8t 2 2 306 | CB64 BIT 4,H 8t 2 2 307 | CB65 BIT 4,L 8t 2 2 308 | CB66 BIT 4,(HL) 12t 3 2 309 | CB67 BIT 4,A 8t 2 2 310 | CB68 BIT 5,B 8t 2 2 311 | CB69 BIT 5,C 8t 2 2 312 | CB6A BIT 5,D 8t 2 2 313 | CB6B BIT 5,E 8t 2 2 314 | CB6C BIT 5,H 8t 2 2 315 | CB6D BIT 5,L 8t 2 2 316 | CB6E BIT 5,(HL) 12t 3 2 317 | CB6F BIT 5,A 8t 2 2 318 | CB70 BIT 6,B 8t 2 2 319 | CB71 BIT 6,C 8t 2 2 320 | CB72 BIT 6,D 8t 2 2 321 | CB73 BIT 6,E 8t 2 2 322 | CB74 BIT 6,H 8t 2 2 323 | CB75 BIT 6,L 8t 2 2 324 | CB76 BIT 6,(HL) 12t 3 2 325 | CB77 BIT 6,A 8t 2 2 326 | CB78 BIT 7,B 8t 2 2 327 | CB79 BIT 7,C 8t 2 2 328 | CB7A BIT 7,D 8t 2 2 329 | CB7B BIT 7,E 8t 2 2 330 | CB7C BIT 7,H 8t 2 2 331 | CB7D BIT 7,L 8t 2 2 332 | CB7E BIT 7,(HL) 12t 3 2 333 | CB7F BIT 7,A 8t 2 2 334 | CB80 RES 0,B 8t 2 2 335 | CB81 RES 0,C 8t 2 2 336 | CB82 RES 0,D 8t 2 2 337 | CB83 RES 0,E 8t 2 2 338 | CB84 RES 0,H 8t 2 2 339 | CB85 RES 0,L 8t 2 2 340 | CB86 RES 0,(HL) 15t 4 2 341 | CB87 RES 0,A 8t 2 2 342 | CB88 RES 1,B 8t 2 2 343 | CB89 RES 1,C 8t 2 2 344 | CB8A RES 1,D 8t 2 2 345 | CB8B RES 1,E 8t 2 2 346 | CB8C RES 1,H 8t 2 2 347 | CB8D RES 1,L 8t 2 2 348 | CB8E RES 1,(HL) 15t 4 2 349 | CB8F RES 1,A 8t 2 2 350 | CB90 RES 2,B 8t 2 2 351 | CB91 RES 2,C 8t 2 2 352 | CB92 RES 2,D 8t 2 2 353 | CB93 RES 2,E 8t 2 2 354 | CB94 RES 2,H 8t 2 2 355 | CB95 RES 2,L 8t 2 2 356 | CB96 RES 2,(HL) 15t 4 2 357 | CB97 RES 2,A 8t 2 2 358 | CB98 RES 3,B 8t 2 2 359 | CB99 RES 3,C 8t 2 2 360 | CB9A RES 3,D 8t 2 2 361 | CB9B RES 3,E 8t 2 2 362 | CB9C RES 3,H 8t 2 2 363 | CB9D RES 3,L 8t 2 2 364 | CB9E RES 3,(HL) 15t 4 2 365 | CB9F RES 3,A 8t 2 2 366 | CBA0 RES 4,B 8t 2 2 367 | CBA1 RES 4,C 8t 2 2 368 | CBA2 RES 4,D 8t 2 2 369 | CBA3 RES 4,E 8t 2 2 370 | CBA4 RES 4,H 8t 2 2 371 | CBA5 RES 4,L 8t 2 2 372 | CBA6 RES 4,(HL) 15t 4 2 373 | CBA7 RES 4,A 8t 2 2 374 | CBA8 RES 5,B 8t 2 2 375 | CBA9 RES 5,C 8t 2 2 376 | CBAA RES 5,D 8t 2 2 377 | CBAB RES 5,E 8t 2 2 378 | CBAC RES 5,H 8t 2 2 379 | CBAD RES 5,L 8t 2 2 380 | CBAE RES 5,(HL) 15t 4 2 381 | CBAF RES 5,A 8t 2 2 382 | CBB0 RES 6,B 8t 2 2 383 | CBB1 RES 6,C 8t 2 2 384 | CBB2 RES 6,D 8t 2 2 385 | CBB3 RES 6,E 8t 2 2 386 | CBB4 RES 6,H 8t 2 2 387 | CBB5 RES 6,L 8t 2 2 388 | CBB6 RES 6,(HL) 15t 4 2 389 | CBB7 RES 6,A 8t 2 2 390 | CBB8 RES 7,B 8t 2 2 391 | CBB9 RES 7,C 8t 2 2 392 | CBBA RES 7,D 8t 2 2 393 | CBBB RES 7,E 8t 2 2 394 | CBBC RES 7,H 8t 2 2 395 | CBBD RES 7,L 8t 2 2 396 | CBBE RES 7,(HL) 15t 4 2 397 | CBBF RES 7,A 8t 2 2 398 | CBC0 SET 0,B 8t 2 2 399 | CBC1 SET 0,C 8t 2 2 400 | CBC2 SET 0,D 8t 2 2 401 | CBC3 SET 0,E 8t 2 2 402 | CBC4 SET 0,H 8t 2 2 403 | CBC5 SET 0,L 8t 2 2 404 | CBC6 SET 0,(HL) 15t 4 2 405 | CBC7 SET 0,A 8t 2 2 406 | CBC8 SET 1,B 8t 2 2 407 | CBC9 SET 1,C 8t 2 2 408 | CBCA SET 1,D 8t 2 2 409 | CBCB SET 1,E 8t 2 2 410 | CBCC SET 1,H 8t 2 2 411 | CBCD SET 1,L 8t 2 2 412 | CBCE SET 1,(HL) 15t 4 2 413 | CBCF SET 1,A 8t 2 2 414 | CBD0 SET 2,B 8t 2 2 415 | CBD1 SET 2,C 8t 2 2 416 | CBD2 SET 2,D 8t 2 2 417 | CBD3 SET 2,E 8t 2 2 418 | CBD4 SET 2,H 8t 2 2 419 | CBD5 SET 2,L 8t 2 2 420 | CBD6 SET 2,(HL) 15t 4 2 421 | CBD7 SET 2,A 8t 2 2 422 | CBD8 SET 3,B 8t 2 2 423 | CBD9 SET 3,C 8t 2 2 424 | CBDA SET 3,D 8t 2 2 425 | CBDB SET 3,E 8t 2 2 426 | CBDC SET 3,H 8t 2 2 427 | CBDD SET 3,L 8t 2 2 428 | CBDE SET 3,(HL) 15t 4 2 429 | CBDF SET 3,A 8t 2 2 430 | CBE0 SET 4,B 8t 2 2 431 | CBE1 SET 4,C 8t 2 2 432 | CBE2 SET 4,D 8t 2 2 433 | CBE3 SET 4,E 8t 2 2 434 | CBE4 SET 4,H 8t 2 2 435 | CBE5 SET 4,L 8t 2 2 436 | CBE6 SET 4,(HL) 15t 4 2 437 | CBE7 SET 4,A 8t 2 2 438 | CBE8 SET 5,B 8t 2 2 439 | CBE9 SET 5,C 8t 2 2 440 | CBEA SET 5,D 8t 2 2 441 | CBEB SET 5,E 8t 2 2 442 | CBEC SET 5,H 8t 2 2 443 | CBED SET 5,L 8t 2 2 444 | CBEE SET 5,(HL) 15t 4 2 445 | CBEF SET 5,A 8t 2 2 446 | CBF0 SET 6,B 8t 2 2 447 | CBF1 SET 6,C 8t 2 2 448 | CBF2 SET 6,D 8t 2 2 449 | CBF3 SET 6,E 8t 2 2 450 | CBF4 SET 6,H 8t 2 2 451 | CBF5 SET 6,L 8t 2 2 452 | CBF6 SET 6,(HL) 15t 4 2 453 | CBF7 SET 6,A 8t 2 2 454 | CBF8 SET 7,B 8t 2 2 455 | CBF9 SET 7,C 8t 2 2 456 | CBFA SET 7,D 8t 2 2 457 | CBFB SET 7,E 8t 2 2 458 | CBFC SET 7,H 8t 2 2 459 | CBFD SET 7,L 8t 2 2 460 | CBFE SET 7,(HL) 15t 4 2 461 | CBFF SET 7,A 8t 2 2 462 | CC n n CALL Z,(nn) 17t/10t 5/3 1/1 (met/not met) 463 | CD n n CALL (nn) 17t 5 1 464 | CE n ADC A,n 7t 2 1 465 | CF RST 8H 11t 3 1 466 | D0 RET NC 11t/5t 1 1 467 | D1 POP DE 10t 3 1 468 | D2 n n JP NC,(nn) 10t 3 1 (met or not) 469 | D3 n OUT (n),A 11t 3 1 470 | D4 n n CALL NC,(nn) 17t/10t 5/3 1/1 (met/not met) 471 | D5 PUSH DE 11t 3 1 472 | D6 n SUB n 7t 2 1 473 | D7 RST 10H 11t 3 1 474 | D8 RET C 11t/5t 1 1 475 | D9 EXX 4t 1 1 476 | DA n n JP C,(nn) 10t 3 1 (met or not) 477 | DB n IN A,(n) 11t 3 1 478 | DC n n CALL C,(nn) 17t/10t 5/3 1 479 | DD09 ADD IX,BC 15t 480 | DD19 ADD IX,DE 15t 481 | DD21 n n LD IX,nn 14t 482 | DD22 n n LD (nn),IX 20t 483 | DD23 INC IX 10t 484 | DD24 INC IXH* 8t 485 | DD25 DEC IXH* 8t 486 | DD26 n LD IXH,n* 11t 487 | DD29 ADD IX,IX 15t 488 | DD2A n n LD IX,(nn) 20t 489 | DD2B DEC IX 10t 490 | DD2C INC IXL* 8t 491 | DD2D DEC IXL* 8t 492 | DD2E n LD IXL,n* 11t 493 | DD34 d INC (IX+d) 23t 494 | DD35 d DEC (IX+d) 23t 495 | DD36 d n LD (IX+d),n 19t 496 | DD39 ADD IX,SP 15t 497 | DD44 LD B,IXH* 8t 498 | DD45 LD B,IXL* 8t 499 | DD46 d LD B,(IX+d) 19t 500 | DD4C LD C,IXH* 8t 501 | DD4D LD C,IXL* 8t 502 | DD4E d LD C,(IX+d) 19t 503 | DD54 LD D,IXH* 8t 504 | DD55 LD D,IXL* 8t 505 | DD56 d LD D,(IX+d) 19t 506 | DD5C LD E,IXH* 8t 507 | DD5D LD E,IXL* 8t 508 | DD5E d LD E,(IX+d) 19t 509 | DD60 LD IXH,B* 8t 510 | DD61 LD IXH,C* 8t 511 | DD62 LD IXH,D* 8t 512 | DD63 LD IXH,E* 8t 513 | DD64 LD IXH,IXH* 8t 514 | DD65 LD IXH,IXL* 8t 515 | DD66 d LD H,(IX+d) 19t 516 | DD67 LD IXH,A* 8t 517 | DD68 LD IXL,B* 8t 518 | DD69 LD IXL,C* 8t 519 | DD6A LD IXL,D* 8t 520 | DD6B LD IXL,E* 8t 521 | DD6C LD IXL,IXH* 8t 522 | DD6D LD IXL,IXL* 8t 523 | DD6E d LD L,(IX+d) 19t 524 | DD6F LD IXL,A* 8t 525 | DD70 d LD (IX+d),B 19t 526 | DD71 d LD (IX+d),C 19t 527 | DD72 d LD (IX+d),D 19t 528 | DD73 d LD (IX+d),E 19t 529 | DD74 d LD (IX+d),H 19t 530 | DD75 d LD (IX+d),L 19t 531 | DD77 d LD (IX+d),A 19t 532 | DD7C LD A,IXH* 8t 533 | DD7D LD A,IXL* 8t 534 | DD7E d LD A,(IX+d) 19t 535 | DD84 ADD A,IXH* 8t 536 | DD85 ADD A,IXL* 8t 537 | DD86 d ADD A,(IX+d) 19t 538 | DD8C ADC A,IXH* 8t 539 | DD8D ADC A,IXL* 8t 540 | DD8E d ADC A,(IX+d) 19t 541 | DD94 SUB IXH* 8t 542 | DD95 SUB IXL* 8t 543 | DD96 d SUB (IX+d) 19t 544 | DD9C SBC A,IXH* 8t 545 | DD9D SBC A,IXL* 8t 546 | DD9E d SBC A,(IX+d) 19t 547 | DDA4 AND IXH* 8t 548 | DDA5 AND IXL* 8t 549 | DDA6 d AND (IX+d) 19t 550 | DDAC XOR IXH* 8t 551 | DDAD XOR IXL* 8t 552 | DDAE d XOR (IX+d) 19t 553 | DDB4 OR IXH* 8t 554 | DDB5 OR IXL* 8t 555 | DDB6 d OR (IX+d) 19t 556 | DDBC CP IXH* 8t 557 | DDBD CP IXL* 8t 558 | DDBE d CP (IX+d) 19t 559 | DDCB d 00 LD B,RLC (IX+d)* 23t 560 | DDCB d 01 LD C,RLC (IX+d)* 23t 561 | DDCB d 02 LD D,RLC (IX+d)* 23t 562 | DDCB d 03 LD E,RLC (IX+d)* 23t 563 | DDCB d 04 LD H,RLC (IX+d)* 23t 564 | DDCB d 05 LD L,RLC (IX+d)* 23t 565 | DDCB d 06 RLC (IX+d) 23t 566 | DDCB d 07 LD A,RLC (IX+d)* 23t 567 | DDCB d 08 LD B,RRC (IX+d)* 23t 568 | DDCB d 09 LD C,RRC (IX+d)* 23t 569 | DDCB d 0A LD D,RRC (IX+d)* 23t 570 | DDCB d 0B LD E,RRC (IX+d)* 23t 571 | DDCB d 0C LD H,RRC (IX+d)* 23t 572 | DDCB d 0D LD L,RRC (IX+d)* 23t 573 | DDCB d 0E RRC (IX+d) 23t 574 | DDCB d 0F LD A,RRC (IX+d)* 23t 575 | DDCB d 10 LD B,RL (IX+d)* 23t 576 | DDCB d 11 LD C,RL (IX+d)* 23t 577 | DDCB d 12 LD D,RL (IX+d)* 23t 578 | DDCB d 13 LD E,RL (IX+d)* 23t 579 | DDCB d 14 LD H,RL (IX+d)* 23t 580 | DDCB d 15 LD L,RL (IX+d)* 23t 581 | DDCB d 16 RL (IX+d) 23t 582 | DDCB d 17 LD A,RL (IX+d)* 23t 583 | DDCB d 18 LD B,RR (IX+d)* 23t 584 | DDCB d 19 LD C,RR (IX+d)* 23t 585 | DDCB d 1A LD D,RR (IX+d)* 23t 586 | DDCB d 1B LD E,RR (IX+d)* 23t 587 | DDCB d 1C LD H,RR (IX+d)* 23t 588 | DDCB d 1D LD L,RR (IX+d)* 23t 589 | DDCB d 1E RR (IX+d) 23t 590 | DDCB d 1F LD A,RR (IX+d)* 23t 591 | DDCB d 20 LD B,SLA (IX+d)* 23t 592 | DDCB d 21 LD C,SLA (IX+d)* 23t 593 | DDCB d 22 LD D,SLA (IX+d)* 23t 594 | DDCB d 23 LD E,SLA (IX+d)* 23t 595 | DDCB d 24 LD H,SLA (IX+d)* 23t 596 | DDCB d 25 LD L,SLA (IX+d)* 23t 597 | DDCB d 26 SLA (IX+d) 23t 598 | DDCB d 27 LD A,SLA (IX+d)* 23t 599 | DDCB d 28 LD B,SRA (IX+d)* 23t 600 | DDCB d 29 LD C,SRA (IX+d)* 23t 601 | DDCB d 2A LD D,SRA (IX+d)* 23t 602 | DDCB d 2B LD E,SRA (IX+d)* 23t 603 | DDCB d 2C LD H,SRA (IX+d)* 23t 604 | DDCB d 2D LD L,SRA (IX+d)* 23t 605 | DDCB d 2E SRA (IX+d) 23t 606 | DDCB d 2F LD A,SRA (IX+d)* 23t 607 | DDCB d 30 LD B,SLL (IX+d)* 23t 608 | DDCB d 31 LD C,SLL (IX+d)* 23t 609 | DDCB d 32 LD D,SLL (IX+d)* 23t 610 | DDCB d 33 LD E,SLL (IX+d)* 23t 611 | DDCB d 34 LD H,SLL (IX+d)* 23t 612 | DDCB d 35 LD L,SLL (IX+d)* 23t 613 | DDCB d 36 SLL (IX+d)* 23t 614 | DDCB d 37 LD A,SLL (IX+d)* 23t 615 | DDCB d 38 LD B,SRL (IX+d)* 23t 616 | DDCB d 39 LD C,SRL (IX+d)* 23t 617 | DDCB d 3A LD D,SRL (IX+d)* 23t 618 | DDCB d 3B LD E,SRL (IX+d)* 23t 619 | DDCB d 3C LD H,SRL (IX+d)* 23t 620 | DDCB d 3D LD L,SRL (IX+d)* 23t 621 | DDCB d 3E SRL (IX+d) 23t 622 | DDCB d 3F LD A,SRL (IX+d)* 23t 623 | DDCB d 40 BIT 0,(IX+d)* 23t 624 | DDCB d 41 BIT 0,(IX+d)* 23t 625 | DDCB d 42 BIT 0,(IX+d)* 23t 626 | DDCB d 43 BIT 0,(IX+d)* 23t 627 | DDCB d 44 BIT 0,(IX+d)* 23t 628 | DDCB d 45 BIT 0,(IX+d)* 23t 629 | DDCB d 46 BIT 0,(IX+d) 23t 630 | DDCB d 47 BIT 0,(IX+d)* 23t 631 | DDCB d 48 BIT 1,(IX+d)* 23t 632 | DDCB d 49 BIT 1,(IX+d)* 23t 633 | DDCB d 4A BIT 1,(IX+d)* 23t 634 | DDCB d 4B BIT 1,(IX+d)* 23t 635 | DDCB d 4C BIT 1,(IX+d)* 23t 636 | DDCB d 4D BIT 1,(IX+d)* 23t 637 | DDCB d 4E BIT 1,(IX+d) 23t 638 | DDCB d 4F BIT 1,(IX+d)* 23t 639 | DDCB d 50 BIT 2,(IX+d)* 23t 640 | DDCB d 51 BIT 2,(IX+d)* 23t 641 | DDCB d 52 BIT 2,(IX+d)* 23t 642 | DDCB d 53 BIT 2,(IX+d)* 23t 643 | DDCB d 54 BIT 2,(IX+d)* 23t 644 | DDCB d 55 BIT 2,(IX+d)* 23t 645 | DDCB d 56 BIT 2,(IX+d) 23t 646 | DDCB d 57 BIT 2,(IX+d)* 23t 647 | DDCB d 58 BIT 3,(IX+d)* 23t 648 | DDCB d 59 BIT 3,(IX+d)* 23t 649 | DDCB d 5A BIT 3,(IX+d)* 23t 650 | DDCB d 5B BIT 3,(IX+d)* 23t 651 | DDCB d 5C BIT 3,(IX+d)* 23t 652 | DDCB d 5D BIT 3,(IX+d)* 23t 653 | DDCB d 5E BIT 3,(IX+d) 23t 654 | DDCB d 5F BIT 3,(IX+d)* 23t 655 | DDCB d 60 BIT 4,(IX+d)* 23t 656 | DDCB d 61 BIT 4,(IX+d)* 23t 657 | DDCB d 62 BIT 4,(IX+d)* 23t 658 | DDCB d 63 BIT 4,(IX+d)* 23t 659 | DDCB d 64 BIT 4,(IX+d)* 23t 660 | DDCB d 65 BIT 4,(IX+d)* 23t 661 | DDCB d 66 BIT 4,(IX+d) 23t 662 | DDCB d 67 BIT 4,(IX+d)* 23t 663 | DDCB d 68 BIT 5,(IX+d)* 23t 664 | DDCB d 69 BIT 5,(IX+d)* 23t 665 | DDCB d 6A BIT 5,(IX+d)* 23t 666 | DDCB d 6B BIT 5,(IX+d)* 23t 667 | DDCB d 6C BIT 5,(IX+d)* 23t 668 | DDCB d 6D BIT 5,(IX+d)* 23t 669 | DDCB d 6E BIT 5,(IX+d) 23t 670 | DDCB d 6F BIT 5,(IX+d)* 23t 671 | DDCB d 70 BIT 6,(IX+d)* 23t 672 | DDCB d 71 BIT 6,(IX+d)* 23t 673 | DDCB d 72 BIT 6,(IX+d)* 23t 674 | DDCB d 73 BIT 6,(IX+d)* 23t 675 | DDCB d 74 BIT 6,(IX+d)* 23t 676 | DDCB d 75 BIT 6,(IX+d)* 23t 677 | DDCB d 76 BIT 6,(IX+d) 23t 678 | DDCB d 77 BIT 6,(IX+d)* 23t 679 | DDCB d 78 BIT 7,(IX+d)* 23t 680 | DDCB d 79 BIT 7,(IX+d)* 23t 681 | DDCB d 7A BIT 7,(IX+d)* 23t 682 | DDCB d 7B BIT 7,(IX+d)* 23t 683 | DDCB d 7C BIT 7,(IX+d)* 23t 684 | DDCB d 7D BIT 7,(IX+d)* 23t 685 | DDCB d 7E BIT 7,(IX+d) 23t 686 | DDCB d 7F BIT 7,(IX+d)* 23t 687 | DDCB d 80 LD B,RES 0,(IX+d)* 23t 688 | DDCB d 81 LD C,RES 0,(IX+d)* 23t 689 | DDCB d 82 LD D,RES 0,(IX+d)* 23t 690 | DDCB d 83 LD E,RES 0,(IX+d)* 23t 691 | DDCB d 84 LD H,RES 0,(IX+d)* 23t 692 | DDCB d 85 LD L,RES 0,(IX+d)* 23t 693 | DDCB d 86 RES 0,(IX+d) 23t 694 | DDCB d 87 LD A,RES 0,(IX+d)* 23t 695 | DDCB d 88 LD B,RES 1,(IX+d)* 23t 696 | DDCB d 89 LD C,RES 1,(IX+d)* 23t 697 | DDCB d 8A LD D,RES 1,(IX+d)* 23t 698 | DDCB d 8B LD E,RES 1,(IX+d)* 23t 699 | DDCB d 8C LD H,RES 1,(IX+d)* 23t 700 | DDCB d 8D LD L,RES 1,(IX+d)* 23t 701 | DDCB d 8E RES 1,(IX+d) 23t 702 | DDCB d 8F LD A,RES 1,(IX+d)* 23t 703 | DDCB d 90 LD B,RES 2,(IX+d)* 23t 704 | DDCB d 91 LD C,RES 2,(IX+d)* 23t 705 | DDCB d 92 LD D,RES 2,(IX+d)* 23t 706 | DDCB d 93 LD E,RES 2,(IX+d)* 23t 707 | DDCB d 94 LD H,RES 2,(IX+d)* 23t 708 | DDCB d 95 LD L,RES 2,(IX+d)* 23t 709 | DDCB d 96 RES 2,(IX+d) 23t 710 | DDCB d 97 LD A,RES 2,(IX+d)* 23t 711 | DDCB d 98 LD B,RES 3,(IX+d)* 23t 712 | DDCB d 99 LD C,RES 3,(IX+d)* 23t 713 | DDCB d 9A LD D,RES 3,(IX+d)* 23t 714 | DDCB d 9B LD E,RES 3,(IX+d)* 23t 715 | DDCB d 9C LD H,RES 3,(IX+d)* 23t 716 | DDCB d 9D LD L,RES 3,(IX+d)* 23t 717 | DDCB d 9E RES 3,(IX+d) 23t 718 | DDCB d 9F LD A,RES 3,(IX+d)* 23t 719 | DDCB d A0 LD B,RES 4,(IX+d)* 23t 720 | DDCB d A1 LD C,RES 4,(IX+d)* 23t 721 | DDCB d A2 LD D,RES 4,(IX+d)* 23t 722 | DDCB d A3 LD E,RES 4,(IX+d)* 23t 723 | DDCB d A4 LD H,RES 4,(IX+d)* 23t 724 | DDCB d A5 LD L,RES 4,(IX+d)* 23t 725 | DDCB d A6 RES 4,(IX+d) 23t 726 | DDCB d A7 LD A,RES 4,(IX+d)* 23t 727 | DDCB d A8 LD B,RES 5,(IX+d)* 23t 728 | DDCB d A9 LD C,RES 5,(IX+d)* 23t 729 | DDCB d AA LD D,RES 5,(IX+d)* 23t 730 | DDCB d AB LD E,RES 5,(IX+d)* 23t 731 | DDCB d AC LD H,RES 5,(IX+d)* 23t 732 | DDCB d AD LD L,RES 5,(IX+d)* 23t 733 | DDCB d AE RES 5,(IX+d) 23t 734 | DDCB d AF LD A,RES 5,(IX+d)* 23t 735 | DDCB d B0 LD B,RES 6,(IX+d)* 23t 736 | DDCB d B1 LD C,RES 6,(IX+d)* 23t 737 | DDCB d B2 LD D,RES 6,(IX+d)* 23t 738 | DDCB d B3 LD E,RES 6,(IX+d)* 23t 739 | DDCB d B4 LD H,RES 6,(IX+d)* 23t 740 | DDCB d B5 LD L,RES 6,(IX+d)* 23t 741 | DDCB d B6 RES 6,(IX+d) 23t 742 | DDCB d B7 LD A,RES 6,(IX+d)* 23t 743 | DDCB d B8 LD B,RES 7,(IX+d)* 23t 744 | DDCB d B9 LD C,RES 7,(IX+d)* 23t 745 | DDCB d BA LD D,RES 7,(IX+d)* 23t 746 | DDCB d BB LD E,RES 7,(IX+d)* 23t 747 | DDCB d BC LD H,RES 7,(IX+d)* 23t 748 | DDCB d BD LD L,RES 7,(IX+d)* 23t 749 | DDCB d BE RES 7,(IX+d) 23t 750 | DDCB d BF LD A,RES 7,(IX+d)* 23t 751 | DDCB d C0 LD B,SET 0,(IX+d)* 23t 752 | DDCB d C1 LD C,SET 0,(IX+d)* 23t 753 | DDCB d C2 LD D,SET 0,(IX+d)* 23t 754 | DDCB d C3 LD E,SET 0,(IX+d)* 23t 755 | DDCB d C4 LD H,SET 0,(IX+d)* 23t 756 | DDCB d C5 LD L,SET 0,(IX+d)* 23t 757 | DDCB d C6 SET 0,(IX+d) 23t 758 | DDCB d C7 LD A,SET 0,(IX+d)* 23t 759 | DDCB d C8 LD B,SET 1,(IX+d)* 23t 760 | DDCB d C9 LD C,SET 1,(IX+d)* 23t 761 | DDCB d CA LD D,SET 1,(IX+d)* 23t 762 | DDCB d CB LD E,SET 1,(IX+d)* 23t 763 | DDCB d CC LD H,SET 1,(IX+d)* 23t 764 | DDCB d CD LD L,SET 1,(IX+d)* 23t 765 | DDCB d CE SET 1,(IX+d) 23t 766 | DDCB d CF LD A,SET 1,(IX+d)* 23t 767 | DDCB d D0 LD B,SET 2,(IX+d)* 23t 768 | DDCB d D1 LD C,SET 2,(IX+d)* 23t 769 | DDCB d D2 LD D,SET 2,(IX+d)* 23t 770 | DDCB d D3 LD E,SET 2,(IX+d)* 23t 771 | DDCB d D4 LD H,SET 2,(IX+d)* 23t 772 | DDCB d D5 LD L,SET 2,(IX+d)* 23t 773 | DDCB d D6 SET 2,(IX+d) 23t 774 | DDCB d D7 LD A,SET 2,(IX+d)* 23t 775 | DDCB d D8 LD B,SET 3,(IX+d)* 23t 776 | DDCB d D9 LD C,SET 3,(IX+d)* 23t 777 | DDCB d DA LD D,SET 3,(IX+d)* 23t 778 | DDCB d DB LD E,SET 3,(IX+d)* 23t 779 | DDCB d DC LD H,SET 3,(IX+d)* 23t 780 | DDCB d DD LD L,SET 3,(IX+d)* 23t 781 | DDCB d DE SET 3,(IX+d) 23t 782 | DDCB d DF LD A,SET 3,(IX+d)* 23t 783 | DDCB d E0 LD B,SET 4,(IX+d)* 23t 784 | DDCB d E1 LD C,SET 4,(IX+d)* 23t 785 | DDCB d E2 LD D,SET 4,(IX+d)* 23t 786 | DDCB d E3 LD E,SET 4,(IX+d)* 23t 787 | DDCB d E4 LD H,SET 4,(IX+d)* 23t 788 | DDCB d E5 LD L,SET 4,(IX+d)* 23t 789 | DDCB d E6 SET 4,(IX+d) 23t 790 | DDCB d E7 LD A,SET 4,(IX+d)* 23t 791 | DDCB d E8 LD B,SET 5,(IX+d)* 23t 792 | DDCB d E9 LD C,SET 5,(IX+d)* 23t 793 | DDCB d EA LD D,SET 5,(IX+d)* 23t 794 | DDCB d EB LD E,SET 5,(IX+d)* 23t 795 | DDCB d EC LD H,SET 5,(IX+d)* 23t 796 | DDCB d ED LD L,SET 5,(IX+d)* 23t 797 | DDCB d EE SET 5,(IX+d) 23t 798 | DDCB d EF LD A,SET 5,(IX+d)* 23t 799 | DDCB d F0 LD B,SET 6,(IX+d)* 23t 800 | DDCB d F1 LD C,SET 6,(IX+d)* 23t 801 | DDCB d F2 LD D,SET 6,(IX+d)* 23t 802 | DDCB d F3 LD E,SET 6,(IX+d)* 23t 803 | DDCB d F4 LD H,SET 6,(IX+d)* 23t 804 | DDCB d F5 LD L,SET 6,(IX+d)* 23t 805 | DDCB d F6 SET 6,(IX+d) 23t 806 | DDCB d F7 LD A,SET 6,(IX+d)* 23t 807 | DDCB d F8 LD B,SET 7,(IX+d)* 23t 808 | DDCB d F9 LD C,SET 7,(IX+d)* 23t 809 | DDCB d FA LD D,SET 7,(IX+d)* 23t 810 | DDCB d FB LD E,SET 7,(IX+d)* 23t 811 | DDCB d FC LD H,SET 7,(IX+d)* 23t 812 | DDCB d FD LD L,SET 7,(IX+d)* 23t 813 | DDCB d FE SET 7,(IX+d) 23t 814 | DDCB d FF LD A,SET 7,(IX+d)* 23t 815 | DDE1 POP IX 14t 816 | DDE3 EX (SP),IX 23t 817 | DDE5 PUSH IX 15t 818 | DDE9 JP (IX) 8t 819 | DDF9 LD SP,IX 10t 820 | DE n SBC A,n 7t 821 | DF RST 18H 11t 822 | E0 RET PO 11t/5t 823 | E1 POP HL 10t 824 | E2 n n JP PO,(nn) 10t 825 | E3 EX (SP),HL 19 826 | E4 n n CALL PO,(nn) 17t/10t 827 | E5 PUSH HL 11t 828 | E6 n AND n 7t 829 | E7 RST 20H 11t 830 | E8 RET PE 11t/5t 831 | E9 JP (HL) 4t 832 | EA n n JP PE,(nn) 10t 833 | EB EX DE,HL 4t 834 | EC n n CALL PE,(nn) 17t/10t 835 | ED40 IN B,(C) 12t 836 | ED41 OUT (C),B 12t 837 | ED42 SBC HL,BC 15t 838 | ED43 n n LD (nn),BC 20t 839 | ED44 NEG 8t 840 | ED45 RETN 14t 841 | ED46 IM 0 8t 842 | ED47 LD I,A 9t 843 | ED48 IN C,(C) 12t 844 | ED49 OUT (C),C 12t 845 | ED4A ADC HL,BC 15t 846 | ED4B n n LD BC,(nn) 20t 847 | ED4C NEG* 8t 848 | ED4D RETI 14t 849 | ED4E IM 0/1* 8t 850 | ED4F LD R,A 9t 851 | ED50 IN D,(C) 12t 852 | ED51 OUT (C),D 12t 853 | ED52 SBC HL,DE 15t 854 | ED53 n n LD (nn),DE 20t 855 | ED54 NEG* 8t 856 | ED55 RETN* 14t 857 | ED56 IM 1 8t 858 | ED57 LD A,I 9t 859 | ED58 IN E,(C) 12t 860 | ED59 OUT (C),E 12t 861 | ED5A ADC HL,DE 15t 862 | ED5B n n LD DE,(nn) 20t 863 | ED5C NEG* 8t 864 | ED5D RETN* 14t 865 | ED5E IM 2 8t 866 | ED5F LD A,R 9t 867 | ED60 IN H,(C) 12t 868 | ED61 OUT (C),H 12t 869 | ED62 SBC HL,HL 15t 870 | ED63 n n LD (nn),HL 20t 871 | ED64 NEG* 8t 872 | ED65 RETN* 14t 873 | ED66 IM 0* 8t 874 | ED67 RRD 18t 875 | ED68 IN L,(C) 12t 876 | ED69 OUT (C),L 12t 877 | ED6A ADC HL,HL 15t 878 | ED6B n n LD HL,(nn) 20t 879 | ED6C NEG* 8t 880 | ED6D RETN* 14t 881 | ED6E IM 0/1* 8t 882 | ED6F RLD 18t 883 | ED70 IN F,(C)* / IN (C)* 12t 884 | ED71 OUT (C),0* 12t 885 | ED72 SBC HL,SP 15t 886 | ED73 n n LD (nn),SP 20t 887 | ED74 NEG* 8t 888 | ED75 RETN* 14t 889 | ED76 IM 1* 8t 890 | ED78 IN A,(C) 12t 891 | ED79 OUT (C),A 12t 892 | ED7A ADC HL,SP 15t 893 | ED7B n n LD SP,(nn) 20t 894 | ED7C NEG* 8t 895 | ED7D RETN* 14t 896 | ED7E IM 2* 8t 897 | EDA0 LDI 16t 898 | EDA1 CPI 16t 899 | EDA2 INI 16t 900 | EDA3 OUTI 16t 901 | EDA8 LDD 16t 902 | EDA9 CPD 16t 903 | EDAA IND 16t 904 | EDAB OUTD 16t 905 | EDB0 LDIR 21t/16t 906 | EDB1 CPIR 21t/16t 907 | EDB2 INIR 21t/16t 908 | EDB3 OTIR 21t/16t 909 | EDB8 LDDR 21t/16t 910 | EDB9 CPDR 21t/16t 911 | EDBA INDR 21t/16t 912 | EDBB OTDR 21t/16t 913 | EE n XOR n 7t 914 | EF RST 28H 11t 915 | F0 RET P 11t/5t 916 | F1 POP AF 10t 917 | F2 n n JP P,(nn) 10t 918 | F3 DI 4t 919 | F4 n n CALL P,(nn) 17t/10t 920 | F5 PUSH AF 11t 921 | F6 n OR n 7t 922 | F7 RST 30H 11t 923 | F8 RET M 11t/5t 924 | F9 LD SP,HL 6t 925 | FA n n JP M,(nn) 10t 926 | FB EI 4t 927 | FC n n CALL M,(nn) 17t/10t 928 | FD09 ADD IY,BC 15t 929 | FD19 ADD IY,DE 15t 930 | FD21 n n LD IY,nn 14t 931 | FD22 n n LD (nn),IY 20t 932 | FD23 INC IY 10t 933 | FD24 INC IYH* 8t 934 | FD25 DEC IYH* 8t 935 | FD26 n LD IYH,n* 11t 936 | FD29 ADD IY,IY 15t 937 | FD2A n n LD IY,(nn) 20t 938 | FD2B DEC IY 10t 939 | FD2C INC IYL* 8t 940 | FD2D DEC IYL* 8t 941 | FD2E n LD IYL,n* 11t 942 | FD34 d INC (IY+d) 23t 943 | FD35 d DEC (IY+d) 23t 944 | FD36 d n LD (IY+d),n 19t 945 | FD39 ADD IY,SP 15t 946 | FD44 LD B,IYH* 8t 947 | FD45 LD B,IYL* 8t 948 | FD46 d LD B,(IY+d) 19t 949 | FD4C LD C,IYH* 8t 950 | FD4D LD C,IYL* 8t 951 | FD4E d LD C,(IY+d) 19t 952 | FD54 LD D,IYH* 8t 953 | FD55 LD D,IYL* 8t 954 | FD56 d LD D,(IY+d) 19t 955 | FD5C LD E,IYH* 8t 956 | FD5D LD E,IYL* 8t 957 | FD5E d LD E,(IY+d) 19t 958 | FD60 LD IYH,B* 8t 959 | FD61 LD IYH,C* 8t 960 | FD62 LD IYH,D* 8t 961 | FD63 LD IYH,E* 8t 962 | FD64 LD IYH,IYH* 8t 963 | FD65 LD IYH,IYL* 8t 964 | FD66 d LD H,(IY+d) 19t 965 | FD67 LD IYH,A* 8t 966 | FD68 LD IYL,B* 8t 967 | FD69 LD IYL,C* 8t 968 | FD6A LD IYL,D* 8t 969 | FD6B LD IYL,E* 8t 970 | FD6C LD IYL,IYH* 8t 971 | FD6D LD IYL,IYL* 8t 972 | FD6E d LD L,(IY+d) 19t 973 | FD6F LD IYL,A* 8t 974 | FD70 d LD (IY+d),B 19t 975 | FD71 d LD (IY+d),C 19t 976 | FD72 d LD (IY+d),D 19t 977 | FD73 d LD (IY+d),E 19t 978 | FD74 d LD (IY+d),H 19t 979 | FD75 d LD (IY+d),L 19t 980 | FD77 d LD (IY+d),A 19t 981 | FD7C LD A,IYH* 8t 982 | FD7D LD A,IYL* 8t 983 | FD7E d LD A,(IY+d) 19t 984 | FD84 ADD A,IYH* 8t 985 | FD85 ADD A,IYL* 8t 986 | FD86 d ADD A,(IY+d) 19t 987 | FD8C ADC A,IYH* 8t 988 | FD8D ADC A,IYL* 8t 989 | FD8E d ADC A,(IY+d) 19t 990 | FD94 SUB IYH* 8t 991 | FD95 SUB IYL* 8t 992 | FD96 d SUB (IY+d) 19t 993 | FD9C SBC A,IYH* 8t 994 | FD9D SBC A,IYL* 8t 995 | FD9E d SBC A,(IY+d) 19t 996 | FDA4 AND IYH* 8t 997 | FDA5 AND IYL* 8t 998 | FDA6 d AND (IY+d) 19t 999 | FDAC XOR IYH* 8t 1000 | FDAD XOR IYL* 8t 1001 | FDAE d XOR (IY+d) 19t 1002 | FDB4 OR IYH* 8t 1003 | FDB5 OR IYL* 8t 1004 | FDB6 d OR (IY+d) 19t 1005 | FDBC CP IYH* 8t 1006 | FDBD CP IYL* 8t 1007 | FDBE d CP (IY+d) 19t 1008 | FDCB d 00 LD B,RLC (IY+d)* 23t 1009 | FDCB d 01 LD C,RLC (IY+d)* 23t 1010 | FDCB d 02 LD D,RLC (IY+d)* 23t 1011 | FDCB d 03 LD E,RLC (IY+d)* 23t 1012 | FDCB d 04 LD H,RLC (IY+d)* 23t 1013 | FDCB d 05 LD L,RLC (IY+d)* 23t 1014 | FDCB d 06 RLC (IY+d) 23t 1015 | FDCB d 07 LD A,RLC (IY+d)* 23t 1016 | FDCB d 08 LD B,RRC (IY+d)* 23t 1017 | FDCB d 09 LD C,RRC (IY+d)* 23t 1018 | FDCB d 0A LD D,RRC (IY+d)* 23t 1019 | FDCB d 0B LD E,RRC (IY+d)* 23t 1020 | FDCB d 0C LD H,RRC (IY+d)* 23t 1021 | FDCB d 0D LD L,RRC (IY+d)* 23t 1022 | FDCB d 0E RRC (IY+d) 23t 1023 | FDCB d 0F LD A,RRC (IY+d)* 23t 1024 | FDCB d 10 LD B,RL (IY+d)* 23t 1025 | FDCB d 11 LD C,RL (IY+d)* 23t 1026 | FDCB d 12 LD D,RL (IY+d)* 23t 1027 | FDCB d 13 LD E,RL (IY+d)* 23t 1028 | FDCB d 14 LD H,RL (IY+d)* 23t 1029 | FDCB d 15 LD L,RL (IY+d)* 23t 1030 | FDCB d 16 RL (IY+d) 23t 1031 | FDCB d 17 LD A,RL (IY+d)* 23t 1032 | FDCB d 18 LD B,RR (IY+d)* 23t 1033 | FDCB d 19 LD C,RR (IY+d)* 23t 1034 | FDCB d 1A LD D,RR (IY+d)* 23t 1035 | FDCB d 1B LD E,RR (IY+d)* 23t 1036 | FDCB d 1C LD H,RR (IY+d)* 23t 1037 | FDCB d 1D LD L,RR (IY+d)* 23t 1038 | FDCB d 1E RR (IY+d) 23t 1039 | FDCB d 1F LD A,RR (IY+d)* 23t 1040 | FDCB d 20 LD B,SLA (IY+d)* 23t 1041 | FDCB d 21 LD C,SLA (IY+d)* 23t 1042 | FDCB d 22 LD D,SLA (IY+d)* 23t 1043 | FDCB d 23 LD E,SLA (IY+d)* 23t 1044 | FDCB d 24 LD H,SLA (IY+d)* 23t 1045 | FDCB d 25 LD L,SLA (IY+d)* 23t 1046 | FDCB d 26 SLA (IY+d) 23t 1047 | FDCB d 27 LD A,SLA (IY+d)* 23t 1048 | FDCB d 28 LD B,SRA (IY+d)* 23t 1049 | FDCB d 29 LD C,SRA (IY+d)* 23t 1050 | FDCB d 2A LD D,SRA (IY+d)* 23t 1051 | FDCB d 2B LD E,SRA (IY+d)* 23t 1052 | FDCB d 2C LD H,SRA (IY+d)* 23t 1053 | FDCB d 2D LD L,SRA (IY+d)* 23t 1054 | FDCB d 2E SRA (IY+d) 23t 1055 | FDCB d 2F LD A,SRA (IY+d)* 23t 1056 | FDCB d 30 LD B,SLL (IY+d)* 23t 1057 | FDCB d 31 LD C,SLL (IY+d)* 23t 1058 | FDCB d 32 LD D,SLL (IY+d)* 23t 1059 | FDCB d 33 LD E,SLL (IY+d)* 23t 1060 | FDCB d 34 LD H,SLL (IY+d)* 23t 1061 | FDCB d 35 LD L,SLL (IY+d)* 23t 1062 | FDCB d 36 SLL (IY+d)* 23t 1063 | FDCB d 37 LD A,SLL (IY+d)* 23t 1064 | FDCB d 38 LD B,SRL (IY+d)* 23t 1065 | FDCB d 39 LD C,SRL (IY+d)* 23t 1066 | FDCB d 3A LD D,SRL (IY+d)* 23t 1067 | FDCB d 3B LD E,SRL (IY+d)* 23t 1068 | FDCB d 3C LD H,SRL (IY+d)* 23t 1069 | FDCB d 3D LD L,SRL (IY+d)* 23t 1070 | FDCB d 3E SRL (IY+d) 23t 1071 | FDCB d 3F LD A,SRL (IY+d)* 23t 1072 | FDCB d 40 BIT 0,(IY+d)* 23t 1073 | FDCB d 41 BIT 0,(IY+d)* 23t 1074 | FDCB d 42 BIT 0,(IY+d)* 23t 1075 | FDCB d 43 BIT 0,(IY+d)* 23t 1076 | FDCB d 44 BIT 0,(IY+d)* 23t 1077 | FDCB d 45 BIT 0,(IY+d)* 23t 1078 | FDCB d 46 BIT 0,(IY+d) 23t 1079 | FDCB d 47 BIT 0,(IY+d)* 23t 1080 | FDCB d 48 BIT 1,(IY+d)* 23t 1081 | FDCB d 49 BIT 1,(IY+d)* 23t 1082 | FDCB d 4A BIT 1,(IY+d)* 23t 1083 | FDCB d 4B BIT 1,(IY+d)* 23t 1084 | FDCB d 4C BIT 1,(IY+d)* 23t 1085 | FDCB d 4D BIT 1,(IY+d)* 23t 1086 | FDCB d 4E BIT 1,(IY+d) 23t 1087 | FDCB d 4F BIT 1,(IY+d)* 23t 1088 | FDCB d 50 BIT 2,(IY+d)* 23t 1089 | FDCB d 51 BIT 2,(IY+d)* 23t 1090 | FDCB d 52 BIT 2,(IY+d)* 23t 1091 | FDCB d 53 BIT 2,(IY+d)* 23t 1092 | FDCB d 54 BIT 2,(IY+d)* 23t 1093 | FDCB d 55 BIT 2,(IY+d)* 23t 1094 | FDCB d 56 BIT 2,(IY+d) 23t 1095 | FDCB d 57 BIT 2,(IY+d)* 23t 1096 | FDCB d 58 BIT 3,(IY+d)* 23t 1097 | FDCB d 59 BIT 3,(IY+d)* 23t 1098 | FDCB d 5A BIT 3,(IY+d)* 23t 1099 | FDCB d 5B BIT 3,(IY+d)* 23t 1100 | FDCB d 5C BIT 3,(IY+d)* 23t 1101 | FDCB d 5D BIT 3,(IY+d)* 23t 1102 | FDCB d 5E BIT 3,(IY+d) 23t 1103 | FDCB d 5F BIT 3,(IY+d)* 23t 1104 | FDCB d 60 BIT 4,(IY+d)* 23t 1105 | FDCB d 61 BIT 4,(IY+d)* 23t 1106 | FDCB d 62 BIT 4,(IY+d)* 23t 1107 | FDCB d 63 BIT 4,(IY+d)* 23t 1108 | FDCB d 64 BIT 4,(IY+d)* 23t 1109 | FDCB d 65 BIT 4,(IY+d)* 23t 1110 | FDCB d 66 BIT 4,(IY+d) 23t 1111 | FDCB d 67 BIT 4,(IY+d)* 23t 1112 | FDCB d 68 BIT 5,(IY+d)* 23t 1113 | FDCB d 69 BIT 5,(IY+d)* 23t 1114 | FDCB d 6A BIT 5,(IY+d)* 23t 1115 | FDCB d 6B BIT 5,(IY+d)* 23t 1116 | FDCB d 6C BIT 5,(IY+d)* 23t 1117 | FDCB d 6D BIT 5,(IY+d)* 23t 1118 | FDCB d 6E BIT 5,(IY+d) 23t 1119 | FDCB d 6F BIT 5,(IY+d)* 23t 1120 | FDCB d 70 BIT 6,(IY+d)* 23t 1121 | FDCB d 71 BIT 6,(IY+d)* 23t 1122 | FDCB d 72 BIT 6,(IY+d)* 23t 1123 | FDCB d 73 BIT 6,(IY+d)* 23t 1124 | FDCB d 74 BIT 6,(IY+d)* 23t 1125 | FDCB d 75 BIT 6,(IY+d)* 23t 1126 | FDCB d 76 BIT 6,(IY+d) 23t 1127 | FDCB d 77 BIT 6,(IY+d)* 23t 1128 | FDCB d 78 BIT 7,(IY+d)* 23t 1129 | FDCB d 79 BIT 7,(IY+d)* 23t 1130 | FDCB d 7A BIT 7,(IY+d)* 23t 1131 | FDCB d 7B BIT 7,(IY+d)* 23t 1132 | FDCB d 7C BIT 7,(IY+d)* 23t 1133 | FDCB d 7D BIT 7,(IY+d)* 23t 1134 | FDCB d 7E BIT 7,(IY+d) 23t 1135 | FDCB d 7F BIT 7,(IY+d)* 23t 1136 | FDCB d 80 LD B,RES 0,(IY+d)* 23t 1137 | FDCB d 81 LD C,RES 0,(IY+d)* 23t 1138 | FDCB d 82 LD D,RES 0,(IY+d)* 23t 1139 | FDCB d 83 LD E,RES 0,(IY+d)* 23t 1140 | FDCB d 84 LD H,RES 0,(IY+d)* 23t 1141 | FDCB d 85 LD L,RES 0,(IY+d)* 23t 1142 | FDCB d 86 RES 0,(IY+d) 23t 1143 | FDCB d 87 LD A,RES 0,(IY+d)* 23t 1144 | FDCB d 88 LD B,RES 1,(IY+d)* 23t 1145 | FDCB d 89 LD C,RES 1,(IY+d)* 23t 1146 | FDCB d 8A LD D,RES 1,(IY+d)* 23t 1147 | FDCB d 8B LD E,RES 1,(IY+d)* 23t 1148 | FDCB d 8C LD H,RES 1,(IY+d)* 23t 1149 | FDCB d 8D LD L,RES 1,(IY+d)* 23t 1150 | FDCB d 8E RES 1,(IY+d) 23t 1151 | FDCB d 8F LD A,RES 1,(IY+d)* 23t 1152 | FDCB d 90 LD B,RES 2,(IY+d)* 23t 1153 | FDCB d 91 LD C,RES 2,(IY+d)* 23t 1154 | FDCB d 92 LD D,RES 2,(IY+d)* 23t 1155 | FDCB d 93 LD E,RES 2,(IY+d)* 23t 1156 | FDCB d 94 LD H,RES 2,(IY+d)* 23t 1157 | FDCB d 95 LD L,RES 2,(IY+d)* 23t 1158 | FDCB d 96 RES 2,(IY+d) 23t 1159 | FDCB d 97 LD A,RES 2,(IY+d)* 23t 1160 | FDCB d 98 LD B,RES 3,(IY+d)* 23t 1161 | FDCB d 99 LD C,RES 3,(IY+d)* 23t 1162 | FDCB d 9A LD D,RES 3,(IY+d)* 23t 1163 | FDCB d 9B LD E,RES 3,(IY+d)* 23t 1164 | FDCB d 9C LD H,RES 3,(IY+d)* 23t 1165 | FDCB d 9D LD L,RES 3,(IY+d)* 23t 1166 | FDCB d 9E RES 3,(IY+d) 23t 1167 | FDCB d 9F LD A,RES 3,(IY+d)* 23t 1168 | FDCB d A0 LD B,RES 4,(IY+d)* 23t 1169 | FDCB d A1 LD C,RES 4,(IY+d)* 23t 1170 | FDCB d A2 LD D,RES 4,(IY+d)* 23t 1171 | FDCB d A3 LD E,RES 4,(IY+d)* 23t 1172 | FDCB d A4 LD H,RES 4,(IY+d)* 23t 1173 | FDCB d A5 LD L,RES 4,(IY+d)* 23t 1174 | FDCB d A6 RES 4,(IY+d) 23t 1175 | FDCB d A7 LD A,RES 4,(IY+d)* 23t 1176 | FDCB d A8 LD B,RES 5,(IY+d)* 23t 1177 | FDCB d A9 LD C,RES 5,(IY+d)* 23t 1178 | FDCB d AA LD D,RES 5,(IY+d)* 23t 1179 | FDCB d AB LD E,RES 5,(IY+d)* 23t 1180 | FDCB d AC LD H,RES 5,(IY+d)* 23t 1181 | FDCB d AD LD L,RES 5,(IY+d)* 23t 1182 | FDCB d AE RES 5,(IY+d) 23t 1183 | FDCB d AF LD A,RES 5,(IY+d)* 23t 1184 | FDCB d B0 LD B,RES 6,(IY+d)* 23t 1185 | FDCB d B1 LD C,RES 6,(IY+d)* 23t 1186 | FDCB d B2 LD D,RES 6,(IY+d)* 23t 1187 | FDCB d B3 LD E,RES 6,(IY+d)* 23t 1188 | FDCB d B4 LD H,RES 6,(IY+d)* 23t 1189 | FDCB d B5 LD L,RES 6,(IY+d)* 23t 1190 | FDCB d B6 RES 6,(IY+d) 23t 1191 | FDCB d B7 LD A,RES 6,(IY+d)* 23t 1192 | FDCB d B8 LD B,RES 7,(IY+d)* 23t 1193 | FDCB d B9 LD C,RES 7,(IY+d)* 23t 1194 | FDCB d BA LD D,RES 7,(IY+d)* 23t 1195 | FDCB d BB LD E,RES 7,(IY+d)* 23t 1196 | FDCB d BC LD H,RES 7,(IY+d)* 23t 1197 | FDCB d BD LD L,RES 7,(IY+d)* 23t 1198 | FDCB d BE RES 7,(IY+d) 23t 1199 | FDCB d BF LD A,RES 7,(IY+d)* 23t 1200 | FDCB d C0 LD B,SET 0,(IY+d)* 23t 1201 | FDCB d C1 LD C,SET 0,(IY+d)* 23t 1202 | FDCB d C2 LD D,SET 0,(IY+d)* 23t 1203 | FDCB d C3 LD E,SET 0,(IY+d)* 23t 1204 | FDCB d C4 LD H,SET 0,(IY+d)* 23t 1205 | FDCB d C5 LD L,SET 0,(IY+d)* 23t 1206 | FDCB d C6 SET 0,(IY+d) 23t 1207 | FDCB d C7 LD A,SET 0,(IY+d)* 23t 1208 | FDCB d C8 LD B,SET 1,(IY+d)* 23t 1209 | FDCB d C9 LD C,SET 1,(IY+d)* 23t 1210 | FDCB d CA LD D,SET 1,(IY+d)* 23t 1211 | FDCB d CB LD E,SET 1,(IY+d)* 23t 1212 | FDCB d CC LD H,SET 1,(IY+d)* 23t 1213 | FDCB d CD LD L,SET 1,(IY+d)* 23t 1214 | FDCB d CE SET 1,(IY+d) 23t 1215 | FDCB d CF LD A,SET 1,(IY+d)* 23t 1216 | FDCB d D0 LD B,SET 2,(IY+d)* 23t 1217 | FDCB d D1 LD C,SET 2,(IY+d)* 23t 1218 | FDCB d D2 LD D,SET 2,(IY+d)* 23t 1219 | FDCB d D3 LD E,SET 2,(IY+d)* 23t 1220 | FDCB d D4 LD H,SET 2,(IY+d)* 23t 1221 | FDCB d D5 LD L,SET 2,(IY+d)* 23t 1222 | FDCB d D6 SET 2,(IY+d) 23t 1223 | FDCB d D7 LD A,SET 2,(IY+d)* 23t 1224 | FDCB d D8 LD B,SET 3,(IY+d)* 23t 1225 | FDCB d D9 LD C,SET 3,(IY+d)* 23t 1226 | FDCB d DA LD D,SET 3,(IY+d)* 23t 1227 | FDCB d DB LD E,SET 3,(IY+d)* 23t 1228 | FDCB d DC LD H,SET 3,(IY+d)* 23t 1229 | FDCB d DD LD L,SET 3,(IY+d)* 23t 1230 | FDCB d DE SET 3,(IY+d) 23t 1231 | FDCB d DF LD A,SET 3,(IY+d)* 23t 1232 | FDCB d E0 LD B,SET 4,(IY+d)* 23t 1233 | FDCB d E1 LD C,SET 4,(IY+d)* 23t 1234 | FDCB d E2 LD D,SET 4,(IY+d)* 23t 1235 | FDCB d E3 LD E,SET 4,(IY+d)* 23t 1236 | FDCB d E4 LD H,SET 4,(IY+d)* 23t 1237 | FDCB d E5 LD L,SET 4,(IY+d)* 23t 1238 | FDCB d E6 SET 4,(IY+d) 23t 1239 | FDCB d E7 LD A,SET 4,(IY+d)* 23t 1240 | FDCB d E8 LD B,SET 5,(IY+d)* 23t 1241 | FDCB d E9 LD C,SET 5,(IY+d)* 23t 1242 | FDCB d EA LD D,SET 5,(IY+d)* 23t 1243 | FDCB d EB LD E,SET 5,(IY+d)* 23t 1244 | FDCB d EC LD H,SET 5,(IY+d)* 23t 1245 | FDCB d ED LD L,SET 5,(IY+d)* 23t 1246 | FDCB d EE SET 5,(IY+d) 23t 1247 | FDCB d EF LD A,SET 5,(IY+d)* 23t 1248 | FDCB d F0 LD B,SET 6,(IY+d)* 23t 1249 | FDCB d F1 LD C,SET 6,(IY+d)* 23t 1250 | FDCB d F2 LD D,SET 6,(IY+d)* 23t 1251 | FDCB d F3 LD E,SET 6,(IY+d)* 23t 1252 | FDCB d F4 LD H,SET 6,(IY+d)* 23t 1253 | FDCB d F5 LD L,SET 6,(IY+d)* 23t 1254 | FDCB d F6 SET 6,(IY+d) 23t 1255 | FDCB d F7 LD A,SET 6,(IY+d)* 23t 1256 | FDCB d F8 LD B,SET 7,(IY+d)* 23t 1257 | FDCB d F9 LD C,SET 7,(IY+d)* 23t 1258 | FDCB d FA LD D,SET 7,(IY+d)* 23t 1259 | FDCB d FB LD E,SET 7,(IY+d)* 23t 1260 | FDCB d FC LD H,SET 7,(IY+d)* 23t 1261 | FDCB d FD LD L,SET 7,(IY+d)* 23t 1262 | FDCB d FE SET 7,(IY+d) 23t 1263 | FDCB d FF LD A,SET 7,(IY+d)* 23t 1264 | FDE1 POP IY 14t 1265 | FDE3 EX (SP),IY 23t 1266 | FDE5 PUSH IY 15t 1267 | FDE9 JP (IY) 8t 1268 | FDF9 LD SP,IY 10t 1269 | FE n CP n 7t 1270 | FF RST 38H 11t 1271 | -------------------------------------------------------------------------------- /z80asm/z80asm.sublime-build: -------------------------------------------------------------------------------- 1 | { 2 | "working_dir": "$file_path", 3 | "file_regex": "^(.+)\\(([0-9]+)\\):.*?(): (.*)$", 4 | "selector": "source.z80asm", 5 | "encoding": "utf-8", 6 | 7 | "windows": 8 | { 9 | "cmd": ["$packages/z80asm/build.bat","$file_name","$project_path"], 10 | "encoding": "cp866" 11 | }, 12 | 13 | "linux": 14 | { 15 | "cmd": ["$packages/z80asm/build.sh","$file_name","$project_path"] 16 | }, 17 | 18 | "osx": 19 | { 20 | "cmd": ["$packages/z80asm/build","$file_name","$project_path"] 21 | }, 22 | 23 | 24 | "variants": 25 | [ 26 | { 27 | "name": "Run", 28 | "windows": 29 | { 30 | "cmd": ["$packages/z80asm/run.bat","$file_name","$project_path"], 31 | "encoding": "cp866" 32 | }, 33 | 34 | "linux": 35 | { 36 | "cmd": ["$packages/z80asm/run.sh","$file_name","$project_path"] 37 | }, 38 | 39 | "osx": 40 | { 41 | "cmd": ["$packages/z80asm/run","$file_name","$project_path"] 42 | } 43 | }, 44 | { 45 | "name": "Build and Run", 46 | "windows": 47 | { 48 | "cmd": ["$packages/z80asm/buildrun.bat","$file_name","$project_path"], 49 | "encoding": "cp866" 50 | }, 51 | 52 | "linux": 53 | { 54 | "cmd": ["$packages/z80asm/buildrun.sh","$file_name","$project_path"] 55 | }, 56 | 57 | "osx": 58 | { 59 | "cmd": ["$packages/z80asm/buildrun","$file_name","$project_path"] 60 | } 61 | } 62 | ] 63 | 64 | } 65 | -------------------------------------------------------------------------------- /z80asm/z80asm.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | // Force the color theme for z80asm. You can choose one of them or 3 | // comment out them all (then you will be able to set any theme in 4 | // `Preferences > Color Scheme` menu). 5 | "color_scheme": "Packages/z80asm/z80asm.tmTheme", 6 | // "color_scheme": "Packages/z80asm/z80asm (breeze).tmTheme", 7 | 8 | // The number of spaces a tab is considered equal to 9 | "tab_size": 8, 10 | 11 | // When enabled, pressing tab will insert the best matching completion. 12 | // When disabled, tab will only trigger snippets or insert a tab. 13 | // Shift+tab can be used to insert an explicit tab when tab_completion is 14 | // enabled. 15 | "tab_completion": false, 16 | 17 | // Enable auto complete to be triggered automatically when typing. 18 | // "auto_complete": false, 19 | 20 | // The delay, in ms, before the auto complete window is shown after typing 21 | // "auto_complete_delay": 350, 22 | 23 | // The encoding to use when the encoding can't be determined automatically. 24 | // ASCII, UTF-8 and UTF-16 encodings will be automatically detected. 25 | // "fallback_encoding": "Cyrillic (Windows 866)", 26 | "fallback_encoding": "Cyrillic (Windows 1251)", 27 | 28 | // Encoding used when saving new files, and files opened with an undefined 29 | // encoding (e.g., plain ascii files). If a file is opened with a specific 30 | // encoding (either detected or given explicitly), this setting will be 31 | // ignored, and the file will be saved with the encoding it was opened 32 | // with. 33 | // "default_encoding": "Cyrillic (Windows 866)", 34 | "default_encoding": "Cyrillic (Windows 1251)", 35 | 36 | // When enabled, all opened tabs will be scanned for completion words. 37 | "use_global_completion": true 38 | 39 | } 40 | -------------------------------------------------------------------------------- /z80asm/z80asm.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | a80 8 | asm 9 | 10 | name 11 | Z80 Asm 12 | patterns 13 | 14 | 15 | comment 16 | Bad temporary label (not only numeric) 17 | match 18 | ^[0-9]+[^0-9\s:].*$ 19 | name 20 | invalid.illegal.asm 21 | 22 | 23 | comment 24 | Bad line (not begin from label, space, dot or comment) 25 | match 26 | ^[^a-zA-Z0-9_.;@/ \t\r\n].*$ 27 | name 28 | invalid.illegal.asm 29 | 30 | 31 | comment 32 | DUP (storm syntax) 33 | match 34 | ^\.\d+(?=\s) 35 | name 36 | keyword.control.asm 37 | 38 | 39 | comment 40 | Label 41 | match 42 | ^(([a-zA-Z_.@][a-zA-Z_.0-9]*)|[0-9]+)(?=\s|:|=|$) 43 | name 44 | entity.name.label.def.asm 45 | 46 | 47 | captures 48 | 49 | 1 50 | 51 | name 52 | keyword.other.command.asm 53 | 54 | 2 55 | 56 | name 57 | constant.other.flag.asm 58 | 59 | 3 60 | 61 | name 62 | entity.name.label.asm 63 | 64 | 65 | comment 66 | Special case: conditional call/jmp 67 | match 68 | (?i)(?<=\s|:)(call|jp|jr)\s+(?:(z|nz|c|nc|po|pe|p|m)\s*,\s*)?((?:[a-zA-Z_.@$][a-zA-Z_.0-9]*)|[0-9]+(?:b|f)) 69 | 70 | 71 | captures 72 | 73 | 1 74 | 75 | name 76 | keyword.other.command.asm 77 | 78 | 2 79 | 80 | name 81 | entity.name.label.asm 82 | 83 | 84 | comment 85 | Special case: djnz 86 | match 87 | (?i)(?<=\s|:)(djnz)\s+((?:[a-zA-Z_.@$][a-zA-Z_.0-9]*)|[0-9]+(?:b|f)) 88 | 89 | 90 | captures 91 | 92 | 1 93 | 94 | name 95 | keyword.other.command.asm 96 | 97 | 2 98 | 99 | name 100 | constant.other.flag.asm 101 | 102 | 103 | comment 104 | Special case: conditional ret 105 | match 106 | (?i)(?<=\s|:)(ret)(?:\s+(z|nz|c|nc|po|pe|p|m))?(?=\s|:|;|$) 107 | 108 | 109 | comment 110 | Z80 commands 111 | match 112 | (?i)(?<=\s|:)(adc|add|and|bit|call|ccf|cp|cpl|cpd|cpdr|cpi|cpir|daa|dec|di|djnz|ei|ex|exx|halt|im|in|inc|ind|indr|inf|ini|inir|jp|jr|ld|ldd|lddr|ldi|ldir|neg|nop|exx|or|otdr|otir|out|outd|outi|pop|push|res|ret|reti|retn|rl|rla|rlc|rlca|rld|rr|rra|rrc|rrca|rrd|rst|sbc|scf|set|sla|sli|sll|sra|srl|sub|xor)(?=\s|:|$) 113 | name 114 | keyword.other.command.asm 115 | 116 | 117 | comment 118 | Z80 commands / known macros 119 | match 120 | (?i)(?<=\s|:)(exa|down|up)(?=\s|:|$) 121 | name 122 | keyword.other.command.extended.asm 123 | 124 | 125 | comment 126 | Asm data definition directives 127 | match 128 | (?i)(?<=\s|:)(db|dw|ds|dm|dd|dz|defb|defw|defs|defm|defd|byte|abyte(c|z)?|word|d24|dword|block|defarray)(?=\s|:|$) 129 | name 130 | storage.type.datadef.asm 131 | 132 | 133 | comment 134 | Asm general directives 135 | match 136 | (?i)(?<=\s|:)(include|incbin|incl|incb|binary|insert|inchob|inctrd|org|align|page|slot|equ|disp|phase|unphase|dephase|ent|textarea|macro|endm|struct|ends|dup|edup|rept|define|if|ifn|endif|ifdef|ifndef|end)(?=\s|:|$) 137 | name 138 | keyword.control.asm 139 | 140 | 141 | comment 142 | Asm functions 143 | match 144 | (?i)\b(high|low|not|mod|shl|shr)\b 145 | name 146 | support.function.asm 147 | 148 | 149 | comment 150 | Asm functions 151 | match 152 | (?i)(?<=[a-z0-9_])(\[|\]) 153 | name 154 | support.function.asm 155 | 156 | 157 | comment 158 | SjASM directives/commands 159 | match 160 | (?i)(?<=\s|:)(device|display|savesna|savebin|savehob|savetrd|module|endmodule|lua|endlua|includelua|assert|emptytrd|encoding|export|labelslist|output|shellexec|size)(?=\s|:|$) 161 | name 162 | keyword.directive.extended.asm 163 | 164 | 165 | comment 166 | 8 bit register set 167 | match 168 | (?i)\b(a|b|c|d|e|h|l|i|r|xl|lx|xh|hx|ixl|ixh|yl|ly|yh|hy|iyl|iyh)\b 169 | name 170 | variable.parameter.register.asm 171 | 172 | 173 | comment 174 | 16 bit register set 175 | match 176 | (?i)(\baf')|(\b(af|bc|de|hl|sp|ix|iy)\b) 177 | name 178 | variable.parameter.register.asm 179 | 180 | 181 | comment 182 | HEX/DEC/BIN number 183 | match 184 | (?i)(%[01]+\b)|(\b[01]+b\b)|((#|\$)[0-9a-f]+\b)|(\b([0-9]+|0x[0-9a-f]+|[0-9][0-9a-f]*h)\b) 185 | name 186 | constant.numeric.asm 187 | 188 | 189 | comment 190 | Label in commands (experimental, marks all unknown words as labels) 191 | match 192 | (\b|@|\.)[a-zA-Z_][a-zA-Z_.0-9]*\b 193 | name 194 | entity.name.label.asm 195 | 196 | 197 | comment 198 | Comment line 199 | match 200 | (//|;).* 201 | name 202 | comment.line.asm 203 | 204 | 205 | begin 206 | (/\*) 207 | comment 208 | C-style comment block 209 | end 210 | (\*/) 211 | name 212 | comment.block.asm 213 | 214 | 215 | comment 216 | Single-line string 217 | match 218 | '[^']*' 219 | name 220 | string.asm 221 | 222 | 223 | comment 224 | Single-line string 225 | match 226 | "[^"]*" 227 | name 228 | string.asm 229 | 230 | 231 | scopeName 232 | source.z80asm 233 | uuid 234 | c15e385b-46ca-4911-b87f-4212fb149803 235 | 236 | 237 | -------------------------------------------------------------------------------- /z80asm/z80asm.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments, indent 7 | scope 8 | source.z80asm 9 | settings 10 | 11 | increaseIndentPattern 12 | (?x)^[a-zA-Z_.@][a-zA-Z_.0-9]*(?=\s|:|=|$) 13 | shellVariables 14 | 15 | 16 | name 17 | TM_COMMENT_START 18 | value 19 | ; 20 | 21 | 22 | name 23 | TM_COMMENT_START_2 24 | value 25 | // 26 | 27 | 28 | name 29 | TM_COMMENT_START_3 30 | value 31 | /* 32 | 33 | 34 | name 35 | TM_COMMENT_END_3 36 | value 37 | */ 38 | 39 | 40 | name 41 | TM_COMMENT_DISABLE_INDENT 42 | value 43 | yes 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /z80asm/z80asm.tmTheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Monokai-z80asm 7 | settings 8 | 9 | 10 | settings 11 | 12 | activeGuide 13 | #9D550FB0 14 | background 15 | #272822 16 | bracketContentsForeground 17 | #F8F8F2A5 18 | bracketContentsOptions 19 | underline 20 | bracketsForeground 21 | #F8F8F2A5 22 | bracketsOptions 23 | underline 24 | caret 25 | #F8F8F0 26 | findHighlight 27 | #FFE792 28 | findHighlightForeground 29 | #000000 30 | foreground 31 | #F8F8F2 32 | invisibles 33 | #3B3A32 34 | lineHighlight 35 | #3E3D32 36 | selection 37 | #49483E 38 | selectionBorder 39 | #222218 40 | tagsOptions 41 | stippled_underline 42 | 43 | 44 | 45 | name 46 | Comment 47 | scope 48 | comment 49 | settings 50 | 51 | foreground 52 | #75715E 53 | 54 | 55 | 56 | name 57 | String 58 | scope 59 | string 60 | settings 61 | 62 | foreground 63 | #E6DB74 64 | 65 | 66 | 67 | name 68 | Number 69 | scope 70 | constant.numeric 71 | settings 72 | 73 | foreground 74 | #AE81FF 75 | 76 | 77 | 78 | name 79 | Built-in constant 80 | scope 81 | constant.language 82 | settings 83 | 84 | foreground 85 | #AE81FF 86 | 87 | 88 | 89 | name 90 | User-defined constant 91 | scope 92 | constant.character, constant.other 93 | settings 94 | 95 | foreground 96 | #AE81FF 97 | 98 | 99 | 100 | name 101 | Variable 102 | scope 103 | variable 104 | settings 105 | 106 | fontStyle 107 | 108 | 109 | 110 | 111 | name 112 | Keyword 113 | scope 114 | keyword 115 | settings 116 | 117 | foreground 118 | #F92672 119 | 120 | 121 | 122 | name 123 | Storage 124 | scope 125 | storage 126 | settings 127 | 128 | fontStyle 129 | 130 | foreground 131 | #F92672 132 | 133 | 134 | 135 | name 136 | Storage type 137 | scope 138 | storage.type 139 | settings 140 | 141 | fontStyle 142 | italic 143 | foreground 144 | #66D9EF 145 | 146 | 147 | 148 | name 149 | Class name 150 | scope 151 | entity.name.class 152 | settings 153 | 154 | fontStyle 155 | underline 156 | foreground 157 | #A6E22E 158 | 159 | 160 | 161 | name 162 | Inherited class 163 | scope 164 | entity.other.inherited-class 165 | settings 166 | 167 | fontStyle 168 | italic underline 169 | foreground 170 | #A6E22E 171 | 172 | 173 | 174 | name 175 | Function name 176 | scope 177 | entity.name.function 178 | settings 179 | 180 | fontStyle 181 | 182 | foreground 183 | #A6E22E 184 | 185 | 186 | 187 | name 188 | Function argument 189 | scope 190 | variable.parameter 191 | settings 192 | 193 | fontStyle 194 | italic 195 | foreground 196 | #FD971F 197 | 198 | 199 | 200 | name 201 | Tag name 202 | scope 203 | entity.name.tag 204 | settings 205 | 206 | fontStyle 207 | 208 | foreground 209 | #F92672 210 | 211 | 212 | 213 | name 214 | Tag attribute 215 | scope 216 | entity.other.attribute-name 217 | settings 218 | 219 | fontStyle 220 | 221 | foreground 222 | #A6E22E 223 | 224 | 225 | 226 | name 227 | Library function 228 | scope 229 | support.function 230 | settings 231 | 232 | fontStyle 233 | 234 | foreground 235 | #66D9EF 236 | 237 | 238 | 239 | name 240 | Library constant 241 | scope 242 | support.constant 243 | settings 244 | 245 | fontStyle 246 | 247 | foreground 248 | #66D9EF 249 | 250 | 251 | 252 | name 253 | Library class/type 254 | scope 255 | support.type, support.class 256 | settings 257 | 258 | fontStyle 259 | italic 260 | foreground 261 | #66D9EF 262 | 263 | 264 | 265 | name 266 | Library variable 267 | scope 268 | support.other.variable 269 | settings 270 | 271 | fontStyle 272 | 273 | 274 | 275 | 276 | name 277 | Invalid 278 | scope 279 | invalid 280 | settings 281 | 282 | background 283 | #F92672 284 | fontStyle 285 | 286 | foreground 287 | #F8F8F0 288 | 289 | 290 | 291 | name 292 | Invalid deprecated 293 | scope 294 | invalid.deprecated 295 | settings 296 | 297 | background 298 | #AE81FF 299 | foreground 300 | #F8F8F0 301 | 302 | 303 | 304 | name 305 | JSON String 306 | scope 307 | meta.structure.dictionary.json string.quoted.double.json 308 | settings 309 | 310 | foreground 311 | #CFCFC2 312 | 313 | 314 | 315 | name 316 | diff.header 317 | scope 318 | meta.diff, meta.diff.header 319 | settings 320 | 321 | foreground 322 | #75715E 323 | 324 | 325 | 326 | name 327 | diff.deleted 328 | scope 329 | markup.deleted 330 | settings 331 | 332 | foreground 333 | #F92672 334 | 335 | 336 | 337 | name 338 | diff.inserted 339 | scope 340 | markup.inserted 341 | settings 342 | 343 | foreground 344 | #A6E22E 345 | 346 | 347 | 348 | name 349 | diff.changed 350 | scope 351 | markup.changed 352 | settings 353 | 354 | foreground 355 | #E6DB74 356 | 357 | 358 | 359 | scope 360 | constant.numeric.line-number.find-in-files - match 361 | settings 362 | 363 | foreground 364 | #AE81FFA0 365 | 366 | 367 | 368 | scope 369 | entity.name.filename.find-in-files 370 | settings 371 | 372 | foreground 373 | #E6DB74 374 | 375 | 376 | 377 | Name 378 | Bad line 379 | scope 380 | invalid.illegal.asm 381 | settings 382 | 383 | background 384 | #FF0000 385 | fontStyle 386 | 387 | foreground 388 | #FFFFFF 389 | 390 | 391 | 392 | Name 393 | Label 394 | scope 395 | entity.name.label.asm 396 | settings 397 | 398 | fontStyle 399 | 400 | foreground 401 | #FF0088 402 | 403 | 404 | 405 | Name 406 | Label definition 407 | scope 408 | entity.name.label.def.asm 409 | settings 410 | 411 | fontStyle 412 | 413 | foreground 414 | #FF0088 415 | 416 | 417 | 418 | Name 419 | Flags 420 | scope 421 | constant.other.flag.asm 422 | settings 423 | 424 | fontStyle 425 | bold 426 | foreground 427 | #FFAA00 428 | 429 | 430 | 431 | Name 432 | Z80 commands 433 | scope 434 | keyword.other.command.asm 435 | settings 436 | 437 | fontStyle 438 | bold 439 | foreground 440 | #FFFFFF 441 | 442 | 443 | 444 | Name 445 | Z80 commands / known macros (down/up) 446 | scope 447 | keyword.other.command.extended.asm 448 | settings 449 | 450 | fontStyle 451 | 452 | foreground 453 | #FFFFFF 454 | 455 | 456 | 457 | Name 458 | Asm data definition directives (db) 459 | scope 460 | storage.type.datadef.asm 461 | settings 462 | 463 | fontStyle 464 | 465 | foreground 466 | #00FFAA 467 | 468 | 469 | 470 | Name 471 | Asm general directives (org/dup) 472 | scope 473 | keyword.control.asm 474 | settings 475 | 476 | fontStyle 477 | 478 | foreground 479 | #FFAA00 480 | 481 | 482 | 483 | Name 484 | Asm functions (high/low/shr) 485 | scope 486 | support.function.asm 487 | settings 488 | 489 | fontStyle 490 | 491 | foreground 492 | #FFAA00 493 | 494 | 495 | 496 | Name 497 | SjASM directives/commands (device/display/savesna) 498 | scope 499 | keyword.directive.extended.asm 500 | settings 501 | 502 | fontStyle 503 | 504 | foreground 505 | #0099FF 506 | 507 | 508 | 509 | Name 510 | register set 511 | scope 512 | variable.parameter.register.asm 513 | settings 514 | 515 | fontStyle 516 | bold 517 | foreground 518 | #FFFF00 519 | 520 | 521 | 522 | Name 523 | HEX/DEC/BIN number 524 | scope 525 | constant.numeric.asm 526 | settings 527 | 528 | fontStyle 529 | 530 | foreground 531 | #00FF00 532 | 533 | 534 | 535 | Name 536 | Comment line 537 | scope 538 | comment.line.asm 539 | settings 540 | 541 | fontStyle 542 | italic 543 | foreground 544 | #75715E 545 | 546 | 547 | 548 | Name 549 | C-style comment block 550 | scope 551 | comment.block.asm 552 | settings 553 | 554 | fontStyle 555 | italic 556 | foreground 557 | #75715E 558 | 559 | 560 | 561 | Name 562 | Single-line string 563 | scope 564 | string.asm 565 | settings 566 | 567 | fontStyle 568 | 569 | foreground 570 | #E6DB74 571 | 572 | 573 | 574 | uuid 575 | D8D5E82E-3D5B-46B5-B38E-8C841C21347D 576 | 577 | 578 | --------------------------------------------------------------------------------