|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2017 [email protected]
4: //
5:
6: #pragma once
7:
8: #include "bus.h"
9:
10: // 基本アクセス
11: extern uint32 m68030_fetch_8(m68kcpu *cpu);
12: extern uint32 m68030_fetch_16(m68kcpu *cpu);
13: extern uint32 m68030_fetch_32(m68kcpu *cpu);
14: extern uint32 m68030_read_8(m68kcpu *cpu, uint32 addr);
15: extern uint32 m68030_read_16(m68kcpu *cpu, uint32 addr);
16: extern uint32 m68030_read_32(m68kcpu *cpu, uint32 addr);
17: extern void m68030_write_8(m68kcpu *cpu, uint32 addr, uint32 data);
18: extern void m68030_write_16(m68kcpu *cpu, uint32 addr, uint32 data);
19: extern void m68030_write_32(m68kcpu *cpu, uint32 addr, uint32 data);
20: // FC 指定
21: extern uint32 m68030_read_8_fc(m68kcpu *cpu, uint32 addr);
22: extern uint32 m68030_read_16_fc(m68kcpu *cpu, uint32 addr);
23: extern uint32 m68030_read_32_fc(m68kcpu *cpu, uint32 addr);
24: extern void m68030_write_8_fc(m68kcpu *cpu, uint32 addr, uint32 data);
25: extern void m68030_write_16_fc(m68kcpu *cpu, uint32 addr, uint32 data);
26: extern void m68030_write_32_fc(m68kcpu *cpu, uint32 addr, uint32 data);
27:
28: // 基本アクセスルーチンを使った便利サブルーチン
29: static inline void
30: m68030_push_16(m68kcpu *cpu, uint32 data)
31: {
32: RegA(7) -= 2;
33: m68030_write_16(cpu, RegA(7), data);
34: }
35: static inline void
36: m68030_push_32(m68kcpu *cpu, uint32 data)
37: {
38: RegA(7) -= 4;
39: m68030_write_32(cpu, RegA(7), data);
40: }
41:
42: static inline uint32
43: m68030_pop_16(m68kcpu *cpu)
44: {
45: uint32 data = m68030_read_16(cpu, RegA(7));
46: RegA(7) += 2;
47: return data;
48: }
49:
50: static inline uint32
51: m68030_pop_32(m68kcpu *cpu)
52: {
53: uint32 data = m68030_read_32(cpu, RegA(7));
54: RegA(7) += 4;
55: return data;
56: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.