dsp4.cpp 997 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include <../base.hpp>
  2. #define DSP4_CPP
  3. #include "dsp4.hpp"
  4. namespace DSP4i {
  5. inline uint16 READ_WORD(uint8 *addr) {
  6. return (addr[0]) + (addr[1] << 8);
  7. }
  8. inline uint32 READ_DWORD(uint8 *addr) {
  9. return (addr[0]) + (addr[1] << 8) + (addr[2] << 16) + (addr[3] << 24);
  10. }
  11. inline void WRITE_WORD(uint8 *addr, uint16 data) {
  12. addr[0] = data;
  13. addr[1] = data >> 8;
  14. }
  15. #define bool8 uint8
  16. #include "dsp4emu.c"
  17. #undef bool8
  18. };
  19. void DSP4::init() {
  20. }
  21. void DSP4::enable() {
  22. }
  23. void DSP4::power() {
  24. reset();
  25. }
  26. void DSP4::reset() {
  27. DSP4i::InitDSP4();
  28. }
  29. uint8 DSP4::read(unsigned addr) {
  30. addr &= 0xffff;
  31. if(addr < 0xc000) {
  32. DSP4i::dsp4_address = addr;
  33. DSP4i::DSP4GetByte();
  34. return DSP4i::dsp4_byte;
  35. }
  36. return 0x80;
  37. }
  38. void DSP4::write(unsigned addr, uint8 data) {
  39. addr &= 0xffff;
  40. if(addr < 0xc000) {
  41. DSP4i::dsp4_address = addr;
  42. DSP4i::dsp4_byte = data;
  43. DSP4i::DSP4SetByte();
  44. }
  45. }