libz80 with compilation problems (uses up to much ram)

Committer:
gertk
Date:
Thu Mar 10 20:32:59 2011 +0000
Revision:
0:b612024f5aee
not yet functional !

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gertk 0:b612024f5aee 1 static void ADC_A_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 2 {
gertk 0:b612024f5aee 3 BR.A = doArithmetic(ctx, read8(ctx, WR.HL), F1_ADC, F2_ADC);
gertk 0:b612024f5aee 4 }
gertk 0:b612024f5aee 5
gertk 0:b612024f5aee 6
gertk 0:b612024f5aee 7 static void ADC_A_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 8 {
gertk 0:b612024f5aee 9 BR.A = doArithmetic(ctx, read8(ctx, WR.IX + read8(ctx, ctx->PC++)), F1_ADC, F2_ADC);
gertk 0:b612024f5aee 10
gertk 0:b612024f5aee 11 }
gertk 0:b612024f5aee 12
gertk 0:b612024f5aee 13
gertk 0:b612024f5aee 14 static void ADC_A_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 15 {
gertk 0:b612024f5aee 16 BR.A = doArithmetic(ctx, read8(ctx, WR.IY + read8(ctx, ctx->PC++)), F1_ADC, F2_ADC);
gertk 0:b612024f5aee 17
gertk 0:b612024f5aee 18 }
gertk 0:b612024f5aee 19
gertk 0:b612024f5aee 20
gertk 0:b612024f5aee 21 static void ADC_A_A (Z80Context* ctx)
gertk 0:b612024f5aee 22 {
gertk 0:b612024f5aee 23 BR.A = doArithmetic(ctx, BR.A, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 24 }
gertk 0:b612024f5aee 25
gertk 0:b612024f5aee 26
gertk 0:b612024f5aee 27 static void ADC_A_B (Z80Context* ctx)
gertk 0:b612024f5aee 28 {
gertk 0:b612024f5aee 29 BR.A = doArithmetic(ctx, BR.B, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 30 }
gertk 0:b612024f5aee 31
gertk 0:b612024f5aee 32
gertk 0:b612024f5aee 33 static void ADC_A_C (Z80Context* ctx)
gertk 0:b612024f5aee 34 {
gertk 0:b612024f5aee 35 BR.A = doArithmetic(ctx, BR.C, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 36 }
gertk 0:b612024f5aee 37
gertk 0:b612024f5aee 38
gertk 0:b612024f5aee 39 static void ADC_A_D (Z80Context* ctx)
gertk 0:b612024f5aee 40 {
gertk 0:b612024f5aee 41 BR.A = doArithmetic(ctx, BR.D, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 42 }
gertk 0:b612024f5aee 43
gertk 0:b612024f5aee 44
gertk 0:b612024f5aee 45 static void ADC_A_E (Z80Context* ctx)
gertk 0:b612024f5aee 46 {
gertk 0:b612024f5aee 47 BR.A = doArithmetic(ctx, BR.E, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 48 }
gertk 0:b612024f5aee 49
gertk 0:b612024f5aee 50
gertk 0:b612024f5aee 51 static void ADC_A_H (Z80Context* ctx)
gertk 0:b612024f5aee 52 {
gertk 0:b612024f5aee 53 BR.A = doArithmetic(ctx, BR.H, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 54 }
gertk 0:b612024f5aee 55
gertk 0:b612024f5aee 56
gertk 0:b612024f5aee 57 static void ADC_A_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 58 {
gertk 0:b612024f5aee 59 BR.A = doArithmetic(ctx, BR.IXh, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 60 }
gertk 0:b612024f5aee 61
gertk 0:b612024f5aee 62
gertk 0:b612024f5aee 63 static void ADC_A_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 64 {
gertk 0:b612024f5aee 65 BR.A = doArithmetic(ctx, BR.IXl, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 66 }
gertk 0:b612024f5aee 67
gertk 0:b612024f5aee 68
gertk 0:b612024f5aee 69 static void ADC_A_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 70 {
gertk 0:b612024f5aee 71 BR.A = doArithmetic(ctx, BR.IYh, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 72 }
gertk 0:b612024f5aee 73
gertk 0:b612024f5aee 74
gertk 0:b612024f5aee 75 static void ADC_A_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 76 {
gertk 0:b612024f5aee 77 BR.A = doArithmetic(ctx, BR.IYl, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 78 }
gertk 0:b612024f5aee 79
gertk 0:b612024f5aee 80
gertk 0:b612024f5aee 81 static void ADC_A_L (Z80Context* ctx)
gertk 0:b612024f5aee 82 {
gertk 0:b612024f5aee 83 BR.A = doArithmetic(ctx, BR.L, F1_ADC, F2_ADC);
gertk 0:b612024f5aee 84 }
gertk 0:b612024f5aee 85
gertk 0:b612024f5aee 86
gertk 0:b612024f5aee 87 static void ADC_A_n (Z80Context* ctx)
gertk 0:b612024f5aee 88 {
gertk 0:b612024f5aee 89 BR.A = doArithmetic(ctx, read8(ctx, ctx->PC++), F1_ADC, F2_ADC);
gertk 0:b612024f5aee 90 }
gertk 0:b612024f5aee 91
gertk 0:b612024f5aee 92
gertk 0:b612024f5aee 93 static void ADC_HL_BC (Z80Context* ctx)
gertk 0:b612024f5aee 94 {
gertk 0:b612024f5aee 95 WR.HL += WR.BC + GETFLAG(F_C);
gertk 0:b612024f5aee 96 }
gertk 0:b612024f5aee 97
gertk 0:b612024f5aee 98
gertk 0:b612024f5aee 99 static void ADC_HL_DE (Z80Context* ctx)
gertk 0:b612024f5aee 100 {
gertk 0:b612024f5aee 101 WR.HL += WR.DE + GETFLAG(F_C);
gertk 0:b612024f5aee 102 }
gertk 0:b612024f5aee 103
gertk 0:b612024f5aee 104
gertk 0:b612024f5aee 105 static void ADC_HL_HL (Z80Context* ctx)
gertk 0:b612024f5aee 106 {
gertk 0:b612024f5aee 107 WR.HL += WR.HL + GETFLAG(F_C);
gertk 0:b612024f5aee 108 }
gertk 0:b612024f5aee 109
gertk 0:b612024f5aee 110
gertk 0:b612024f5aee 111 static void ADC_HL_SP (Z80Context* ctx)
gertk 0:b612024f5aee 112 {
gertk 0:b612024f5aee 113 WR.HL += WR.SP + GETFLAG(F_C);
gertk 0:b612024f5aee 114 }
gertk 0:b612024f5aee 115
gertk 0:b612024f5aee 116
gertk 0:b612024f5aee 117 static void ADD_A_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 118 {
gertk 0:b612024f5aee 119 BR.A = doArithmetic(ctx, read8(ctx, WR.HL), F1_ADD, F2_ADD);
gertk 0:b612024f5aee 120 }
gertk 0:b612024f5aee 121
gertk 0:b612024f5aee 122
gertk 0:b612024f5aee 123 static void ADD_A_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 124 {
gertk 0:b612024f5aee 125 BR.A = doArithmetic(ctx, read8(ctx, WR.IX + read8(ctx, ctx->PC++)), F1_ADD, F2_ADD);
gertk 0:b612024f5aee 126
gertk 0:b612024f5aee 127 }
gertk 0:b612024f5aee 128
gertk 0:b612024f5aee 129
gertk 0:b612024f5aee 130 static void ADD_A_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 131 {
gertk 0:b612024f5aee 132 BR.A = doArithmetic(ctx, read8(ctx, WR.IY + read8(ctx, ctx->PC++)), F1_ADD, F2_ADD);
gertk 0:b612024f5aee 133
gertk 0:b612024f5aee 134 }
gertk 0:b612024f5aee 135
gertk 0:b612024f5aee 136
gertk 0:b612024f5aee 137 static void ADD_A_A (Z80Context* ctx)
gertk 0:b612024f5aee 138 {
gertk 0:b612024f5aee 139 BR.A = doArithmetic(ctx, BR.A, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 140 }
gertk 0:b612024f5aee 141
gertk 0:b612024f5aee 142
gertk 0:b612024f5aee 143 static void ADD_A_B (Z80Context* ctx)
gertk 0:b612024f5aee 144 {
gertk 0:b612024f5aee 145 BR.A = doArithmetic(ctx, BR.B, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 146 }
gertk 0:b612024f5aee 147
gertk 0:b612024f5aee 148
gertk 0:b612024f5aee 149 static void ADD_A_C (Z80Context* ctx)
gertk 0:b612024f5aee 150 {
gertk 0:b612024f5aee 151 BR.A = doArithmetic(ctx, BR.C, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 152 }
gertk 0:b612024f5aee 153
gertk 0:b612024f5aee 154
gertk 0:b612024f5aee 155 static void ADD_A_D (Z80Context* ctx)
gertk 0:b612024f5aee 156 {
gertk 0:b612024f5aee 157 BR.A = doArithmetic(ctx, BR.D, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 158 }
gertk 0:b612024f5aee 159
gertk 0:b612024f5aee 160
gertk 0:b612024f5aee 161 static void ADD_A_E (Z80Context* ctx)
gertk 0:b612024f5aee 162 {
gertk 0:b612024f5aee 163 BR.A = doArithmetic(ctx, BR.E, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 164 }
gertk 0:b612024f5aee 165
gertk 0:b612024f5aee 166
gertk 0:b612024f5aee 167 static void ADD_A_H (Z80Context* ctx)
gertk 0:b612024f5aee 168 {
gertk 0:b612024f5aee 169 BR.A = doArithmetic(ctx, BR.H, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 170 }
gertk 0:b612024f5aee 171
gertk 0:b612024f5aee 172
gertk 0:b612024f5aee 173 static void ADD_A_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 174 {
gertk 0:b612024f5aee 175 BR.A = doArithmetic(ctx, BR.IXh, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 176 }
gertk 0:b612024f5aee 177
gertk 0:b612024f5aee 178
gertk 0:b612024f5aee 179 static void ADD_A_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 180 {
gertk 0:b612024f5aee 181 BR.A = doArithmetic(ctx, BR.IXl, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 182 }
gertk 0:b612024f5aee 183
gertk 0:b612024f5aee 184
gertk 0:b612024f5aee 185 static void ADD_A_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 186 {
gertk 0:b612024f5aee 187 BR.A = doArithmetic(ctx, BR.IYh, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 188 }
gertk 0:b612024f5aee 189
gertk 0:b612024f5aee 190
gertk 0:b612024f5aee 191 static void ADD_A_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 192 {
gertk 0:b612024f5aee 193 BR.A = doArithmetic(ctx, BR.IYl, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 194 }
gertk 0:b612024f5aee 195
gertk 0:b612024f5aee 196
gertk 0:b612024f5aee 197 static void ADD_A_L (Z80Context* ctx)
gertk 0:b612024f5aee 198 {
gertk 0:b612024f5aee 199 BR.A = doArithmetic(ctx, BR.L, F1_ADD, F2_ADD);
gertk 0:b612024f5aee 200 }
gertk 0:b612024f5aee 201
gertk 0:b612024f5aee 202
gertk 0:b612024f5aee 203 static void ADD_A_n (Z80Context* ctx)
gertk 0:b612024f5aee 204 {
gertk 0:b612024f5aee 205 BR.A = doArithmetic(ctx, read8(ctx, ctx->PC++), F1_ADD, F2_ADD);
gertk 0:b612024f5aee 206 }
gertk 0:b612024f5aee 207
gertk 0:b612024f5aee 208
gertk 0:b612024f5aee 209 static void ADD_HL_BC (Z80Context* ctx)
gertk 0:b612024f5aee 210 {
gertk 0:b612024f5aee 211 WR.HL += WR.BC;
gertk 0:b612024f5aee 212
gertk 0:b612024f5aee 213 }
gertk 0:b612024f5aee 214
gertk 0:b612024f5aee 215
gertk 0:b612024f5aee 216 static void ADD_HL_DE (Z80Context* ctx)
gertk 0:b612024f5aee 217 {
gertk 0:b612024f5aee 218 WR.HL += WR.DE;
gertk 0:b612024f5aee 219
gertk 0:b612024f5aee 220 }
gertk 0:b612024f5aee 221
gertk 0:b612024f5aee 222
gertk 0:b612024f5aee 223 static void ADD_HL_HL (Z80Context* ctx)
gertk 0:b612024f5aee 224 {
gertk 0:b612024f5aee 225 WR.HL += WR.HL;
gertk 0:b612024f5aee 226
gertk 0:b612024f5aee 227 }
gertk 0:b612024f5aee 228
gertk 0:b612024f5aee 229
gertk 0:b612024f5aee 230 static void ADD_HL_SP (Z80Context* ctx)
gertk 0:b612024f5aee 231 {
gertk 0:b612024f5aee 232 WR.HL += WR.SP;
gertk 0:b612024f5aee 233
gertk 0:b612024f5aee 234 }
gertk 0:b612024f5aee 235
gertk 0:b612024f5aee 236
gertk 0:b612024f5aee 237 static void ADD_IX_BC (Z80Context* ctx)
gertk 0:b612024f5aee 238 {
gertk 0:b612024f5aee 239 WR.IX += WR.BC;
gertk 0:b612024f5aee 240
gertk 0:b612024f5aee 241
gertk 0:b612024f5aee 242 }
gertk 0:b612024f5aee 243
gertk 0:b612024f5aee 244
gertk 0:b612024f5aee 245 static void ADD_IX_DE (Z80Context* ctx)
gertk 0:b612024f5aee 246 {
gertk 0:b612024f5aee 247 WR.IX += WR.DE;
gertk 0:b612024f5aee 248
gertk 0:b612024f5aee 249
gertk 0:b612024f5aee 250 }
gertk 0:b612024f5aee 251
gertk 0:b612024f5aee 252
gertk 0:b612024f5aee 253 static void ADD_IX_IX (Z80Context* ctx)
gertk 0:b612024f5aee 254 {
gertk 0:b612024f5aee 255 WR.IX += WR.IX;
gertk 0:b612024f5aee 256
gertk 0:b612024f5aee 257
gertk 0:b612024f5aee 258 }
gertk 0:b612024f5aee 259
gertk 0:b612024f5aee 260
gertk 0:b612024f5aee 261 static void ADD_IX_SP (Z80Context* ctx)
gertk 0:b612024f5aee 262 {
gertk 0:b612024f5aee 263 WR.IX += WR.SP;
gertk 0:b612024f5aee 264
gertk 0:b612024f5aee 265
gertk 0:b612024f5aee 266 }
gertk 0:b612024f5aee 267
gertk 0:b612024f5aee 268
gertk 0:b612024f5aee 269 static void ADD_IY_BC (Z80Context* ctx)
gertk 0:b612024f5aee 270 {
gertk 0:b612024f5aee 271 WR.IY += WR.BC;
gertk 0:b612024f5aee 272
gertk 0:b612024f5aee 273
gertk 0:b612024f5aee 274 }
gertk 0:b612024f5aee 275
gertk 0:b612024f5aee 276
gertk 0:b612024f5aee 277 static void ADD_IY_DE (Z80Context* ctx)
gertk 0:b612024f5aee 278 {
gertk 0:b612024f5aee 279 WR.IY += WR.DE;
gertk 0:b612024f5aee 280
gertk 0:b612024f5aee 281
gertk 0:b612024f5aee 282 }
gertk 0:b612024f5aee 283
gertk 0:b612024f5aee 284
gertk 0:b612024f5aee 285 static void ADD_IY_IY (Z80Context* ctx)
gertk 0:b612024f5aee 286 {
gertk 0:b612024f5aee 287 WR.IY += WR.IY;
gertk 0:b612024f5aee 288
gertk 0:b612024f5aee 289
gertk 0:b612024f5aee 290 }
gertk 0:b612024f5aee 291
gertk 0:b612024f5aee 292
gertk 0:b612024f5aee 293 static void ADD_IY_SP (Z80Context* ctx)
gertk 0:b612024f5aee 294 {
gertk 0:b612024f5aee 295 WR.IY += WR.SP;
gertk 0:b612024f5aee 296
gertk 0:b612024f5aee 297
gertk 0:b612024f5aee 298 }
gertk 0:b612024f5aee 299
gertk 0:b612024f5aee 300
gertk 0:b612024f5aee 301 static void AND_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 302 {
gertk 0:b612024f5aee 303 doAND(ctx, read8(ctx, WR.HL));
gertk 0:b612024f5aee 304 }
gertk 0:b612024f5aee 305
gertk 0:b612024f5aee 306
gertk 0:b612024f5aee 307 static void AND_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 308 {
gertk 0:b612024f5aee 309 doAND(ctx, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 310 }
gertk 0:b612024f5aee 311
gertk 0:b612024f5aee 312
gertk 0:b612024f5aee 313 static void AND_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 314 {
gertk 0:b612024f5aee 315 doAND(ctx, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 316 }
gertk 0:b612024f5aee 317
gertk 0:b612024f5aee 318
gertk 0:b612024f5aee 319 static void AND_A (Z80Context* ctx)
gertk 0:b612024f5aee 320 {
gertk 0:b612024f5aee 321 doAND(ctx, BR.A);
gertk 0:b612024f5aee 322 }
gertk 0:b612024f5aee 323
gertk 0:b612024f5aee 324
gertk 0:b612024f5aee 325 static void AND_B (Z80Context* ctx)
gertk 0:b612024f5aee 326 {
gertk 0:b612024f5aee 327 doAND(ctx, BR.B);
gertk 0:b612024f5aee 328 }
gertk 0:b612024f5aee 329
gertk 0:b612024f5aee 330
gertk 0:b612024f5aee 331 static void AND_C (Z80Context* ctx)
gertk 0:b612024f5aee 332 {
gertk 0:b612024f5aee 333 doAND(ctx, BR.C);
gertk 0:b612024f5aee 334 }
gertk 0:b612024f5aee 335
gertk 0:b612024f5aee 336
gertk 0:b612024f5aee 337 static void AND_D (Z80Context* ctx)
gertk 0:b612024f5aee 338 {
gertk 0:b612024f5aee 339 doAND(ctx, BR.D);
gertk 0:b612024f5aee 340 }
gertk 0:b612024f5aee 341
gertk 0:b612024f5aee 342
gertk 0:b612024f5aee 343 static void AND_E (Z80Context* ctx)
gertk 0:b612024f5aee 344 {
gertk 0:b612024f5aee 345 doAND(ctx, BR.E);
gertk 0:b612024f5aee 346 }
gertk 0:b612024f5aee 347
gertk 0:b612024f5aee 348
gertk 0:b612024f5aee 349 static void AND_H (Z80Context* ctx)
gertk 0:b612024f5aee 350 {
gertk 0:b612024f5aee 351 doAND(ctx, BR.H);
gertk 0:b612024f5aee 352 }
gertk 0:b612024f5aee 353
gertk 0:b612024f5aee 354
gertk 0:b612024f5aee 355 static void AND_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 356 {
gertk 0:b612024f5aee 357 doAND(ctx, BR.IXh);
gertk 0:b612024f5aee 358 }
gertk 0:b612024f5aee 359
gertk 0:b612024f5aee 360
gertk 0:b612024f5aee 361 static void AND_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 362 {
gertk 0:b612024f5aee 363 doAND(ctx, BR.IXl);
gertk 0:b612024f5aee 364 }
gertk 0:b612024f5aee 365
gertk 0:b612024f5aee 366
gertk 0:b612024f5aee 367 static void AND_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 368 {
gertk 0:b612024f5aee 369 doAND(ctx, BR.IYh);
gertk 0:b612024f5aee 370 }
gertk 0:b612024f5aee 371
gertk 0:b612024f5aee 372
gertk 0:b612024f5aee 373 static void AND_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 374 {
gertk 0:b612024f5aee 375 doAND(ctx, BR.IYl);
gertk 0:b612024f5aee 376 }
gertk 0:b612024f5aee 377
gertk 0:b612024f5aee 378
gertk 0:b612024f5aee 379 static void AND_L (Z80Context* ctx)
gertk 0:b612024f5aee 380 {
gertk 0:b612024f5aee 381 doAND(ctx, BR.L);
gertk 0:b612024f5aee 382 }
gertk 0:b612024f5aee 383
gertk 0:b612024f5aee 384
gertk 0:b612024f5aee 385 static void AND_n (Z80Context* ctx)
gertk 0:b612024f5aee 386 {
gertk 0:b612024f5aee 387 doAND(ctx, read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 388 }
gertk 0:b612024f5aee 389
gertk 0:b612024f5aee 390
gertk 0:b612024f5aee 391 static void BIT_0_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 392 {
gertk 0:b612024f5aee 393 doBIT(ctx, 0, read8(ctx, WR.HL));
gertk 0:b612024f5aee 394 }
gertk 0:b612024f5aee 395
gertk 0:b612024f5aee 396
gertk 0:b612024f5aee 397 static void BIT_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 398 {
gertk 0:b612024f5aee 399 doBIT(ctx, 0, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 400
gertk 0:b612024f5aee 401 }
gertk 0:b612024f5aee 402
gertk 0:b612024f5aee 403
gertk 0:b612024f5aee 404 static void BIT_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 405 {
gertk 0:b612024f5aee 406 doBIT(ctx, 0, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 407
gertk 0:b612024f5aee 408 }
gertk 0:b612024f5aee 409
gertk 0:b612024f5aee 410
gertk 0:b612024f5aee 411 static void BIT_0_A (Z80Context* ctx)
gertk 0:b612024f5aee 412 {
gertk 0:b612024f5aee 413 doBIT(ctx, 0, BR.A);
gertk 0:b612024f5aee 414 }
gertk 0:b612024f5aee 415
gertk 0:b612024f5aee 416
gertk 0:b612024f5aee 417 static void BIT_0_B (Z80Context* ctx)
gertk 0:b612024f5aee 418 {
gertk 0:b612024f5aee 419 doBIT(ctx, 0, BR.B);
gertk 0:b612024f5aee 420 }
gertk 0:b612024f5aee 421
gertk 0:b612024f5aee 422
gertk 0:b612024f5aee 423 static void BIT_0_C (Z80Context* ctx)
gertk 0:b612024f5aee 424 {
gertk 0:b612024f5aee 425 doBIT(ctx, 0, BR.C);
gertk 0:b612024f5aee 426 }
gertk 0:b612024f5aee 427
gertk 0:b612024f5aee 428
gertk 0:b612024f5aee 429 static void BIT_0_D (Z80Context* ctx)
gertk 0:b612024f5aee 430 {
gertk 0:b612024f5aee 431 doBIT(ctx, 0, BR.D);
gertk 0:b612024f5aee 432 }
gertk 0:b612024f5aee 433
gertk 0:b612024f5aee 434
gertk 0:b612024f5aee 435 static void BIT_0_E (Z80Context* ctx)
gertk 0:b612024f5aee 436 {
gertk 0:b612024f5aee 437 doBIT(ctx, 0, BR.E);
gertk 0:b612024f5aee 438 }
gertk 0:b612024f5aee 439
gertk 0:b612024f5aee 440
gertk 0:b612024f5aee 441 static void BIT_0_H (Z80Context* ctx)
gertk 0:b612024f5aee 442 {
gertk 0:b612024f5aee 443 doBIT(ctx, 0, BR.H);
gertk 0:b612024f5aee 444 }
gertk 0:b612024f5aee 445
gertk 0:b612024f5aee 446
gertk 0:b612024f5aee 447 static void BIT_0_L (Z80Context* ctx)
gertk 0:b612024f5aee 448 {
gertk 0:b612024f5aee 449 doBIT(ctx, 0, BR.L);
gertk 0:b612024f5aee 450 }
gertk 0:b612024f5aee 451
gertk 0:b612024f5aee 452
gertk 0:b612024f5aee 453 static void BIT_1_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 454 {
gertk 0:b612024f5aee 455 doBIT(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 456 }
gertk 0:b612024f5aee 457
gertk 0:b612024f5aee 458
gertk 0:b612024f5aee 459 static void BIT_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 460 {
gertk 0:b612024f5aee 461 doBIT(ctx, 1, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 462
gertk 0:b612024f5aee 463 }
gertk 0:b612024f5aee 464
gertk 0:b612024f5aee 465
gertk 0:b612024f5aee 466 static void BIT_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 467 {
gertk 0:b612024f5aee 468 doBIT(ctx, 1, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 469
gertk 0:b612024f5aee 470 }
gertk 0:b612024f5aee 471
gertk 0:b612024f5aee 472
gertk 0:b612024f5aee 473 static void BIT_1_A (Z80Context* ctx)
gertk 0:b612024f5aee 474 {
gertk 0:b612024f5aee 475 doBIT(ctx, 1, BR.A);
gertk 0:b612024f5aee 476 }
gertk 0:b612024f5aee 477
gertk 0:b612024f5aee 478
gertk 0:b612024f5aee 479 static void BIT_1_B (Z80Context* ctx)
gertk 0:b612024f5aee 480 {
gertk 0:b612024f5aee 481 doBIT(ctx, 1, BR.B);
gertk 0:b612024f5aee 482 }
gertk 0:b612024f5aee 483
gertk 0:b612024f5aee 484
gertk 0:b612024f5aee 485 static void BIT_1_C (Z80Context* ctx)
gertk 0:b612024f5aee 486 {
gertk 0:b612024f5aee 487 doBIT(ctx, 1, BR.C);
gertk 0:b612024f5aee 488 }
gertk 0:b612024f5aee 489
gertk 0:b612024f5aee 490
gertk 0:b612024f5aee 491 static void BIT_1_D (Z80Context* ctx)
gertk 0:b612024f5aee 492 {
gertk 0:b612024f5aee 493 doBIT(ctx, 1, BR.D);
gertk 0:b612024f5aee 494 }
gertk 0:b612024f5aee 495
gertk 0:b612024f5aee 496
gertk 0:b612024f5aee 497 static void BIT_1_E (Z80Context* ctx)
gertk 0:b612024f5aee 498 {
gertk 0:b612024f5aee 499 doBIT(ctx, 1, BR.E);
gertk 0:b612024f5aee 500 }
gertk 0:b612024f5aee 501
gertk 0:b612024f5aee 502
gertk 0:b612024f5aee 503 static void BIT_1_H (Z80Context* ctx)
gertk 0:b612024f5aee 504 {
gertk 0:b612024f5aee 505 doBIT(ctx, 1, BR.H);
gertk 0:b612024f5aee 506 }
gertk 0:b612024f5aee 507
gertk 0:b612024f5aee 508
gertk 0:b612024f5aee 509 static void BIT_1_L (Z80Context* ctx)
gertk 0:b612024f5aee 510 {
gertk 0:b612024f5aee 511 doBIT(ctx, 1, BR.L);
gertk 0:b612024f5aee 512 }
gertk 0:b612024f5aee 513
gertk 0:b612024f5aee 514
gertk 0:b612024f5aee 515 static void BIT_2_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 516 {
gertk 0:b612024f5aee 517 doBIT(ctx, 2, read8(ctx, WR.HL));
gertk 0:b612024f5aee 518 }
gertk 0:b612024f5aee 519
gertk 0:b612024f5aee 520
gertk 0:b612024f5aee 521 static void BIT_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 522 {
gertk 0:b612024f5aee 523 doBIT(ctx, 2, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 524
gertk 0:b612024f5aee 525 }
gertk 0:b612024f5aee 526
gertk 0:b612024f5aee 527
gertk 0:b612024f5aee 528 static void BIT_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 529 {
gertk 0:b612024f5aee 530 doBIT(ctx, 2, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 531
gertk 0:b612024f5aee 532 }
gertk 0:b612024f5aee 533
gertk 0:b612024f5aee 534
gertk 0:b612024f5aee 535 static void BIT_2_A (Z80Context* ctx)
gertk 0:b612024f5aee 536 {
gertk 0:b612024f5aee 537 doBIT(ctx, 2, BR.A);
gertk 0:b612024f5aee 538 }
gertk 0:b612024f5aee 539
gertk 0:b612024f5aee 540
gertk 0:b612024f5aee 541 static void BIT_2_B (Z80Context* ctx)
gertk 0:b612024f5aee 542 {
gertk 0:b612024f5aee 543 doBIT(ctx, 2, BR.B);
gertk 0:b612024f5aee 544 }
gertk 0:b612024f5aee 545
gertk 0:b612024f5aee 546
gertk 0:b612024f5aee 547 static void BIT_2_C (Z80Context* ctx)
gertk 0:b612024f5aee 548 {
gertk 0:b612024f5aee 549 doBIT(ctx, 2, BR.C);
gertk 0:b612024f5aee 550 }
gertk 0:b612024f5aee 551
gertk 0:b612024f5aee 552
gertk 0:b612024f5aee 553 static void BIT_2_D (Z80Context* ctx)
gertk 0:b612024f5aee 554 {
gertk 0:b612024f5aee 555 doBIT(ctx, 2, BR.D);
gertk 0:b612024f5aee 556 }
gertk 0:b612024f5aee 557
gertk 0:b612024f5aee 558
gertk 0:b612024f5aee 559 static void BIT_2_E (Z80Context* ctx)
gertk 0:b612024f5aee 560 {
gertk 0:b612024f5aee 561 doBIT(ctx, 2, BR.E);
gertk 0:b612024f5aee 562 }
gertk 0:b612024f5aee 563
gertk 0:b612024f5aee 564
gertk 0:b612024f5aee 565 static void BIT_2_H (Z80Context* ctx)
gertk 0:b612024f5aee 566 {
gertk 0:b612024f5aee 567 doBIT(ctx, 2, BR.H);
gertk 0:b612024f5aee 568 }
gertk 0:b612024f5aee 569
gertk 0:b612024f5aee 570
gertk 0:b612024f5aee 571 static void BIT_2_L (Z80Context* ctx)
gertk 0:b612024f5aee 572 {
gertk 0:b612024f5aee 573 doBIT(ctx, 2, BR.L);
gertk 0:b612024f5aee 574 }
gertk 0:b612024f5aee 575
gertk 0:b612024f5aee 576
gertk 0:b612024f5aee 577 static void BIT_3_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 578 {
gertk 0:b612024f5aee 579 doBIT(ctx, 3, read8(ctx, WR.HL));
gertk 0:b612024f5aee 580 }
gertk 0:b612024f5aee 581
gertk 0:b612024f5aee 582
gertk 0:b612024f5aee 583 static void BIT_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 584 {
gertk 0:b612024f5aee 585 doBIT(ctx, 3, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 586
gertk 0:b612024f5aee 587 }
gertk 0:b612024f5aee 588
gertk 0:b612024f5aee 589
gertk 0:b612024f5aee 590 static void BIT_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 591 {
gertk 0:b612024f5aee 592 doBIT(ctx, 3, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 593
gertk 0:b612024f5aee 594 }
gertk 0:b612024f5aee 595
gertk 0:b612024f5aee 596
gertk 0:b612024f5aee 597 static void BIT_3_A (Z80Context* ctx)
gertk 0:b612024f5aee 598 {
gertk 0:b612024f5aee 599 doBIT(ctx, 3, BR.A);
gertk 0:b612024f5aee 600 }
gertk 0:b612024f5aee 601
gertk 0:b612024f5aee 602
gertk 0:b612024f5aee 603 static void BIT_3_B (Z80Context* ctx)
gertk 0:b612024f5aee 604 {
gertk 0:b612024f5aee 605 doBIT(ctx, 3, BR.B);
gertk 0:b612024f5aee 606 }
gertk 0:b612024f5aee 607
gertk 0:b612024f5aee 608
gertk 0:b612024f5aee 609 static void BIT_3_C (Z80Context* ctx)
gertk 0:b612024f5aee 610 {
gertk 0:b612024f5aee 611 doBIT(ctx, 3, BR.C);
gertk 0:b612024f5aee 612 }
gertk 0:b612024f5aee 613
gertk 0:b612024f5aee 614
gertk 0:b612024f5aee 615 static void BIT_3_D (Z80Context* ctx)
gertk 0:b612024f5aee 616 {
gertk 0:b612024f5aee 617 doBIT(ctx, 3, BR.D);
gertk 0:b612024f5aee 618 }
gertk 0:b612024f5aee 619
gertk 0:b612024f5aee 620
gertk 0:b612024f5aee 621 static void BIT_3_E (Z80Context* ctx)
gertk 0:b612024f5aee 622 {
gertk 0:b612024f5aee 623 doBIT(ctx, 3, BR.E);
gertk 0:b612024f5aee 624 }
gertk 0:b612024f5aee 625
gertk 0:b612024f5aee 626
gertk 0:b612024f5aee 627 static void BIT_3_H (Z80Context* ctx)
gertk 0:b612024f5aee 628 {
gertk 0:b612024f5aee 629 doBIT(ctx, 3, BR.H);
gertk 0:b612024f5aee 630 }
gertk 0:b612024f5aee 631
gertk 0:b612024f5aee 632
gertk 0:b612024f5aee 633 static void BIT_3_L (Z80Context* ctx)
gertk 0:b612024f5aee 634 {
gertk 0:b612024f5aee 635 doBIT(ctx, 3, BR.L);
gertk 0:b612024f5aee 636 }
gertk 0:b612024f5aee 637
gertk 0:b612024f5aee 638
gertk 0:b612024f5aee 639 static void BIT_4_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 640 {
gertk 0:b612024f5aee 641 doBIT(ctx, 4, read8(ctx, WR.HL));
gertk 0:b612024f5aee 642 }
gertk 0:b612024f5aee 643
gertk 0:b612024f5aee 644
gertk 0:b612024f5aee 645 static void BIT_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 646 {
gertk 0:b612024f5aee 647 doBIT(ctx, 4, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 648
gertk 0:b612024f5aee 649 }
gertk 0:b612024f5aee 650
gertk 0:b612024f5aee 651
gertk 0:b612024f5aee 652 static void BIT_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 653 {
gertk 0:b612024f5aee 654 doBIT(ctx, 4, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 655
gertk 0:b612024f5aee 656 }
gertk 0:b612024f5aee 657
gertk 0:b612024f5aee 658
gertk 0:b612024f5aee 659 static void BIT_4_A (Z80Context* ctx)
gertk 0:b612024f5aee 660 {
gertk 0:b612024f5aee 661 doBIT(ctx, 4, BR.A);
gertk 0:b612024f5aee 662 }
gertk 0:b612024f5aee 663
gertk 0:b612024f5aee 664
gertk 0:b612024f5aee 665 static void BIT_4_B (Z80Context* ctx)
gertk 0:b612024f5aee 666 {
gertk 0:b612024f5aee 667 doBIT(ctx, 4, BR.B);
gertk 0:b612024f5aee 668 }
gertk 0:b612024f5aee 669
gertk 0:b612024f5aee 670
gertk 0:b612024f5aee 671 static void BIT_4_C (Z80Context* ctx)
gertk 0:b612024f5aee 672 {
gertk 0:b612024f5aee 673 doBIT(ctx, 4, BR.C);
gertk 0:b612024f5aee 674 }
gertk 0:b612024f5aee 675
gertk 0:b612024f5aee 676
gertk 0:b612024f5aee 677 static void BIT_4_D (Z80Context* ctx)
gertk 0:b612024f5aee 678 {
gertk 0:b612024f5aee 679 doBIT(ctx, 4, BR.D);
gertk 0:b612024f5aee 680 }
gertk 0:b612024f5aee 681
gertk 0:b612024f5aee 682
gertk 0:b612024f5aee 683 static void BIT_4_E (Z80Context* ctx)
gertk 0:b612024f5aee 684 {
gertk 0:b612024f5aee 685 doBIT(ctx, 4, BR.E);
gertk 0:b612024f5aee 686 }
gertk 0:b612024f5aee 687
gertk 0:b612024f5aee 688
gertk 0:b612024f5aee 689 static void BIT_4_H (Z80Context* ctx)
gertk 0:b612024f5aee 690 {
gertk 0:b612024f5aee 691 doBIT(ctx, 4, BR.H);
gertk 0:b612024f5aee 692 }
gertk 0:b612024f5aee 693
gertk 0:b612024f5aee 694
gertk 0:b612024f5aee 695 static void BIT_4_L (Z80Context* ctx)
gertk 0:b612024f5aee 696 {
gertk 0:b612024f5aee 697 doBIT(ctx, 4, BR.L);
gertk 0:b612024f5aee 698 }
gertk 0:b612024f5aee 699
gertk 0:b612024f5aee 700
gertk 0:b612024f5aee 701 static void BIT_5_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 702 {
gertk 0:b612024f5aee 703 doBIT(ctx, 5, read8(ctx, WR.HL));
gertk 0:b612024f5aee 704 }
gertk 0:b612024f5aee 705
gertk 0:b612024f5aee 706
gertk 0:b612024f5aee 707 static void BIT_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 708 {
gertk 0:b612024f5aee 709 doBIT(ctx, 5, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 710
gertk 0:b612024f5aee 711 }
gertk 0:b612024f5aee 712
gertk 0:b612024f5aee 713
gertk 0:b612024f5aee 714 static void BIT_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 715 {
gertk 0:b612024f5aee 716 doBIT(ctx, 5, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 717
gertk 0:b612024f5aee 718 }
gertk 0:b612024f5aee 719
gertk 0:b612024f5aee 720
gertk 0:b612024f5aee 721 static void BIT_5_A (Z80Context* ctx)
gertk 0:b612024f5aee 722 {
gertk 0:b612024f5aee 723 doBIT(ctx, 5, BR.A);
gertk 0:b612024f5aee 724 }
gertk 0:b612024f5aee 725
gertk 0:b612024f5aee 726
gertk 0:b612024f5aee 727 static void BIT_5_B (Z80Context* ctx)
gertk 0:b612024f5aee 728 {
gertk 0:b612024f5aee 729 doBIT(ctx, 5, BR.B);
gertk 0:b612024f5aee 730 }
gertk 0:b612024f5aee 731
gertk 0:b612024f5aee 732
gertk 0:b612024f5aee 733 static void BIT_5_C (Z80Context* ctx)
gertk 0:b612024f5aee 734 {
gertk 0:b612024f5aee 735 doBIT(ctx, 5, BR.C);
gertk 0:b612024f5aee 736 }
gertk 0:b612024f5aee 737
gertk 0:b612024f5aee 738
gertk 0:b612024f5aee 739 static void BIT_5_D (Z80Context* ctx)
gertk 0:b612024f5aee 740 {
gertk 0:b612024f5aee 741 doBIT(ctx, 5, BR.D);
gertk 0:b612024f5aee 742 }
gertk 0:b612024f5aee 743
gertk 0:b612024f5aee 744
gertk 0:b612024f5aee 745 static void BIT_5_E (Z80Context* ctx)
gertk 0:b612024f5aee 746 {
gertk 0:b612024f5aee 747 doBIT(ctx, 5, BR.E);
gertk 0:b612024f5aee 748 }
gertk 0:b612024f5aee 749
gertk 0:b612024f5aee 750
gertk 0:b612024f5aee 751 static void BIT_5_H (Z80Context* ctx)
gertk 0:b612024f5aee 752 {
gertk 0:b612024f5aee 753 doBIT(ctx, 5, BR.H);
gertk 0:b612024f5aee 754 }
gertk 0:b612024f5aee 755
gertk 0:b612024f5aee 756
gertk 0:b612024f5aee 757 static void BIT_5_L (Z80Context* ctx)
gertk 0:b612024f5aee 758 {
gertk 0:b612024f5aee 759 doBIT(ctx, 5, BR.L);
gertk 0:b612024f5aee 760 }
gertk 0:b612024f5aee 761
gertk 0:b612024f5aee 762
gertk 0:b612024f5aee 763 static void BIT_6_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 764 {
gertk 0:b612024f5aee 765 doBIT(ctx, 6, read8(ctx, WR.HL));
gertk 0:b612024f5aee 766 }
gertk 0:b612024f5aee 767
gertk 0:b612024f5aee 768
gertk 0:b612024f5aee 769 static void BIT_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 770 {
gertk 0:b612024f5aee 771 doBIT(ctx, 6, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 772
gertk 0:b612024f5aee 773 }
gertk 0:b612024f5aee 774
gertk 0:b612024f5aee 775
gertk 0:b612024f5aee 776 static void BIT_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 777 {
gertk 0:b612024f5aee 778 doBIT(ctx, 6, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 779
gertk 0:b612024f5aee 780 }
gertk 0:b612024f5aee 781
gertk 0:b612024f5aee 782
gertk 0:b612024f5aee 783 static void BIT_6_A (Z80Context* ctx)
gertk 0:b612024f5aee 784 {
gertk 0:b612024f5aee 785 doBIT(ctx, 6, BR.A);
gertk 0:b612024f5aee 786 }
gertk 0:b612024f5aee 787
gertk 0:b612024f5aee 788
gertk 0:b612024f5aee 789 static void BIT_6_B (Z80Context* ctx)
gertk 0:b612024f5aee 790 {
gertk 0:b612024f5aee 791 doBIT(ctx, 6, BR.B);
gertk 0:b612024f5aee 792 }
gertk 0:b612024f5aee 793
gertk 0:b612024f5aee 794
gertk 0:b612024f5aee 795 static void BIT_6_C (Z80Context* ctx)
gertk 0:b612024f5aee 796 {
gertk 0:b612024f5aee 797 doBIT(ctx, 6, BR.C);
gertk 0:b612024f5aee 798 }
gertk 0:b612024f5aee 799
gertk 0:b612024f5aee 800
gertk 0:b612024f5aee 801 static void BIT_6_D (Z80Context* ctx)
gertk 0:b612024f5aee 802 {
gertk 0:b612024f5aee 803 doBIT(ctx, 6, BR.D);
gertk 0:b612024f5aee 804 }
gertk 0:b612024f5aee 805
gertk 0:b612024f5aee 806
gertk 0:b612024f5aee 807 static void BIT_6_E (Z80Context* ctx)
gertk 0:b612024f5aee 808 {
gertk 0:b612024f5aee 809 doBIT(ctx, 6, BR.E);
gertk 0:b612024f5aee 810 }
gertk 0:b612024f5aee 811
gertk 0:b612024f5aee 812
gertk 0:b612024f5aee 813 static void BIT_6_H (Z80Context* ctx)
gertk 0:b612024f5aee 814 {
gertk 0:b612024f5aee 815 doBIT(ctx, 6, BR.H);
gertk 0:b612024f5aee 816 }
gertk 0:b612024f5aee 817
gertk 0:b612024f5aee 818
gertk 0:b612024f5aee 819 static void BIT_6_L (Z80Context* ctx)
gertk 0:b612024f5aee 820 {
gertk 0:b612024f5aee 821 doBIT(ctx, 6, BR.L);
gertk 0:b612024f5aee 822 }
gertk 0:b612024f5aee 823
gertk 0:b612024f5aee 824
gertk 0:b612024f5aee 825 static void BIT_7_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 826 {
gertk 0:b612024f5aee 827 doBIT(ctx, 7, read8(ctx, WR.HL));
gertk 0:b612024f5aee 828 }
gertk 0:b612024f5aee 829
gertk 0:b612024f5aee 830
gertk 0:b612024f5aee 831 static void BIT_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 832 {
gertk 0:b612024f5aee 833 doBIT(ctx, 7, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 834
gertk 0:b612024f5aee 835 }
gertk 0:b612024f5aee 836
gertk 0:b612024f5aee 837
gertk 0:b612024f5aee 838 static void BIT_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 839 {
gertk 0:b612024f5aee 840 doBIT(ctx, 7, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 841
gertk 0:b612024f5aee 842 }
gertk 0:b612024f5aee 843
gertk 0:b612024f5aee 844
gertk 0:b612024f5aee 845 static void BIT_7_A (Z80Context* ctx)
gertk 0:b612024f5aee 846 {
gertk 0:b612024f5aee 847 doBIT(ctx, 7, BR.A);
gertk 0:b612024f5aee 848 }
gertk 0:b612024f5aee 849
gertk 0:b612024f5aee 850
gertk 0:b612024f5aee 851 static void BIT_7_B (Z80Context* ctx)
gertk 0:b612024f5aee 852 {
gertk 0:b612024f5aee 853 doBIT(ctx, 7, BR.B);
gertk 0:b612024f5aee 854 }
gertk 0:b612024f5aee 855
gertk 0:b612024f5aee 856
gertk 0:b612024f5aee 857 static void BIT_7_C (Z80Context* ctx)
gertk 0:b612024f5aee 858 {
gertk 0:b612024f5aee 859 doBIT(ctx, 7, BR.C);
gertk 0:b612024f5aee 860 }
gertk 0:b612024f5aee 861
gertk 0:b612024f5aee 862
gertk 0:b612024f5aee 863 static void BIT_7_D (Z80Context* ctx)
gertk 0:b612024f5aee 864 {
gertk 0:b612024f5aee 865 doBIT(ctx, 7, BR.D);
gertk 0:b612024f5aee 866 }
gertk 0:b612024f5aee 867
gertk 0:b612024f5aee 868
gertk 0:b612024f5aee 869 static void BIT_7_E (Z80Context* ctx)
gertk 0:b612024f5aee 870 {
gertk 0:b612024f5aee 871 doBIT(ctx, 7, BR.E);
gertk 0:b612024f5aee 872 }
gertk 0:b612024f5aee 873
gertk 0:b612024f5aee 874
gertk 0:b612024f5aee 875 static void BIT_7_H (Z80Context* ctx)
gertk 0:b612024f5aee 876 {
gertk 0:b612024f5aee 877 doBIT(ctx, 7, BR.H);
gertk 0:b612024f5aee 878 }
gertk 0:b612024f5aee 879
gertk 0:b612024f5aee 880
gertk 0:b612024f5aee 881 static void BIT_7_L (Z80Context* ctx)
gertk 0:b612024f5aee 882 {
gertk 0:b612024f5aee 883 doBIT(ctx, 7, BR.L);
gertk 0:b612024f5aee 884 }
gertk 0:b612024f5aee 885
gertk 0:b612024f5aee 886
gertk 0:b612024f5aee 887 static void CALL_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 888 {
gertk 0:b612024f5aee 889 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 890 ctx->PC += 2;
gertk 0:b612024f5aee 891 if (condition(ctx, C_))
gertk 0:b612024f5aee 892 {
gertk 0:b612024f5aee 893 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 894 ctx->PC = addr;
gertk 0:b612024f5aee 895 }
gertk 0:b612024f5aee 896
gertk 0:b612024f5aee 897 }
gertk 0:b612024f5aee 898
gertk 0:b612024f5aee 899
gertk 0:b612024f5aee 900 static void CALL_C_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 901 {
gertk 0:b612024f5aee 902 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 903 ctx->PC += 2;
gertk 0:b612024f5aee 904 if (condition(ctx, C_C))
gertk 0:b612024f5aee 905 {
gertk 0:b612024f5aee 906 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 907 ctx->PC = addr;
gertk 0:b612024f5aee 908 }
gertk 0:b612024f5aee 909
gertk 0:b612024f5aee 910 }
gertk 0:b612024f5aee 911
gertk 0:b612024f5aee 912
gertk 0:b612024f5aee 913 static void CALL_M_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 914 {
gertk 0:b612024f5aee 915 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 916 ctx->PC += 2;
gertk 0:b612024f5aee 917 if (condition(ctx, C_M))
gertk 0:b612024f5aee 918 {
gertk 0:b612024f5aee 919 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 920 ctx->PC = addr;
gertk 0:b612024f5aee 921 }
gertk 0:b612024f5aee 922
gertk 0:b612024f5aee 923 }
gertk 0:b612024f5aee 924
gertk 0:b612024f5aee 925
gertk 0:b612024f5aee 926 static void CALL_NC_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 927 {
gertk 0:b612024f5aee 928 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 929 ctx->PC += 2;
gertk 0:b612024f5aee 930 if (condition(ctx, C_NC))
gertk 0:b612024f5aee 931 {
gertk 0:b612024f5aee 932 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 933 ctx->PC = addr;
gertk 0:b612024f5aee 934 }
gertk 0:b612024f5aee 935
gertk 0:b612024f5aee 936 }
gertk 0:b612024f5aee 937
gertk 0:b612024f5aee 938
gertk 0:b612024f5aee 939 static void CALL_NZ_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 940 {
gertk 0:b612024f5aee 941 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 942 ctx->PC += 2;
gertk 0:b612024f5aee 943 if (condition(ctx, C_NZ))
gertk 0:b612024f5aee 944 {
gertk 0:b612024f5aee 945 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 946 ctx->PC = addr;
gertk 0:b612024f5aee 947 }
gertk 0:b612024f5aee 948
gertk 0:b612024f5aee 949 }
gertk 0:b612024f5aee 950
gertk 0:b612024f5aee 951
gertk 0:b612024f5aee 952 static void CALL_P_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 953 {
gertk 0:b612024f5aee 954 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 955 ctx->PC += 2;
gertk 0:b612024f5aee 956 if (condition(ctx, C_P))
gertk 0:b612024f5aee 957 {
gertk 0:b612024f5aee 958 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 959 ctx->PC = addr;
gertk 0:b612024f5aee 960 }
gertk 0:b612024f5aee 961
gertk 0:b612024f5aee 962 }
gertk 0:b612024f5aee 963
gertk 0:b612024f5aee 964
gertk 0:b612024f5aee 965 static void CALL_PE_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 966 {
gertk 0:b612024f5aee 967 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 968 ctx->PC += 2;
gertk 0:b612024f5aee 969 if (condition(ctx, C_PE))
gertk 0:b612024f5aee 970 {
gertk 0:b612024f5aee 971 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 972 ctx->PC = addr;
gertk 0:b612024f5aee 973 }
gertk 0:b612024f5aee 974
gertk 0:b612024f5aee 975 }
gertk 0:b612024f5aee 976
gertk 0:b612024f5aee 977
gertk 0:b612024f5aee 978 static void CALL_PO_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 979 {
gertk 0:b612024f5aee 980 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 981 ctx->PC += 2;
gertk 0:b612024f5aee 982 if (condition(ctx, C_PO))
gertk 0:b612024f5aee 983 {
gertk 0:b612024f5aee 984 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 985 ctx->PC = addr;
gertk 0:b612024f5aee 986 }
gertk 0:b612024f5aee 987
gertk 0:b612024f5aee 988 }
gertk 0:b612024f5aee 989
gertk 0:b612024f5aee 990
gertk 0:b612024f5aee 991 static void CALL_Z_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 992 {
gertk 0:b612024f5aee 993 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 994 ctx->PC += 2;
gertk 0:b612024f5aee 995 if (condition(ctx, C_Z))
gertk 0:b612024f5aee 996 {
gertk 0:b612024f5aee 997 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 998 ctx->PC = addr;
gertk 0:b612024f5aee 999 }
gertk 0:b612024f5aee 1000
gertk 0:b612024f5aee 1001 }
gertk 0:b612024f5aee 1002
gertk 0:b612024f5aee 1003
gertk 0:b612024f5aee 1004 static void CCF (Z80Context* ctx)
gertk 0:b612024f5aee 1005 {
gertk 0:b612024f5aee 1006 VALFLAG(F_C, (1 - (byte)GETFLAG(F_C) != 0));
gertk 0:b612024f5aee 1007 RESFLAG(F_N);
gertk 0:b612024f5aee 1008
gertk 0:b612024f5aee 1009 }
gertk 0:b612024f5aee 1010
gertk 0:b612024f5aee 1011
gertk 0:b612024f5aee 1012 static void CP_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 1013 {
gertk 0:b612024f5aee 1014 byte val = read8(ctx, WR.HL);
gertk 0:b612024f5aee 1015 doArithmetic(ctx, val, 0, 1);
gertk 0:b612024f5aee 1016 adjustFlags(ctx, val);
gertk 0:b612024f5aee 1017 }
gertk 0:b612024f5aee 1018
gertk 0:b612024f5aee 1019
gertk 0:b612024f5aee 1020 static void CP_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 1021 {
gertk 0:b612024f5aee 1022 byte val = read8(ctx, WR.IX + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1023 doArithmetic(ctx, val, 0, 1);
gertk 0:b612024f5aee 1024 adjustFlags(ctx, val);
gertk 0:b612024f5aee 1025 }
gertk 0:b612024f5aee 1026
gertk 0:b612024f5aee 1027
gertk 0:b612024f5aee 1028 static void CP_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 1029 {
gertk 0:b612024f5aee 1030 byte val = read8(ctx, WR.IY + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1031 doArithmetic(ctx, val, 0, 1);
gertk 0:b612024f5aee 1032 adjustFlags(ctx, val);
gertk 0:b612024f5aee 1033 }
gertk 0:b612024f5aee 1034
gertk 0:b612024f5aee 1035
gertk 0:b612024f5aee 1036 static void CP_A (Z80Context* ctx)
gertk 0:b612024f5aee 1037 {
gertk 0:b612024f5aee 1038 doArithmetic(ctx, BR.A, 0, 1);
gertk 0:b612024f5aee 1039 adjustFlags(ctx, BR.A);
gertk 0:b612024f5aee 1040 }
gertk 0:b612024f5aee 1041
gertk 0:b612024f5aee 1042
gertk 0:b612024f5aee 1043 static void CP_B (Z80Context* ctx)
gertk 0:b612024f5aee 1044 {
gertk 0:b612024f5aee 1045 doArithmetic(ctx, BR.B, 0, 1);
gertk 0:b612024f5aee 1046 adjustFlags(ctx, BR.B);
gertk 0:b612024f5aee 1047 }
gertk 0:b612024f5aee 1048
gertk 0:b612024f5aee 1049
gertk 0:b612024f5aee 1050 static void CP_C (Z80Context* ctx)
gertk 0:b612024f5aee 1051 {
gertk 0:b612024f5aee 1052 doArithmetic(ctx, BR.C, 0, 1);
gertk 0:b612024f5aee 1053 adjustFlags(ctx, BR.C);
gertk 0:b612024f5aee 1054 }
gertk 0:b612024f5aee 1055
gertk 0:b612024f5aee 1056
gertk 0:b612024f5aee 1057 static void CP_D (Z80Context* ctx)
gertk 0:b612024f5aee 1058 {
gertk 0:b612024f5aee 1059 doArithmetic(ctx, BR.D, 0, 1);
gertk 0:b612024f5aee 1060 adjustFlags(ctx, BR.D);
gertk 0:b612024f5aee 1061 }
gertk 0:b612024f5aee 1062
gertk 0:b612024f5aee 1063
gertk 0:b612024f5aee 1064 static void CP_E (Z80Context* ctx)
gertk 0:b612024f5aee 1065 {
gertk 0:b612024f5aee 1066 doArithmetic(ctx, BR.E, 0, 1);
gertk 0:b612024f5aee 1067 adjustFlags(ctx, BR.E);
gertk 0:b612024f5aee 1068 }
gertk 0:b612024f5aee 1069
gertk 0:b612024f5aee 1070
gertk 0:b612024f5aee 1071 static void CP_H (Z80Context* ctx)
gertk 0:b612024f5aee 1072 {
gertk 0:b612024f5aee 1073 doArithmetic(ctx, BR.H, 0, 1);
gertk 0:b612024f5aee 1074 adjustFlags(ctx, BR.H);
gertk 0:b612024f5aee 1075 }
gertk 0:b612024f5aee 1076
gertk 0:b612024f5aee 1077
gertk 0:b612024f5aee 1078 static void CP_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 1079 {
gertk 0:b612024f5aee 1080 doArithmetic(ctx, BR.IXh, 0, 1);
gertk 0:b612024f5aee 1081 adjustFlags(ctx, BR.IXh);
gertk 0:b612024f5aee 1082 }
gertk 0:b612024f5aee 1083
gertk 0:b612024f5aee 1084
gertk 0:b612024f5aee 1085 static void CP_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 1086 {
gertk 0:b612024f5aee 1087 doArithmetic(ctx, BR.IXl, 0, 1);
gertk 0:b612024f5aee 1088 adjustFlags(ctx, BR.IXl);
gertk 0:b612024f5aee 1089 }
gertk 0:b612024f5aee 1090
gertk 0:b612024f5aee 1091
gertk 0:b612024f5aee 1092 static void CP_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 1093 {
gertk 0:b612024f5aee 1094 doArithmetic(ctx, BR.IYh, 0, 1);
gertk 0:b612024f5aee 1095 adjustFlags(ctx, BR.IYh);
gertk 0:b612024f5aee 1096 }
gertk 0:b612024f5aee 1097
gertk 0:b612024f5aee 1098
gertk 0:b612024f5aee 1099 static void CP_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 1100 {
gertk 0:b612024f5aee 1101 doArithmetic(ctx, BR.IYl, 0, 1);
gertk 0:b612024f5aee 1102 adjustFlags(ctx, BR.IYl);
gertk 0:b612024f5aee 1103 }
gertk 0:b612024f5aee 1104
gertk 0:b612024f5aee 1105
gertk 0:b612024f5aee 1106 static void CP_L (Z80Context* ctx)
gertk 0:b612024f5aee 1107 {
gertk 0:b612024f5aee 1108 doArithmetic(ctx, BR.L, 0, 1);
gertk 0:b612024f5aee 1109 adjustFlags(ctx, BR.L);
gertk 0:b612024f5aee 1110 }
gertk 0:b612024f5aee 1111
gertk 0:b612024f5aee 1112
gertk 0:b612024f5aee 1113 static void CP_n (Z80Context* ctx)
gertk 0:b612024f5aee 1114 {
gertk 0:b612024f5aee 1115 byte val = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 1116 doArithmetic(ctx, val, 0, 1);
gertk 0:b612024f5aee 1117 adjustFlags(ctx, val);
gertk 0:b612024f5aee 1118 }
gertk 0:b612024f5aee 1119
gertk 0:b612024f5aee 1120
gertk 0:b612024f5aee 1121 static void CPD (Z80Context* ctx)
gertk 0:b612024f5aee 1122 {
gertk 0:b612024f5aee 1123 CP_off_HL(ctx);
gertk 0:b612024f5aee 1124 WR.HL--;
gertk 0:b612024f5aee 1125 WR.BC--;
gertk 0:b612024f5aee 1126 VALFLAG(F_PV, WR.BC != 0);
gertk 0:b612024f5aee 1127 }
gertk 0:b612024f5aee 1128
gertk 0:b612024f5aee 1129
gertk 0:b612024f5aee 1130 static void CPDR (Z80Context* ctx)
gertk 0:b612024f5aee 1131 {
gertk 0:b612024f5aee 1132 do
gertk 0:b612024f5aee 1133 {
gertk 0:b612024f5aee 1134 CPD(ctx);
gertk 0:b612024f5aee 1135 } while ((WR.BC != 0) && (BR.A != read8(ctx, WR.HL)));
gertk 0:b612024f5aee 1136
gertk 0:b612024f5aee 1137 }
gertk 0:b612024f5aee 1138
gertk 0:b612024f5aee 1139
gertk 0:b612024f5aee 1140 static void CPI (Z80Context* ctx)
gertk 0:b612024f5aee 1141 {
gertk 0:b612024f5aee 1142 CP_off_HL(ctx);
gertk 0:b612024f5aee 1143 WR.HL++;
gertk 0:b612024f5aee 1144 WR.BC--;
gertk 0:b612024f5aee 1145 VALFLAG(F_PV, WR.BC != 0);
gertk 0:b612024f5aee 1146 }
gertk 0:b612024f5aee 1147
gertk 0:b612024f5aee 1148
gertk 0:b612024f5aee 1149 static void CPIR (Z80Context* ctx)
gertk 0:b612024f5aee 1150 {
gertk 0:b612024f5aee 1151 do
gertk 0:b612024f5aee 1152 {
gertk 0:b612024f5aee 1153 CPI(ctx);
gertk 0:b612024f5aee 1154 } while ((WR.BC != 0) && (BR.A != read8(ctx, WR.HL)));
gertk 0:b612024f5aee 1155
gertk 0:b612024f5aee 1156 }
gertk 0:b612024f5aee 1157
gertk 0:b612024f5aee 1158
gertk 0:b612024f5aee 1159 static void CPL (Z80Context* ctx)
gertk 0:b612024f5aee 1160 {
gertk 0:b612024f5aee 1161 BR.A = ~BR.A;
gertk 0:b612024f5aee 1162 SETFLAG(F_H | F_N);
gertk 0:b612024f5aee 1163
gertk 0:b612024f5aee 1164 }
gertk 0:b612024f5aee 1165
gertk 0:b612024f5aee 1166
gertk 0:b612024f5aee 1167 static void DAA (Z80Context* ctx)
gertk 0:b612024f5aee 1168 {
gertk 0:b612024f5aee 1169 doDAA(ctx);
gertk 0:b612024f5aee 1170
gertk 0:b612024f5aee 1171 }
gertk 0:b612024f5aee 1172
gertk 0:b612024f5aee 1173
gertk 0:b612024f5aee 1174 static void DEC_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 1175 {
gertk 0:b612024f5aee 1176 write8(ctx, WR.HL, doIncDec(ctx, read8(ctx, WR.HL), ID_DEC));
gertk 0:b612024f5aee 1177 }
gertk 0:b612024f5aee 1178
gertk 0:b612024f5aee 1179
gertk 0:b612024f5aee 1180 static void DEC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 1181 {
gertk 0:b612024f5aee 1182 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 1183 write8(ctx, WR.IX + off, doIncDec(ctx, read8(ctx, WR.IX + off), ID_DEC));
gertk 0:b612024f5aee 1184
gertk 0:b612024f5aee 1185 }
gertk 0:b612024f5aee 1186
gertk 0:b612024f5aee 1187
gertk 0:b612024f5aee 1188 static void DEC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 1189 {
gertk 0:b612024f5aee 1190 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 1191 write8(ctx, WR.IY + off, doIncDec(ctx, read8(ctx, WR.IY + off), ID_DEC));
gertk 0:b612024f5aee 1192
gertk 0:b612024f5aee 1193 }
gertk 0:b612024f5aee 1194
gertk 0:b612024f5aee 1195
gertk 0:b612024f5aee 1196 static void DEC_A (Z80Context* ctx)
gertk 0:b612024f5aee 1197 {
gertk 0:b612024f5aee 1198 BR.A = doIncDec(ctx, BR.A, ID_DEC);
gertk 0:b612024f5aee 1199 }
gertk 0:b612024f5aee 1200
gertk 0:b612024f5aee 1201
gertk 0:b612024f5aee 1202 static void DEC_B (Z80Context* ctx)
gertk 0:b612024f5aee 1203 {
gertk 0:b612024f5aee 1204 BR.B = doIncDec(ctx, BR.B, ID_DEC);
gertk 0:b612024f5aee 1205 }
gertk 0:b612024f5aee 1206
gertk 0:b612024f5aee 1207
gertk 0:b612024f5aee 1208 static void DEC_BC (Z80Context* ctx)
gertk 0:b612024f5aee 1209 {
gertk 0:b612024f5aee 1210 BR.B = doIncDec(ctx, BR.B, ID_DEC);
gertk 0:b612024f5aee 1211 }
gertk 0:b612024f5aee 1212
gertk 0:b612024f5aee 1213
gertk 0:b612024f5aee 1214 static void DEC_C (Z80Context* ctx)
gertk 0:b612024f5aee 1215 {
gertk 0:b612024f5aee 1216 BR.C = doIncDec(ctx, BR.C, ID_DEC);
gertk 0:b612024f5aee 1217 }
gertk 0:b612024f5aee 1218
gertk 0:b612024f5aee 1219
gertk 0:b612024f5aee 1220 static void DEC_D (Z80Context* ctx)
gertk 0:b612024f5aee 1221 {
gertk 0:b612024f5aee 1222 BR.D = doIncDec(ctx, BR.D, ID_DEC);
gertk 0:b612024f5aee 1223 }
gertk 0:b612024f5aee 1224
gertk 0:b612024f5aee 1225
gertk 0:b612024f5aee 1226 static void DEC_DE (Z80Context* ctx)
gertk 0:b612024f5aee 1227 {
gertk 0:b612024f5aee 1228 BR.D = doIncDec(ctx, BR.D, ID_DEC);
gertk 0:b612024f5aee 1229 }
gertk 0:b612024f5aee 1230
gertk 0:b612024f5aee 1231
gertk 0:b612024f5aee 1232 static void DEC_E (Z80Context* ctx)
gertk 0:b612024f5aee 1233 {
gertk 0:b612024f5aee 1234 BR.E = doIncDec(ctx, BR.E, ID_DEC);
gertk 0:b612024f5aee 1235 }
gertk 0:b612024f5aee 1236
gertk 0:b612024f5aee 1237
gertk 0:b612024f5aee 1238 static void DEC_H (Z80Context* ctx)
gertk 0:b612024f5aee 1239 {
gertk 0:b612024f5aee 1240 BR.H = doIncDec(ctx, BR.H, ID_DEC);
gertk 0:b612024f5aee 1241 }
gertk 0:b612024f5aee 1242
gertk 0:b612024f5aee 1243
gertk 0:b612024f5aee 1244 static void DEC_HL (Z80Context* ctx)
gertk 0:b612024f5aee 1245 {
gertk 0:b612024f5aee 1246 BR.H = doIncDec(ctx, BR.H, ID_DEC);
gertk 0:b612024f5aee 1247 }
gertk 0:b612024f5aee 1248
gertk 0:b612024f5aee 1249
gertk 0:b612024f5aee 1250 static void DEC_IX (Z80Context* ctx)
gertk 0:b612024f5aee 1251 {
gertk 0:b612024f5aee 1252 WR.IX = doIncDec(ctx, WR.IX, ID_DEC);
gertk 0:b612024f5aee 1253
gertk 0:b612024f5aee 1254 }
gertk 0:b612024f5aee 1255
gertk 0:b612024f5aee 1256
gertk 0:b612024f5aee 1257 static void DEC_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 1258 {
gertk 0:b612024f5aee 1259 BR.IXh = doIncDec(ctx, BR.IXh, ID_DEC);
gertk 0:b612024f5aee 1260 }
gertk 0:b612024f5aee 1261
gertk 0:b612024f5aee 1262
gertk 0:b612024f5aee 1263 static void DEC_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 1264 {
gertk 0:b612024f5aee 1265 BR.IXl = doIncDec(ctx, BR.IXl, ID_DEC);
gertk 0:b612024f5aee 1266 }
gertk 0:b612024f5aee 1267
gertk 0:b612024f5aee 1268
gertk 0:b612024f5aee 1269 static void DEC_IY (Z80Context* ctx)
gertk 0:b612024f5aee 1270 {
gertk 0:b612024f5aee 1271 WR.IY = doIncDec(ctx, WR.IY, ID_DEC);
gertk 0:b612024f5aee 1272
gertk 0:b612024f5aee 1273 }
gertk 0:b612024f5aee 1274
gertk 0:b612024f5aee 1275
gertk 0:b612024f5aee 1276 static void DEC_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 1277 {
gertk 0:b612024f5aee 1278 BR.IYh = doIncDec(ctx, BR.IYh, ID_DEC);
gertk 0:b612024f5aee 1279 }
gertk 0:b612024f5aee 1280
gertk 0:b612024f5aee 1281
gertk 0:b612024f5aee 1282 static void DEC_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 1283 {
gertk 0:b612024f5aee 1284 BR.IYl = doIncDec(ctx, BR.IYl, ID_DEC);
gertk 0:b612024f5aee 1285 }
gertk 0:b612024f5aee 1286
gertk 0:b612024f5aee 1287
gertk 0:b612024f5aee 1288 static void DEC_L (Z80Context* ctx)
gertk 0:b612024f5aee 1289 {
gertk 0:b612024f5aee 1290 BR.L = doIncDec(ctx, BR.L, ID_DEC);
gertk 0:b612024f5aee 1291 }
gertk 0:b612024f5aee 1292
gertk 0:b612024f5aee 1293
gertk 0:b612024f5aee 1294 static void DEC_SP (Z80Context* ctx)
gertk 0:b612024f5aee 1295 {
gertk 0:b612024f5aee 1296 WR.SP = doIncDec(ctx, WR.SP, ID_DEC);
gertk 0:b612024f5aee 1297
gertk 0:b612024f5aee 1298 }
gertk 0:b612024f5aee 1299
gertk 0:b612024f5aee 1300
gertk 0:b612024f5aee 1301 static void DI (Z80Context* ctx)
gertk 0:b612024f5aee 1302 {
gertk 0:b612024f5aee 1303 ctx->IFF1 = ctx->IFF2 = IE_DI;
gertk 0:b612024f5aee 1304 }
gertk 0:b612024f5aee 1305
gertk 0:b612024f5aee 1306
gertk 0:b612024f5aee 1307 static void DJNZ_off_PC_e_ (Z80Context* ctx)
gertk 0:b612024f5aee 1308 {
gertk 0:b612024f5aee 1309 int off = doComplement(read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1310 BR.B--;
gertk 0:b612024f5aee 1311 if (BR.B)
gertk 0:b612024f5aee 1312 ctx->PC += off;
gertk 0:b612024f5aee 1313 }
gertk 0:b612024f5aee 1314
gertk 0:b612024f5aee 1315
gertk 0:b612024f5aee 1316 static void EI (Z80Context* ctx)
gertk 0:b612024f5aee 1317 {
gertk 0:b612024f5aee 1318 ctx->IFF1 = ctx->IFF2 = IE_EI;
gertk 0:b612024f5aee 1319 }
gertk 0:b612024f5aee 1320
gertk 0:b612024f5aee 1321
gertk 0:b612024f5aee 1322 static void EX_off_SP_HL (Z80Context* ctx)
gertk 0:b612024f5aee 1323 {
gertk 0:b612024f5aee 1324 ushort tmp = read16(ctx, WR.SP);
gertk 0:b612024f5aee 1325 write16(ctx, WR.SP, WR.HL);
gertk 0:b612024f5aee 1326 WR.HL = tmp;
gertk 0:b612024f5aee 1327 }
gertk 0:b612024f5aee 1328
gertk 0:b612024f5aee 1329
gertk 0:b612024f5aee 1330 static void EX_off_SP_IX (Z80Context* ctx)
gertk 0:b612024f5aee 1331 {
gertk 0:b612024f5aee 1332 ushort tmp = read16(ctx, WR.SP);
gertk 0:b612024f5aee 1333 write16(ctx, WR.SP, WR.IX);
gertk 0:b612024f5aee 1334 WR.IX = tmp;
gertk 0:b612024f5aee 1335 }
gertk 0:b612024f5aee 1336
gertk 0:b612024f5aee 1337
gertk 0:b612024f5aee 1338 static void EX_off_SP_IY (Z80Context* ctx)
gertk 0:b612024f5aee 1339 {
gertk 0:b612024f5aee 1340 ushort tmp = read16(ctx, WR.SP);
gertk 0:b612024f5aee 1341 write16(ctx, WR.SP, WR.IY);
gertk 0:b612024f5aee 1342 WR.IY = tmp;
gertk 0:b612024f5aee 1343 }
gertk 0:b612024f5aee 1344
gertk 0:b612024f5aee 1345
gertk 0:b612024f5aee 1346 static void EX_AF_AF_ (Z80Context* ctx)
gertk 0:b612024f5aee 1347 {
gertk 0:b612024f5aee 1348 ushort tmp = ctx->R1.wr.AF;
gertk 0:b612024f5aee 1349 ctx->R1.wr.AF = ctx->R2.wr.AF;
gertk 0:b612024f5aee 1350 ctx->R2.wr.AF = tmp;
gertk 0:b612024f5aee 1351 }
gertk 0:b612024f5aee 1352
gertk 0:b612024f5aee 1353
gertk 0:b612024f5aee 1354 static void EX_DE_HL (Z80Context* ctx)
gertk 0:b612024f5aee 1355 {
gertk 0:b612024f5aee 1356 ushort tmp = WR.DE;
gertk 0:b612024f5aee 1357 WR.DE = WR.HL;
gertk 0:b612024f5aee 1358 WR.HL = tmp;
gertk 0:b612024f5aee 1359 }
gertk 0:b612024f5aee 1360
gertk 0:b612024f5aee 1361
gertk 0:b612024f5aee 1362 static void EXX (Z80Context* ctx)
gertk 0:b612024f5aee 1363 {
gertk 0:b612024f5aee 1364 ushort tmp;
gertk 0:b612024f5aee 1365 tmp = ctx->R1.wr.BC;
gertk 0:b612024f5aee 1366 ctx->R1.wr.BC = ctx->R2.wr.BC;
gertk 0:b612024f5aee 1367 ctx->R2.wr.BC = tmp;
gertk 0:b612024f5aee 1368
gertk 0:b612024f5aee 1369 tmp = ctx->R1.wr.DE;
gertk 0:b612024f5aee 1370 ctx->R1.wr.DE = ctx->R2.wr.DE;
gertk 0:b612024f5aee 1371 ctx->R2.wr.DE = tmp;
gertk 0:b612024f5aee 1372
gertk 0:b612024f5aee 1373 tmp = ctx->R1.wr.HL;
gertk 0:b612024f5aee 1374 ctx->R1.wr.HL = ctx->R2.wr.HL;
gertk 0:b612024f5aee 1375 ctx->R2.wr.HL = tmp;
gertk 0:b612024f5aee 1376 }
gertk 0:b612024f5aee 1377
gertk 0:b612024f5aee 1378
gertk 0:b612024f5aee 1379 static void HALT (Z80Context* ctx)
gertk 0:b612024f5aee 1380 {
gertk 0:b612024f5aee 1381 /* What should we do here? */
gertk 0:b612024f5aee 1382 }
gertk 0:b612024f5aee 1383
gertk 0:b612024f5aee 1384
gertk 0:b612024f5aee 1385 static void IM_0 (Z80Context* ctx)
gertk 0:b612024f5aee 1386 {
gertk 0:b612024f5aee 1387 ctx->IM = 0;
gertk 0:b612024f5aee 1388 }
gertk 0:b612024f5aee 1389
gertk 0:b612024f5aee 1390
gertk 0:b612024f5aee 1391 static void IM_1 (Z80Context* ctx)
gertk 0:b612024f5aee 1392 {
gertk 0:b612024f5aee 1393 ctx->IM = 1;
gertk 0:b612024f5aee 1394 }
gertk 0:b612024f5aee 1395
gertk 0:b612024f5aee 1396
gertk 0:b612024f5aee 1397 static void IM_2 (Z80Context* ctx)
gertk 0:b612024f5aee 1398 {
gertk 0:b612024f5aee 1399 ctx->IM = 2;
gertk 0:b612024f5aee 1400 }
gertk 0:b612024f5aee 1401
gertk 0:b612024f5aee 1402
gertk 0:b612024f5aee 1403 static void IN_A_off_C (Z80Context* ctx)
gertk 0:b612024f5aee 1404 {
gertk 0:b612024f5aee 1405 BR.A = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1406 }
gertk 0:b612024f5aee 1407
gertk 0:b612024f5aee 1408
gertk 0:b612024f5aee 1409 static void IN_A_off_n (Z80Context* ctx)
gertk 0:b612024f5aee 1410 {
gertk 0:b612024f5aee 1411 byte port = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 1412 BR.A = ioRead(ctx, port);
gertk 0:b612024f5aee 1413 }
gertk 0:b612024f5aee 1414
gertk 0:b612024f5aee 1415
gertk 0:b612024f5aee 1416 static void IN_B_off_C (Z80Context* ctx)
gertk 0:b612024f5aee 1417 {
gertk 0:b612024f5aee 1418 BR.B = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1419 }
gertk 0:b612024f5aee 1420
gertk 0:b612024f5aee 1421
gertk 0:b612024f5aee 1422 static void IN_C_off_C (Z80Context* ctx)
gertk 0:b612024f5aee 1423 {
gertk 0:b612024f5aee 1424 BR.C = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1425 }
gertk 0:b612024f5aee 1426
gertk 0:b612024f5aee 1427
gertk 0:b612024f5aee 1428 static void IN_D_off_C (Z80Context* ctx)
gertk 0:b612024f5aee 1429 {
gertk 0:b612024f5aee 1430 BR.D = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1431 }
gertk 0:b612024f5aee 1432
gertk 0:b612024f5aee 1433
gertk 0:b612024f5aee 1434 static void IN_E_off_C (Z80Context* ctx)
gertk 0:b612024f5aee 1435 {
gertk 0:b612024f5aee 1436 BR.E = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1437 }
gertk 0:b612024f5aee 1438
gertk 0:b612024f5aee 1439
gertk 0:b612024f5aee 1440 static void IN_F_off_C (Z80Context* ctx)
gertk 0:b612024f5aee 1441 {
gertk 0:b612024f5aee 1442 BR.F = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1443 }
gertk 0:b612024f5aee 1444
gertk 0:b612024f5aee 1445
gertk 0:b612024f5aee 1446 static void IN_H_off_C (Z80Context* ctx)
gertk 0:b612024f5aee 1447 {
gertk 0:b612024f5aee 1448 BR.H = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1449 }
gertk 0:b612024f5aee 1450
gertk 0:b612024f5aee 1451
gertk 0:b612024f5aee 1452 static void IN_L_off_C (Z80Context* ctx)
gertk 0:b612024f5aee 1453 {
gertk 0:b612024f5aee 1454 BR.L = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1455 }
gertk 0:b612024f5aee 1456
gertk 0:b612024f5aee 1457
gertk 0:b612024f5aee 1458 static void INC_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 1459 {
gertk 0:b612024f5aee 1460 write8(ctx, WR.HL, doIncDec(ctx, read8(ctx, WR.HL), ID_INC));
gertk 0:b612024f5aee 1461 }
gertk 0:b612024f5aee 1462
gertk 0:b612024f5aee 1463
gertk 0:b612024f5aee 1464 static void INC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 1465 {
gertk 0:b612024f5aee 1466 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 1467 write8(ctx, WR.IX + off, doIncDec(ctx, read8(ctx, WR.IX + off), ID_INC));
gertk 0:b612024f5aee 1468
gertk 0:b612024f5aee 1469 }
gertk 0:b612024f5aee 1470
gertk 0:b612024f5aee 1471
gertk 0:b612024f5aee 1472 static void INC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 1473 {
gertk 0:b612024f5aee 1474 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 1475 write8(ctx, WR.IY + off, doIncDec(ctx, read8(ctx, WR.IY + off), ID_INC));
gertk 0:b612024f5aee 1476
gertk 0:b612024f5aee 1477 }
gertk 0:b612024f5aee 1478
gertk 0:b612024f5aee 1479
gertk 0:b612024f5aee 1480 static void INC_A (Z80Context* ctx)
gertk 0:b612024f5aee 1481 {
gertk 0:b612024f5aee 1482 BR.A = doIncDec(ctx, BR.A, ID_INC);
gertk 0:b612024f5aee 1483 }
gertk 0:b612024f5aee 1484
gertk 0:b612024f5aee 1485
gertk 0:b612024f5aee 1486 static void INC_B (Z80Context* ctx)
gertk 0:b612024f5aee 1487 {
gertk 0:b612024f5aee 1488 BR.B = doIncDec(ctx, BR.B, ID_INC);
gertk 0:b612024f5aee 1489 }
gertk 0:b612024f5aee 1490
gertk 0:b612024f5aee 1491
gertk 0:b612024f5aee 1492 static void INC_BC (Z80Context* ctx)
gertk 0:b612024f5aee 1493 {
gertk 0:b612024f5aee 1494 BR.B = doIncDec(ctx, BR.B, ID_INC);
gertk 0:b612024f5aee 1495 }
gertk 0:b612024f5aee 1496
gertk 0:b612024f5aee 1497
gertk 0:b612024f5aee 1498 static void INC_C (Z80Context* ctx)
gertk 0:b612024f5aee 1499 {
gertk 0:b612024f5aee 1500 BR.C = doIncDec(ctx, BR.C, ID_INC);
gertk 0:b612024f5aee 1501 }
gertk 0:b612024f5aee 1502
gertk 0:b612024f5aee 1503
gertk 0:b612024f5aee 1504 static void INC_D (Z80Context* ctx)
gertk 0:b612024f5aee 1505 {
gertk 0:b612024f5aee 1506 BR.D = doIncDec(ctx, BR.D, ID_INC);
gertk 0:b612024f5aee 1507 }
gertk 0:b612024f5aee 1508
gertk 0:b612024f5aee 1509
gertk 0:b612024f5aee 1510 static void INC_DE (Z80Context* ctx)
gertk 0:b612024f5aee 1511 {
gertk 0:b612024f5aee 1512 BR.D = doIncDec(ctx, BR.D, ID_INC);
gertk 0:b612024f5aee 1513 }
gertk 0:b612024f5aee 1514
gertk 0:b612024f5aee 1515
gertk 0:b612024f5aee 1516 static void INC_E (Z80Context* ctx)
gertk 0:b612024f5aee 1517 {
gertk 0:b612024f5aee 1518 BR.E = doIncDec(ctx, BR.E, ID_INC);
gertk 0:b612024f5aee 1519 }
gertk 0:b612024f5aee 1520
gertk 0:b612024f5aee 1521
gertk 0:b612024f5aee 1522 static void INC_H (Z80Context* ctx)
gertk 0:b612024f5aee 1523 {
gertk 0:b612024f5aee 1524 BR.H = doIncDec(ctx, BR.H, ID_INC);
gertk 0:b612024f5aee 1525 }
gertk 0:b612024f5aee 1526
gertk 0:b612024f5aee 1527
gertk 0:b612024f5aee 1528 static void INC_HL (Z80Context* ctx)
gertk 0:b612024f5aee 1529 {
gertk 0:b612024f5aee 1530 BR.H = doIncDec(ctx, BR.H, ID_INC);
gertk 0:b612024f5aee 1531 }
gertk 0:b612024f5aee 1532
gertk 0:b612024f5aee 1533
gertk 0:b612024f5aee 1534 static void INC_IX (Z80Context* ctx)
gertk 0:b612024f5aee 1535 {
gertk 0:b612024f5aee 1536 WR.IX = doIncDec(ctx, WR.IX, ID_INC);
gertk 0:b612024f5aee 1537
gertk 0:b612024f5aee 1538 }
gertk 0:b612024f5aee 1539
gertk 0:b612024f5aee 1540
gertk 0:b612024f5aee 1541 static void INC_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 1542 {
gertk 0:b612024f5aee 1543 BR.IXh = doIncDec(ctx, BR.IXh, ID_INC);
gertk 0:b612024f5aee 1544 }
gertk 0:b612024f5aee 1545
gertk 0:b612024f5aee 1546
gertk 0:b612024f5aee 1547 static void INC_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 1548 {
gertk 0:b612024f5aee 1549 BR.IXl = doIncDec(ctx, BR.IXl, ID_INC);
gertk 0:b612024f5aee 1550 }
gertk 0:b612024f5aee 1551
gertk 0:b612024f5aee 1552
gertk 0:b612024f5aee 1553 static void INC_IY (Z80Context* ctx)
gertk 0:b612024f5aee 1554 {
gertk 0:b612024f5aee 1555 WR.IY = doIncDec(ctx, WR.IY, ID_INC);
gertk 0:b612024f5aee 1556
gertk 0:b612024f5aee 1557 }
gertk 0:b612024f5aee 1558
gertk 0:b612024f5aee 1559
gertk 0:b612024f5aee 1560 static void INC_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 1561 {
gertk 0:b612024f5aee 1562 BR.IYh = doIncDec(ctx, BR.IYh, ID_INC);
gertk 0:b612024f5aee 1563 }
gertk 0:b612024f5aee 1564
gertk 0:b612024f5aee 1565
gertk 0:b612024f5aee 1566 static void INC_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 1567 {
gertk 0:b612024f5aee 1568 BR.IYl = doIncDec(ctx, BR.IYl, ID_INC);
gertk 0:b612024f5aee 1569 }
gertk 0:b612024f5aee 1570
gertk 0:b612024f5aee 1571
gertk 0:b612024f5aee 1572 static void INC_L (Z80Context* ctx)
gertk 0:b612024f5aee 1573 {
gertk 0:b612024f5aee 1574 BR.L = doIncDec(ctx, BR.L, ID_INC);
gertk 0:b612024f5aee 1575 }
gertk 0:b612024f5aee 1576
gertk 0:b612024f5aee 1577
gertk 0:b612024f5aee 1578 static void INC_SP (Z80Context* ctx)
gertk 0:b612024f5aee 1579 {
gertk 0:b612024f5aee 1580 WR.SP = doIncDec(ctx, WR.SP, ID_INC);
gertk 0:b612024f5aee 1581
gertk 0:b612024f5aee 1582 }
gertk 0:b612024f5aee 1583
gertk 0:b612024f5aee 1584
gertk 0:b612024f5aee 1585 static void IND (Z80Context* ctx)
gertk 0:b612024f5aee 1586 {
gertk 0:b612024f5aee 1587 byte val = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1588 write8(ctx, WR.HL, val);
gertk 0:b612024f5aee 1589 WR.HL--;
gertk 0:b612024f5aee 1590 BR.B = doIncDec(ctx, BR.B, ID_DEC);
gertk 0:b612024f5aee 1591 VALFLAG(F_N, (val & 0x80) != 0);
gertk 0:b612024f5aee 1592
gertk 0:b612024f5aee 1593 }
gertk 0:b612024f5aee 1594
gertk 0:b612024f5aee 1595
gertk 0:b612024f5aee 1596 static void INDR (Z80Context* ctx)
gertk 0:b612024f5aee 1597 {
gertk 0:b612024f5aee 1598 do
gertk 0:b612024f5aee 1599 {
gertk 0:b612024f5aee 1600 IND(ctx);
gertk 0:b612024f5aee 1601 } while(BR.B != 0);
gertk 0:b612024f5aee 1602 SETFLAG(F_Z);
gertk 0:b612024f5aee 1603 RESFLAG(F_5 | F_3 | F_S);
gertk 0:b612024f5aee 1604 }
gertk 0:b612024f5aee 1605
gertk 0:b612024f5aee 1606
gertk 0:b612024f5aee 1607 static void INI (Z80Context* ctx)
gertk 0:b612024f5aee 1608 {
gertk 0:b612024f5aee 1609 byte val = ioRead(ctx, BR.C);
gertk 0:b612024f5aee 1610 write8(ctx, WR.HL, val);
gertk 0:b612024f5aee 1611 WR.HL++;
gertk 0:b612024f5aee 1612 BR.B = doIncDec(ctx, BR.B, ID_DEC);
gertk 0:b612024f5aee 1613 VALFLAG(F_N, (val & 0x80) != 0);
gertk 0:b612024f5aee 1614 }
gertk 0:b612024f5aee 1615
gertk 0:b612024f5aee 1616
gertk 0:b612024f5aee 1617 static void INIR (Z80Context* ctx)
gertk 0:b612024f5aee 1618 {
gertk 0:b612024f5aee 1619 do
gertk 0:b612024f5aee 1620 {
gertk 0:b612024f5aee 1621 INI(ctx);
gertk 0:b612024f5aee 1622 } while(BR.B != 0);
gertk 0:b612024f5aee 1623 SETFLAG(F_Z);
gertk 0:b612024f5aee 1624 RESFLAG(F_5 | F_3 | F_S);
gertk 0:b612024f5aee 1625 }
gertk 0:b612024f5aee 1626
gertk 0:b612024f5aee 1627
gertk 0:b612024f5aee 1628 static void JP_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 1629 {
gertk 0:b612024f5aee 1630 ctx->PC = WR.HL;
gertk 0:b612024f5aee 1631
gertk 0:b612024f5aee 1632 }
gertk 0:b612024f5aee 1633
gertk 0:b612024f5aee 1634
gertk 0:b612024f5aee 1635 static void JP_off_IX (Z80Context* ctx)
gertk 0:b612024f5aee 1636 {
gertk 0:b612024f5aee 1637 ctx->PC = WR.IX;
gertk 0:b612024f5aee 1638
gertk 0:b612024f5aee 1639 }
gertk 0:b612024f5aee 1640
gertk 0:b612024f5aee 1641
gertk 0:b612024f5aee 1642 static void JP_off_IY (Z80Context* ctx)
gertk 0:b612024f5aee 1643 {
gertk 0:b612024f5aee 1644 ctx->PC = WR.IY;
gertk 0:b612024f5aee 1645
gertk 0:b612024f5aee 1646 }
gertk 0:b612024f5aee 1647
gertk 0:b612024f5aee 1648
gertk 0:b612024f5aee 1649 static void JP_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 1650 {
gertk 0:b612024f5aee 1651 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 1652 ctx->PC += 2;
gertk 0:b612024f5aee 1653 if (condition(ctx, C_))
gertk 0:b612024f5aee 1654 ctx->PC = addr;
gertk 0:b612024f5aee 1655
gertk 0:b612024f5aee 1656 }
gertk 0:b612024f5aee 1657
gertk 0:b612024f5aee 1658
gertk 0:b612024f5aee 1659 static void JP_C_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 1660 {
gertk 0:b612024f5aee 1661 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 1662 ctx->PC += 2;
gertk 0:b612024f5aee 1663 if (condition(ctx, C_C))
gertk 0:b612024f5aee 1664 ctx->PC = addr;
gertk 0:b612024f5aee 1665
gertk 0:b612024f5aee 1666 }
gertk 0:b612024f5aee 1667
gertk 0:b612024f5aee 1668
gertk 0:b612024f5aee 1669 static void JP_M_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 1670 {
gertk 0:b612024f5aee 1671 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 1672 ctx->PC += 2;
gertk 0:b612024f5aee 1673 if (condition(ctx, C_M))
gertk 0:b612024f5aee 1674 ctx->PC = addr;
gertk 0:b612024f5aee 1675
gertk 0:b612024f5aee 1676 }
gertk 0:b612024f5aee 1677
gertk 0:b612024f5aee 1678
gertk 0:b612024f5aee 1679 static void JP_NC_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 1680 {
gertk 0:b612024f5aee 1681 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 1682 ctx->PC += 2;
gertk 0:b612024f5aee 1683 if (condition(ctx, C_NC))
gertk 0:b612024f5aee 1684 ctx->PC = addr;
gertk 0:b612024f5aee 1685
gertk 0:b612024f5aee 1686 }
gertk 0:b612024f5aee 1687
gertk 0:b612024f5aee 1688
gertk 0:b612024f5aee 1689 static void JP_NZ_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 1690 {
gertk 0:b612024f5aee 1691 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 1692 ctx->PC += 2;
gertk 0:b612024f5aee 1693 if (condition(ctx, C_NZ))
gertk 0:b612024f5aee 1694 ctx->PC = addr;
gertk 0:b612024f5aee 1695
gertk 0:b612024f5aee 1696 }
gertk 0:b612024f5aee 1697
gertk 0:b612024f5aee 1698
gertk 0:b612024f5aee 1699 static void JP_P_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 1700 {
gertk 0:b612024f5aee 1701 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 1702 ctx->PC += 2;
gertk 0:b612024f5aee 1703 if (condition(ctx, C_P))
gertk 0:b612024f5aee 1704 ctx->PC = addr;
gertk 0:b612024f5aee 1705
gertk 0:b612024f5aee 1706 }
gertk 0:b612024f5aee 1707
gertk 0:b612024f5aee 1708
gertk 0:b612024f5aee 1709 static void JP_PE_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 1710 {
gertk 0:b612024f5aee 1711 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 1712 ctx->PC += 2;
gertk 0:b612024f5aee 1713 if (condition(ctx, C_PE))
gertk 0:b612024f5aee 1714 ctx->PC = addr;
gertk 0:b612024f5aee 1715
gertk 0:b612024f5aee 1716 }
gertk 0:b612024f5aee 1717
gertk 0:b612024f5aee 1718
gertk 0:b612024f5aee 1719 static void JP_PO_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 1720 {
gertk 0:b612024f5aee 1721 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 1722 ctx->PC += 2;
gertk 0:b612024f5aee 1723 if (condition(ctx, C_PO))
gertk 0:b612024f5aee 1724 ctx->PC = addr;
gertk 0:b612024f5aee 1725
gertk 0:b612024f5aee 1726 }
gertk 0:b612024f5aee 1727
gertk 0:b612024f5aee 1728
gertk 0:b612024f5aee 1729 static void JP_Z_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 1730 {
gertk 0:b612024f5aee 1731 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 1732 ctx->PC += 2;
gertk 0:b612024f5aee 1733 if (condition(ctx, C_Z))
gertk 0:b612024f5aee 1734 ctx->PC = addr;
gertk 0:b612024f5aee 1735
gertk 0:b612024f5aee 1736 }
gertk 0:b612024f5aee 1737
gertk 0:b612024f5aee 1738
gertk 0:b612024f5aee 1739 static void JR_off_PC_e (Z80Context* ctx)
gertk 0:b612024f5aee 1740 {
gertk 0:b612024f5aee 1741 int off = doComplement(read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1742 if (condition(ctx, C_))
gertk 0:b612024f5aee 1743 ctx->PC += off;
gertk 0:b612024f5aee 1744 }
gertk 0:b612024f5aee 1745
gertk 0:b612024f5aee 1746
gertk 0:b612024f5aee 1747 static void JR_C_off_PC_e (Z80Context* ctx)
gertk 0:b612024f5aee 1748 {
gertk 0:b612024f5aee 1749 int off = doComplement(read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1750 if (condition(ctx, C_C))
gertk 0:b612024f5aee 1751 ctx->PC += off;
gertk 0:b612024f5aee 1752 }
gertk 0:b612024f5aee 1753
gertk 0:b612024f5aee 1754
gertk 0:b612024f5aee 1755 static void JR_NC_off_PC_e (Z80Context* ctx)
gertk 0:b612024f5aee 1756 {
gertk 0:b612024f5aee 1757 int off = doComplement(read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1758 if (condition(ctx, C_NC))
gertk 0:b612024f5aee 1759 ctx->PC += off;
gertk 0:b612024f5aee 1760 }
gertk 0:b612024f5aee 1761
gertk 0:b612024f5aee 1762
gertk 0:b612024f5aee 1763 static void JR_NZ_off_PC_e (Z80Context* ctx)
gertk 0:b612024f5aee 1764 {
gertk 0:b612024f5aee 1765 int off = doComplement(read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1766 if (condition(ctx, C_NZ))
gertk 0:b612024f5aee 1767 ctx->PC += off;
gertk 0:b612024f5aee 1768 }
gertk 0:b612024f5aee 1769
gertk 0:b612024f5aee 1770
gertk 0:b612024f5aee 1771 static void JR_Z_off_PC_e (Z80Context* ctx)
gertk 0:b612024f5aee 1772 {
gertk 0:b612024f5aee 1773 int off = doComplement(read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1774 if (condition(ctx, C_Z))
gertk 0:b612024f5aee 1775 ctx->PC += off;
gertk 0:b612024f5aee 1776 }
gertk 0:b612024f5aee 1777
gertk 0:b612024f5aee 1778
gertk 0:b612024f5aee 1779 static void LD_off_BC_A (Z80Context* ctx)
gertk 0:b612024f5aee 1780 {
gertk 0:b612024f5aee 1781 write8(ctx, WR.BC, BR.A);
gertk 0:b612024f5aee 1782 }
gertk 0:b612024f5aee 1783
gertk 0:b612024f5aee 1784
gertk 0:b612024f5aee 1785 static void LD_off_DE_A (Z80Context* ctx)
gertk 0:b612024f5aee 1786 {
gertk 0:b612024f5aee 1787 write8(ctx, WR.DE, BR.A);
gertk 0:b612024f5aee 1788 }
gertk 0:b612024f5aee 1789
gertk 0:b612024f5aee 1790
gertk 0:b612024f5aee 1791 static void LD_off_HL_A (Z80Context* ctx)
gertk 0:b612024f5aee 1792 {
gertk 0:b612024f5aee 1793 write8(ctx, WR.HL, BR.A);
gertk 0:b612024f5aee 1794 }
gertk 0:b612024f5aee 1795
gertk 0:b612024f5aee 1796
gertk 0:b612024f5aee 1797 static void LD_off_HL_B (Z80Context* ctx)
gertk 0:b612024f5aee 1798 {
gertk 0:b612024f5aee 1799 write8(ctx, WR.HL, BR.B);
gertk 0:b612024f5aee 1800 }
gertk 0:b612024f5aee 1801
gertk 0:b612024f5aee 1802
gertk 0:b612024f5aee 1803 static void LD_off_HL_C (Z80Context* ctx)
gertk 0:b612024f5aee 1804 {
gertk 0:b612024f5aee 1805 write8(ctx, WR.HL, BR.C);
gertk 0:b612024f5aee 1806 }
gertk 0:b612024f5aee 1807
gertk 0:b612024f5aee 1808
gertk 0:b612024f5aee 1809 static void LD_off_HL_D (Z80Context* ctx)
gertk 0:b612024f5aee 1810 {
gertk 0:b612024f5aee 1811 write8(ctx, WR.HL, BR.D);
gertk 0:b612024f5aee 1812 }
gertk 0:b612024f5aee 1813
gertk 0:b612024f5aee 1814
gertk 0:b612024f5aee 1815 static void LD_off_HL_E (Z80Context* ctx)
gertk 0:b612024f5aee 1816 {
gertk 0:b612024f5aee 1817 write8(ctx, WR.HL, BR.E);
gertk 0:b612024f5aee 1818 }
gertk 0:b612024f5aee 1819
gertk 0:b612024f5aee 1820
gertk 0:b612024f5aee 1821 static void LD_off_HL_H (Z80Context* ctx)
gertk 0:b612024f5aee 1822 {
gertk 0:b612024f5aee 1823 write8(ctx, WR.HL, BR.H);
gertk 0:b612024f5aee 1824 }
gertk 0:b612024f5aee 1825
gertk 0:b612024f5aee 1826
gertk 0:b612024f5aee 1827 static void LD_off_HL_L (Z80Context* ctx)
gertk 0:b612024f5aee 1828 {
gertk 0:b612024f5aee 1829 write8(ctx, WR.HL, BR.L);
gertk 0:b612024f5aee 1830 }
gertk 0:b612024f5aee 1831
gertk 0:b612024f5aee 1832
gertk 0:b612024f5aee 1833 static void LD_off_HL_n (Z80Context* ctx)
gertk 0:b612024f5aee 1834 {
gertk 0:b612024f5aee 1835 write8(ctx, WR.HL, read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1836
gertk 0:b612024f5aee 1837 }
gertk 0:b612024f5aee 1838
gertk 0:b612024f5aee 1839
gertk 0:b612024f5aee 1840 static void LD_off_IX_d_A (Z80Context* ctx)
gertk 0:b612024f5aee 1841 {
gertk 0:b612024f5aee 1842 write8(ctx, WR.IX + read8(ctx, ctx->PC++), BR.A);
gertk 0:b612024f5aee 1843
gertk 0:b612024f5aee 1844 }
gertk 0:b612024f5aee 1845
gertk 0:b612024f5aee 1846
gertk 0:b612024f5aee 1847 static void LD_off_IX_d_B (Z80Context* ctx)
gertk 0:b612024f5aee 1848 {
gertk 0:b612024f5aee 1849 write8(ctx, WR.IX + read8(ctx, ctx->PC++), BR.B);
gertk 0:b612024f5aee 1850
gertk 0:b612024f5aee 1851 }
gertk 0:b612024f5aee 1852
gertk 0:b612024f5aee 1853
gertk 0:b612024f5aee 1854 static void LD_off_IX_d_C (Z80Context* ctx)
gertk 0:b612024f5aee 1855 {
gertk 0:b612024f5aee 1856 write8(ctx, WR.IX + read8(ctx, ctx->PC++), BR.C);
gertk 0:b612024f5aee 1857
gertk 0:b612024f5aee 1858 }
gertk 0:b612024f5aee 1859
gertk 0:b612024f5aee 1860
gertk 0:b612024f5aee 1861 static void LD_off_IX_d_D (Z80Context* ctx)
gertk 0:b612024f5aee 1862 {
gertk 0:b612024f5aee 1863 write8(ctx, WR.IX + read8(ctx, ctx->PC++), BR.D);
gertk 0:b612024f5aee 1864
gertk 0:b612024f5aee 1865 }
gertk 0:b612024f5aee 1866
gertk 0:b612024f5aee 1867
gertk 0:b612024f5aee 1868 static void LD_off_IX_d_E (Z80Context* ctx)
gertk 0:b612024f5aee 1869 {
gertk 0:b612024f5aee 1870 write8(ctx, WR.IX + read8(ctx, ctx->PC++), BR.E);
gertk 0:b612024f5aee 1871
gertk 0:b612024f5aee 1872 }
gertk 0:b612024f5aee 1873
gertk 0:b612024f5aee 1874
gertk 0:b612024f5aee 1875 static void LD_off_IX_d_H (Z80Context* ctx)
gertk 0:b612024f5aee 1876 {
gertk 0:b612024f5aee 1877 write8(ctx, WR.IX + read8(ctx, ctx->PC++), BR.H);
gertk 0:b612024f5aee 1878
gertk 0:b612024f5aee 1879 }
gertk 0:b612024f5aee 1880
gertk 0:b612024f5aee 1881
gertk 0:b612024f5aee 1882 static void LD_off_IX_d_L (Z80Context* ctx)
gertk 0:b612024f5aee 1883 {
gertk 0:b612024f5aee 1884 write8(ctx, WR.IX + read8(ctx, ctx->PC++), BR.L);
gertk 0:b612024f5aee 1885
gertk 0:b612024f5aee 1886 }
gertk 0:b612024f5aee 1887
gertk 0:b612024f5aee 1888
gertk 0:b612024f5aee 1889 static void LD_off_IX_d_n (Z80Context* ctx)
gertk 0:b612024f5aee 1890 {
gertk 0:b612024f5aee 1891 write8(ctx, WR.IX + read8(ctx, ctx->PC++), read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1892
gertk 0:b612024f5aee 1893 }
gertk 0:b612024f5aee 1894
gertk 0:b612024f5aee 1895
gertk 0:b612024f5aee 1896 static void LD_off_IY_d_A (Z80Context* ctx)
gertk 0:b612024f5aee 1897 {
gertk 0:b612024f5aee 1898 write8(ctx, WR.IY + read8(ctx, ctx->PC++), BR.A);
gertk 0:b612024f5aee 1899
gertk 0:b612024f5aee 1900 }
gertk 0:b612024f5aee 1901
gertk 0:b612024f5aee 1902
gertk 0:b612024f5aee 1903 static void LD_off_IY_d_B (Z80Context* ctx)
gertk 0:b612024f5aee 1904 {
gertk 0:b612024f5aee 1905 write8(ctx, WR.IY + read8(ctx, ctx->PC++), BR.B);
gertk 0:b612024f5aee 1906
gertk 0:b612024f5aee 1907 }
gertk 0:b612024f5aee 1908
gertk 0:b612024f5aee 1909
gertk 0:b612024f5aee 1910 static void LD_off_IY_d_C (Z80Context* ctx)
gertk 0:b612024f5aee 1911 {
gertk 0:b612024f5aee 1912 write8(ctx, WR.IY + read8(ctx, ctx->PC++), BR.C);
gertk 0:b612024f5aee 1913
gertk 0:b612024f5aee 1914 }
gertk 0:b612024f5aee 1915
gertk 0:b612024f5aee 1916
gertk 0:b612024f5aee 1917 static void LD_off_IY_d_D (Z80Context* ctx)
gertk 0:b612024f5aee 1918 {
gertk 0:b612024f5aee 1919 write8(ctx, WR.IY + read8(ctx, ctx->PC++), BR.D);
gertk 0:b612024f5aee 1920
gertk 0:b612024f5aee 1921 }
gertk 0:b612024f5aee 1922
gertk 0:b612024f5aee 1923
gertk 0:b612024f5aee 1924 static void LD_off_IY_d_E (Z80Context* ctx)
gertk 0:b612024f5aee 1925 {
gertk 0:b612024f5aee 1926 write8(ctx, WR.IY + read8(ctx, ctx->PC++), BR.E);
gertk 0:b612024f5aee 1927
gertk 0:b612024f5aee 1928 }
gertk 0:b612024f5aee 1929
gertk 0:b612024f5aee 1930
gertk 0:b612024f5aee 1931 static void LD_off_IY_d_H (Z80Context* ctx)
gertk 0:b612024f5aee 1932 {
gertk 0:b612024f5aee 1933 write8(ctx, WR.IY + read8(ctx, ctx->PC++), BR.H);
gertk 0:b612024f5aee 1934
gertk 0:b612024f5aee 1935 }
gertk 0:b612024f5aee 1936
gertk 0:b612024f5aee 1937
gertk 0:b612024f5aee 1938 static void LD_off_IY_d_L (Z80Context* ctx)
gertk 0:b612024f5aee 1939 {
gertk 0:b612024f5aee 1940 write8(ctx, WR.IY + read8(ctx, ctx->PC++), BR.L);
gertk 0:b612024f5aee 1941
gertk 0:b612024f5aee 1942 }
gertk 0:b612024f5aee 1943
gertk 0:b612024f5aee 1944
gertk 0:b612024f5aee 1945 static void LD_off_IY_d_n (Z80Context* ctx)
gertk 0:b612024f5aee 1946 {
gertk 0:b612024f5aee 1947 write8(ctx, WR.IY + read8(ctx, ctx->PC++), read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 1948
gertk 0:b612024f5aee 1949 }
gertk 0:b612024f5aee 1950
gertk 0:b612024f5aee 1951
gertk 0:b612024f5aee 1952 static void LD_off_nn_A (Z80Context* ctx)
gertk 0:b612024f5aee 1953 {
gertk 0:b612024f5aee 1954 write8(ctx, read16(ctx, ctx->PC), BR.A);
gertk 0:b612024f5aee 1955 ctx->PC += 2;
gertk 0:b612024f5aee 1956
gertk 0:b612024f5aee 1957 }
gertk 0:b612024f5aee 1958
gertk 0:b612024f5aee 1959
gertk 0:b612024f5aee 1960 static void LD_off_nn_BC (Z80Context* ctx)
gertk 0:b612024f5aee 1961 {
gertk 0:b612024f5aee 1962 write16(ctx, read16(ctx, ctx->PC), WR.BC);
gertk 0:b612024f5aee 1963 ctx->PC += 2;
gertk 0:b612024f5aee 1964
gertk 0:b612024f5aee 1965 }
gertk 0:b612024f5aee 1966
gertk 0:b612024f5aee 1967
gertk 0:b612024f5aee 1968 static void LD_off_nn_DE (Z80Context* ctx)
gertk 0:b612024f5aee 1969 {
gertk 0:b612024f5aee 1970 write16(ctx, read16(ctx, ctx->PC), WR.DE);
gertk 0:b612024f5aee 1971 ctx->PC += 2;
gertk 0:b612024f5aee 1972
gertk 0:b612024f5aee 1973 }
gertk 0:b612024f5aee 1974
gertk 0:b612024f5aee 1975
gertk 0:b612024f5aee 1976 static void LD_off_nn_HL (Z80Context* ctx)
gertk 0:b612024f5aee 1977 {
gertk 0:b612024f5aee 1978 write16(ctx, read16(ctx, ctx->PC), WR.HL);
gertk 0:b612024f5aee 1979 ctx->PC += 2;
gertk 0:b612024f5aee 1980
gertk 0:b612024f5aee 1981 }
gertk 0:b612024f5aee 1982
gertk 0:b612024f5aee 1983
gertk 0:b612024f5aee 1984 static void LD_off_nn_IX (Z80Context* ctx)
gertk 0:b612024f5aee 1985 {
gertk 0:b612024f5aee 1986 write16(ctx, read16(ctx, ctx->PC), WR.IX);
gertk 0:b612024f5aee 1987 ctx->PC += 2;
gertk 0:b612024f5aee 1988
gertk 0:b612024f5aee 1989 }
gertk 0:b612024f5aee 1990
gertk 0:b612024f5aee 1991
gertk 0:b612024f5aee 1992 static void LD_off_nn_IY (Z80Context* ctx)
gertk 0:b612024f5aee 1993 {
gertk 0:b612024f5aee 1994 write16(ctx, read16(ctx, ctx->PC), WR.IY);
gertk 0:b612024f5aee 1995 ctx->PC += 2;
gertk 0:b612024f5aee 1996
gertk 0:b612024f5aee 1997 }
gertk 0:b612024f5aee 1998
gertk 0:b612024f5aee 1999
gertk 0:b612024f5aee 2000 static void LD_off_nn_SP (Z80Context* ctx)
gertk 0:b612024f5aee 2001 {
gertk 0:b612024f5aee 2002 write16(ctx, read16(ctx, ctx->PC), WR.SP);
gertk 0:b612024f5aee 2003 ctx->PC += 2;
gertk 0:b612024f5aee 2004
gertk 0:b612024f5aee 2005 }
gertk 0:b612024f5aee 2006
gertk 0:b612024f5aee 2007
gertk 0:b612024f5aee 2008 static void LD_A_off_BC (Z80Context* ctx)
gertk 0:b612024f5aee 2009 {
gertk 0:b612024f5aee 2010 BR.A = read8(ctx, WR.BC);
gertk 0:b612024f5aee 2011 }
gertk 0:b612024f5aee 2012
gertk 0:b612024f5aee 2013
gertk 0:b612024f5aee 2014 static void LD_A_off_DE (Z80Context* ctx)
gertk 0:b612024f5aee 2015 {
gertk 0:b612024f5aee 2016 BR.A = read8(ctx, WR.DE);
gertk 0:b612024f5aee 2017 }
gertk 0:b612024f5aee 2018
gertk 0:b612024f5aee 2019
gertk 0:b612024f5aee 2020 static void LD_A_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 2021 {
gertk 0:b612024f5aee 2022 BR.A = read8(ctx, WR.HL);
gertk 0:b612024f5aee 2023 }
gertk 0:b612024f5aee 2024
gertk 0:b612024f5aee 2025
gertk 0:b612024f5aee 2026 static void LD_A_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2027 {
gertk 0:b612024f5aee 2028 BR.A = read8(ctx, WR.IX + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 2029 }
gertk 0:b612024f5aee 2030
gertk 0:b612024f5aee 2031
gertk 0:b612024f5aee 2032 static void LD_A_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2033 {
gertk 0:b612024f5aee 2034 BR.A = read8(ctx, WR.IY + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 2035 }
gertk 0:b612024f5aee 2036
gertk 0:b612024f5aee 2037
gertk 0:b612024f5aee 2038 static void LD_A_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 2039 {
gertk 0:b612024f5aee 2040 BR.A = read8(ctx, read16(ctx, ctx->PC));
gertk 0:b612024f5aee 2041 ctx->PC += 2;
gertk 0:b612024f5aee 2042
gertk 0:b612024f5aee 2043 }
gertk 0:b612024f5aee 2044
gertk 0:b612024f5aee 2045
gertk 0:b612024f5aee 2046 static void LD_A_A (Z80Context* ctx)
gertk 0:b612024f5aee 2047 {
gertk 0:b612024f5aee 2048 BR.A = BR.A;
gertk 0:b612024f5aee 2049 }
gertk 0:b612024f5aee 2050
gertk 0:b612024f5aee 2051
gertk 0:b612024f5aee 2052 static void LD_A_B (Z80Context* ctx)
gertk 0:b612024f5aee 2053 {
gertk 0:b612024f5aee 2054 BR.A = BR.B;
gertk 0:b612024f5aee 2055 }
gertk 0:b612024f5aee 2056
gertk 0:b612024f5aee 2057
gertk 0:b612024f5aee 2058 static void LD_A_C (Z80Context* ctx)
gertk 0:b612024f5aee 2059 {
gertk 0:b612024f5aee 2060 BR.A = BR.C;
gertk 0:b612024f5aee 2061 }
gertk 0:b612024f5aee 2062
gertk 0:b612024f5aee 2063
gertk 0:b612024f5aee 2064 static void LD_A_D (Z80Context* ctx)
gertk 0:b612024f5aee 2065 {
gertk 0:b612024f5aee 2066 BR.A = BR.D;
gertk 0:b612024f5aee 2067 }
gertk 0:b612024f5aee 2068
gertk 0:b612024f5aee 2069
gertk 0:b612024f5aee 2070 static void LD_A_E (Z80Context* ctx)
gertk 0:b612024f5aee 2071 {
gertk 0:b612024f5aee 2072 BR.A = BR.E;
gertk 0:b612024f5aee 2073 }
gertk 0:b612024f5aee 2074
gertk 0:b612024f5aee 2075
gertk 0:b612024f5aee 2076 static void LD_A_H (Z80Context* ctx)
gertk 0:b612024f5aee 2077 {
gertk 0:b612024f5aee 2078 BR.A = BR.H;
gertk 0:b612024f5aee 2079 }
gertk 0:b612024f5aee 2080
gertk 0:b612024f5aee 2081
gertk 0:b612024f5aee 2082 static void LD_A_I (Z80Context* ctx)
gertk 0:b612024f5aee 2083 {
gertk 0:b612024f5aee 2084 BR.A = ctx->I;
gertk 0:b612024f5aee 2085
gertk 0:b612024f5aee 2086 adjustFlags(ctx, BR.A);
gertk 0:b612024f5aee 2087 RESFLAG(F_H | F_N);
gertk 0:b612024f5aee 2088 VALFLAG(F_PV, ctx->IFF2);
gertk 0:b612024f5aee 2089 VALFLAG(F_S, (BR.A & 0x80) != 0);
gertk 0:b612024f5aee 2090 VALFLAG(F_Z, (BR.A == 0));
gertk 0:b612024f5aee 2091
gertk 0:b612024f5aee 2092 }
gertk 0:b612024f5aee 2093
gertk 0:b612024f5aee 2094
gertk 0:b612024f5aee 2095 static void LD_A_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 2096 {
gertk 0:b612024f5aee 2097 BR.A = BR.IXh;
gertk 0:b612024f5aee 2098 }
gertk 0:b612024f5aee 2099
gertk 0:b612024f5aee 2100
gertk 0:b612024f5aee 2101 static void LD_A_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 2102 {
gertk 0:b612024f5aee 2103 BR.A = BR.IXl;
gertk 0:b612024f5aee 2104 }
gertk 0:b612024f5aee 2105
gertk 0:b612024f5aee 2106
gertk 0:b612024f5aee 2107 static void LD_A_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 2108 {
gertk 0:b612024f5aee 2109 BR.A = BR.IYh;
gertk 0:b612024f5aee 2110 }
gertk 0:b612024f5aee 2111
gertk 0:b612024f5aee 2112
gertk 0:b612024f5aee 2113 static void LD_A_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 2114 {
gertk 0:b612024f5aee 2115 BR.A = BR.IYl;
gertk 0:b612024f5aee 2116 }
gertk 0:b612024f5aee 2117
gertk 0:b612024f5aee 2118
gertk 0:b612024f5aee 2119 static void LD_A_L (Z80Context* ctx)
gertk 0:b612024f5aee 2120 {
gertk 0:b612024f5aee 2121 BR.A = BR.L;
gertk 0:b612024f5aee 2122 }
gertk 0:b612024f5aee 2123
gertk 0:b612024f5aee 2124
gertk 0:b612024f5aee 2125 static void LD_A_n (Z80Context* ctx)
gertk 0:b612024f5aee 2126 {
gertk 0:b612024f5aee 2127 BR.A = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2128
gertk 0:b612024f5aee 2129 }
gertk 0:b612024f5aee 2130
gertk 0:b612024f5aee 2131
gertk 0:b612024f5aee 2132 static void LD_A_R (Z80Context* ctx)
gertk 0:b612024f5aee 2133 {
gertk 0:b612024f5aee 2134 BR.A = ctx->R;
gertk 0:b612024f5aee 2135
gertk 0:b612024f5aee 2136 adjustFlags(ctx, BR.A);
gertk 0:b612024f5aee 2137 RESFLAG(F_H | F_N);
gertk 0:b612024f5aee 2138 VALFLAG(F_PV, ctx->IFF2);
gertk 0:b612024f5aee 2139 VALFLAG(F_S, (BR.A & 0x80) != 0);
gertk 0:b612024f5aee 2140 VALFLAG(F_Z, (BR.A == 0));
gertk 0:b612024f5aee 2141
gertk 0:b612024f5aee 2142 }
gertk 0:b612024f5aee 2143
gertk 0:b612024f5aee 2144
gertk 0:b612024f5aee 2145 static void LD_A_RES_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2146 {
gertk 0:b612024f5aee 2147 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2148 BR.A = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2149 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2150 }
gertk 0:b612024f5aee 2151
gertk 0:b612024f5aee 2152
gertk 0:b612024f5aee 2153 static void LD_A_RES_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2154 {
gertk 0:b612024f5aee 2155 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2156 BR.A = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2157 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2158 }
gertk 0:b612024f5aee 2159
gertk 0:b612024f5aee 2160
gertk 0:b612024f5aee 2161 static void LD_A_RES_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2162 {
gertk 0:b612024f5aee 2163 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2164 BR.A = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2165 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2166 }
gertk 0:b612024f5aee 2167
gertk 0:b612024f5aee 2168
gertk 0:b612024f5aee 2169 static void LD_A_RES_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2170 {
gertk 0:b612024f5aee 2171 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2172 BR.A = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2173 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2174 }
gertk 0:b612024f5aee 2175
gertk 0:b612024f5aee 2176
gertk 0:b612024f5aee 2177 static void LD_A_RES_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2178 {
gertk 0:b612024f5aee 2179 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2180 BR.A = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2181 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2182 }
gertk 0:b612024f5aee 2183
gertk 0:b612024f5aee 2184
gertk 0:b612024f5aee 2185 static void LD_A_RES_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2186 {
gertk 0:b612024f5aee 2187 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2188 BR.A = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2189 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2190 }
gertk 0:b612024f5aee 2191
gertk 0:b612024f5aee 2192
gertk 0:b612024f5aee 2193 static void LD_A_RES_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2194 {
gertk 0:b612024f5aee 2195 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2196 BR.A = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2197 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2198 }
gertk 0:b612024f5aee 2199
gertk 0:b612024f5aee 2200
gertk 0:b612024f5aee 2201 static void LD_A_RES_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2202 {
gertk 0:b612024f5aee 2203 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2204 BR.A = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2205 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2206 }
gertk 0:b612024f5aee 2207
gertk 0:b612024f5aee 2208
gertk 0:b612024f5aee 2209 static void LD_A_RES_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2210 {
gertk 0:b612024f5aee 2211 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2212 BR.A = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2213 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2214 }
gertk 0:b612024f5aee 2215
gertk 0:b612024f5aee 2216
gertk 0:b612024f5aee 2217 static void LD_A_RES_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2218 {
gertk 0:b612024f5aee 2219 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2220 BR.A = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2221 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2222 }
gertk 0:b612024f5aee 2223
gertk 0:b612024f5aee 2224
gertk 0:b612024f5aee 2225 static void LD_A_RES_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2226 {
gertk 0:b612024f5aee 2227 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2228 BR.A = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2229 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2230 }
gertk 0:b612024f5aee 2231
gertk 0:b612024f5aee 2232
gertk 0:b612024f5aee 2233 static void LD_A_RES_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2234 {
gertk 0:b612024f5aee 2235 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2236 BR.A = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2237 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2238 }
gertk 0:b612024f5aee 2239
gertk 0:b612024f5aee 2240
gertk 0:b612024f5aee 2241 static void LD_A_RES_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2242 {
gertk 0:b612024f5aee 2243 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2244 BR.A = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2245 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2246 }
gertk 0:b612024f5aee 2247
gertk 0:b612024f5aee 2248
gertk 0:b612024f5aee 2249 static void LD_A_RES_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2250 {
gertk 0:b612024f5aee 2251 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2252 BR.A = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2253 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2254 }
gertk 0:b612024f5aee 2255
gertk 0:b612024f5aee 2256
gertk 0:b612024f5aee 2257 static void LD_A_RES_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2258 {
gertk 0:b612024f5aee 2259 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2260 BR.A = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2261 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2262 }
gertk 0:b612024f5aee 2263
gertk 0:b612024f5aee 2264
gertk 0:b612024f5aee 2265 static void LD_A_RES_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2266 {
gertk 0:b612024f5aee 2267 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2268 BR.A = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2269 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2270 }
gertk 0:b612024f5aee 2271
gertk 0:b612024f5aee 2272
gertk 0:b612024f5aee 2273 static void LD_A_RL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2274 {
gertk 0:b612024f5aee 2275 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2276 BR.A = doRL(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2277 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2278 }
gertk 0:b612024f5aee 2279
gertk 0:b612024f5aee 2280
gertk 0:b612024f5aee 2281 static void LD_A_RL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2282 {
gertk 0:b612024f5aee 2283 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2284 BR.A = doRL(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2285 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2286 }
gertk 0:b612024f5aee 2287
gertk 0:b612024f5aee 2288
gertk 0:b612024f5aee 2289 static void LD_A_RLC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2290 {
gertk 0:b612024f5aee 2291 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2292 BR.A = doRLC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2293 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2294 }
gertk 0:b612024f5aee 2295
gertk 0:b612024f5aee 2296
gertk 0:b612024f5aee 2297 static void LD_A_RLC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2298 {
gertk 0:b612024f5aee 2299 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2300 BR.A = doRLC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2301 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2302 }
gertk 0:b612024f5aee 2303
gertk 0:b612024f5aee 2304
gertk 0:b612024f5aee 2305 static void LD_A_RR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2306 {
gertk 0:b612024f5aee 2307 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2308 BR.A = doRR(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2309 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2310 }
gertk 0:b612024f5aee 2311
gertk 0:b612024f5aee 2312
gertk 0:b612024f5aee 2313 static void LD_A_RR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2314 {
gertk 0:b612024f5aee 2315 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2316 BR.A = doRR(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2317 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2318 }
gertk 0:b612024f5aee 2319
gertk 0:b612024f5aee 2320
gertk 0:b612024f5aee 2321 static void LD_A_RRC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2322 {
gertk 0:b612024f5aee 2323 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2324 BR.A = doRRC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2325 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2326 }
gertk 0:b612024f5aee 2327
gertk 0:b612024f5aee 2328
gertk 0:b612024f5aee 2329 static void LD_A_RRC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2330 {
gertk 0:b612024f5aee 2331 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2332 BR.A = doRRC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2333 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2334 }
gertk 0:b612024f5aee 2335
gertk 0:b612024f5aee 2336
gertk 0:b612024f5aee 2337 static void LD_A_SET_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2338 {
gertk 0:b612024f5aee 2339 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2340 BR.A = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2341 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2342 }
gertk 0:b612024f5aee 2343
gertk 0:b612024f5aee 2344
gertk 0:b612024f5aee 2345 static void LD_A_SET_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2346 {
gertk 0:b612024f5aee 2347 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2348 BR.A = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2349 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2350 }
gertk 0:b612024f5aee 2351
gertk 0:b612024f5aee 2352
gertk 0:b612024f5aee 2353 static void LD_A_SET_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2354 {
gertk 0:b612024f5aee 2355 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2356 BR.A = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2357 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2358 }
gertk 0:b612024f5aee 2359
gertk 0:b612024f5aee 2360
gertk 0:b612024f5aee 2361 static void LD_A_SET_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2362 {
gertk 0:b612024f5aee 2363 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2364 BR.A = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2365 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2366 }
gertk 0:b612024f5aee 2367
gertk 0:b612024f5aee 2368
gertk 0:b612024f5aee 2369 static void LD_A_SET_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2370 {
gertk 0:b612024f5aee 2371 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2372 BR.A = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2373 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2374 }
gertk 0:b612024f5aee 2375
gertk 0:b612024f5aee 2376
gertk 0:b612024f5aee 2377 static void LD_A_SET_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2378 {
gertk 0:b612024f5aee 2379 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2380 BR.A = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2381 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2382 }
gertk 0:b612024f5aee 2383
gertk 0:b612024f5aee 2384
gertk 0:b612024f5aee 2385 static void LD_A_SET_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2386 {
gertk 0:b612024f5aee 2387 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2388 BR.A = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2389 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2390 }
gertk 0:b612024f5aee 2391
gertk 0:b612024f5aee 2392
gertk 0:b612024f5aee 2393 static void LD_A_SET_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2394 {
gertk 0:b612024f5aee 2395 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2396 BR.A = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2397 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2398 }
gertk 0:b612024f5aee 2399
gertk 0:b612024f5aee 2400
gertk 0:b612024f5aee 2401 static void LD_A_SET_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2402 {
gertk 0:b612024f5aee 2403 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2404 BR.A = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2405 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2406 }
gertk 0:b612024f5aee 2407
gertk 0:b612024f5aee 2408
gertk 0:b612024f5aee 2409 static void LD_A_SET_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2410 {
gertk 0:b612024f5aee 2411 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2412 BR.A = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2413 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2414 }
gertk 0:b612024f5aee 2415
gertk 0:b612024f5aee 2416
gertk 0:b612024f5aee 2417 static void LD_A_SET_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2418 {
gertk 0:b612024f5aee 2419 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2420 BR.A = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2421 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2422 }
gertk 0:b612024f5aee 2423
gertk 0:b612024f5aee 2424
gertk 0:b612024f5aee 2425 static void LD_A_SET_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2426 {
gertk 0:b612024f5aee 2427 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2428 BR.A = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2429 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2430 }
gertk 0:b612024f5aee 2431
gertk 0:b612024f5aee 2432
gertk 0:b612024f5aee 2433 static void LD_A_SET_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2434 {
gertk 0:b612024f5aee 2435 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2436 BR.A = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2437 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2438 }
gertk 0:b612024f5aee 2439
gertk 0:b612024f5aee 2440
gertk 0:b612024f5aee 2441 static void LD_A_SET_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2442 {
gertk 0:b612024f5aee 2443 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2444 BR.A = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2445 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2446 }
gertk 0:b612024f5aee 2447
gertk 0:b612024f5aee 2448
gertk 0:b612024f5aee 2449 static void LD_A_SET_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2450 {
gertk 0:b612024f5aee 2451 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2452 BR.A = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2453 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2454 }
gertk 0:b612024f5aee 2455
gertk 0:b612024f5aee 2456
gertk 0:b612024f5aee 2457 static void LD_A_SET_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2458 {
gertk 0:b612024f5aee 2459 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2460 BR.A = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2461 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2462 }
gertk 0:b612024f5aee 2463
gertk 0:b612024f5aee 2464
gertk 0:b612024f5aee 2465 static void LD_A_SLA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2466 {
gertk 0:b612024f5aee 2467 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2468 BR.A = doSL(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 2469 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2470
gertk 0:b612024f5aee 2471 }
gertk 0:b612024f5aee 2472
gertk 0:b612024f5aee 2473
gertk 0:b612024f5aee 2474 static void LD_A_SLA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2475 {
gertk 0:b612024f5aee 2476 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2477 BR.A = doSL(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 2478 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2479
gertk 0:b612024f5aee 2480 }
gertk 0:b612024f5aee 2481
gertk 0:b612024f5aee 2482
gertk 0:b612024f5aee 2483 static void LD_A_SLL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2484 {
gertk 0:b612024f5aee 2485 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2486 BR.A = doSL(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 2487 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2488
gertk 0:b612024f5aee 2489 }
gertk 0:b612024f5aee 2490
gertk 0:b612024f5aee 2491
gertk 0:b612024f5aee 2492 static void LD_A_SLL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2493 {
gertk 0:b612024f5aee 2494 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2495 BR.A = doSL(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 2496 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2497
gertk 0:b612024f5aee 2498 }
gertk 0:b612024f5aee 2499
gertk 0:b612024f5aee 2500
gertk 0:b612024f5aee 2501 static void LD_A_SRA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2502 {
gertk 0:b612024f5aee 2503 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2504 BR.A = doSR(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 2505 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2506
gertk 0:b612024f5aee 2507 }
gertk 0:b612024f5aee 2508
gertk 0:b612024f5aee 2509
gertk 0:b612024f5aee 2510 static void LD_A_SRA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2511 {
gertk 0:b612024f5aee 2512 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2513 BR.A = doSR(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 2514 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2515
gertk 0:b612024f5aee 2516 }
gertk 0:b612024f5aee 2517
gertk 0:b612024f5aee 2518
gertk 0:b612024f5aee 2519 static void LD_A_SRL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2520 {
gertk 0:b612024f5aee 2521 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2522 BR.A = doSR(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 2523 write8(ctx, WR.IX + off, BR.A);
gertk 0:b612024f5aee 2524
gertk 0:b612024f5aee 2525 }
gertk 0:b612024f5aee 2526
gertk 0:b612024f5aee 2527
gertk 0:b612024f5aee 2528 static void LD_A_SRL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2529 {
gertk 0:b612024f5aee 2530 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2531 BR.A = doSR(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 2532 write8(ctx, WR.IY + off, BR.A);
gertk 0:b612024f5aee 2533
gertk 0:b612024f5aee 2534 }
gertk 0:b612024f5aee 2535
gertk 0:b612024f5aee 2536
gertk 0:b612024f5aee 2537 static void LD_B_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 2538 {
gertk 0:b612024f5aee 2539 BR.B = read8(ctx, WR.HL);
gertk 0:b612024f5aee 2540 }
gertk 0:b612024f5aee 2541
gertk 0:b612024f5aee 2542
gertk 0:b612024f5aee 2543 static void LD_B_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2544 {
gertk 0:b612024f5aee 2545 BR.B = read8(ctx, WR.IX + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 2546 }
gertk 0:b612024f5aee 2547
gertk 0:b612024f5aee 2548
gertk 0:b612024f5aee 2549 static void LD_B_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2550 {
gertk 0:b612024f5aee 2551 BR.B = read8(ctx, WR.IY + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 2552 }
gertk 0:b612024f5aee 2553
gertk 0:b612024f5aee 2554
gertk 0:b612024f5aee 2555 static void LD_B_A (Z80Context* ctx)
gertk 0:b612024f5aee 2556 {
gertk 0:b612024f5aee 2557 BR.B = BR.A;
gertk 0:b612024f5aee 2558 }
gertk 0:b612024f5aee 2559
gertk 0:b612024f5aee 2560
gertk 0:b612024f5aee 2561 static void LD_B_B (Z80Context* ctx)
gertk 0:b612024f5aee 2562 {
gertk 0:b612024f5aee 2563 BR.B = BR.B;
gertk 0:b612024f5aee 2564 }
gertk 0:b612024f5aee 2565
gertk 0:b612024f5aee 2566
gertk 0:b612024f5aee 2567 static void LD_B_C (Z80Context* ctx)
gertk 0:b612024f5aee 2568 {
gertk 0:b612024f5aee 2569 BR.B = BR.C;
gertk 0:b612024f5aee 2570 }
gertk 0:b612024f5aee 2571
gertk 0:b612024f5aee 2572
gertk 0:b612024f5aee 2573 static void LD_B_D (Z80Context* ctx)
gertk 0:b612024f5aee 2574 {
gertk 0:b612024f5aee 2575 BR.B = BR.D;
gertk 0:b612024f5aee 2576 }
gertk 0:b612024f5aee 2577
gertk 0:b612024f5aee 2578
gertk 0:b612024f5aee 2579 static void LD_B_E (Z80Context* ctx)
gertk 0:b612024f5aee 2580 {
gertk 0:b612024f5aee 2581 BR.B = BR.E;
gertk 0:b612024f5aee 2582 }
gertk 0:b612024f5aee 2583
gertk 0:b612024f5aee 2584
gertk 0:b612024f5aee 2585 static void LD_B_H (Z80Context* ctx)
gertk 0:b612024f5aee 2586 {
gertk 0:b612024f5aee 2587 BR.B = BR.H;
gertk 0:b612024f5aee 2588 }
gertk 0:b612024f5aee 2589
gertk 0:b612024f5aee 2590
gertk 0:b612024f5aee 2591 static void LD_B_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 2592 {
gertk 0:b612024f5aee 2593 BR.B = BR.IXh;
gertk 0:b612024f5aee 2594 }
gertk 0:b612024f5aee 2595
gertk 0:b612024f5aee 2596
gertk 0:b612024f5aee 2597 static void LD_B_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 2598 {
gertk 0:b612024f5aee 2599 BR.B = BR.IXl;
gertk 0:b612024f5aee 2600 }
gertk 0:b612024f5aee 2601
gertk 0:b612024f5aee 2602
gertk 0:b612024f5aee 2603 static void LD_B_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 2604 {
gertk 0:b612024f5aee 2605 BR.B = BR.IYh;
gertk 0:b612024f5aee 2606 }
gertk 0:b612024f5aee 2607
gertk 0:b612024f5aee 2608
gertk 0:b612024f5aee 2609 static void LD_B_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 2610 {
gertk 0:b612024f5aee 2611 BR.B = BR.IYl;
gertk 0:b612024f5aee 2612 }
gertk 0:b612024f5aee 2613
gertk 0:b612024f5aee 2614
gertk 0:b612024f5aee 2615 static void LD_B_L (Z80Context* ctx)
gertk 0:b612024f5aee 2616 {
gertk 0:b612024f5aee 2617 BR.B = BR.L;
gertk 0:b612024f5aee 2618 }
gertk 0:b612024f5aee 2619
gertk 0:b612024f5aee 2620
gertk 0:b612024f5aee 2621 static void LD_B_n (Z80Context* ctx)
gertk 0:b612024f5aee 2622 {
gertk 0:b612024f5aee 2623 BR.B = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2624
gertk 0:b612024f5aee 2625 }
gertk 0:b612024f5aee 2626
gertk 0:b612024f5aee 2627
gertk 0:b612024f5aee 2628 static void LD_B_RES_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2629 {
gertk 0:b612024f5aee 2630 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2631 BR.B = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2632 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2633 }
gertk 0:b612024f5aee 2634
gertk 0:b612024f5aee 2635
gertk 0:b612024f5aee 2636 static void LD_B_RES_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2637 {
gertk 0:b612024f5aee 2638 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2639 BR.B = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2640 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2641 }
gertk 0:b612024f5aee 2642
gertk 0:b612024f5aee 2643
gertk 0:b612024f5aee 2644 static void LD_B_RES_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2645 {
gertk 0:b612024f5aee 2646 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2647 BR.B = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2648 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2649 }
gertk 0:b612024f5aee 2650
gertk 0:b612024f5aee 2651
gertk 0:b612024f5aee 2652 static void LD_B_RES_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2653 {
gertk 0:b612024f5aee 2654 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2655 BR.B = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2656 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2657 }
gertk 0:b612024f5aee 2658
gertk 0:b612024f5aee 2659
gertk 0:b612024f5aee 2660 static void LD_B_RES_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2661 {
gertk 0:b612024f5aee 2662 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2663 BR.B = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2664 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2665 }
gertk 0:b612024f5aee 2666
gertk 0:b612024f5aee 2667
gertk 0:b612024f5aee 2668 static void LD_B_RES_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2669 {
gertk 0:b612024f5aee 2670 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2671 BR.B = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2672 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2673 }
gertk 0:b612024f5aee 2674
gertk 0:b612024f5aee 2675
gertk 0:b612024f5aee 2676 static void LD_B_RES_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2677 {
gertk 0:b612024f5aee 2678 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2679 BR.B = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2680 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2681 }
gertk 0:b612024f5aee 2682
gertk 0:b612024f5aee 2683
gertk 0:b612024f5aee 2684 static void LD_B_RES_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2685 {
gertk 0:b612024f5aee 2686 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2687 BR.B = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2688 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2689 }
gertk 0:b612024f5aee 2690
gertk 0:b612024f5aee 2691
gertk 0:b612024f5aee 2692 static void LD_B_RES_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2693 {
gertk 0:b612024f5aee 2694 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2695 BR.B = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2696 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2697 }
gertk 0:b612024f5aee 2698
gertk 0:b612024f5aee 2699
gertk 0:b612024f5aee 2700 static void LD_B_RES_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2701 {
gertk 0:b612024f5aee 2702 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2703 BR.B = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2704 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2705 }
gertk 0:b612024f5aee 2706
gertk 0:b612024f5aee 2707
gertk 0:b612024f5aee 2708 static void LD_B_RES_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2709 {
gertk 0:b612024f5aee 2710 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2711 BR.B = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2712 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2713 }
gertk 0:b612024f5aee 2714
gertk 0:b612024f5aee 2715
gertk 0:b612024f5aee 2716 static void LD_B_RES_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2717 {
gertk 0:b612024f5aee 2718 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2719 BR.B = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2720 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2721 }
gertk 0:b612024f5aee 2722
gertk 0:b612024f5aee 2723
gertk 0:b612024f5aee 2724 static void LD_B_RES_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2725 {
gertk 0:b612024f5aee 2726 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2727 BR.B = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2728 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2729 }
gertk 0:b612024f5aee 2730
gertk 0:b612024f5aee 2731
gertk 0:b612024f5aee 2732 static void LD_B_RES_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2733 {
gertk 0:b612024f5aee 2734 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2735 BR.B = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2736 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2737 }
gertk 0:b612024f5aee 2738
gertk 0:b612024f5aee 2739
gertk 0:b612024f5aee 2740 static void LD_B_RES_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2741 {
gertk 0:b612024f5aee 2742 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2743 BR.B = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2744 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2745 }
gertk 0:b612024f5aee 2746
gertk 0:b612024f5aee 2747
gertk 0:b612024f5aee 2748 static void LD_B_RES_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2749 {
gertk 0:b612024f5aee 2750 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2751 BR.B = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2752 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2753 }
gertk 0:b612024f5aee 2754
gertk 0:b612024f5aee 2755
gertk 0:b612024f5aee 2756 static void LD_B_RL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2757 {
gertk 0:b612024f5aee 2758 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2759 BR.B = doRL(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2760 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2761 }
gertk 0:b612024f5aee 2762
gertk 0:b612024f5aee 2763
gertk 0:b612024f5aee 2764 static void LD_B_RL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2765 {
gertk 0:b612024f5aee 2766 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2767 BR.B = doRL(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2768 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2769 }
gertk 0:b612024f5aee 2770
gertk 0:b612024f5aee 2771
gertk 0:b612024f5aee 2772 static void LD_B_RLC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2773 {
gertk 0:b612024f5aee 2774 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2775 BR.B = doRLC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2776 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2777 }
gertk 0:b612024f5aee 2778
gertk 0:b612024f5aee 2779
gertk 0:b612024f5aee 2780 static void LD_B_RLC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2781 {
gertk 0:b612024f5aee 2782 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2783 BR.B = doRLC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2784 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2785 }
gertk 0:b612024f5aee 2786
gertk 0:b612024f5aee 2787
gertk 0:b612024f5aee 2788 static void LD_B_RR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2789 {
gertk 0:b612024f5aee 2790 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2791 BR.B = doRR(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2792 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2793 }
gertk 0:b612024f5aee 2794
gertk 0:b612024f5aee 2795
gertk 0:b612024f5aee 2796 static void LD_B_RR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2797 {
gertk 0:b612024f5aee 2798 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2799 BR.B = doRR(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2800 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2801 }
gertk 0:b612024f5aee 2802
gertk 0:b612024f5aee 2803
gertk 0:b612024f5aee 2804 static void LD_B_RRC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2805 {
gertk 0:b612024f5aee 2806 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2807 BR.B = doRRC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2808 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2809 }
gertk 0:b612024f5aee 2810
gertk 0:b612024f5aee 2811
gertk 0:b612024f5aee 2812 static void LD_B_RRC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2813 {
gertk 0:b612024f5aee 2814 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2815 BR.B = doRRC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2816 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2817 }
gertk 0:b612024f5aee 2818
gertk 0:b612024f5aee 2819
gertk 0:b612024f5aee 2820 static void LD_B_SET_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2821 {
gertk 0:b612024f5aee 2822 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2823 BR.B = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2824 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2825 }
gertk 0:b612024f5aee 2826
gertk 0:b612024f5aee 2827
gertk 0:b612024f5aee 2828 static void LD_B_SET_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2829 {
gertk 0:b612024f5aee 2830 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2831 BR.B = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2832 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2833 }
gertk 0:b612024f5aee 2834
gertk 0:b612024f5aee 2835
gertk 0:b612024f5aee 2836 static void LD_B_SET_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2837 {
gertk 0:b612024f5aee 2838 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2839 BR.B = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2840 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2841 }
gertk 0:b612024f5aee 2842
gertk 0:b612024f5aee 2843
gertk 0:b612024f5aee 2844 static void LD_B_SET_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2845 {
gertk 0:b612024f5aee 2846 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2847 BR.B = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2848 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2849 }
gertk 0:b612024f5aee 2850
gertk 0:b612024f5aee 2851
gertk 0:b612024f5aee 2852 static void LD_B_SET_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2853 {
gertk 0:b612024f5aee 2854 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2855 BR.B = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2856 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2857 }
gertk 0:b612024f5aee 2858
gertk 0:b612024f5aee 2859
gertk 0:b612024f5aee 2860 static void LD_B_SET_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2861 {
gertk 0:b612024f5aee 2862 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2863 BR.B = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2864 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2865 }
gertk 0:b612024f5aee 2866
gertk 0:b612024f5aee 2867
gertk 0:b612024f5aee 2868 static void LD_B_SET_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2869 {
gertk 0:b612024f5aee 2870 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2871 BR.B = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2872 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2873 }
gertk 0:b612024f5aee 2874
gertk 0:b612024f5aee 2875
gertk 0:b612024f5aee 2876 static void LD_B_SET_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2877 {
gertk 0:b612024f5aee 2878 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2879 BR.B = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2880 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2881 }
gertk 0:b612024f5aee 2882
gertk 0:b612024f5aee 2883
gertk 0:b612024f5aee 2884 static void LD_B_SET_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2885 {
gertk 0:b612024f5aee 2886 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2887 BR.B = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2888 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2889 }
gertk 0:b612024f5aee 2890
gertk 0:b612024f5aee 2891
gertk 0:b612024f5aee 2892 static void LD_B_SET_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2893 {
gertk 0:b612024f5aee 2894 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2895 BR.B = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2896 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2897 }
gertk 0:b612024f5aee 2898
gertk 0:b612024f5aee 2899
gertk 0:b612024f5aee 2900 static void LD_B_SET_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2901 {
gertk 0:b612024f5aee 2902 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2903 BR.B = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2904 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2905 }
gertk 0:b612024f5aee 2906
gertk 0:b612024f5aee 2907
gertk 0:b612024f5aee 2908 static void LD_B_SET_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2909 {
gertk 0:b612024f5aee 2910 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2911 BR.B = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2912 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2913 }
gertk 0:b612024f5aee 2914
gertk 0:b612024f5aee 2915
gertk 0:b612024f5aee 2916 static void LD_B_SET_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2917 {
gertk 0:b612024f5aee 2918 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2919 BR.B = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2920 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2921 }
gertk 0:b612024f5aee 2922
gertk 0:b612024f5aee 2923
gertk 0:b612024f5aee 2924 static void LD_B_SET_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2925 {
gertk 0:b612024f5aee 2926 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2927 BR.B = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2928 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2929 }
gertk 0:b612024f5aee 2930
gertk 0:b612024f5aee 2931
gertk 0:b612024f5aee 2932 static void LD_B_SET_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2933 {
gertk 0:b612024f5aee 2934 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2935 BR.B = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 2936 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2937 }
gertk 0:b612024f5aee 2938
gertk 0:b612024f5aee 2939
gertk 0:b612024f5aee 2940 static void LD_B_SET_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2941 {
gertk 0:b612024f5aee 2942 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2943 BR.B = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 2944 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2945 }
gertk 0:b612024f5aee 2946
gertk 0:b612024f5aee 2947
gertk 0:b612024f5aee 2948 static void LD_B_SLA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2949 {
gertk 0:b612024f5aee 2950 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2951 BR.B = doSL(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 2952 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2953
gertk 0:b612024f5aee 2954 }
gertk 0:b612024f5aee 2955
gertk 0:b612024f5aee 2956
gertk 0:b612024f5aee 2957 static void LD_B_SLA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2958 {
gertk 0:b612024f5aee 2959 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2960 BR.B = doSL(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 2961 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2962
gertk 0:b612024f5aee 2963 }
gertk 0:b612024f5aee 2964
gertk 0:b612024f5aee 2965
gertk 0:b612024f5aee 2966 static void LD_B_SLL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2967 {
gertk 0:b612024f5aee 2968 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2969 BR.B = doSL(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 2970 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2971
gertk 0:b612024f5aee 2972 }
gertk 0:b612024f5aee 2973
gertk 0:b612024f5aee 2974
gertk 0:b612024f5aee 2975 static void LD_B_SLL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2976 {
gertk 0:b612024f5aee 2977 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2978 BR.B = doSL(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 2979 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2980
gertk 0:b612024f5aee 2981 }
gertk 0:b612024f5aee 2982
gertk 0:b612024f5aee 2983
gertk 0:b612024f5aee 2984 static void LD_B_SRA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 2985 {
gertk 0:b612024f5aee 2986 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2987 BR.B = doSR(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 2988 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 2989
gertk 0:b612024f5aee 2990 }
gertk 0:b612024f5aee 2991
gertk 0:b612024f5aee 2992
gertk 0:b612024f5aee 2993 static void LD_B_SRA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 2994 {
gertk 0:b612024f5aee 2995 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 2996 BR.B = doSR(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 2997 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 2998
gertk 0:b612024f5aee 2999 }
gertk 0:b612024f5aee 3000
gertk 0:b612024f5aee 3001
gertk 0:b612024f5aee 3002 static void LD_B_SRL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3003 {
gertk 0:b612024f5aee 3004 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3005 BR.B = doSR(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 3006 write8(ctx, WR.IX + off, BR.B);
gertk 0:b612024f5aee 3007
gertk 0:b612024f5aee 3008 }
gertk 0:b612024f5aee 3009
gertk 0:b612024f5aee 3010
gertk 0:b612024f5aee 3011 static void LD_B_SRL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3012 {
gertk 0:b612024f5aee 3013 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3014 BR.B = doSR(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 3015 write8(ctx, WR.IY + off, BR.B);
gertk 0:b612024f5aee 3016
gertk 0:b612024f5aee 3017 }
gertk 0:b612024f5aee 3018
gertk 0:b612024f5aee 3019
gertk 0:b612024f5aee 3020 static void LD_BC_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 3021 {
gertk 0:b612024f5aee 3022 WR.BC = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 3023 ctx->PC += 2;
gertk 0:b612024f5aee 3024 }
gertk 0:b612024f5aee 3025
gertk 0:b612024f5aee 3026
gertk 0:b612024f5aee 3027 static void LD_BC_nn (Z80Context* ctx)
gertk 0:b612024f5aee 3028 {
gertk 0:b612024f5aee 3029 WR.BC = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 3030 ctx->PC += 2;
gertk 0:b612024f5aee 3031
gertk 0:b612024f5aee 3032 }
gertk 0:b612024f5aee 3033
gertk 0:b612024f5aee 3034
gertk 0:b612024f5aee 3035 static void LD_C_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 3036 {
gertk 0:b612024f5aee 3037 BR.C = read8(ctx, WR.HL);
gertk 0:b612024f5aee 3038 }
gertk 0:b612024f5aee 3039
gertk 0:b612024f5aee 3040
gertk 0:b612024f5aee 3041 static void LD_C_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3042 {
gertk 0:b612024f5aee 3043 BR.C = read8(ctx, WR.IX + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 3044 }
gertk 0:b612024f5aee 3045
gertk 0:b612024f5aee 3046
gertk 0:b612024f5aee 3047 static void LD_C_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3048 {
gertk 0:b612024f5aee 3049 BR.C = read8(ctx, WR.IY + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 3050 }
gertk 0:b612024f5aee 3051
gertk 0:b612024f5aee 3052
gertk 0:b612024f5aee 3053 static void LD_C_A (Z80Context* ctx)
gertk 0:b612024f5aee 3054 {
gertk 0:b612024f5aee 3055 BR.C = BR.A;
gertk 0:b612024f5aee 3056 }
gertk 0:b612024f5aee 3057
gertk 0:b612024f5aee 3058
gertk 0:b612024f5aee 3059 static void LD_C_B (Z80Context* ctx)
gertk 0:b612024f5aee 3060 {
gertk 0:b612024f5aee 3061 BR.C = BR.B;
gertk 0:b612024f5aee 3062 }
gertk 0:b612024f5aee 3063
gertk 0:b612024f5aee 3064
gertk 0:b612024f5aee 3065 static void LD_C_C (Z80Context* ctx)
gertk 0:b612024f5aee 3066 {
gertk 0:b612024f5aee 3067 BR.C = BR.C;
gertk 0:b612024f5aee 3068 }
gertk 0:b612024f5aee 3069
gertk 0:b612024f5aee 3070
gertk 0:b612024f5aee 3071 static void LD_C_D (Z80Context* ctx)
gertk 0:b612024f5aee 3072 {
gertk 0:b612024f5aee 3073 BR.C = BR.D;
gertk 0:b612024f5aee 3074 }
gertk 0:b612024f5aee 3075
gertk 0:b612024f5aee 3076
gertk 0:b612024f5aee 3077 static void LD_C_E (Z80Context* ctx)
gertk 0:b612024f5aee 3078 {
gertk 0:b612024f5aee 3079 BR.C = BR.E;
gertk 0:b612024f5aee 3080 }
gertk 0:b612024f5aee 3081
gertk 0:b612024f5aee 3082
gertk 0:b612024f5aee 3083 static void LD_C_H (Z80Context* ctx)
gertk 0:b612024f5aee 3084 {
gertk 0:b612024f5aee 3085 BR.C = BR.H;
gertk 0:b612024f5aee 3086 }
gertk 0:b612024f5aee 3087
gertk 0:b612024f5aee 3088
gertk 0:b612024f5aee 3089 static void LD_C_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 3090 {
gertk 0:b612024f5aee 3091 BR.C = BR.IXh;
gertk 0:b612024f5aee 3092 }
gertk 0:b612024f5aee 3093
gertk 0:b612024f5aee 3094
gertk 0:b612024f5aee 3095 static void LD_C_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 3096 {
gertk 0:b612024f5aee 3097 BR.C = BR.IXl;
gertk 0:b612024f5aee 3098 }
gertk 0:b612024f5aee 3099
gertk 0:b612024f5aee 3100
gertk 0:b612024f5aee 3101 static void LD_C_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 3102 {
gertk 0:b612024f5aee 3103 BR.C = BR.IYh;
gertk 0:b612024f5aee 3104 }
gertk 0:b612024f5aee 3105
gertk 0:b612024f5aee 3106
gertk 0:b612024f5aee 3107 static void LD_C_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 3108 {
gertk 0:b612024f5aee 3109 BR.C = BR.IYl;
gertk 0:b612024f5aee 3110 }
gertk 0:b612024f5aee 3111
gertk 0:b612024f5aee 3112
gertk 0:b612024f5aee 3113 static void LD_C_L (Z80Context* ctx)
gertk 0:b612024f5aee 3114 {
gertk 0:b612024f5aee 3115 BR.C = BR.L;
gertk 0:b612024f5aee 3116 }
gertk 0:b612024f5aee 3117
gertk 0:b612024f5aee 3118
gertk 0:b612024f5aee 3119 static void LD_C_n (Z80Context* ctx)
gertk 0:b612024f5aee 3120 {
gertk 0:b612024f5aee 3121 BR.C = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3122
gertk 0:b612024f5aee 3123 }
gertk 0:b612024f5aee 3124
gertk 0:b612024f5aee 3125
gertk 0:b612024f5aee 3126 static void LD_C_RES_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3127 {
gertk 0:b612024f5aee 3128 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3129 BR.C = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3130 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3131 }
gertk 0:b612024f5aee 3132
gertk 0:b612024f5aee 3133
gertk 0:b612024f5aee 3134 static void LD_C_RES_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3135 {
gertk 0:b612024f5aee 3136 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3137 BR.C = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3138 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3139 }
gertk 0:b612024f5aee 3140
gertk 0:b612024f5aee 3141
gertk 0:b612024f5aee 3142 static void LD_C_RES_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3143 {
gertk 0:b612024f5aee 3144 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3145 BR.C = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3146 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3147 }
gertk 0:b612024f5aee 3148
gertk 0:b612024f5aee 3149
gertk 0:b612024f5aee 3150 static void LD_C_RES_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3151 {
gertk 0:b612024f5aee 3152 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3153 BR.C = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3154 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3155 }
gertk 0:b612024f5aee 3156
gertk 0:b612024f5aee 3157
gertk 0:b612024f5aee 3158 static void LD_C_RES_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3159 {
gertk 0:b612024f5aee 3160 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3161 BR.C = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3162 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3163 }
gertk 0:b612024f5aee 3164
gertk 0:b612024f5aee 3165
gertk 0:b612024f5aee 3166 static void LD_C_RES_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3167 {
gertk 0:b612024f5aee 3168 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3169 BR.C = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3170 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3171 }
gertk 0:b612024f5aee 3172
gertk 0:b612024f5aee 3173
gertk 0:b612024f5aee 3174 static void LD_C_RES_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3175 {
gertk 0:b612024f5aee 3176 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3177 BR.C = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3178 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3179 }
gertk 0:b612024f5aee 3180
gertk 0:b612024f5aee 3181
gertk 0:b612024f5aee 3182 static void LD_C_RES_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3183 {
gertk 0:b612024f5aee 3184 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3185 BR.C = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3186 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3187 }
gertk 0:b612024f5aee 3188
gertk 0:b612024f5aee 3189
gertk 0:b612024f5aee 3190 static void LD_C_RES_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3191 {
gertk 0:b612024f5aee 3192 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3193 BR.C = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3194 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3195 }
gertk 0:b612024f5aee 3196
gertk 0:b612024f5aee 3197
gertk 0:b612024f5aee 3198 static void LD_C_RES_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3199 {
gertk 0:b612024f5aee 3200 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3201 BR.C = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3202 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3203 }
gertk 0:b612024f5aee 3204
gertk 0:b612024f5aee 3205
gertk 0:b612024f5aee 3206 static void LD_C_RES_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3207 {
gertk 0:b612024f5aee 3208 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3209 BR.C = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3210 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3211 }
gertk 0:b612024f5aee 3212
gertk 0:b612024f5aee 3213
gertk 0:b612024f5aee 3214 static void LD_C_RES_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3215 {
gertk 0:b612024f5aee 3216 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3217 BR.C = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3218 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3219 }
gertk 0:b612024f5aee 3220
gertk 0:b612024f5aee 3221
gertk 0:b612024f5aee 3222 static void LD_C_RES_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3223 {
gertk 0:b612024f5aee 3224 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3225 BR.C = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3226 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3227 }
gertk 0:b612024f5aee 3228
gertk 0:b612024f5aee 3229
gertk 0:b612024f5aee 3230 static void LD_C_RES_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3231 {
gertk 0:b612024f5aee 3232 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3233 BR.C = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3234 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3235 }
gertk 0:b612024f5aee 3236
gertk 0:b612024f5aee 3237
gertk 0:b612024f5aee 3238 static void LD_C_RES_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3239 {
gertk 0:b612024f5aee 3240 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3241 BR.C = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3242 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3243 }
gertk 0:b612024f5aee 3244
gertk 0:b612024f5aee 3245
gertk 0:b612024f5aee 3246 static void LD_C_RES_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3247 {
gertk 0:b612024f5aee 3248 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3249 BR.C = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3250 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3251 }
gertk 0:b612024f5aee 3252
gertk 0:b612024f5aee 3253
gertk 0:b612024f5aee 3254 static void LD_C_RL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3255 {
gertk 0:b612024f5aee 3256 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3257 BR.C = doRL(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3258 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3259 }
gertk 0:b612024f5aee 3260
gertk 0:b612024f5aee 3261
gertk 0:b612024f5aee 3262 static void LD_C_RL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3263 {
gertk 0:b612024f5aee 3264 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3265 BR.C = doRL(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3266 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3267 }
gertk 0:b612024f5aee 3268
gertk 0:b612024f5aee 3269
gertk 0:b612024f5aee 3270 static void LD_C_RLC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3271 {
gertk 0:b612024f5aee 3272 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3273 BR.C = doRLC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3274 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3275 }
gertk 0:b612024f5aee 3276
gertk 0:b612024f5aee 3277
gertk 0:b612024f5aee 3278 static void LD_C_RLC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3279 {
gertk 0:b612024f5aee 3280 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3281 BR.C = doRLC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3282 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3283 }
gertk 0:b612024f5aee 3284
gertk 0:b612024f5aee 3285
gertk 0:b612024f5aee 3286 static void LD_C_RR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3287 {
gertk 0:b612024f5aee 3288 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3289 BR.C = doRR(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3290 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3291 }
gertk 0:b612024f5aee 3292
gertk 0:b612024f5aee 3293
gertk 0:b612024f5aee 3294 static void LD_C_RR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3295 {
gertk 0:b612024f5aee 3296 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3297 BR.C = doRR(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3298 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3299 }
gertk 0:b612024f5aee 3300
gertk 0:b612024f5aee 3301
gertk 0:b612024f5aee 3302 static void LD_C_RRC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3303 {
gertk 0:b612024f5aee 3304 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3305 BR.C = doRRC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3306 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3307 }
gertk 0:b612024f5aee 3308
gertk 0:b612024f5aee 3309
gertk 0:b612024f5aee 3310 static void LD_C_RRC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3311 {
gertk 0:b612024f5aee 3312 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3313 BR.C = doRRC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3314 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3315 }
gertk 0:b612024f5aee 3316
gertk 0:b612024f5aee 3317
gertk 0:b612024f5aee 3318 static void LD_C_SET_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3319 {
gertk 0:b612024f5aee 3320 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3321 BR.C = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3322 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3323 }
gertk 0:b612024f5aee 3324
gertk 0:b612024f5aee 3325
gertk 0:b612024f5aee 3326 static void LD_C_SET_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3327 {
gertk 0:b612024f5aee 3328 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3329 BR.C = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3330 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3331 }
gertk 0:b612024f5aee 3332
gertk 0:b612024f5aee 3333
gertk 0:b612024f5aee 3334 static void LD_C_SET_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3335 {
gertk 0:b612024f5aee 3336 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3337 BR.C = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3338 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3339 }
gertk 0:b612024f5aee 3340
gertk 0:b612024f5aee 3341
gertk 0:b612024f5aee 3342 static void LD_C_SET_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3343 {
gertk 0:b612024f5aee 3344 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3345 BR.C = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3346 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3347 }
gertk 0:b612024f5aee 3348
gertk 0:b612024f5aee 3349
gertk 0:b612024f5aee 3350 static void LD_C_SET_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3351 {
gertk 0:b612024f5aee 3352 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3353 BR.C = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3354 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3355 }
gertk 0:b612024f5aee 3356
gertk 0:b612024f5aee 3357
gertk 0:b612024f5aee 3358 static void LD_C_SET_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3359 {
gertk 0:b612024f5aee 3360 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3361 BR.C = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3362 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3363 }
gertk 0:b612024f5aee 3364
gertk 0:b612024f5aee 3365
gertk 0:b612024f5aee 3366 static void LD_C_SET_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3367 {
gertk 0:b612024f5aee 3368 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3369 BR.C = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3370 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3371 }
gertk 0:b612024f5aee 3372
gertk 0:b612024f5aee 3373
gertk 0:b612024f5aee 3374 static void LD_C_SET_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3375 {
gertk 0:b612024f5aee 3376 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3377 BR.C = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3378 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3379 }
gertk 0:b612024f5aee 3380
gertk 0:b612024f5aee 3381
gertk 0:b612024f5aee 3382 static void LD_C_SET_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3383 {
gertk 0:b612024f5aee 3384 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3385 BR.C = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3386 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3387 }
gertk 0:b612024f5aee 3388
gertk 0:b612024f5aee 3389
gertk 0:b612024f5aee 3390 static void LD_C_SET_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3391 {
gertk 0:b612024f5aee 3392 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3393 BR.C = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3394 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3395 }
gertk 0:b612024f5aee 3396
gertk 0:b612024f5aee 3397
gertk 0:b612024f5aee 3398 static void LD_C_SET_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3399 {
gertk 0:b612024f5aee 3400 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3401 BR.C = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3402 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3403 }
gertk 0:b612024f5aee 3404
gertk 0:b612024f5aee 3405
gertk 0:b612024f5aee 3406 static void LD_C_SET_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3407 {
gertk 0:b612024f5aee 3408 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3409 BR.C = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3410 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3411 }
gertk 0:b612024f5aee 3412
gertk 0:b612024f5aee 3413
gertk 0:b612024f5aee 3414 static void LD_C_SET_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3415 {
gertk 0:b612024f5aee 3416 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3417 BR.C = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3418 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3419 }
gertk 0:b612024f5aee 3420
gertk 0:b612024f5aee 3421
gertk 0:b612024f5aee 3422 static void LD_C_SET_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3423 {
gertk 0:b612024f5aee 3424 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3425 BR.C = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3426 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3427 }
gertk 0:b612024f5aee 3428
gertk 0:b612024f5aee 3429
gertk 0:b612024f5aee 3430 static void LD_C_SET_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3431 {
gertk 0:b612024f5aee 3432 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3433 BR.C = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3434 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3435 }
gertk 0:b612024f5aee 3436
gertk 0:b612024f5aee 3437
gertk 0:b612024f5aee 3438 static void LD_C_SET_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3439 {
gertk 0:b612024f5aee 3440 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3441 BR.C = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3442 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3443 }
gertk 0:b612024f5aee 3444
gertk 0:b612024f5aee 3445
gertk 0:b612024f5aee 3446 static void LD_C_SLA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3447 {
gertk 0:b612024f5aee 3448 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3449 BR.C = doSL(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 3450 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3451
gertk 0:b612024f5aee 3452 }
gertk 0:b612024f5aee 3453
gertk 0:b612024f5aee 3454
gertk 0:b612024f5aee 3455 static void LD_C_SLA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3456 {
gertk 0:b612024f5aee 3457 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3458 BR.C = doSL(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 3459 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3460
gertk 0:b612024f5aee 3461 }
gertk 0:b612024f5aee 3462
gertk 0:b612024f5aee 3463
gertk 0:b612024f5aee 3464 static void LD_C_SLL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3465 {
gertk 0:b612024f5aee 3466 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3467 BR.C = doSL(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 3468 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3469
gertk 0:b612024f5aee 3470 }
gertk 0:b612024f5aee 3471
gertk 0:b612024f5aee 3472
gertk 0:b612024f5aee 3473 static void LD_C_SLL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3474 {
gertk 0:b612024f5aee 3475 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3476 BR.C = doSL(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 3477 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3478
gertk 0:b612024f5aee 3479 }
gertk 0:b612024f5aee 3480
gertk 0:b612024f5aee 3481
gertk 0:b612024f5aee 3482 static void LD_C_SRA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3483 {
gertk 0:b612024f5aee 3484 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3485 BR.C = doSR(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 3486 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3487
gertk 0:b612024f5aee 3488 }
gertk 0:b612024f5aee 3489
gertk 0:b612024f5aee 3490
gertk 0:b612024f5aee 3491 static void LD_C_SRA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3492 {
gertk 0:b612024f5aee 3493 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3494 BR.C = doSR(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 3495 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3496
gertk 0:b612024f5aee 3497 }
gertk 0:b612024f5aee 3498
gertk 0:b612024f5aee 3499
gertk 0:b612024f5aee 3500 static void LD_C_SRL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3501 {
gertk 0:b612024f5aee 3502 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3503 BR.C = doSR(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 3504 write8(ctx, WR.IX + off, BR.C);
gertk 0:b612024f5aee 3505
gertk 0:b612024f5aee 3506 }
gertk 0:b612024f5aee 3507
gertk 0:b612024f5aee 3508
gertk 0:b612024f5aee 3509 static void LD_C_SRL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3510 {
gertk 0:b612024f5aee 3511 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3512 BR.C = doSR(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 3513 write8(ctx, WR.IY + off, BR.C);
gertk 0:b612024f5aee 3514
gertk 0:b612024f5aee 3515 }
gertk 0:b612024f5aee 3516
gertk 0:b612024f5aee 3517
gertk 0:b612024f5aee 3518 static void LD_D_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 3519 {
gertk 0:b612024f5aee 3520 BR.D = read8(ctx, WR.HL);
gertk 0:b612024f5aee 3521 }
gertk 0:b612024f5aee 3522
gertk 0:b612024f5aee 3523
gertk 0:b612024f5aee 3524 static void LD_D_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3525 {
gertk 0:b612024f5aee 3526 BR.D = read8(ctx, WR.IX + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 3527 }
gertk 0:b612024f5aee 3528
gertk 0:b612024f5aee 3529
gertk 0:b612024f5aee 3530 static void LD_D_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3531 {
gertk 0:b612024f5aee 3532 BR.D = read8(ctx, WR.IY + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 3533 }
gertk 0:b612024f5aee 3534
gertk 0:b612024f5aee 3535
gertk 0:b612024f5aee 3536 static void LD_D_A (Z80Context* ctx)
gertk 0:b612024f5aee 3537 {
gertk 0:b612024f5aee 3538 BR.D = BR.A;
gertk 0:b612024f5aee 3539 }
gertk 0:b612024f5aee 3540
gertk 0:b612024f5aee 3541
gertk 0:b612024f5aee 3542 static void LD_D_B (Z80Context* ctx)
gertk 0:b612024f5aee 3543 {
gertk 0:b612024f5aee 3544 BR.D = BR.B;
gertk 0:b612024f5aee 3545 }
gertk 0:b612024f5aee 3546
gertk 0:b612024f5aee 3547
gertk 0:b612024f5aee 3548 static void LD_D_C (Z80Context* ctx)
gertk 0:b612024f5aee 3549 {
gertk 0:b612024f5aee 3550 BR.D = BR.C;
gertk 0:b612024f5aee 3551 }
gertk 0:b612024f5aee 3552
gertk 0:b612024f5aee 3553
gertk 0:b612024f5aee 3554 static void LD_D_D (Z80Context* ctx)
gertk 0:b612024f5aee 3555 {
gertk 0:b612024f5aee 3556 BR.D = BR.D;
gertk 0:b612024f5aee 3557 }
gertk 0:b612024f5aee 3558
gertk 0:b612024f5aee 3559
gertk 0:b612024f5aee 3560 static void LD_D_E (Z80Context* ctx)
gertk 0:b612024f5aee 3561 {
gertk 0:b612024f5aee 3562 BR.D = BR.E;
gertk 0:b612024f5aee 3563 }
gertk 0:b612024f5aee 3564
gertk 0:b612024f5aee 3565
gertk 0:b612024f5aee 3566 static void LD_D_H (Z80Context* ctx)
gertk 0:b612024f5aee 3567 {
gertk 0:b612024f5aee 3568 BR.D = BR.H;
gertk 0:b612024f5aee 3569 }
gertk 0:b612024f5aee 3570
gertk 0:b612024f5aee 3571
gertk 0:b612024f5aee 3572 static void LD_D_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 3573 {
gertk 0:b612024f5aee 3574 BR.D = BR.IXh;
gertk 0:b612024f5aee 3575 }
gertk 0:b612024f5aee 3576
gertk 0:b612024f5aee 3577
gertk 0:b612024f5aee 3578 static void LD_D_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 3579 {
gertk 0:b612024f5aee 3580 BR.D = BR.IXl;
gertk 0:b612024f5aee 3581 }
gertk 0:b612024f5aee 3582
gertk 0:b612024f5aee 3583
gertk 0:b612024f5aee 3584 static void LD_D_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 3585 {
gertk 0:b612024f5aee 3586 BR.D = BR.IYh;
gertk 0:b612024f5aee 3587 }
gertk 0:b612024f5aee 3588
gertk 0:b612024f5aee 3589
gertk 0:b612024f5aee 3590 static void LD_D_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 3591 {
gertk 0:b612024f5aee 3592 BR.D = BR.IYl;
gertk 0:b612024f5aee 3593 }
gertk 0:b612024f5aee 3594
gertk 0:b612024f5aee 3595
gertk 0:b612024f5aee 3596 static void LD_D_L (Z80Context* ctx)
gertk 0:b612024f5aee 3597 {
gertk 0:b612024f5aee 3598 BR.D = BR.L;
gertk 0:b612024f5aee 3599 }
gertk 0:b612024f5aee 3600
gertk 0:b612024f5aee 3601
gertk 0:b612024f5aee 3602 static void LD_D_n (Z80Context* ctx)
gertk 0:b612024f5aee 3603 {
gertk 0:b612024f5aee 3604 BR.D = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3605
gertk 0:b612024f5aee 3606 }
gertk 0:b612024f5aee 3607
gertk 0:b612024f5aee 3608
gertk 0:b612024f5aee 3609 static void LD_D_RES_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3610 {
gertk 0:b612024f5aee 3611 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3612 BR.D = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3613 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3614 }
gertk 0:b612024f5aee 3615
gertk 0:b612024f5aee 3616
gertk 0:b612024f5aee 3617 static void LD_D_RES_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3618 {
gertk 0:b612024f5aee 3619 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3620 BR.D = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3621 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3622 }
gertk 0:b612024f5aee 3623
gertk 0:b612024f5aee 3624
gertk 0:b612024f5aee 3625 static void LD_D_RES_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3626 {
gertk 0:b612024f5aee 3627 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3628 BR.D = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3629 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3630 }
gertk 0:b612024f5aee 3631
gertk 0:b612024f5aee 3632
gertk 0:b612024f5aee 3633 static void LD_D_RES_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3634 {
gertk 0:b612024f5aee 3635 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3636 BR.D = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3637 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3638 }
gertk 0:b612024f5aee 3639
gertk 0:b612024f5aee 3640
gertk 0:b612024f5aee 3641 static void LD_D_RES_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3642 {
gertk 0:b612024f5aee 3643 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3644 BR.D = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3645 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3646 }
gertk 0:b612024f5aee 3647
gertk 0:b612024f5aee 3648
gertk 0:b612024f5aee 3649 static void LD_D_RES_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3650 {
gertk 0:b612024f5aee 3651 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3652 BR.D = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3653 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3654 }
gertk 0:b612024f5aee 3655
gertk 0:b612024f5aee 3656
gertk 0:b612024f5aee 3657 static void LD_D_RES_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3658 {
gertk 0:b612024f5aee 3659 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3660 BR.D = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3661 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3662 }
gertk 0:b612024f5aee 3663
gertk 0:b612024f5aee 3664
gertk 0:b612024f5aee 3665 static void LD_D_RES_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3666 {
gertk 0:b612024f5aee 3667 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3668 BR.D = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3669 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3670 }
gertk 0:b612024f5aee 3671
gertk 0:b612024f5aee 3672
gertk 0:b612024f5aee 3673 static void LD_D_RES_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3674 {
gertk 0:b612024f5aee 3675 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3676 BR.D = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3677 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3678 }
gertk 0:b612024f5aee 3679
gertk 0:b612024f5aee 3680
gertk 0:b612024f5aee 3681 static void LD_D_RES_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3682 {
gertk 0:b612024f5aee 3683 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3684 BR.D = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3685 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3686 }
gertk 0:b612024f5aee 3687
gertk 0:b612024f5aee 3688
gertk 0:b612024f5aee 3689 static void LD_D_RES_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3690 {
gertk 0:b612024f5aee 3691 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3692 BR.D = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3693 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3694 }
gertk 0:b612024f5aee 3695
gertk 0:b612024f5aee 3696
gertk 0:b612024f5aee 3697 static void LD_D_RES_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3698 {
gertk 0:b612024f5aee 3699 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3700 BR.D = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3701 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3702 }
gertk 0:b612024f5aee 3703
gertk 0:b612024f5aee 3704
gertk 0:b612024f5aee 3705 static void LD_D_RES_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3706 {
gertk 0:b612024f5aee 3707 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3708 BR.D = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3709 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3710 }
gertk 0:b612024f5aee 3711
gertk 0:b612024f5aee 3712
gertk 0:b612024f5aee 3713 static void LD_D_RES_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3714 {
gertk 0:b612024f5aee 3715 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3716 BR.D = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3717 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3718 }
gertk 0:b612024f5aee 3719
gertk 0:b612024f5aee 3720
gertk 0:b612024f5aee 3721 static void LD_D_RES_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3722 {
gertk 0:b612024f5aee 3723 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3724 BR.D = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3725 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3726 }
gertk 0:b612024f5aee 3727
gertk 0:b612024f5aee 3728
gertk 0:b612024f5aee 3729 static void LD_D_RES_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3730 {
gertk 0:b612024f5aee 3731 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3732 BR.D = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3733 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3734 }
gertk 0:b612024f5aee 3735
gertk 0:b612024f5aee 3736
gertk 0:b612024f5aee 3737 static void LD_D_RL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3738 {
gertk 0:b612024f5aee 3739 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3740 BR.D = doRL(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3741 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3742 }
gertk 0:b612024f5aee 3743
gertk 0:b612024f5aee 3744
gertk 0:b612024f5aee 3745 static void LD_D_RL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3746 {
gertk 0:b612024f5aee 3747 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3748 BR.D = doRL(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3749 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3750 }
gertk 0:b612024f5aee 3751
gertk 0:b612024f5aee 3752
gertk 0:b612024f5aee 3753 static void LD_D_RLC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3754 {
gertk 0:b612024f5aee 3755 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3756 BR.D = doRLC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3757 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3758 }
gertk 0:b612024f5aee 3759
gertk 0:b612024f5aee 3760
gertk 0:b612024f5aee 3761 static void LD_D_RLC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3762 {
gertk 0:b612024f5aee 3763 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3764 BR.D = doRLC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3765 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3766 }
gertk 0:b612024f5aee 3767
gertk 0:b612024f5aee 3768
gertk 0:b612024f5aee 3769 static void LD_D_RR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3770 {
gertk 0:b612024f5aee 3771 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3772 BR.D = doRR(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3773 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3774 }
gertk 0:b612024f5aee 3775
gertk 0:b612024f5aee 3776
gertk 0:b612024f5aee 3777 static void LD_D_RR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3778 {
gertk 0:b612024f5aee 3779 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3780 BR.D = doRR(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3781 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3782 }
gertk 0:b612024f5aee 3783
gertk 0:b612024f5aee 3784
gertk 0:b612024f5aee 3785 static void LD_D_RRC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3786 {
gertk 0:b612024f5aee 3787 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3788 BR.D = doRRC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3789 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3790 }
gertk 0:b612024f5aee 3791
gertk 0:b612024f5aee 3792
gertk 0:b612024f5aee 3793 static void LD_D_RRC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3794 {
gertk 0:b612024f5aee 3795 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3796 BR.D = doRRC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3797 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3798 }
gertk 0:b612024f5aee 3799
gertk 0:b612024f5aee 3800
gertk 0:b612024f5aee 3801 static void LD_D_SET_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3802 {
gertk 0:b612024f5aee 3803 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3804 BR.D = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3805 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3806 }
gertk 0:b612024f5aee 3807
gertk 0:b612024f5aee 3808
gertk 0:b612024f5aee 3809 static void LD_D_SET_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3810 {
gertk 0:b612024f5aee 3811 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3812 BR.D = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3813 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3814 }
gertk 0:b612024f5aee 3815
gertk 0:b612024f5aee 3816
gertk 0:b612024f5aee 3817 static void LD_D_SET_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3818 {
gertk 0:b612024f5aee 3819 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3820 BR.D = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3821 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3822 }
gertk 0:b612024f5aee 3823
gertk 0:b612024f5aee 3824
gertk 0:b612024f5aee 3825 static void LD_D_SET_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3826 {
gertk 0:b612024f5aee 3827 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3828 BR.D = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3829 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3830 }
gertk 0:b612024f5aee 3831
gertk 0:b612024f5aee 3832
gertk 0:b612024f5aee 3833 static void LD_D_SET_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3834 {
gertk 0:b612024f5aee 3835 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3836 BR.D = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3837 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3838 }
gertk 0:b612024f5aee 3839
gertk 0:b612024f5aee 3840
gertk 0:b612024f5aee 3841 static void LD_D_SET_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3842 {
gertk 0:b612024f5aee 3843 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3844 BR.D = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3845 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3846 }
gertk 0:b612024f5aee 3847
gertk 0:b612024f5aee 3848
gertk 0:b612024f5aee 3849 static void LD_D_SET_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3850 {
gertk 0:b612024f5aee 3851 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3852 BR.D = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3853 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3854 }
gertk 0:b612024f5aee 3855
gertk 0:b612024f5aee 3856
gertk 0:b612024f5aee 3857 static void LD_D_SET_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3858 {
gertk 0:b612024f5aee 3859 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3860 BR.D = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3861 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3862 }
gertk 0:b612024f5aee 3863
gertk 0:b612024f5aee 3864
gertk 0:b612024f5aee 3865 static void LD_D_SET_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3866 {
gertk 0:b612024f5aee 3867 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3868 BR.D = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3869 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3870 }
gertk 0:b612024f5aee 3871
gertk 0:b612024f5aee 3872
gertk 0:b612024f5aee 3873 static void LD_D_SET_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3874 {
gertk 0:b612024f5aee 3875 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3876 BR.D = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3877 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3878 }
gertk 0:b612024f5aee 3879
gertk 0:b612024f5aee 3880
gertk 0:b612024f5aee 3881 static void LD_D_SET_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3882 {
gertk 0:b612024f5aee 3883 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3884 BR.D = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3885 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3886 }
gertk 0:b612024f5aee 3887
gertk 0:b612024f5aee 3888
gertk 0:b612024f5aee 3889 static void LD_D_SET_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3890 {
gertk 0:b612024f5aee 3891 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3892 BR.D = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3893 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3894 }
gertk 0:b612024f5aee 3895
gertk 0:b612024f5aee 3896
gertk 0:b612024f5aee 3897 static void LD_D_SET_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3898 {
gertk 0:b612024f5aee 3899 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3900 BR.D = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3901 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3902 }
gertk 0:b612024f5aee 3903
gertk 0:b612024f5aee 3904
gertk 0:b612024f5aee 3905 static void LD_D_SET_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3906 {
gertk 0:b612024f5aee 3907 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3908 BR.D = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3909 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3910 }
gertk 0:b612024f5aee 3911
gertk 0:b612024f5aee 3912
gertk 0:b612024f5aee 3913 static void LD_D_SET_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3914 {
gertk 0:b612024f5aee 3915 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3916 BR.D = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 3917 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3918 }
gertk 0:b612024f5aee 3919
gertk 0:b612024f5aee 3920
gertk 0:b612024f5aee 3921 static void LD_D_SET_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3922 {
gertk 0:b612024f5aee 3923 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3924 BR.D = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 3925 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3926 }
gertk 0:b612024f5aee 3927
gertk 0:b612024f5aee 3928
gertk 0:b612024f5aee 3929 static void LD_D_SLA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3930 {
gertk 0:b612024f5aee 3931 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3932 BR.D = doSL(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 3933 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3934
gertk 0:b612024f5aee 3935 }
gertk 0:b612024f5aee 3936
gertk 0:b612024f5aee 3937
gertk 0:b612024f5aee 3938 static void LD_D_SLA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3939 {
gertk 0:b612024f5aee 3940 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3941 BR.D = doSL(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 3942 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3943
gertk 0:b612024f5aee 3944 }
gertk 0:b612024f5aee 3945
gertk 0:b612024f5aee 3946
gertk 0:b612024f5aee 3947 static void LD_D_SLL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3948 {
gertk 0:b612024f5aee 3949 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3950 BR.D = doSL(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 3951 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3952
gertk 0:b612024f5aee 3953 }
gertk 0:b612024f5aee 3954
gertk 0:b612024f5aee 3955
gertk 0:b612024f5aee 3956 static void LD_D_SLL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3957 {
gertk 0:b612024f5aee 3958 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3959 BR.D = doSL(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 3960 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3961
gertk 0:b612024f5aee 3962 }
gertk 0:b612024f5aee 3963
gertk 0:b612024f5aee 3964
gertk 0:b612024f5aee 3965 static void LD_D_SRA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3966 {
gertk 0:b612024f5aee 3967 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3968 BR.D = doSR(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 3969 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3970
gertk 0:b612024f5aee 3971 }
gertk 0:b612024f5aee 3972
gertk 0:b612024f5aee 3973
gertk 0:b612024f5aee 3974 static void LD_D_SRA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3975 {
gertk 0:b612024f5aee 3976 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3977 BR.D = doSR(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 3978 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3979
gertk 0:b612024f5aee 3980 }
gertk 0:b612024f5aee 3981
gertk 0:b612024f5aee 3982
gertk 0:b612024f5aee 3983 static void LD_D_SRL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 3984 {
gertk 0:b612024f5aee 3985 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3986 BR.D = doSR(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 3987 write8(ctx, WR.IX + off, BR.D);
gertk 0:b612024f5aee 3988
gertk 0:b612024f5aee 3989 }
gertk 0:b612024f5aee 3990
gertk 0:b612024f5aee 3991
gertk 0:b612024f5aee 3992 static void LD_D_SRL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 3993 {
gertk 0:b612024f5aee 3994 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 3995 BR.D = doSR(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 3996 write8(ctx, WR.IY + off, BR.D);
gertk 0:b612024f5aee 3997
gertk 0:b612024f5aee 3998 }
gertk 0:b612024f5aee 3999
gertk 0:b612024f5aee 4000
gertk 0:b612024f5aee 4001 static void LD_DE_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 4002 {
gertk 0:b612024f5aee 4003 WR.DE = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 4004 ctx->PC += 2;
gertk 0:b612024f5aee 4005 }
gertk 0:b612024f5aee 4006
gertk 0:b612024f5aee 4007
gertk 0:b612024f5aee 4008 static void LD_DE_nn (Z80Context* ctx)
gertk 0:b612024f5aee 4009 {
gertk 0:b612024f5aee 4010 WR.DE = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 4011 ctx->PC += 2;
gertk 0:b612024f5aee 4012
gertk 0:b612024f5aee 4013 }
gertk 0:b612024f5aee 4014
gertk 0:b612024f5aee 4015
gertk 0:b612024f5aee 4016 static void LD_E_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 4017 {
gertk 0:b612024f5aee 4018 BR.E = read8(ctx, WR.HL);
gertk 0:b612024f5aee 4019 }
gertk 0:b612024f5aee 4020
gertk 0:b612024f5aee 4021
gertk 0:b612024f5aee 4022 static void LD_E_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4023 {
gertk 0:b612024f5aee 4024 BR.E = read8(ctx, WR.IX + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 4025 }
gertk 0:b612024f5aee 4026
gertk 0:b612024f5aee 4027
gertk 0:b612024f5aee 4028 static void LD_E_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4029 {
gertk 0:b612024f5aee 4030 BR.E = read8(ctx, WR.IY + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 4031 }
gertk 0:b612024f5aee 4032
gertk 0:b612024f5aee 4033
gertk 0:b612024f5aee 4034 static void LD_E_A (Z80Context* ctx)
gertk 0:b612024f5aee 4035 {
gertk 0:b612024f5aee 4036 BR.E = BR.A;
gertk 0:b612024f5aee 4037 }
gertk 0:b612024f5aee 4038
gertk 0:b612024f5aee 4039
gertk 0:b612024f5aee 4040 static void LD_E_B (Z80Context* ctx)
gertk 0:b612024f5aee 4041 {
gertk 0:b612024f5aee 4042 BR.E = BR.B;
gertk 0:b612024f5aee 4043 }
gertk 0:b612024f5aee 4044
gertk 0:b612024f5aee 4045
gertk 0:b612024f5aee 4046 static void LD_E_C (Z80Context* ctx)
gertk 0:b612024f5aee 4047 {
gertk 0:b612024f5aee 4048 BR.E = BR.C;
gertk 0:b612024f5aee 4049 }
gertk 0:b612024f5aee 4050
gertk 0:b612024f5aee 4051
gertk 0:b612024f5aee 4052 static void LD_E_D (Z80Context* ctx)
gertk 0:b612024f5aee 4053 {
gertk 0:b612024f5aee 4054 BR.E = BR.D;
gertk 0:b612024f5aee 4055 }
gertk 0:b612024f5aee 4056
gertk 0:b612024f5aee 4057
gertk 0:b612024f5aee 4058 static void LD_E_E (Z80Context* ctx)
gertk 0:b612024f5aee 4059 {
gertk 0:b612024f5aee 4060 BR.E = BR.E;
gertk 0:b612024f5aee 4061 }
gertk 0:b612024f5aee 4062
gertk 0:b612024f5aee 4063
gertk 0:b612024f5aee 4064 static void LD_E_H (Z80Context* ctx)
gertk 0:b612024f5aee 4065 {
gertk 0:b612024f5aee 4066 BR.E = BR.H;
gertk 0:b612024f5aee 4067 }
gertk 0:b612024f5aee 4068
gertk 0:b612024f5aee 4069
gertk 0:b612024f5aee 4070 static void LD_E_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 4071 {
gertk 0:b612024f5aee 4072 BR.E = BR.IXh;
gertk 0:b612024f5aee 4073 }
gertk 0:b612024f5aee 4074
gertk 0:b612024f5aee 4075
gertk 0:b612024f5aee 4076 static void LD_E_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 4077 {
gertk 0:b612024f5aee 4078 BR.E = BR.IXl;
gertk 0:b612024f5aee 4079 }
gertk 0:b612024f5aee 4080
gertk 0:b612024f5aee 4081
gertk 0:b612024f5aee 4082 static void LD_E_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 4083 {
gertk 0:b612024f5aee 4084 BR.E = BR.IYh;
gertk 0:b612024f5aee 4085 }
gertk 0:b612024f5aee 4086
gertk 0:b612024f5aee 4087
gertk 0:b612024f5aee 4088 static void LD_E_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 4089 {
gertk 0:b612024f5aee 4090 BR.E = BR.IYl;
gertk 0:b612024f5aee 4091 }
gertk 0:b612024f5aee 4092
gertk 0:b612024f5aee 4093
gertk 0:b612024f5aee 4094 static void LD_E_L (Z80Context* ctx)
gertk 0:b612024f5aee 4095 {
gertk 0:b612024f5aee 4096 BR.E = BR.L;
gertk 0:b612024f5aee 4097 }
gertk 0:b612024f5aee 4098
gertk 0:b612024f5aee 4099
gertk 0:b612024f5aee 4100 static void LD_E_n (Z80Context* ctx)
gertk 0:b612024f5aee 4101 {
gertk 0:b612024f5aee 4102 BR.E = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4103
gertk 0:b612024f5aee 4104 }
gertk 0:b612024f5aee 4105
gertk 0:b612024f5aee 4106
gertk 0:b612024f5aee 4107 static void LD_E_RES_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4108 {
gertk 0:b612024f5aee 4109 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4110 BR.E = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4111 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4112 }
gertk 0:b612024f5aee 4113
gertk 0:b612024f5aee 4114
gertk 0:b612024f5aee 4115 static void LD_E_RES_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4116 {
gertk 0:b612024f5aee 4117 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4118 BR.E = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4119 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4120 }
gertk 0:b612024f5aee 4121
gertk 0:b612024f5aee 4122
gertk 0:b612024f5aee 4123 static void LD_E_RES_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4124 {
gertk 0:b612024f5aee 4125 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4126 BR.E = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4127 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4128 }
gertk 0:b612024f5aee 4129
gertk 0:b612024f5aee 4130
gertk 0:b612024f5aee 4131 static void LD_E_RES_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4132 {
gertk 0:b612024f5aee 4133 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4134 BR.E = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4135 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4136 }
gertk 0:b612024f5aee 4137
gertk 0:b612024f5aee 4138
gertk 0:b612024f5aee 4139 static void LD_E_RES_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4140 {
gertk 0:b612024f5aee 4141 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4142 BR.E = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4143 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4144 }
gertk 0:b612024f5aee 4145
gertk 0:b612024f5aee 4146
gertk 0:b612024f5aee 4147 static void LD_E_RES_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4148 {
gertk 0:b612024f5aee 4149 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4150 BR.E = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4151 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4152 }
gertk 0:b612024f5aee 4153
gertk 0:b612024f5aee 4154
gertk 0:b612024f5aee 4155 static void LD_E_RES_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4156 {
gertk 0:b612024f5aee 4157 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4158 BR.E = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4159 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4160 }
gertk 0:b612024f5aee 4161
gertk 0:b612024f5aee 4162
gertk 0:b612024f5aee 4163 static void LD_E_RES_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4164 {
gertk 0:b612024f5aee 4165 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4166 BR.E = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4167 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4168 }
gertk 0:b612024f5aee 4169
gertk 0:b612024f5aee 4170
gertk 0:b612024f5aee 4171 static void LD_E_RES_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4172 {
gertk 0:b612024f5aee 4173 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4174 BR.E = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4175 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4176 }
gertk 0:b612024f5aee 4177
gertk 0:b612024f5aee 4178
gertk 0:b612024f5aee 4179 static void LD_E_RES_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4180 {
gertk 0:b612024f5aee 4181 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4182 BR.E = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4183 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4184 }
gertk 0:b612024f5aee 4185
gertk 0:b612024f5aee 4186
gertk 0:b612024f5aee 4187 static void LD_E_RES_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4188 {
gertk 0:b612024f5aee 4189 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4190 BR.E = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4191 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4192 }
gertk 0:b612024f5aee 4193
gertk 0:b612024f5aee 4194
gertk 0:b612024f5aee 4195 static void LD_E_RES_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4196 {
gertk 0:b612024f5aee 4197 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4198 BR.E = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4199 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4200 }
gertk 0:b612024f5aee 4201
gertk 0:b612024f5aee 4202
gertk 0:b612024f5aee 4203 static void LD_E_RES_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4204 {
gertk 0:b612024f5aee 4205 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4206 BR.E = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4207 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4208 }
gertk 0:b612024f5aee 4209
gertk 0:b612024f5aee 4210
gertk 0:b612024f5aee 4211 static void LD_E_RES_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4212 {
gertk 0:b612024f5aee 4213 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4214 BR.E = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4215 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4216 }
gertk 0:b612024f5aee 4217
gertk 0:b612024f5aee 4218
gertk 0:b612024f5aee 4219 static void LD_E_RES_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4220 {
gertk 0:b612024f5aee 4221 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4222 BR.E = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4223 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4224 }
gertk 0:b612024f5aee 4225
gertk 0:b612024f5aee 4226
gertk 0:b612024f5aee 4227 static void LD_E_RES_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4228 {
gertk 0:b612024f5aee 4229 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4230 BR.E = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4231 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4232 }
gertk 0:b612024f5aee 4233
gertk 0:b612024f5aee 4234
gertk 0:b612024f5aee 4235 static void LD_E_RL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4236 {
gertk 0:b612024f5aee 4237 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4238 BR.E = doRL(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4239 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4240 }
gertk 0:b612024f5aee 4241
gertk 0:b612024f5aee 4242
gertk 0:b612024f5aee 4243 static void LD_E_RL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4244 {
gertk 0:b612024f5aee 4245 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4246 BR.E = doRL(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4247 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4248 }
gertk 0:b612024f5aee 4249
gertk 0:b612024f5aee 4250
gertk 0:b612024f5aee 4251 static void LD_E_RLC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4252 {
gertk 0:b612024f5aee 4253 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4254 BR.E = doRLC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4255 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4256 }
gertk 0:b612024f5aee 4257
gertk 0:b612024f5aee 4258
gertk 0:b612024f5aee 4259 static void LD_E_RLC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4260 {
gertk 0:b612024f5aee 4261 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4262 BR.E = doRLC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4263 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4264 }
gertk 0:b612024f5aee 4265
gertk 0:b612024f5aee 4266
gertk 0:b612024f5aee 4267 static void LD_E_RR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4268 {
gertk 0:b612024f5aee 4269 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4270 BR.E = doRR(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4271 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4272 }
gertk 0:b612024f5aee 4273
gertk 0:b612024f5aee 4274
gertk 0:b612024f5aee 4275 static void LD_E_RR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4276 {
gertk 0:b612024f5aee 4277 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4278 BR.E = doRR(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4279 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4280 }
gertk 0:b612024f5aee 4281
gertk 0:b612024f5aee 4282
gertk 0:b612024f5aee 4283 static void LD_E_RRC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4284 {
gertk 0:b612024f5aee 4285 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4286 BR.E = doRRC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4287 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4288 }
gertk 0:b612024f5aee 4289
gertk 0:b612024f5aee 4290
gertk 0:b612024f5aee 4291 static void LD_E_RRC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4292 {
gertk 0:b612024f5aee 4293 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4294 BR.E = doRRC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4295 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4296 }
gertk 0:b612024f5aee 4297
gertk 0:b612024f5aee 4298
gertk 0:b612024f5aee 4299 static void LD_E_SET_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4300 {
gertk 0:b612024f5aee 4301 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4302 BR.E = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4303 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4304 }
gertk 0:b612024f5aee 4305
gertk 0:b612024f5aee 4306
gertk 0:b612024f5aee 4307 static void LD_E_SET_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4308 {
gertk 0:b612024f5aee 4309 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4310 BR.E = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4311 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4312 }
gertk 0:b612024f5aee 4313
gertk 0:b612024f5aee 4314
gertk 0:b612024f5aee 4315 static void LD_E_SET_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4316 {
gertk 0:b612024f5aee 4317 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4318 BR.E = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4319 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4320 }
gertk 0:b612024f5aee 4321
gertk 0:b612024f5aee 4322
gertk 0:b612024f5aee 4323 static void LD_E_SET_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4324 {
gertk 0:b612024f5aee 4325 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4326 BR.E = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4327 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4328 }
gertk 0:b612024f5aee 4329
gertk 0:b612024f5aee 4330
gertk 0:b612024f5aee 4331 static void LD_E_SET_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4332 {
gertk 0:b612024f5aee 4333 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4334 BR.E = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4335 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4336 }
gertk 0:b612024f5aee 4337
gertk 0:b612024f5aee 4338
gertk 0:b612024f5aee 4339 static void LD_E_SET_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4340 {
gertk 0:b612024f5aee 4341 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4342 BR.E = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4343 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4344 }
gertk 0:b612024f5aee 4345
gertk 0:b612024f5aee 4346
gertk 0:b612024f5aee 4347 static void LD_E_SET_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4348 {
gertk 0:b612024f5aee 4349 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4350 BR.E = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4351 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4352 }
gertk 0:b612024f5aee 4353
gertk 0:b612024f5aee 4354
gertk 0:b612024f5aee 4355 static void LD_E_SET_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4356 {
gertk 0:b612024f5aee 4357 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4358 BR.E = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4359 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4360 }
gertk 0:b612024f5aee 4361
gertk 0:b612024f5aee 4362
gertk 0:b612024f5aee 4363 static void LD_E_SET_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4364 {
gertk 0:b612024f5aee 4365 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4366 BR.E = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4367 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4368 }
gertk 0:b612024f5aee 4369
gertk 0:b612024f5aee 4370
gertk 0:b612024f5aee 4371 static void LD_E_SET_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4372 {
gertk 0:b612024f5aee 4373 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4374 BR.E = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4375 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4376 }
gertk 0:b612024f5aee 4377
gertk 0:b612024f5aee 4378
gertk 0:b612024f5aee 4379 static void LD_E_SET_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4380 {
gertk 0:b612024f5aee 4381 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4382 BR.E = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4383 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4384 }
gertk 0:b612024f5aee 4385
gertk 0:b612024f5aee 4386
gertk 0:b612024f5aee 4387 static void LD_E_SET_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4388 {
gertk 0:b612024f5aee 4389 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4390 BR.E = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4391 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4392 }
gertk 0:b612024f5aee 4393
gertk 0:b612024f5aee 4394
gertk 0:b612024f5aee 4395 static void LD_E_SET_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4396 {
gertk 0:b612024f5aee 4397 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4398 BR.E = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4399 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4400 }
gertk 0:b612024f5aee 4401
gertk 0:b612024f5aee 4402
gertk 0:b612024f5aee 4403 static void LD_E_SET_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4404 {
gertk 0:b612024f5aee 4405 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4406 BR.E = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4407 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4408 }
gertk 0:b612024f5aee 4409
gertk 0:b612024f5aee 4410
gertk 0:b612024f5aee 4411 static void LD_E_SET_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4412 {
gertk 0:b612024f5aee 4413 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4414 BR.E = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4415 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4416 }
gertk 0:b612024f5aee 4417
gertk 0:b612024f5aee 4418
gertk 0:b612024f5aee 4419 static void LD_E_SET_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4420 {
gertk 0:b612024f5aee 4421 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4422 BR.E = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4423 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4424 }
gertk 0:b612024f5aee 4425
gertk 0:b612024f5aee 4426
gertk 0:b612024f5aee 4427 static void LD_E_SLA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4428 {
gertk 0:b612024f5aee 4429 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4430 BR.E = doSL(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 4431 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4432
gertk 0:b612024f5aee 4433 }
gertk 0:b612024f5aee 4434
gertk 0:b612024f5aee 4435
gertk 0:b612024f5aee 4436 static void LD_E_SLA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4437 {
gertk 0:b612024f5aee 4438 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4439 BR.E = doSL(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 4440 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4441
gertk 0:b612024f5aee 4442 }
gertk 0:b612024f5aee 4443
gertk 0:b612024f5aee 4444
gertk 0:b612024f5aee 4445 static void LD_E_SLL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4446 {
gertk 0:b612024f5aee 4447 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4448 BR.E = doSL(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 4449 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4450
gertk 0:b612024f5aee 4451 }
gertk 0:b612024f5aee 4452
gertk 0:b612024f5aee 4453
gertk 0:b612024f5aee 4454 static void LD_E_SLL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4455 {
gertk 0:b612024f5aee 4456 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4457 BR.E = doSL(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 4458 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4459
gertk 0:b612024f5aee 4460 }
gertk 0:b612024f5aee 4461
gertk 0:b612024f5aee 4462
gertk 0:b612024f5aee 4463 static void LD_E_SRA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4464 {
gertk 0:b612024f5aee 4465 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4466 BR.E = doSR(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 4467 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4468
gertk 0:b612024f5aee 4469 }
gertk 0:b612024f5aee 4470
gertk 0:b612024f5aee 4471
gertk 0:b612024f5aee 4472 static void LD_E_SRA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4473 {
gertk 0:b612024f5aee 4474 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4475 BR.E = doSR(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 4476 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4477
gertk 0:b612024f5aee 4478 }
gertk 0:b612024f5aee 4479
gertk 0:b612024f5aee 4480
gertk 0:b612024f5aee 4481 static void LD_E_SRL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4482 {
gertk 0:b612024f5aee 4483 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4484 BR.E = doSR(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 4485 write8(ctx, WR.IX + off, BR.E);
gertk 0:b612024f5aee 4486
gertk 0:b612024f5aee 4487 }
gertk 0:b612024f5aee 4488
gertk 0:b612024f5aee 4489
gertk 0:b612024f5aee 4490 static void LD_E_SRL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4491 {
gertk 0:b612024f5aee 4492 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4493 BR.E = doSR(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 4494 write8(ctx, WR.IY + off, BR.E);
gertk 0:b612024f5aee 4495
gertk 0:b612024f5aee 4496 }
gertk 0:b612024f5aee 4497
gertk 0:b612024f5aee 4498
gertk 0:b612024f5aee 4499 static void LD_H_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 4500 {
gertk 0:b612024f5aee 4501 BR.H = read8(ctx, WR.HL);
gertk 0:b612024f5aee 4502 }
gertk 0:b612024f5aee 4503
gertk 0:b612024f5aee 4504
gertk 0:b612024f5aee 4505 static void LD_H_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4506 {
gertk 0:b612024f5aee 4507 BR.H = read8(ctx, WR.IX + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 4508 }
gertk 0:b612024f5aee 4509
gertk 0:b612024f5aee 4510
gertk 0:b612024f5aee 4511 static void LD_H_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4512 {
gertk 0:b612024f5aee 4513 BR.H = read8(ctx, WR.IY + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 4514 }
gertk 0:b612024f5aee 4515
gertk 0:b612024f5aee 4516
gertk 0:b612024f5aee 4517 static void LD_H_A (Z80Context* ctx)
gertk 0:b612024f5aee 4518 {
gertk 0:b612024f5aee 4519 BR.H = BR.A;
gertk 0:b612024f5aee 4520 }
gertk 0:b612024f5aee 4521
gertk 0:b612024f5aee 4522
gertk 0:b612024f5aee 4523 static void LD_H_B (Z80Context* ctx)
gertk 0:b612024f5aee 4524 {
gertk 0:b612024f5aee 4525 BR.H = BR.B;
gertk 0:b612024f5aee 4526 }
gertk 0:b612024f5aee 4527
gertk 0:b612024f5aee 4528
gertk 0:b612024f5aee 4529 static void LD_H_C (Z80Context* ctx)
gertk 0:b612024f5aee 4530 {
gertk 0:b612024f5aee 4531 BR.H = BR.C;
gertk 0:b612024f5aee 4532 }
gertk 0:b612024f5aee 4533
gertk 0:b612024f5aee 4534
gertk 0:b612024f5aee 4535 static void LD_H_D (Z80Context* ctx)
gertk 0:b612024f5aee 4536 {
gertk 0:b612024f5aee 4537 BR.H = BR.D;
gertk 0:b612024f5aee 4538 }
gertk 0:b612024f5aee 4539
gertk 0:b612024f5aee 4540
gertk 0:b612024f5aee 4541 static void LD_H_E (Z80Context* ctx)
gertk 0:b612024f5aee 4542 {
gertk 0:b612024f5aee 4543 BR.H = BR.E;
gertk 0:b612024f5aee 4544 }
gertk 0:b612024f5aee 4545
gertk 0:b612024f5aee 4546
gertk 0:b612024f5aee 4547 static void LD_H_H (Z80Context* ctx)
gertk 0:b612024f5aee 4548 {
gertk 0:b612024f5aee 4549 BR.H = BR.H;
gertk 0:b612024f5aee 4550 }
gertk 0:b612024f5aee 4551
gertk 0:b612024f5aee 4552
gertk 0:b612024f5aee 4553 static void LD_H_L (Z80Context* ctx)
gertk 0:b612024f5aee 4554 {
gertk 0:b612024f5aee 4555 BR.H = BR.L;
gertk 0:b612024f5aee 4556 }
gertk 0:b612024f5aee 4557
gertk 0:b612024f5aee 4558
gertk 0:b612024f5aee 4559 static void LD_H_n (Z80Context* ctx)
gertk 0:b612024f5aee 4560 {
gertk 0:b612024f5aee 4561 BR.H = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4562
gertk 0:b612024f5aee 4563 }
gertk 0:b612024f5aee 4564
gertk 0:b612024f5aee 4565
gertk 0:b612024f5aee 4566 static void LD_H_RES_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4567 {
gertk 0:b612024f5aee 4568 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4569 BR.H = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4570 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4571 }
gertk 0:b612024f5aee 4572
gertk 0:b612024f5aee 4573
gertk 0:b612024f5aee 4574 static void LD_H_RES_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4575 {
gertk 0:b612024f5aee 4576 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4577 BR.H = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4578 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4579 }
gertk 0:b612024f5aee 4580
gertk 0:b612024f5aee 4581
gertk 0:b612024f5aee 4582 static void LD_H_RES_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4583 {
gertk 0:b612024f5aee 4584 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4585 BR.H = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4586 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4587 }
gertk 0:b612024f5aee 4588
gertk 0:b612024f5aee 4589
gertk 0:b612024f5aee 4590 static void LD_H_RES_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4591 {
gertk 0:b612024f5aee 4592 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4593 BR.H = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4594 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4595 }
gertk 0:b612024f5aee 4596
gertk 0:b612024f5aee 4597
gertk 0:b612024f5aee 4598 static void LD_H_RES_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4599 {
gertk 0:b612024f5aee 4600 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4601 BR.H = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4602 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4603 }
gertk 0:b612024f5aee 4604
gertk 0:b612024f5aee 4605
gertk 0:b612024f5aee 4606 static void LD_H_RES_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4607 {
gertk 0:b612024f5aee 4608 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4609 BR.H = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4610 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4611 }
gertk 0:b612024f5aee 4612
gertk 0:b612024f5aee 4613
gertk 0:b612024f5aee 4614 static void LD_H_RES_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4615 {
gertk 0:b612024f5aee 4616 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4617 BR.H = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4618 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4619 }
gertk 0:b612024f5aee 4620
gertk 0:b612024f5aee 4621
gertk 0:b612024f5aee 4622 static void LD_H_RES_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4623 {
gertk 0:b612024f5aee 4624 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4625 BR.H = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4626 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4627 }
gertk 0:b612024f5aee 4628
gertk 0:b612024f5aee 4629
gertk 0:b612024f5aee 4630 static void LD_H_RES_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4631 {
gertk 0:b612024f5aee 4632 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4633 BR.H = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4634 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4635 }
gertk 0:b612024f5aee 4636
gertk 0:b612024f5aee 4637
gertk 0:b612024f5aee 4638 static void LD_H_RES_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4639 {
gertk 0:b612024f5aee 4640 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4641 BR.H = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4642 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4643 }
gertk 0:b612024f5aee 4644
gertk 0:b612024f5aee 4645
gertk 0:b612024f5aee 4646 static void LD_H_RES_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4647 {
gertk 0:b612024f5aee 4648 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4649 BR.H = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4650 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4651 }
gertk 0:b612024f5aee 4652
gertk 0:b612024f5aee 4653
gertk 0:b612024f5aee 4654 static void LD_H_RES_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4655 {
gertk 0:b612024f5aee 4656 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4657 BR.H = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4658 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4659 }
gertk 0:b612024f5aee 4660
gertk 0:b612024f5aee 4661
gertk 0:b612024f5aee 4662 static void LD_H_RES_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4663 {
gertk 0:b612024f5aee 4664 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4665 BR.H = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4666 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4667 }
gertk 0:b612024f5aee 4668
gertk 0:b612024f5aee 4669
gertk 0:b612024f5aee 4670 static void LD_H_RES_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4671 {
gertk 0:b612024f5aee 4672 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4673 BR.H = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4674 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4675 }
gertk 0:b612024f5aee 4676
gertk 0:b612024f5aee 4677
gertk 0:b612024f5aee 4678 static void LD_H_RES_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4679 {
gertk 0:b612024f5aee 4680 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4681 BR.H = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4682 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4683 }
gertk 0:b612024f5aee 4684
gertk 0:b612024f5aee 4685
gertk 0:b612024f5aee 4686 static void LD_H_RES_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4687 {
gertk 0:b612024f5aee 4688 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4689 BR.H = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4690 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4691 }
gertk 0:b612024f5aee 4692
gertk 0:b612024f5aee 4693
gertk 0:b612024f5aee 4694 static void LD_H_RL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4695 {
gertk 0:b612024f5aee 4696 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4697 BR.H = doRL(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4698 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4699 }
gertk 0:b612024f5aee 4700
gertk 0:b612024f5aee 4701
gertk 0:b612024f5aee 4702 static void LD_H_RL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4703 {
gertk 0:b612024f5aee 4704 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4705 BR.H = doRL(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4706 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4707 }
gertk 0:b612024f5aee 4708
gertk 0:b612024f5aee 4709
gertk 0:b612024f5aee 4710 static void LD_H_RLC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4711 {
gertk 0:b612024f5aee 4712 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4713 BR.H = doRLC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4714 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4715 }
gertk 0:b612024f5aee 4716
gertk 0:b612024f5aee 4717
gertk 0:b612024f5aee 4718 static void LD_H_RLC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4719 {
gertk 0:b612024f5aee 4720 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4721 BR.H = doRLC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4722 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4723 }
gertk 0:b612024f5aee 4724
gertk 0:b612024f5aee 4725
gertk 0:b612024f5aee 4726 static void LD_H_RR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4727 {
gertk 0:b612024f5aee 4728 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4729 BR.H = doRR(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4730 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4731 }
gertk 0:b612024f5aee 4732
gertk 0:b612024f5aee 4733
gertk 0:b612024f5aee 4734 static void LD_H_RR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4735 {
gertk 0:b612024f5aee 4736 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4737 BR.H = doRR(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4738 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4739 }
gertk 0:b612024f5aee 4740
gertk 0:b612024f5aee 4741
gertk 0:b612024f5aee 4742 static void LD_H_RRC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4743 {
gertk 0:b612024f5aee 4744 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4745 BR.H = doRRC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4746 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4747 }
gertk 0:b612024f5aee 4748
gertk 0:b612024f5aee 4749
gertk 0:b612024f5aee 4750 static void LD_H_RRC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4751 {
gertk 0:b612024f5aee 4752 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4753 BR.H = doRRC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4754 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4755 }
gertk 0:b612024f5aee 4756
gertk 0:b612024f5aee 4757
gertk 0:b612024f5aee 4758 static void LD_H_SET_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4759 {
gertk 0:b612024f5aee 4760 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4761 BR.H = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4762 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4763 }
gertk 0:b612024f5aee 4764
gertk 0:b612024f5aee 4765
gertk 0:b612024f5aee 4766 static void LD_H_SET_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4767 {
gertk 0:b612024f5aee 4768 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4769 BR.H = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4770 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4771 }
gertk 0:b612024f5aee 4772
gertk 0:b612024f5aee 4773
gertk 0:b612024f5aee 4774 static void LD_H_SET_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4775 {
gertk 0:b612024f5aee 4776 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4777 BR.H = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4778 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4779 }
gertk 0:b612024f5aee 4780
gertk 0:b612024f5aee 4781
gertk 0:b612024f5aee 4782 static void LD_H_SET_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4783 {
gertk 0:b612024f5aee 4784 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4785 BR.H = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4786 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4787 }
gertk 0:b612024f5aee 4788
gertk 0:b612024f5aee 4789
gertk 0:b612024f5aee 4790 static void LD_H_SET_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4791 {
gertk 0:b612024f5aee 4792 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4793 BR.H = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4794 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4795 }
gertk 0:b612024f5aee 4796
gertk 0:b612024f5aee 4797
gertk 0:b612024f5aee 4798 static void LD_H_SET_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4799 {
gertk 0:b612024f5aee 4800 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4801 BR.H = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4802 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4803 }
gertk 0:b612024f5aee 4804
gertk 0:b612024f5aee 4805
gertk 0:b612024f5aee 4806 static void LD_H_SET_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4807 {
gertk 0:b612024f5aee 4808 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4809 BR.H = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4810 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4811 }
gertk 0:b612024f5aee 4812
gertk 0:b612024f5aee 4813
gertk 0:b612024f5aee 4814 static void LD_H_SET_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4815 {
gertk 0:b612024f5aee 4816 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4817 BR.H = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4818 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4819 }
gertk 0:b612024f5aee 4820
gertk 0:b612024f5aee 4821
gertk 0:b612024f5aee 4822 static void LD_H_SET_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4823 {
gertk 0:b612024f5aee 4824 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4825 BR.H = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4826 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4827 }
gertk 0:b612024f5aee 4828
gertk 0:b612024f5aee 4829
gertk 0:b612024f5aee 4830 static void LD_H_SET_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4831 {
gertk 0:b612024f5aee 4832 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4833 BR.H = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4834 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4835 }
gertk 0:b612024f5aee 4836
gertk 0:b612024f5aee 4837
gertk 0:b612024f5aee 4838 static void LD_H_SET_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4839 {
gertk 0:b612024f5aee 4840 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4841 BR.H = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4842 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4843 }
gertk 0:b612024f5aee 4844
gertk 0:b612024f5aee 4845
gertk 0:b612024f5aee 4846 static void LD_H_SET_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4847 {
gertk 0:b612024f5aee 4848 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4849 BR.H = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4850 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4851 }
gertk 0:b612024f5aee 4852
gertk 0:b612024f5aee 4853
gertk 0:b612024f5aee 4854 static void LD_H_SET_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4855 {
gertk 0:b612024f5aee 4856 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4857 BR.H = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4858 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4859 }
gertk 0:b612024f5aee 4860
gertk 0:b612024f5aee 4861
gertk 0:b612024f5aee 4862 static void LD_H_SET_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4863 {
gertk 0:b612024f5aee 4864 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4865 BR.H = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4866 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4867 }
gertk 0:b612024f5aee 4868
gertk 0:b612024f5aee 4869
gertk 0:b612024f5aee 4870 static void LD_H_SET_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4871 {
gertk 0:b612024f5aee 4872 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4873 BR.H = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 4874 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4875 }
gertk 0:b612024f5aee 4876
gertk 0:b612024f5aee 4877
gertk 0:b612024f5aee 4878 static void LD_H_SET_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4879 {
gertk 0:b612024f5aee 4880 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4881 BR.H = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 4882 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4883 }
gertk 0:b612024f5aee 4884
gertk 0:b612024f5aee 4885
gertk 0:b612024f5aee 4886 static void LD_H_SLA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4887 {
gertk 0:b612024f5aee 4888 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4889 BR.H = doSL(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 4890 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4891
gertk 0:b612024f5aee 4892 }
gertk 0:b612024f5aee 4893
gertk 0:b612024f5aee 4894
gertk 0:b612024f5aee 4895 static void LD_H_SLA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4896 {
gertk 0:b612024f5aee 4897 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4898 BR.H = doSL(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 4899 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4900
gertk 0:b612024f5aee 4901 }
gertk 0:b612024f5aee 4902
gertk 0:b612024f5aee 4903
gertk 0:b612024f5aee 4904 static void LD_H_SLL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4905 {
gertk 0:b612024f5aee 4906 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4907 BR.H = doSL(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 4908 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4909
gertk 0:b612024f5aee 4910 }
gertk 0:b612024f5aee 4911
gertk 0:b612024f5aee 4912
gertk 0:b612024f5aee 4913 static void LD_H_SLL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4914 {
gertk 0:b612024f5aee 4915 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4916 BR.H = doSL(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 4917 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4918
gertk 0:b612024f5aee 4919 }
gertk 0:b612024f5aee 4920
gertk 0:b612024f5aee 4921
gertk 0:b612024f5aee 4922 static void LD_H_SRA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4923 {
gertk 0:b612024f5aee 4924 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4925 BR.H = doSR(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 4926 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4927
gertk 0:b612024f5aee 4928 }
gertk 0:b612024f5aee 4929
gertk 0:b612024f5aee 4930
gertk 0:b612024f5aee 4931 static void LD_H_SRA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4932 {
gertk 0:b612024f5aee 4933 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4934 BR.H = doSR(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 4935 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4936
gertk 0:b612024f5aee 4937 }
gertk 0:b612024f5aee 4938
gertk 0:b612024f5aee 4939
gertk 0:b612024f5aee 4940 static void LD_H_SRL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 4941 {
gertk 0:b612024f5aee 4942 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4943 BR.H = doSR(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 4944 write8(ctx, WR.IX + off, BR.H);
gertk 0:b612024f5aee 4945
gertk 0:b612024f5aee 4946 }
gertk 0:b612024f5aee 4947
gertk 0:b612024f5aee 4948
gertk 0:b612024f5aee 4949 static void LD_H_SRL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 4950 {
gertk 0:b612024f5aee 4951 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 4952 BR.H = doSR(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 4953 write8(ctx, WR.IY + off, BR.H);
gertk 0:b612024f5aee 4954
gertk 0:b612024f5aee 4955 }
gertk 0:b612024f5aee 4956
gertk 0:b612024f5aee 4957
gertk 0:b612024f5aee 4958 static void LD_HL_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 4959 {
gertk 0:b612024f5aee 4960 WR.HL = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 4961 ctx->PC += 2;
gertk 0:b612024f5aee 4962 }
gertk 0:b612024f5aee 4963
gertk 0:b612024f5aee 4964
gertk 0:b612024f5aee 4965 static void LD_HL_nn (Z80Context* ctx)
gertk 0:b612024f5aee 4966 {
gertk 0:b612024f5aee 4967 WR.HL = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 4968 ctx->PC += 2;
gertk 0:b612024f5aee 4969
gertk 0:b612024f5aee 4970 }
gertk 0:b612024f5aee 4971
gertk 0:b612024f5aee 4972
gertk 0:b612024f5aee 4973 static void LD_I_A (Z80Context* ctx)
gertk 0:b612024f5aee 4974 {
gertk 0:b612024f5aee 4975 ctx->I = BR.A;
gertk 0:b612024f5aee 4976 }
gertk 0:b612024f5aee 4977
gertk 0:b612024f5aee 4978
gertk 0:b612024f5aee 4979 static void LD_IX_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 4980 {
gertk 0:b612024f5aee 4981 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 4982 ctx->PC += 2;
gertk 0:b612024f5aee 4983 WR.IX = read16(ctx, addr);
gertk 0:b612024f5aee 4984 }
gertk 0:b612024f5aee 4985
gertk 0:b612024f5aee 4986
gertk 0:b612024f5aee 4987 static void LD_IX_nn (Z80Context* ctx)
gertk 0:b612024f5aee 4988 {
gertk 0:b612024f5aee 4989 WR.IX = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 4990 ctx->PC += 2;
gertk 0:b612024f5aee 4991
gertk 0:b612024f5aee 4992 }
gertk 0:b612024f5aee 4993
gertk 0:b612024f5aee 4994
gertk 0:b612024f5aee 4995 static void LD_IXh_A (Z80Context* ctx)
gertk 0:b612024f5aee 4996 {
gertk 0:b612024f5aee 4997 BR.IXh = BR.A;
gertk 0:b612024f5aee 4998 }
gertk 0:b612024f5aee 4999
gertk 0:b612024f5aee 5000
gertk 0:b612024f5aee 5001 static void LD_IXh_B (Z80Context* ctx)
gertk 0:b612024f5aee 5002 {
gertk 0:b612024f5aee 5003 BR.IXh = BR.B;
gertk 0:b612024f5aee 5004 }
gertk 0:b612024f5aee 5005
gertk 0:b612024f5aee 5006
gertk 0:b612024f5aee 5007 static void LD_IXh_C (Z80Context* ctx)
gertk 0:b612024f5aee 5008 {
gertk 0:b612024f5aee 5009 BR.IXh = BR.C;
gertk 0:b612024f5aee 5010 }
gertk 0:b612024f5aee 5011
gertk 0:b612024f5aee 5012
gertk 0:b612024f5aee 5013 static void LD_IXh_D (Z80Context* ctx)
gertk 0:b612024f5aee 5014 {
gertk 0:b612024f5aee 5015 BR.IXh = BR.D;
gertk 0:b612024f5aee 5016 }
gertk 0:b612024f5aee 5017
gertk 0:b612024f5aee 5018
gertk 0:b612024f5aee 5019 static void LD_IXh_E (Z80Context* ctx)
gertk 0:b612024f5aee 5020 {
gertk 0:b612024f5aee 5021 BR.IXh = BR.E;
gertk 0:b612024f5aee 5022 }
gertk 0:b612024f5aee 5023
gertk 0:b612024f5aee 5024
gertk 0:b612024f5aee 5025 static void LD_IXh_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 5026 {
gertk 0:b612024f5aee 5027 BR.IXh = BR.IXh;
gertk 0:b612024f5aee 5028 }
gertk 0:b612024f5aee 5029
gertk 0:b612024f5aee 5030
gertk 0:b612024f5aee 5031 static void LD_IXh_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 5032 {
gertk 0:b612024f5aee 5033 BR.IXh = BR.IXl;
gertk 0:b612024f5aee 5034 }
gertk 0:b612024f5aee 5035
gertk 0:b612024f5aee 5036
gertk 0:b612024f5aee 5037 static void LD_IXh_n (Z80Context* ctx)
gertk 0:b612024f5aee 5038 {
gertk 0:b612024f5aee 5039 BR.IXh = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5040
gertk 0:b612024f5aee 5041 }
gertk 0:b612024f5aee 5042
gertk 0:b612024f5aee 5043
gertk 0:b612024f5aee 5044 static void LD_IXl_A (Z80Context* ctx)
gertk 0:b612024f5aee 5045 {
gertk 0:b612024f5aee 5046 BR.IXl = BR.A;
gertk 0:b612024f5aee 5047 }
gertk 0:b612024f5aee 5048
gertk 0:b612024f5aee 5049
gertk 0:b612024f5aee 5050 static void LD_IXl_B (Z80Context* ctx)
gertk 0:b612024f5aee 5051 {
gertk 0:b612024f5aee 5052 BR.IXl = BR.B;
gertk 0:b612024f5aee 5053 }
gertk 0:b612024f5aee 5054
gertk 0:b612024f5aee 5055
gertk 0:b612024f5aee 5056 static void LD_IXl_C (Z80Context* ctx)
gertk 0:b612024f5aee 5057 {
gertk 0:b612024f5aee 5058 BR.IXl = BR.C;
gertk 0:b612024f5aee 5059 }
gertk 0:b612024f5aee 5060
gertk 0:b612024f5aee 5061
gertk 0:b612024f5aee 5062 static void LD_IXl_D (Z80Context* ctx)
gertk 0:b612024f5aee 5063 {
gertk 0:b612024f5aee 5064 BR.IXl = BR.D;
gertk 0:b612024f5aee 5065 }
gertk 0:b612024f5aee 5066
gertk 0:b612024f5aee 5067
gertk 0:b612024f5aee 5068 static void LD_IXl_E (Z80Context* ctx)
gertk 0:b612024f5aee 5069 {
gertk 0:b612024f5aee 5070 BR.IXl = BR.E;
gertk 0:b612024f5aee 5071 }
gertk 0:b612024f5aee 5072
gertk 0:b612024f5aee 5073
gertk 0:b612024f5aee 5074 static void LD_IXl_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 5075 {
gertk 0:b612024f5aee 5076 BR.IXl = BR.IXh;
gertk 0:b612024f5aee 5077 }
gertk 0:b612024f5aee 5078
gertk 0:b612024f5aee 5079
gertk 0:b612024f5aee 5080 static void LD_IXl_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 5081 {
gertk 0:b612024f5aee 5082 BR.IXl = BR.IXl;
gertk 0:b612024f5aee 5083 }
gertk 0:b612024f5aee 5084
gertk 0:b612024f5aee 5085
gertk 0:b612024f5aee 5086 static void LD_IXl_n (Z80Context* ctx)
gertk 0:b612024f5aee 5087 {
gertk 0:b612024f5aee 5088 BR.IXl = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5089
gertk 0:b612024f5aee 5090 }
gertk 0:b612024f5aee 5091
gertk 0:b612024f5aee 5092
gertk 0:b612024f5aee 5093 static void LD_IY_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 5094 {
gertk 0:b612024f5aee 5095 ushort addr = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 5096 ctx->PC += 2;
gertk 0:b612024f5aee 5097 WR.IY = read16(ctx, addr);
gertk 0:b612024f5aee 5098 }
gertk 0:b612024f5aee 5099
gertk 0:b612024f5aee 5100
gertk 0:b612024f5aee 5101 static void LD_IY_nn (Z80Context* ctx)
gertk 0:b612024f5aee 5102 {
gertk 0:b612024f5aee 5103 WR.IY = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 5104 ctx->PC += 2;
gertk 0:b612024f5aee 5105
gertk 0:b612024f5aee 5106 }
gertk 0:b612024f5aee 5107
gertk 0:b612024f5aee 5108
gertk 0:b612024f5aee 5109 static void LD_IYh_A (Z80Context* ctx)
gertk 0:b612024f5aee 5110 {
gertk 0:b612024f5aee 5111 BR.IYh = BR.A;
gertk 0:b612024f5aee 5112 }
gertk 0:b612024f5aee 5113
gertk 0:b612024f5aee 5114
gertk 0:b612024f5aee 5115 static void LD_IYh_B (Z80Context* ctx)
gertk 0:b612024f5aee 5116 {
gertk 0:b612024f5aee 5117 BR.IYh = BR.B;
gertk 0:b612024f5aee 5118 }
gertk 0:b612024f5aee 5119
gertk 0:b612024f5aee 5120
gertk 0:b612024f5aee 5121 static void LD_IYh_C (Z80Context* ctx)
gertk 0:b612024f5aee 5122 {
gertk 0:b612024f5aee 5123 BR.IYh = BR.C;
gertk 0:b612024f5aee 5124 }
gertk 0:b612024f5aee 5125
gertk 0:b612024f5aee 5126
gertk 0:b612024f5aee 5127 static void LD_IYh_D (Z80Context* ctx)
gertk 0:b612024f5aee 5128 {
gertk 0:b612024f5aee 5129 BR.IYh = BR.D;
gertk 0:b612024f5aee 5130 }
gertk 0:b612024f5aee 5131
gertk 0:b612024f5aee 5132
gertk 0:b612024f5aee 5133 static void LD_IYh_E (Z80Context* ctx)
gertk 0:b612024f5aee 5134 {
gertk 0:b612024f5aee 5135 BR.IYh = BR.E;
gertk 0:b612024f5aee 5136 }
gertk 0:b612024f5aee 5137
gertk 0:b612024f5aee 5138
gertk 0:b612024f5aee 5139 static void LD_IYh_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 5140 {
gertk 0:b612024f5aee 5141 BR.IYh = BR.IYh;
gertk 0:b612024f5aee 5142 }
gertk 0:b612024f5aee 5143
gertk 0:b612024f5aee 5144
gertk 0:b612024f5aee 5145 static void LD_IYh_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 5146 {
gertk 0:b612024f5aee 5147 BR.IYh = BR.IYl;
gertk 0:b612024f5aee 5148 }
gertk 0:b612024f5aee 5149
gertk 0:b612024f5aee 5150
gertk 0:b612024f5aee 5151 static void LD_IYh_n (Z80Context* ctx)
gertk 0:b612024f5aee 5152 {
gertk 0:b612024f5aee 5153 BR.IYh = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5154
gertk 0:b612024f5aee 5155 }
gertk 0:b612024f5aee 5156
gertk 0:b612024f5aee 5157
gertk 0:b612024f5aee 5158 static void LD_IYl_A (Z80Context* ctx)
gertk 0:b612024f5aee 5159 {
gertk 0:b612024f5aee 5160 BR.IYl = BR.A;
gertk 0:b612024f5aee 5161 }
gertk 0:b612024f5aee 5162
gertk 0:b612024f5aee 5163
gertk 0:b612024f5aee 5164 static void LD_IYl_B (Z80Context* ctx)
gertk 0:b612024f5aee 5165 {
gertk 0:b612024f5aee 5166 BR.IYl = BR.B;
gertk 0:b612024f5aee 5167 }
gertk 0:b612024f5aee 5168
gertk 0:b612024f5aee 5169
gertk 0:b612024f5aee 5170 static void LD_IYl_C (Z80Context* ctx)
gertk 0:b612024f5aee 5171 {
gertk 0:b612024f5aee 5172 BR.IYl = BR.C;
gertk 0:b612024f5aee 5173 }
gertk 0:b612024f5aee 5174
gertk 0:b612024f5aee 5175
gertk 0:b612024f5aee 5176 static void LD_IYl_D (Z80Context* ctx)
gertk 0:b612024f5aee 5177 {
gertk 0:b612024f5aee 5178 BR.IYl = BR.D;
gertk 0:b612024f5aee 5179 }
gertk 0:b612024f5aee 5180
gertk 0:b612024f5aee 5181
gertk 0:b612024f5aee 5182 static void LD_IYl_E (Z80Context* ctx)
gertk 0:b612024f5aee 5183 {
gertk 0:b612024f5aee 5184 BR.IYl = BR.E;
gertk 0:b612024f5aee 5185 }
gertk 0:b612024f5aee 5186
gertk 0:b612024f5aee 5187
gertk 0:b612024f5aee 5188 static void LD_IYl_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 5189 {
gertk 0:b612024f5aee 5190 BR.IYl = BR.IYh;
gertk 0:b612024f5aee 5191 }
gertk 0:b612024f5aee 5192
gertk 0:b612024f5aee 5193
gertk 0:b612024f5aee 5194 static void LD_IYl_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 5195 {
gertk 0:b612024f5aee 5196 BR.IYl = BR.IYl;
gertk 0:b612024f5aee 5197 }
gertk 0:b612024f5aee 5198
gertk 0:b612024f5aee 5199
gertk 0:b612024f5aee 5200 static void LD_IYl_n (Z80Context* ctx)
gertk 0:b612024f5aee 5201 {
gertk 0:b612024f5aee 5202 BR.IYl = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5203
gertk 0:b612024f5aee 5204 }
gertk 0:b612024f5aee 5205
gertk 0:b612024f5aee 5206
gertk 0:b612024f5aee 5207 static void LD_L_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 5208 {
gertk 0:b612024f5aee 5209 BR.L = read8(ctx, WR.HL);
gertk 0:b612024f5aee 5210 }
gertk 0:b612024f5aee 5211
gertk 0:b612024f5aee 5212
gertk 0:b612024f5aee 5213 static void LD_L_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5214 {
gertk 0:b612024f5aee 5215 BR.L = read8(ctx, WR.IX + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 5216 }
gertk 0:b612024f5aee 5217
gertk 0:b612024f5aee 5218
gertk 0:b612024f5aee 5219 static void LD_L_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5220 {
gertk 0:b612024f5aee 5221 BR.L = read8(ctx, WR.IY + read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 5222 }
gertk 0:b612024f5aee 5223
gertk 0:b612024f5aee 5224
gertk 0:b612024f5aee 5225 static void LD_L_A (Z80Context* ctx)
gertk 0:b612024f5aee 5226 {
gertk 0:b612024f5aee 5227 BR.L = BR.A;
gertk 0:b612024f5aee 5228 }
gertk 0:b612024f5aee 5229
gertk 0:b612024f5aee 5230
gertk 0:b612024f5aee 5231 static void LD_L_B (Z80Context* ctx)
gertk 0:b612024f5aee 5232 {
gertk 0:b612024f5aee 5233 BR.L = BR.B;
gertk 0:b612024f5aee 5234 }
gertk 0:b612024f5aee 5235
gertk 0:b612024f5aee 5236
gertk 0:b612024f5aee 5237 static void LD_L_C (Z80Context* ctx)
gertk 0:b612024f5aee 5238 {
gertk 0:b612024f5aee 5239 BR.L = BR.C;
gertk 0:b612024f5aee 5240 }
gertk 0:b612024f5aee 5241
gertk 0:b612024f5aee 5242
gertk 0:b612024f5aee 5243 static void LD_L_D (Z80Context* ctx)
gertk 0:b612024f5aee 5244 {
gertk 0:b612024f5aee 5245 BR.L = BR.D;
gertk 0:b612024f5aee 5246 }
gertk 0:b612024f5aee 5247
gertk 0:b612024f5aee 5248
gertk 0:b612024f5aee 5249 static void LD_L_E (Z80Context* ctx)
gertk 0:b612024f5aee 5250 {
gertk 0:b612024f5aee 5251 BR.L = BR.E;
gertk 0:b612024f5aee 5252 }
gertk 0:b612024f5aee 5253
gertk 0:b612024f5aee 5254
gertk 0:b612024f5aee 5255 static void LD_L_H (Z80Context* ctx)
gertk 0:b612024f5aee 5256 {
gertk 0:b612024f5aee 5257 BR.L = BR.H;
gertk 0:b612024f5aee 5258 }
gertk 0:b612024f5aee 5259
gertk 0:b612024f5aee 5260
gertk 0:b612024f5aee 5261 static void LD_L_L (Z80Context* ctx)
gertk 0:b612024f5aee 5262 {
gertk 0:b612024f5aee 5263 BR.L = BR.L;
gertk 0:b612024f5aee 5264 }
gertk 0:b612024f5aee 5265
gertk 0:b612024f5aee 5266
gertk 0:b612024f5aee 5267 static void LD_L_n (Z80Context* ctx)
gertk 0:b612024f5aee 5268 {
gertk 0:b612024f5aee 5269 BR.L = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5270
gertk 0:b612024f5aee 5271 }
gertk 0:b612024f5aee 5272
gertk 0:b612024f5aee 5273
gertk 0:b612024f5aee 5274 static void LD_L_RES_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5275 {
gertk 0:b612024f5aee 5276 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5277 BR.L = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5278 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5279 }
gertk 0:b612024f5aee 5280
gertk 0:b612024f5aee 5281
gertk 0:b612024f5aee 5282 static void LD_L_RES_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5283 {
gertk 0:b612024f5aee 5284 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5285 BR.L = doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5286 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5287 }
gertk 0:b612024f5aee 5288
gertk 0:b612024f5aee 5289
gertk 0:b612024f5aee 5290 static void LD_L_RES_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5291 {
gertk 0:b612024f5aee 5292 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5293 BR.L = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5294 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5295 }
gertk 0:b612024f5aee 5296
gertk 0:b612024f5aee 5297
gertk 0:b612024f5aee 5298 static void LD_L_RES_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5299 {
gertk 0:b612024f5aee 5300 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5301 BR.L = doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5302 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5303 }
gertk 0:b612024f5aee 5304
gertk 0:b612024f5aee 5305
gertk 0:b612024f5aee 5306 static void LD_L_RES_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5307 {
gertk 0:b612024f5aee 5308 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5309 BR.L = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5310 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5311 }
gertk 0:b612024f5aee 5312
gertk 0:b612024f5aee 5313
gertk 0:b612024f5aee 5314 static void LD_L_RES_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5315 {
gertk 0:b612024f5aee 5316 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5317 BR.L = doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5318 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5319 }
gertk 0:b612024f5aee 5320
gertk 0:b612024f5aee 5321
gertk 0:b612024f5aee 5322 static void LD_L_RES_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5323 {
gertk 0:b612024f5aee 5324 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5325 BR.L = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5326 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5327 }
gertk 0:b612024f5aee 5328
gertk 0:b612024f5aee 5329
gertk 0:b612024f5aee 5330 static void LD_L_RES_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5331 {
gertk 0:b612024f5aee 5332 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5333 BR.L = doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5334 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5335 }
gertk 0:b612024f5aee 5336
gertk 0:b612024f5aee 5337
gertk 0:b612024f5aee 5338 static void LD_L_RES_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5339 {
gertk 0:b612024f5aee 5340 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5341 BR.L = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5342 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5343 }
gertk 0:b612024f5aee 5344
gertk 0:b612024f5aee 5345
gertk 0:b612024f5aee 5346 static void LD_L_RES_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5347 {
gertk 0:b612024f5aee 5348 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5349 BR.L = doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5350 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5351 }
gertk 0:b612024f5aee 5352
gertk 0:b612024f5aee 5353
gertk 0:b612024f5aee 5354 static void LD_L_RES_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5355 {
gertk 0:b612024f5aee 5356 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5357 BR.L = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5358 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5359 }
gertk 0:b612024f5aee 5360
gertk 0:b612024f5aee 5361
gertk 0:b612024f5aee 5362 static void LD_L_RES_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5363 {
gertk 0:b612024f5aee 5364 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5365 BR.L = doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5366 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5367 }
gertk 0:b612024f5aee 5368
gertk 0:b612024f5aee 5369
gertk 0:b612024f5aee 5370 static void LD_L_RES_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5371 {
gertk 0:b612024f5aee 5372 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5373 BR.L = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5374 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5375 }
gertk 0:b612024f5aee 5376
gertk 0:b612024f5aee 5377
gertk 0:b612024f5aee 5378 static void LD_L_RES_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5379 {
gertk 0:b612024f5aee 5380 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5381 BR.L = doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5382 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5383 }
gertk 0:b612024f5aee 5384
gertk 0:b612024f5aee 5385
gertk 0:b612024f5aee 5386 static void LD_L_RES_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5387 {
gertk 0:b612024f5aee 5388 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5389 BR.L = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5390 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5391 }
gertk 0:b612024f5aee 5392
gertk 0:b612024f5aee 5393
gertk 0:b612024f5aee 5394 static void LD_L_RES_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5395 {
gertk 0:b612024f5aee 5396 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5397 BR.L = doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5398 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5399 }
gertk 0:b612024f5aee 5400
gertk 0:b612024f5aee 5401
gertk 0:b612024f5aee 5402 static void LD_L_RL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5403 {
gertk 0:b612024f5aee 5404 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5405 BR.L = doRL(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5406 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5407 }
gertk 0:b612024f5aee 5408
gertk 0:b612024f5aee 5409
gertk 0:b612024f5aee 5410 static void LD_L_RL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5411 {
gertk 0:b612024f5aee 5412 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5413 BR.L = doRL(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5414 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5415 }
gertk 0:b612024f5aee 5416
gertk 0:b612024f5aee 5417
gertk 0:b612024f5aee 5418 static void LD_L_RLC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5419 {
gertk 0:b612024f5aee 5420 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5421 BR.L = doRLC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5422 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5423 }
gertk 0:b612024f5aee 5424
gertk 0:b612024f5aee 5425
gertk 0:b612024f5aee 5426 static void LD_L_RLC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5427 {
gertk 0:b612024f5aee 5428 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5429 BR.L = doRLC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5430 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5431 }
gertk 0:b612024f5aee 5432
gertk 0:b612024f5aee 5433
gertk 0:b612024f5aee 5434 static void LD_L_RR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5435 {
gertk 0:b612024f5aee 5436 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5437 BR.L = doRR(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5438 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5439 }
gertk 0:b612024f5aee 5440
gertk 0:b612024f5aee 5441
gertk 0:b612024f5aee 5442 static void LD_L_RR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5443 {
gertk 0:b612024f5aee 5444 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5445 BR.L = doRR(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5446 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5447 }
gertk 0:b612024f5aee 5448
gertk 0:b612024f5aee 5449
gertk 0:b612024f5aee 5450 static void LD_L_RRC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5451 {
gertk 0:b612024f5aee 5452 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5453 BR.L = doRRC(ctx, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5454 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5455 }
gertk 0:b612024f5aee 5456
gertk 0:b612024f5aee 5457
gertk 0:b612024f5aee 5458 static void LD_L_RRC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5459 {
gertk 0:b612024f5aee 5460 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5461 BR.L = doRRC(ctx, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5462 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5463 }
gertk 0:b612024f5aee 5464
gertk 0:b612024f5aee 5465
gertk 0:b612024f5aee 5466 static void LD_L_SET_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5467 {
gertk 0:b612024f5aee 5468 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5469 BR.L = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5470 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5471 }
gertk 0:b612024f5aee 5472
gertk 0:b612024f5aee 5473
gertk 0:b612024f5aee 5474 static void LD_L_SET_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5475 {
gertk 0:b612024f5aee 5476 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5477 BR.L = doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5478 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5479 }
gertk 0:b612024f5aee 5480
gertk 0:b612024f5aee 5481
gertk 0:b612024f5aee 5482 static void LD_L_SET_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5483 {
gertk 0:b612024f5aee 5484 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5485 BR.L = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5486 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5487 }
gertk 0:b612024f5aee 5488
gertk 0:b612024f5aee 5489
gertk 0:b612024f5aee 5490 static void LD_L_SET_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5491 {
gertk 0:b612024f5aee 5492 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5493 BR.L = doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5494 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5495 }
gertk 0:b612024f5aee 5496
gertk 0:b612024f5aee 5497
gertk 0:b612024f5aee 5498 static void LD_L_SET_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5499 {
gertk 0:b612024f5aee 5500 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5501 BR.L = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5502 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5503 }
gertk 0:b612024f5aee 5504
gertk 0:b612024f5aee 5505
gertk 0:b612024f5aee 5506 static void LD_L_SET_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5507 {
gertk 0:b612024f5aee 5508 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5509 BR.L = doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5510 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5511 }
gertk 0:b612024f5aee 5512
gertk 0:b612024f5aee 5513
gertk 0:b612024f5aee 5514 static void LD_L_SET_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5515 {
gertk 0:b612024f5aee 5516 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5517 BR.L = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5518 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5519 }
gertk 0:b612024f5aee 5520
gertk 0:b612024f5aee 5521
gertk 0:b612024f5aee 5522 static void LD_L_SET_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5523 {
gertk 0:b612024f5aee 5524 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5525 BR.L = doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5526 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5527 }
gertk 0:b612024f5aee 5528
gertk 0:b612024f5aee 5529
gertk 0:b612024f5aee 5530 static void LD_L_SET_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5531 {
gertk 0:b612024f5aee 5532 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5533 BR.L = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5534 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5535 }
gertk 0:b612024f5aee 5536
gertk 0:b612024f5aee 5537
gertk 0:b612024f5aee 5538 static void LD_L_SET_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5539 {
gertk 0:b612024f5aee 5540 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5541 BR.L = doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5542 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5543 }
gertk 0:b612024f5aee 5544
gertk 0:b612024f5aee 5545
gertk 0:b612024f5aee 5546 static void LD_L_SET_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5547 {
gertk 0:b612024f5aee 5548 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5549 BR.L = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5550 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5551 }
gertk 0:b612024f5aee 5552
gertk 0:b612024f5aee 5553
gertk 0:b612024f5aee 5554 static void LD_L_SET_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5555 {
gertk 0:b612024f5aee 5556 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5557 BR.L = doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5558 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5559 }
gertk 0:b612024f5aee 5560
gertk 0:b612024f5aee 5561
gertk 0:b612024f5aee 5562 static void LD_L_SET_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5563 {
gertk 0:b612024f5aee 5564 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5565 BR.L = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5566 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5567 }
gertk 0:b612024f5aee 5568
gertk 0:b612024f5aee 5569
gertk 0:b612024f5aee 5570 static void LD_L_SET_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5571 {
gertk 0:b612024f5aee 5572 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5573 BR.L = doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5574 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5575 }
gertk 0:b612024f5aee 5576
gertk 0:b612024f5aee 5577
gertk 0:b612024f5aee 5578 static void LD_L_SET_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5579 {
gertk 0:b612024f5aee 5580 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5581 BR.L = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IX + off));
gertk 0:b612024f5aee 5582 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5583 }
gertk 0:b612024f5aee 5584
gertk 0:b612024f5aee 5585
gertk 0:b612024f5aee 5586 static void LD_L_SET_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5587 {
gertk 0:b612024f5aee 5588 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5589 BR.L = doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IY + off));
gertk 0:b612024f5aee 5590 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5591 }
gertk 0:b612024f5aee 5592
gertk 0:b612024f5aee 5593
gertk 0:b612024f5aee 5594 static void LD_L_SLA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5595 {
gertk 0:b612024f5aee 5596 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5597 BR.L = doSL(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 5598 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5599
gertk 0:b612024f5aee 5600 }
gertk 0:b612024f5aee 5601
gertk 0:b612024f5aee 5602
gertk 0:b612024f5aee 5603 static void LD_L_SLA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5604 {
gertk 0:b612024f5aee 5605 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5606 BR.L = doSL(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 5607 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5608
gertk 0:b612024f5aee 5609 }
gertk 0:b612024f5aee 5610
gertk 0:b612024f5aee 5611
gertk 0:b612024f5aee 5612 static void LD_L_SLL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5613 {
gertk 0:b612024f5aee 5614 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5615 BR.L = doSL(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 5616 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5617
gertk 0:b612024f5aee 5618 }
gertk 0:b612024f5aee 5619
gertk 0:b612024f5aee 5620
gertk 0:b612024f5aee 5621 static void LD_L_SLL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5622 {
gertk 0:b612024f5aee 5623 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5624 BR.L = doSL(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 5625 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5626
gertk 0:b612024f5aee 5627 }
gertk 0:b612024f5aee 5628
gertk 0:b612024f5aee 5629
gertk 0:b612024f5aee 5630 static void LD_L_SRA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5631 {
gertk 0:b612024f5aee 5632 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5633 BR.L = doSR(ctx, read8(ctx, WR.IX + off), 1);
gertk 0:b612024f5aee 5634 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5635
gertk 0:b612024f5aee 5636 }
gertk 0:b612024f5aee 5637
gertk 0:b612024f5aee 5638
gertk 0:b612024f5aee 5639 static void LD_L_SRA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5640 {
gertk 0:b612024f5aee 5641 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5642 BR.L = doSR(ctx, read8(ctx, WR.IY + off), 1);
gertk 0:b612024f5aee 5643 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5644
gertk 0:b612024f5aee 5645 }
gertk 0:b612024f5aee 5646
gertk 0:b612024f5aee 5647
gertk 0:b612024f5aee 5648 static void LD_L_SRL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5649 {
gertk 0:b612024f5aee 5650 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5651 BR.L = doSR(ctx, read8(ctx, WR.IX + off), 0);
gertk 0:b612024f5aee 5652 write8(ctx, WR.IX + off, BR.L);
gertk 0:b612024f5aee 5653
gertk 0:b612024f5aee 5654 }
gertk 0:b612024f5aee 5655
gertk 0:b612024f5aee 5656
gertk 0:b612024f5aee 5657 static void LD_L_SRL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5658 {
gertk 0:b612024f5aee 5659 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 5660 BR.L = doSR(ctx, read8(ctx, WR.IY + off), 0);
gertk 0:b612024f5aee 5661 write8(ctx, WR.IY + off, BR.L);
gertk 0:b612024f5aee 5662
gertk 0:b612024f5aee 5663 }
gertk 0:b612024f5aee 5664
gertk 0:b612024f5aee 5665
gertk 0:b612024f5aee 5666 static void LD_R_A (Z80Context* ctx)
gertk 0:b612024f5aee 5667 {
gertk 0:b612024f5aee 5668 ctx->R = BR.A;
gertk 0:b612024f5aee 5669 }
gertk 0:b612024f5aee 5670
gertk 0:b612024f5aee 5671
gertk 0:b612024f5aee 5672 static void LD_SP_off_nn (Z80Context* ctx)
gertk 0:b612024f5aee 5673 {
gertk 0:b612024f5aee 5674 WR.SP = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 5675 ctx->PC += 2;
gertk 0:b612024f5aee 5676 }
gertk 0:b612024f5aee 5677
gertk 0:b612024f5aee 5678
gertk 0:b612024f5aee 5679 static void LD_SP_HL (Z80Context* ctx)
gertk 0:b612024f5aee 5680 {
gertk 0:b612024f5aee 5681 WR.SP = WR.HL;
gertk 0:b612024f5aee 5682 }
gertk 0:b612024f5aee 5683
gertk 0:b612024f5aee 5684
gertk 0:b612024f5aee 5685 static void LD_SP_IX (Z80Context* ctx)
gertk 0:b612024f5aee 5686 {
gertk 0:b612024f5aee 5687 WR.SP = WR.IX;
gertk 0:b612024f5aee 5688 }
gertk 0:b612024f5aee 5689
gertk 0:b612024f5aee 5690
gertk 0:b612024f5aee 5691 static void LD_SP_IY (Z80Context* ctx)
gertk 0:b612024f5aee 5692 {
gertk 0:b612024f5aee 5693 WR.SP = WR.IY;
gertk 0:b612024f5aee 5694 }
gertk 0:b612024f5aee 5695
gertk 0:b612024f5aee 5696
gertk 0:b612024f5aee 5697 static void LD_SP_nn (Z80Context* ctx)
gertk 0:b612024f5aee 5698 {
gertk 0:b612024f5aee 5699 WR.SP = read16(ctx, ctx->PC);
gertk 0:b612024f5aee 5700 ctx->PC += 2;
gertk 0:b612024f5aee 5701
gertk 0:b612024f5aee 5702 }
gertk 0:b612024f5aee 5703
gertk 0:b612024f5aee 5704
gertk 0:b612024f5aee 5705 static void LDD (Z80Context* ctx)
gertk 0:b612024f5aee 5706 {
gertk 0:b612024f5aee 5707 byte val = read8(ctx, WR.HL);
gertk 0:b612024f5aee 5708 write8(ctx, WR.DE, val);
gertk 0:b612024f5aee 5709 WR.DE--;
gertk 0:b612024f5aee 5710 WR.HL--;
gertk 0:b612024f5aee 5711 WR.BC--;
gertk 0:b612024f5aee 5712
gertk 0:b612024f5aee 5713 VALFLAG(F_5, ((BR.A + val) & F_5) != 0);
gertk 0:b612024f5aee 5714 VALFLAG(F_3, ((BR.A + val) & F_3) != 0);
gertk 0:b612024f5aee 5715 RESFLAG(F_H | F_N);
gertk 0:b612024f5aee 5716 VALFLAG(F_PV, WR.BC != 0);
gertk 0:b612024f5aee 5717
gertk 0:b612024f5aee 5718 }
gertk 0:b612024f5aee 5719
gertk 0:b612024f5aee 5720
gertk 0:b612024f5aee 5721 static void LDDR (Z80Context* ctx)
gertk 0:b612024f5aee 5722 {
gertk 0:b612024f5aee 5723 do
gertk 0:b612024f5aee 5724 {
gertk 0:b612024f5aee 5725 LDD(ctx);
gertk 0:b612024f5aee 5726 } while (WR.BC);
gertk 0:b612024f5aee 5727 }
gertk 0:b612024f5aee 5728
gertk 0:b612024f5aee 5729
gertk 0:b612024f5aee 5730 static void LDI (Z80Context* ctx)
gertk 0:b612024f5aee 5731 {
gertk 0:b612024f5aee 5732 byte val = read8(ctx, WR.HL);
gertk 0:b612024f5aee 5733 write8(ctx, WR.DE, val);
gertk 0:b612024f5aee 5734 WR.DE++;
gertk 0:b612024f5aee 5735 WR.HL++;
gertk 0:b612024f5aee 5736 WR.BC--;
gertk 0:b612024f5aee 5737
gertk 0:b612024f5aee 5738 VALFLAG(F_5, ((BR.A + val) & F_5) != 0);
gertk 0:b612024f5aee 5739 VALFLAG(F_3, ((BR.A + val) & F_3) != 0);
gertk 0:b612024f5aee 5740 RESFLAG(F_H | F_N);
gertk 0:b612024f5aee 5741 VALFLAG(F_PV, WR.BC != 0);
gertk 0:b612024f5aee 5742 }
gertk 0:b612024f5aee 5743
gertk 0:b612024f5aee 5744
gertk 0:b612024f5aee 5745 static void LDIR (Z80Context* ctx)
gertk 0:b612024f5aee 5746 {
gertk 0:b612024f5aee 5747 do
gertk 0:b612024f5aee 5748 {
gertk 0:b612024f5aee 5749 LDI(ctx);
gertk 0:b612024f5aee 5750 } while (WR.BC);
gertk 0:b612024f5aee 5751 }
gertk 0:b612024f5aee 5752
gertk 0:b612024f5aee 5753
gertk 0:b612024f5aee 5754 static void NEG (Z80Context* ctx)
gertk 0:b612024f5aee 5755 {
gertk 0:b612024f5aee 5756 CPL(ctx);
gertk 0:b612024f5aee 5757 }
gertk 0:b612024f5aee 5758
gertk 0:b612024f5aee 5759
gertk 0:b612024f5aee 5760 static void NOP (Z80Context* ctx)
gertk 0:b612024f5aee 5761 {
gertk 0:b612024f5aee 5762 /* NOP */
gertk 0:b612024f5aee 5763
gertk 0:b612024f5aee 5764 }
gertk 0:b612024f5aee 5765
gertk 0:b612024f5aee 5766
gertk 0:b612024f5aee 5767 static void OR_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 5768 {
gertk 0:b612024f5aee 5769 doOR(ctx, read8(ctx, WR.HL));
gertk 0:b612024f5aee 5770 }
gertk 0:b612024f5aee 5771
gertk 0:b612024f5aee 5772
gertk 0:b612024f5aee 5773 static void OR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 5774 {
gertk 0:b612024f5aee 5775 doOR(ctx, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 5776 }
gertk 0:b612024f5aee 5777
gertk 0:b612024f5aee 5778
gertk 0:b612024f5aee 5779 static void OR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 5780 {
gertk 0:b612024f5aee 5781 doOR(ctx, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 5782 }
gertk 0:b612024f5aee 5783
gertk 0:b612024f5aee 5784
gertk 0:b612024f5aee 5785 static void OR_A (Z80Context* ctx)
gertk 0:b612024f5aee 5786 {
gertk 0:b612024f5aee 5787 doOR(ctx, BR.A);
gertk 0:b612024f5aee 5788 }
gertk 0:b612024f5aee 5789
gertk 0:b612024f5aee 5790
gertk 0:b612024f5aee 5791 static void OR_B (Z80Context* ctx)
gertk 0:b612024f5aee 5792 {
gertk 0:b612024f5aee 5793 doOR(ctx, BR.B);
gertk 0:b612024f5aee 5794 }
gertk 0:b612024f5aee 5795
gertk 0:b612024f5aee 5796
gertk 0:b612024f5aee 5797 static void OR_C (Z80Context* ctx)
gertk 0:b612024f5aee 5798 {
gertk 0:b612024f5aee 5799 doOR(ctx, BR.C);
gertk 0:b612024f5aee 5800 }
gertk 0:b612024f5aee 5801
gertk 0:b612024f5aee 5802
gertk 0:b612024f5aee 5803 static void OR_D (Z80Context* ctx)
gertk 0:b612024f5aee 5804 {
gertk 0:b612024f5aee 5805 doOR(ctx, BR.D);
gertk 0:b612024f5aee 5806 }
gertk 0:b612024f5aee 5807
gertk 0:b612024f5aee 5808
gertk 0:b612024f5aee 5809 static void OR_E (Z80Context* ctx)
gertk 0:b612024f5aee 5810 {
gertk 0:b612024f5aee 5811 doOR(ctx, BR.E);
gertk 0:b612024f5aee 5812 }
gertk 0:b612024f5aee 5813
gertk 0:b612024f5aee 5814
gertk 0:b612024f5aee 5815 static void OR_H (Z80Context* ctx)
gertk 0:b612024f5aee 5816 {
gertk 0:b612024f5aee 5817 doOR(ctx, BR.H);
gertk 0:b612024f5aee 5818 }
gertk 0:b612024f5aee 5819
gertk 0:b612024f5aee 5820
gertk 0:b612024f5aee 5821 static void OR_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 5822 {
gertk 0:b612024f5aee 5823 doOR(ctx, BR.IXh);
gertk 0:b612024f5aee 5824 }
gertk 0:b612024f5aee 5825
gertk 0:b612024f5aee 5826
gertk 0:b612024f5aee 5827 static void OR_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 5828 {
gertk 0:b612024f5aee 5829 doOR(ctx, BR.IXl);
gertk 0:b612024f5aee 5830 }
gertk 0:b612024f5aee 5831
gertk 0:b612024f5aee 5832
gertk 0:b612024f5aee 5833 static void OR_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 5834 {
gertk 0:b612024f5aee 5835 doOR(ctx, BR.IYh);
gertk 0:b612024f5aee 5836 }
gertk 0:b612024f5aee 5837
gertk 0:b612024f5aee 5838
gertk 0:b612024f5aee 5839 static void OR_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 5840 {
gertk 0:b612024f5aee 5841 doOR(ctx, BR.IYl);
gertk 0:b612024f5aee 5842 }
gertk 0:b612024f5aee 5843
gertk 0:b612024f5aee 5844
gertk 0:b612024f5aee 5845 static void OR_L (Z80Context* ctx)
gertk 0:b612024f5aee 5846 {
gertk 0:b612024f5aee 5847 doOR(ctx, BR.L);
gertk 0:b612024f5aee 5848 }
gertk 0:b612024f5aee 5849
gertk 0:b612024f5aee 5850
gertk 0:b612024f5aee 5851 static void OR_n (Z80Context* ctx)
gertk 0:b612024f5aee 5852 {
gertk 0:b612024f5aee 5853 doOR(ctx, read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 5854 }
gertk 0:b612024f5aee 5855
gertk 0:b612024f5aee 5856
gertk 0:b612024f5aee 5857 static void OTDR (Z80Context* ctx)
gertk 0:b612024f5aee 5858 {
gertk 0:b612024f5aee 5859 do
gertk 0:b612024f5aee 5860 {
gertk 0:b612024f5aee 5861 OUTD(ctx);
gertk 0:b612024f5aee 5862 } while (BR.B);
gertk 0:b612024f5aee 5863 SETFLAG(F_Z);
gertk 0:b612024f5aee 5864 RESFLAG(F_S | F_5 | F_3);
gertk 0:b612024f5aee 5865 }
gertk 0:b612024f5aee 5866
gertk 0:b612024f5aee 5867
gertk 0:b612024f5aee 5868 static void OTIR (Z80Context* ctx)
gertk 0:b612024f5aee 5869 {
gertk 0:b612024f5aee 5870 do
gertk 0:b612024f5aee 5871 {
gertk 0:b612024f5aee 5872 OUTI(ctx);
gertk 0:b612024f5aee 5873 } while (BR.B);
gertk 0:b612024f5aee 5874 SETFLAG(F_Z);
gertk 0:b612024f5aee 5875 RESFLAG(F_S | F_5 | F_3);
gertk 0:b612024f5aee 5876 }
gertk 0:b612024f5aee 5877
gertk 0:b612024f5aee 5878
gertk 0:b612024f5aee 5879 static void OUT_off_C_0 (Z80Context* ctx)
gertk 0:b612024f5aee 5880 {
gertk 0:b612024f5aee 5881 ioWrite(ctx, BR.C, 0);
gertk 0:b612024f5aee 5882
gertk 0:b612024f5aee 5883 }
gertk 0:b612024f5aee 5884
gertk 0:b612024f5aee 5885
gertk 0:b612024f5aee 5886 static void OUT_off_C_A (Z80Context* ctx)
gertk 0:b612024f5aee 5887 {
gertk 0:b612024f5aee 5888 ioWrite(ctx, BR.C, BR.A);
gertk 0:b612024f5aee 5889 }
gertk 0:b612024f5aee 5890
gertk 0:b612024f5aee 5891
gertk 0:b612024f5aee 5892 static void OUT_off_C_B (Z80Context* ctx)
gertk 0:b612024f5aee 5893 {
gertk 0:b612024f5aee 5894 ioWrite(ctx, BR.C, BR.B);
gertk 0:b612024f5aee 5895 }
gertk 0:b612024f5aee 5896
gertk 0:b612024f5aee 5897
gertk 0:b612024f5aee 5898 static void OUT_off_C_C (Z80Context* ctx)
gertk 0:b612024f5aee 5899 {
gertk 0:b612024f5aee 5900 ioWrite(ctx, BR.C, BR.C);
gertk 0:b612024f5aee 5901 }
gertk 0:b612024f5aee 5902
gertk 0:b612024f5aee 5903
gertk 0:b612024f5aee 5904 static void OUT_off_C_D (Z80Context* ctx)
gertk 0:b612024f5aee 5905 {
gertk 0:b612024f5aee 5906 ioWrite(ctx, BR.C, BR.D);
gertk 0:b612024f5aee 5907 }
gertk 0:b612024f5aee 5908
gertk 0:b612024f5aee 5909
gertk 0:b612024f5aee 5910 static void OUT_off_C_E (Z80Context* ctx)
gertk 0:b612024f5aee 5911 {
gertk 0:b612024f5aee 5912 ioWrite(ctx, BR.C, BR.E);
gertk 0:b612024f5aee 5913 }
gertk 0:b612024f5aee 5914
gertk 0:b612024f5aee 5915
gertk 0:b612024f5aee 5916 static void OUT_off_C_H (Z80Context* ctx)
gertk 0:b612024f5aee 5917 {
gertk 0:b612024f5aee 5918 ioWrite(ctx, BR.C, BR.H);
gertk 0:b612024f5aee 5919 }
gertk 0:b612024f5aee 5920
gertk 0:b612024f5aee 5921
gertk 0:b612024f5aee 5922 static void OUT_off_C_L (Z80Context* ctx)
gertk 0:b612024f5aee 5923 {
gertk 0:b612024f5aee 5924 ioWrite(ctx, BR.C, BR.L);
gertk 0:b612024f5aee 5925 }
gertk 0:b612024f5aee 5926
gertk 0:b612024f5aee 5927
gertk 0:b612024f5aee 5928 static void OUT_off_n_A (Z80Context* ctx)
gertk 0:b612024f5aee 5929 {
gertk 0:b612024f5aee 5930 ioWrite(ctx, read8(ctx, ctx->PC++), BR.A);
gertk 0:b612024f5aee 5931 }
gertk 0:b612024f5aee 5932
gertk 0:b612024f5aee 5933
gertk 0:b612024f5aee 5934 static void OUTD (Z80Context* ctx)
gertk 0:b612024f5aee 5935 {
gertk 0:b612024f5aee 5936 ioWrite(ctx, BR.C, read8(ctx, WR.HL));
gertk 0:b612024f5aee 5937 WR.HL--;
gertk 0:b612024f5aee 5938 BR.B = doIncDec(ctx, BR.B, 1);
gertk 0:b612024f5aee 5939 }
gertk 0:b612024f5aee 5940
gertk 0:b612024f5aee 5941
gertk 0:b612024f5aee 5942 static void OUTI (Z80Context* ctx)
gertk 0:b612024f5aee 5943 {
gertk 0:b612024f5aee 5944 ioWrite(ctx, BR.C, read8(ctx, WR.HL));
gertk 0:b612024f5aee 5945 WR.HL++;
gertk 0:b612024f5aee 5946 BR.B = doIncDec(ctx, BR.B, 1);
gertk 0:b612024f5aee 5947 }
gertk 0:b612024f5aee 5948
gertk 0:b612024f5aee 5949
gertk 0:b612024f5aee 5950 static void POP_AF (Z80Context* ctx)
gertk 0:b612024f5aee 5951 {
gertk 0:b612024f5aee 5952 WR.AF = doPop(ctx);
gertk 0:b612024f5aee 5953 }
gertk 0:b612024f5aee 5954
gertk 0:b612024f5aee 5955
gertk 0:b612024f5aee 5956 static void POP_BC (Z80Context* ctx)
gertk 0:b612024f5aee 5957 {
gertk 0:b612024f5aee 5958 WR.BC = doPop(ctx);
gertk 0:b612024f5aee 5959 }
gertk 0:b612024f5aee 5960
gertk 0:b612024f5aee 5961
gertk 0:b612024f5aee 5962 static void POP_DE (Z80Context* ctx)
gertk 0:b612024f5aee 5963 {
gertk 0:b612024f5aee 5964 WR.DE = doPop(ctx);
gertk 0:b612024f5aee 5965 }
gertk 0:b612024f5aee 5966
gertk 0:b612024f5aee 5967
gertk 0:b612024f5aee 5968 static void POP_HL (Z80Context* ctx)
gertk 0:b612024f5aee 5969 {
gertk 0:b612024f5aee 5970 WR.HL = doPop(ctx);
gertk 0:b612024f5aee 5971 }
gertk 0:b612024f5aee 5972
gertk 0:b612024f5aee 5973
gertk 0:b612024f5aee 5974 static void POP_IX (Z80Context* ctx)
gertk 0:b612024f5aee 5975 {
gertk 0:b612024f5aee 5976 WR.IX = doPop(ctx);
gertk 0:b612024f5aee 5977 }
gertk 0:b612024f5aee 5978
gertk 0:b612024f5aee 5979
gertk 0:b612024f5aee 5980 static void POP_IY (Z80Context* ctx)
gertk 0:b612024f5aee 5981 {
gertk 0:b612024f5aee 5982 WR.IY = doPop(ctx);
gertk 0:b612024f5aee 5983 }
gertk 0:b612024f5aee 5984
gertk 0:b612024f5aee 5985
gertk 0:b612024f5aee 5986 static void PUSH_AF (Z80Context* ctx)
gertk 0:b612024f5aee 5987 {
gertk 0:b612024f5aee 5988 doPush(ctx, WR.AF);
gertk 0:b612024f5aee 5989 }
gertk 0:b612024f5aee 5990
gertk 0:b612024f5aee 5991
gertk 0:b612024f5aee 5992 static void PUSH_BC (Z80Context* ctx)
gertk 0:b612024f5aee 5993 {
gertk 0:b612024f5aee 5994 doPush(ctx, WR.BC);
gertk 0:b612024f5aee 5995 }
gertk 0:b612024f5aee 5996
gertk 0:b612024f5aee 5997
gertk 0:b612024f5aee 5998 static void PUSH_DE (Z80Context* ctx)
gertk 0:b612024f5aee 5999 {
gertk 0:b612024f5aee 6000 doPush(ctx, WR.DE);
gertk 0:b612024f5aee 6001 }
gertk 0:b612024f5aee 6002
gertk 0:b612024f5aee 6003
gertk 0:b612024f5aee 6004 static void PUSH_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6005 {
gertk 0:b612024f5aee 6006 doPush(ctx, WR.HL);
gertk 0:b612024f5aee 6007 }
gertk 0:b612024f5aee 6008
gertk 0:b612024f5aee 6009
gertk 0:b612024f5aee 6010 static void PUSH_IX (Z80Context* ctx)
gertk 0:b612024f5aee 6011 {
gertk 0:b612024f5aee 6012 doPush(ctx, WR.IX);
gertk 0:b612024f5aee 6013 }
gertk 0:b612024f5aee 6014
gertk 0:b612024f5aee 6015
gertk 0:b612024f5aee 6016 static void PUSH_IY (Z80Context* ctx)
gertk 0:b612024f5aee 6017 {
gertk 0:b612024f5aee 6018 doPush(ctx, WR.IY);
gertk 0:b612024f5aee 6019 }
gertk 0:b612024f5aee 6020
gertk 0:b612024f5aee 6021
gertk 0:b612024f5aee 6022 static void RES_0_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6023 {
gertk 0:b612024f5aee 6024 write8(ctx, WR.HL, doSetRes(ctx, SR_RES, 0, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6025 }
gertk 0:b612024f5aee 6026
gertk 0:b612024f5aee 6027
gertk 0:b612024f5aee 6028 static void RES_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6029 {
gertk 0:b612024f5aee 6030 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6031 write8(ctx, WR.IX + off, doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6032
gertk 0:b612024f5aee 6033
gertk 0:b612024f5aee 6034 }
gertk 0:b612024f5aee 6035
gertk 0:b612024f5aee 6036
gertk 0:b612024f5aee 6037 static void RES_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6038 {
gertk 0:b612024f5aee 6039 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6040 write8(ctx, WR.IY + off, doSetRes(ctx, SR_RES, 0, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6041
gertk 0:b612024f5aee 6042
gertk 0:b612024f5aee 6043 }
gertk 0:b612024f5aee 6044
gertk 0:b612024f5aee 6045
gertk 0:b612024f5aee 6046 static void RES_0_A (Z80Context* ctx)
gertk 0:b612024f5aee 6047 {
gertk 0:b612024f5aee 6048 BR.A = doSetRes(ctx, SR_RES, 0, BR.A);
gertk 0:b612024f5aee 6049 }
gertk 0:b612024f5aee 6050
gertk 0:b612024f5aee 6051
gertk 0:b612024f5aee 6052 static void RES_0_B (Z80Context* ctx)
gertk 0:b612024f5aee 6053 {
gertk 0:b612024f5aee 6054 BR.B = doSetRes(ctx, SR_RES, 0, BR.B);
gertk 0:b612024f5aee 6055 }
gertk 0:b612024f5aee 6056
gertk 0:b612024f5aee 6057
gertk 0:b612024f5aee 6058 static void RES_0_C (Z80Context* ctx)
gertk 0:b612024f5aee 6059 {
gertk 0:b612024f5aee 6060 BR.C = doSetRes(ctx, SR_RES, 0, BR.C);
gertk 0:b612024f5aee 6061 }
gertk 0:b612024f5aee 6062
gertk 0:b612024f5aee 6063
gertk 0:b612024f5aee 6064 static void RES_0_D (Z80Context* ctx)
gertk 0:b612024f5aee 6065 {
gertk 0:b612024f5aee 6066 BR.D = doSetRes(ctx, SR_RES, 0, BR.D);
gertk 0:b612024f5aee 6067 }
gertk 0:b612024f5aee 6068
gertk 0:b612024f5aee 6069
gertk 0:b612024f5aee 6070 static void RES_0_E (Z80Context* ctx)
gertk 0:b612024f5aee 6071 {
gertk 0:b612024f5aee 6072 BR.E = doSetRes(ctx, SR_RES, 0, BR.E);
gertk 0:b612024f5aee 6073 }
gertk 0:b612024f5aee 6074
gertk 0:b612024f5aee 6075
gertk 0:b612024f5aee 6076 static void RES_0_H (Z80Context* ctx)
gertk 0:b612024f5aee 6077 {
gertk 0:b612024f5aee 6078 BR.H = doSetRes(ctx, SR_RES, 0, BR.H);
gertk 0:b612024f5aee 6079 }
gertk 0:b612024f5aee 6080
gertk 0:b612024f5aee 6081
gertk 0:b612024f5aee 6082 static void RES_0_L (Z80Context* ctx)
gertk 0:b612024f5aee 6083 {
gertk 0:b612024f5aee 6084 BR.L = doSetRes(ctx, SR_RES, 0, BR.L);
gertk 0:b612024f5aee 6085 }
gertk 0:b612024f5aee 6086
gertk 0:b612024f5aee 6087
gertk 0:b612024f5aee 6088 static void RES_1_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6089 {
gertk 0:b612024f5aee 6090 write8(ctx, WR.HL, doSetRes(ctx, SR_RES, 1, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6091 }
gertk 0:b612024f5aee 6092
gertk 0:b612024f5aee 6093
gertk 0:b612024f5aee 6094 static void RES_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6095 {
gertk 0:b612024f5aee 6096 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6097 write8(ctx, WR.IX + off, doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6098
gertk 0:b612024f5aee 6099
gertk 0:b612024f5aee 6100 }
gertk 0:b612024f5aee 6101
gertk 0:b612024f5aee 6102
gertk 0:b612024f5aee 6103 static void RES_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6104 {
gertk 0:b612024f5aee 6105 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6106 write8(ctx, WR.IY + off, doSetRes(ctx, SR_RES, 1, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6107
gertk 0:b612024f5aee 6108
gertk 0:b612024f5aee 6109 }
gertk 0:b612024f5aee 6110
gertk 0:b612024f5aee 6111
gertk 0:b612024f5aee 6112 static void RES_1_A (Z80Context* ctx)
gertk 0:b612024f5aee 6113 {
gertk 0:b612024f5aee 6114 BR.A = doSetRes(ctx, SR_RES, 1, BR.A);
gertk 0:b612024f5aee 6115 }
gertk 0:b612024f5aee 6116
gertk 0:b612024f5aee 6117
gertk 0:b612024f5aee 6118 static void RES_1_B (Z80Context* ctx)
gertk 0:b612024f5aee 6119 {
gertk 0:b612024f5aee 6120 BR.B = doSetRes(ctx, SR_RES, 1, BR.B);
gertk 0:b612024f5aee 6121 }
gertk 0:b612024f5aee 6122
gertk 0:b612024f5aee 6123
gertk 0:b612024f5aee 6124 static void RES_1_C (Z80Context* ctx)
gertk 0:b612024f5aee 6125 {
gertk 0:b612024f5aee 6126 BR.C = doSetRes(ctx, SR_RES, 1, BR.C);
gertk 0:b612024f5aee 6127 }
gertk 0:b612024f5aee 6128
gertk 0:b612024f5aee 6129
gertk 0:b612024f5aee 6130 static void RES_1_D (Z80Context* ctx)
gertk 0:b612024f5aee 6131 {
gertk 0:b612024f5aee 6132 BR.D = doSetRes(ctx, SR_RES, 1, BR.D);
gertk 0:b612024f5aee 6133 }
gertk 0:b612024f5aee 6134
gertk 0:b612024f5aee 6135
gertk 0:b612024f5aee 6136 static void RES_1_E (Z80Context* ctx)
gertk 0:b612024f5aee 6137 {
gertk 0:b612024f5aee 6138 BR.E = doSetRes(ctx, SR_RES, 1, BR.E);
gertk 0:b612024f5aee 6139 }
gertk 0:b612024f5aee 6140
gertk 0:b612024f5aee 6141
gertk 0:b612024f5aee 6142 static void RES_1_H (Z80Context* ctx)
gertk 0:b612024f5aee 6143 {
gertk 0:b612024f5aee 6144 BR.H = doSetRes(ctx, SR_RES, 1, BR.H);
gertk 0:b612024f5aee 6145 }
gertk 0:b612024f5aee 6146
gertk 0:b612024f5aee 6147
gertk 0:b612024f5aee 6148 static void RES_1_L (Z80Context* ctx)
gertk 0:b612024f5aee 6149 {
gertk 0:b612024f5aee 6150 BR.L = doSetRes(ctx, SR_RES, 1, BR.L);
gertk 0:b612024f5aee 6151 }
gertk 0:b612024f5aee 6152
gertk 0:b612024f5aee 6153
gertk 0:b612024f5aee 6154 static void RES_2_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6155 {
gertk 0:b612024f5aee 6156 write8(ctx, WR.HL, doSetRes(ctx, SR_RES, 2, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6157 }
gertk 0:b612024f5aee 6158
gertk 0:b612024f5aee 6159
gertk 0:b612024f5aee 6160 static void RES_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6161 {
gertk 0:b612024f5aee 6162 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6163 write8(ctx, WR.IX + off, doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6164
gertk 0:b612024f5aee 6165
gertk 0:b612024f5aee 6166 }
gertk 0:b612024f5aee 6167
gertk 0:b612024f5aee 6168
gertk 0:b612024f5aee 6169 static void RES_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6170 {
gertk 0:b612024f5aee 6171 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6172 write8(ctx, WR.IY + off, doSetRes(ctx, SR_RES, 2, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6173
gertk 0:b612024f5aee 6174
gertk 0:b612024f5aee 6175 }
gertk 0:b612024f5aee 6176
gertk 0:b612024f5aee 6177
gertk 0:b612024f5aee 6178 static void RES_2_A (Z80Context* ctx)
gertk 0:b612024f5aee 6179 {
gertk 0:b612024f5aee 6180 BR.A = doSetRes(ctx, SR_RES, 2, BR.A);
gertk 0:b612024f5aee 6181 }
gertk 0:b612024f5aee 6182
gertk 0:b612024f5aee 6183
gertk 0:b612024f5aee 6184 static void RES_2_B (Z80Context* ctx)
gertk 0:b612024f5aee 6185 {
gertk 0:b612024f5aee 6186 BR.B = doSetRes(ctx, SR_RES, 2, BR.B);
gertk 0:b612024f5aee 6187 }
gertk 0:b612024f5aee 6188
gertk 0:b612024f5aee 6189
gertk 0:b612024f5aee 6190 static void RES_2_C (Z80Context* ctx)
gertk 0:b612024f5aee 6191 {
gertk 0:b612024f5aee 6192 BR.C = doSetRes(ctx, SR_RES, 2, BR.C);
gertk 0:b612024f5aee 6193 }
gertk 0:b612024f5aee 6194
gertk 0:b612024f5aee 6195
gertk 0:b612024f5aee 6196 static void RES_2_D (Z80Context* ctx)
gertk 0:b612024f5aee 6197 {
gertk 0:b612024f5aee 6198 BR.D = doSetRes(ctx, SR_RES, 2, BR.D);
gertk 0:b612024f5aee 6199 }
gertk 0:b612024f5aee 6200
gertk 0:b612024f5aee 6201
gertk 0:b612024f5aee 6202 static void RES_2_E (Z80Context* ctx)
gertk 0:b612024f5aee 6203 {
gertk 0:b612024f5aee 6204 BR.E = doSetRes(ctx, SR_RES, 2, BR.E);
gertk 0:b612024f5aee 6205 }
gertk 0:b612024f5aee 6206
gertk 0:b612024f5aee 6207
gertk 0:b612024f5aee 6208 static void RES_2_H (Z80Context* ctx)
gertk 0:b612024f5aee 6209 {
gertk 0:b612024f5aee 6210 BR.H = doSetRes(ctx, SR_RES, 2, BR.H);
gertk 0:b612024f5aee 6211 }
gertk 0:b612024f5aee 6212
gertk 0:b612024f5aee 6213
gertk 0:b612024f5aee 6214 static void RES_2_L (Z80Context* ctx)
gertk 0:b612024f5aee 6215 {
gertk 0:b612024f5aee 6216 BR.L = doSetRes(ctx, SR_RES, 2, BR.L);
gertk 0:b612024f5aee 6217 }
gertk 0:b612024f5aee 6218
gertk 0:b612024f5aee 6219
gertk 0:b612024f5aee 6220 static void RES_3_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6221 {
gertk 0:b612024f5aee 6222 write8(ctx, WR.HL, doSetRes(ctx, SR_RES, 3, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6223 }
gertk 0:b612024f5aee 6224
gertk 0:b612024f5aee 6225
gertk 0:b612024f5aee 6226 static void RES_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6227 {
gertk 0:b612024f5aee 6228 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6229 write8(ctx, WR.IX + off, doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6230
gertk 0:b612024f5aee 6231
gertk 0:b612024f5aee 6232 }
gertk 0:b612024f5aee 6233
gertk 0:b612024f5aee 6234
gertk 0:b612024f5aee 6235 static void RES_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6236 {
gertk 0:b612024f5aee 6237 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6238 write8(ctx, WR.IY + off, doSetRes(ctx, SR_RES, 3, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6239
gertk 0:b612024f5aee 6240
gertk 0:b612024f5aee 6241 }
gertk 0:b612024f5aee 6242
gertk 0:b612024f5aee 6243
gertk 0:b612024f5aee 6244 static void RES_3_A (Z80Context* ctx)
gertk 0:b612024f5aee 6245 {
gertk 0:b612024f5aee 6246 BR.A = doSetRes(ctx, SR_RES, 3, BR.A);
gertk 0:b612024f5aee 6247 }
gertk 0:b612024f5aee 6248
gertk 0:b612024f5aee 6249
gertk 0:b612024f5aee 6250 static void RES_3_B (Z80Context* ctx)
gertk 0:b612024f5aee 6251 {
gertk 0:b612024f5aee 6252 BR.B = doSetRes(ctx, SR_RES, 3, BR.B);
gertk 0:b612024f5aee 6253 }
gertk 0:b612024f5aee 6254
gertk 0:b612024f5aee 6255
gertk 0:b612024f5aee 6256 static void RES_3_C (Z80Context* ctx)
gertk 0:b612024f5aee 6257 {
gertk 0:b612024f5aee 6258 BR.C = doSetRes(ctx, SR_RES, 3, BR.C);
gertk 0:b612024f5aee 6259 }
gertk 0:b612024f5aee 6260
gertk 0:b612024f5aee 6261
gertk 0:b612024f5aee 6262 static void RES_3_D (Z80Context* ctx)
gertk 0:b612024f5aee 6263 {
gertk 0:b612024f5aee 6264 BR.D = doSetRes(ctx, SR_RES, 3, BR.D);
gertk 0:b612024f5aee 6265 }
gertk 0:b612024f5aee 6266
gertk 0:b612024f5aee 6267
gertk 0:b612024f5aee 6268 static void RES_3_E (Z80Context* ctx)
gertk 0:b612024f5aee 6269 {
gertk 0:b612024f5aee 6270 BR.E = doSetRes(ctx, SR_RES, 3, BR.E);
gertk 0:b612024f5aee 6271 }
gertk 0:b612024f5aee 6272
gertk 0:b612024f5aee 6273
gertk 0:b612024f5aee 6274 static void RES_3_H (Z80Context* ctx)
gertk 0:b612024f5aee 6275 {
gertk 0:b612024f5aee 6276 BR.H = doSetRes(ctx, SR_RES, 3, BR.H);
gertk 0:b612024f5aee 6277 }
gertk 0:b612024f5aee 6278
gertk 0:b612024f5aee 6279
gertk 0:b612024f5aee 6280 static void RES_3_L (Z80Context* ctx)
gertk 0:b612024f5aee 6281 {
gertk 0:b612024f5aee 6282 BR.L = doSetRes(ctx, SR_RES, 3, BR.L);
gertk 0:b612024f5aee 6283 }
gertk 0:b612024f5aee 6284
gertk 0:b612024f5aee 6285
gertk 0:b612024f5aee 6286 static void RES_4_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6287 {
gertk 0:b612024f5aee 6288 write8(ctx, WR.HL, doSetRes(ctx, SR_RES, 4, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6289 }
gertk 0:b612024f5aee 6290
gertk 0:b612024f5aee 6291
gertk 0:b612024f5aee 6292 static void RES_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6293 {
gertk 0:b612024f5aee 6294 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6295 write8(ctx, WR.IX + off, doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6296
gertk 0:b612024f5aee 6297
gertk 0:b612024f5aee 6298 }
gertk 0:b612024f5aee 6299
gertk 0:b612024f5aee 6300
gertk 0:b612024f5aee 6301 static void RES_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6302 {
gertk 0:b612024f5aee 6303 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6304 write8(ctx, WR.IY + off, doSetRes(ctx, SR_RES, 4, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6305
gertk 0:b612024f5aee 6306
gertk 0:b612024f5aee 6307 }
gertk 0:b612024f5aee 6308
gertk 0:b612024f5aee 6309
gertk 0:b612024f5aee 6310 static void RES_4_A (Z80Context* ctx)
gertk 0:b612024f5aee 6311 {
gertk 0:b612024f5aee 6312 BR.A = doSetRes(ctx, SR_RES, 4, BR.A);
gertk 0:b612024f5aee 6313 }
gertk 0:b612024f5aee 6314
gertk 0:b612024f5aee 6315
gertk 0:b612024f5aee 6316 static void RES_4_B (Z80Context* ctx)
gertk 0:b612024f5aee 6317 {
gertk 0:b612024f5aee 6318 BR.B = doSetRes(ctx, SR_RES, 4, BR.B);
gertk 0:b612024f5aee 6319 }
gertk 0:b612024f5aee 6320
gertk 0:b612024f5aee 6321
gertk 0:b612024f5aee 6322 static void RES_4_C (Z80Context* ctx)
gertk 0:b612024f5aee 6323 {
gertk 0:b612024f5aee 6324 BR.C = doSetRes(ctx, SR_RES, 4, BR.C);
gertk 0:b612024f5aee 6325 }
gertk 0:b612024f5aee 6326
gertk 0:b612024f5aee 6327
gertk 0:b612024f5aee 6328 static void RES_4_D (Z80Context* ctx)
gertk 0:b612024f5aee 6329 {
gertk 0:b612024f5aee 6330 BR.D = doSetRes(ctx, SR_RES, 4, BR.D);
gertk 0:b612024f5aee 6331 }
gertk 0:b612024f5aee 6332
gertk 0:b612024f5aee 6333
gertk 0:b612024f5aee 6334 static void RES_4_E (Z80Context* ctx)
gertk 0:b612024f5aee 6335 {
gertk 0:b612024f5aee 6336 BR.E = doSetRes(ctx, SR_RES, 4, BR.E);
gertk 0:b612024f5aee 6337 }
gertk 0:b612024f5aee 6338
gertk 0:b612024f5aee 6339
gertk 0:b612024f5aee 6340 static void RES_4_H (Z80Context* ctx)
gertk 0:b612024f5aee 6341 {
gertk 0:b612024f5aee 6342 BR.H = doSetRes(ctx, SR_RES, 4, BR.H);
gertk 0:b612024f5aee 6343 }
gertk 0:b612024f5aee 6344
gertk 0:b612024f5aee 6345
gertk 0:b612024f5aee 6346 static void RES_4_L (Z80Context* ctx)
gertk 0:b612024f5aee 6347 {
gertk 0:b612024f5aee 6348 BR.L = doSetRes(ctx, SR_RES, 4, BR.L);
gertk 0:b612024f5aee 6349 }
gertk 0:b612024f5aee 6350
gertk 0:b612024f5aee 6351
gertk 0:b612024f5aee 6352 static void RES_5_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6353 {
gertk 0:b612024f5aee 6354 write8(ctx, WR.HL, doSetRes(ctx, SR_RES, 5, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6355 }
gertk 0:b612024f5aee 6356
gertk 0:b612024f5aee 6357
gertk 0:b612024f5aee 6358 static void RES_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6359 {
gertk 0:b612024f5aee 6360 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6361 write8(ctx, WR.IX + off, doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6362
gertk 0:b612024f5aee 6363
gertk 0:b612024f5aee 6364 }
gertk 0:b612024f5aee 6365
gertk 0:b612024f5aee 6366
gertk 0:b612024f5aee 6367 static void RES_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6368 {
gertk 0:b612024f5aee 6369 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6370 write8(ctx, WR.IY + off, doSetRes(ctx, SR_RES, 5, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6371
gertk 0:b612024f5aee 6372
gertk 0:b612024f5aee 6373 }
gertk 0:b612024f5aee 6374
gertk 0:b612024f5aee 6375
gertk 0:b612024f5aee 6376 static void RES_5_A (Z80Context* ctx)
gertk 0:b612024f5aee 6377 {
gertk 0:b612024f5aee 6378 BR.A = doSetRes(ctx, SR_RES, 5, BR.A);
gertk 0:b612024f5aee 6379 }
gertk 0:b612024f5aee 6380
gertk 0:b612024f5aee 6381
gertk 0:b612024f5aee 6382 static void RES_5_B (Z80Context* ctx)
gertk 0:b612024f5aee 6383 {
gertk 0:b612024f5aee 6384 BR.B = doSetRes(ctx, SR_RES, 5, BR.B);
gertk 0:b612024f5aee 6385 }
gertk 0:b612024f5aee 6386
gertk 0:b612024f5aee 6387
gertk 0:b612024f5aee 6388 static void RES_5_C (Z80Context* ctx)
gertk 0:b612024f5aee 6389 {
gertk 0:b612024f5aee 6390 BR.C = doSetRes(ctx, SR_RES, 5, BR.C);
gertk 0:b612024f5aee 6391 }
gertk 0:b612024f5aee 6392
gertk 0:b612024f5aee 6393
gertk 0:b612024f5aee 6394 static void RES_5_D (Z80Context* ctx)
gertk 0:b612024f5aee 6395 {
gertk 0:b612024f5aee 6396 BR.D = doSetRes(ctx, SR_RES, 5, BR.D);
gertk 0:b612024f5aee 6397 }
gertk 0:b612024f5aee 6398
gertk 0:b612024f5aee 6399
gertk 0:b612024f5aee 6400 static void RES_5_E (Z80Context* ctx)
gertk 0:b612024f5aee 6401 {
gertk 0:b612024f5aee 6402 BR.E = doSetRes(ctx, SR_RES, 5, BR.E);
gertk 0:b612024f5aee 6403 }
gertk 0:b612024f5aee 6404
gertk 0:b612024f5aee 6405
gertk 0:b612024f5aee 6406 static void RES_5_H (Z80Context* ctx)
gertk 0:b612024f5aee 6407 {
gertk 0:b612024f5aee 6408 BR.H = doSetRes(ctx, SR_RES, 5, BR.H);
gertk 0:b612024f5aee 6409 }
gertk 0:b612024f5aee 6410
gertk 0:b612024f5aee 6411
gertk 0:b612024f5aee 6412 static void RES_5_L (Z80Context* ctx)
gertk 0:b612024f5aee 6413 {
gertk 0:b612024f5aee 6414 BR.L = doSetRes(ctx, SR_RES, 5, BR.L);
gertk 0:b612024f5aee 6415 }
gertk 0:b612024f5aee 6416
gertk 0:b612024f5aee 6417
gertk 0:b612024f5aee 6418 static void RES_6_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6419 {
gertk 0:b612024f5aee 6420 write8(ctx, WR.HL, doSetRes(ctx, SR_RES, 6, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6421 }
gertk 0:b612024f5aee 6422
gertk 0:b612024f5aee 6423
gertk 0:b612024f5aee 6424 static void RES_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6425 {
gertk 0:b612024f5aee 6426 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6427 write8(ctx, WR.IX + off, doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6428
gertk 0:b612024f5aee 6429
gertk 0:b612024f5aee 6430 }
gertk 0:b612024f5aee 6431
gertk 0:b612024f5aee 6432
gertk 0:b612024f5aee 6433 static void RES_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6434 {
gertk 0:b612024f5aee 6435 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6436 write8(ctx, WR.IY + off, doSetRes(ctx, SR_RES, 6, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6437
gertk 0:b612024f5aee 6438
gertk 0:b612024f5aee 6439 }
gertk 0:b612024f5aee 6440
gertk 0:b612024f5aee 6441
gertk 0:b612024f5aee 6442 static void RES_6_A (Z80Context* ctx)
gertk 0:b612024f5aee 6443 {
gertk 0:b612024f5aee 6444 BR.A = doSetRes(ctx, SR_RES, 6, BR.A);
gertk 0:b612024f5aee 6445 }
gertk 0:b612024f5aee 6446
gertk 0:b612024f5aee 6447
gertk 0:b612024f5aee 6448 static void RES_6_B (Z80Context* ctx)
gertk 0:b612024f5aee 6449 {
gertk 0:b612024f5aee 6450 BR.B = doSetRes(ctx, SR_RES, 6, BR.B);
gertk 0:b612024f5aee 6451 }
gertk 0:b612024f5aee 6452
gertk 0:b612024f5aee 6453
gertk 0:b612024f5aee 6454 static void RES_6_C (Z80Context* ctx)
gertk 0:b612024f5aee 6455 {
gertk 0:b612024f5aee 6456 BR.C = doSetRes(ctx, SR_RES, 6, BR.C);
gertk 0:b612024f5aee 6457 }
gertk 0:b612024f5aee 6458
gertk 0:b612024f5aee 6459
gertk 0:b612024f5aee 6460 static void RES_6_D (Z80Context* ctx)
gertk 0:b612024f5aee 6461 {
gertk 0:b612024f5aee 6462 BR.D = doSetRes(ctx, SR_RES, 6, BR.D);
gertk 0:b612024f5aee 6463 }
gertk 0:b612024f5aee 6464
gertk 0:b612024f5aee 6465
gertk 0:b612024f5aee 6466 static void RES_6_E (Z80Context* ctx)
gertk 0:b612024f5aee 6467 {
gertk 0:b612024f5aee 6468 BR.E = doSetRes(ctx, SR_RES, 6, BR.E);
gertk 0:b612024f5aee 6469 }
gertk 0:b612024f5aee 6470
gertk 0:b612024f5aee 6471
gertk 0:b612024f5aee 6472 static void RES_6_H (Z80Context* ctx)
gertk 0:b612024f5aee 6473 {
gertk 0:b612024f5aee 6474 BR.H = doSetRes(ctx, SR_RES, 6, BR.H);
gertk 0:b612024f5aee 6475 }
gertk 0:b612024f5aee 6476
gertk 0:b612024f5aee 6477
gertk 0:b612024f5aee 6478 static void RES_6_L (Z80Context* ctx)
gertk 0:b612024f5aee 6479 {
gertk 0:b612024f5aee 6480 BR.L = doSetRes(ctx, SR_RES, 6, BR.L);
gertk 0:b612024f5aee 6481 }
gertk 0:b612024f5aee 6482
gertk 0:b612024f5aee 6483
gertk 0:b612024f5aee 6484 static void RES_7_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6485 {
gertk 0:b612024f5aee 6486 write8(ctx, WR.HL, doSetRes(ctx, SR_RES, 7, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6487 }
gertk 0:b612024f5aee 6488
gertk 0:b612024f5aee 6489
gertk 0:b612024f5aee 6490 static void RES_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6491 {
gertk 0:b612024f5aee 6492 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6493 write8(ctx, WR.IX + off, doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6494
gertk 0:b612024f5aee 6495
gertk 0:b612024f5aee 6496 }
gertk 0:b612024f5aee 6497
gertk 0:b612024f5aee 6498
gertk 0:b612024f5aee 6499 static void RES_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6500 {
gertk 0:b612024f5aee 6501 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6502 write8(ctx, WR.IY + off, doSetRes(ctx, SR_RES, 7, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6503
gertk 0:b612024f5aee 6504
gertk 0:b612024f5aee 6505 }
gertk 0:b612024f5aee 6506
gertk 0:b612024f5aee 6507
gertk 0:b612024f5aee 6508 static void RES_7_A (Z80Context* ctx)
gertk 0:b612024f5aee 6509 {
gertk 0:b612024f5aee 6510 BR.A = doSetRes(ctx, SR_RES, 7, BR.A);
gertk 0:b612024f5aee 6511 }
gertk 0:b612024f5aee 6512
gertk 0:b612024f5aee 6513
gertk 0:b612024f5aee 6514 static void RES_7_B (Z80Context* ctx)
gertk 0:b612024f5aee 6515 {
gertk 0:b612024f5aee 6516 BR.B = doSetRes(ctx, SR_RES, 7, BR.B);
gertk 0:b612024f5aee 6517 }
gertk 0:b612024f5aee 6518
gertk 0:b612024f5aee 6519
gertk 0:b612024f5aee 6520 static void RES_7_C (Z80Context* ctx)
gertk 0:b612024f5aee 6521 {
gertk 0:b612024f5aee 6522 BR.C = doSetRes(ctx, SR_RES, 7, BR.C);
gertk 0:b612024f5aee 6523 }
gertk 0:b612024f5aee 6524
gertk 0:b612024f5aee 6525
gertk 0:b612024f5aee 6526 static void RES_7_D (Z80Context* ctx)
gertk 0:b612024f5aee 6527 {
gertk 0:b612024f5aee 6528 BR.D = doSetRes(ctx, SR_RES, 7, BR.D);
gertk 0:b612024f5aee 6529 }
gertk 0:b612024f5aee 6530
gertk 0:b612024f5aee 6531
gertk 0:b612024f5aee 6532 static void RES_7_E (Z80Context* ctx)
gertk 0:b612024f5aee 6533 {
gertk 0:b612024f5aee 6534 BR.E = doSetRes(ctx, SR_RES, 7, BR.E);
gertk 0:b612024f5aee 6535 }
gertk 0:b612024f5aee 6536
gertk 0:b612024f5aee 6537
gertk 0:b612024f5aee 6538 static void RES_7_H (Z80Context* ctx)
gertk 0:b612024f5aee 6539 {
gertk 0:b612024f5aee 6540 BR.H = doSetRes(ctx, SR_RES, 7, BR.H);
gertk 0:b612024f5aee 6541 }
gertk 0:b612024f5aee 6542
gertk 0:b612024f5aee 6543
gertk 0:b612024f5aee 6544 static void RES_7_L (Z80Context* ctx)
gertk 0:b612024f5aee 6545 {
gertk 0:b612024f5aee 6546 BR.L = doSetRes(ctx, SR_RES, 7, BR.L);
gertk 0:b612024f5aee 6547 }
gertk 0:b612024f5aee 6548
gertk 0:b612024f5aee 6549
gertk 0:b612024f5aee 6550 static void RET (Z80Context* ctx)
gertk 0:b612024f5aee 6551 {
gertk 0:b612024f5aee 6552 ctx->PC = doPop(ctx);
gertk 0:b612024f5aee 6553 }
gertk 0:b612024f5aee 6554
gertk 0:b612024f5aee 6555
gertk 0:b612024f5aee 6556 static void RET_C (Z80Context* ctx)
gertk 0:b612024f5aee 6557 {
gertk 0:b612024f5aee 6558 if (ctx, condition(ctx, C_C))
gertk 0:b612024f5aee 6559 ctx->PC = doPop(ctx);
gertk 0:b612024f5aee 6560
gertk 0:b612024f5aee 6561 }
gertk 0:b612024f5aee 6562
gertk 0:b612024f5aee 6563
gertk 0:b612024f5aee 6564 static void RET_M (Z80Context* ctx)
gertk 0:b612024f5aee 6565 {
gertk 0:b612024f5aee 6566 if (ctx, condition(ctx, C_M))
gertk 0:b612024f5aee 6567 ctx->PC = doPop(ctx);
gertk 0:b612024f5aee 6568
gertk 0:b612024f5aee 6569 }
gertk 0:b612024f5aee 6570
gertk 0:b612024f5aee 6571
gertk 0:b612024f5aee 6572 static void RET_NC (Z80Context* ctx)
gertk 0:b612024f5aee 6573 {
gertk 0:b612024f5aee 6574 if (ctx, condition(ctx, C_NC))
gertk 0:b612024f5aee 6575 ctx->PC = doPop(ctx);
gertk 0:b612024f5aee 6576
gertk 0:b612024f5aee 6577 }
gertk 0:b612024f5aee 6578
gertk 0:b612024f5aee 6579
gertk 0:b612024f5aee 6580 static void RET_NZ (Z80Context* ctx)
gertk 0:b612024f5aee 6581 {
gertk 0:b612024f5aee 6582 if (ctx, condition(ctx, C_NZ))
gertk 0:b612024f5aee 6583 ctx->PC = doPop(ctx);
gertk 0:b612024f5aee 6584
gertk 0:b612024f5aee 6585 }
gertk 0:b612024f5aee 6586
gertk 0:b612024f5aee 6587
gertk 0:b612024f5aee 6588 static void RET_P (Z80Context* ctx)
gertk 0:b612024f5aee 6589 {
gertk 0:b612024f5aee 6590 if (ctx, condition(ctx, C_P))
gertk 0:b612024f5aee 6591 ctx->PC = doPop(ctx);
gertk 0:b612024f5aee 6592
gertk 0:b612024f5aee 6593 }
gertk 0:b612024f5aee 6594
gertk 0:b612024f5aee 6595
gertk 0:b612024f5aee 6596 static void RET_PE (Z80Context* ctx)
gertk 0:b612024f5aee 6597 {
gertk 0:b612024f5aee 6598 if (ctx, condition(ctx, C_PE))
gertk 0:b612024f5aee 6599 ctx->PC = doPop(ctx);
gertk 0:b612024f5aee 6600
gertk 0:b612024f5aee 6601 }
gertk 0:b612024f5aee 6602
gertk 0:b612024f5aee 6603
gertk 0:b612024f5aee 6604 static void RET_PO (Z80Context* ctx)
gertk 0:b612024f5aee 6605 {
gertk 0:b612024f5aee 6606 if (ctx, condition(ctx, C_PO))
gertk 0:b612024f5aee 6607 ctx->PC = doPop(ctx);
gertk 0:b612024f5aee 6608
gertk 0:b612024f5aee 6609 }
gertk 0:b612024f5aee 6610
gertk 0:b612024f5aee 6611
gertk 0:b612024f5aee 6612 static void RET_Z (Z80Context* ctx)
gertk 0:b612024f5aee 6613 {
gertk 0:b612024f5aee 6614 if (ctx, condition(ctx, C_Z))
gertk 0:b612024f5aee 6615 ctx->PC = doPop(ctx);
gertk 0:b612024f5aee 6616
gertk 0:b612024f5aee 6617 }
gertk 0:b612024f5aee 6618
gertk 0:b612024f5aee 6619
gertk 0:b612024f5aee 6620 static void RETI (Z80Context* ctx)
gertk 0:b612024f5aee 6621 {
gertk 0:b612024f5aee 6622 ctx->IFF1 = ctx->IFF2;
gertk 0:b612024f5aee 6623 RET (ctx);
gertk 0:b612024f5aee 6624
gertk 0:b612024f5aee 6625 }
gertk 0:b612024f5aee 6626
gertk 0:b612024f5aee 6627
gertk 0:b612024f5aee 6628 static void RETN (Z80Context* ctx)
gertk 0:b612024f5aee 6629 {
gertk 0:b612024f5aee 6630 ctx->IFF1 = ctx->IFF2;
gertk 0:b612024f5aee 6631 RET(ctx);
gertk 0:b612024f5aee 6632 }
gertk 0:b612024f5aee 6633
gertk 0:b612024f5aee 6634
gertk 0:b612024f5aee 6635 static void RL_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6636 {
gertk 0:b612024f5aee 6637 write8(ctx, WR.HL, doRL(ctx, 1, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6638
gertk 0:b612024f5aee 6639 }
gertk 0:b612024f5aee 6640
gertk 0:b612024f5aee 6641
gertk 0:b612024f5aee 6642 static void RL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6643 {
gertk 0:b612024f5aee 6644 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6645 write8(ctx, WR.IX + off, doRL(ctx, 1, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6646 }
gertk 0:b612024f5aee 6647
gertk 0:b612024f5aee 6648
gertk 0:b612024f5aee 6649 static void RL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6650 {
gertk 0:b612024f5aee 6651 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6652 write8(ctx, WR.IY + off, doRL(ctx, 1, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6653 }
gertk 0:b612024f5aee 6654
gertk 0:b612024f5aee 6655
gertk 0:b612024f5aee 6656 static void RL_A (Z80Context* ctx)
gertk 0:b612024f5aee 6657 {
gertk 0:b612024f5aee 6658 BR.A = doRL(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6659 }
gertk 0:b612024f5aee 6660
gertk 0:b612024f5aee 6661
gertk 0:b612024f5aee 6662 static void RL_B (Z80Context* ctx)
gertk 0:b612024f5aee 6663 {
gertk 0:b612024f5aee 6664 BR.B = doRL(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6665 }
gertk 0:b612024f5aee 6666
gertk 0:b612024f5aee 6667
gertk 0:b612024f5aee 6668 static void RL_C (Z80Context* ctx)
gertk 0:b612024f5aee 6669 {
gertk 0:b612024f5aee 6670 BR.C = doRL(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6671 }
gertk 0:b612024f5aee 6672
gertk 0:b612024f5aee 6673
gertk 0:b612024f5aee 6674 static void RL_D (Z80Context* ctx)
gertk 0:b612024f5aee 6675 {
gertk 0:b612024f5aee 6676 BR.D = doRL(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6677 }
gertk 0:b612024f5aee 6678
gertk 0:b612024f5aee 6679
gertk 0:b612024f5aee 6680 static void RL_E (Z80Context* ctx)
gertk 0:b612024f5aee 6681 {
gertk 0:b612024f5aee 6682 BR.E = doRL(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6683 }
gertk 0:b612024f5aee 6684
gertk 0:b612024f5aee 6685
gertk 0:b612024f5aee 6686 static void RL_H (Z80Context* ctx)
gertk 0:b612024f5aee 6687 {
gertk 0:b612024f5aee 6688 BR.H = doRL(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6689 }
gertk 0:b612024f5aee 6690
gertk 0:b612024f5aee 6691
gertk 0:b612024f5aee 6692 static void RL_L (Z80Context* ctx)
gertk 0:b612024f5aee 6693 {
gertk 0:b612024f5aee 6694 BR.L = doRL(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6695 }
gertk 0:b612024f5aee 6696
gertk 0:b612024f5aee 6697
gertk 0:b612024f5aee 6698 static void RLA (Z80Context* ctx)
gertk 0:b612024f5aee 6699 {
gertk 0:b612024f5aee 6700 BR.A = doRL(ctx, 0, BR.A);
gertk 0:b612024f5aee 6701
gertk 0:b612024f5aee 6702
gertk 0:b612024f5aee 6703 }
gertk 0:b612024f5aee 6704
gertk 0:b612024f5aee 6705
gertk 0:b612024f5aee 6706 static void RLC_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6707 {
gertk 0:b612024f5aee 6708 write8(ctx, WR.HL, doRLC(ctx, 1, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6709
gertk 0:b612024f5aee 6710 }
gertk 0:b612024f5aee 6711
gertk 0:b612024f5aee 6712
gertk 0:b612024f5aee 6713 static void RLC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6714 {
gertk 0:b612024f5aee 6715 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6716 write8(ctx, WR.IX + off, doRLC(ctx, 1, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6717 }
gertk 0:b612024f5aee 6718
gertk 0:b612024f5aee 6719
gertk 0:b612024f5aee 6720 static void RLC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6721 {
gertk 0:b612024f5aee 6722 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6723 write8(ctx, WR.IY + off, doRLC(ctx, 1, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6724 }
gertk 0:b612024f5aee 6725
gertk 0:b612024f5aee 6726
gertk 0:b612024f5aee 6727 static void RLC_A (Z80Context* ctx)
gertk 0:b612024f5aee 6728 {
gertk 0:b612024f5aee 6729 BR.A = doRLC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6730 }
gertk 0:b612024f5aee 6731
gertk 0:b612024f5aee 6732
gertk 0:b612024f5aee 6733 static void RLC_B (Z80Context* ctx)
gertk 0:b612024f5aee 6734 {
gertk 0:b612024f5aee 6735 BR.B = doRLC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6736 }
gertk 0:b612024f5aee 6737
gertk 0:b612024f5aee 6738
gertk 0:b612024f5aee 6739 static void RLC_C (Z80Context* ctx)
gertk 0:b612024f5aee 6740 {
gertk 0:b612024f5aee 6741 BR.C = doRLC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6742 }
gertk 0:b612024f5aee 6743
gertk 0:b612024f5aee 6744
gertk 0:b612024f5aee 6745 static void RLC_D (Z80Context* ctx)
gertk 0:b612024f5aee 6746 {
gertk 0:b612024f5aee 6747 BR.D = doRLC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6748 }
gertk 0:b612024f5aee 6749
gertk 0:b612024f5aee 6750
gertk 0:b612024f5aee 6751 static void RLC_E (Z80Context* ctx)
gertk 0:b612024f5aee 6752 {
gertk 0:b612024f5aee 6753 BR.E = doRLC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6754 }
gertk 0:b612024f5aee 6755
gertk 0:b612024f5aee 6756
gertk 0:b612024f5aee 6757 static void RLC_H (Z80Context* ctx)
gertk 0:b612024f5aee 6758 {
gertk 0:b612024f5aee 6759 BR.H = doRLC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6760 }
gertk 0:b612024f5aee 6761
gertk 0:b612024f5aee 6762
gertk 0:b612024f5aee 6763 static void RLC_L (Z80Context* ctx)
gertk 0:b612024f5aee 6764 {
gertk 0:b612024f5aee 6765 BR.L = doRLC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6766 }
gertk 0:b612024f5aee 6767
gertk 0:b612024f5aee 6768
gertk 0:b612024f5aee 6769 static void RLCA (Z80Context* ctx)
gertk 0:b612024f5aee 6770 {
gertk 0:b612024f5aee 6771 BR.A = doRLC(ctx, 0, BR.A);
gertk 0:b612024f5aee 6772
gertk 0:b612024f5aee 6773
gertk 0:b612024f5aee 6774 }
gertk 0:b612024f5aee 6775
gertk 0:b612024f5aee 6776
gertk 0:b612024f5aee 6777 static void RLD (Z80Context* ctx)
gertk 0:b612024f5aee 6778 {
gertk 0:b612024f5aee 6779 byte Ah = BR.A & 0xF0;
gertk 0:b612024f5aee 6780 byte hl = read8(ctx, WR.HL);
gertk 0:b612024f5aee 6781
gertk 0:b612024f5aee 6782 BR.A = (BR.A & 0x0F) | ((hl & 0x0F) << 4);
gertk 0:b612024f5aee 6783 hl = (hl << 4) | Ah;
gertk 0:b612024f5aee 6784 write8(ctx, WR.HL, hl);
gertk 0:b612024f5aee 6785
gertk 0:b612024f5aee 6786
gertk 0:b612024f5aee 6787 }
gertk 0:b612024f5aee 6788
gertk 0:b612024f5aee 6789
gertk 0:b612024f5aee 6790 static void RR_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6791 {
gertk 0:b612024f5aee 6792 write8(ctx, WR.HL, doRR(ctx, 1, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6793
gertk 0:b612024f5aee 6794 }
gertk 0:b612024f5aee 6795
gertk 0:b612024f5aee 6796
gertk 0:b612024f5aee 6797 static void RR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6798 {
gertk 0:b612024f5aee 6799 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6800 write8(ctx, WR.IX + off, doRR(ctx, 1, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6801 }
gertk 0:b612024f5aee 6802
gertk 0:b612024f5aee 6803
gertk 0:b612024f5aee 6804 static void RR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6805 {
gertk 0:b612024f5aee 6806 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6807 write8(ctx, WR.IY + off, doRR(ctx, 1, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6808 }
gertk 0:b612024f5aee 6809
gertk 0:b612024f5aee 6810
gertk 0:b612024f5aee 6811 static void RR_A (Z80Context* ctx)
gertk 0:b612024f5aee 6812 {
gertk 0:b612024f5aee 6813 BR.A = doRR(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6814 }
gertk 0:b612024f5aee 6815
gertk 0:b612024f5aee 6816
gertk 0:b612024f5aee 6817 static void RR_B (Z80Context* ctx)
gertk 0:b612024f5aee 6818 {
gertk 0:b612024f5aee 6819 BR.B = doRR(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6820 }
gertk 0:b612024f5aee 6821
gertk 0:b612024f5aee 6822
gertk 0:b612024f5aee 6823 static void RR_C (Z80Context* ctx)
gertk 0:b612024f5aee 6824 {
gertk 0:b612024f5aee 6825 BR.C = doRR(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6826 }
gertk 0:b612024f5aee 6827
gertk 0:b612024f5aee 6828
gertk 0:b612024f5aee 6829 static void RR_D (Z80Context* ctx)
gertk 0:b612024f5aee 6830 {
gertk 0:b612024f5aee 6831 BR.D = doRR(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6832 }
gertk 0:b612024f5aee 6833
gertk 0:b612024f5aee 6834
gertk 0:b612024f5aee 6835 static void RR_E (Z80Context* ctx)
gertk 0:b612024f5aee 6836 {
gertk 0:b612024f5aee 6837 BR.E = doRR(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6838 }
gertk 0:b612024f5aee 6839
gertk 0:b612024f5aee 6840
gertk 0:b612024f5aee 6841 static void RR_H (Z80Context* ctx)
gertk 0:b612024f5aee 6842 {
gertk 0:b612024f5aee 6843 BR.H = doRR(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6844 }
gertk 0:b612024f5aee 6845
gertk 0:b612024f5aee 6846
gertk 0:b612024f5aee 6847 static void RR_L (Z80Context* ctx)
gertk 0:b612024f5aee 6848 {
gertk 0:b612024f5aee 6849 BR.L = doRR(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6850 }
gertk 0:b612024f5aee 6851
gertk 0:b612024f5aee 6852
gertk 0:b612024f5aee 6853 static void RRA (Z80Context* ctx)
gertk 0:b612024f5aee 6854 {
gertk 0:b612024f5aee 6855 BR.A = doRR(ctx, 0, BR.A);
gertk 0:b612024f5aee 6856
gertk 0:b612024f5aee 6857
gertk 0:b612024f5aee 6858 }
gertk 0:b612024f5aee 6859
gertk 0:b612024f5aee 6860
gertk 0:b612024f5aee 6861 static void RRC_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 6862 {
gertk 0:b612024f5aee 6863 write8(ctx, WR.HL, doRRC(ctx, 1, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 6864
gertk 0:b612024f5aee 6865 }
gertk 0:b612024f5aee 6866
gertk 0:b612024f5aee 6867
gertk 0:b612024f5aee 6868 static void RRC_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 6869 {
gertk 0:b612024f5aee 6870 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6871 write8(ctx, WR.IX + off, doRRC(ctx, 1, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 6872 }
gertk 0:b612024f5aee 6873
gertk 0:b612024f5aee 6874
gertk 0:b612024f5aee 6875 static void RRC_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 6876 {
gertk 0:b612024f5aee 6877 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 6878 write8(ctx, WR.IY + off, doRRC(ctx, 1, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 6879 }
gertk 0:b612024f5aee 6880
gertk 0:b612024f5aee 6881
gertk 0:b612024f5aee 6882 static void RRC_A (Z80Context* ctx)
gertk 0:b612024f5aee 6883 {
gertk 0:b612024f5aee 6884 BR.A = doRRC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6885 }
gertk 0:b612024f5aee 6886
gertk 0:b612024f5aee 6887
gertk 0:b612024f5aee 6888 static void RRC_B (Z80Context* ctx)
gertk 0:b612024f5aee 6889 {
gertk 0:b612024f5aee 6890 BR.B = doRRC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6891 }
gertk 0:b612024f5aee 6892
gertk 0:b612024f5aee 6893
gertk 0:b612024f5aee 6894 static void RRC_C (Z80Context* ctx)
gertk 0:b612024f5aee 6895 {
gertk 0:b612024f5aee 6896 BR.C = doRRC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6897 }
gertk 0:b612024f5aee 6898
gertk 0:b612024f5aee 6899
gertk 0:b612024f5aee 6900 static void RRC_D (Z80Context* ctx)
gertk 0:b612024f5aee 6901 {
gertk 0:b612024f5aee 6902 BR.D = doRRC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6903 }
gertk 0:b612024f5aee 6904
gertk 0:b612024f5aee 6905
gertk 0:b612024f5aee 6906 static void RRC_E (Z80Context* ctx)
gertk 0:b612024f5aee 6907 {
gertk 0:b612024f5aee 6908 BR.E = doRRC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6909 }
gertk 0:b612024f5aee 6910
gertk 0:b612024f5aee 6911
gertk 0:b612024f5aee 6912 static void RRC_H (Z80Context* ctx)
gertk 0:b612024f5aee 6913 {
gertk 0:b612024f5aee 6914 BR.H = doRRC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6915 }
gertk 0:b612024f5aee 6916
gertk 0:b612024f5aee 6917
gertk 0:b612024f5aee 6918 static void RRC_L (Z80Context* ctx)
gertk 0:b612024f5aee 6919 {
gertk 0:b612024f5aee 6920 BR.L = doRRC(ctx, 1, read8(ctx, WR.HL));
gertk 0:b612024f5aee 6921 }
gertk 0:b612024f5aee 6922
gertk 0:b612024f5aee 6923
gertk 0:b612024f5aee 6924 static void RRCA (Z80Context* ctx)
gertk 0:b612024f5aee 6925 {
gertk 0:b612024f5aee 6926 BR.A = doRRC(ctx, 0, BR.A);
gertk 0:b612024f5aee 6927
gertk 0:b612024f5aee 6928
gertk 0:b612024f5aee 6929 }
gertk 0:b612024f5aee 6930
gertk 0:b612024f5aee 6931
gertk 0:b612024f5aee 6932 static void RRD (Z80Context* ctx)
gertk 0:b612024f5aee 6933 {
gertk 0:b612024f5aee 6934 byte Ah = BR.A & 0xF0;
gertk 0:b612024f5aee 6935 byte hl = read8(ctx, WR.HL);
gertk 0:b612024f5aee 6936
gertk 0:b612024f5aee 6937 BR.A = (BR.A & 0x0F) | (hl & 0xF0);
gertk 0:b612024f5aee 6938 hl = (hl >> 4) | (Ah << 4);
gertk 0:b612024f5aee 6939
gertk 0:b612024f5aee 6940 write8(ctx, WR.HL, hl);
gertk 0:b612024f5aee 6941
gertk 0:b612024f5aee 6942
gertk 0:b612024f5aee 6943 }
gertk 0:b612024f5aee 6944
gertk 0:b612024f5aee 6945
gertk 0:b612024f5aee 6946 static void RST_0H (Z80Context* ctx)
gertk 0:b612024f5aee 6947 {
gertk 0:b612024f5aee 6948 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 6949 ctx->PC = 0x00;
gertk 0:b612024f5aee 6950
gertk 0:b612024f5aee 6951
gertk 0:b612024f5aee 6952 }
gertk 0:b612024f5aee 6953
gertk 0:b612024f5aee 6954
gertk 0:b612024f5aee 6955 static void RST_10H (Z80Context* ctx)
gertk 0:b612024f5aee 6956 {
gertk 0:b612024f5aee 6957 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 6958 ctx->PC = 0x010;
gertk 0:b612024f5aee 6959
gertk 0:b612024f5aee 6960
gertk 0:b612024f5aee 6961 }
gertk 0:b612024f5aee 6962
gertk 0:b612024f5aee 6963
gertk 0:b612024f5aee 6964 static void RST_18H (Z80Context* ctx)
gertk 0:b612024f5aee 6965 {
gertk 0:b612024f5aee 6966 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 6967 ctx->PC = 0x018;
gertk 0:b612024f5aee 6968
gertk 0:b612024f5aee 6969
gertk 0:b612024f5aee 6970 }
gertk 0:b612024f5aee 6971
gertk 0:b612024f5aee 6972
gertk 0:b612024f5aee 6973 static void RST_20H (Z80Context* ctx)
gertk 0:b612024f5aee 6974 {
gertk 0:b612024f5aee 6975 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 6976 ctx->PC = 0x020;
gertk 0:b612024f5aee 6977
gertk 0:b612024f5aee 6978
gertk 0:b612024f5aee 6979 }
gertk 0:b612024f5aee 6980
gertk 0:b612024f5aee 6981
gertk 0:b612024f5aee 6982 static void RST_28H (Z80Context* ctx)
gertk 0:b612024f5aee 6983 {
gertk 0:b612024f5aee 6984 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 6985 ctx->PC = 0x028;
gertk 0:b612024f5aee 6986
gertk 0:b612024f5aee 6987
gertk 0:b612024f5aee 6988 }
gertk 0:b612024f5aee 6989
gertk 0:b612024f5aee 6990
gertk 0:b612024f5aee 6991 static void RST_30H (Z80Context* ctx)
gertk 0:b612024f5aee 6992 {
gertk 0:b612024f5aee 6993 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 6994 ctx->PC = 0x030;
gertk 0:b612024f5aee 6995
gertk 0:b612024f5aee 6996
gertk 0:b612024f5aee 6997 }
gertk 0:b612024f5aee 6998
gertk 0:b612024f5aee 6999
gertk 0:b612024f5aee 7000 static void RST_38H (Z80Context* ctx)
gertk 0:b612024f5aee 7001 {
gertk 0:b612024f5aee 7002 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 7003 ctx->PC = 0x038;
gertk 0:b612024f5aee 7004
gertk 0:b612024f5aee 7005
gertk 0:b612024f5aee 7006 }
gertk 0:b612024f5aee 7007
gertk 0:b612024f5aee 7008
gertk 0:b612024f5aee 7009 static void RST_8H (Z80Context* ctx)
gertk 0:b612024f5aee 7010 {
gertk 0:b612024f5aee 7011 doPush(ctx, ctx->PC);
gertk 0:b612024f5aee 7012 ctx->PC = 0x08;
gertk 0:b612024f5aee 7013
gertk 0:b612024f5aee 7014
gertk 0:b612024f5aee 7015 }
gertk 0:b612024f5aee 7016
gertk 0:b612024f5aee 7017
gertk 0:b612024f5aee 7018 static void SBC_A_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7019 {
gertk 0:b612024f5aee 7020 BR.A = doArithmetic(ctx, read8(ctx, WR.HL), F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7021 }
gertk 0:b612024f5aee 7022
gertk 0:b612024f5aee 7023
gertk 0:b612024f5aee 7024 static void SBC_A_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7025 {
gertk 0:b612024f5aee 7026 BR.A = doArithmetic(ctx, read8(ctx, WR.IX + read8(ctx, ctx->PC++)), F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7027
gertk 0:b612024f5aee 7028 }
gertk 0:b612024f5aee 7029
gertk 0:b612024f5aee 7030
gertk 0:b612024f5aee 7031 static void SBC_A_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7032 {
gertk 0:b612024f5aee 7033 BR.A = doArithmetic(ctx, read8(ctx, WR.IY + read8(ctx, ctx->PC++)), F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7034
gertk 0:b612024f5aee 7035 }
gertk 0:b612024f5aee 7036
gertk 0:b612024f5aee 7037
gertk 0:b612024f5aee 7038 static void SBC_A_A (Z80Context* ctx)
gertk 0:b612024f5aee 7039 {
gertk 0:b612024f5aee 7040 BR.A = doArithmetic(ctx, BR.A, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7041 }
gertk 0:b612024f5aee 7042
gertk 0:b612024f5aee 7043
gertk 0:b612024f5aee 7044 static void SBC_A_B (Z80Context* ctx)
gertk 0:b612024f5aee 7045 {
gertk 0:b612024f5aee 7046 BR.A = doArithmetic(ctx, BR.B, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7047 }
gertk 0:b612024f5aee 7048
gertk 0:b612024f5aee 7049
gertk 0:b612024f5aee 7050 static void SBC_A_C (Z80Context* ctx)
gertk 0:b612024f5aee 7051 {
gertk 0:b612024f5aee 7052 BR.A = doArithmetic(ctx, BR.C, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7053 }
gertk 0:b612024f5aee 7054
gertk 0:b612024f5aee 7055
gertk 0:b612024f5aee 7056 static void SBC_A_D (Z80Context* ctx)
gertk 0:b612024f5aee 7057 {
gertk 0:b612024f5aee 7058 BR.A = doArithmetic(ctx, BR.D, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7059 }
gertk 0:b612024f5aee 7060
gertk 0:b612024f5aee 7061
gertk 0:b612024f5aee 7062 static void SBC_A_E (Z80Context* ctx)
gertk 0:b612024f5aee 7063 {
gertk 0:b612024f5aee 7064 BR.A = doArithmetic(ctx, BR.E, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7065 }
gertk 0:b612024f5aee 7066
gertk 0:b612024f5aee 7067
gertk 0:b612024f5aee 7068 static void SBC_A_H (Z80Context* ctx)
gertk 0:b612024f5aee 7069 {
gertk 0:b612024f5aee 7070 BR.A = doArithmetic(ctx, BR.H, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7071 }
gertk 0:b612024f5aee 7072
gertk 0:b612024f5aee 7073
gertk 0:b612024f5aee 7074 static void SBC_A_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 7075 {
gertk 0:b612024f5aee 7076 BR.A = doArithmetic(ctx, BR.IXh, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7077 }
gertk 0:b612024f5aee 7078
gertk 0:b612024f5aee 7079
gertk 0:b612024f5aee 7080 static void SBC_A_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 7081 {
gertk 0:b612024f5aee 7082 BR.A = doArithmetic(ctx, BR.IXl, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7083 }
gertk 0:b612024f5aee 7084
gertk 0:b612024f5aee 7085
gertk 0:b612024f5aee 7086 static void SBC_A_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 7087 {
gertk 0:b612024f5aee 7088 BR.A = doArithmetic(ctx, BR.IYh, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7089 }
gertk 0:b612024f5aee 7090
gertk 0:b612024f5aee 7091
gertk 0:b612024f5aee 7092 static void SBC_A_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 7093 {
gertk 0:b612024f5aee 7094 BR.A = doArithmetic(ctx, BR.IYl, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7095 }
gertk 0:b612024f5aee 7096
gertk 0:b612024f5aee 7097
gertk 0:b612024f5aee 7098 static void SBC_A_L (Z80Context* ctx)
gertk 0:b612024f5aee 7099 {
gertk 0:b612024f5aee 7100 BR.A = doArithmetic(ctx, BR.L, F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7101 }
gertk 0:b612024f5aee 7102
gertk 0:b612024f5aee 7103
gertk 0:b612024f5aee 7104 static void SBC_A_n (Z80Context* ctx)
gertk 0:b612024f5aee 7105 {
gertk 0:b612024f5aee 7106 BR.A = doArithmetic(ctx, read8(ctx, ctx->PC++), F1_SBC, F2_SBC);
gertk 0:b612024f5aee 7107 }
gertk 0:b612024f5aee 7108
gertk 0:b612024f5aee 7109
gertk 0:b612024f5aee 7110 static void SBC_HL_BC (Z80Context* ctx)
gertk 0:b612024f5aee 7111 {
gertk 0:b612024f5aee 7112 WR.HL -= WR.BC + GETFLAG(F_C);
gertk 0:b612024f5aee 7113
gertk 0:b612024f5aee 7114 }
gertk 0:b612024f5aee 7115
gertk 0:b612024f5aee 7116
gertk 0:b612024f5aee 7117 static void SBC_HL_DE (Z80Context* ctx)
gertk 0:b612024f5aee 7118 {
gertk 0:b612024f5aee 7119 WR.HL -= WR.DE + GETFLAG(F_C);
gertk 0:b612024f5aee 7120
gertk 0:b612024f5aee 7121 }
gertk 0:b612024f5aee 7122
gertk 0:b612024f5aee 7123
gertk 0:b612024f5aee 7124 static void SBC_HL_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7125 {
gertk 0:b612024f5aee 7126 WR.HL -= WR.HL + GETFLAG(F_C);
gertk 0:b612024f5aee 7127
gertk 0:b612024f5aee 7128 }
gertk 0:b612024f5aee 7129
gertk 0:b612024f5aee 7130
gertk 0:b612024f5aee 7131 static void SBC_HL_SP (Z80Context* ctx)
gertk 0:b612024f5aee 7132 {
gertk 0:b612024f5aee 7133 WR.HL -= WR.SP + GETFLAG(F_C);
gertk 0:b612024f5aee 7134
gertk 0:b612024f5aee 7135 }
gertk 0:b612024f5aee 7136
gertk 0:b612024f5aee 7137
gertk 0:b612024f5aee 7138 static void SCF (Z80Context* ctx)
gertk 0:b612024f5aee 7139 {
gertk 0:b612024f5aee 7140 SETFLAG(F_C);
gertk 0:b612024f5aee 7141 RESFLAG(F_N | F_H);
gertk 0:b612024f5aee 7142 }
gertk 0:b612024f5aee 7143
gertk 0:b612024f5aee 7144
gertk 0:b612024f5aee 7145 static void SET_0_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7146 {
gertk 0:b612024f5aee 7147 write8(ctx, WR.HL, doSetRes(ctx, SR_SET, 0, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 7148 }
gertk 0:b612024f5aee 7149
gertk 0:b612024f5aee 7150
gertk 0:b612024f5aee 7151 static void SET_0_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7152 {
gertk 0:b612024f5aee 7153 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7154 write8(ctx, WR.IX + off, doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 7155
gertk 0:b612024f5aee 7156
gertk 0:b612024f5aee 7157 }
gertk 0:b612024f5aee 7158
gertk 0:b612024f5aee 7159
gertk 0:b612024f5aee 7160 static void SET_0_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7161 {
gertk 0:b612024f5aee 7162 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7163 write8(ctx, WR.IY + off, doSetRes(ctx, SR_SET, 0, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 7164
gertk 0:b612024f5aee 7165
gertk 0:b612024f5aee 7166 }
gertk 0:b612024f5aee 7167
gertk 0:b612024f5aee 7168
gertk 0:b612024f5aee 7169 static void SET_0_A (Z80Context* ctx)
gertk 0:b612024f5aee 7170 {
gertk 0:b612024f5aee 7171 BR.A = doSetRes(ctx, SR_SET, 0, BR.A);
gertk 0:b612024f5aee 7172 }
gertk 0:b612024f5aee 7173
gertk 0:b612024f5aee 7174
gertk 0:b612024f5aee 7175 static void SET_0_B (Z80Context* ctx)
gertk 0:b612024f5aee 7176 {
gertk 0:b612024f5aee 7177 BR.B = doSetRes(ctx, SR_SET, 0, BR.B);
gertk 0:b612024f5aee 7178 }
gertk 0:b612024f5aee 7179
gertk 0:b612024f5aee 7180
gertk 0:b612024f5aee 7181 static void SET_0_C (Z80Context* ctx)
gertk 0:b612024f5aee 7182 {
gertk 0:b612024f5aee 7183 BR.C = doSetRes(ctx, SR_SET, 0, BR.C);
gertk 0:b612024f5aee 7184 }
gertk 0:b612024f5aee 7185
gertk 0:b612024f5aee 7186
gertk 0:b612024f5aee 7187 static void SET_0_D (Z80Context* ctx)
gertk 0:b612024f5aee 7188 {
gertk 0:b612024f5aee 7189 BR.D = doSetRes(ctx, SR_SET, 0, BR.D);
gertk 0:b612024f5aee 7190 }
gertk 0:b612024f5aee 7191
gertk 0:b612024f5aee 7192
gertk 0:b612024f5aee 7193 static void SET_0_E (Z80Context* ctx)
gertk 0:b612024f5aee 7194 {
gertk 0:b612024f5aee 7195 BR.E = doSetRes(ctx, SR_SET, 0, BR.E);
gertk 0:b612024f5aee 7196 }
gertk 0:b612024f5aee 7197
gertk 0:b612024f5aee 7198
gertk 0:b612024f5aee 7199 static void SET_0_H (Z80Context* ctx)
gertk 0:b612024f5aee 7200 {
gertk 0:b612024f5aee 7201 BR.H = doSetRes(ctx, SR_SET, 0, BR.H);
gertk 0:b612024f5aee 7202 }
gertk 0:b612024f5aee 7203
gertk 0:b612024f5aee 7204
gertk 0:b612024f5aee 7205 static void SET_0_L (Z80Context* ctx)
gertk 0:b612024f5aee 7206 {
gertk 0:b612024f5aee 7207 BR.L = doSetRes(ctx, SR_SET, 0, BR.L);
gertk 0:b612024f5aee 7208 }
gertk 0:b612024f5aee 7209
gertk 0:b612024f5aee 7210
gertk 0:b612024f5aee 7211 static void SET_1_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7212 {
gertk 0:b612024f5aee 7213 write8(ctx, WR.HL, doSetRes(ctx, SR_SET, 1, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 7214 }
gertk 0:b612024f5aee 7215
gertk 0:b612024f5aee 7216
gertk 0:b612024f5aee 7217 static void SET_1_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7218 {
gertk 0:b612024f5aee 7219 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7220 write8(ctx, WR.IX + off, doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 7221
gertk 0:b612024f5aee 7222
gertk 0:b612024f5aee 7223 }
gertk 0:b612024f5aee 7224
gertk 0:b612024f5aee 7225
gertk 0:b612024f5aee 7226 static void SET_1_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7227 {
gertk 0:b612024f5aee 7228 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7229 write8(ctx, WR.IY + off, doSetRes(ctx, SR_SET, 1, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 7230
gertk 0:b612024f5aee 7231
gertk 0:b612024f5aee 7232 }
gertk 0:b612024f5aee 7233
gertk 0:b612024f5aee 7234
gertk 0:b612024f5aee 7235 static void SET_1_A (Z80Context* ctx)
gertk 0:b612024f5aee 7236 {
gertk 0:b612024f5aee 7237 BR.A = doSetRes(ctx, SR_SET, 1, BR.A);
gertk 0:b612024f5aee 7238 }
gertk 0:b612024f5aee 7239
gertk 0:b612024f5aee 7240
gertk 0:b612024f5aee 7241 static void SET_1_B (Z80Context* ctx)
gertk 0:b612024f5aee 7242 {
gertk 0:b612024f5aee 7243 BR.B = doSetRes(ctx, SR_SET, 1, BR.B);
gertk 0:b612024f5aee 7244 }
gertk 0:b612024f5aee 7245
gertk 0:b612024f5aee 7246
gertk 0:b612024f5aee 7247 static void SET_1_C (Z80Context* ctx)
gertk 0:b612024f5aee 7248 {
gertk 0:b612024f5aee 7249 BR.C = doSetRes(ctx, SR_SET, 1, BR.C);
gertk 0:b612024f5aee 7250 }
gertk 0:b612024f5aee 7251
gertk 0:b612024f5aee 7252
gertk 0:b612024f5aee 7253 static void SET_1_D (Z80Context* ctx)
gertk 0:b612024f5aee 7254 {
gertk 0:b612024f5aee 7255 BR.D = doSetRes(ctx, SR_SET, 1, BR.D);
gertk 0:b612024f5aee 7256 }
gertk 0:b612024f5aee 7257
gertk 0:b612024f5aee 7258
gertk 0:b612024f5aee 7259 static void SET_1_E (Z80Context* ctx)
gertk 0:b612024f5aee 7260 {
gertk 0:b612024f5aee 7261 BR.E = doSetRes(ctx, SR_SET, 1, BR.E);
gertk 0:b612024f5aee 7262 }
gertk 0:b612024f5aee 7263
gertk 0:b612024f5aee 7264
gertk 0:b612024f5aee 7265 static void SET_1_H (Z80Context* ctx)
gertk 0:b612024f5aee 7266 {
gertk 0:b612024f5aee 7267 BR.H = doSetRes(ctx, SR_SET, 1, BR.H);
gertk 0:b612024f5aee 7268 }
gertk 0:b612024f5aee 7269
gertk 0:b612024f5aee 7270
gertk 0:b612024f5aee 7271 static void SET_1_L (Z80Context* ctx)
gertk 0:b612024f5aee 7272 {
gertk 0:b612024f5aee 7273 BR.L = doSetRes(ctx, SR_SET, 1, BR.L);
gertk 0:b612024f5aee 7274 }
gertk 0:b612024f5aee 7275
gertk 0:b612024f5aee 7276
gertk 0:b612024f5aee 7277 static void SET_2_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7278 {
gertk 0:b612024f5aee 7279 write8(ctx, WR.HL, doSetRes(ctx, SR_SET, 2, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 7280 }
gertk 0:b612024f5aee 7281
gertk 0:b612024f5aee 7282
gertk 0:b612024f5aee 7283 static void SET_2_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7284 {
gertk 0:b612024f5aee 7285 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7286 write8(ctx, WR.IX + off, doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 7287
gertk 0:b612024f5aee 7288
gertk 0:b612024f5aee 7289 }
gertk 0:b612024f5aee 7290
gertk 0:b612024f5aee 7291
gertk 0:b612024f5aee 7292 static void SET_2_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7293 {
gertk 0:b612024f5aee 7294 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7295 write8(ctx, WR.IY + off, doSetRes(ctx, SR_SET, 2, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 7296
gertk 0:b612024f5aee 7297
gertk 0:b612024f5aee 7298 }
gertk 0:b612024f5aee 7299
gertk 0:b612024f5aee 7300
gertk 0:b612024f5aee 7301 static void SET_2_A (Z80Context* ctx)
gertk 0:b612024f5aee 7302 {
gertk 0:b612024f5aee 7303 BR.A = doSetRes(ctx, SR_SET, 2, BR.A);
gertk 0:b612024f5aee 7304 }
gertk 0:b612024f5aee 7305
gertk 0:b612024f5aee 7306
gertk 0:b612024f5aee 7307 static void SET_2_B (Z80Context* ctx)
gertk 0:b612024f5aee 7308 {
gertk 0:b612024f5aee 7309 BR.B = doSetRes(ctx, SR_SET, 2, BR.B);
gertk 0:b612024f5aee 7310 }
gertk 0:b612024f5aee 7311
gertk 0:b612024f5aee 7312
gertk 0:b612024f5aee 7313 static void SET_2_C (Z80Context* ctx)
gertk 0:b612024f5aee 7314 {
gertk 0:b612024f5aee 7315 BR.C = doSetRes(ctx, SR_SET, 2, BR.C);
gertk 0:b612024f5aee 7316 }
gertk 0:b612024f5aee 7317
gertk 0:b612024f5aee 7318
gertk 0:b612024f5aee 7319 static void SET_2_D (Z80Context* ctx)
gertk 0:b612024f5aee 7320 {
gertk 0:b612024f5aee 7321 BR.D = doSetRes(ctx, SR_SET, 2, BR.D);
gertk 0:b612024f5aee 7322 }
gertk 0:b612024f5aee 7323
gertk 0:b612024f5aee 7324
gertk 0:b612024f5aee 7325 static void SET_2_E (Z80Context* ctx)
gertk 0:b612024f5aee 7326 {
gertk 0:b612024f5aee 7327 BR.E = doSetRes(ctx, SR_SET, 2, BR.E);
gertk 0:b612024f5aee 7328 }
gertk 0:b612024f5aee 7329
gertk 0:b612024f5aee 7330
gertk 0:b612024f5aee 7331 static void SET_2_H (Z80Context* ctx)
gertk 0:b612024f5aee 7332 {
gertk 0:b612024f5aee 7333 BR.H = doSetRes(ctx, SR_SET, 2, BR.H);
gertk 0:b612024f5aee 7334 }
gertk 0:b612024f5aee 7335
gertk 0:b612024f5aee 7336
gertk 0:b612024f5aee 7337 static void SET_2_L (Z80Context* ctx)
gertk 0:b612024f5aee 7338 {
gertk 0:b612024f5aee 7339 BR.L = doSetRes(ctx, SR_SET, 2, BR.L);
gertk 0:b612024f5aee 7340 }
gertk 0:b612024f5aee 7341
gertk 0:b612024f5aee 7342
gertk 0:b612024f5aee 7343 static void SET_3_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7344 {
gertk 0:b612024f5aee 7345 write8(ctx, WR.HL, doSetRes(ctx, SR_SET, 3, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 7346 }
gertk 0:b612024f5aee 7347
gertk 0:b612024f5aee 7348
gertk 0:b612024f5aee 7349 static void SET_3_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7350 {
gertk 0:b612024f5aee 7351 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7352 write8(ctx, WR.IX + off, doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 7353
gertk 0:b612024f5aee 7354
gertk 0:b612024f5aee 7355 }
gertk 0:b612024f5aee 7356
gertk 0:b612024f5aee 7357
gertk 0:b612024f5aee 7358 static void SET_3_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7359 {
gertk 0:b612024f5aee 7360 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7361 write8(ctx, WR.IY + off, doSetRes(ctx, SR_SET, 3, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 7362
gertk 0:b612024f5aee 7363
gertk 0:b612024f5aee 7364 }
gertk 0:b612024f5aee 7365
gertk 0:b612024f5aee 7366
gertk 0:b612024f5aee 7367 static void SET_3_A (Z80Context* ctx)
gertk 0:b612024f5aee 7368 {
gertk 0:b612024f5aee 7369 BR.A = doSetRes(ctx, SR_SET, 3, BR.A);
gertk 0:b612024f5aee 7370 }
gertk 0:b612024f5aee 7371
gertk 0:b612024f5aee 7372
gertk 0:b612024f5aee 7373 static void SET_3_B (Z80Context* ctx)
gertk 0:b612024f5aee 7374 {
gertk 0:b612024f5aee 7375 BR.B = doSetRes(ctx, SR_SET, 3, BR.B);
gertk 0:b612024f5aee 7376 }
gertk 0:b612024f5aee 7377
gertk 0:b612024f5aee 7378
gertk 0:b612024f5aee 7379 static void SET_3_C (Z80Context* ctx)
gertk 0:b612024f5aee 7380 {
gertk 0:b612024f5aee 7381 BR.C = doSetRes(ctx, SR_SET, 3, BR.C);
gertk 0:b612024f5aee 7382 }
gertk 0:b612024f5aee 7383
gertk 0:b612024f5aee 7384
gertk 0:b612024f5aee 7385 static void SET_3_D (Z80Context* ctx)
gertk 0:b612024f5aee 7386 {
gertk 0:b612024f5aee 7387 BR.D = doSetRes(ctx, SR_SET, 3, BR.D);
gertk 0:b612024f5aee 7388 }
gertk 0:b612024f5aee 7389
gertk 0:b612024f5aee 7390
gertk 0:b612024f5aee 7391 static void SET_3_E (Z80Context* ctx)
gertk 0:b612024f5aee 7392 {
gertk 0:b612024f5aee 7393 BR.E = doSetRes(ctx, SR_SET, 3, BR.E);
gertk 0:b612024f5aee 7394 }
gertk 0:b612024f5aee 7395
gertk 0:b612024f5aee 7396
gertk 0:b612024f5aee 7397 static void SET_3_H (Z80Context* ctx)
gertk 0:b612024f5aee 7398 {
gertk 0:b612024f5aee 7399 BR.H = doSetRes(ctx, SR_SET, 3, BR.H);
gertk 0:b612024f5aee 7400 }
gertk 0:b612024f5aee 7401
gertk 0:b612024f5aee 7402
gertk 0:b612024f5aee 7403 static void SET_3_L (Z80Context* ctx)
gertk 0:b612024f5aee 7404 {
gertk 0:b612024f5aee 7405 BR.L = doSetRes(ctx, SR_SET, 3, BR.L);
gertk 0:b612024f5aee 7406 }
gertk 0:b612024f5aee 7407
gertk 0:b612024f5aee 7408
gertk 0:b612024f5aee 7409 static void SET_4_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7410 {
gertk 0:b612024f5aee 7411 write8(ctx, WR.HL, doSetRes(ctx, SR_SET, 4, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 7412 }
gertk 0:b612024f5aee 7413
gertk 0:b612024f5aee 7414
gertk 0:b612024f5aee 7415 static void SET_4_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7416 {
gertk 0:b612024f5aee 7417 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7418 write8(ctx, WR.IX + off, doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 7419
gertk 0:b612024f5aee 7420
gertk 0:b612024f5aee 7421 }
gertk 0:b612024f5aee 7422
gertk 0:b612024f5aee 7423
gertk 0:b612024f5aee 7424 static void SET_4_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7425 {
gertk 0:b612024f5aee 7426 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7427 write8(ctx, WR.IY + off, doSetRes(ctx, SR_SET, 4, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 7428
gertk 0:b612024f5aee 7429
gertk 0:b612024f5aee 7430 }
gertk 0:b612024f5aee 7431
gertk 0:b612024f5aee 7432
gertk 0:b612024f5aee 7433 static void SET_4_A (Z80Context* ctx)
gertk 0:b612024f5aee 7434 {
gertk 0:b612024f5aee 7435 BR.A = doSetRes(ctx, SR_SET, 4, BR.A);
gertk 0:b612024f5aee 7436 }
gertk 0:b612024f5aee 7437
gertk 0:b612024f5aee 7438
gertk 0:b612024f5aee 7439 static void SET_4_B (Z80Context* ctx)
gertk 0:b612024f5aee 7440 {
gertk 0:b612024f5aee 7441 BR.B = doSetRes(ctx, SR_SET, 4, BR.B);
gertk 0:b612024f5aee 7442 }
gertk 0:b612024f5aee 7443
gertk 0:b612024f5aee 7444
gertk 0:b612024f5aee 7445 static void SET_4_C (Z80Context* ctx)
gertk 0:b612024f5aee 7446 {
gertk 0:b612024f5aee 7447 BR.C = doSetRes(ctx, SR_SET, 4, BR.C);
gertk 0:b612024f5aee 7448 }
gertk 0:b612024f5aee 7449
gertk 0:b612024f5aee 7450
gertk 0:b612024f5aee 7451 static void SET_4_D (Z80Context* ctx)
gertk 0:b612024f5aee 7452 {
gertk 0:b612024f5aee 7453 BR.D = doSetRes(ctx, SR_SET, 4, BR.D);
gertk 0:b612024f5aee 7454 }
gertk 0:b612024f5aee 7455
gertk 0:b612024f5aee 7456
gertk 0:b612024f5aee 7457 static void SET_4_E (Z80Context* ctx)
gertk 0:b612024f5aee 7458 {
gertk 0:b612024f5aee 7459 BR.E = doSetRes(ctx, SR_SET, 4, BR.E);
gertk 0:b612024f5aee 7460 }
gertk 0:b612024f5aee 7461
gertk 0:b612024f5aee 7462
gertk 0:b612024f5aee 7463 static void SET_4_H (Z80Context* ctx)
gertk 0:b612024f5aee 7464 {
gertk 0:b612024f5aee 7465 BR.H = doSetRes(ctx, SR_SET, 4, BR.H);
gertk 0:b612024f5aee 7466 }
gertk 0:b612024f5aee 7467
gertk 0:b612024f5aee 7468
gertk 0:b612024f5aee 7469 static void SET_4_L (Z80Context* ctx)
gertk 0:b612024f5aee 7470 {
gertk 0:b612024f5aee 7471 BR.L = doSetRes(ctx, SR_SET, 4, BR.L);
gertk 0:b612024f5aee 7472 }
gertk 0:b612024f5aee 7473
gertk 0:b612024f5aee 7474
gertk 0:b612024f5aee 7475 static void SET_5_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7476 {
gertk 0:b612024f5aee 7477 write8(ctx, WR.HL, doSetRes(ctx, SR_SET, 5, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 7478 }
gertk 0:b612024f5aee 7479
gertk 0:b612024f5aee 7480
gertk 0:b612024f5aee 7481 static void SET_5_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7482 {
gertk 0:b612024f5aee 7483 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7484 write8(ctx, WR.IX + off, doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 7485
gertk 0:b612024f5aee 7486
gertk 0:b612024f5aee 7487 }
gertk 0:b612024f5aee 7488
gertk 0:b612024f5aee 7489
gertk 0:b612024f5aee 7490 static void SET_5_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7491 {
gertk 0:b612024f5aee 7492 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7493 write8(ctx, WR.IY + off, doSetRes(ctx, SR_SET, 5, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 7494
gertk 0:b612024f5aee 7495
gertk 0:b612024f5aee 7496 }
gertk 0:b612024f5aee 7497
gertk 0:b612024f5aee 7498
gertk 0:b612024f5aee 7499 static void SET_5_A (Z80Context* ctx)
gertk 0:b612024f5aee 7500 {
gertk 0:b612024f5aee 7501 BR.A = doSetRes(ctx, SR_SET, 5, BR.A);
gertk 0:b612024f5aee 7502 }
gertk 0:b612024f5aee 7503
gertk 0:b612024f5aee 7504
gertk 0:b612024f5aee 7505 static void SET_5_B (Z80Context* ctx)
gertk 0:b612024f5aee 7506 {
gertk 0:b612024f5aee 7507 BR.B = doSetRes(ctx, SR_SET, 5, BR.B);
gertk 0:b612024f5aee 7508 }
gertk 0:b612024f5aee 7509
gertk 0:b612024f5aee 7510
gertk 0:b612024f5aee 7511 static void SET_5_C (Z80Context* ctx)
gertk 0:b612024f5aee 7512 {
gertk 0:b612024f5aee 7513 BR.C = doSetRes(ctx, SR_SET, 5, BR.C);
gertk 0:b612024f5aee 7514 }
gertk 0:b612024f5aee 7515
gertk 0:b612024f5aee 7516
gertk 0:b612024f5aee 7517 static void SET_5_D (Z80Context* ctx)
gertk 0:b612024f5aee 7518 {
gertk 0:b612024f5aee 7519 BR.D = doSetRes(ctx, SR_SET, 5, BR.D);
gertk 0:b612024f5aee 7520 }
gertk 0:b612024f5aee 7521
gertk 0:b612024f5aee 7522
gertk 0:b612024f5aee 7523 static void SET_5_E (Z80Context* ctx)
gertk 0:b612024f5aee 7524 {
gertk 0:b612024f5aee 7525 BR.E = doSetRes(ctx, SR_SET, 5, BR.E);
gertk 0:b612024f5aee 7526 }
gertk 0:b612024f5aee 7527
gertk 0:b612024f5aee 7528
gertk 0:b612024f5aee 7529 static void SET_5_H (Z80Context* ctx)
gertk 0:b612024f5aee 7530 {
gertk 0:b612024f5aee 7531 BR.H = doSetRes(ctx, SR_SET, 5, BR.H);
gertk 0:b612024f5aee 7532 }
gertk 0:b612024f5aee 7533
gertk 0:b612024f5aee 7534
gertk 0:b612024f5aee 7535 static void SET_5_L (Z80Context* ctx)
gertk 0:b612024f5aee 7536 {
gertk 0:b612024f5aee 7537 BR.L = doSetRes(ctx, SR_SET, 5, BR.L);
gertk 0:b612024f5aee 7538 }
gertk 0:b612024f5aee 7539
gertk 0:b612024f5aee 7540
gertk 0:b612024f5aee 7541 static void SET_6_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7542 {
gertk 0:b612024f5aee 7543 write8(ctx, WR.HL, doSetRes(ctx, SR_SET, 6, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 7544 }
gertk 0:b612024f5aee 7545
gertk 0:b612024f5aee 7546
gertk 0:b612024f5aee 7547 static void SET_6_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7548 {
gertk 0:b612024f5aee 7549 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7550 write8(ctx, WR.IX + off, doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 7551
gertk 0:b612024f5aee 7552
gertk 0:b612024f5aee 7553 }
gertk 0:b612024f5aee 7554
gertk 0:b612024f5aee 7555
gertk 0:b612024f5aee 7556 static void SET_6_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7557 {
gertk 0:b612024f5aee 7558 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7559 write8(ctx, WR.IY + off, doSetRes(ctx, SR_SET, 6, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 7560
gertk 0:b612024f5aee 7561
gertk 0:b612024f5aee 7562 }
gertk 0:b612024f5aee 7563
gertk 0:b612024f5aee 7564
gertk 0:b612024f5aee 7565 static void SET_6_A (Z80Context* ctx)
gertk 0:b612024f5aee 7566 {
gertk 0:b612024f5aee 7567 BR.A = doSetRes(ctx, SR_SET, 6, BR.A);
gertk 0:b612024f5aee 7568 }
gertk 0:b612024f5aee 7569
gertk 0:b612024f5aee 7570
gertk 0:b612024f5aee 7571 static void SET_6_B (Z80Context* ctx)
gertk 0:b612024f5aee 7572 {
gertk 0:b612024f5aee 7573 BR.B = doSetRes(ctx, SR_SET, 6, BR.B);
gertk 0:b612024f5aee 7574 }
gertk 0:b612024f5aee 7575
gertk 0:b612024f5aee 7576
gertk 0:b612024f5aee 7577 static void SET_6_C (Z80Context* ctx)
gertk 0:b612024f5aee 7578 {
gertk 0:b612024f5aee 7579 BR.C = doSetRes(ctx, SR_SET, 6, BR.C);
gertk 0:b612024f5aee 7580 }
gertk 0:b612024f5aee 7581
gertk 0:b612024f5aee 7582
gertk 0:b612024f5aee 7583 static void SET_6_D (Z80Context* ctx)
gertk 0:b612024f5aee 7584 {
gertk 0:b612024f5aee 7585 BR.D = doSetRes(ctx, SR_SET, 6, BR.D);
gertk 0:b612024f5aee 7586 }
gertk 0:b612024f5aee 7587
gertk 0:b612024f5aee 7588
gertk 0:b612024f5aee 7589 static void SET_6_E (Z80Context* ctx)
gertk 0:b612024f5aee 7590 {
gertk 0:b612024f5aee 7591 BR.E = doSetRes(ctx, SR_SET, 6, BR.E);
gertk 0:b612024f5aee 7592 }
gertk 0:b612024f5aee 7593
gertk 0:b612024f5aee 7594
gertk 0:b612024f5aee 7595 static void SET_6_H (Z80Context* ctx)
gertk 0:b612024f5aee 7596 {
gertk 0:b612024f5aee 7597 BR.H = doSetRes(ctx, SR_SET, 6, BR.H);
gertk 0:b612024f5aee 7598 }
gertk 0:b612024f5aee 7599
gertk 0:b612024f5aee 7600
gertk 0:b612024f5aee 7601 static void SET_6_L (Z80Context* ctx)
gertk 0:b612024f5aee 7602 {
gertk 0:b612024f5aee 7603 BR.L = doSetRes(ctx, SR_SET, 6, BR.L);
gertk 0:b612024f5aee 7604 }
gertk 0:b612024f5aee 7605
gertk 0:b612024f5aee 7606
gertk 0:b612024f5aee 7607 static void SET_7_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7608 {
gertk 0:b612024f5aee 7609 write8(ctx, WR.HL, doSetRes(ctx, SR_SET, 7, read8(ctx, WR.HL)));
gertk 0:b612024f5aee 7610 }
gertk 0:b612024f5aee 7611
gertk 0:b612024f5aee 7612
gertk 0:b612024f5aee 7613 static void SET_7_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7614 {
gertk 0:b612024f5aee 7615 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7616 write8(ctx, WR.IX + off, doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IX + off)));
gertk 0:b612024f5aee 7617
gertk 0:b612024f5aee 7618
gertk 0:b612024f5aee 7619 }
gertk 0:b612024f5aee 7620
gertk 0:b612024f5aee 7621
gertk 0:b612024f5aee 7622 static void SET_7_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7623 {
gertk 0:b612024f5aee 7624 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7625 write8(ctx, WR.IY + off, doSetRes(ctx, SR_SET, 7, read8(ctx, WR.IY + off)));
gertk 0:b612024f5aee 7626
gertk 0:b612024f5aee 7627
gertk 0:b612024f5aee 7628 }
gertk 0:b612024f5aee 7629
gertk 0:b612024f5aee 7630
gertk 0:b612024f5aee 7631 static void SET_7_A (Z80Context* ctx)
gertk 0:b612024f5aee 7632 {
gertk 0:b612024f5aee 7633 BR.A = doSetRes(ctx, SR_SET, 7, BR.A);
gertk 0:b612024f5aee 7634 }
gertk 0:b612024f5aee 7635
gertk 0:b612024f5aee 7636
gertk 0:b612024f5aee 7637 static void SET_7_B (Z80Context* ctx)
gertk 0:b612024f5aee 7638 {
gertk 0:b612024f5aee 7639 BR.B = doSetRes(ctx, SR_SET, 7, BR.B);
gertk 0:b612024f5aee 7640 }
gertk 0:b612024f5aee 7641
gertk 0:b612024f5aee 7642
gertk 0:b612024f5aee 7643 static void SET_7_C (Z80Context* ctx)
gertk 0:b612024f5aee 7644 {
gertk 0:b612024f5aee 7645 BR.C = doSetRes(ctx, SR_SET, 7, BR.C);
gertk 0:b612024f5aee 7646 }
gertk 0:b612024f5aee 7647
gertk 0:b612024f5aee 7648
gertk 0:b612024f5aee 7649 static void SET_7_D (Z80Context* ctx)
gertk 0:b612024f5aee 7650 {
gertk 0:b612024f5aee 7651 BR.D = doSetRes(ctx, SR_SET, 7, BR.D);
gertk 0:b612024f5aee 7652 }
gertk 0:b612024f5aee 7653
gertk 0:b612024f5aee 7654
gertk 0:b612024f5aee 7655 static void SET_7_E (Z80Context* ctx)
gertk 0:b612024f5aee 7656 {
gertk 0:b612024f5aee 7657 BR.E = doSetRes(ctx, SR_SET, 7, BR.E);
gertk 0:b612024f5aee 7658 }
gertk 0:b612024f5aee 7659
gertk 0:b612024f5aee 7660
gertk 0:b612024f5aee 7661 static void SET_7_H (Z80Context* ctx)
gertk 0:b612024f5aee 7662 {
gertk 0:b612024f5aee 7663 BR.H = doSetRes(ctx, SR_SET, 7, BR.H);
gertk 0:b612024f5aee 7664 }
gertk 0:b612024f5aee 7665
gertk 0:b612024f5aee 7666
gertk 0:b612024f5aee 7667 static void SET_7_L (Z80Context* ctx)
gertk 0:b612024f5aee 7668 {
gertk 0:b612024f5aee 7669 BR.L = doSetRes(ctx, SR_SET, 7, BR.L);
gertk 0:b612024f5aee 7670 }
gertk 0:b612024f5aee 7671
gertk 0:b612024f5aee 7672
gertk 0:b612024f5aee 7673 static void SLA_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7674 {
gertk 0:b612024f5aee 7675 write8(ctx, WR.HL, doSL(ctx, read8(ctx, WR.HL), IA_A));
gertk 0:b612024f5aee 7676 }
gertk 0:b612024f5aee 7677
gertk 0:b612024f5aee 7678
gertk 0:b612024f5aee 7679 static void SLA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7680 {
gertk 0:b612024f5aee 7681 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7682 write8(ctx, WR.IX + off, doSL(ctx, read8(ctx, WR.IX + off), IA_A));
gertk 0:b612024f5aee 7683 }
gertk 0:b612024f5aee 7684
gertk 0:b612024f5aee 7685
gertk 0:b612024f5aee 7686 static void SLA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7687 {
gertk 0:b612024f5aee 7688 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7689 write8(ctx, WR.IY + off, doSL(ctx, read8(ctx, WR.IY + off), IA_A));
gertk 0:b612024f5aee 7690 }
gertk 0:b612024f5aee 7691
gertk 0:b612024f5aee 7692
gertk 0:b612024f5aee 7693 static void SLA_A (Z80Context* ctx)
gertk 0:b612024f5aee 7694 {
gertk 0:b612024f5aee 7695 BR.A = doSL(ctx, BR.A, IA_A);
gertk 0:b612024f5aee 7696
gertk 0:b612024f5aee 7697
gertk 0:b612024f5aee 7698 }
gertk 0:b612024f5aee 7699
gertk 0:b612024f5aee 7700
gertk 0:b612024f5aee 7701 static void SLA_B (Z80Context* ctx)
gertk 0:b612024f5aee 7702 {
gertk 0:b612024f5aee 7703 BR.B = doSL(ctx, BR.B, IA_A);
gertk 0:b612024f5aee 7704
gertk 0:b612024f5aee 7705
gertk 0:b612024f5aee 7706 }
gertk 0:b612024f5aee 7707
gertk 0:b612024f5aee 7708
gertk 0:b612024f5aee 7709 static void SLA_C (Z80Context* ctx)
gertk 0:b612024f5aee 7710 {
gertk 0:b612024f5aee 7711 BR.C = doSL(ctx, BR.C, IA_A);
gertk 0:b612024f5aee 7712
gertk 0:b612024f5aee 7713
gertk 0:b612024f5aee 7714 }
gertk 0:b612024f5aee 7715
gertk 0:b612024f5aee 7716
gertk 0:b612024f5aee 7717 static void SLA_D (Z80Context* ctx)
gertk 0:b612024f5aee 7718 {
gertk 0:b612024f5aee 7719 BR.D = doSL(ctx, BR.D, IA_A);
gertk 0:b612024f5aee 7720
gertk 0:b612024f5aee 7721
gertk 0:b612024f5aee 7722 }
gertk 0:b612024f5aee 7723
gertk 0:b612024f5aee 7724
gertk 0:b612024f5aee 7725 static void SLA_E (Z80Context* ctx)
gertk 0:b612024f5aee 7726 {
gertk 0:b612024f5aee 7727 BR.E = doSL(ctx, BR.E, IA_A);
gertk 0:b612024f5aee 7728
gertk 0:b612024f5aee 7729
gertk 0:b612024f5aee 7730 }
gertk 0:b612024f5aee 7731
gertk 0:b612024f5aee 7732
gertk 0:b612024f5aee 7733 static void SLA_H (Z80Context* ctx)
gertk 0:b612024f5aee 7734 {
gertk 0:b612024f5aee 7735 BR.H = doSL(ctx, BR.H, IA_A);
gertk 0:b612024f5aee 7736
gertk 0:b612024f5aee 7737
gertk 0:b612024f5aee 7738 }
gertk 0:b612024f5aee 7739
gertk 0:b612024f5aee 7740
gertk 0:b612024f5aee 7741 static void SLA_L (Z80Context* ctx)
gertk 0:b612024f5aee 7742 {
gertk 0:b612024f5aee 7743 BR.L = doSL(ctx, BR.L, IA_A);
gertk 0:b612024f5aee 7744
gertk 0:b612024f5aee 7745
gertk 0:b612024f5aee 7746 }
gertk 0:b612024f5aee 7747
gertk 0:b612024f5aee 7748
gertk 0:b612024f5aee 7749 static void SLL_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7750 {
gertk 0:b612024f5aee 7751 write8(ctx, WR.HL, doSL(ctx, read8(ctx, WR.HL), IA_L));
gertk 0:b612024f5aee 7752 }
gertk 0:b612024f5aee 7753
gertk 0:b612024f5aee 7754
gertk 0:b612024f5aee 7755 static void SLL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7756 {
gertk 0:b612024f5aee 7757 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7758 write8(ctx, WR.IX + off, doSL(ctx, read8(ctx, WR.IX + off), IA_L));
gertk 0:b612024f5aee 7759 }
gertk 0:b612024f5aee 7760
gertk 0:b612024f5aee 7761
gertk 0:b612024f5aee 7762 static void SLL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7763 {
gertk 0:b612024f5aee 7764 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7765 write8(ctx, WR.IY + off, doSL(ctx, read8(ctx, WR.IY + off), IA_L));
gertk 0:b612024f5aee 7766 }
gertk 0:b612024f5aee 7767
gertk 0:b612024f5aee 7768
gertk 0:b612024f5aee 7769 static void SLL_A (Z80Context* ctx)
gertk 0:b612024f5aee 7770 {
gertk 0:b612024f5aee 7771 BR.A = doSL(ctx, BR.A, IA_L);
gertk 0:b612024f5aee 7772
gertk 0:b612024f5aee 7773
gertk 0:b612024f5aee 7774 }
gertk 0:b612024f5aee 7775
gertk 0:b612024f5aee 7776
gertk 0:b612024f5aee 7777 static void SLL_B (Z80Context* ctx)
gertk 0:b612024f5aee 7778 {
gertk 0:b612024f5aee 7779 BR.B = doSL(ctx, BR.B, IA_L);
gertk 0:b612024f5aee 7780
gertk 0:b612024f5aee 7781
gertk 0:b612024f5aee 7782 }
gertk 0:b612024f5aee 7783
gertk 0:b612024f5aee 7784
gertk 0:b612024f5aee 7785 static void SLL_C (Z80Context* ctx)
gertk 0:b612024f5aee 7786 {
gertk 0:b612024f5aee 7787 BR.C = doSL(ctx, BR.C, IA_L);
gertk 0:b612024f5aee 7788
gertk 0:b612024f5aee 7789
gertk 0:b612024f5aee 7790 }
gertk 0:b612024f5aee 7791
gertk 0:b612024f5aee 7792
gertk 0:b612024f5aee 7793 static void SLL_D (Z80Context* ctx)
gertk 0:b612024f5aee 7794 {
gertk 0:b612024f5aee 7795 BR.D = doSL(ctx, BR.D, IA_L);
gertk 0:b612024f5aee 7796
gertk 0:b612024f5aee 7797
gertk 0:b612024f5aee 7798 }
gertk 0:b612024f5aee 7799
gertk 0:b612024f5aee 7800
gertk 0:b612024f5aee 7801 static void SLL_E (Z80Context* ctx)
gertk 0:b612024f5aee 7802 {
gertk 0:b612024f5aee 7803 BR.E = doSL(ctx, BR.E, IA_L);
gertk 0:b612024f5aee 7804
gertk 0:b612024f5aee 7805
gertk 0:b612024f5aee 7806 }
gertk 0:b612024f5aee 7807
gertk 0:b612024f5aee 7808
gertk 0:b612024f5aee 7809 static void SLL_H (Z80Context* ctx)
gertk 0:b612024f5aee 7810 {
gertk 0:b612024f5aee 7811 BR.H = doSL(ctx, BR.H, IA_L);
gertk 0:b612024f5aee 7812
gertk 0:b612024f5aee 7813
gertk 0:b612024f5aee 7814 }
gertk 0:b612024f5aee 7815
gertk 0:b612024f5aee 7816
gertk 0:b612024f5aee 7817 static void SLL_L (Z80Context* ctx)
gertk 0:b612024f5aee 7818 {
gertk 0:b612024f5aee 7819 BR.L = doSL(ctx, BR.L, IA_L);
gertk 0:b612024f5aee 7820
gertk 0:b612024f5aee 7821
gertk 0:b612024f5aee 7822 }
gertk 0:b612024f5aee 7823
gertk 0:b612024f5aee 7824
gertk 0:b612024f5aee 7825 static void SRA_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7826 {
gertk 0:b612024f5aee 7827 write8(ctx, WR.HL, doSR(ctx, read8(ctx, WR.HL), IA_A));
gertk 0:b612024f5aee 7828 }
gertk 0:b612024f5aee 7829
gertk 0:b612024f5aee 7830
gertk 0:b612024f5aee 7831 static void SRA_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7832 {
gertk 0:b612024f5aee 7833 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7834 write8(ctx, WR.IX + off, doSR(ctx, read8(ctx, WR.IX + off), IA_A));
gertk 0:b612024f5aee 7835 }
gertk 0:b612024f5aee 7836
gertk 0:b612024f5aee 7837
gertk 0:b612024f5aee 7838 static void SRA_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7839 {
gertk 0:b612024f5aee 7840 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7841 write8(ctx, WR.IY + off, doSR(ctx, read8(ctx, WR.IY + off), IA_A));
gertk 0:b612024f5aee 7842 }
gertk 0:b612024f5aee 7843
gertk 0:b612024f5aee 7844
gertk 0:b612024f5aee 7845 static void SRA_A (Z80Context* ctx)
gertk 0:b612024f5aee 7846 {
gertk 0:b612024f5aee 7847 BR.A = doSR(ctx, BR.A, IA_A);
gertk 0:b612024f5aee 7848
gertk 0:b612024f5aee 7849
gertk 0:b612024f5aee 7850 }
gertk 0:b612024f5aee 7851
gertk 0:b612024f5aee 7852
gertk 0:b612024f5aee 7853 static void SRA_B (Z80Context* ctx)
gertk 0:b612024f5aee 7854 {
gertk 0:b612024f5aee 7855 BR.B = doSR(ctx, BR.B, IA_A);
gertk 0:b612024f5aee 7856
gertk 0:b612024f5aee 7857
gertk 0:b612024f5aee 7858 }
gertk 0:b612024f5aee 7859
gertk 0:b612024f5aee 7860
gertk 0:b612024f5aee 7861 static void SRA_C (Z80Context* ctx)
gertk 0:b612024f5aee 7862 {
gertk 0:b612024f5aee 7863 BR.C = doSR(ctx, BR.C, IA_A);
gertk 0:b612024f5aee 7864
gertk 0:b612024f5aee 7865
gertk 0:b612024f5aee 7866 }
gertk 0:b612024f5aee 7867
gertk 0:b612024f5aee 7868
gertk 0:b612024f5aee 7869 static void SRA_D (Z80Context* ctx)
gertk 0:b612024f5aee 7870 {
gertk 0:b612024f5aee 7871 BR.D = doSR(ctx, BR.D, IA_A);
gertk 0:b612024f5aee 7872
gertk 0:b612024f5aee 7873
gertk 0:b612024f5aee 7874 }
gertk 0:b612024f5aee 7875
gertk 0:b612024f5aee 7876
gertk 0:b612024f5aee 7877 static void SRA_E (Z80Context* ctx)
gertk 0:b612024f5aee 7878 {
gertk 0:b612024f5aee 7879 BR.E = doSR(ctx, BR.E, IA_A);
gertk 0:b612024f5aee 7880
gertk 0:b612024f5aee 7881
gertk 0:b612024f5aee 7882 }
gertk 0:b612024f5aee 7883
gertk 0:b612024f5aee 7884
gertk 0:b612024f5aee 7885 static void SRA_H (Z80Context* ctx)
gertk 0:b612024f5aee 7886 {
gertk 0:b612024f5aee 7887 BR.H = doSR(ctx, BR.H, IA_A);
gertk 0:b612024f5aee 7888
gertk 0:b612024f5aee 7889
gertk 0:b612024f5aee 7890 }
gertk 0:b612024f5aee 7891
gertk 0:b612024f5aee 7892
gertk 0:b612024f5aee 7893 static void SRA_L (Z80Context* ctx)
gertk 0:b612024f5aee 7894 {
gertk 0:b612024f5aee 7895 BR.L = doSR(ctx, BR.L, IA_A);
gertk 0:b612024f5aee 7896
gertk 0:b612024f5aee 7897
gertk 0:b612024f5aee 7898 }
gertk 0:b612024f5aee 7899
gertk 0:b612024f5aee 7900
gertk 0:b612024f5aee 7901 static void SRL_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7902 {
gertk 0:b612024f5aee 7903 write8(ctx, WR.HL, doSR(ctx, read8(ctx, WR.HL), IA_L));
gertk 0:b612024f5aee 7904 }
gertk 0:b612024f5aee 7905
gertk 0:b612024f5aee 7906
gertk 0:b612024f5aee 7907 static void SRL_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7908 {
gertk 0:b612024f5aee 7909 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7910 write8(ctx, WR.IX + off, doSR(ctx, read8(ctx, WR.IX + off), IA_L));
gertk 0:b612024f5aee 7911 }
gertk 0:b612024f5aee 7912
gertk 0:b612024f5aee 7913
gertk 0:b612024f5aee 7914 static void SRL_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7915 {
gertk 0:b612024f5aee 7916 byte off = read8(ctx, ctx->PC++);
gertk 0:b612024f5aee 7917 write8(ctx, WR.IY + off, doSR(ctx, read8(ctx, WR.IY + off), IA_L));
gertk 0:b612024f5aee 7918 }
gertk 0:b612024f5aee 7919
gertk 0:b612024f5aee 7920
gertk 0:b612024f5aee 7921 static void SRL_A (Z80Context* ctx)
gertk 0:b612024f5aee 7922 {
gertk 0:b612024f5aee 7923 BR.A = doSR(ctx, BR.A, IA_L);
gertk 0:b612024f5aee 7924
gertk 0:b612024f5aee 7925
gertk 0:b612024f5aee 7926 }
gertk 0:b612024f5aee 7927
gertk 0:b612024f5aee 7928
gertk 0:b612024f5aee 7929 static void SRL_B (Z80Context* ctx)
gertk 0:b612024f5aee 7930 {
gertk 0:b612024f5aee 7931 BR.B = doSR(ctx, BR.B, IA_L);
gertk 0:b612024f5aee 7932
gertk 0:b612024f5aee 7933
gertk 0:b612024f5aee 7934 }
gertk 0:b612024f5aee 7935
gertk 0:b612024f5aee 7936
gertk 0:b612024f5aee 7937 static void SRL_C (Z80Context* ctx)
gertk 0:b612024f5aee 7938 {
gertk 0:b612024f5aee 7939 BR.C = doSR(ctx, BR.C, IA_L);
gertk 0:b612024f5aee 7940
gertk 0:b612024f5aee 7941
gertk 0:b612024f5aee 7942 }
gertk 0:b612024f5aee 7943
gertk 0:b612024f5aee 7944
gertk 0:b612024f5aee 7945 static void SRL_D (Z80Context* ctx)
gertk 0:b612024f5aee 7946 {
gertk 0:b612024f5aee 7947 BR.D = doSR(ctx, BR.D, IA_L);
gertk 0:b612024f5aee 7948
gertk 0:b612024f5aee 7949
gertk 0:b612024f5aee 7950 }
gertk 0:b612024f5aee 7951
gertk 0:b612024f5aee 7952
gertk 0:b612024f5aee 7953 static void SRL_E (Z80Context* ctx)
gertk 0:b612024f5aee 7954 {
gertk 0:b612024f5aee 7955 BR.E = doSR(ctx, BR.E, IA_L);
gertk 0:b612024f5aee 7956
gertk 0:b612024f5aee 7957
gertk 0:b612024f5aee 7958 }
gertk 0:b612024f5aee 7959
gertk 0:b612024f5aee 7960
gertk 0:b612024f5aee 7961 static void SRL_H (Z80Context* ctx)
gertk 0:b612024f5aee 7962 {
gertk 0:b612024f5aee 7963 BR.H = doSR(ctx, BR.H, IA_L);
gertk 0:b612024f5aee 7964
gertk 0:b612024f5aee 7965
gertk 0:b612024f5aee 7966 }
gertk 0:b612024f5aee 7967
gertk 0:b612024f5aee 7968
gertk 0:b612024f5aee 7969 static void SRL_L (Z80Context* ctx)
gertk 0:b612024f5aee 7970 {
gertk 0:b612024f5aee 7971 BR.L = doSR(ctx, BR.L, IA_L);
gertk 0:b612024f5aee 7972
gertk 0:b612024f5aee 7973
gertk 0:b612024f5aee 7974 }
gertk 0:b612024f5aee 7975
gertk 0:b612024f5aee 7976
gertk 0:b612024f5aee 7977 static void SUB_A_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 7978 {
gertk 0:b612024f5aee 7979 BR.A = doArithmetic(ctx, read8(ctx, WR.HL), F1_SUB, F2_SUB);
gertk 0:b612024f5aee 7980 }
gertk 0:b612024f5aee 7981
gertk 0:b612024f5aee 7982
gertk 0:b612024f5aee 7983 static void SUB_A_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 7984 {
gertk 0:b612024f5aee 7985 BR.A = doArithmetic(ctx, read8(ctx, WR.IX + read8(ctx, ctx->PC++)), F1_SUB, F2_SUB);
gertk 0:b612024f5aee 7986
gertk 0:b612024f5aee 7987 }
gertk 0:b612024f5aee 7988
gertk 0:b612024f5aee 7989
gertk 0:b612024f5aee 7990 static void SUB_A_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 7991 {
gertk 0:b612024f5aee 7992 BR.A = doArithmetic(ctx, read8(ctx, WR.IY + read8(ctx, ctx->PC++)), F1_SUB, F2_SUB);
gertk 0:b612024f5aee 7993
gertk 0:b612024f5aee 7994 }
gertk 0:b612024f5aee 7995
gertk 0:b612024f5aee 7996
gertk 0:b612024f5aee 7997 static void SUB_A_A (Z80Context* ctx)
gertk 0:b612024f5aee 7998 {
gertk 0:b612024f5aee 7999 BR.A = doArithmetic(ctx, BR.A, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8000 }
gertk 0:b612024f5aee 8001
gertk 0:b612024f5aee 8002
gertk 0:b612024f5aee 8003 static void SUB_A_B (Z80Context* ctx)
gertk 0:b612024f5aee 8004 {
gertk 0:b612024f5aee 8005 BR.A = doArithmetic(ctx, BR.B, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8006 }
gertk 0:b612024f5aee 8007
gertk 0:b612024f5aee 8008
gertk 0:b612024f5aee 8009 static void SUB_A_C (Z80Context* ctx)
gertk 0:b612024f5aee 8010 {
gertk 0:b612024f5aee 8011 BR.A = doArithmetic(ctx, BR.C, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8012 }
gertk 0:b612024f5aee 8013
gertk 0:b612024f5aee 8014
gertk 0:b612024f5aee 8015 static void SUB_A_D (Z80Context* ctx)
gertk 0:b612024f5aee 8016 {
gertk 0:b612024f5aee 8017 BR.A = doArithmetic(ctx, BR.D, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8018 }
gertk 0:b612024f5aee 8019
gertk 0:b612024f5aee 8020
gertk 0:b612024f5aee 8021 static void SUB_A_E (Z80Context* ctx)
gertk 0:b612024f5aee 8022 {
gertk 0:b612024f5aee 8023 BR.A = doArithmetic(ctx, BR.E, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8024 }
gertk 0:b612024f5aee 8025
gertk 0:b612024f5aee 8026
gertk 0:b612024f5aee 8027 static void SUB_A_H (Z80Context* ctx)
gertk 0:b612024f5aee 8028 {
gertk 0:b612024f5aee 8029 BR.A = doArithmetic(ctx, BR.H, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8030 }
gertk 0:b612024f5aee 8031
gertk 0:b612024f5aee 8032
gertk 0:b612024f5aee 8033 static void SUB_A_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 8034 {
gertk 0:b612024f5aee 8035 BR.A = doArithmetic(ctx, BR.IXh, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8036 }
gertk 0:b612024f5aee 8037
gertk 0:b612024f5aee 8038
gertk 0:b612024f5aee 8039 static void SUB_A_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 8040 {
gertk 0:b612024f5aee 8041 BR.A = doArithmetic(ctx, BR.IXl, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8042 }
gertk 0:b612024f5aee 8043
gertk 0:b612024f5aee 8044
gertk 0:b612024f5aee 8045 static void SUB_A_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 8046 {
gertk 0:b612024f5aee 8047 BR.A = doArithmetic(ctx, BR.IYh, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8048 }
gertk 0:b612024f5aee 8049
gertk 0:b612024f5aee 8050
gertk 0:b612024f5aee 8051 static void SUB_A_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 8052 {
gertk 0:b612024f5aee 8053 BR.A = doArithmetic(ctx, BR.IYl, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8054 }
gertk 0:b612024f5aee 8055
gertk 0:b612024f5aee 8056
gertk 0:b612024f5aee 8057 static void SUB_A_L (Z80Context* ctx)
gertk 0:b612024f5aee 8058 {
gertk 0:b612024f5aee 8059 BR.A = doArithmetic(ctx, BR.L, F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8060 }
gertk 0:b612024f5aee 8061
gertk 0:b612024f5aee 8062
gertk 0:b612024f5aee 8063 static void SUB_A_n (Z80Context* ctx)
gertk 0:b612024f5aee 8064 {
gertk 0:b612024f5aee 8065 BR.A = doArithmetic(ctx, read8(ctx, ctx->PC++), F1_SUB, F2_SUB);
gertk 0:b612024f5aee 8066 }
gertk 0:b612024f5aee 8067
gertk 0:b612024f5aee 8068
gertk 0:b612024f5aee 8069 static void XOR_off_HL (Z80Context* ctx)
gertk 0:b612024f5aee 8070 {
gertk 0:b612024f5aee 8071 doXOR(ctx, read8(ctx, WR.HL));
gertk 0:b612024f5aee 8072 }
gertk 0:b612024f5aee 8073
gertk 0:b612024f5aee 8074
gertk 0:b612024f5aee 8075 static void XOR_off_IX_d (Z80Context* ctx)
gertk 0:b612024f5aee 8076 {
gertk 0:b612024f5aee 8077 doXOR(ctx, read8(ctx, WR.IX + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 8078 }
gertk 0:b612024f5aee 8079
gertk 0:b612024f5aee 8080
gertk 0:b612024f5aee 8081 static void XOR_off_IY_d (Z80Context* ctx)
gertk 0:b612024f5aee 8082 {
gertk 0:b612024f5aee 8083 doXOR(ctx, read8(ctx, WR.IY + read8(ctx, ctx->PC++)));
gertk 0:b612024f5aee 8084 }
gertk 0:b612024f5aee 8085
gertk 0:b612024f5aee 8086
gertk 0:b612024f5aee 8087 static void XOR_A (Z80Context* ctx)
gertk 0:b612024f5aee 8088 {
gertk 0:b612024f5aee 8089 doXOR(ctx, BR.A);
gertk 0:b612024f5aee 8090 }
gertk 0:b612024f5aee 8091
gertk 0:b612024f5aee 8092
gertk 0:b612024f5aee 8093 static void XOR_B (Z80Context* ctx)
gertk 0:b612024f5aee 8094 {
gertk 0:b612024f5aee 8095 doXOR(ctx, BR.B);
gertk 0:b612024f5aee 8096 }
gertk 0:b612024f5aee 8097
gertk 0:b612024f5aee 8098
gertk 0:b612024f5aee 8099 static void XOR_C (Z80Context* ctx)
gertk 0:b612024f5aee 8100 {
gertk 0:b612024f5aee 8101 doXOR(ctx, BR.C);
gertk 0:b612024f5aee 8102 }
gertk 0:b612024f5aee 8103
gertk 0:b612024f5aee 8104
gertk 0:b612024f5aee 8105 static void XOR_D (Z80Context* ctx)
gertk 0:b612024f5aee 8106 {
gertk 0:b612024f5aee 8107 doXOR(ctx, BR.D);
gertk 0:b612024f5aee 8108 }
gertk 0:b612024f5aee 8109
gertk 0:b612024f5aee 8110
gertk 0:b612024f5aee 8111 static void XOR_E (Z80Context* ctx)
gertk 0:b612024f5aee 8112 {
gertk 0:b612024f5aee 8113 doXOR(ctx, BR.E);
gertk 0:b612024f5aee 8114 }
gertk 0:b612024f5aee 8115
gertk 0:b612024f5aee 8116
gertk 0:b612024f5aee 8117 static void XOR_H (Z80Context* ctx)
gertk 0:b612024f5aee 8118 {
gertk 0:b612024f5aee 8119 doXOR(ctx, BR.H);
gertk 0:b612024f5aee 8120 }
gertk 0:b612024f5aee 8121
gertk 0:b612024f5aee 8122
gertk 0:b612024f5aee 8123 static void XOR_IXh (Z80Context* ctx)
gertk 0:b612024f5aee 8124 {
gertk 0:b612024f5aee 8125 doXOR(ctx, BR.IXh);
gertk 0:b612024f5aee 8126 }
gertk 0:b612024f5aee 8127
gertk 0:b612024f5aee 8128
gertk 0:b612024f5aee 8129 static void XOR_IXl (Z80Context* ctx)
gertk 0:b612024f5aee 8130 {
gertk 0:b612024f5aee 8131 doXOR(ctx, BR.IXl);
gertk 0:b612024f5aee 8132 }
gertk 0:b612024f5aee 8133
gertk 0:b612024f5aee 8134
gertk 0:b612024f5aee 8135 static void XOR_IYh (Z80Context* ctx)
gertk 0:b612024f5aee 8136 {
gertk 0:b612024f5aee 8137 doXOR(ctx, BR.IYh);
gertk 0:b612024f5aee 8138 }
gertk 0:b612024f5aee 8139
gertk 0:b612024f5aee 8140
gertk 0:b612024f5aee 8141 static void XOR_IYl (Z80Context* ctx)
gertk 0:b612024f5aee 8142 {
gertk 0:b612024f5aee 8143 doXOR(ctx, BR.IYl);
gertk 0:b612024f5aee 8144 }
gertk 0:b612024f5aee 8145
gertk 0:b612024f5aee 8146
gertk 0:b612024f5aee 8147 static void XOR_L (Z80Context* ctx)
gertk 0:b612024f5aee 8148 {
gertk 0:b612024f5aee 8149 doXOR(ctx, BR.L);
gertk 0:b612024f5aee 8150 }
gertk 0:b612024f5aee 8151
gertk 0:b612024f5aee 8152
gertk 0:b612024f5aee 8153 static void XOR_n (Z80Context* ctx)
gertk 0:b612024f5aee 8154 {
gertk 0:b612024f5aee 8155 doXOR(ctx, read8(ctx, ctx->PC++));
gertk 0:b612024f5aee 8156 }