emu51.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*******************************************************************************
  2. * Emu51
  3. * code_51.h:
  4. * Created by mlt on 22/03/23.
  5. ******************************************************************************/
  6. #ifndef EMU51_EMU51_H
  7. #define EMU51_EMU51_H
  8. #include <stdint.h>
  9. #include <allegro.h>
  10. #define bit0 0x01
  11. #define bit1 0x02
  12. #define bit2 0x04
  13. #define bit3 0x08
  14. #define bit4 0x10
  15. #define bit5 0x20
  16. #define bit6 0x40
  17. #define bit7 0x80
  18. extern uint8_t *ram;
  19. extern uint8_t *prog;
  20. extern FONT *mainf;
  21. extern uint8_t SFR[0x100]; // internal memory and sfr area 256 bytes
  22. extern uint8_t EXT_RAM[0x10000]; // external memory 64kB
  23. extern uint8_t EXT_PMEM[0x10000]; // external memory 64kB for program
  24. extern uint8_t *Acc; // 8-bit accumlator
  25. extern uint16_t *DPTR; // 16-bit register
  26. extern uint8_t *DPH; // high byte of DPTR
  27. extern uint8_t *DPL; // low byte of DPTR
  28. extern uint8_t *B; // B register
  29. extern uint8_t *SP; // Stack Pointer
  30. extern uint8_t *PSW; // Program Status Word
  31. extern uint8_t *P0; // 1st Port
  32. extern uint8_t *P1; // 2nd Port
  33. extern uint8_t *P2; // 3rd Port
  34. extern uint8_t *P3; // 4th port
  35. extern uint8_t *SBUF; // Serial transmission Buffer
  36. extern uint8_t *IE; // Int Enable
  37. extern uint8_t *SCON; // Serial Control
  38. extern uint8_t *TH1; // Timer1 High
  39. extern uint8_t *TH0; // Timer0 High
  40. extern uint8_t *TL1; // Timer1 Low
  41. extern uint8_t *TL0; // Timer0 Low
  42. extern uint8_t *TMOD; // Timer Mode
  43. extern uint8_t *TCON; // Timer Control
  44. extern uint8_t *PCON; // Power Control
  45. extern uint8_t *R; // Additional 8 Rx Registers
  46. extern uint16_t PC; // Progam Counter
  47. uint8_t check_Bit(uint8_t bit);
  48. #endif /* EMU51_EMU51_H */