libz80 with compilation problems (uses up to much ram)

Committer:
gertk
Date:
Sat Mar 12 22:39:10 2011 +0000
Revision:
1:78a39c3a30f6

        

Who changed what in which revision?

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