cpu.h
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:2k
源码类别:

Windows CE

开发平台:

C/C++

  1. #ifndef _CPU_H_
  2. #define _CPU_H_
  3. #include "config.h"
  4. #ifdef ASAP /* external project, see http://asap.sf.net */
  5. #include "asap_internal.h"
  6. #else
  7. #include "atari.h"
  8. #endif
  9. #define N_FLAG 0x80
  10. #define V_FLAG 0x40
  11. #define B_FLAG 0x10
  12. #define D_FLAG 0x08
  13. #define I_FLAG 0x04
  14. #define Z_FLAG 0x02
  15. #define C_FLAG 0x01
  16. void CPU_Initialise(void); /* used in the assembler version of cpu.c only */
  17. void CPU_GetStatus(void);
  18. void CPU_PutStatus(void);
  19. void CPU_Reset(void);
  20. void NMI(void);
  21. void GO(int limit);
  22. #define GenerateIRQ() (IRQ = 1)
  23. #ifdef FALCON_CPUASM
  24. extern void CPU_INIT(void);
  25. extern void CPUGET(void); /* put from CCR, N & Z FLAG into regP */
  26. extern void CPUPUT(void); /* put from regP into CCR, N & Z FLAG */
  27. #endif
  28. extern UWORD regPC;
  29. extern UBYTE regA;
  30. extern UBYTE regP;
  31. extern UBYTE regS;
  32. extern UBYTE regY;
  33. extern UBYTE regX;
  34. #define SetN regP |= N_FLAG
  35. #define ClrN regP &= (~N_FLAG)
  36. #define SetV regP |= V_FLAG
  37. #define ClrV regP &= (~V_FLAG)
  38. #define SetB regP |= B_FLAG
  39. #define ClrB regP &= (~B_FLAG)
  40. #define SetD regP |= D_FLAG
  41. #define ClrD regP &= (~D_FLAG)
  42. #define SetI regP |= I_FLAG
  43. #define ClrI regP &= (~I_FLAG)
  44. #define SetZ regP |= Z_FLAG
  45. #define ClrZ regP &= (~Z_FLAG)
  46. #define SetC regP |= C_FLAG
  47. #define ClrC regP &= (~C_FLAG)
  48. extern UBYTE IRQ;
  49. extern void (*rts_handler)(void);
  50. extern UBYTE cim_encountered;
  51. #define REMEMBER_PC_STEPS 64
  52. extern UWORD remember_PC[REMEMBER_PC_STEPS];
  53. extern unsigned int remember_PC_curpos;
  54. extern int remember_xpos[REMEMBER_PC_STEPS];
  55. #define REMEMBER_JMP_STEPS 16
  56. extern UWORD remember_JMP[REMEMBER_JMP_STEPS];
  57. extern unsigned int remember_jmp_curpos;
  58. /* extern const int cycles[256]; */
  59. #ifdef MONITOR_PROFILE
  60. extern int instruction_count[256];
  61. #endif
  62. #endif /* _CPU_H_ */