2 * Main memory without MMR for FM-7 [FM7_MAINMEM]
8 #ifndef _FM7_MAINMEM_H_
9 #define _FM7_MAINMEM_H_
12 #include "fm7_common.h"
14 #define MEMORY_BANK_SIZE 0x8000
15 #define MEMORY_ADDR_MAX (FM7_MAINMEM_END * MEMORY_BANK_SIZE)
16 #include "../memory.h"
25 class FM7_MAINMEM : public MEMORY
32 uint8 fm7_mainmem_omote[0x8000];
33 uint8 fm7_mainmem_ura[0x7c00];
34 uint8 fm7_mainmem_basicrom[0x7c00];
35 uint8 fm7_mainmem_bioswork[0x80];
36 uint8 *fm7_bootroms[4];
37 uint8 fm7_mainmem_bootrom_vector[0x0e]; // Without
38 uint8 fm7_mainmem_resetvector[2] = {0xfe, 0x00}; // Reset vector. Addr = 0xfe00.
40 bool diag_load_basicrom = false;
41 bool diag_load_bootrom_bas = false;
42 bool diag_load_bootrom_dos = false;
44 virtual int getbank(uint32 addr, uint32 *realaddr);
46 FM7_MAINMEM(VM* parent_vm, EMU* parent_emu);
48 virtual uint32 read_data8(uint32 addr);
49 virtual void write_data8(uint32 addr, uint32 data);
50 virtual uint32 read_data16(uint32 addr);
51 virtual void write_data16(uint32 addr, uint32 data);
52 virtual uint32 read_data32(uint32 addr);
53 virtual void write_data32(uint32 addr, uint32 data);
54 bool get_loadstat_basicrom(void){
55 return diag_load_basicrom;
57 bool get_loadstat_bootrom_bas(void){
58 return diag_load_bootrom_bas;
60 bool get_loadstat_bootrom_dos(void){
61 return diag_load_bootrom_dos;