diff options
-rw-r--r-- | Makefile | 2 | ||||
-rwxr-xr-x | gen.rb | 9 | ||||
-rw-r--r-- | ops.yaml | 524 | ||||
-rw-r--r-- | test.c | 8 |
4 files changed, 538 insertions, 5 deletions
@@ -1,5 +1,5 @@ OBJS=gb.o test.o lodepng.o -CFLAGS=-W -Wall -pedantic -Werror -Wextra -std=c11 -O3 +CFLAGS=-W -Wall -pedantic -Werror -Wextra -std=c11 -g APP=./test .PHONY=all clean test @@ -26,6 +26,13 @@ DATA['ops'].each do |set_id, ops| op['cat'], ] else + # pc_expr + pc_expr = if op['pc'] + 'cpu_ww(ctx, RW_PC, old_pc + %d);' % [op['len']] + else + '' + end + # time expr time_expr = case op['time'] when Numeric @@ -41,6 +48,7 @@ DATA['ops'].each do |set_id, ops| [ "case 0x%s: /* op: \"%s\", cat: \"%s\" */", " %s", # action_expr + " %s", # pc_expr " %s", # time_expr " break;" ].join("\n") % [ @@ -48,6 +56,7 @@ DATA['ops'].each do |set_id, ops| op['id'], op['cat'], op['code'] || 'not_implemented(ctx, old_pc, op);', + pc_expr, time_expr, ] end @@ -12,6 +12,7 @@ ops: cat: misc op: NOP len: 1 + pc: true time: 4 flags: z: @@ -27,6 +28,7 @@ ops: dst: BC src: d16 len: 3 + pc: true time: 12 flags: z: @@ -42,6 +44,7 @@ ops: dst: (BC) src: A len: 1 + pc: true time: 8 flags: z: @@ -56,6 +59,7 @@ ops: op: INC dst: BC len: 1 + pc: true time: 8 flags: z: @@ -70,6 +74,7 @@ ops: op: INC dst: B len: 1 + pc: true time: 4 flags: z: Z @@ -84,6 +89,7 @@ ops: op: DEC dst: B len: 1 + pc: true time: 4 flags: z: Z @@ -99,6 +105,7 @@ ops: dst: B src: d8 len: 2 + pc: true time: 8 flags: z: @@ -113,6 +120,7 @@ ops: op: RLC dst: A len: 1 + pc: true time: 4 flags: z: "0" @@ -128,6 +136,7 @@ ops: dst: (a16) src: SP len: 3 + pc: true time: 20 flags: z: @@ -143,6 +152,7 @@ ops: dst: HL src: BC len: 1 + pc: true time: 8 flags: z: @@ -158,6 +168,7 @@ ops: dst: A src: (BC) len: 1 + pc: true time: 8 flags: z: @@ -172,6 +183,7 @@ ops: op: DEC dst: BC len: 1 + pc: true time: 8 flags: z: @@ -186,6 +198,7 @@ ops: op: INC dst: C len: 1 + pc: true time: 4 flags: z: Z @@ -200,6 +213,7 @@ ops: op: DEC dst: C len: 1 + pc: true time: 4 flags: z: Z @@ -215,6 +229,7 @@ ops: dst: C src: d8 len: 2 + pc: true time: 8 flags: z: @@ -229,6 +244,7 @@ ops: op: RRC dst: A len: 1 + pc: true time: 4 flags: z: "0" @@ -242,6 +258,7 @@ ops: cat: misc op: STOP len: 2 + pc: false time: 4 flags: z: @@ -258,6 +275,7 @@ ops: dst: DE src: d16 len: 3 + pc: true time: 12 flags: z: @@ -273,6 +291,7 @@ ops: dst: (DE) src: A len: 1 + pc: true time: 8 flags: z: @@ -287,6 +306,7 @@ ops: op: INC dst: DE len: 1 + pc: true time: 8 flags: z: @@ -301,6 +321,7 @@ ops: op: INC dst: D len: 1 + pc: true time: 4 flags: z: Z @@ -315,6 +336,7 @@ ops: op: DEC dst: D len: 1 + pc: true time: 4 flags: z: Z @@ -330,6 +352,7 @@ ops: dst: D src: d8 len: 2 + pc: true time: 4 flags: z: @@ -344,6 +367,7 @@ ops: op: RL dst: A len: 1 + pc: true time: 4 flags: z: "0" @@ -359,6 +383,7 @@ ops: dst: PC src: r8 len: 2 + pc: false time: 12 flags: z: @@ -374,6 +399,7 @@ ops: dst: HL src: DE len: 1 + pc: true time: 8 flags: z: @@ -389,6 +415,7 @@ ops: dst: A src: (DE) len: 1 + pc: true time: 8 flags: z: @@ -403,6 +430,7 @@ ops: op: DEC dst: DE len: 1 + pc: true time: 8 flags: z: @@ -417,6 +445,7 @@ ops: op: INC dst: E len: 1 + pc: true time: 4 flags: z: "Z" @@ -431,6 +460,7 @@ ops: op: DEC dst: E len: 1 + pc: true time: 4 flags: z: "Z" @@ -446,6 +476,7 @@ ops: dst: E src: d8 len: 2 + pc: true time: 8 flags: z: @@ -460,6 +491,7 @@ ops: op: RR dst: A len: 1 + pc: true time: 4 flags: z: "0" @@ -476,6 +508,7 @@ ops: dst: PC src: F len: 2 + pc: false time: t: 12 f: 8 @@ -488,6 +521,8 @@ ops: if (!FLAG(ctx, Z)) { jr(ctx, old_pc + 1); clock = 12; + } else { + cpu_ww(ctx, RW_PC, old_pc + 2); } - id: LD HL, d16 hex: 0x21 @@ -496,6 +531,7 @@ ops: dst: HL src: d16 len: 3 + pc: true time: 12 flags: z: @@ -511,6 +547,7 @@ ops: dst: (HL+) src: A len: 1 + pc: true time: 8 flags: z: @@ -525,6 +562,7 @@ ops: op: INC dst: HL len: 1 + pc: true time: 8 flags: z: @@ -539,6 +577,7 @@ ops: op: INC dst: H len: 1 + pc: true time: 4 flags: z: Z @@ -553,6 +592,7 @@ ops: op: DEC dst: H len: 1 + pc: true time: 4 flags: z: Z @@ -568,6 +608,7 @@ ops: dst: H src: d8 len: 2 + pc: true time: 8 flags: z: @@ -582,6 +623,7 @@ ops: op: DAA dst: A len: 1 + pc: true time: 4 flags: z: Z @@ -595,6 +637,7 @@ ops: test: Z dst: PC len: 2 + pc: false time: t: 12 f: 8 @@ -604,6 +647,7 @@ ops: h: "0" c: C code: | + cpu_ww(ctx, RW_PC, old_pc + 2); if (FLAG(ctx, Z)) { jr(ctx, old_pc + 1); clock = 12; @@ -615,6 +659,7 @@ ops: dst: HL src: HL len: 1 + pc: true time: 8 flags: z: @@ -630,6 +675,7 @@ ops: dst: A src: (HL+) len: 1 + pc: true time: 8 flags: z: @@ -648,6 +694,7 @@ ops: op: DEC dst: HL len: 1 + pc: true time: 8 flags: z: @@ -662,6 +709,7 @@ ops: op: INC dst: L len: 1 + pc: true time: 4 flags: z: Z @@ -676,6 +724,7 @@ ops: op: DEC dst: L len: 1 + pc: true time: 4 flags: z: Z @@ -691,6 +740,7 @@ ops: dst: L src: d8 len: 2 + pc: true time: 8 flags: z: @@ -705,6 +755,7 @@ ops: op: CPL src: d8 len: 1 + pc: true time: 4 flags: z: @@ -718,6 +769,7 @@ ops: test: NC dst: PC len: 2 + pc: false time: t: 12 f: 8 @@ -727,6 +779,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 2); if (!FLAG(ctx, C)) { jr(ctx, old_pc + 1); clock = 12; @@ -738,6 +791,7 @@ ops: dst: SP src: d16 len: 3 + pc: true time: 12 flags: z: @@ -753,6 +807,7 @@ ops: dst: (HL-) src: A len: 1 + pc: true time: 8 flags: z: @@ -768,6 +823,7 @@ ops: op: INC dst: SP len: 1 + pc: true time: 8 flags: z: @@ -782,6 +838,7 @@ ops: op: INC dst: (HL) len: 1 + pc: true time: 12 flags: z: Z @@ -796,6 +853,7 @@ ops: op: DEC dst: (HL) len: 1 + pc: true time: 12 flags: z: Z @@ -811,6 +869,7 @@ ops: dst: (HL) src: d8 len: 2 + pc: true time: 12 flags: z: @@ -826,6 +885,7 @@ ops: dst: F src: d8 len: 1 + pc: true time: 4 flags: z: @@ -841,6 +901,7 @@ ops: test: C dst: PC len: 2 + pc: false time: t: 12 f: 8 @@ -850,6 +911,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 2); if (FLAG(ctx, C)) { jr(ctx, old_pc + 1); clock = 12; @@ -861,6 +923,7 @@ ops: dst: HL src: SP len: 1 + pc: true time: 8 flags: z: @@ -876,6 +939,7 @@ ops: dst: A src: (HL-) len: 1 + pc: true time: 8 flags: z: @@ -891,6 +955,7 @@ ops: op: DEC dst: SP len: 1 + pc: true time: 8 flags: z: @@ -905,6 +970,7 @@ ops: op: INC dst: A len: 1 + pc: true time: 4 flags: z: Z @@ -919,6 +985,7 @@ ops: op: DEC dst: A len: 1 + pc: true time: 4 flags: z: Z @@ -934,6 +1001,7 @@ ops: dst: A src: d8 len: 2 + pc: true time: 8 flags: z: @@ -948,6 +1016,7 @@ ops: op: CCF dst: F len: 1 + pc: true time: 4 flags: z: @@ -963,6 +1032,7 @@ ops: dst: B src: B len: 1 + pc: true time: 4 flags: z: @@ -978,6 +1048,7 @@ ops: dst: B src: C len: 1 + pc: true time: 4 flags: z: @@ -993,6 +1064,7 @@ ops: dst: B src: D len: 1 + pc: true time: 4 flags: z: @@ -1008,6 +1080,7 @@ ops: dst: B src: E len: 1 + pc: true time: 4 flags: z: @@ -1023,6 +1096,7 @@ ops: dst: B src: H len: 1 + pc: true time: 4 flags: z: @@ -1038,6 +1112,7 @@ ops: dst: B src: L len: 1 + pc: true time: 4 flags: z: @@ -1053,6 +1128,7 @@ ops: dst: B src: (HL) len: 1 + pc: true time: 8 flags: z: @@ -1068,6 +1144,7 @@ ops: dst: B src: A len: 1 + pc: true time: 4 flags: z: @@ -1083,6 +1160,7 @@ ops: dst: C src: B len: 1 + pc: true time: 4 flags: z: @@ -1098,6 +1176,7 @@ ops: dst: C src: C len: 1 + pc: true time: 4 flags: z: @@ -1113,6 +1192,7 @@ ops: dst: C src: D len: 1 + pc: true time: 4 flags: z: @@ -1128,6 +1208,7 @@ ops: dst: C src: E len: 1 + pc: true time: 4 flags: z: @@ -1143,6 +1224,7 @@ ops: dst: C src: H len: 1 + pc: true time: 4 flags: z: @@ -1158,6 +1240,7 @@ ops: dst: C src: L len: 1 + pc: true time: 4 flags: z: @@ -1173,6 +1256,7 @@ ops: dst: C src: (HL) len: 1 + pc: true time: 8 flags: z: @@ -1188,6 +1272,7 @@ ops: dst: C src: A len: 1 + pc: true time: 4 flags: z: @@ -1203,6 +1288,7 @@ ops: dst: D src: B len: 1 + pc: true time: 4 flags: z: @@ -1218,6 +1304,7 @@ ops: dst: D src: C len: 1 + pc: true time: 4 flags: z: @@ -1233,6 +1320,7 @@ ops: dst: D src: D len: 1 + pc: true time: 4 flags: z: @@ -1248,6 +1336,7 @@ ops: dst: D src: E len: 1 + pc: true time: 4 flags: z: @@ -1263,6 +1352,7 @@ ops: dst: D src: H len: 1 + pc: true time: 4 flags: z: @@ -1278,6 +1368,7 @@ ops: dst: D src: L len: 1 + pc: true time: 4 flags: z: @@ -1293,6 +1384,7 @@ ops: dst: D src: (HL) len: 1 + pc: true time: 8 flags: z: @@ -1308,6 +1400,7 @@ ops: dst: D src: A len: 1 + pc: true time: 4 flags: z: @@ -1323,6 +1416,7 @@ ops: dst: E src: B len: 1 + pc: true time: 4 flags: z: @@ -1338,6 +1432,7 @@ ops: dst: E src: C len: 1 + pc: true time: 4 flags: z: @@ -1353,6 +1448,7 @@ ops: dst: E src: D len: 1 + pc: true time: 4 flags: z: @@ -1368,6 +1464,7 @@ ops: dst: E src: E len: 1 + pc: true time: 4 flags: z: @@ -1383,6 +1480,7 @@ ops: dst: E src: H len: 1 + pc: true time: 4 flags: z: @@ -1398,6 +1496,7 @@ ops: dst: E src: L len: 1 + pc: true time: 4 flags: z: @@ -1413,6 +1512,7 @@ ops: dst: E src: (HL) len: 1 + pc: true time: 8 flags: z: @@ -1428,6 +1528,7 @@ ops: dst: E src: A len: 1 + pc: true time: 4 flags: z: @@ -1443,6 +1544,7 @@ ops: dst: H src: B len: 1 + pc: true time: 4 flags: z: @@ -1458,6 +1560,7 @@ ops: dst: H src: C len: 1 + pc: true time: 4 flags: z: @@ -1473,6 +1576,7 @@ ops: dst: H src: D len: 1 + pc: true time: 4 flags: z: @@ -1488,6 +1592,7 @@ ops: dst: H src: E len: 1 + pc: true time: 4 flags: z: @@ -1503,6 +1608,7 @@ ops: dst: H src: H len: 1 + pc: true time: 4 flags: z: @@ -1518,6 +1624,7 @@ ops: dst: H src: L len: 1 + pc: true time: 4 flags: z: @@ -1533,6 +1640,7 @@ ops: dst: H src: (HL) len: 1 + pc: true time: 8 flags: z: @@ -1548,6 +1656,7 @@ ops: dst: H src: A len: 1 + pc: true time: 4 flags: z: @@ -1563,6 +1672,7 @@ ops: dst: L src: B len: 1 + pc: true time: 4 flags: z: @@ -1578,6 +1688,7 @@ ops: dst: L src: C len: 1 + pc: true time: 4 flags: z: @@ -1593,6 +1704,7 @@ ops: dst: L src: D len: 1 + pc: true time: 4 flags: z: @@ -1608,6 +1720,7 @@ ops: dst: L src: E len: 1 + pc: true time: 4 flags: z: @@ -1623,6 +1736,7 @@ ops: dst: L src: H len: 1 + pc: true time: 4 flags: z: @@ -1638,6 +1752,7 @@ ops: dst: L src: L len: 1 + pc: true time: 4 flags: z: @@ -1653,6 +1768,7 @@ ops: dst: L src: (HL) len: 1 + pc: true time: 8 flags: z: @@ -1668,6 +1784,7 @@ ops: dst: L src: A len: 1 + pc: true time: 4 flags: z: @@ -1683,6 +1800,7 @@ ops: dst: (HL) src: B len: 1 + pc: true time: 8 flags: z: @@ -1698,6 +1816,7 @@ ops: dst: (HL) src: C len: 1 + pc: true time: 8 flags: z: @@ -1713,6 +1832,7 @@ ops: dst: (HL) src: D len: 1 + pc: true time: 8 flags: z: @@ -1728,6 +1848,7 @@ ops: dst: (HL) src: E len: 1 + pc: true time: 8 flags: z: @@ -1743,6 +1864,7 @@ ops: dst: (HL) src: H len: 1 + pc: true time: 8 flags: z: @@ -1758,6 +1880,7 @@ ops: dst: (HL) src: L len: 1 + pc: true time: 8 flags: z: @@ -1771,6 +1894,7 @@ ops: cat: misc op: HALT len: 1 + pc: false time: 4 flags: z: @@ -1786,6 +1910,7 @@ ops: dst: (HL) src: A len: 1 + pc: true time: 8 flags: z: @@ -1801,6 +1926,7 @@ ops: dst: A src: B len: 1 + pc: true time: 4 flags: z: @@ -1816,6 +1942,7 @@ ops: dst: A src: C len: 1 + pc: true time: 4 flags: z: @@ -1831,6 +1958,7 @@ ops: dst: A src: D len: 1 + pc: true time: 4 flags: z: @@ -1846,6 +1974,7 @@ ops: dst: A src: E len: 1 + pc: true time: 4 flags: z: @@ -1861,6 +1990,7 @@ ops: dst: A src: H len: 1 + pc: true time: 4 flags: z: @@ -1876,6 +2006,7 @@ ops: dst: A src: L len: 1 + pc: true time: 4 flags: z: @@ -1891,6 +2022,7 @@ ops: dst: A src: L len: 1 + pc: true time: 8 flags: z: @@ -1906,6 +2038,7 @@ ops: dst: A src: A len: 1 + pc: true time: 4 flags: z: @@ -1921,6 +2054,7 @@ ops: dst: A src: B len: 1 + pc: true time: 4 flags: z: Z @@ -1936,6 +2070,7 @@ ops: dst: A src: C len: 1 + pc: true time: 4 flags: z: Z @@ -1951,6 +2086,7 @@ ops: dst: A src: D len: 1 + pc: true time: 4 flags: z: Z @@ -1966,6 +2102,7 @@ ops: dst: A src: E len: 1 + pc: true time: 4 flags: z: Z @@ -1981,6 +2118,7 @@ ops: dst: A src: H len: 1 + pc: true time: 4 flags: z: Z @@ -1996,6 +2134,7 @@ ops: dst: A src: L len: 1 + pc: true time: 4 flags: z: Z @@ -2011,6 +2150,7 @@ ops: dst: A src: (HL) len: 1 + pc: true time: 8 flags: z: Z @@ -2026,6 +2166,7 @@ ops: dst: A src: A len: 1 + pc: true time: 4 flags: z: Z @@ -2041,6 +2182,7 @@ ops: dst: A src: B len: 1 + pc: true time: 4 flags: z: Z @@ -2056,6 +2198,7 @@ ops: dst: A src: C len: 1 + pc: true time: 4 flags: z: Z @@ -2071,6 +2214,7 @@ ops: dst: A src: D len: 1 + pc: true time: 4 flags: z: Z @@ -2086,6 +2230,7 @@ ops: dst: A src: E len: 1 + pc: true time: 4 flags: z: Z @@ -2101,6 +2246,7 @@ ops: dst: A src: H len: 1 + pc: true time: 4 flags: z: Z @@ -2116,6 +2262,7 @@ ops: dst: A src: L len: 1 + pc: true time: 4 flags: z: Z @@ -2131,6 +2278,7 @@ ops: dst: A src: (HL) len: 1 + pc: true time: 8 flags: z: Z @@ -2146,6 +2294,7 @@ ops: dst: A src: A len: 1 + pc: true time: 4 flags: z: Z @@ -2161,6 +2310,7 @@ ops: dst: A src: B len: 1 + pc: true time: 4 flags: z: Z @@ -2176,6 +2326,7 @@ ops: dst: A src: C len: 1 + pc: true time: 4 flags: z: Z @@ -2191,6 +2342,7 @@ ops: dst: A src: D len: 1 + pc: true time: 4 flags: z: Z @@ -2206,6 +2358,7 @@ ops: dst: A src: E len: 1 + pc: true time: 4 flags: z: Z @@ -2221,6 +2374,7 @@ ops: dst: A src: H len: 1 + pc: true time: 4 flags: z: Z @@ -2236,6 +2390,7 @@ ops: dst: A src: L len: 1 + pc: true time: 4 flags: z: Z @@ -2251,6 +2406,7 @@ ops: dst: A src: (HL) len: 1 + pc: true time: 8 flags: z: Z @@ -2266,6 +2422,7 @@ ops: dst: A src: A len: 1 + pc: true time: 4 flags: z: Z @@ -2281,6 +2438,7 @@ ops: dst: A src: B len: 1 + pc: true time: 4 flags: z: Z @@ -2294,6 +2452,7 @@ ops: dst: A src: C len: 1 + pc: true time: 4 flags: z: Z @@ -2309,6 +2468,7 @@ ops: dst: A src: D len: 1 + pc: true time: 4 flags: z: Z @@ -2324,6 +2484,7 @@ ops: dst: A src: E len: 1 + pc: true time: 4 flags: z: Z @@ -2339,6 +2500,7 @@ ops: dst: A src: H len: 1 + pc: true time: 4 flags: z: Z @@ -2354,6 +2516,7 @@ ops: dst: A src: L len: 1 + pc: true time: 4 flags: z: Z @@ -2369,6 +2532,7 @@ ops: dst: A src: (HL) len: 1 + pc: true time: 8 flags: z: Z @@ -2384,6 +2548,7 @@ ops: dst: A src: A len: 1 + pc: true time: 4 flags: z: Z @@ -2398,6 +2563,7 @@ ops: op: AND src: B len: 1 + pc: true time: 4 flags: z: Z @@ -2412,6 +2578,7 @@ ops: op: AND src: C len: 1 + pc: true time: 4 flags: z: Z @@ -2426,6 +2593,7 @@ ops: op: AND src: D len: 1 + pc: true time: 4 flags: z: Z @@ -2440,6 +2608,7 @@ ops: op: AND src: E len: 1 + pc: true time: 4 flags: z: Z @@ -2454,6 +2623,7 @@ ops: op: AND src: H len: 1 + pc: true time: 4 flags: z: Z @@ -2468,6 +2638,7 @@ ops: op: AND src: L len: 1 + pc: true time: 4 flags: z: Z @@ -2482,6 +2653,7 @@ ops: op: AND src: (HL) len: 1 + pc: true time: 8 flags: z: Z @@ -2496,6 +2668,7 @@ ops: op: AND src: A len: 1 + pc: true time: 4 flags: z: Z @@ -2510,6 +2683,7 @@ ops: op: XOR src: B len: 1 + pc: true time: 4 flags: z: Z @@ -2524,6 +2698,7 @@ ops: op: XOR src: C len: 1 + pc: true time: 4 flags: z: Z @@ -2538,6 +2713,7 @@ ops: op: XOR src: D len: 1 + pc: true time: 4 flags: z: Z @@ -2552,6 +2728,7 @@ ops: op: XOR src: E len: 1 + pc: true time: 4 flags: z: Z @@ -2566,6 +2743,7 @@ ops: op: XOR src: H len: 1 + pc: true time: 4 flags: z: Z @@ -2580,6 +2758,7 @@ ops: op: XOR src: L len: 1 + pc: true time: 4 flags: z: Z @@ -2594,6 +2773,7 @@ ops: op: XOR src: (HL) len: 1 + pc: true time: 8 flags: z: Z @@ -2608,6 +2788,7 @@ ops: op: XOR src: A len: 1 + pc: true time: 4 flags: z: Z @@ -2622,6 +2803,7 @@ ops: op: OR src: B len: 1 + pc: true time: 4 flags: z: Z @@ -2636,6 +2818,7 @@ ops: op: OR src: C len: 1 + pc: true time: 4 flags: z: Z @@ -2650,6 +2833,7 @@ ops: op: OR src: D len: 1 + pc: true time: 4 flags: z: Z @@ -2664,6 +2848,7 @@ ops: op: OR src: E len: 1 + pc: true time: 4 flags: z: Z @@ -2678,6 +2863,7 @@ ops: op: OR src: H len: 1 + pc: true time: 4 flags: z: Z @@ -2692,6 +2878,7 @@ ops: op: OR src: L len: 1 + pc: true time: 4 flags: z: Z @@ -2706,6 +2893,7 @@ ops: op: OR src: (HL) len: 1 + pc: true time: 8 flags: z: Z @@ -2720,6 +2908,7 @@ ops: op: OR src: A len: 1 + pc: true time: 4 flags: z: Z @@ -2735,6 +2924,7 @@ ops: dst: A src: B len: 1 + pc: true time: 4 flags: z: Z @@ -2750,6 +2940,7 @@ ops: dst: A src: C len: 1 + pc: true time: 4 flags: z: Z @@ -2765,6 +2956,7 @@ ops: dst: A src: D len: 1 + pc: true time: 4 flags: z: Z @@ -2780,6 +2972,7 @@ ops: dst: A src: E len: 1 + pc: true time: 4 flags: z: Z @@ -2795,6 +2988,7 @@ ops: dst: A src: H len: 1 + pc: true time: 4 flags: z: Z @@ -2810,6 +3004,7 @@ ops: dst: A src: L len: 1 + pc: true time: 4 flags: z: Z @@ -2825,6 +3020,7 @@ ops: dst: A src: (HL) len: 1 + pc: true time: 8 flags: z: Z @@ -2840,6 +3036,7 @@ ops: dst: A src: A len: 1 + pc: true time: 4 flags: z: Z @@ -2856,6 +3053,7 @@ ops: dst: PC src: SP len: 1 + pc: false time: t: 20 f: 8 @@ -2876,6 +3074,7 @@ ops: dst: BC src: SP len: 1 + pc: true time: 12 flags: z: @@ -2892,6 +3091,7 @@ ops: dst: PC src: a16 len: 3 + pc: false time: t: 16 f: 32 @@ -2901,6 +3101,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 3); if (!FLAG(ctx, Z)) { cpu_ww(ctx, RW_PC, mmu_rw(ctx, old_pc + 1)); clock = 16; @@ -2912,6 +3113,7 @@ ops: dst: PC src: a16 len: 3 + pc: false time: 16 flags: z: @@ -2929,6 +3131,7 @@ ops: dst: PC src: a16 len: 3 + pc: false time: t: 24 f: 12 @@ -2938,6 +3141,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 3); if (!FLAG(ctx, Z)) { call_a16(ctx, old_pc + 1); clock = 24; @@ -2949,6 +3153,7 @@ ops: dst: SP src: BC len: 1 + pc: true time: 16 flags: z: @@ -2964,6 +3169,7 @@ ops: dst: A src: d8 len: 2 + pc: true time: 8 flags: z: Z @@ -2979,6 +3185,7 @@ ops: dst: PC addr: "0x00" len: 1 + pc: false time: 16 flags: z: @@ -2986,6 +3193,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, cpu_rw(ctx, RW_PC) + 1); rst(ctx, 0x00); - id: RET Z hex: 0xC8 @@ -2995,6 +3203,7 @@ ops: dst: PC src: SP len: 1 + pc: false time: t: 20 f: 8 @@ -3004,6 +3213,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 1); if (FLAG(ctx, Z)) { pop_rw(ctx, RW_PC); clock += 20; @@ -3015,6 +3225,7 @@ ops: dst: PC src: SP len: 1 + pc: false time: 16 flags: z: @@ -3032,6 +3243,7 @@ ops: dst: PC src: a16 len: 3 + pc: false time: t: 16 f: 12 @@ -3041,6 +3253,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 3); if (FLAG(ctx, Z)) { cpu_ww(ctx, RW_PC, mmu_rw(ctx, old_pc + 1)); clock = 16; @@ -3050,6 +3263,7 @@ ops: cat: misc op: PREFIX len: 1 + pc: false time: 4 flags: z: @@ -3062,6 +3276,7 @@ ops: op: CALL test: Z len: 3 + pc: false time: t: 24 f: 12 @@ -3071,6 +3286,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 3); if (FLAG(ctx, Z)) { call_a16(ctx, old_pc + 1); clock = 24; @@ -3080,6 +3296,7 @@ ops: cat: "jumps/calls" op: CALL len: 3 + pc: false time: 24 flags: z: @@ -3095,6 +3312,7 @@ ops: dst: A src: d8 len: 2 + pc: true time: 8 flags: z: Z @@ -3106,6 +3324,7 @@ ops: cat: "jumps/calls" op: RST len: 1 + pc: false addr: "0x08" time: 16 flags: @@ -3114,6 +3333,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, cpu_rw(ctx, RW_PC) + 1); rst(ctx, 0x08); - id: RET NC hex: 0xD0 @@ -3123,10 +3343,12 @@ ops: dst: PC src: SP len: 1 + pc: false time: t: 20 f: 8 code: | + cpu_ww(ctx, RW_PC, old_pc + 1); if (!FLAG(ctx, C)) { pop_rw(ctx, RW_PC); clock = 20; @@ -3143,6 +3365,7 @@ ops: dst: DE src: SP len: 1 + pc: true time: 12 flags: z: @@ -3160,6 +3383,7 @@ ops: dst: PC src: a16 len: 3 + pc: false time: t: 16 f: 32 @@ -3169,6 +3393,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 3); if (!FLAG(ctx, C)) { cpu_ww(ctx, RW_PC, mmu_rw(ctx, old_pc + 1)); clock = 16; @@ -3187,6 +3412,7 @@ ops: dst: PC src: a16 len: 3 + pc: false time: t: 24 f: 12 @@ -3207,6 +3433,7 @@ ops: dst: SP src: DE len: 1 + pc: true time: 16 flags: z: @@ -3222,6 +3449,7 @@ ops: dst: A src: d8 len: 2 + pc: true time: 8 flags: z: Z @@ -3237,6 +3465,7 @@ ops: dst: PC addr: "0x10" len: 1 + pc: false time: 16 flags: z: Z @@ -3244,6 +3473,7 @@ ops: h: H c: C code: | + cpu_ww(ctx, RW_PC, cpu_rw(ctx, RW_PC) + 1); rst(ctx, 0x10); - id: RET C hex: 0xD8 @@ -3252,6 +3482,7 @@ ops: test: C dst: PC len: 1 + pc: false time: t: 20 f: 8 @@ -3261,6 +3492,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 1); if (FLAG(ctx, C)) { pop_rw(ctx, RW_PC); clock += 20; @@ -3272,6 +3504,7 @@ ops: dst: PC src: SP len: 1 + pc: false time: 16 flags: z: @@ -3290,6 +3523,7 @@ ops: dst: PC src: a16 len: 3 + pc: false time: t: 16 f: 32 @@ -3299,6 +3533,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 3); if (FLAG(ctx, C)) { cpu_ww(ctx, RW_PC, mmu_rw(ctx, old_pc + 1)); clock = 16; @@ -3317,6 +3552,7 @@ ops: dst: PC src: a16 len: 3 + pc: false time: t: 24 f: 12 @@ -3326,6 +3562,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, old_pc + 3); if (FLAG(ctx, C)) { call_a16(ctx, old_pc + 1); clock = 24; @@ -3341,6 +3578,7 @@ ops: dst: A src: d8 len: 2 + pc: true time: 8 flags: z: Z @@ -3356,6 +3594,7 @@ ops: dst: PC addr: "0x18" len: 1 + pc: false time: 16 flags: z: @@ -3363,6 +3602,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, cpu_rw(ctx, RW_PC) + 1); rst(ctx, 0x18); - id: LDH (a8), A hex: 0xE0 @@ -3371,6 +3611,7 @@ ops: dst: (a8) src: A len: 2 + pc: true time: 12 flags: z: @@ -3386,6 +3627,7 @@ ops: dst: HL src: SP len: 1 + pc: true time: 12 flags: z: @@ -3401,6 +3643,7 @@ ops: dst: (C) src: A len: 1 + pc: true time: 8 flags: z: @@ -3426,6 +3669,7 @@ ops: dst: SP src: HL len: 1 + pc: true time: 16 flags: z: @@ -3440,6 +3684,7 @@ ops: op: AND src: d8 len: 2 + pc: true time: 8 flags: z: Z @@ -3453,6 +3698,7 @@ ops: dst: PC addr: "0x20" len: 1 + pc: false time: 16 flags: z: @@ -3460,6 +3706,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, cpu_rw(ctx, RW_PC) + 1); rst(ctx, 0x20); - id: ADD SP, r8 hex: 0xE8 @@ -3468,6 +3715,7 @@ ops: dst: SP src: r8 len: 2 + pc: true time: 16 flags: z: "0" @@ -3481,6 +3729,7 @@ ops: dst: PC src: (HL) len: 1 + pc: false time: 4 flags: z: @@ -3496,6 +3745,7 @@ ops: dst: (a16) src: A len: 3 + pc: true time: 16 flags: z: @@ -3526,6 +3776,7 @@ ops: op: XOR src: d8 len: 2 + pc: true time: 8 flags: z: Z @@ -3537,6 +3788,7 @@ ops: cat: "jumps/calls" op: RST len: 1 + pc: false addr: "0x28" time: 16 flags: @@ -3545,6 +3797,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, cpu_rw(ctx, RW_PC) + 1); rst(ctx, 0x28); - id: LDH A, (a8) hex: 0xF0 @@ -3553,6 +3806,7 @@ ops: dst: A src: (a8) len: 2 + pc: true time: 12 flags: z: @@ -3568,6 +3822,7 @@ ops: dst: AF src: SP len: 1 + pc: true time: 12 flags: z: Z @@ -3583,6 +3838,7 @@ ops: dst: A src: (C) len: 1 + pc: true time: 8 flags: z: @@ -3596,6 +3852,7 @@ ops: cat: "misc" op: DI len: 1 + pc: true time: 4 flags: z: @@ -3618,6 +3875,7 @@ ops: dst: SP src: AF len: 1 + pc: true time: 16 flags: z: @@ -3632,6 +3890,7 @@ ops: op: OR src: d8 len: 2 + pc: true time: 8 flags: z: Z @@ -3646,6 +3905,7 @@ ops: op: RST addr: "0x30" len: 1 + pc: false time: 16 flags: z: @@ -3653,6 +3913,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, cpu_rw(ctx, RW_PC) + 1); rst(ctx, 0x30); - id: LD HL, SP+r8 hex: 0xF8 @@ -3661,6 +3922,7 @@ ops: dst: HL src: SP+r8 len: 2 + pc: true time: 12 flags: z: "0" @@ -3674,6 +3936,7 @@ ops: dst: SP src: HL len: 1 + pc: true time: 8 flags: z: @@ -3689,6 +3952,7 @@ ops: dst: A src: (a16) len: 3 + pc: true time: 16 flags: z: @@ -3700,6 +3964,7 @@ ops: cat: "misc" op: EI len: 1 + pc: true time: 4 flags: z: @@ -3728,6 +3993,7 @@ ops: dst: A src: d8 len: 2 + pc: true time: 8 flags: z: Z @@ -3743,6 +4009,7 @@ ops: dst: PC addr: "0x38" len: 1 + pc: false time: 16 flags: z: @@ -3750,6 +4017,7 @@ ops: h: c: code: | + cpu_ww(ctx, RW_PC, cpu_rw(ctx, RW_PC) + 1); rst(ctx, 0x38); cb: @@ -3759,6 +4027,7 @@ ops: op: RLC dst: B len: 2 + pc: true time: 8 flags: z: Z @@ -3773,6 +4042,7 @@ ops: op: RLC dst: C len: 2 + pc: true time: 8 flags: z: Z @@ -3787,6 +4057,7 @@ ops: op: RLC dst: D len: 2 + pc: true time: 8 flags: z: Z @@ -3801,6 +4072,7 @@ ops: op: RLC dst: E len: 2 + pc: true time: 8 flags: z: Z @@ -3815,6 +4087,7 @@ ops: op: RLC dst: H len: 2 + pc: true time: 8 flags: z: Z @@ -3829,6 +4102,7 @@ ops: op: RLC dst: L len: 2 + pc: true time: 8 flags: z: Z @@ -3843,6 +4117,7 @@ ops: op: RLC dst: (HL) len: 2 + pc: true time: 16 flags: z: Z @@ -3857,6 +4132,7 @@ ops: op: RLC dst: A len: 2 + pc: true time: 8 flags: z: Z @@ -3871,6 +4147,7 @@ ops: op: RRC dst: B len: 2 + pc: true time: 8 flags: z: Z @@ -3885,6 +4162,7 @@ ops: op: RRC dst: C len: 2 + pc: true time: 8 flags: z: Z @@ -3899,6 +4177,7 @@ ops: op: RRC dst: D len: 2 + pc: true time: 8 flags: z: Z @@ -3913,6 +4192,7 @@ ops: op: RRC dst: E len: 2 + pc: true time: 8 flags: z: Z @@ -3927,6 +4207,7 @@ ops: op: RRC dst: H len: 2 + pc: true time: 8 flags: z: Z @@ -3941,6 +4222,7 @@ ops: op: RRC dst: L len: 2 + pc: true time: 8 flags: z: Z @@ -3955,6 +4237,7 @@ ops: op: RRC dst: (HL) len: 2 + pc: true time: 16 flags: z: Z @@ -3967,6 +4250,7 @@ ops: op: RRC dst: A len: 2 + pc: true time: 8 flags: z: Z @@ -3981,6 +4265,7 @@ ops: op: RL dst: B len: 2 + pc: true time: 8 flags: z: Z @@ -3995,6 +4280,7 @@ ops: op: RL dst: C len: 2 + pc: true time: 8 flags: z: Z @@ -4009,6 +4295,7 @@ ops: op: RL dst: D len: 2 + pc: true time: 8 flags: z: Z @@ -4023,6 +4310,7 @@ ops: op: RL dst: E len: 2 + pc: true time: 8 flags: z: Z @@ -4037,6 +4325,7 @@ ops: op: RL dst: H len: 2 + pc: true time: 8 flags: z: Z @@ -4051,6 +4340,7 @@ ops: op: RL dst: L len: 2 + pc: true time: 8 flags: z: Z @@ -4065,6 +4355,7 @@ ops: op: RL dst: (HL) len: 2 + pc: true time: 16 flags: z: Z @@ -4077,6 +4368,7 @@ ops: op: RL dst: A len: 2 + pc: true time: 8 flags: z: Z @@ -4091,6 +4383,7 @@ ops: op: RR dst: B len: 2 + pc: true time: 8 flags: z: Z @@ -4105,6 +4398,7 @@ ops: op: RR dst: C len: 2 + pc: true time: 8 flags: z: Z @@ -4119,6 +4413,7 @@ ops: op: RR dst: D len: 2 + pc: true time: 8 flags: z: Z @@ -4133,6 +4428,7 @@ ops: op: RR dst: E len: 2 + pc: true time: 8 flags: z: Z @@ -4147,6 +4443,7 @@ ops: op: RR dst: H len: 2 + pc: true time: 8 flags: z: Z @@ -4161,6 +4458,7 @@ ops: op: RR dst: L len: 2 + pc: true time: 8 flags: z: Z @@ -4175,6 +4473,7 @@ ops: op: RR dst: (HL) len: 2 + pc: true time: 16 flags: z: Z @@ -4187,6 +4486,7 @@ ops: op: RR dst: A len: 2 + pc: true time: 8 flags: z: Z @@ -4201,6 +4501,7 @@ ops: op: SLA dst: B len: 2 + pc: true time: 8 flags: z: Z @@ -4215,6 +4516,7 @@ ops: op: SLA dst: C len: 2 + pc: true time: 8 flags: z: Z @@ -4229,6 +4531,7 @@ ops: op: SLA dst: D len: 2 + pc: true time: 8 flags: z: Z @@ -4243,6 +4546,7 @@ ops: op: SLA dst: E len: 2 + pc: true time: 8 flags: z: Z @@ -4257,6 +4561,7 @@ ops: op: SLA dst: H len: 2 + pc: true time: 8 flags: z: Z @@ -4271,6 +4576,7 @@ ops: op: SLA dst: L len: 2 + pc: true time: 8 flags: z: Z @@ -4285,6 +4591,7 @@ ops: op: SLA dst: (HL) len: 2 + pc: true time: 16 flags: z: Z @@ -4297,6 +4604,7 @@ ops: op: SLA dst: A len: 2 + pc: true time: 8 flags: z: Z @@ -4311,6 +4619,7 @@ ops: op: SRA dst: B len: 2 + pc: true time: 8 flags: z: Z @@ -4325,6 +4634,7 @@ ops: op: SRA dst: C len: 2 + pc: true time: 8 flags: z: Z @@ -4339,6 +4649,7 @@ ops: op: SRA dst: D len: 2 + pc: true time: 8 flags: z: Z @@ -4353,6 +4664,7 @@ ops: op: SRA dst: E len: 2 + pc: true time: 8 flags: z: Z @@ -4367,6 +4679,7 @@ ops: op: SRA dst: H len: 2 + pc: true time: 8 flags: z: Z @@ -4381,6 +4694,7 @@ ops: op: SRA dst: L len: 2 + pc: true time: 8 flags: z: Z @@ -4395,6 +4709,7 @@ ops: op: SRA dst: (HL) len: 2 + pc: true time: 16 flags: z: Z @@ -4407,6 +4722,7 @@ ops: op: SRA dst: A len: 2 + pc: true time: 8 flags: z: Z @@ -4421,6 +4737,7 @@ ops: op: SWAP dst: B len: 2 + pc: true time: 8 flags: z: Z @@ -4435,6 +4752,7 @@ ops: op: SWAP dst: C len: 2 + pc: true time: 8 flags: z: Z @@ -4449,6 +4767,7 @@ ops: op: SWAP dst: D len: 2 + pc: true time: 8 flags: z: Z @@ -4463,6 +4782,7 @@ ops: op: SWAP dst: E len: 2 + pc: true time: 8 flags: z: Z @@ -4477,6 +4797,7 @@ ops: op: SWAP dst: H len: 2 + pc: true time: 8 flags: z: Z @@ -4491,6 +4812,7 @@ ops: op: SWAP dst: L len: 2 + pc: true time: 8 flags: z: Z @@ -4505,6 +4827,7 @@ ops: op: SWAP dst: (HL) len: 2 + pc: true time: 16 flags: z: Z @@ -4517,6 +4840,7 @@ ops: op: SWAP dst: A len: 2 + pc: true time: 8 flags: z: Z @@ -4531,6 +4855,7 @@ ops: op: SRL dst: B len: 2 + pc: true time: 8 flags: z: Z @@ -4545,6 +4870,7 @@ ops: op: SRL dst: C len: 2 + pc: true time: 8 flags: z: Z @@ -4559,6 +4885,7 @@ ops: op: SRL dst: D len: 2 + pc: true time: 8 flags: z: Z @@ -4573,6 +4900,7 @@ ops: op: SRL dst: E len: 2 + pc: true time: 8 flags: z: Z @@ -4587,6 +4915,7 @@ ops: op: SRL dst: H len: 2 + pc: true time: 8 flags: z: Z @@ -4601,6 +4930,7 @@ ops: op: SRL dst: L len: 2 + pc: true time: 8 flags: z: Z @@ -4615,6 +4945,7 @@ ops: op: SRL dst: (HL) len: 2 + pc: true time: 16 flags: z: Z @@ -4627,6 +4958,7 @@ ops: op: SRL dst: A len: 2 + pc: true time: 8 flags: z: Z @@ -4642,6 +4974,7 @@ ops: src: B bit: 0 len: 2 + pc: true time: 8 flags: z: Z @@ -4657,6 +4990,7 @@ ops: src: C bit: 0 len: 2 + pc: true time: 8 flags: z: Z @@ -4672,6 +5006,7 @@ ops: src: D bit: 0 len: 2 + pc: true time: 8 flags: z: Z @@ -4687,6 +5022,7 @@ ops: src: E bit: 0 len: 2 + pc: true time: 8 flags: z: Z @@ -4702,6 +5038,7 @@ ops: src: H bit: 0 len: 2 + pc: true time: 8 flags: z: Z @@ -4717,6 +5054,7 @@ ops: src: L bit: 0 len: 2 + pc: true time: 8 flags: z: Z @@ -4732,6 +5070,7 @@ ops: src: (HL) bit: 0 len: 2 + pc: true time: 16 flags: z: Z @@ -4747,6 +5086,7 @@ ops: src: A bit: 0 len: 2 + pc: true time: 8 flags: z: Z @@ -4762,6 +5102,7 @@ ops: src: B bit: 1 len: 2 + pc: true time: 8 flags: z: Z @@ -4777,6 +5118,7 @@ ops: src: C bit: 1 len: 2 + pc: true time: 8 flags: z: Z @@ -4792,6 +5134,7 @@ ops: src: D bit: 1 len: 2 + pc: true time: 8 flags: z: Z @@ -4807,6 +5150,7 @@ ops: src: E bit: 1 len: 2 + pc: true time: 8 flags: z: Z @@ -4822,6 +5166,7 @@ ops: src: H bit: 1 len: 2 + pc: true time: 8 flags: z: Z @@ -4837,6 +5182,7 @@ ops: src: L bit: 1 len: 2 + pc: true time: 8 flags: z: Z @@ -4852,6 +5198,7 @@ ops: src: (HL) bit: 1 len: 2 + pc: true time: 16 flags: z: Z @@ -4867,6 +5214,7 @@ ops: src: A bit: 1 len: 2 + pc: true time: 8 flags: z: Z @@ -4882,6 +5230,7 @@ ops: src: B bit: 2 len: 2 + pc: true time: 8 flags: z: Z @@ -4897,6 +5246,7 @@ ops: src: C bit: 2 len: 2 + pc: true time: 8 flags: z: Z @@ -4912,6 +5262,7 @@ ops: src: D bit: 2 len: 2 + pc: true time: 8 flags: z: Z @@ -4927,6 +5278,7 @@ ops: src: E bit: 2 len: 2 + pc: true time: 8 flags: z: Z @@ -4942,6 +5294,7 @@ ops: src: H bit: 2 len: 2 + pc: true time: 8 flags: z: Z @@ -4957,6 +5310,7 @@ ops: src: L bit: 2 len: 2 + pc: true time: 8 flags: z: Z @@ -4972,6 +5326,7 @@ ops: src: (HL) bit: 2 len: 2 + pc: true time: 16 flags: z: Z @@ -4987,6 +5342,7 @@ ops: src: A bit: 2 len: 2 + pc: true time: 8 flags: z: Z @@ -5002,6 +5358,7 @@ ops: src: B bit: 3 len: 2 + pc: true time: 8 flags: z: Z @@ -5017,6 +5374,7 @@ ops: src: C bit: 3 len: 2 + pc: true time: 8 flags: z: Z @@ -5032,6 +5390,7 @@ ops: src: D bit: 3 len: 2 + pc: true time: 8 flags: z: Z @@ -5047,6 +5406,7 @@ ops: src: E bit: 3 len: 2 + pc: true time: 8 flags: z: Z @@ -5062,6 +5422,7 @@ ops: src: H bit: 3 len: 2 + pc: true time: 8 flags: z: Z @@ -5077,6 +5438,7 @@ ops: src: L bit: 3 len: 2 + pc: true time: 8 flags: z: Z @@ -5092,6 +5454,7 @@ ops: src: (HL) bit: 3 len: 2 + pc: true time: 16 flags: z: Z @@ -5107,6 +5470,7 @@ ops: src: A bit: 3 len: 2 + pc: true time: 8 flags: z: Z @@ -5122,6 +5486,7 @@ ops: src: B bit: 4 len: 2 + pc: true time: 8 flags: z: Z @@ -5137,6 +5502,7 @@ ops: src: C bit: 4 len: 2 + pc: true time: 8 flags: z: Z @@ -5152,6 +5518,7 @@ ops: src: D bit: 4 len: 2 + pc: true time: 8 flags: z: Z @@ -5167,6 +5534,7 @@ ops: src: E bit: 4 len: 2 + pc: true time: 8 flags: z: Z @@ -5182,6 +5550,7 @@ ops: src: H bit: 4 len: 2 + pc: true time: 8 flags: z: Z @@ -5197,6 +5566,7 @@ ops: src: L bit: 4 len: 2 + pc: true time: 8 flags: z: Z @@ -5212,6 +5582,7 @@ ops: src: (HL) bit: 4 len: 2 + pc: true time: 16 flags: z: Z @@ -5227,6 +5598,7 @@ ops: src: A bit: 4 len: 2 + pc: true time: 8 flags: z: Z @@ -5242,6 +5614,7 @@ ops: src: B bit: 5 len: 2 + pc: true time: 8 flags: z: Z @@ -5257,6 +5630,7 @@ ops: src: C bit: 5 len: 2 + pc: true time: 8 flags: z: Z @@ -5272,6 +5646,7 @@ ops: src: D bit: 5 len: 2 + pc: true time: 8 flags: z: Z @@ -5287,6 +5662,7 @@ ops: src: E bit: 5 len: 2 + pc: true time: 8 flags: z: Z @@ -5302,6 +5678,7 @@ ops: src: H bit: 5 len: 2 + pc: true time: 8 flags: z: Z @@ -5317,6 +5694,7 @@ ops: src: L bit: 5 len: 2 + pc: true time: 8 flags: z: Z @@ -5332,6 +5710,7 @@ ops: src: (HL) bit: 5 len: 2 + pc: true time: 16 flags: z: Z @@ -5347,6 +5726,7 @@ ops: src: A bit: 5 len: 2 + pc: true time: 8 flags: z: Z @@ -5362,6 +5742,7 @@ ops: src: B bit: 6 len: 2 + pc: true time: 8 flags: z: Z @@ -5377,6 +5758,7 @@ ops: src: C bit: 6 len: 2 + pc: true time: 8 flags: z: Z @@ -5392,6 +5774,7 @@ ops: src: D bit: 6 len: 2 + pc: true time: 8 flags: z: Z @@ -5407,6 +5790,7 @@ ops: src: E bit: 6 len: 2 + pc: true time: 8 flags: z: Z @@ -5422,6 +5806,7 @@ ops: src: H bit: 6 len: 2 + pc: true time: 8 flags: z: Z @@ -5437,6 +5822,7 @@ ops: src: L bit: 6 len: 2 + pc: true time: 8 flags: z: Z @@ -5452,6 +5838,7 @@ ops: src: (HL) bit: 6 len: 2 + pc: true time: 16 flags: z: Z @@ -5467,6 +5854,7 @@ ops: src: A bit: 6 len: 2 + pc: true time: 8 flags: z: Z @@ -5482,6 +5870,7 @@ ops: src: B bit: 7 len: 2 + pc: true time: 8 flags: z: Z @@ -5497,6 +5886,7 @@ ops: src: C bit: 7 len: 2 + pc: true time: 8 flags: z: Z @@ -5512,6 +5902,7 @@ ops: src: D bit: 7 len: 2 + pc: true time: 8 flags: z: Z @@ -5527,6 +5918,7 @@ ops: src: E bit: 7 len: 2 + pc: true time: 8 flags: z: Z @@ -5542,6 +5934,7 @@ ops: src: H bit: 7 len: 2 + pc: true time: 8 flags: z: Z @@ -5557,6 +5950,7 @@ ops: src: L bit: 7 len: 2 + pc: true time: 8 flags: z: Z @@ -5572,6 +5966,7 @@ ops: src: (HL) bit: 7 len: 2 + pc: true time: 16 flags: z: Z @@ -5587,6 +5982,7 @@ ops: src: A bit: 7 len: 2 + pc: true time: 8 flags: z: Z @@ -5602,6 +5998,7 @@ ops: src: B bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -5617,6 +6014,7 @@ ops: src: C bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -5632,6 +6030,7 @@ ops: src: D bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -5647,6 +6046,7 @@ ops: src: E bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -5662,6 +6062,7 @@ ops: src: H bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -5677,6 +6078,7 @@ ops: src: L bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -5692,6 +6094,7 @@ ops: src: (HL) bit: 0 len: 2 + pc: true time: 16 flags: z: @@ -5707,6 +6110,7 @@ ops: src: A bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -5722,6 +6126,7 @@ ops: src: B bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -5737,6 +6142,7 @@ ops: src: C bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -5752,6 +6158,7 @@ ops: src: D bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -5767,6 +6174,7 @@ ops: src: E bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -5782,6 +6190,7 @@ ops: src: H bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -5797,6 +6206,7 @@ ops: src: L bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -5812,6 +6222,7 @@ ops: src: (HL) bit: 1 len: 2 + pc: true time: 16 flags: z: @@ -5827,6 +6238,7 @@ ops: src: A bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -5842,6 +6254,7 @@ ops: src: B bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -5857,6 +6270,7 @@ ops: src: C bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -5872,6 +6286,7 @@ ops: src: D bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -5887,6 +6302,7 @@ ops: src: E bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -5902,6 +6318,7 @@ ops: src: H bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -5917,6 +6334,7 @@ ops: src: L bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -5932,6 +6350,7 @@ ops: src: (HL) bit: 2 len: 2 + pc: true time: 16 flags: z: @@ -5947,6 +6366,7 @@ ops: src: A bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -5962,6 +6382,7 @@ ops: src: B bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -5977,6 +6398,7 @@ ops: src: C bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -5992,6 +6414,7 @@ ops: src: D bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6007,6 +6430,7 @@ ops: src: E bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6022,6 +6446,7 @@ ops: src: H bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6037,6 +6462,7 @@ ops: src: L bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6052,6 +6478,7 @@ ops: src: (HL) bit: 3 len: 2 + pc: true time: 16 flags: z: @@ -6067,6 +6494,7 @@ ops: src: A bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6082,6 +6510,7 @@ ops: src: B bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -6097,6 +6526,7 @@ ops: src: C bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -6112,6 +6542,7 @@ ops: src: D bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -6127,6 +6558,7 @@ ops: src: E bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -6142,6 +6574,7 @@ ops: src: H bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -6157,6 +6590,7 @@ ops: src: L bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -6172,6 +6606,7 @@ ops: src: (HL) bit: 4 len: 2 + pc: true time: 16 flags: z: @@ -6187,6 +6622,7 @@ ops: src: A bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -6202,6 +6638,7 @@ ops: src: B bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -6217,6 +6654,7 @@ ops: src: C bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -6232,6 +6670,7 @@ ops: src: D bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -6247,6 +6686,7 @@ ops: src: E bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -6262,6 +6702,7 @@ ops: src: H bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -6277,6 +6718,7 @@ ops: src: L bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -6292,6 +6734,7 @@ ops: src: (HL) bit: 5 len: 2 + pc: true time: 16 flags: z: @@ -6307,6 +6750,7 @@ ops: src: A bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -6322,6 +6766,7 @@ ops: src: B bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -6337,6 +6782,7 @@ ops: src: C bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -6352,6 +6798,7 @@ ops: src: D bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -6367,6 +6814,7 @@ ops: src: E bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -6382,6 +6830,7 @@ ops: src: H bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -6397,6 +6846,7 @@ ops: src: L bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -6412,6 +6862,7 @@ ops: src: (HL) bit: 6 len: 2 + pc: true time: 16 flags: z: @@ -6427,6 +6878,7 @@ ops: src: A bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -6442,6 +6894,7 @@ ops: src: B bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -6457,6 +6910,7 @@ ops: src: C bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -6472,6 +6926,7 @@ ops: src: D bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -6487,6 +6942,7 @@ ops: src: E bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -6502,6 +6958,7 @@ ops: src: H bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -6517,6 +6974,7 @@ ops: src: L bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -6532,6 +6990,7 @@ ops: src: (HL) bit: 7 len: 2 + pc: true time: 16 flags: z: @@ -6547,6 +7006,7 @@ ops: src: A bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -6562,6 +7022,7 @@ ops: src: B bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -6577,6 +7038,7 @@ ops: src: C bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -6592,6 +7054,7 @@ ops: src: D bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -6607,6 +7070,7 @@ ops: src: E bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -6622,6 +7086,7 @@ ops: src: H bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -6637,6 +7102,7 @@ ops: src: L bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -6652,6 +7118,7 @@ ops: src: (HL) bit: 0 len: 2 + pc: true time: 16 flags: z: @@ -6667,6 +7134,7 @@ ops: src: A bit: 0 len: 2 + pc: true time: 8 flags: z: @@ -6682,6 +7150,7 @@ ops: src: B bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -6697,6 +7166,7 @@ ops: src: C bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -6712,6 +7182,7 @@ ops: src: D bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -6727,6 +7198,7 @@ ops: src: E bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -6742,6 +7214,7 @@ ops: src: H bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -6757,6 +7230,7 @@ ops: src: L bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -6772,6 +7246,7 @@ ops: src: (HL) bit: 1 len: 2 + pc: true time: 16 flags: z: @@ -6787,6 +7262,7 @@ ops: src: A bit: 1 len: 2 + pc: true time: 8 flags: z: @@ -6802,6 +7278,7 @@ ops: src: B bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -6817,6 +7294,7 @@ ops: src: C bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -6832,6 +7310,7 @@ ops: src: D bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -6847,6 +7326,7 @@ ops: src: E bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -6862,6 +7342,7 @@ ops: src: H bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -6877,6 +7358,7 @@ ops: src: L bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -6892,6 +7374,7 @@ ops: src: (HL) bit: 2 len: 2 + pc: true time: 16 flags: z: @@ -6907,6 +7390,7 @@ ops: src: A bit: 2 len: 2 + pc: true time: 8 flags: z: @@ -6922,6 +7406,7 @@ ops: src: B bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6937,6 +7422,7 @@ ops: src: C bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6952,6 +7438,7 @@ ops: src: D bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6967,6 +7454,7 @@ ops: src: E bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6982,6 +7470,7 @@ ops: src: H bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -6997,6 +7486,7 @@ ops: src: L bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -7012,6 +7502,7 @@ ops: src: (HL) bit: 3 len: 2 + pc: true time: 16 flags: z: @@ -7027,6 +7518,7 @@ ops: src: A bit: 3 len: 2 + pc: true time: 8 flags: z: @@ -7042,6 +7534,7 @@ ops: src: B bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -7057,6 +7550,7 @@ ops: src: C bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -7072,6 +7566,7 @@ ops: src: D bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -7087,6 +7582,7 @@ ops: src: E bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -7102,6 +7598,7 @@ ops: src: H bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -7117,6 +7614,7 @@ ops: src: L bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -7132,6 +7630,7 @@ ops: src: (HL) bit: 4 len: 2 + pc: true time: 16 flags: z: @@ -7147,6 +7646,7 @@ ops: src: A bit: 4 len: 2 + pc: true time: 8 flags: z: @@ -7162,6 +7662,7 @@ ops: src: B bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -7177,6 +7678,7 @@ ops: src: C bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -7192,6 +7694,7 @@ ops: src: D bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -7207,6 +7710,7 @@ ops: src: E bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -7222,6 +7726,7 @@ ops: src: H bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -7237,6 +7742,7 @@ ops: src: L bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -7252,6 +7758,7 @@ ops: src: (HL) bit: 5 len: 2 + pc: true time: 16 flags: z: @@ -7267,6 +7774,7 @@ ops: src: A bit: 5 len: 2 + pc: true time: 8 flags: z: @@ -7282,6 +7790,7 @@ ops: src: B bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -7297,6 +7806,7 @@ ops: src: C bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -7312,6 +7822,7 @@ ops: src: D bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -7327,6 +7838,7 @@ ops: src: E bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -7342,6 +7854,7 @@ ops: src: H bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -7357,6 +7870,7 @@ ops: src: L bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -7372,6 +7886,7 @@ ops: src: (HL) bit: 6 len: 2 + pc: true time: 16 flags: z: @@ -7387,6 +7902,7 @@ ops: src: A bit: 6 len: 2 + pc: true time: 8 flags: z: @@ -7402,6 +7918,7 @@ ops: src: B bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -7417,6 +7934,7 @@ ops: src: C bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -7432,6 +7950,7 @@ ops: src: D bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -7447,6 +7966,7 @@ ops: src: E bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -7462,6 +7982,7 @@ ops: src: H bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -7477,6 +7998,7 @@ ops: src: L bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -7492,6 +8014,7 @@ ops: src: (HL) bit: 7 len: 2 + pc: true time: 16 flags: z: @@ -7507,6 +8030,7 @@ ops: src: A bit: 7 len: 2 + pc: true time: 8 flags: z: @@ -111,7 +111,7 @@ gb_dump_context( const gb_t * const ctx ) { for (int i = 0; RWS[i]; i++) { - printf("%s%s: 0x%04x", (!i) ? "" : ", ", RWS[i], ctx->cpu.rs[i]); + printf("%s%s: 0x%04X", (!i) ? "" : ", ", RWS[i], ctx->cpu.rs[i]); } printf("\n"); } @@ -132,11 +132,11 @@ test_execute_steps( // render frames for (size_t j = 0; j < NUM_STEPS; j++) { - // render frame - gb_step(&ctx); + // print context + gb_dump_context(&ctx); // render frame - gb_dump_context(&ctx); + gb_step(&ctx); } // free rom data |