Files
2022-03-31 14:13:34 +03:00

84 KiB

1A-Z80 Timing TableM_T_FunctionvalidnextMsetM1A:reg rdA:reg wrinc/decA:latchD:reg rdD:reg wrReg gateSW2SW1DB padsFLAGTALUALU busop2 latchop1 latchnibbleoperationSZXYHFPFNFCFCF2SpecialComments
2
3// 8-bit Load Group
4
5#if pla[17] & ~pla[50] : ld r,n4,3
6#001H T1 AB:000 DB:-- M111fMFetchr8<d<R
7#002H T2 AB:000 DB:46 M1 MREQ RD12fMFetch
8#003H T3 AB:000 DB:-- RFSH13fMFetch
9#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
10#005H T5 AB:001 DB:--21fMReadPC W
11#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
12#007H T7 AB:001 DB:01 MREQ RD23fMReadY
13#end
14
15#if pla[61] & ~pla[58] & ~pla[59] : ld r,r'4
16#001H T1 AB:000 DB:-- M111fMFetchr8<u<op1
17#002H T2 AB:000 DB:05 M1 MREQ RD12fMFetch
18#003H T3 AB:000 DB:-- RFSH13fMFetch
19#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYr8>r8->s0bus
20#end
21
22#if use_ixiy & pla[58] : ld r,(ix+d)4,3,5,3
23#005H T1 AB:001 DB:-- M111fMFetchr8<d<R
24#006H T2 AB:001 DB:4E M1 MREQ RD12fMFetch
25#007H T3 AB:001 DB:-- RFSH13fMFetch
26#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
27#009H T5 AB:002 DB:--21fMReadPCW
28#010H T6 AB:002 DB:01 MREQ RD22fMReadPC+R
29#011H T7 AB:002 DB:01 MREQ RD23fMRead Y
30#012H T8 AB:002 DB:--31WZ=IX+d
31#013H T9 AB:002 DB:--32WZ=IX+d
32#014H T10 AB:002 DB:--33WZ=IX+d
33#015H T11 AB:002 DB:--34WZ=IX+d
34#016H T12 AB:002 DB:--35mrWZ=IX+dClears the IX/IY and ...
35#end
36
37#if ~use_ixiy & pla[58] : ld r,(hl)4,3
38#001H T1 AB:000 DB:-- M111fMFetchr8<d<R
39#002H T2 AB:000 DB:46 M1 MREQ RD12fMFetch
40#003H T3 AB:000 DB:-- RFSH13fMFetch
41#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
42#005H T5 AB:003 DB:--21fMReadHLW
43#006H T6 AB:003 DB:03 MREQ RD22fMRead
44#007H T7 AB:003 DB:03 MREQ RD23fMReadY
45
46#017H T13 AB:001 DB:--41fMReadR...continues here
47#018H T14 AB:001 DB:4E MREQ RD42fMRead
48#019H T15 AB:001 DB:4E MREQ RD43fMReadY
49#end
50
51#if use_ixiy & pla[59] : ld (ix+d),r4,3,5,3
52#005H T1 AB:001 DB:-- M111fMFetch
53#006H T2 AB:001 DB:70 M1 MREQ RD12fMFetch
54#007H T3 AB:001 DB:-- RFSH13fMFetch
55#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
56#009H T5 AB:002 DB:--21fMReadPCW
57#010H T6 AB:002 DB:01 MREQ RD22fMReadPC+R
58#011H T7 AB:002 DB:01 MREQ RD23fMRead Y
59#012H T8 AB:002 DB:--31WZ=IX+d
60#013H T9 AB:002 DB:--32WZ=IX+d
61#014H T10 AB:002 DB:--33WZ=IX+d
62#015H T11 AB:002 DB:--34WZ=IX+d
63#016H T12 AB:002 DB:--35mwWZ=IX+dClears the IX/IY and ...
64#end
65
66#if ~use_ixiy & pla[59] : ld (hl),r4,3
67#001H T1 AB:000 DB:-- M111fMFetch
68#002H T2 AB:000 DB:70 M1 MREQ RD12fMFetch
69#003H T3 AB:000 DB:-- RFSH13fMFetch
70#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmwr8>r8->W
71#005H T5 AB:001 DB:--21fMWriteHLW
72#006H T6 AB:001 DB:01 MREQ22fMWrite
73#007H T7 AB:001 DB:01 MREQ WR23fMWriteY
74
75#017H T13 AB:000 DB:--41fMWriteRr8>r8->W...continues here
76#018H T14 AB:000 DB:46 MREQ42fMWrite
77#019H T15 AB:000 DB:46 MREQ WR43fMWriteY
78#end
79
80#if pla[40] : ld (ix+d),n4,3,5,3
81#005H T1 AB:001 DB:-- M111fMFetch
82#006H T2 AB:001 DB:36 M1 MREQ RD12fMFetch
83#007H T3 AB:001 DB:-- RFSH13fMFetch
84#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
85#009H T5 AB:002 DB:--21fMReadPCW
86#010H T6 AB:002 DB:01 MREQ RD22fMReadPC+R
87#011H T7 AB:002 DB:01 MREQ RD23fMRead mr
88#012H T8 AB:003 DB:--31fMReadPCWWZ=IX+d
89#013H T9 AB:003 DB:02 MREQ RD32fMReadPC+RWZ=IX+d
90#014H T10 AB:003 DB:02 MREQ RD33fMReadWZ=IX+dReads "n" at the same time
91#015H T11 AB:003 DB:--34WZ=IX+d
92#016H T12 AB:003 DB:--35mwWZ=IX+dClears the IX/IY and ...
93#end
94
95#if pla[50] & ~pla[40] : ld (hl),n4,3,3
96#001H T1 AB:000 DB:-- M111fMFetch
97#002H T2 AB:000 DB:36 M1 MREQ RD12fMFetch
98#003H T3 AB:000 DB:-- RFSH13fMFetch
99#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
100#005H T5 AB:001 DB:--21fMReadPCW
101#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
102#007H T7 AB:001 DB:01 MREQ RD23fMRead mw
103#008H T8 AB:001 DB:--31fMWriteHLW
104#009H T9 AB:001 DB:01 MREQ32fMWrite
105#010H T10 AB:001 DB:01 MREQ WR33fMWriteY
106
107#017H T13 AB:002 DB:--41fMWriteR...continues here
108#018H T14 AB:002 DB:02 MREQ42fMWrite
109#019H T15 AB:002 DB:02 MREQ WR43fMWriteY
110#end
111
112#if pla[8] & pla[13] : ld (rr),a4,3
113#001H T1 AB:000 DB:-- M111fMFetch
114#002H T2 AB:000 DB:02 M1 MREQ RD12fMFetch
115#003H T3 AB:000 DB:-- RFSH13fMFetch
116#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmwA>hu>W
117#005H T5 AB:001 DB:--21fMWriter16W
118#006H T6 AB:001 DB:FF MREQ22fMWriteWZ+R
119#007H T7 AB:001 DB:FF MREQ WR23fMWriteY
120#end
121
122#if pla[8] & ~pla[13] : ld a,(rr)4,3
123#001H T1 AB:000 DB:-- M111fMFetchA<d<R
124#002H T2 AB:000 DB:0A M1 MREQ RD12fMFetch
125#003H T3 AB:000 DB:-- RFSH13fMFetch
126#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
127#005H T5 AB:002 DB:--21fMReadr16W
128#006H T6 AB:002 DB:02 MREQ RD22fMReadWZ+R
129#007H T7 AB:002 DB:02 MREQ RD23fMReadY
130#end
131
132#if pla[38] & pla[13] : ld (nn),a4,3,3,3
133#001H T1 AB:000 DB:-- M111fMFetch
134#002H T2 AB:000 DB:32 M1 MREQ RD12fMFetch
135#003H T3 AB:000 DB:-- RFSH13fMFetch
136#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
137#005H T5 AB:001 DB:--21fMReadPCW
138#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
139#007H T7 AB:001 DB:01 MREQ RD23fMReadmrZ<ld<R
140#008H T8 AB:002 DB:--31fMReadPCW
141#009H T9 AB:002 DB:02 MREQ RD32fMReadPC+R
142#010H T10 AB:002 DB:02 MREQ RD33fMReadmwWZWW<hd<R
143#011H T11 AB:001 DB:--41fMWriteRA>hu>W
144#012H T12 AB:001 DB:FE MREQ42fMWriteWZ+R
145#013H T13 AB:001 DB:FE MREQ WR43fMWriteY
146#end
147
148#if pla[38] & ~pla[13] : ld a,(nn)4,3,3,3
149#001H T1 AB:000 DB:-- M111fMFetchA<d<R
150#002H T2 AB:000 DB:3A M1 MREQ RD12fMFetch
151#003H T3 AB:000 DB:-- RFSH13fMFetch
152#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
153#005H T5 AB:001 DB:--21fMReadPCW
154#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
155#007H T7 AB:001 DB:01 MREQ RD23fMReadmrZ<ld<R
156#008H T8 AB:002 DB:--31fMReadPCW
157#009H T9 AB:002 DB:02 MREQ RD32fMReadPC+R
158#010H T10 AB:002 DB:02 MREQ RD33fMReadmrW<hd<R
159#011H T11 AB:001 DB:--41fMReadWZW
160#012H T12 AB:001 DB:01 MREQ RD42fMReadWZ+R
161#013H T13 AB:001 DB:01 MREQ RD43fMReadY
162#end
163
164#if pla[83] : ld a,i/a,r5
165#005H T1 AB:001 DB:-- M111fMFetchA<alu<resHOR***iff20
166#006H T2 AB:001 DB:57 M1 MREQ RD12fMFetchF<<
167#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
168#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYI/R>r8'-alu>s0busbusLOR***0
169#009H T5 AB:001 DB:--15Y
170#end
171
172#if pla[57] : ld i,a/r,a5
173#005H T1 AB:001 DB:-- M111fMFetch
174#006H T2 AB:001 DB:47 M1 MREQ RD12fMFetch
175#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
176#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYI/R<u<op1
177#009H T5 AB:001 DB:--15Y
178#end
179
180// 16-bit Load Group
181
182#if pla[7] : ld rr,nn4,3,3
183#001H T1 AB:000 DB:-- M111fMFetchrh<d<RUSE_SP
184#002H T2 AB:000 DB:01 M1 MREQ RD12fMFetch
185#003H T3 AB:000 DB:-- RFSH13fMFetch
186#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
187#005H T5 AB:001 DB:--21fMReadPCW
188#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
189#007H T7 AB:001 DB:01 MREQ RD23fMReadmr
190#008H T8 AB:002 DB:--31fMReadPCWrl<d<RUSE_SP
191#009H T9 AB:002 DB:02 MREQ RD32fMReadPC+R
192#010H T10 AB:002 DB:02 MREQ RD33fMReadY
193#end
194
195#if pla[30] & pla[13] : ld (nn),hl4,3,3,3,3
196#001H T1 AB:000 DB:-- M111fMFetch
197#002H T2 AB:000 DB:22 M1 MREQ RD12fMFetch
198#003H T3 AB:000 DB:-- RFSH13fMFetch
199#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
200#005H T5 AB:001 DB:--21fMReadPCW
201#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
202#007H T7 AB:001 DB:01 MREQ RD23fMReadmrZ<ld<R
203#008H T8 AB:002 DB:--31fMReadPCW
204#009H T9 AB:002 DB:02 MREQ RD32fMReadPC+R
205#010H T10 AB:002 DB:02 MREQ RD33fMReadmwWZWW<hd<R
206#011H T11 AB:001 DB:--41fMWriteRrl>l>W
207#012H T12 AB:001 DB:01 MREQ42fMWriteWZ+R
208#013H T13 AB:001 DB:01 MREQ WR43fMWritemwWZW
209#014H T14 AB:002 DB:--51fMWriteRrh>hu>W
210#015H T15 AB:002 DB:02 MREQ52fMWriteWZ+R
211#016H T16 AB:002 DB:02 MREQ WR53fMWriteY
212#end
213
214#if pla[30] & ~pla[13] : ld hl,(nn)4,3,3,3,3
215#001H T1 AB:000 DB:-- M111fMFetch
216#002H T2 AB:000 DB:2A M1 MREQ RD12fMFetch
217#003H T3 AB:000 DB:-- RFSH13fMFetch
218#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
219#005H T5 AB:001 DB:--21fMReadPCW
220#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
221#007H T7 AB:001 DB:01 MREQ RD23fMReadmrZ<ld<R
222#008H T8 AB:002 DB:--31fMReadPCW
223#009H T9 AB:002 DB:02 MREQ RD32fMReadPC+R
224#010H T10 AB:002 DB:02 MREQ RD33fMReadmrW<hd<R
225#011H T11 AB:001 DB:--41fMReadWZW
226#012H T12 AB:001 DB:01 MREQ RD42fMReadWZ+R
227#013H T13 AB:001 DB:01 MREQ RD43fMReadmrrl<d<R
228#014H T14 AB:002 DB:--51fMReadWZW
229#015H T15 AB:002 DB:02 MREQ RD52fMReadWZ+R
230#016H T16 AB:002 DB:02 MREQ RD53fMReadYrh<d<R
231#end
232
233#if pla[31] & pla[33] : ld (nn),rr4,3,3,3,3
234#005H T1 AB:001 DB:-- M111fMFetch
235#006H T2 AB:001 DB:43 M1 MREQ RD12fMFetch
236#007H T3 AB:001 DB:-- RFSH13fMFetch
237#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
238#009H T5 AB:002 DB:--21fMReadPCW
239#010H T6 AB:002 DB:01 MREQ RD22fMReadPC+R
240#011H T7 AB:002 DB:01 MREQ RD23fMReadmrZ<ld<R
241#012H T8 AB:003 DB:--31fMReadPCW
242#013H T9 AB:003 DB:02 MREQ RD32fMReadPC+R
243#014H T10 AB:003 DB:02 MREQ RD33fMReadmwWZWW<hd<R
244#015H T11 AB:001 DB:--41fMWriteRrl>l>WUSE_SP
245#016H T12 AB:001 DB:FF MREQ42fMWriteWZ+R
246#017H T13 AB:001 DB:FF MREQ WR43fMWritemwWZW
247#018H T14 AB:002 DB:--51fMWriteRrh>hu>WUSE_SP
248#019H T15 AB:002 DB:C3 MREQ52fMWriteWZ+R
249#020H T16 AB:002 DB:C3 MREQ WR53fMWriteY
250#end
251
252#if pla[31] & ~pla[33] : ld rr,(nn)4,3,3,3,3
253#005H T1 AB:001 DB:-- M111fMFetch
254#006H T2 AB:001 DB:43 M1 MREQ RD12fMFetch
255#007H T3 AB:001 DB:-- RFSH13fMFetch
256#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
257#009H T5 AB:002 DB:--21fMReadPCW
258#010H T6 AB:002 DB:01 MREQ RD22fMReadPC+R
259#011H T7 AB:002 DB:01 MREQ RD23fMReadmrZ<ld<R
260#012H T8 AB:003 DB:--31fMReadPCW
261#013H T9 AB:003 DB:02 MREQ RD32fMReadPC+R
262#014H T10 AB:003 DB:02 MREQ RD33fMReadmrW<hd<R
263#015H T11 AB:001 DB:--41fMReadWZW
264#016H T12 AB:001 DB:FF MREQ RD42fMReadWZ+R
265#017H T13 AB:001 DB:FF MREQ RD43fMReadmrrl<d<RUSE_SP
266#018H T14 AB:002 DB:--51fMReadWZW
267#019H T15 AB:002 DB:C3 MREQ RD52fMReadWZ+R
268#020H T16 AB:002 DB:C3 MREQ RD53fMReadYrh<d<RUSE_SP
269#end
270
271#if pla[5] : ld sp,hl6
272#001H T1 AB:000 DB:-- M111fMFetch
273#002H T2 AB:000 DB:F9 M1 MREQ RD12fMFetch
274#003H T3 AB:000 DB:-- RFSH13fMFetch
275#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYHLW
276#005H T5 AB:000 DB:--15SPR
277#006H T6 AB:000 DB:--16Y
278#end
279
280#if pla[23] & pla[16] : push qq5,3,3
281#001H T1 AB:000 DB:-- M111fMFetch
282#002H T2 AB:000 DB:C5 M1 MREQ RD12fMFetch
283#003H T3 AB:000 DB:-- RFSH13fMFetch
284#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchY
285#005H T5 AB:000 DB:--15mwSP-W
286#006H T6 AB:002 DB:--21fMWrite-Prh>hu>W
287#007H T7 AB:002 DB:02 MREQ22fMWriteSP-R
288#008H T8 AB:002 DB:02 MREQ WR23fMWritemwSP-W
289#009H T9 AB:001 DB:--31fMWrite-Prl>l>W
290#010H T10 AB:001 DB:01 MREQ32fMWriteSP-R
291#011H T11 AB:001 DB:01 MREQ WR33fMWriteY
292#end
293
294#if pla[23] & ~pla[16] : pop qq4,3,3
295#001H T1 AB:000 DB:-- M111fMFetch
296#002H T2 AB:000 DB:C1 M1 MREQ RD12fMFetch
297#003H T3 AB:000 DB:-- RFSH13fMFetch
298#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
299#005H T5 AB:001 DB:--21fMReadSPW
300#006H T6 AB:001 DB:01 MREQ RD22fMReadSP+R
301#007H T7 AB:001 DB:01 MREQ RD23fMReadmrrl<d<R
302#008H T8 AB:002 DB:--31fMReadSPW
303#009H T9 AB:002 DB:02 MREQ RD32fMReadSP+R
304#010H T10 AB:002 DB:02 MREQ RD33fMReadYrh<d<R
305#end
306
307// Exchange, Block Transfer and Search Groups
308
309#if pla[2] : ex de,hl4
310#001H T1 AB:000 DB:-- M111fMFetch
311#002H T2 AB:000 DB:EB M1 MREQ RD12fMFetchEx_DE_HL
312#003H T3 AB:000 DB:-- RFSH13fMFetch
313#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYY
314#end
315
316#if pla[39] : ex af,af'4
317#001H T1 AB:000 DB:-- M111fMFetch
318#002H T2 AB:000 DB:08 M1 MREQ RD12fMFetchEx_AF_AF'
319#003H T3 AB:000 DB:-- RFSH13fMFetch
320#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYY
321#end
322
323#if pla[1] : exx4
324#001H T1 AB:000 DB:-- M111fMFetch
325#002H T2 AB:000 DB:D9 M1 MREQ RD12fMFetchEXX
326#003H T3 AB:000 DB:-- RFSH13fMFetch
327#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYY
328#end
329
330#if pla[10] : ex (sp),hl4,3,4,3,5
331#001H T1 AB:000 DB:-- M111fMFetch
332#002H T2 AB:000 DB:E3 M1 MREQ RD12fMFetch
333#003H T3 AB:000 DB:-- RFSH13fMFetch
334#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
335#005H T5 AB:0FD DB:--21fMReadSPW
336#006H T6 AB:0FD DB:03 MREQ RD22fMReadSP+R
337#007H T7 AB:0FD DB:03 MREQ RD23fMReadmrZ<ld<R
338#008H T8 AB:0FE DB:--31fMReadSPW
339#009H T9 AB:0FE DB:D1 MREQ RD32fMReadSP+R
340#010H T10 AB:0FE DB:D1 MREQ RD33fMReadW<hd<R
341#011H T11 AB:0FE DB:-- 34mwSP-W
342#012H T12 AB:0FE DB:--41fMWrite-Prh>hu>W
343#013H T13 AB:0FE DB:00 MREQ42fMWriteSP-R
344#014H T14 AB:0FE DB:00 MREQ WR43fMWritemwSP-W
345#015H T15 AB:0FD DB:--51fMWrite-Prl>l>W
346#016H T16 AB:0FD DB:01 MREQ52fMWriteSP-R
347#017H T17 AB:0FD DB:01 MREQ WR 53fMWriteWZW
348#018H T18 AB:0FD DB:0154HLR
349#019H T19 AB:0FD DB:0155Y
350#end
351
352#if pla[0] : Non-repeating version of a block instruction4,3,5,(5)
353#alwaysNonRep
354#end
355
356#if pla[12] : ldi/ldir/ldd/lddr4,3,5,(5)
357#035H T1 AB:00A DB:-- M111fMFetchaluresHOR**REP0R
358#036H T2 AB:00A DB:B0 M1 MREQ RD12fMFetchF<<
359#037H T3 AB:004 DB:-- RFSH13fMFetchAF>>>s0busbus******
360#038H T4 AB:004 DB:-- RFSH MREQ14fMFetchYmr
361#039H T5 AB:000 DB:--21fMReadHLW
362#040H T6 AB:000 DB:21 MREQ RD22fMReadHLop3R
363#041H T7 AB:000 DB:21 MREQ RD23fMReadmwd<Ralu>s0busLADD*W
364#042H T8 AB:000 DB:--31fMWriteDEWalu<resHADDR
365#043H T9 AB:000 DB:21 MREQ32fMWriteDEop3R
366#044H T10 AB:000 DB:21 MREQ WR33fMWriteBCW
367#045H T11 AB:000 DB:2134BC-RWriteBC=1Update repeat flag latch
368#046H T12 AB:000 DB:2135YBR
369#047H T13 AB:000 DB:--41PCW
370#048H T14 AB:000 DB:--42PC-R
371#049H T15 AB:000 DB:--43PCW
372#050H T16 AB:000 DB:--44PC-R
373#051H T17 AB:000 DB:--45Y
374#end
375
376#if pla[11] : cpi/cpir/cpd/cpdr4,3,5,(5)
377#035H T1 AB:00A DB:-- M111fMFetchalu<res0HSUB*REP1R
378#036H T2 AB:00A DB:B1 M1 MREQ RD12fMFetchF<<?NF_HF
379#037H T3 AB:004 DB:-- RFSH13fMFetchAF>>>s0busbus******
380#038H T4 AB:004 DB:-- RFSH MREQ14fMFetchYmr
381#039H T5 AB:000 DB:--21fMReadHLW
382#040H T6 AB:000 DB:21 MREQ RD22fMReadHLop3R
383#041H T7 AB:000 DB:21 MREQ RD23fMReadYd<Ralu>s0busLSUB*W
384#042H T8 AB:000 DB:--31alu<resHSUB*R
385#043H T9 AB:000 DB:--32
386#044H T10 AB:000 DB:--33BCW
387#045H T11 AB:000 DB:--34BC-RWriteBC=1Update repeat flag latch
388#046H T12 AB:000 DB:--35YBRZ
389#047H T13 AB:000 DB:--41PCW
390#048H T14 AB:000 DB:--42PC-R
391#049H T15 AB:000 DB:--43PCW
392#050H T16 AB:000 DB:--44PC-R
393#051H T17 AB:000 DB:--45Y
394#end
395
396// 8-bit Arithmetic and Logic Group
397
398#if pla[65] & ~pla[52] : add/sub/and/or/xor/cmp a,r4
399#001H T1 AB:000 DB:-- M111fMFetch?<ualu<resHPLA*???*A is stored in each ALU PLA below
400#002H T2 AB:000 DB:80 M1 MREQ RD12fMFetchF<<PLA?NF_HF_CFIf (NF), complement HF, CF
401#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
402#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYr8>r8-alu>s0busLPLA***?
403#end
404
405#if pla[64] : add/sub/and/or/xor/cmp a,n4,3
406#001H T1 AB:000 DB:-- M111fMFetch?<ualu<resHPLA*???*A is stored in each ALU PLA below
407#002H T2 AB:000 DB:C6 M1 MREQ RD12fMFetchF<<PLA?NF_HF_CFIf (NF), complement HF, CF
408#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
409#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmrr8>r8-alu>s0busLPLA***?
410#005H T5 AB:001 DB:--21fMReadPCWPLA
411#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
412#007H T7 AB:001 DB:01 MREQ RD23fMReadYd<Ralu>s0busLPLA***?
413#end
414
415#if use_ixiy & pla[52] : add/sub/and/or/xor/cp (ix+d)4,3,5,3
416#005H T1 AB:001 DB:-- M111fMFetch
417#006H T2 AB:001 DB:86 M1 MREQ RD12fMFetch
418#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
419#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
420#009H T5 AB:002 DB:--21fMReadPCW
421#010H T6 AB:002 DB:01 MREQ RD22fMReadPC+R
422#011H T7 AB:002 DB:01 MREQ RD23fMReadY
423#012H T8 AB:002 DB:--31WZ=IX+d
424#013H T9 AB:002 DB:--32WZ=IX+d
425#014H T10 AB:002 DB:--33WZ=IX+dReads "n" at the same time
426#015H T11 AB:002 DB:--34WZ=IX+d
427#016H T12 AB:002 DB:--35mrWZ=IX+dClears the IX/IY and ...
428#end
429
430#if ~use_ixiy & pla[52] : add/sub/and/or/xor/cp (hl)4,3
431#001H T1 AB:000 DB:-- M111fMFetch?<ualu<resHPLA*???*A is stored in each ALU PLA below
432#002H T2 AB:000 DB:86 M1 MREQ RD12fMFetchF<<PLA?NF_HF_CFIf (NF), complement HF, CF
433#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
434#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
435#005H T5 AB:001 DB:--21fMReadHLW
436#006H T6 AB:001 DB:01 MREQ RD22fMReadWZ+R
437#007H T7 AB:001 DB:01 MREQ RD23fMReadYd<Ralu>s0busLPLA***?
438
439#017H T13 AB:000 DB:--41fMReadR...continues here
440#018H T14 AB:000 DB:DD MREQ RD42fMReadAF>>>s0busbus*****Reloads AF since (IX+d) used ALU core
441#019H T15 AB:000 DB:DD MREQ RD43fMReadYd<Ralu>s0busLPLA***?
442#end
443
444#if pla[66] & ~pla[53] : inc/dec r4
445#001H T1 AB:000 DB:-- M111fMFetchr8<ualu<resHADC**VR
446#002H T2 AB:000 DB:05 M1 MREQ RD12fMFetchF<<?NF_HFIf (NF), complement HF
447#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
448#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYr8'>r8'-alu>s00busLADC***01W
449#end
450
451#if pla[75] : dec
452#001H T1 AB:000 DB:-- M111fMFetch10NEG_OP2
453#004H T4 AB:000 DB:-- RFSH MREQ14fMFetch10NEG_OP2
454#end
455
456#if (M2 | M4) & pla[75] : dec
457#always10NEG_OP2
458#end
459
460#if use_ixiy & pla[53] : inc/dec (ix+d)4,3,5,4,3
461#005H T1 AB:001 DB:-- M111fMFetch
462#006H T2 AB:001 DB:34 M1 MREQ RD12fMFetch
463#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
464#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
465#009H T5 AB:002 DB:--21fMReadPCW
466#010H T6 AB:002 DB:01 MREQ RD22fMReadPC+R
467#011H T7 AB:002 DB:01 MREQ RD23fMReadY
468#012H T8 AB:002 DB:--31WZ=IX+d
469#013H T9 AB:002 DB:--32WZ=IX+d
470#014H T10 AB:002 DB:--33WZ=IX+d
471#015H T11 AB:002 DB:--34WZ=IX+d
472#016H T12 AB:002 DB:--35mrWZ=IX+dClears the IX/IY and ...
473#end
474
475#if ~use_ixiy & pla[53] : inc/dec (hl)4,4,3
476#001H T1 AB:000 DB:-- M111fMFetch
477#002H T2 AB:000 DB:34 M1 MREQ RD12fMFetchF<<?NF_HFIf (NF), complement HF
478#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
479#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
480#005H T5 AB:001 DB:--21fMReadHLW
481#006H T6 AB:001 DB:01 MREQ RD22fMRead
482#007H T7 AB:001 DB:01 MREQ RD23fMReadd<Ralu>s00busLADC*01W
483#008H T8 AB:001 DB:--24mwu>Walu<resHADC**VR
484#009H T9 AB:001 DB:--31fMWriteR
485#010H T10 AB:001 DB:02 MREQ32fMWrite
486#011H T11 AB:001 DB:02 MREQ WR33fMWriteY
487
488#017H T13 AB:002 DB:--41fMReadR...continues here
489#018H T14 AB:002 DB:01 MREQ RD42fMRead
490#019H T15 AB:002 DB:01 MREQ RD43fMReadd<Ralu>s00busLADC*01W
491#020H T16 AB:002 DB:--44mwu>Walu<resHADC**VR
492#021H T17 AB:002 DB:--51fMWriteR
493#022H T18 AB:002 DB:02 MREQ52fMWrite
494#023H T19 AB:002 DB:02 MREQ WR53fMWriteY
495#end
496
497// 16-bit Arithmetic Group
498
499#if pla[69] : add hl,ss4,4,3
500#001H T1 AB:000 DB:-- M111fMFetch
501#002H T2 AB:000 DB:09 M1 MREQ RD12fMFetchF<<
502#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus****0*
503#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYL>ld>s0bus
504#005H T5 AB:000 DB:--21rl>ldalu>s0busLADD*USE_SP
505#006H T6 AB:000 DB:--22Z<lualu<resHADC**
506#007H T7 AB:000 DB:--23H>>s0bus
507#008H T8 AB:000 DB:--24Yrh>alu>s0busLADC*USE_SP
508#009H T9 AB:000 DB:--31WZWW<hualu<resHADC**
509#010H T10 AB:000 DB:--32HLR
510#011H T11 AB:000 DB:--33Y
511#end
512
513#if op3 & pla[68] : adc hl,ss4,4,3
514#005H T1 AB:001 DB:-- M111fMFetch
515#006H T2 AB:001 DB:42 M1 MREQ RD12fMFetchF<<
516#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus****0*
517#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYYL>ld>s0bus
518#009H T5 AB:001 DB:--21rl>ldalu>s0busLADC*USE_SP
519#010H T6 AB:001 DB:--22Z<lualu<resHADC***
520#011H T7 AB:001 DB:--23H>>s0bus
521#012H T8 AB:001 DB:--24Yrh>alu>s0busLADC*USE_SP
522#013H T9 AB:001 DB:--31WZWW<hualu<resHADC**V*ZERO_16BIT
523#014H T10 AB:001 DB:--32HLR
524#015H T11 AB:001 DB:--33Y
525#end
526
527#if ~op3 & pla[68] : sbc hl,ss4,4,3
528#005H T1 AB:001 DB:-- M111fMFetch
529#006H T2 AB:001 DB:42 M1 MREQ RD12fMFetchF<<?NF_HF_CF
530#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus****1*
531#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYYL>ld>s0bus
532#009H T5 AB:001 DB:--21rl>ldalu>s0busLSBC*USE_SP
533#010H T6 AB:001 DB:--22Z<lualu<resHSBC***
534#011H T7 AB:001 DB:--23H>>s0bus
535#012H T8 AB:001 DB:--24Yrh>alu>s0busLSBCh*USE_SP
536#013H T9 AB:001 DB:--31WZWW<hualu<resHSBC**V*ZERO_16BIT
537#014H T10 AB:001 DB:--32HLR
538#015H T11 AB:001 DB:--33Y
539#end
540
541#if pla[9] : inc/dec ss6
542#001H T1 AB:000 DB:-- M111fMFetch
543#002H T2 AB:000 DB:03 M1 MREQ RD12fMFetch
544#003H T3 AB:000 DB:-- RFSH13fMFetch
545#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYr16WUSE_SP
546#005H T5 AB:000 DB:--15r16op3RUSE_SP
547#006H T6 AB:000 DB:--16Y
548#end
549
550// General Purpose Arithmetic and CPU Control Groups
551
552#if pla[77] : daa4
553#001H T1 AB:000 DB:-- M111fMFetchA<alu<resHADC**P*?NF_SUB
554#002H T2 AB:000 DB:27 M1 MREQ RD12fMFetchF<<R?NF_HF
555#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus**W2***Only for DAA, write HF2 flag
556#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYdalu>s0busLADC***1W.daaDAA,?NF_SUB
557#end
558
559#if pla[81] : cpl4
560#001H T1 AB:000 DB:-- M111fMFetchA<alu<resHOR*1NEG_OP2
561#002H T2 AB:000 DB:2F M1 MREQ RD12fMFetchF<<?NF_HF
562#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
563#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYalu0LOR**1NEG_OP2
564#end
565
566#if pla[82] : neg4
567#005H T1 AB:001 DB:-- M111fMFetchA<alu<resHSUB**V1*
568#006H T2 AB:001 DB:44 M1 MREQ RD12fMFetchF<<?NF_HF_CF
569#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
570#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYYalu0LSUB***1*
571#end
572
573#if pla[89] : ccf4
574#001H T1 AB:000 DB:-- M111fMFetchalu<resHOR*0
575#002H T2 AB:000 DB:3F M1 MREQ RD12fMFetchF<<^?~CF_HF
576#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
577#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYaluLOR**0
578#end
579
580#if pla[92] : scf4
581#001H T1 AB:000 DB:-- M111fMFetchalu<resHOR*0
582#002H T2 AB:000 DB:37 M1 MREQ RD12fMFetchF<<1
583#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
584#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYaluLOR**0
585#end
586
587#if pla[95] : halt4
588#001H T1 AB:000 DB:-- M111fMFetch
589#002H T2 AB:000 DB:76 M1 MREQ RD12fMFetch
590#003H T3 AB:000 DB:-- RFSH13fMFetchHALT
591#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYY
592#end
593
594#if pla[97] : di/ei4
595#001H T1 AB:000 DB:-- M111fMFetch
596#002H T2 AB:000 DB:F3 M1 MREQ RD12fMFetch
597#003H T3 AB:000 DB:-- RFSH13fMFetchDI_EI
598#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYNO_INTSAt last M/T, inhibit interrupts
599#end
600
601#if pla[96] : im n4
602#005H T1 AB:001 DB:-- M111fMFetch
603#006H T2 AB:001 DB:46 M1 MREQ RD12fMFetch
604#007H T3 AB:001 DB:-- RFSH13fMFetch<RIMM1/T3 reads in mode # from opcode[4:3]
605#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYY
606#end
607
608// Rotate and Shift Group
609
610#if pla[25] : rlca/rla/rrca/rra4
611#001H T1 AB:000 DB:-- M111fMFetchA<alu<resHOR**0*
612#002H T2 AB:000 DB:07 M1 MREQ RD12fMFetchF<<R
613#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
614#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYA>alu>s1busbusLOR**0W.sh
615#end
616
617#if ~use_ixiy & pla[70] & ~pla[55] : rlc r4
618#005H T1 AB:001 DB:-- M111fMFetchr8'<ualu<resHOR***P0*
619#006H T2 AB:001 DB:00 M1 MREQ RD12fMFetchF<<R
620#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
621#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYYr8>r8-alu>s1busbusLOR***0W.sh
622
623#017H T13 AB:000 DB:--41fMReadWZWROpcodeToIR...continues here from the (ix+d) addressing mode
624#018H T14 AB:000 DB:DD MREQ RD42fMRead
625#019H T15 AB:000 DB:DD MREQ RD43fMReadmwd<Ralu>s1busbusLOR0W.sh
626#029H T17 AB:002 DB:--51fMWriteRu>Walu<resHOR***P0*
627#030H T18 AB:002 DB:BB MREQ52fMWrite
628#031H T19 AB:002 DB:BB MREQ WR53fMWriteY
629#end
630
631#if ~use_ixiy & pla[70] & pla[55] : rlc (hl)4,4,3
632#005H T1 AB:001 DB:-- M111fMFetch
633#006H T2 AB:001 DB:00 M1 MREQ RD12fMFetchF<<R
634#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
635#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
636#009H T5 AB:006 DB:--21fMReadHLW
637#010H T6 AB:006 DB:05 MREQ RD22fMRead
638#011H T7 AB:006 DB:05 MREQ RD23fMRead
639#012H T8 AB:006 DB:--24mwd<Ralu>s1busbusLOR0W.sh
640#013H T9 AB:006 DB:--31fMWriteRu>Walu<resHOR***P0*
641#014H T10 AB:006 DB:0A MREQ32fMWrite
642#015H T11 AB:006 DB:0A MREQ WR33fMWriteY
643
644#017H T13 AB:000 DB:--41fMReadWZWROpcodeToIR...continues here from the (ix+d) addressing mode
645#018H T14 AB:000 DB:DD MREQ RD42fMRead
646#019H T15 AB:000 DB:DD MREQ RD43fMReadmwd<Ralu>s1busbusLOR0W.sh
647#029H T17 AB:002 DB:--51fMWriteRu>Walu<resHOR***P0*
648#030H T18 AB:002 DB:BB MREQ52fMWrite
649#031H T19 AB:002 DB:BB MREQ WR53fMWriteY
650#end
651
652#if pla[15] & op3 : rld4,3,4,3
653#005H T1 AB:001 DB:-- M111fMFetchA<alu<resHOR**P0
654#006H T2 AB:001 DB:67 M1 MREQ RD12fMFetchF<<
655#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
656#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
657#009H T5 AB:000 DB:--21fMReadHLW
658#010H T6 AB:000 DB:ED MREQ RD22fMReadWZ+R
659#011H T7 AB:000 DB:ED MREQ RD23fMReadY
660#012H T8 AB:000 DB:--31d<R>s0lqL
661#013H T9 AB:000 DB:--32
662#014H T10 AB:000 DB:--33
663#015H T11 AB:000 DB:--34mwd<R>s0lowH
664#016H T12 AB:000 DB:--41fMWriteRu>W<op2
665#017H T13 AB:000 DB:EE MREQ42fMWriteop1bus
666#018H T14 AB:000 DB:EE MREQ WR43fMWriteYaluLOR***0
667#end
668
669#if pla[15] & ~op3 : rrd4,3,4,3
670#005H T1 AB:001 DB:-- M111fMFetchA<alu<resHOR**P0
671#006H T2 AB:001 DB:67 M1 MREQ RD12fMFetchF<<
672#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
673#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
674#009H T5 AB:000 DB:--21fMReadHLW
675#010H T6 AB:000 DB:ED MREQ RD22fMReadWZ+R
676#011H T7 AB:000 DB:ED MREQ RD23fMReadY
677#012H T8 AB:000 DB:--31d<R>s0lqlowL
678#013H T9 AB:000 DB:--32u>W<op2
679#014H T10 AB:000 DB:--33A>>s0lqL
680#015H T11 AB:000 DB:--34mwd<R>s0lowH
681#016H T12 AB:000 DB:--41fMWriteRu>W<op2
682#017H T13 AB:000 DB:EE MREQ42fMWriteop1bus
683#018H T14 AB:000 DB:EE MREQ WR43fMWriteYaluLOR***0
684#end
685
686// Bit Manipulation Group
687
688#if ~use_ixiy & pla[72] & ~pla[55] : bit b,r4
689#005H T1 AB:001 DB:-- M111fMFetchalu<resHAND**P0
690#006H T2 AB:001 DB:40 M1 MREQ RD12fMFetchF<<
691#007H T3 AB:001 DB:-- RFSH13fMFetchAF>R>>bsbusbus******Override M1/T3 load with a bit select
692#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYYr8>r8-alu>s0busLAND***0
693
694#017H T13 AB:000 DB:--41fMReadRR>bsbusbusOpcodeToIR...continues here from the (ix+d) addressing mode
695#018H T14 AB:000 DB:DD MREQ RD42fMRead
696#019H T15 AB:000 DB:DD MREQ RD43fMRead
697#020H T16 AB:000 DB:--44Yd<Ralu>s0busLAND**0
698#end
699
700#if ~use_ixiy & pla[72] & pla[55] : bit b,(hl)4,4
701#005H T1 AB:001 DB:-- M111fMFetchalu<resHAND**P0
702#006H T2 AB:001 DB:06 M1 MREQ RD12fMFetchF<<
703#007H T3 AB:001 DB:-- RFSH13fMFetchAF>R>>bsbusbus******Override M1/T3 load with a bit select
704#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
705#009H T5 AB:006 DB:--21fMReadHLW
706#010H T6 AB:006 DB:05 MREQ RD22fMRead
707#011H T7 AB:006 DB:05 MREQ RD23fMReadWZ>>*BIT n,(HL) saves WZ in X,Y ("MEMPTR")
708#012H T8 AB:006 DB:--24Yd<Ralu>s0busLAND**0
709
710#017H T13 AB:000 DB:--41fMReadWZWR>bsbusbusOpcodeToIR...continues here from the (ix+d) addressing mode
711#018H T14 AB:000 DB:DD MREQ RD42fMRead
712#019H T15 AB:000 DB:DD MREQ RD43fMRead
713#020H T16 AB:000 DB:--44Yd<Ralu>s0busLAND**0
714#end
715
716#if ~use_ixiy & pla[74] & ~pla[55] : set b,r4
717#005H T1 AB:001 DB:-- M111fMFetchr8'<u<resHOR
718#006H T2 AB:001 DB:40 M1 MREQ RD12fMFetch
719#007H T3 AB:001 DB:-- RFSH13fMFetchAF>R>>bsbusbus******Override M1/T3 load with a bit select
720#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYYr8>r8->s0busLOR
721
722#017H T13 AB:000 DB:--41fMReadWZWR>bsbusbusOpcodeToIR...continues here from the (ix+d) addressing mode
723#018H T14 AB:000 DB:DD MREQ RD42fMRead
724#019H T15 AB:000 DB:DD MREQ RD43fMReadmwd<Ralu>s0busLOR
725#029H T17 AB:002 DB:--51fMWriteRu>W<resHOR
726#030H T18 AB:002 DB:BB MREQ52fMWrite
727#031H T19 AB:002 DB:BB MREQ WR53fMWriteY
728#end
729
730#if ~use_ixiy & pla[74] & pla[55] : set b,(hl)4,4,3
731#005H T1 AB:001 DB:-- M111fMFetch
732#006H T2 AB:001 DB:06 M1 MREQ RD12fMFetch
733#007H T3 AB:001 DB:-- RFSH13fMFetchAF>R>>bsbusbus******Override M1/T3 load with a bit select
734#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
735#009H T5 AB:006 DB:--21fMReadHLW
736#010H T6 AB:006 DB:05 MREQ RD22fMRead
737#011H T7 AB:006 DB:05 MREQ RD23fMReadd<R>s0busLOR
738#012H T8 AB:006 DB:--24mwu>W<resHOR
739#013H T9 AB:006 DB:--31fMWriteR
740#014H T10 AB:006 DB:0A MREQ32fMWrite
741#015H T11 AB:006 DB:0A MREQ WR33fMWriteY
742
743#017H T13 AB:000 DB:--41fMReadWZWR>bsbusbusOpcodeToIR...continues here from the (ix+d) addressing mode
744#018H T14 AB:000 DB:DD MREQ RD42fMRead
745#019H T15 AB:000 DB:DD MREQ RD43fMReadmwd<Ralu>s0busLOR
746#029H T17 AB:002 DB:--51fMWriteRu>W<resHOR
747#030H T18 AB:002 DB:BB MREQ52fMWrite
748#031H T19 AB:002 DB:BB MREQ WR53fMWriteY
749#end
750
751#if ~use_ixiy & pla[73] & ~pla[55] : res b,r4
752#005H T1 AB:001 DB:-- M111fMFetchr8'<u<resHNAND
753#006H T2 AB:001 DB:40 M1 MREQ RD12fMFetch
754#007H T3 AB:001 DB:-- RFSH13fMFetchAF>R>>bsbusbus******Override M1/T3 load with a bit select
755#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYYr8>r8->s0busLNAND
756
757#017H T13 AB:000 DB:--41fMReadWZWR>bsbusbusOpcodeToIR...continues here from the (ix+d) addressing mode
758#018H T14 AB:000 DB:DD MREQ RD42fMRead
759#019H T15 AB:000 DB:DD MREQ RD43fMReadmwd<Ralu>s0busLNAND
760#029H T17 AB:002 DB:--51fMWriteRu>W<resHNAND
761#030H T18 AB:002 DB:BB MREQ52fMWrite
762#031H T19 AB:002 DB:BB MREQ WR53fMWriteY
763#end
764
765#if ~use_ixiy & pla[73] & pla[55] : res b,(hl)4,4,3
766#005H T1 AB:001 DB:-- M111fMFetch
767#006H T2 AB:001 DB:06 M1 MREQ RD12fMFetch
768#007H T3 AB:001 DB:-- RFSH13fMFetchAF>R>>bsbusbus******Override M1/T3 load with a bit select
769#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
770#009H T5 AB:006 DB:--21fMReadHLW
771#010H T6 AB:006 DB:05 MREQ RD22fMRead
772#011H T7 AB:006 DB:05 MREQ RD23fMReadd<R>s0busLNAND
773#012H T8 AB:006 DB:--24mwu>W<resHNAND
774#013H T9 AB:006 DB:--31fMWriteR
775#014H T10 AB:006 DB:0A MREQ32fMWrite
776#015H T11 AB:006 DB:0A MREQ WR33fMWriteY
777
778#017H T13 AB:000 DB:--41fMReadWZWR>bsbusbusOpcodeToIR...continues here from the (ix+d) addressing mode
779#018H T14 AB:000 DB:DD MREQ RD42fMRead
780#019H T15 AB:000 DB:DD MREQ RD43fMReadmwd<Ralu>s0busLNAND
781#029H T17 AB:002 DB:--51fMWriteRu>W<resHNAND
782#030H T18 AB:002 DB:BB MREQ52fMWrite
783#031H T19 AB:002 DB:BB MREQ WR53fMWriteY
784#end
785
786// Input and Output Groups
787
788#if pla[37] & ~pla[28] : in a,(n)4,3,4
789#001H T1 AB:000 DB:-- M111fMFetchA<d<R
790#002H T2 AB:000 DB:DB M1 MREQ RD12fMFetch
791#003H T3 AB:000 DB:-- RFSH13fMFetch
792#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
793#005H T5 AB:001 DB:--21fMReadPCW
794#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
795#007H T7 AB:001 DB:01 MREQ RD23fMReadior
796#008H T8 AB:001 DB:--31fIOReadAW?<<R
797#009H T9 AB:001 DB:-- RD IORQ32fIORead
798#010H T10 AB:001 DB:-- RD IORQ33fIORead
799#011H T11 AB:001 DB:-- RD IORQ34fIOReadY
800#end
801
802#if pla[27] & ~pla[34] : in r,(c)4,4
803#005H T1 AB:001 DB:-- M111fMFetchr8<d<RaluresHOR**P0
804#006H T2 AB:001 DB:40 M1 MREQ RD12fMFetchF<<
805#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******
806#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYior
807#009H T5 AB:0FF DB:--21fIOReadBCW
808#010H T6 AB:0FF DB:-- RD IORQ22fIORead
809#011H T7 AB:0FF DB:-- RD IORQ23fIORead
810#012H T8 AB:0FF DB:-- RD IORQ24fIOReadYd<Ralu>s0busbusLOR***0
811#end
812
813#if pla[37] & pla[28] : out (n),a4,3,4
814#001H T1 AB:000 DB:-- M111fMFetch
815#002H T2 AB:000 DB:D3 M1 MREQ RD12fMFetch
816#003H T3 AB:000 DB:-- RFSH13fMFetch
817#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
818#005H T5 AB:001 DB:--21fMReadPCW
819#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
820#007H T7 AB:001 DB:01 MREQ RD23fMReadiowAW<l<R
821#008H T8 AB:001 DB:--31fIOWriteRA>hu>W
822#009H T9 AB:001 DB:03 WR IORQ32fIOWrite
823#010H T10 AB:001 DB:03 WR IORQ33fIOWrite
824#011H T11 AB:001 DB:03 WR IORQ34fIOWriteY
825#end
826
827#if pla[27] & pla[34] : out (c),r4,4
828#005H T1 AB:001 DB:-- M111fMFetch
829#006H T2 AB:001 DB:41 M1 MREQ RD12fMFetch
830#007H T3 AB:001 DB:-- RFSH13fMFetch
831#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYiowr8'>r8'->W
832#009H T5 AB:0FF DB:--21fIOWriteBCW
833#010H T6 AB:0FF DB:C3 WR IORQ22fIOWrite
834#011H T7 AB:0FF DB:C3 WR IORQ23fIOWrite
835#012H T8 AB:0FF DB:C3 WR IORQ24fIOWriteY
836#end
837
838#if pla[91] & pla[21] : ini/inir/ind/indr5,4,3,(5)
839#035H T1 AB:00A DB:-- M111fMFetch<resHXORP
840#036H T2 AB:00A DB:B2 M1 MREQ RD12fMFetchF<<
841#037H T3 AB:004 DB:-- RFSH13fMFetchAF>>>s0busbus******
842#038H T4 AB:004 DB:-- RFSH MREQ14fMFetchY
843#039H T5 AB:004 DB:--15ior
844#040H T6 AB:000 DB:--21fIOReadBCW
845#041H T7 AB:000 DB:-- RD IORQ22fIOReadB>alu>s00busLADD*NEG_OP2
846#042H T8 AB:000 DB:-- RD IORQ23fIOReadB<alu<resHADD***NEG_OP2
847#043H T9 AB:000 DB:-- RD IORQ24fIOReadmwd<Ralu>s0busSNEG_OP2
848#044H T10 AB:000 DB:--31fMWriteHLW
849#045H T11 AB:000 DB:B1 MREQ32fMWriteHLop3R
850#046H T12 AB:000 DB:B1 MREQ WR33fMWriteYBZ
851#047H T13 AB:000 DB:--41PCW
852#048H T14 AB:000 DB:--42PC-R
853#049H T15 AB:000 DB:--43PCW
854#050H T16 AB:000 DB:--44PC-R
855#051H T17 AB:000 DB:--45Y
856#end
857
858#if pla[91] & pla[20] : outi/outir/outd/outdr5,4,3,(5)
859#035H T1 AB:00A DB:-- M111fMFetchalu<resHXORP
860#036H T2 AB:00A DB:B3 M1 MREQ RD12fMFetchF<<
861#037H T3 AB:004 DB:-- RFSH13fMFetchAF>>>s0busbus******
862#038H T4 AB:004 DB:-- RFSH MREQ14fMFetchYB>alu>s00busLADD*NEG_OP2
863#039H T5 AB:004 DB:--15mrB<alu<resHADD**NEG_OP2
864#040H T6 AB:000 DB:--21fMReadHLW
865#041H T7 AB:000 DB:21 MREQ RD22fMReadHLop3R
866#042H T8 AB:000 DB:21 MREQ RD23fMReadiowL>ld>s0bus
867#043H T9 AB:000 DB:--31fIOWriteBCW
868#044H T10 AB:000 DB:21 WR IORQ32fIOWrited<Ralu>s0busLADD*S
869#045H T11 AB:000 DB:21 WR IORQ33fIOWritealu<resHADD*
870#046H T12 AB:000 DB:21 WR IORQ34fIOWriteYBZ
871#047H T13 AB:000 DB:--41PCW
872#048H T14 AB:000 DB:--42PC-R
873#049H T15 AB:000 DB:--43PCW
874#050H T16 AB:000 DB:--44PC-R
875#051H T17 AB:000 DB:--45Y
876#end
877
878// Jump Group
879
880#if pla[29] : jp nn4,3,3
881#001H T1 AB:000 DB:-- M111fMFetch
882#002H T2 AB:000 DB:C3 M1 MREQ RD12fMFetch
883#003H T3 AB:000 DB:-- RFSH13fMFetch
884#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
885#005H T5 AB:001 DB:--21fMReadPCW
886#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
887#007H T7 AB:001 DB:01 MREQ RD23fMReadmrZ<ld<R
888#008H T8 AB:002 DB:--31fMReadPCW
889#009H T9 AB:002 DB:02 MREQ RD32fMReadPC+R
890#010H T10 AB:002 DB:02 MREQ RD33fMReadYWZWW<hd<RNOT_PC!
891#end
892
893#if pla[43] : jp cc,nn4,3,3
894#001H T1 AB:000 DB:-- M111fMFetch
895#002H T2 AB:000 DB:C2 M1 MREQ RD12fMFetch
896#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
897#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
898#005H T5 AB:001 DB:--21fMReadPCW
899#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
900#007H T7 AB:001 DB:01 MREQ RD23fMReadmrZ<ld<R
901#008H T8 AB:002 DB:--31fMReadPCW
902#009H T9 AB:002 DB:02 MREQ RD32fMReadPC+R
903#010H T10 AB:002 DB:02 MREQ RD33fMReadYWZ?WW?<hd<RSelect WZ if condition is true
904#end
905
906#if pla[47] : jr e4,3,5
907#001H T1 AB:000 DB:-- M111fMFetch
908#002H T2 AB:000 DB:18 M1 MREQ RD12fMFetch
909#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
910#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
911#005H T5 AB:001 DB:--21fMReadPCW
912#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
913#007H T7 AB:001 DB:01 MREQ RD23fMReadY
914#008H T8 AB:001 DB:--31d<Ralu>s0bus*Reads "e" from the data latch
915#009H T9 AB:001 DB:--32PCl>ldalu>s0busLADD*
916#010H T10 AB:001 DB:--33Z<lualu<resHADD*
917#011H T11 AB:001 DB:--34PCh>alu>s00busLADC*?SF_NEG
918#012H T12 AB:001 DB:--35YWZWW<halu<resHADC?SF_NEG, NOT_PC!
919#end
920
921#if pla[48] : jr ss,e4,3,(5)
922#001H T1 AB:000 DB:-- M111fMFetch
923#002H T2 AB:000 DB:20 M1 MREQ RD12fMFetch
924#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
925#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmrCondShortM1/T4 evaluates a condition: force short
926#005H T5 AB:001 DB:--21fMReadPCW
927#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
928#007H T7 AB:001 DB:01 MREQ RD23fMReadYSS
929#008H T8 AB:001 DB:--31d<Ralu>s0bus*Reads "e" from the data latch
930#009H T9 AB:001 DB:--32PCl>ldalu>s0busLADD*
931#010H T10 AB:001 DB:--33Z<lualu<resHADD*
932#011H T11 AB:001 DB:--34PCh>alu>s00busLADC*?SF_NEG
933#012H T12 AB:001 DB:--35YWZWW<halu<resHADC?SF_NEG, NOT_PC!
934#end
935
936#if pla[6] : jp hl4
937#001H T1 AB:000 DB:-- M111fMFetch
938#002H T2 AB:000 DB:E9 M1 MREQ RD12fMFetch
939#003H T3 AB:000 DB:-- RFSH13fMFetch
940#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYHLWNOT_PC!
941#end
942
943#if pla[26] : djnz e5,3,(5)
944#001H T1 AB:000 DB:-- M111fMFetch
945#002H T2 AB:000 DB:10 M1 MREQ RD12fMFetch
946#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
947#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYB>halu>s00busLADD*NEG_OP2B=B-1
948#005H T5 AB:000 DB:--15mrB<alu<resHADD*NEG_OP2
949#006H T6 AB:001 DB:--21fMReadPCW
950#007H T7 AB:001 DB:01 MREQ RD22fMReadPC+R
951#008H T8 AB:001 DB:01 MREQ RD23fMReadYZF
952#009H T9 AB:001 DB:--31d<Ralu>s0bus*Reads "e" from the data latch
953#010H T10 AB:001 DB:--32PCl>ldalu>s0busLADD*
954#011H T11 AB:001 DB:--33Z<lualu<resHADD*
955#012H T12 AB:001 DB:--34PCh>halu>s00busLADC*?SF_NEG
956#013H T13 AB:001 DB:--35YWZWW<halu<resHADC?SF_NEG, NOT_PC!
957#end
958
959// Call and Return Group
960
961#if pla[24] : call nn4,3,4,3,3
962#001H T1 AB:000 DB:-- M111fMFetch
963#002H T2 AB:000 DB:CD M1 MREQ RD12fMFetch
964#003H T3 AB:000 DB:-- RFSH13fMFetch
965#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
966#005H T5 AB:001 DB:--21fMReadPCW
967#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
968#007H T7 AB:001 DB:01 MREQ RD23fMReadmrZ<ld<R
969#008H T8 AB:002 DB:--31fMReadPCW
970#009H T9 AB:002 DB:02 MREQ RD32fMReadPC+R
971#010H T10 AB:002 DB:02 MREQ RD33fMReadW<hd<R
972#011H T11 AB:002 DB:--34mwSP-W
973#012H T12 AB:000 DB:--41fMWrite-PPCh>hu>W
974#013H T13 AB:000 DB:00 MREQ42fMWriteSP-R
975#014H T14 AB:000 DB:00 MREQ WR43fMWritemwSP-W
976#015H T15 AB:0FF DB:--51fMWrite-PPCl>l>W
977#016H T16 AB:0FF DB:03 MREQ52fMWriteSP-R
978#017H T17 AB:0FF DB:03 MREQ WR53fMWriteYWZWNOT_PC!
979#end
980
981#if pla[42] : call cc,nn4,3,3/(4,3,4,3,3)
982#001H T1 AB:000 DB:-- M111fMFetch
983#002H T2 AB:000 DB:C4 M1 MREQ RD12fMFetch
984#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
985#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
986#005H T5 AB:001 DB:--21fMReadPCW
987#006H T6 AB:001 DB:01 MREQ RD22fMReadPC+R
988#007H T7 AB:001 DB:01 MREQ RD23fMReadmrZ<ld<R
989#008H T8 AB:002 DB:--31fMReadPCW
990#009H T9 AB:002 DB:02 MREQ RD32fMReadPC+R
991#010H T10 AB:002 DB:02 MREQ RD33fMReadCCCCW?<hd<RLoad W only if condition is true
992#011H T11 AB:002 DB:--34mwSP-W
993#012H T12 AB:000 DB:--41fMWrite-PPCh>hu>W
994#013H T13 AB:000 DB:00 MREQ42fMWriteSP-R
995#014H T14 AB:000 DB:00 MREQ WR43fMWritemwSP-W
996#015H T15 AB:0FF DB:--51fMWrite-PPCl>l>W
997#016H T16 AB:0FF DB:03 MREQ52fMWriteSP-R
998#017H T17 AB:0FF DB:03 MREQ WR53fMWriteYWZWNOT_PC!
999#end
1000
1001#if pla[35] : ret4,3,3
1002#001H T1 AB:000 DB:-- M111fMFetch
1003#002H T2 AB:000 DB:C9 M1 MREQ RD12fMFetch
1004#003H T3 AB:000 DB:-- RFSH13fMFetch
1005#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYmr
1006#005H T5 AB:0FF DB:--21fMReadSPW
1007#006H T6 AB:0FF DB:01 MREQ RD22fMReadSP+R
1008#007H T7 AB:0FF DB:01 MREQ RD23fMReadmrZ<ld<R
1009#008H T8 AB:000 DB:--31fMReadSPW
1010#009H T9 AB:000 DB:C9 MREQ RD32fMReadSP+R
1011#010H T10 AB:000 DB:C9 MREQ RD33fMReadYWZWW<hd<RNOT_PC!
1012#end
1013
1014#if pla[45] : ret cc5/(5,3,3)
1015#001H T1 AB:000 DB:-- M111fMFetch
1016#002H T2 AB:000 DB:C0 M1 MREQ RD12fMFetch
1017#003H T3 AB:000 DB:-- RFSH13fMFetchAF>>>s0busbus******
1018#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchY
1019#005H T5 AB:000 DB:--15mrCC
1020#006H T6 AB:001 DB:--21fMReadSPW
1021#007H T7 AB:001 DB:01 MREQ RD22fMReadSP+R
1022#008H T8 AB:001 DB:01 MREQ RD23fMReadmrZ<ld<R
1023#009H T9 AB:002 DB:--31fMReadSPW
1024#010H T10 AB:002 DB:02 MREQ RD32fMReadSP+R
1025#011H T11 AB:002 DB:02 MREQ RD33fMReadYWZWW<hd<RNOT_PC!
1026#end
1027
1028#if pla[46] : reti/retn4,3,3
1029#005H T1 AB:001 DB:-- M111fMFetch
1030#006H T2 AB:001 DB:45 M1 MREQ RD12fMFetch
1031#007H T3 AB:001 DB:-- RFSH13fMFetch
1032#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmrRETNIFF1<=IFF2
1033#009H T5 AB:001 DB:--21fMReadSPW
1034#010H T6 AB:001 DB:45 MREQ RD22fMReadSP+R
1035#011H T7 AB:001 DB:45 MREQ RD23fMReadmrZ<ld<R
1036#012H T8 AB:002 DB:--31fMReadSPW
1037#013H T9 AB:002 DB:01 MREQ RD32fMReadSP+R
1038#014H T10 AB:002 DB:01 MREQ RD33fMReadYWZWW<hd<RNOT_PC!
1039#end
1040
1041#if pla[56] : rst p5,3,3
1042#001H T1 AB:000 DB:-- M111fMFetch
1043#002H T2 AB:000 DB:C7 M1 MREQ RD12fMFetch
1044#003H T3 AB:000 DB:-- RFSH13fMFetchWZ<R<op10MASK_543, RST_NMI, RST_INTRST instruction also executes on NMI and INT
1045#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchY
1046#005H T5 AB:000 DB:--15mwSP-Wd<R>s0busStore im2 vector into the ALU op1
1047#006H T6 AB:000 DB:--21fMWrite-PPCh>hu>W
1048#007H T7 AB:000 DB:00 MREQ22fMWriteSP-R
1049#008H T8 AB:000 DB:00 MREQ WR23fMWritemwSP-W
1050#009H T9 AB:0FF DB:--31fMWrite-PPCl>l>W
1051#010H T10 AB:0FF DB:01 MREQ32fMWriteSP-R
1052#011H T11 AB:0FF DB:01 MREQ WR33fMWriteINTINTWZWNOT_PC!Value on the bus into ALU OP
1053// INTR IM2 continues here...Extension for IM2 interrupt mode
1054#012H T12 AB:001 DB:--41fMReadI*W<lu<op1
1055#013H T13 AB:001 DB:01 MREQ RD42fMRead>+R>ld>s0bus
1056#014H T14 AB:001 DB:01 MREQ RD43fMReadmrZ<ld<R
1057#015H T15 AB:002 DB:--51fMReadI*W<lu<op1
1058#016H T16 AB:002 DB:02 MREQ RD52fMRead+R
1059#017H T17 AB:002 DB:02 MREQ RD53fMReadYWZWW<hd<RNOT_PC!
1060#end
1061
1062// CB-Table opcodes
1063
1064#if pla[49] : Every CB with IX/IY4,3,5,+
1065#005H T1 AB:001 DB:-- M111fMFetch
1066#006H T2 AB:001 DB:CB M1 MREQ RD12fMFetch
1067#007H T3 AB:001 DB:-- RFSH13fMFetchAF>>>s0busbus******CB
1068#008H T4 AB:001 DB:-- RFSH MREQ14fMFetchYmr
1069#009H T5 AB:002 DB:--21fMReadPCW
1070#010H T6 AB:002 DB:01 MREQ RD22fMReadPC+R
1071#011H T7 AB:002 DB:01 MREQ RD23fMReadmr
1072#012H T8 AB:003 DB:--31fMReadPCWWZ=IX+d
1073#013H T9 AB:003 DB:00 MREQ RD32fMReadPC+RWZ=IX+d
1074#014H T10 AB:003 DB:00 MREQ RD33fMReadWZ=IX+dLoads the opcode byte in parallel
1075#015H T11 AB:003 DB:--34WZ=IX+d
1076#016H T12 AB:003 DB:--35mrWZ=IX+d
1077#017H T13 AB:000 DB:--41R>bsbusbusOpcodeToIRLoads instruction register; starts the execute cycle
1078// Loading a new instruction immediately changes PLA wires and continues into the new effective instructions' M4/T1 cycle
1079#end
1080
1081// Special Purposes PLA Entries
1082
1083#if pla[3] : IX/IY4
1084#001H T1 AB:000 DB:-- M111fMFetch
1085#002H T2 AB:000 DB:DD M1 MREQ RD12fMFetchIX_IY
1086#003H T3 AB:000 DB:-- RFSH13fMFetch
1087#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYNO_INTSAt last M/T, inhibit interrupts
1088#end
1089
1090#if pla[44] : CB prefix4
1091#001H T1 AB:000 DB:-- M111fMFetch
1092#002H T2 AB:000 DB:CB M1 MREQ RD12fMFetchCB
1093#003H T3 AB:000 DB:-- RFSH13fMFetch
1094#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYNO_INTSAt last M/T, inhibit interrupts
1095#end Only set CB ff and clear ED, XX ff
1096
1097#if pla[51] : ED prefix4
1098#001H T1 AB:000 DB:-- M111fMFetch
1099#002H T2 AB:000 DB:ED M1 MREQ RD12fMFetchED
1100#003H T3 AB:000 DB:-- RFSH13fMFetch
1101#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchYYNO_INTSAt last M/T, inhibit interrupts
1102#end Only set ED ff and clear CB, XX ff
1103
1104#if pla[76] : ALU CP
1105#alwaysCP1
1106#001H T1 AB:000 DB:-- M111fMFetchVUpdate P/V once on a high nibble phase
1107#endDoes not store the result!
1108
1109#if pla[78] : ALU SUB
1110#alwaysSUB1
1111#001H T1 AB:000 DB:-- M111fMFetchA<*VUpdate P/V and store result to A
1112#end
1113
1114#if pla[79] : ALU SBC
1115#alwaysSBC1
1116#001H T1 AB:000 DB:-- M111fMFetchA<*VUpdate P/V and store result to A
1117#end
1118
1119#if pla[80] : ALU ADC
1120#alwaysADC0
1121#001H T1 AB:000 DB:-- M111fMFetchA<*VUpdate P/V and store result to A
1122#end
1123
1124#if pla[84] : ALU ADD
1125#alwaysADD0
1126#001H T1 AB:000 DB:-- M111fMFetchA<*VUpdate P/V and store result to A
1127#end
1128
1129#if pla[85] : ALU AND
1130#alwaysAND0
1131#001H T1 AB:000 DB:-- M111fMFetchA<*PUpdate P/V and store result to A
1132#002H T2 AB:000 DB:A0 M1 MREQ RD12fMFetch0AND clears CF
1133#end
1134
1135#if pla[86] : ALU OR
1136#alwaysOR0
1137#001H T1 AB:000 DB:-- M111fMFetchA<*PUpdate P/V and store result to A
1138#002H T2 AB:000 DB:B0 M1 MREQ RD12fMFetch0OR clears CF
1139#end
1140
1141#if pla[88] : ALU XOR
1142#alwaysXOR0
1143#001H T1 AB:000 DB:-- M111fMFetchA<*PUpdate P/V and store result to A
1144#002H T2 AB:000 DB:A8 M1 MREQ RD12fMFetch0XOR clears CF
1145#end
1146
1147// State machine to compute (IX+d)
1148#if ixy_d : Compute WZ=IX+d
1149#001H T1 any M-cycle?1d<Ralu>s0bus*Reads "d" from the data latch
1150#002H T2?2L>ldalu>s0busLADD*
1151#003H T3?3Z<lualu<resHADCW
1152#004H T4?4H>alu>s00busLADC*R?SF_NEGStores result into WZ
1153#005H T5?5WZWW<halu<resHADC*?SF_NEG, CLR_IX_IYand disables any further use of IX/IY
1154#end
1155
1156// Default instruction fetch (M1) state machine
1157#if 1 :
1158#001H T1 AB:000 DB:-- M111fMFetchPC+RLFetch/execute overlap
1159#002H T2 AB:000 DB:CB M1 MREQ RD12fMFetchIRWRCLR_IX_IY, CLR_CB_ED, OpcodeToIR, OverrideIRPrepares for the next execution cycle
1160#003H T3 AB:000 DB:-- RFSH13fMFetchIR+RLLimit6Fetch opcode, evaluate flags
1161#004H T4 AB:000 DB:-- RFSH MREQ14fMFetchEvalCond
1162#end
1163
1164// For all undecoded instructions, at M1/T4 advance a byte to the next opcode
1165#if ~validPLA : A catch-all case
1166#001H14Y
1167#end
1168
1169// The last cycle of an instruction is also the first cycle of the next one
1170#if setM1 :
1171#alwaysPCWFetch/execute overlap
1172#end