File: upd96050.hpp

package info (click to toggle)
libretro-bsnes-mercury 094%2Bgit20220807-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 9,792 kB
  • sloc: cpp: 109,408; ansic: 3,554; makefile: 991; xml: 115; asm: 55; sh: 1
file content (40 lines) | stat: -rw-r--r-- 739 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef PROCESSOR_UPD96050_HPP
#define PROCESSOR_UPD96050_HPP

namespace Processor {

//NEC uPD7720 (not supported)
//NEC uPD7725
//NEC uPD96050

struct uPD96050 {
  enum class Revision : unsigned { uPD7725, uPD96050 } revision;
  uint24 programROM[16384];
  uint16 dataROM[2048];
  uint16 dataRAM[2048];
  #include "registers.hpp"

  void power();
  void exec();
  void serialize(serializer&);

  void exec_op(uint24 opcode);
  void exec_rt(uint24 opcode);
  void exec_jp(uint24 opcode);
  void exec_ld(uint24 opcode);

  uint8 sr_read();
  void sr_write(uint8 data);

  uint8 dr_read();
  void dr_write(uint8 data);

  uint8 dp_read(uint12 addr);
  void dp_write(uint12 addr, uint8 data);

  string disassemble(uint14 ip);
};

}

#endif