|
|
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.