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