Previous 199869 Revisions Next

r22050 Saturday 23rd March, 2013 at 19:19:10 UTC by R. Belmont
Stop feeding Mogwai after midnight (nw)
[src/emu/cpu/m6502]m740.c om740.lst

trunk/src/emu/cpu/m6502/om740.lst
r22049r22050
152152   TMP = read_pc();
153153   TMP = set_h(TMP, read_pc());
154154   TMP = read(TMP);
155   TMP2 = read(X);
155156   do_adct(TMP);
157   write(X, TMP2);
156158   prefetch();
157159
158160adct_abx
r22049r22050
163165   }
164166   TMP += X;
165167   TMP = read(TMP);
168   TMP2 = read(X);
166169   do_adct(TMP);
170   write(X, TMP2);
167171   prefetch();
168172
169173adct_aby
r22049r22050
174178   }
175179   TMP += Y;
176180   TMP = read(TMP);
181   TMP2 = read(X);
177182   do_adct(TMP);
183   write(X, TMP2);
178184   prefetch();
179185
180186adct_idx
r22049r22050
183189   TMP2 += X;
184190   TMP = read(TMP2 & 0xff);
185191   TMP = set_h(TMP, read((TMP2+1) & 0xff));
192   TMP2 = read(X);
186193   do_adct(read(TMP));
194   write(X, TMP2);
187195   prefetch();
188196
189197adct_idy
r22049r22050
193201   if(page_changing(TMP, Y)) {
194202      read(set_l(TMP, TMP+Y));
195203   }
204   TMP2 = read(X);
196205   do_adct(read(TMP+Y));
206   write(X, TMP2);
197207   prefetch();
198208
199209adct_imm
200210   TMP = read_pc();
211   TMP2 = read(X);
201212   do_adct(TMP);
213   write(X, TMP2);
202214   prefetch();
203215
204216adct_zpg
205217   TMP = read_pc();
206218   TMP = read(TMP);
219   TMP2 = read(X);
207220   do_adct(TMP);
221   write(X, TMP2);
208222   prefetch();
209223
210224adct_zpx
211225   TMP = read_pc();
212226   read(TMP);
213227   TMP = read(UINT8(TMP+X));
228   TMP2 = read(X);
214229   do_adct(TMP);
230   write(X, TMP2);
215231   prefetch();
216232
217233andt_aba
r22049r22050
654670   TMP = read_pc();
655671   TMP = set_h(TMP, read_pc());
656672   TMP = read(TMP);
673   TMP2 = read(X);
657674   do_sbct(TMP);
675   write(X, TMP2);
658676   prefetch();
659677
660678sbct_abx
r22049r22050
665683   }
666684   TMP += X;
667685   TMP = read(TMP);
686   TMP2 = read(X);
668687   do_sbct(TMP);
688   write(X, TMP2);
669689   prefetch();
670690
671691sbct_aby
r22049r22050
676696   }
677697   TMP += Y;
678698   TMP = read(TMP);
699   TMP2 = read(X);
679700   do_sbct(TMP);
701   write(X, TMP2);
680702   prefetch();
681703
682704sbct_idx
r22049r22050
685707   TMP2 += X;
686708   TMP = read(TMP2 & 0xff);
687709   TMP = set_h(TMP, read((TMP2+1) & 0xff));
710   TMP2 = read(X);
688711   do_sbct(read(TMP));
712   write(X, TMP2);
689713   prefetch();
690714
691715sbct_idy
r22049r22050
695719   if(page_changing(TMP, Y)) {
696720      read(set_l(TMP, TMP+Y));
697721   }
722   TMP2 = read(X);
698723   do_sbct(read(TMP+Y));
724   write(X, TMP2);
699725   prefetch();
700726
701727sbct_imm
702728   TMP = read_pc();
729   TMP2 = read(X);
703730   do_sbct(TMP);
731   write(X, TMP2);
704732   prefetch();
705733
706734sbct_zpg
707735   TMP = read_pc();
708736   TMP = read(TMP);
737   TMP2 = read(X);
709738   do_sbct(TMP);
739   write(X, TMP2);
710740   prefetch();
711741
712742sbct_zpx
713743   TMP = read_pc();
714744   read(TMP);
715745   TMP = read(UINT8(TMP+X));
746   TMP2 = read(X);
716747   do_sbct(TMP);
748   write(X, TMP2);
717749   prefetch();
718750
trunk/src/emu/cpu/m6502/m740.c
r22049r22050
113113{
114114   UINT8 c = P & F_C ? 0 : 1;
115115   P &= ~(F_N|F_V|F_Z|F_C);
116   TMP2 = read(X);
117116   UINT16 diff = TMP2 - val - c;
118117   UINT8 al = (TMP2 & 15) - (val & 15) - c;
119118   if(INT8(al) < 0)
r22049r22050
130129   if(INT8(ah) < 0)
131130      ah -= 6;
132131   TMP2 = (ah << 4) | (al & 15);
133   write(X, TMP2);
134132}
135133
136134void m740_device::do_sbc_ndt(UINT8 val)
137135{
138   UINT16 diff;
139
140   TMP2 = read(X);
141   diff = TMP2 - val - (P & F_C ? 0 : 1);
136   UINT16 diff = TMP2 - val - (P & F_C ? 0 : 1);
142137   P &= ~(F_N|F_V|F_Z|F_C);
143138   if(!UINT8(diff))
144139      P |= F_Z;
r22049r22050
149144   if(!(diff & 0xff00))
150145      P |= F_C;
151146   TMP2 = diff;
152   write(X, TMP2);
153147}
154148
155149void m740_device::do_sbct(UINT8 val)
r22049r22050
164158{
165159   UINT8 c = P & F_C ? 1 : 0;
166160   P &= ~(F_N|F_V|F_Z|F_C);
167   TMP2 = read(X);
168161   UINT8 al = (TMP2 & 15) + (val & 15) + c;
169162   if(al > 9)
170163      al += 6;
r22049r22050
180173   if(ah > 15)
181174      P |= F_C;
182175   TMP2 = (ah << 4) | (al & 15);
183   write(X, TMP2);
184176}
185177
186178void m740_device::do_adc_ndt(UINT8 val)
187179{
188180   UINT16 sum;
189   TMP2 = read(X);
190181   sum = TMP2 + val + (P & F_C ? 1 : 0);
191182   P &= ~(F_N|F_V|F_Z|F_C);
192183   if(!UINT8(sum))
r22049r22050
198189   if(sum & 0xff00)
199190      P |= F_C;
200191   TMP2 = sum;
201   write(X, TMP2);
202192}
203193
204194void m740_device::do_adct(UINT8 val)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team