BBC Basic in Z80 emulation on the mbed, USB serial terminal output only. LOAD and SAVE work on the local file system but there is no error signalling.

Dependencies:   mbed

Committer:
gertk
Date:
Wed Jun 29 14:25:56 2011 +0000
Revision:
0:806c2f2a7d47
preliminary version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gertk 0:806c2f2a7d47 1 /* Emulations of the Z80 CPU instruction set - part of xz80.
gertk 0:806c2f2a7d47 2 * Copyright (C) 1994 Ian Collier.
gertk 0:806c2f2a7d47 3 *
gertk 0:806c2f2a7d47 4 * This program is free software; you can redistribute it and/or modify
gertk 0:806c2f2a7d47 5 * it under the terms of the GNU General Public License as published by
gertk 0:806c2f2a7d47 6 * the Free Software Foundation; either version 2 of the License, or
gertk 0:806c2f2a7d47 7 * (at your option) any later version.
gertk 0:806c2f2a7d47 8 *
gertk 0:806c2f2a7d47 9 * This program is distributed in the hope that it will be useful,
gertk 0:806c2f2a7d47 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
gertk 0:806c2f2a7d47 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
gertk 0:806c2f2a7d47 12 * GNU General Public License for more details.
gertk 0:806c2f2a7d47 13 *
gertk 0:806c2f2a7d47 14 * You should have received a copy of the GNU General Public License
gertk 0:806c2f2a7d47 15 * along with this program; if not, write to the Free Software
gertk 0:806c2f2a7d47 16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
gertk 0:806c2f2a7d47 17 */
gertk 0:806c2f2a7d47 18
gertk 0:806c2f2a7d47 19
gertk 0:806c2f2a7d47 20 /* nop */
gertk 0:806c2f2a7d47 21 case 0:
gertk 0:806c2f2a7d47 22 break;
gertk 0:806c2f2a7d47 23 // ld BC,nn
gertk 0:806c2f2a7d47 24 instr(0x01,10);
gertk 0:806c2f2a7d47 25 c=fetch(pc),pc++;
gertk 0:806c2f2a7d47 26 b=fetch(pc),pc++;
gertk 0:806c2f2a7d47 27 endinstr;
gertk 0:806c2f2a7d47 28 // ld (BC),A
gertk 0:806c2f2a7d47 29 instr(0x02,7);
gertk 0:806c2f2a7d47 30 store(bc,a);
gertk 0:806c2f2a7d47 31 endinstr;
gertk 0:806c2f2a7d47 32 // inc BC
gertk 0:806c2f2a7d47 33 instr(0x03,6);
gertk 0:806c2f2a7d47 34 if (!++c)b++;
gertk 0:806c2f2a7d47 35 endinstr;
gertk 0:806c2f2a7d47 36 // inc B
gertk 0:806c2f2a7d47 37 instr(0x04,4);
gertk 0:806c2f2a7d47 38 inc(b);
gertk 0:806c2f2a7d47 39 endinstr;
gertk 0:806c2f2a7d47 40 // dec B
gertk 0:806c2f2a7d47 41 instr(0x05,4);
gertk 0:806c2f2a7d47 42 dec(b);
gertk 0:806c2f2a7d47 43 endinstr;
gertk 0:806c2f2a7d47 44 // ld B,n
gertk 0:806c2f2a7d47 45 instr(0x06,7);
gertk 0:806c2f2a7d47 46 b=fetch(pc),pc++;
gertk 0:806c2f2a7d47 47 endinstr;
gertk 0:806c2f2a7d47 48 // rlca
gertk 0:806c2f2a7d47 49 instr(0x07,4);
gertk 0:806c2f2a7d47 50 a=(a<<1)|(a>>7);
gertk 0:806c2f2a7d47 51 f=(f&0xc4)|(a&0x29);
gertk 0:806c2f2a7d47 52 endinstr;
gertk 0:806c2f2a7d47 53 // ex AF,AF'
gertk 0:806c2f2a7d47 54 instr(0x08,4);
gertk 0:806c2f2a7d47 55 swap(a,a1);
gertk 0:806c2f2a7d47 56 swap(f,f1);
gertk 0:806c2f2a7d47 57 endinstr;
gertk 0:806c2f2a7d47 58 // add HL,BC
gertk 0:806c2f2a7d47 59 instr(0x09,11);
gertk 0:806c2f2a7d47 60 addhl(b,c);
gertk 0:806c2f2a7d47 61 endinstr;
gertk 0:806c2f2a7d47 62 // ld A,(BC)
gertk 0:806c2f2a7d47 63 instr(0x0a,7);
gertk 0:806c2f2a7d47 64 a=fetch(bc);
gertk 0:806c2f2a7d47 65 endinstr;
gertk 0:806c2f2a7d47 66 // dec BC
gertk 0:806c2f2a7d47 67 instr(0x0b,6);
gertk 0:806c2f2a7d47 68 if (!c--)b--;
gertk 0:806c2f2a7d47 69 endinstr;
gertk 0:806c2f2a7d47 70 // inc C
gertk 0:806c2f2a7d47 71 instr(0x0c,4);
gertk 0:806c2f2a7d47 72 inc(c);
gertk 0:806c2f2a7d47 73 endinstr;
gertk 0:806c2f2a7d47 74 // dec C
gertk 0:806c2f2a7d47 75 instr(0x0d,4);
gertk 0:806c2f2a7d47 76 dec(c);
gertk 0:806c2f2a7d47 77 endinstr;
gertk 0:806c2f2a7d47 78 // ld C,n
gertk 0:806c2f2a7d47 79 instr(0x0e,4);
gertk 0:806c2f2a7d47 80 c=fetch(pc),pc++;
gertk 0:806c2f2a7d47 81 endinstr;
gertk 0:806c2f2a7d47 82 // rrca
gertk 0:806c2f2a7d47 83 instr(0x0f,4);
gertk 0:806c2f2a7d47 84 f=(f&0xc4)|(a&1);
gertk 0:806c2f2a7d47 85 a=(a>>1)|(a<<7);
gertk 0:806c2f2a7d47 86 f|=a&0x28;
gertk 0:806c2f2a7d47 87 endinstr;
gertk 0:806c2f2a7d47 88 // djnz
gertk 0:806c2f2a7d47 89 instr(0x10,8);
gertk 0:806c2f2a7d47 90 if (!--b)pc++;
gertk 0:806c2f2a7d47 91 else jr;
gertk 0:806c2f2a7d47 92 endinstr;
gertk 0:806c2f2a7d47 93 // ld DE,nn
gertk 0:806c2f2a7d47 94 instr(0x11,10);
gertk 0:806c2f2a7d47 95 e=fetch(pc),pc++;
gertk 0:806c2f2a7d47 96 d=fetch(pc),pc++;
gertk 0:806c2f2a7d47 97 endinstr;
gertk 0:806c2f2a7d47 98 // ld (DE),A
gertk 0:806c2f2a7d47 99 instr(0x12,7);
gertk 0:806c2f2a7d47 100 store(de,a);
gertk 0:806c2f2a7d47 101 endinstr;
gertk 0:806c2f2a7d47 102 // inc DE
gertk 0:806c2f2a7d47 103 instr(0x13,6);
gertk 0:806c2f2a7d47 104 if (!++e)d++;
gertk 0:806c2f2a7d47 105 endinstr;
gertk 0:806c2f2a7d47 106 // inc D
gertk 0:806c2f2a7d47 107 instr(0x14,4);
gertk 0:806c2f2a7d47 108 inc(d);
gertk 0:806c2f2a7d47 109 endinstr;
gertk 0:806c2f2a7d47 110 // dec D
gertk 0:806c2f2a7d47 111 instr(0x15,4);
gertk 0:806c2f2a7d47 112 dec(d);
gertk 0:806c2f2a7d47 113 endinstr;
gertk 0:806c2f2a7d47 114 // ld D,n
gertk 0:806c2f2a7d47 115 instr(0x16,7);
gertk 0:806c2f2a7d47 116 d=fetch(pc),pc++;
gertk 0:806c2f2a7d47 117 endinstr;
gertk 0:806c2f2a7d47 118 // rla
gertk 0:806c2f2a7d47 119 instr(0x17,4);
gertk 0:806c2f2a7d47 120 {
gertk 0:806c2f2a7d47 121 int t=a>>7;
gertk 0:806c2f2a7d47 122 a=(a<<1)|(f&1);
gertk 0:806c2f2a7d47 123 f=(f&0xc4)|(a&0x28)|t;
gertk 0:806c2f2a7d47 124 }
gertk 0:806c2f2a7d47 125 endinstr;
gertk 0:806c2f2a7d47 126 // JR
gertk 0:806c2f2a7d47 127 instr(0x18,7);
gertk 0:806c2f2a7d47 128 jr;
gertk 0:806c2f2a7d47 129 endinstr;
gertk 0:806c2f2a7d47 130 // add HL,DE
gertk 0:806c2f2a7d47 131 instr(0x19,11);
gertk 0:806c2f2a7d47 132 addhl(d,e);
gertk 0:806c2f2a7d47 133 endinstr;
gertk 0:806c2f2a7d47 134 // ld A,(DE)
gertk 0:806c2f2a7d47 135 instr(0x1a,7);
gertk 0:806c2f2a7d47 136 a=fetch(de);
gertk 0:806c2f2a7d47 137 endinstr;
gertk 0:806c2f2a7d47 138 // dec DE
gertk 0:806c2f2a7d47 139 instr(0x1b,6);
gertk 0:806c2f2a7d47 140 if (!e--)d--;
gertk 0:806c2f2a7d47 141 endinstr;
gertk 0:806c2f2a7d47 142 // inc E
gertk 0:806c2f2a7d47 143 instr(0x1c,4);
gertk 0:806c2f2a7d47 144 inc(e);
gertk 0:806c2f2a7d47 145 endinstr;
gertk 0:806c2f2a7d47 146 // dec E
gertk 0:806c2f2a7d47 147 instr(0x1d,4);
gertk 0:806c2f2a7d47 148 dec(e);
gertk 0:806c2f2a7d47 149 endinstr;
gertk 0:806c2f2a7d47 150 // ld E,n
gertk 0:806c2f2a7d47 151 instr(0x1e,4);
gertk 0:806c2f2a7d47 152 e=fetch(pc),pc++;
gertk 0:806c2f2a7d47 153 endinstr;
gertk 0:806c2f2a7d47 154 // rra
gertk 0:806c2f2a7d47 155 instr(0x1f,4);
gertk 0:806c2f2a7d47 156 {
gertk 0:806c2f2a7d47 157 int t=a&1;
gertk 0:806c2f2a7d47 158 a=(a>>1)|(f<<7);
gertk 0:806c2f2a7d47 159 f=(f&0xc4)|(a&0x28)|t;
gertk 0:806c2f2a7d47 160 }
gertk 0:806c2f2a7d47 161 endinstr;
gertk 0:806c2f2a7d47 162 // jr NZ
gertk 0:806c2f2a7d47 163 instr(0x20,7);
gertk 0:806c2f2a7d47 164 if (f&0x40)pc++;
gertk 0:806c2f2a7d47 165 else jr;
gertk 0:806c2f2a7d47 166 endinstr;
gertk 0:806c2f2a7d47 167 // ld HL,nn
gertk 0:806c2f2a7d47 168 instr(0x21,10);
gertk 0:806c2f2a7d47 169 if (!ixoriy) {
gertk 0:806c2f2a7d47 170 l=fetch(pc),pc++;
gertk 0:806c2f2a7d47 171 h=fetch(pc),pc++;
gertk 0:806c2f2a7d47 172 } else {
gertk 0:806c2f2a7d47 173 if (ixoriy==1)
gertk 0:806c2f2a7d47 174 ix=fetch2(pc);
gertk 0:806c2f2a7d47 175 else iy=fetch2(pc);
gertk 0:806c2f2a7d47 176 pc+=2;
gertk 0:806c2f2a7d47 177 }
gertk 0:806c2f2a7d47 178 endinstr;
gertk 0:806c2f2a7d47 179 // ld (nn),HL
gertk 0:806c2f2a7d47 180 instr(0x22,16);
gertk 0:806c2f2a7d47 181 {
gertk 0:806c2f2a7d47 182 unsigned short addr=fetch2(pc);
gertk 0:806c2f2a7d47 183 pc+=2;
gertk 0:806c2f2a7d47 184 if (!ixoriy) store2b(addr,h,l);
gertk 0:806c2f2a7d47 185 else if (ixoriy==1)store2(addr,ix);
gertk 0:806c2f2a7d47 186 else store2(addr,iy);
gertk 0:806c2f2a7d47 187 }
gertk 0:806c2f2a7d47 188 endinstr;
gertk 0:806c2f2a7d47 189 // inc HL
gertk 0:806c2f2a7d47 190 instr(0x23,6);
gertk 0:806c2f2a7d47 191 if (!ixoriy) {
gertk 0:806c2f2a7d47 192 if (!++l)h++;
gertk 0:806c2f2a7d47 193 } else if (ixoriy==1)ix++;
gertk 0:806c2f2a7d47 194 else iy++;
gertk 0:806c2f2a7d47 195 endinstr;
gertk 0:806c2f2a7d47 196 // inc H
gertk 0:806c2f2a7d47 197 instr(0x24,4);
gertk 0:806c2f2a7d47 198 if (ixoriy==0)inc(h);
gertk 0:806c2f2a7d47 199 else {
gertk 0:806c2f2a7d47 200 unsigned char t;
gertk 0:806c2f2a7d47 201 t=(ixoriy==1?ix:iy)>>8;
gertk 0:806c2f2a7d47 202 inc(t);
gertk 0:806c2f2a7d47 203 if (ixoriy==1)ix=(ix&0xff)|(t<<8);
gertk 0:806c2f2a7d47 204 else iy=(iy&0xff)|(t<<8);
gertk 0:806c2f2a7d47 205 }
gertk 0:806c2f2a7d47 206 endinstr;
gertk 0:806c2f2a7d47 207 // dec H
gertk 0:806c2f2a7d47 208 instr(0x25,4);
gertk 0:806c2f2a7d47 209 if (ixoriy==0)dec(h);
gertk 0:806c2f2a7d47 210 else {
gertk 0:806c2f2a7d47 211 unsigned char t;
gertk 0:806c2f2a7d47 212 t=(ixoriy==1?ix:iy)>>8;
gertk 0:806c2f2a7d47 213 dec(t);
gertk 0:806c2f2a7d47 214 if (ixoriy==1)ix=(ix&0xff)|(t<<8);
gertk 0:806c2f2a7d47 215 else iy=(iy&0xff)|(t<<8);
gertk 0:806c2f2a7d47 216 }
gertk 0:806c2f2a7d47 217 endinstr;
gertk 0:806c2f2a7d47 218 // ld H,n
gertk 0:806c2f2a7d47 219 instr(0x26,7);
gertk 0:806c2f2a7d47 220 setxh(fetch(pc));
gertk 0:806c2f2a7d47 221 pc++;
gertk 0:806c2f2a7d47 222 endinstr;
gertk 0:806c2f2a7d47 223 // daa
gertk 0:806c2f2a7d47 224 instr(0x27,4);
gertk 0:806c2f2a7d47 225 {
gertk 0:806c2f2a7d47 226 unsigned char incr=0, carry=cy;
gertk 0:806c2f2a7d47 227 if ((f&0x10) || (a&0x0f)>9) incr=6;
gertk 0:806c2f2a7d47 228 if ((f&1) || (a>>4)>9) incr|=0x60;
gertk 0:806c2f2a7d47 229 if (f&2) suba(incr,0);
gertk 0:806c2f2a7d47 230
gertk 0:806c2f2a7d47 231 else {
gertk 0:806c2f2a7d47 232 if (a>0x90 && (a&15)>9)incr|=0x60;
gertk 0:806c2f2a7d47 233 adda(incr,0);
gertk 0:806c2f2a7d47 234 }
gertk 0:806c2f2a7d47 235 f=((f|carry)&0xfb)|parity(a);
gertk 0:806c2f2a7d47 236 }
gertk 0:806c2f2a7d47 237 endinstr;
gertk 0:806c2f2a7d47 238 // jr Z
gertk 0:806c2f2a7d47 239 instr(0x28,7);
gertk 0:806c2f2a7d47 240 if (f&0x40)jr;
gertk 0:806c2f2a7d47 241 else pc++;
gertk 0:806c2f2a7d47 242 endinstr;
gertk 0:806c2f2a7d47 243 // add HL,HL
gertk 0:806c2f2a7d47 244 instr(0x29,11);
gertk 0:806c2f2a7d47 245 if (!ixoriy)addhl(h,l);
gertk 0:806c2f2a7d47 246 else if (ixoriy==1)addhl((ix>>8),(ix&0xff));
gertk 0:806c2f2a7d47 247 else addhl((iy>>8),(iy&0xff));
gertk 0:806c2f2a7d47 248 endinstr;
gertk 0:806c2f2a7d47 249 // ld HL,(nn)
gertk 0:806c2f2a7d47 250 instr(0x2a,16);
gertk 0:806c2f2a7d47 251 {
gertk 0:806c2f2a7d47 252 unsigned short addr=fetch2(pc);
gertk 0:806c2f2a7d47 253 pc+=2;
gertk 0:806c2f2a7d47 254 if (!ixoriy) {
gertk 0:806c2f2a7d47 255 l=fetch(addr);
gertk 0:806c2f2a7d47 256 h=fetch(addr+1);
gertk 0:806c2f2a7d47 257 } else if (ixoriy==1)ix=fetch2(addr);
gertk 0:806c2f2a7d47 258 else iy=fetch2(addr);
gertk 0:806c2f2a7d47 259 }
gertk 0:806c2f2a7d47 260 endinstr;
gertk 0:806c2f2a7d47 261 // dec HL
gertk 0:806c2f2a7d47 262 instr(0x2b,6);
gertk 0:806c2f2a7d47 263 if (!ixoriy) {
gertk 0:806c2f2a7d47 264 if (!l--)h--;
gertk 0:806c2f2a7d47 265 } else if (ixoriy==1)ix--;
gertk 0:806c2f2a7d47 266 else iy--;
gertk 0:806c2f2a7d47 267 endinstr;
gertk 0:806c2f2a7d47 268 // inc L
gertk 0:806c2f2a7d47 269 instr(0x2c,4);
gertk 0:806c2f2a7d47 270 if (!ixoriy)inc(l);
gertk 0:806c2f2a7d47 271 else {
gertk 0:806c2f2a7d47 272 unsigned char t;
gertk 0:806c2f2a7d47 273 t=(ixoriy==1?ix:iy);
gertk 0:806c2f2a7d47 274 inc(t);
gertk 0:806c2f2a7d47 275 if (ixoriy==1)ix=(ix&0xff00)|t;
gertk 0:806c2f2a7d47 276 else iy=(iy&0xff00)|t;
gertk 0:806c2f2a7d47 277 }
gertk 0:806c2f2a7d47 278 endinstr;
gertk 0:806c2f2a7d47 279 // dec L
gertk 0:806c2f2a7d47 280 instr(0x2d,4);
gertk 0:806c2f2a7d47 281 if (!ixoriy)dec(l);
gertk 0:806c2f2a7d47 282 else {
gertk 0:806c2f2a7d47 283 unsigned char t;
gertk 0:806c2f2a7d47 284 t=(ixoriy==1?ix:iy);
gertk 0:806c2f2a7d47 285 dec(t);
gertk 0:806c2f2a7d47 286 if (ixoriy==1)ix=(ix&0xff00)|t;
gertk 0:806c2f2a7d47 287 else iy=(iy&0xff00)|t;
gertk 0:806c2f2a7d47 288 }
gertk 0:806c2f2a7d47 289 endinstr;
gertk 0:806c2f2a7d47 290 // ld L,n
gertk 0:806c2f2a7d47 291 instr(0x2e,4);
gertk 0:806c2f2a7d47 292 setxl(fetch(pc));
gertk 0:806c2f2a7d47 293 pc++;
gertk 0:806c2f2a7d47 294 endinstr;
gertk 0:806c2f2a7d47 295 // cpl
gertk 0:806c2f2a7d47 296 instr(0x2f,4);
gertk 0:806c2f2a7d47 297 a=~a;
gertk 0:806c2f2a7d47 298 f=(f&0xc5)|(a&0x28)|0x12;
gertk 0:806c2f2a7d47 299 endinstr;
gertk 0:806c2f2a7d47 300 // jr NC
gertk 0:806c2f2a7d47 301 instr(0x30,7);
gertk 0:806c2f2a7d47 302 if (f&1)pc++;
gertk 0:806c2f2a7d47 303 else jr;
gertk 0:806c2f2a7d47 304 endinstr;
gertk 0:806c2f2a7d47 305 // ld SP,nn
gertk 0:806c2f2a7d47 306 instr(0x31,10);
gertk 0:806c2f2a7d47 307 sp=fetch2(pc);
gertk 0:806c2f2a7d47 308 pc+=2;
gertk 0:806c2f2a7d47 309 endinstr;
gertk 0:806c2f2a7d47 310 // ld (nn),A
gertk 0:806c2f2a7d47 311 instr(0x32,13);
gertk 0:806c2f2a7d47 312 {
gertk 0:806c2f2a7d47 313 unsigned short addr=fetch2(pc);
gertk 0:806c2f2a7d47 314 pc+=2;
gertk 0:806c2f2a7d47 315 store(addr,a);
gertk 0:806c2f2a7d47 316 }
gertk 0:806c2f2a7d47 317 endinstr;
gertk 0:806c2f2a7d47 318 // inc SP
gertk 0:806c2f2a7d47 319 instr(0x33,6);
gertk 0:806c2f2a7d47 320 sp++;
gertk 0:806c2f2a7d47 321 endinstr;
gertk 0:806c2f2a7d47 322 // inc (HL)
gertk 0:806c2f2a7d47 323 HLinstr(0x34);
gertk 0:806c2f2a7d47 324 {
gertk 0:806c2f2a7d47 325 unsigned char t=fetch(addr);
gertk 0:806c2f2a7d47 326 inc(t);
gertk 0:806c2f2a7d47 327 store(addr,t);
gertk 0:806c2f2a7d47 328 }
gertk 0:806c2f2a7d47 329 endinstr;
gertk 0:806c2f2a7d47 330 // dec (HL)
gertk 0:806c2f2a7d47 331 HLinstr(0x35);
gertk 0:806c2f2a7d47 332 {
gertk 0:806c2f2a7d47 333 unsigned char t=fetch(addr);
gertk 0:806c2f2a7d47 334 dec(t);
gertk 0:806c2f2a7d47 335 store(addr,t);
gertk 0:806c2f2a7d47 336 }
gertk 0:806c2f2a7d47 337 endinstr;
gertk 0:806c2f2a7d47 338 // ld (HL),n
gertk 0:806c2f2a7d47 339 HLinstr(0x36);
gertk 0:806c2f2a7d47 340 store(addr,fetch(pc));
gertk 0:806c2f2a7d47 341 pc++;
gertk 0:806c2f2a7d47 342 endinstr;
gertk 0:806c2f2a7d47 343 // scf
gertk 0:806c2f2a7d47 344 instr(0x37,4);
gertk 0:806c2f2a7d47 345 f=(f&0xc4)|1|(a&0x28);
gertk 0:806c2f2a7d47 346 endinstr;
gertk 0:806c2f2a7d47 347 // jr C
gertk 0:806c2f2a7d47 348 instr(0x38,7);
gertk 0:806c2f2a7d47 349 if (f&1)jr;
gertk 0:806c2f2a7d47 350 else pc++;
gertk 0:806c2f2a7d47 351 endinstr;
gertk 0:806c2f2a7d47 352 // add HL,SP
gertk 0:806c2f2a7d47 353 instr(0x39,11);
gertk 0:806c2f2a7d47 354 addhl((sp>>8),(sp&0xff));
gertk 0:806c2f2a7d47 355 endinstr;
gertk 0:806c2f2a7d47 356 // ld A,(nn)
gertk 0:806c2f2a7d47 357 instr(0x3a,13);
gertk 0:806c2f2a7d47 358 {
gertk 0:806c2f2a7d47 359 unsigned short addr=fetch2(pc);
gertk 0:806c2f2a7d47 360 pc+=2;
gertk 0:806c2f2a7d47 361 a=fetch(addr);
gertk 0:806c2f2a7d47 362 }
gertk 0:806c2f2a7d47 363 endinstr;
gertk 0:806c2f2a7d47 364 // dec SP
gertk 0:806c2f2a7d47 365 instr(0x3b,6);
gertk 0:806c2f2a7d47 366 sp--;
gertk 0:806c2f2a7d47 367 endinstr;
gertk 0:806c2f2a7d47 368 // inc A
gertk 0:806c2f2a7d47 369 instr(0x3c,4);
gertk 0:806c2f2a7d47 370 inc(a);
gertk 0:806c2f2a7d47 371 endinstr;
gertk 0:806c2f2a7d47 372 // dec A
gertk 0:806c2f2a7d47 373 instr(0x3d,4);
gertk 0:806c2f2a7d47 374 dec(a);
gertk 0:806c2f2a7d47 375 endinstr;
gertk 0:806c2f2a7d47 376 // ld A,n
gertk 0:806c2f2a7d47 377 instr(0x3e,4);
gertk 0:806c2f2a7d47 378 a=fetch(pc),pc++;
gertk 0:806c2f2a7d47 379 endinstr;
gertk 0:806c2f2a7d47 380 // ccf
gertk 0:806c2f2a7d47 381 instr(0x3f,4);
gertk 0:806c2f2a7d47 382 f=(f&0xc4)|(cy^1)|(cy<<4)|(a&0x28);
gertk 0:806c2f2a7d47 383 endinstr;
gertk 0:806c2f2a7d47 384 // ld B,B
gertk 0:806c2f2a7d47 385 instr(0x40,4);
gertk 0:806c2f2a7d47 386 /* ld b,b */
gertk 0:806c2f2a7d47 387 endinstr;
gertk 0:806c2f2a7d47 388
gertk 0:806c2f2a7d47 389 instr(0x41,4);
gertk 0:806c2f2a7d47 390 b=c;
gertk 0:806c2f2a7d47 391 endinstr;
gertk 0:806c2f2a7d47 392
gertk 0:806c2f2a7d47 393 instr(0x42,4);
gertk 0:806c2f2a7d47 394 b=d;
gertk 0:806c2f2a7d47 395 endinstr;
gertk 0:806c2f2a7d47 396
gertk 0:806c2f2a7d47 397 instr(0x43,4);
gertk 0:806c2f2a7d47 398 b=e;
gertk 0:806c2f2a7d47 399 endinstr;
gertk 0:806c2f2a7d47 400
gertk 0:806c2f2a7d47 401 instr(0x44,4);
gertk 0:806c2f2a7d47 402 b=xh;
gertk 0:806c2f2a7d47 403 endinstr;
gertk 0:806c2f2a7d47 404
gertk 0:806c2f2a7d47 405 instr(0x45,4);
gertk 0:806c2f2a7d47 406 b=xl;
gertk 0:806c2f2a7d47 407 endinstr;
gertk 0:806c2f2a7d47 408
gertk 0:806c2f2a7d47 409 HLinstr(0x46);
gertk 0:806c2f2a7d47 410 b=fetch(addr);
gertk 0:806c2f2a7d47 411 endinstr;
gertk 0:806c2f2a7d47 412
gertk 0:806c2f2a7d47 413 instr(0x47,4);
gertk 0:806c2f2a7d47 414 b=a;
gertk 0:806c2f2a7d47 415 endinstr;
gertk 0:806c2f2a7d47 416
gertk 0:806c2f2a7d47 417 instr(0x48,4);
gertk 0:806c2f2a7d47 418 c=b;
gertk 0:806c2f2a7d47 419 endinstr;
gertk 0:806c2f2a7d47 420
gertk 0:806c2f2a7d47 421 instr(0x49,4);
gertk 0:806c2f2a7d47 422 /* ld c,c */
gertk 0:806c2f2a7d47 423 endinstr;
gertk 0:806c2f2a7d47 424
gertk 0:806c2f2a7d47 425 instr(0x4a,4);
gertk 0:806c2f2a7d47 426 c=d;
gertk 0:806c2f2a7d47 427 endinstr;
gertk 0:806c2f2a7d47 428
gertk 0:806c2f2a7d47 429 instr(0x4b,4);
gertk 0:806c2f2a7d47 430 c=e;
gertk 0:806c2f2a7d47 431 endinstr;
gertk 0:806c2f2a7d47 432
gertk 0:806c2f2a7d47 433 instr(0x4c,4);
gertk 0:806c2f2a7d47 434 c=xh;
gertk 0:806c2f2a7d47 435 endinstr;
gertk 0:806c2f2a7d47 436
gertk 0:806c2f2a7d47 437 instr(0x4d,4);
gertk 0:806c2f2a7d47 438 c=xl;
gertk 0:806c2f2a7d47 439 endinstr;
gertk 0:806c2f2a7d47 440
gertk 0:806c2f2a7d47 441 HLinstr(0x4e);
gertk 0:806c2f2a7d47 442 c=fetch(addr);
gertk 0:806c2f2a7d47 443 endinstr;
gertk 0:806c2f2a7d47 444
gertk 0:806c2f2a7d47 445 instr(0x4f,4);
gertk 0:806c2f2a7d47 446 c=a;
gertk 0:806c2f2a7d47 447 endinstr;
gertk 0:806c2f2a7d47 448
gertk 0:806c2f2a7d47 449 instr(0x50,4);
gertk 0:806c2f2a7d47 450 d=b;
gertk 0:806c2f2a7d47 451 endinstr;
gertk 0:806c2f2a7d47 452
gertk 0:806c2f2a7d47 453 instr(0x51,4);
gertk 0:806c2f2a7d47 454 d=c;
gertk 0:806c2f2a7d47 455 endinstr;
gertk 0:806c2f2a7d47 456
gertk 0:806c2f2a7d47 457 instr(0x52,4);
gertk 0:806c2f2a7d47 458 /* ld d,d */
gertk 0:806c2f2a7d47 459 endinstr;
gertk 0:806c2f2a7d47 460
gertk 0:806c2f2a7d47 461 instr(0x53,4);
gertk 0:806c2f2a7d47 462 d=e;
gertk 0:806c2f2a7d47 463 endinstr;
gertk 0:806c2f2a7d47 464
gertk 0:806c2f2a7d47 465 instr(0x54,4);
gertk 0:806c2f2a7d47 466 d=xh;
gertk 0:806c2f2a7d47 467 endinstr;
gertk 0:806c2f2a7d47 468
gertk 0:806c2f2a7d47 469 instr(0x55,4);
gertk 0:806c2f2a7d47 470 d=xl;
gertk 0:806c2f2a7d47 471 endinstr;
gertk 0:806c2f2a7d47 472
gertk 0:806c2f2a7d47 473 HLinstr(0x56);
gertk 0:806c2f2a7d47 474 d=fetch(addr);
gertk 0:806c2f2a7d47 475 endinstr;
gertk 0:806c2f2a7d47 476
gertk 0:806c2f2a7d47 477 instr(0x57,4);
gertk 0:806c2f2a7d47 478 d=a;
gertk 0:806c2f2a7d47 479 endinstr;
gertk 0:806c2f2a7d47 480
gertk 0:806c2f2a7d47 481 instr(0x58,4);
gertk 0:806c2f2a7d47 482 e=b;
gertk 0:806c2f2a7d47 483 endinstr;
gertk 0:806c2f2a7d47 484
gertk 0:806c2f2a7d47 485 instr(0x59,4);
gertk 0:806c2f2a7d47 486 e=c;
gertk 0:806c2f2a7d47 487 endinstr;
gertk 0:806c2f2a7d47 488
gertk 0:806c2f2a7d47 489 instr(0x5a,4);
gertk 0:806c2f2a7d47 490 e=d;
gertk 0:806c2f2a7d47 491 endinstr;
gertk 0:806c2f2a7d47 492
gertk 0:806c2f2a7d47 493 instr(0x5b,4);
gertk 0:806c2f2a7d47 494 /* ld e,e */
gertk 0:806c2f2a7d47 495 endinstr;
gertk 0:806c2f2a7d47 496
gertk 0:806c2f2a7d47 497 instr(0x5c,4);
gertk 0:806c2f2a7d47 498 e=xh;
gertk 0:806c2f2a7d47 499 endinstr;
gertk 0:806c2f2a7d47 500
gertk 0:806c2f2a7d47 501 instr(0x5d,4);
gertk 0:806c2f2a7d47 502 e=xl;
gertk 0:806c2f2a7d47 503 endinstr;
gertk 0:806c2f2a7d47 504
gertk 0:806c2f2a7d47 505 HLinstr(0x5e);
gertk 0:806c2f2a7d47 506 e=fetch(addr);
gertk 0:806c2f2a7d47 507 endinstr;
gertk 0:806c2f2a7d47 508
gertk 0:806c2f2a7d47 509 instr(0x5f,4);
gertk 0:806c2f2a7d47 510 e=a;
gertk 0:806c2f2a7d47 511 endinstr;
gertk 0:806c2f2a7d47 512
gertk 0:806c2f2a7d47 513 instr(0x60,4);
gertk 0:806c2f2a7d47 514 setxh(b);
gertk 0:806c2f2a7d47 515 endinstr;
gertk 0:806c2f2a7d47 516
gertk 0:806c2f2a7d47 517 instr(0x61,4);
gertk 0:806c2f2a7d47 518 setxh(c);
gertk 0:806c2f2a7d47 519 endinstr;
gertk 0:806c2f2a7d47 520
gertk 0:806c2f2a7d47 521 instr(0x62,4);
gertk 0:806c2f2a7d47 522 setxh(d);
gertk 0:806c2f2a7d47 523 endinstr;
gertk 0:806c2f2a7d47 524
gertk 0:806c2f2a7d47 525 instr(0x63,4);
gertk 0:806c2f2a7d47 526 setxh(e);
gertk 0:806c2f2a7d47 527 endinstr;
gertk 0:806c2f2a7d47 528
gertk 0:806c2f2a7d47 529 instr(0x64,4);
gertk 0:806c2f2a7d47 530 /* ld h,h */
gertk 0:806c2f2a7d47 531 endinstr;
gertk 0:806c2f2a7d47 532
gertk 0:806c2f2a7d47 533 instr(0x65,4);
gertk 0:806c2f2a7d47 534 setxh(xl);
gertk 0:806c2f2a7d47 535 endinstr;
gertk 0:806c2f2a7d47 536
gertk 0:806c2f2a7d47 537 HLinstr(0x66);
gertk 0:806c2f2a7d47 538 h=fetch(addr);
gertk 0:806c2f2a7d47 539 endinstr;
gertk 0:806c2f2a7d47 540
gertk 0:806c2f2a7d47 541 instr(0x67,4);
gertk 0:806c2f2a7d47 542 setxh(a);
gertk 0:806c2f2a7d47 543 endinstr;
gertk 0:806c2f2a7d47 544
gertk 0:806c2f2a7d47 545 instr(0x68,4);
gertk 0:806c2f2a7d47 546 setxl(b);
gertk 0:806c2f2a7d47 547 endinstr;
gertk 0:806c2f2a7d47 548
gertk 0:806c2f2a7d47 549 instr(0x69,4);
gertk 0:806c2f2a7d47 550 setxl(c);
gertk 0:806c2f2a7d47 551 endinstr;
gertk 0:806c2f2a7d47 552
gertk 0:806c2f2a7d47 553 instr(0x6a,4);
gertk 0:806c2f2a7d47 554 setxl(d);
gertk 0:806c2f2a7d47 555 endinstr;
gertk 0:806c2f2a7d47 556
gertk 0:806c2f2a7d47 557 instr(0x6b,4);
gertk 0:806c2f2a7d47 558 setxl(e);
gertk 0:806c2f2a7d47 559 endinstr;
gertk 0:806c2f2a7d47 560
gertk 0:806c2f2a7d47 561 instr(0x6c,4);
gertk 0:806c2f2a7d47 562 setxl(xh);
gertk 0:806c2f2a7d47 563 endinstr;
gertk 0:806c2f2a7d47 564
gertk 0:806c2f2a7d47 565 instr(0x6d,4);
gertk 0:806c2f2a7d47 566 /* ld l,l */
gertk 0:806c2f2a7d47 567 endinstr;
gertk 0:806c2f2a7d47 568
gertk 0:806c2f2a7d47 569 HLinstr(0x6e);
gertk 0:806c2f2a7d47 570 l=fetch(addr);
gertk 0:806c2f2a7d47 571 endinstr;
gertk 0:806c2f2a7d47 572
gertk 0:806c2f2a7d47 573 instr(0x6f,4);
gertk 0:806c2f2a7d47 574 setxl(a);
gertk 0:806c2f2a7d47 575 endinstr;
gertk 0:806c2f2a7d47 576
gertk 0:806c2f2a7d47 577 HLinstr(0x70);
gertk 0:806c2f2a7d47 578 store(addr,b);
gertk 0:806c2f2a7d47 579 endinstr;
gertk 0:806c2f2a7d47 580
gertk 0:806c2f2a7d47 581 HLinstr(0x71);
gertk 0:806c2f2a7d47 582 store(addr,c);
gertk 0:806c2f2a7d47 583 endinstr;
gertk 0:806c2f2a7d47 584
gertk 0:806c2f2a7d47 585 HLinstr(0x72);
gertk 0:806c2f2a7d47 586 store(addr,d);
gertk 0:806c2f2a7d47 587 endinstr;
gertk 0:806c2f2a7d47 588
gertk 0:806c2f2a7d47 589 HLinstr(0x73);
gertk 0:806c2f2a7d47 590 store(addr,e);
gertk 0:806c2f2a7d47 591 endinstr;
gertk 0:806c2f2a7d47 592
gertk 0:806c2f2a7d47 593 HLinstr(0x74);
gertk 0:806c2f2a7d47 594 store(addr,h);
gertk 0:806c2f2a7d47 595 endinstr;
gertk 0:806c2f2a7d47 596
gertk 0:806c2f2a7d47 597 HLinstr(0x75);
gertk 0:806c2f2a7d47 598 store(addr,l);
gertk 0:806c2f2a7d47 599 endinstr;
gertk 0:806c2f2a7d47 600
gertk 0:806c2f2a7d47 601 // HALT
gertk 0:806c2f2a7d47 602 instr(0x76,4);
gertk 0:806c2f2a7d47 603 pc--; /* keep nopping until int */
gertk 0:806c2f2a7d47 604 endinstr;
gertk 0:806c2f2a7d47 605
gertk 0:806c2f2a7d47 606 HLinstr(0x77);
gertk 0:806c2f2a7d47 607 store(addr,a);
gertk 0:806c2f2a7d47 608 endinstr;
gertk 0:806c2f2a7d47 609
gertk 0:806c2f2a7d47 610 instr(0x78,4);
gertk 0:806c2f2a7d47 611 a=b;
gertk 0:806c2f2a7d47 612 endinstr;
gertk 0:806c2f2a7d47 613
gertk 0:806c2f2a7d47 614 instr(0x79,4);
gertk 0:806c2f2a7d47 615 a=c;
gertk 0:806c2f2a7d47 616 endinstr;
gertk 0:806c2f2a7d47 617
gertk 0:806c2f2a7d47 618 instr(0x7a,4);
gertk 0:806c2f2a7d47 619 a=d;
gertk 0:806c2f2a7d47 620 endinstr;
gertk 0:806c2f2a7d47 621
gertk 0:806c2f2a7d47 622 instr(0x7b,4);
gertk 0:806c2f2a7d47 623 a=e;
gertk 0:806c2f2a7d47 624 endinstr;
gertk 0:806c2f2a7d47 625
gertk 0:806c2f2a7d47 626 instr(0x7c,4);
gertk 0:806c2f2a7d47 627 a=xh;
gertk 0:806c2f2a7d47 628 endinstr;
gertk 0:806c2f2a7d47 629
gertk 0:806c2f2a7d47 630 instr(0x7d,4);
gertk 0:806c2f2a7d47 631 a=xl;
gertk 0:806c2f2a7d47 632 endinstr;
gertk 0:806c2f2a7d47 633
gertk 0:806c2f2a7d47 634 HLinstr(0x7e);
gertk 0:806c2f2a7d47 635 a=fetch(addr);
gertk 0:806c2f2a7d47 636 endinstr;
gertk 0:806c2f2a7d47 637
gertk 0:806c2f2a7d47 638 instr(0x7f,4);
gertk 0:806c2f2a7d47 639 /* ld a,a */
gertk 0:806c2f2a7d47 640 endinstr;
gertk 0:806c2f2a7d47 641
gertk 0:806c2f2a7d47 642 instr(0x80,4);
gertk 0:806c2f2a7d47 643 adda(b,0);
gertk 0:806c2f2a7d47 644 endinstr;
gertk 0:806c2f2a7d47 645
gertk 0:806c2f2a7d47 646 instr(0x81,4);
gertk 0:806c2f2a7d47 647 adda(c,0);
gertk 0:806c2f2a7d47 648 endinstr;
gertk 0:806c2f2a7d47 649
gertk 0:806c2f2a7d47 650 instr(0x82,4);
gertk 0:806c2f2a7d47 651 adda(d,0);
gertk 0:806c2f2a7d47 652 endinstr;
gertk 0:806c2f2a7d47 653
gertk 0:806c2f2a7d47 654 instr(0x83,4);
gertk 0:806c2f2a7d47 655 adda(e,0);
gertk 0:806c2f2a7d47 656 endinstr;
gertk 0:806c2f2a7d47 657
gertk 0:806c2f2a7d47 658 instr(0x84,4);
gertk 0:806c2f2a7d47 659 adda(xh,0);
gertk 0:806c2f2a7d47 660 endinstr;
gertk 0:806c2f2a7d47 661
gertk 0:806c2f2a7d47 662 instr(0x85,4);
gertk 0:806c2f2a7d47 663 adda(xl,0);
gertk 0:806c2f2a7d47 664 endinstr;
gertk 0:806c2f2a7d47 665
gertk 0:806c2f2a7d47 666 HLinstr(0x86);
gertk 0:806c2f2a7d47 667 adda(fetch(addr),0);
gertk 0:806c2f2a7d47 668 endinstr;
gertk 0:806c2f2a7d47 669
gertk 0:806c2f2a7d47 670 instr(0x87,4);
gertk 0:806c2f2a7d47 671 adda(a,0);
gertk 0:806c2f2a7d47 672 endinstr;
gertk 0:806c2f2a7d47 673
gertk 0:806c2f2a7d47 674 instr(0x88,4);
gertk 0:806c2f2a7d47 675 adda(b,cy);
gertk 0:806c2f2a7d47 676 endinstr;
gertk 0:806c2f2a7d47 677
gertk 0:806c2f2a7d47 678 instr(0x89,4);
gertk 0:806c2f2a7d47 679 adda(c,cy);
gertk 0:806c2f2a7d47 680 endinstr;
gertk 0:806c2f2a7d47 681
gertk 0:806c2f2a7d47 682 instr(0x8a,4);
gertk 0:806c2f2a7d47 683 adda(d,cy);
gertk 0:806c2f2a7d47 684 endinstr;
gertk 0:806c2f2a7d47 685
gertk 0:806c2f2a7d47 686 instr(0x8b,4);
gertk 0:806c2f2a7d47 687 adda(e,cy);
gertk 0:806c2f2a7d47 688 endinstr;
gertk 0:806c2f2a7d47 689
gertk 0:806c2f2a7d47 690 instr(0x8c,4);
gertk 0:806c2f2a7d47 691 adda(xh,cy);
gertk 0:806c2f2a7d47 692 endinstr;
gertk 0:806c2f2a7d47 693
gertk 0:806c2f2a7d47 694 instr(0x8d,4);
gertk 0:806c2f2a7d47 695 adda(xl,cy);
gertk 0:806c2f2a7d47 696 endinstr;
gertk 0:806c2f2a7d47 697
gertk 0:806c2f2a7d47 698 HLinstr(0x8e);
gertk 0:806c2f2a7d47 699 adda(fetch(addr),cy);
gertk 0:806c2f2a7d47 700 endinstr;
gertk 0:806c2f2a7d47 701
gertk 0:806c2f2a7d47 702 instr(0x8f,4);
gertk 0:806c2f2a7d47 703 adda(a,cy);
gertk 0:806c2f2a7d47 704 endinstr;
gertk 0:806c2f2a7d47 705
gertk 0:806c2f2a7d47 706 instr(0x90,4);
gertk 0:806c2f2a7d47 707 suba(b,0);
gertk 0:806c2f2a7d47 708 endinstr;
gertk 0:806c2f2a7d47 709
gertk 0:806c2f2a7d47 710 instr(0x91,4);
gertk 0:806c2f2a7d47 711 suba(c,0);
gertk 0:806c2f2a7d47 712 endinstr;
gertk 0:806c2f2a7d47 713
gertk 0:806c2f2a7d47 714 instr(0x92,4);
gertk 0:806c2f2a7d47 715 suba(d,0);
gertk 0:806c2f2a7d47 716 endinstr;
gertk 0:806c2f2a7d47 717
gertk 0:806c2f2a7d47 718 instr(0x93,4);
gertk 0:806c2f2a7d47 719 suba(e,0);
gertk 0:806c2f2a7d47 720 endinstr;
gertk 0:806c2f2a7d47 721
gertk 0:806c2f2a7d47 722 instr(0x94,4);
gertk 0:806c2f2a7d47 723 suba(xh,0);
gertk 0:806c2f2a7d47 724 endinstr;
gertk 0:806c2f2a7d47 725
gertk 0:806c2f2a7d47 726 instr(0x95,4);
gertk 0:806c2f2a7d47 727 suba(xl,0);
gertk 0:806c2f2a7d47 728 endinstr;
gertk 0:806c2f2a7d47 729
gertk 0:806c2f2a7d47 730 HLinstr(0x96);
gertk 0:806c2f2a7d47 731 suba(fetch(addr),0);
gertk 0:806c2f2a7d47 732 endinstr;
gertk 0:806c2f2a7d47 733
gertk 0:806c2f2a7d47 734 instr(0x97,4);
gertk 0:806c2f2a7d47 735 suba(a,0);
gertk 0:806c2f2a7d47 736 endinstr;
gertk 0:806c2f2a7d47 737
gertk 0:806c2f2a7d47 738 instr(0x98,4);
gertk 0:806c2f2a7d47 739 suba(b,cy);
gertk 0:806c2f2a7d47 740 endinstr;
gertk 0:806c2f2a7d47 741
gertk 0:806c2f2a7d47 742 instr(0x99,4);
gertk 0:806c2f2a7d47 743 suba(c,cy);
gertk 0:806c2f2a7d47 744 endinstr;
gertk 0:806c2f2a7d47 745
gertk 0:806c2f2a7d47 746 instr(0x9a,4);
gertk 0:806c2f2a7d47 747 suba(d,cy);
gertk 0:806c2f2a7d47 748 endinstr;
gertk 0:806c2f2a7d47 749
gertk 0:806c2f2a7d47 750 instr(0x9b,4);
gertk 0:806c2f2a7d47 751 suba(e,cy);
gertk 0:806c2f2a7d47 752 endinstr;
gertk 0:806c2f2a7d47 753
gertk 0:806c2f2a7d47 754 instr(0x9c,4);
gertk 0:806c2f2a7d47 755 suba(xh,cy);
gertk 0:806c2f2a7d47 756 endinstr;
gertk 0:806c2f2a7d47 757
gertk 0:806c2f2a7d47 758 instr(0x9d,4);
gertk 0:806c2f2a7d47 759 suba(xl,cy);
gertk 0:806c2f2a7d47 760 endinstr;
gertk 0:806c2f2a7d47 761
gertk 0:806c2f2a7d47 762 HLinstr(0x9e);
gertk 0:806c2f2a7d47 763 suba(fetch(addr),cy);
gertk 0:806c2f2a7d47 764 endinstr;
gertk 0:806c2f2a7d47 765
gertk 0:806c2f2a7d47 766 instr(0x9f,4);
gertk 0:806c2f2a7d47 767 suba(a,cy);
gertk 0:806c2f2a7d47 768 endinstr;
gertk 0:806c2f2a7d47 769
gertk 0:806c2f2a7d47 770 instr(0xa0,4);
gertk 0:806c2f2a7d47 771 anda(b);
gertk 0:806c2f2a7d47 772 endinstr;
gertk 0:806c2f2a7d47 773
gertk 0:806c2f2a7d47 774 instr(0xa1,4);
gertk 0:806c2f2a7d47 775 anda(c);
gertk 0:806c2f2a7d47 776 endinstr;
gertk 0:806c2f2a7d47 777
gertk 0:806c2f2a7d47 778 instr(0xa2,4);
gertk 0:806c2f2a7d47 779 anda(d);
gertk 0:806c2f2a7d47 780 endinstr;
gertk 0:806c2f2a7d47 781
gertk 0:806c2f2a7d47 782 instr(0xa3,4);
gertk 0:806c2f2a7d47 783 anda(e);
gertk 0:806c2f2a7d47 784 endinstr;
gertk 0:806c2f2a7d47 785
gertk 0:806c2f2a7d47 786 instr(0xa4,4);
gertk 0:806c2f2a7d47 787 anda(xh);
gertk 0:806c2f2a7d47 788 endinstr;
gertk 0:806c2f2a7d47 789
gertk 0:806c2f2a7d47 790 instr(0xa5,4);
gertk 0:806c2f2a7d47 791 anda(xl);
gertk 0:806c2f2a7d47 792 endinstr;
gertk 0:806c2f2a7d47 793
gertk 0:806c2f2a7d47 794 HLinstr(0xa6);
gertk 0:806c2f2a7d47 795 anda(fetch(addr));
gertk 0:806c2f2a7d47 796 endinstr;
gertk 0:806c2f2a7d47 797
gertk 0:806c2f2a7d47 798 instr(0xa7,4);
gertk 0:806c2f2a7d47 799 anda(a);
gertk 0:806c2f2a7d47 800 endinstr;
gertk 0:806c2f2a7d47 801
gertk 0:806c2f2a7d47 802 instr(0xa8,4);
gertk 0:806c2f2a7d47 803 xora(b);
gertk 0:806c2f2a7d47 804 endinstr;
gertk 0:806c2f2a7d47 805
gertk 0:806c2f2a7d47 806 instr(0xa9,4);
gertk 0:806c2f2a7d47 807 xora(c);
gertk 0:806c2f2a7d47 808 endinstr;
gertk 0:806c2f2a7d47 809
gertk 0:806c2f2a7d47 810 instr(0xaa,4);
gertk 0:806c2f2a7d47 811 xora(d);
gertk 0:806c2f2a7d47 812 endinstr;
gertk 0:806c2f2a7d47 813
gertk 0:806c2f2a7d47 814 instr(0xab,4);
gertk 0:806c2f2a7d47 815 xora(e);
gertk 0:806c2f2a7d47 816 endinstr;
gertk 0:806c2f2a7d47 817
gertk 0:806c2f2a7d47 818 instr(0xac,4);
gertk 0:806c2f2a7d47 819 xora(xh);
gertk 0:806c2f2a7d47 820 endinstr;
gertk 0:806c2f2a7d47 821
gertk 0:806c2f2a7d47 822 instr(0xad,4);
gertk 0:806c2f2a7d47 823 xora(xl);
gertk 0:806c2f2a7d47 824 endinstr;
gertk 0:806c2f2a7d47 825
gertk 0:806c2f2a7d47 826 HLinstr(0xae);
gertk 0:806c2f2a7d47 827 xora(fetch(addr));
gertk 0:806c2f2a7d47 828 endinstr;
gertk 0:806c2f2a7d47 829
gertk 0:806c2f2a7d47 830 instr(0xaf,4);
gertk 0:806c2f2a7d47 831 xora(a);
gertk 0:806c2f2a7d47 832 endinstr;
gertk 0:806c2f2a7d47 833
gertk 0:806c2f2a7d47 834 instr(0xb0,4);
gertk 0:806c2f2a7d47 835 ora(b);
gertk 0:806c2f2a7d47 836 endinstr;
gertk 0:806c2f2a7d47 837
gertk 0:806c2f2a7d47 838 instr(0xb1,4);
gertk 0:806c2f2a7d47 839 ora(c);
gertk 0:806c2f2a7d47 840 endinstr;
gertk 0:806c2f2a7d47 841
gertk 0:806c2f2a7d47 842 instr(0xb2,4);
gertk 0:806c2f2a7d47 843 ora(d);
gertk 0:806c2f2a7d47 844 endinstr;
gertk 0:806c2f2a7d47 845
gertk 0:806c2f2a7d47 846 instr(0xb3,4);
gertk 0:806c2f2a7d47 847 ora(e);
gertk 0:806c2f2a7d47 848 endinstr;
gertk 0:806c2f2a7d47 849
gertk 0:806c2f2a7d47 850 instr(0xb4,4);
gertk 0:806c2f2a7d47 851 ora(xh);
gertk 0:806c2f2a7d47 852 endinstr;
gertk 0:806c2f2a7d47 853
gertk 0:806c2f2a7d47 854 instr(0xb5,4);
gertk 0:806c2f2a7d47 855 ora(xl);
gertk 0:806c2f2a7d47 856 endinstr;
gertk 0:806c2f2a7d47 857
gertk 0:806c2f2a7d47 858 HLinstr(0xb6);
gertk 0:806c2f2a7d47 859 ora(fetch(addr));
gertk 0:806c2f2a7d47 860 endinstr;
gertk 0:806c2f2a7d47 861
gertk 0:806c2f2a7d47 862 instr(0xb7,4);
gertk 0:806c2f2a7d47 863 ora(a);
gertk 0:806c2f2a7d47 864 endinstr;
gertk 0:806c2f2a7d47 865
gertk 0:806c2f2a7d47 866 instr(0xb8,4);
gertk 0:806c2f2a7d47 867 cpa(b);
gertk 0:806c2f2a7d47 868 endinstr;
gertk 0:806c2f2a7d47 869
gertk 0:806c2f2a7d47 870 instr(0xb9,4);
gertk 0:806c2f2a7d47 871 cpa(c);
gertk 0:806c2f2a7d47 872 endinstr;
gertk 0:806c2f2a7d47 873
gertk 0:806c2f2a7d47 874 instr(0xba,4);
gertk 0:806c2f2a7d47 875 cpa(d);
gertk 0:806c2f2a7d47 876 endinstr;
gertk 0:806c2f2a7d47 877
gertk 0:806c2f2a7d47 878 instr(0xbb,4);
gertk 0:806c2f2a7d47 879 cpa(e);
gertk 0:806c2f2a7d47 880 endinstr;
gertk 0:806c2f2a7d47 881
gertk 0:806c2f2a7d47 882 instr(0xbc,4);
gertk 0:806c2f2a7d47 883 cpa(xh);
gertk 0:806c2f2a7d47 884 endinstr;
gertk 0:806c2f2a7d47 885
gertk 0:806c2f2a7d47 886 instr(0xbd,4);
gertk 0:806c2f2a7d47 887 cpa(xl);
gertk 0:806c2f2a7d47 888 endinstr;
gertk 0:806c2f2a7d47 889
gertk 0:806c2f2a7d47 890 HLinstr(0xbe);
gertk 0:806c2f2a7d47 891 cpa(fetch(addr));
gertk 0:806c2f2a7d47 892 endinstr;
gertk 0:806c2f2a7d47 893
gertk 0:806c2f2a7d47 894 instr(0xbf,4);
gertk 0:806c2f2a7d47 895 cpa(a);
gertk 0:806c2f2a7d47 896 endinstr;
gertk 0:806c2f2a7d47 897
gertk 0:806c2f2a7d47 898 instr(0xc0,5);
gertk 0:806c2f2a7d47 899 if (!(f&0x40))ret;
gertk 0:806c2f2a7d47 900 endinstr;
gertk 0:806c2f2a7d47 901
gertk 0:806c2f2a7d47 902 instr(0xc1,10);
gertk 0:806c2f2a7d47 903 pop1(b,c);
gertk 0:806c2f2a7d47 904 endinstr;
gertk 0:806c2f2a7d47 905
gertk 0:806c2f2a7d47 906 instr(0xc2,10);
gertk 0:806c2f2a7d47 907 if (!(f&0x40))jp;
gertk 0:806c2f2a7d47 908 else pc+=2;
gertk 0:806c2f2a7d47 909 endinstr;
gertk 0:806c2f2a7d47 910
gertk 0:806c2f2a7d47 911 instr(0xc3,10);
gertk 0:806c2f2a7d47 912 jp;
gertk 0:806c2f2a7d47 913 endinstr;
gertk 0:806c2f2a7d47 914
gertk 0:806c2f2a7d47 915 instr(0xc4,10);
gertk 0:806c2f2a7d47 916 if (!(f&0x40))call;
gertk 0:806c2f2a7d47 917 else pc+=2;
gertk 0:806c2f2a7d47 918 endinstr;
gertk 0:806c2f2a7d47 919
gertk 0:806c2f2a7d47 920 instr(0xc5,11);
gertk 0:806c2f2a7d47 921 push1(b,c);
gertk 0:806c2f2a7d47 922 endinstr;
gertk 0:806c2f2a7d47 923
gertk 0:806c2f2a7d47 924 instr(0xc6,7);
gertk 0:806c2f2a7d47 925 adda(fetch(pc),0);
gertk 0:806c2f2a7d47 926 pc++;
gertk 0:806c2f2a7d47 927 endinstr;
gertk 0:806c2f2a7d47 928
gertk 0:806c2f2a7d47 929 instr(0xc7,11);
gertk 0:806c2f2a7d47 930 push2(pc);
gertk 0:806c2f2a7d47 931 pc=0;
gertk 0:806c2f2a7d47 932 endinstr;
gertk 0:806c2f2a7d47 933
gertk 0:806c2f2a7d47 934 instr(0xc8,5);
gertk 0:806c2f2a7d47 935 if (f&0x40)ret;
gertk 0:806c2f2a7d47 936 endinstr;
gertk 0:806c2f2a7d47 937
gertk 0:806c2f2a7d47 938 instr(0xc9,4);
gertk 0:806c2f2a7d47 939 ret;
gertk 0:806c2f2a7d47 940 endinstr;
gertk 0:806c2f2a7d47 941
gertk 0:806c2f2a7d47 942 instr(0xca,10);
gertk 0:806c2f2a7d47 943 if (f&0x40)jp;
gertk 0:806c2f2a7d47 944 else pc+=2;
gertk 0:806c2f2a7d47 945 endinstr;
gertk 0:806c2f2a7d47 946
gertk 0:806c2f2a7d47 947 instr(0xcb,4);
gertk 0:806c2f2a7d47 948 #include "cbops.h"
gertk 0:806c2f2a7d47 949 endinstr;
gertk 0:806c2f2a7d47 950
gertk 0:806c2f2a7d47 951 instr(0xcc,10);
gertk 0:806c2f2a7d47 952 if (f&0x40)call;
gertk 0:806c2f2a7d47 953 else pc+=2;
gertk 0:806c2f2a7d47 954 endinstr;
gertk 0:806c2f2a7d47 955
gertk 0:806c2f2a7d47 956 instr(0xcd,10);
gertk 0:806c2f2a7d47 957 call;
gertk 0:806c2f2a7d47 958 endinstr;
gertk 0:806c2f2a7d47 959
gertk 0:806c2f2a7d47 960 instr(0xce,7);
gertk 0:806c2f2a7d47 961 adda(fetch(pc),cy);
gertk 0:806c2f2a7d47 962 pc++;
gertk 0:806c2f2a7d47 963 endinstr;
gertk 0:806c2f2a7d47 964
gertk 0:806c2f2a7d47 965 instr(0xcf,11);
gertk 0:806c2f2a7d47 966 push2(pc);
gertk 0:806c2f2a7d47 967 pc=8;
gertk 0:806c2f2a7d47 968 endinstr;
gertk 0:806c2f2a7d47 969
gertk 0:806c2f2a7d47 970 instr(0xd0,5);
gertk 0:806c2f2a7d47 971 if (!cy)ret;
gertk 0:806c2f2a7d47 972 endinstr;
gertk 0:806c2f2a7d47 973
gertk 0:806c2f2a7d47 974 instr(0xd1,10);
gertk 0:806c2f2a7d47 975 pop1(d,e);
gertk 0:806c2f2a7d47 976 endinstr;
gertk 0:806c2f2a7d47 977
gertk 0:806c2f2a7d47 978 instr(0xd2,10);
gertk 0:806c2f2a7d47 979 if (!cy)jp;
gertk 0:806c2f2a7d47 980 else pc+=2;
gertk 0:806c2f2a7d47 981 endinstr;
gertk 0:806c2f2a7d47 982
gertk 0:806c2f2a7d47 983 // OUT
gertk 0:806c2f2a7d47 984 instr(0xd3,11);
gertk 0:806c2f2a7d47 985 out(fetch(pc),a);
gertk 0:806c2f2a7d47 986 pc++;
gertk 0:806c2f2a7d47 987 endinstr;
gertk 0:806c2f2a7d47 988
gertk 0:806c2f2a7d47 989 instr(0xd4,10);
gertk 0:806c2f2a7d47 990 if (!cy)call;
gertk 0:806c2f2a7d47 991 else pc+=2;
gertk 0:806c2f2a7d47 992 endinstr;
gertk 0:806c2f2a7d47 993
gertk 0:806c2f2a7d47 994 instr(0xd5,11);
gertk 0:806c2f2a7d47 995 push1(d,e);
gertk 0:806c2f2a7d47 996 endinstr;
gertk 0:806c2f2a7d47 997
gertk 0:806c2f2a7d47 998 instr(0xd6,7);
gertk 0:806c2f2a7d47 999 suba(fetch(pc),0);
gertk 0:806c2f2a7d47 1000 pc++;
gertk 0:806c2f2a7d47 1001 endinstr;
gertk 0:806c2f2a7d47 1002
gertk 0:806c2f2a7d47 1003 instr(0xd7,11);
gertk 0:806c2f2a7d47 1004 push2(pc);
gertk 0:806c2f2a7d47 1005 pc=16;
gertk 0:806c2f2a7d47 1006 endinstr;
gertk 0:806c2f2a7d47 1007
gertk 0:806c2f2a7d47 1008 instr(0xd8,5);
gertk 0:806c2f2a7d47 1009 if (cy)ret;
gertk 0:806c2f2a7d47 1010 endinstr;
gertk 0:806c2f2a7d47 1011
gertk 0:806c2f2a7d47 1012 instr(0xd9,4);
gertk 0:806c2f2a7d47 1013 swap(b,b1);
gertk 0:806c2f2a7d47 1014 swap(c,c1);
gertk 0:806c2f2a7d47 1015 swap(d,d1);
gertk 0:806c2f2a7d47 1016 swap(e,e1);
gertk 0:806c2f2a7d47 1017 swap(h,h1);
gertk 0:806c2f2a7d47 1018 swap(l,l1);
gertk 0:806c2f2a7d47 1019 endinstr;
gertk 0:806c2f2a7d47 1020
gertk 0:806c2f2a7d47 1021 instr(0xda,10);
gertk 0:806c2f2a7d47 1022 if (cy)jp;
gertk 0:806c2f2a7d47 1023 else pc+=2;
gertk 0:806c2f2a7d47 1024 endinstr;
gertk 0:806c2f2a7d47 1025
gertk 0:806c2f2a7d47 1026 // IN
gertk 0:806c2f2a7d47 1027 instr(0xdb,11);
gertk 0:806c2f2a7d47 1028 {
gertk 0:806c2f2a7d47 1029 a=in(fetch(pc));
gertk 0:806c2f2a7d47 1030 pc++;
gertk 0:806c2f2a7d47 1031 }
gertk 0:806c2f2a7d47 1032 endinstr;
gertk 0:806c2f2a7d47 1033
gertk 0:806c2f2a7d47 1034 instr(0xdc,10);
gertk 0:806c2f2a7d47 1035 if (cy)call;
gertk 0:806c2f2a7d47 1036 else pc+=2;
gertk 0:806c2f2a7d47 1037 endinstr;
gertk 0:806c2f2a7d47 1038
gertk 0:806c2f2a7d47 1039 instr(0xdd,4);
gertk 0:806c2f2a7d47 1040 new_ixoriy=1;
gertk 0:806c2f2a7d47 1041 endinstr;
gertk 0:806c2f2a7d47 1042
gertk 0:806c2f2a7d47 1043 instr(0xde,7);
gertk 0:806c2f2a7d47 1044 suba(fetch(pc),cy);
gertk 0:806c2f2a7d47 1045 pc++;
gertk 0:806c2f2a7d47 1046 endinstr;
gertk 0:806c2f2a7d47 1047
gertk 0:806c2f2a7d47 1048 // RST 18
gertk 0:806c2f2a7d47 1049 instr(0xdf,11);
gertk 0:806c2f2a7d47 1050 push2(pc);
gertk 0:806c2f2a7d47 1051 pc=0x0018;
gertk 0:806c2f2a7d47 1052 endinstr;
gertk 0:806c2f2a7d47 1053
gertk 0:806c2f2a7d47 1054 instr(0xe0,5);
gertk 0:806c2f2a7d47 1055 if (!(f&4))ret;
gertk 0:806c2f2a7d47 1056 endinstr;
gertk 0:806c2f2a7d47 1057
gertk 0:806c2f2a7d47 1058 instr(0xe1,10);
gertk 0:806c2f2a7d47 1059 if (!ixoriy)pop1(h,l);
gertk 0:806c2f2a7d47 1060 else if (ixoriy==1)pop2(ix);
gertk 0:806c2f2a7d47 1061 else pop2(iy);
gertk 0:806c2f2a7d47 1062 endinstr;
gertk 0:806c2f2a7d47 1063
gertk 0:806c2f2a7d47 1064 instr(0xe2,10);
gertk 0:806c2f2a7d47 1065 if (!(f&4))jp;
gertk 0:806c2f2a7d47 1066 else pc+=2;
gertk 0:806c2f2a7d47 1067 endinstr;
gertk 0:806c2f2a7d47 1068
gertk 0:806c2f2a7d47 1069 instr(0xe3,19);
gertk 0:806c2f2a7d47 1070 if (!ixoriy) {
gertk 0:806c2f2a7d47 1071 unsigned short t=fetch2(sp);
gertk 0:806c2f2a7d47 1072 store2b(sp,h,l);
gertk 0:806c2f2a7d47 1073 l=t;
gertk 0:806c2f2a7d47 1074 h=t>>8;
gertk 0:806c2f2a7d47 1075 } else if (ixoriy==1) {
gertk 0:806c2f2a7d47 1076 unsigned short t=fetch2(sp);
gertk 0:806c2f2a7d47 1077 store2(sp,ix);
gertk 0:806c2f2a7d47 1078 ix=t;
gertk 0:806c2f2a7d47 1079 } else {
gertk 0:806c2f2a7d47 1080 unsigned short t=fetch2(sp);
gertk 0:806c2f2a7d47 1081 store2(sp,iy);
gertk 0:806c2f2a7d47 1082 iy=t;
gertk 0:806c2f2a7d47 1083 }
gertk 0:806c2f2a7d47 1084 endinstr;
gertk 0:806c2f2a7d47 1085
gertk 0:806c2f2a7d47 1086 instr(0xe4,10);
gertk 0:806c2f2a7d47 1087 if (!(f&4))call;
gertk 0:806c2f2a7d47 1088 else pc+=2;
gertk 0:806c2f2a7d47 1089 endinstr;
gertk 0:806c2f2a7d47 1090
gertk 0:806c2f2a7d47 1091 instr(0xe5,11);
gertk 0:806c2f2a7d47 1092 if (!ixoriy)push1(h,l);
gertk 0:806c2f2a7d47 1093 else if (ixoriy==1)push2(ix);
gertk 0:806c2f2a7d47 1094 else push2(iy);
gertk 0:806c2f2a7d47 1095 endinstr;
gertk 0:806c2f2a7d47 1096
gertk 0:806c2f2a7d47 1097 instr(0xe6,7);
gertk 0:806c2f2a7d47 1098 anda(fetch(pc));
gertk 0:806c2f2a7d47 1099 pc++;
gertk 0:806c2f2a7d47 1100 endinstr;
gertk 0:806c2f2a7d47 1101
gertk 0:806c2f2a7d47 1102 instr(0xe7,11);
gertk 0:806c2f2a7d47 1103 push2(pc);
gertk 0:806c2f2a7d47 1104 pc=32;
gertk 0:806c2f2a7d47 1105 endinstr;
gertk 0:806c2f2a7d47 1106
gertk 0:806c2f2a7d47 1107 instr(0xe8,5);
gertk 0:806c2f2a7d47 1108 if (f&4)ret;
gertk 0:806c2f2a7d47 1109 endinstr;
gertk 0:806c2f2a7d47 1110
gertk 0:806c2f2a7d47 1111 instr(0xe9,4);
gertk 0:806c2f2a7d47 1112 pc=!ixoriy?hl:ixoriy==1?ix:iy;
gertk 0:806c2f2a7d47 1113 endinstr;
gertk 0:806c2f2a7d47 1114
gertk 0:806c2f2a7d47 1115 instr(0xea,10);
gertk 0:806c2f2a7d47 1116 if (f&4)jp;
gertk 0:806c2f2a7d47 1117 else pc+=2;
gertk 0:806c2f2a7d47 1118 endinstr;
gertk 0:806c2f2a7d47 1119
gertk 0:806c2f2a7d47 1120 instr(0xeb,4);
gertk 0:806c2f2a7d47 1121 swap(h,d);
gertk 0:806c2f2a7d47 1122 swap(e,l);
gertk 0:806c2f2a7d47 1123 endinstr;
gertk 0:806c2f2a7d47 1124
gertk 0:806c2f2a7d47 1125 instr(0xec,10);
gertk 0:806c2f2a7d47 1126 if (f&4)call;
gertk 0:806c2f2a7d47 1127 else pc+=2;
gertk 0:806c2f2a7d47 1128 endinstr;
gertk 0:806c2f2a7d47 1129
gertk 0:806c2f2a7d47 1130 instr(0xed,4);
gertk 0:806c2f2a7d47 1131 #include"edops.h"
gertk 0:806c2f2a7d47 1132 endinstr;
gertk 0:806c2f2a7d47 1133
gertk 0:806c2f2a7d47 1134 instr(0xee,7);
gertk 0:806c2f2a7d47 1135 xora(fetch(pc));
gertk 0:806c2f2a7d47 1136 pc++;
gertk 0:806c2f2a7d47 1137 endinstr;
gertk 0:806c2f2a7d47 1138
gertk 0:806c2f2a7d47 1139 instr(0xef,11);
gertk 0:806c2f2a7d47 1140 push2(pc);
gertk 0:806c2f2a7d47 1141 pc=40;
gertk 0:806c2f2a7d47 1142 endinstr;
gertk 0:806c2f2a7d47 1143
gertk 0:806c2f2a7d47 1144 instr(0xf0,5);
gertk 0:806c2f2a7d47 1145 if (!(f&0x80))ret;
gertk 0:806c2f2a7d47 1146 endinstr;
gertk 0:806c2f2a7d47 1147
gertk 0:806c2f2a7d47 1148 instr(0xf1,10);
gertk 0:806c2f2a7d47 1149 pop1(a,f);
gertk 0:806c2f2a7d47 1150 endinstr;
gertk 0:806c2f2a7d47 1151
gertk 0:806c2f2a7d47 1152 instr(0xf2,10);
gertk 0:806c2f2a7d47 1153 if (!(f&0x80))jp;
gertk 0:806c2f2a7d47 1154 else pc+=2;
gertk 0:806c2f2a7d47 1155 endinstr;
gertk 0:806c2f2a7d47 1156
gertk 0:806c2f2a7d47 1157 instr(0xf3,4);
gertk 0:806c2f2a7d47 1158 iff1=iff2=0;
gertk 0:806c2f2a7d47 1159 // __disable_irq();
gertk 0:806c2f2a7d47 1160 endinstr;
gertk 0:806c2f2a7d47 1161
gertk 0:806c2f2a7d47 1162 instr(0xf4,10);
gertk 0:806c2f2a7d47 1163 if (!(f&0x80))call;
gertk 0:806c2f2a7d47 1164 else pc+=2;
gertk 0:806c2f2a7d47 1165 endinstr;
gertk 0:806c2f2a7d47 1166
gertk 0:806c2f2a7d47 1167 instr(0xf5,11);
gertk 0:806c2f2a7d47 1168 push1(a,f);
gertk 0:806c2f2a7d47 1169 endinstr;
gertk 0:806c2f2a7d47 1170
gertk 0:806c2f2a7d47 1171 instr(0xf6,7);
gertk 0:806c2f2a7d47 1172 ora(fetch(pc));
gertk 0:806c2f2a7d47 1173 pc++;
gertk 0:806c2f2a7d47 1174 endinstr;
gertk 0:806c2f2a7d47 1175
gertk 0:806c2f2a7d47 1176 // rst 30
gertk 0:806c2f2a7d47 1177 instr(0xf7,11);
gertk 0:806c2f2a7d47 1178 push2(pc);
gertk 0:806c2f2a7d47 1179 pc=0x30;
gertk 0:806c2f2a7d47 1180 // printf("RST30\n\r");
gertk 0:806c2f2a7d47 1181 endinstr;
gertk 0:806c2f2a7d47 1182
gertk 0:806c2f2a7d47 1183 instr(0xf8,5);
gertk 0:806c2f2a7d47 1184 if (f&0x80)ret;
gertk 0:806c2f2a7d47 1185 endinstr;
gertk 0:806c2f2a7d47 1186
gertk 0:806c2f2a7d47 1187 instr(0xf9,6);
gertk 0:806c2f2a7d47 1188 sp=!ixoriy?hl:ixoriy==1?ix:iy;
gertk 0:806c2f2a7d47 1189 endinstr;
gertk 0:806c2f2a7d47 1190
gertk 0:806c2f2a7d47 1191 instr(0xfa,10);
gertk 0:806c2f2a7d47 1192 if (f&0x80)jp;
gertk 0:806c2f2a7d47 1193 else pc+=2;
gertk 0:806c2f2a7d47 1194 endinstr;
gertk 0:806c2f2a7d47 1195
gertk 0:806c2f2a7d47 1196 instr(0xfb,4);
gertk 0:806c2f2a7d47 1197 iff1=iff2=1;
gertk 0:806c2f2a7d47 1198 endinstr;
gertk 0:806c2f2a7d47 1199
gertk 0:806c2f2a7d47 1200 instr(0xfc,10);
gertk 0:806c2f2a7d47 1201 if (f&0x80)call;
gertk 0:806c2f2a7d47 1202 else pc+=2;
gertk 0:806c2f2a7d47 1203 endinstr;
gertk 0:806c2f2a7d47 1204
gertk 0:806c2f2a7d47 1205 instr(0xfd,4);
gertk 0:806c2f2a7d47 1206 new_ixoriy=2;
gertk 0:806c2f2a7d47 1207 endinstr;
gertk 0:806c2f2a7d47 1208
gertk 0:806c2f2a7d47 1209 instr(0xfe,7);
gertk 0:806c2f2a7d47 1210 cpa(fetch(pc));
gertk 0:806c2f2a7d47 1211 pc++;
gertk 0:806c2f2a7d47 1212 endinstr;
gertk 0:806c2f2a7d47 1213
gertk 0:806c2f2a7d47 1214 instr(0xff,11);
gertk 0:806c2f2a7d47 1215 push2(pc);
gertk 0:806c2f2a7d47 1216 pc=56;
gertk 0:806c2f2a7d47 1217 endinstr;
gertk 0:806c2f2a7d47 1218