source: buchla-emu/emu/cpu.c@ f996387

Last change on this file since f996387 was ff8d800, checked in by Thomas Lopatic <thomas@…>, 7 years ago

Added SDL2 support.

  • Property mode set to 100644
File size: 1.5 KB
Line 
1#include <all.h>
2
3#define ver(...) { \
4 if (cpu_verbose) { \
5 SDL_LogVerbose(SDL_LOG_CATEGORY_APPLICATION, __VA_ARGS__); \
6 } \
7}
8
9#define CYCLES 10
10
11#define RESET_PC 0x100000
12#define RESET_SP 0x100000
13
14bool cpu_verbose = false;
15static bool reset = true;
16
17uint32_t m68k_read_disassembler_8(uint32_t addr)
18{
19 ver("mem rd 0x%08x:8", addr);
20 return 0;
21}
22
23uint32_t m68k_read_disassembler_16(uint32_t addr)
24{
25 ver("mem rd 0x%08x:16", addr);
26 return 0;
27}
28
29uint32_t m68k_read_disassembler_32(uint32_t addr)
30{
31 ver("mem rd 0x%08x:32", addr);
32 return 0;
33}
34
35uint32_t m68k_read_memory_8(uint32_t addr)
36{
37 ver("mem rd 0x%08x:8", addr);
38 return 0;
39}
40
41uint32_t m68k_read_memory_16(uint32_t addr)
42{
43 ver("mem rd 0x%08x:16", addr);
44
45 if (addr < 0x100000) {
46 }
47
48 if (addr < 0x110000) {
49 return 0x60fe;
50 }
51
52 return 0;
53}
54
55uint32_t m68k_read_memory_32(uint32_t addr)
56{
57 ver("mem rd 0x%08x:32", addr);
58
59 if (reset) {
60 if (addr == 0) {
61 return RESET_SP;
62 }
63
64 if (addr == 4) {
65 reset = false;
66 return RESET_PC;
67 }
68
69 fail("invalid reset sequence");
70 }
71
72 return 0;
73}
74
75void m68k_write_memory_8(uint32_t addr, uint32_t val)
76{
77 ver("mem wr 0x%08x:8 0x%02x", addr, val);
78}
79
80void m68k_write_memory_16(uint32_t addr, uint32_t val)
81{
82 ver("mem wr 0x%08x:16 0x%04x", addr, val);
83}
84
85void m68k_write_memory_32(uint32_t addr, uint32_t val)
86{
87 ver("mem wr 0x%08x:32 0x%08x", addr, val);
88}
89
90void cpu_loop(void)
91{
92 ver("entering CPU loop");
93
94 m68k_init();
95 m68k_set_cpu_type(M68K_CPU_TYPE_68000);
96 m68k_pulse_reset();
97
98 for (int32_t i = 0; i < 5; ++i) {
99 m68k_execute(CYCLES);
100 }
101}
Note: See TracBrowser for help on using the repository browser.