114 #include "sidplayfp/sidtypes.h"
115 #include "sidplayfp/sidendian.h"
128 :func(0), nosteal(
false) {}
141 uint_least16_t instrStartPC;
142 int_least8_t lastAddrCycle;
146 uint_least16_t Cycle_HighByteWrongEffectiveAddress;
148 uint_least16_t Cycle_Pointer;
150 uint8_t Register_Accumulator;
153 uint_least32_t Register_ProgramCounter;
161 uint_least16_t Register_StackPointer;
193 event_clock_t m_dbgClk;
204 void eventWithoutSteals (
void);
205 void eventWithSteals (
void);
207 void Initialise (
void);
210 inline void setFlagsNZ(
const uint8_t value);
211 inline uint8_t getStatusRegister(
void);
212 inline void setStatusRegister(
const uint8_t sr);
215 inline void RSTLoRequest (
void);
216 inline void RSTHiRequest (
void);
217 inline void NMILoRequest (
void);
218 inline void NMIHiRequest (
void);
219 inline void IRQRequest (
void);
220 inline void IRQLoRequest (
void);
221 inline void IRQHiRequest (
void);
222 void interruptsAndNextOpcode (
void);
225 virtual void FetchOpcode (
void);
226 inline void throwAwayFetch (
void);
227 inline void throwAwayRead (
void);
228 inline void FetchDataByte (
void);
229 inline void FetchLowAddr (
void);
230 inline void FetchLowAddrX (
void);
231 inline void FetchLowAddrY (
void);
232 inline void FetchHighAddr (
void);
233 inline void FetchHighAddrX (
void);
234 inline void FetchHighAddrX2 (
void);
235 inline void FetchHighAddrY (
void);
236 inline void FetchHighAddrY2 (
void);
237 inline void FetchLowEffAddr (
void);
238 inline void FetchHighEffAddr (
void);
239 inline void FetchHighEffAddrY (
void);
240 inline void FetchHighEffAddrY2 (
void);
241 inline void FetchLowPointer (
void);
242 inline void FetchLowPointerX (
void);
243 inline void FetchHighPointer (
void);
244 inline void FetchEffAddrDataByte (
void);
245 inline void PutEffAddrDataByte (
void);
246 inline void PushLowPC (
void);
247 inline void PushHighPC (
void);
248 inline void PushSR (
const bool b_flag);
249 inline void PushSR (
void);
250 inline void PopLowPC (
void);
251 inline void PopHighPC (
void);
252 inline void PopSR (
void);
253 inline void WasteCycle (
void);
256 inline void adc_instr (
void);
257 inline void alr_instr (
void);
258 inline void anc_instr (
void);
259 inline void and_instr (
void);
260 inline void ane_instr (
void);
261 inline void arr_instr (
void);
262 inline void asl_instr (
void);
263 inline void asla_instr (
void);
264 inline void aso_instr (
void);
265 inline void axa_instr (
void);
266 inline void axs_instr (
void);
267 inline void bcc_instr (
void);
268 inline void bcs_instr (
void);
269 inline void beq_instr (
void);
270 inline void bit_instr (
void);
271 inline void bmi_instr (
void);
272 inline void bne_instr (
void);
273 inline void branch_instr (
const bool condition);
274 inline void bpl_instr (
void);
275 inline void brk_instr (
void);
276 inline void bvc_instr (
void);
277 inline void bvs_instr (
void);
278 inline void clc_instr (
void);
279 inline void cld_instr (
void);
280 inline void cli_instr (
void);
281 inline void clv_instr (
void);
282 inline void cmp_instr (
void);
283 inline void cpx_instr (
void);
284 inline void cpy_instr (
void);
285 inline void dcm_instr (
void);
286 inline void dec_instr (
void);
287 inline void dex_instr (
void);
288 inline void dey_instr (
void);
289 inline void eor_instr (
void);
290 inline void inc_instr (
void);
291 inline void ins_instr (
void);
292 inline void inx_instr (
void);
293 inline void iny_instr (
void);
294 inline void jmp_instr (
void);
295 inline void las_instr (
void);
296 inline void lax_instr (
void);
297 inline void lda_instr (
void);
298 inline void ldx_instr (
void);
299 inline void ldy_instr (
void);
300 inline void lse_instr (
void);
301 inline void lsr_instr (
void);
302 inline void lsra_instr (
void);
303 inline void oal_instr (
void);
304 inline void ora_instr (
void);
305 inline void pha_instr (
void);
306 inline void pla_instr (
void);
307 inline void plp_instr (
void);
308 inline void rla_instr (
void);
309 inline void rol_instr (
void);
310 inline void rola_instr (
void);
311 inline void ror_instr (
void);
312 inline void rora_instr (
void);
313 inline void rra_instr (
void);
314 inline void rti_instr (
void);
315 inline void rts_instr (
void);
316 inline void sbx_instr (
void);
317 inline void say_instr (
void);
318 inline void sbc_instr (
void);
319 inline void sec_instr (
void);
320 inline void sed_instr (
void);
321 inline void sei_instr (
void);
322 inline void shs_instr (
void);
323 inline void sta_instr (
void);
324 inline void stx_instr (
void);
325 inline void sty_instr (
void);
326 inline void tas_instr (
void);
327 inline void tax_instr (
void);
328 inline void tay_instr (
void);
329 inline void tsx_instr (
void);
330 inline void txa_instr (
void);
331 inline void txs_instr (
void);
332 inline void tya_instr (
void);
333 inline void xas_instr (
void);
334 void illegal_instr (
void);
337 inline void Perform_ADC (
void);
338 inline void Perform_SBC (
void);
343 virtual void reset (
void);
344 virtual void credits (
char *str);
345 virtual void DumpState (
void);
346 void debug (
const bool enable, FILE *out);
347 void aecSignal (
const bool state);
351 virtual void triggerRST (
void);
352 virtual void triggerNMI (
void);
353 virtual void triggerIRQ (
void);
354 void clearIRQ (
void);
357 #endif // _mos6510c_h_