main
notes.txt
1cmp.w <ea>, Dn 4(1/0) + <ea> time
2cmp.l <ea>, Dn 6(1/0) + <ea> time
3cmp.w #num, Dn 4(1/0) + 4(1/0)
4cmp.l #num, Dn 6(1/0) + 8(2/0)
5
6cmpi.w #num, Dn 8(2/0)
7cmpi.l #num, Dn 14(3/0)
8
9
10movem
11
12subtype field (bits 9-11) = 110 or 100 depending on direction
13bit 8 = 0
14bit 7 = 1
15bit 6 = size
16
17
18
19x86-64 registers in 68K core
20
211. native stack pointer
222. current cycle count
233. target cycle count
244. cartridge address
255. work ram address
266. scratch register
277. context pointer (contains 68K registers and memory pointers not in registers)
288. status register (maybe, depends on how well I can abuse native x86 status stuff)
29Rest of registers used for holding 68K registers
30
31rax = cycle counter
32bl = N flag
33bh = V flag
34rcx = scratch register
35dl = Z flag
36dh = C flag
37rbp = target cycle count
38rsi = context pointer
39rdi = scratch register
40r8 = cartridge address
41r9 = work ram address
42r10 = d0
43r11 = d1
44r12 = d2
45r13 = a0
46r14 = a1
47r15 = a7
48rsp = native stack pointer
49
5068K context:
51uint8_t flags[5];
52uint8_t pad??[3]
53uint32_t dregs[8]; //8 + 4 * reg
54uint32_t aregs[8]; //40 + 4 * reg
55.....
56
57x86-64 registers in Z80 core
58
59ax = HL
60bx = BC
61cx = DE
62dx = IX
63ebp = current cycle count
64rsi = context pointer
65edi = target cycle count
66rsp = native stack pointer
67r8 = IY
68r9 = SP
69r10 = A (maybe AF?)
70r11 = z80 ram address
71r12 = cartridge address if bank is pointed at ROM
72r13 = scratch1
73r14 = scratch2
74r15 = ?maybe z80 bank register?
75
76