1 /* 2 Hatari - stMemory.h 3 4 This file is distributed under the GNU General Public License, version 2 5 or at your option any later version. Read the file gpl.txt for details. 6 */ 7 8 #ifndef HATARI_STMEMORY_H 9 #define HATARI_STMEMORY_H 10 11 #include "main.h" 12 #include "sysdeps.h" 13 #include "maccess.h" 14 #include "memory.h" 15 16 17 #if ENABLE_SMALL_MEM 18 extern Uint8 *STRam; 19 extern uae_u8 *ROMmemory; 20 # define RomMem (ROMmemory-0xe00000) 21 #else 22 extern Uint8 STRam[16*1024*1024]; 23 #define RomMem STRam 24 #endif /* ENABLE_SMALL_MEM */ 25 26 extern uae_u8 *TTmemory; 27 extern uae_u32 TTmem_size; 28 29 extern Uint32 STRamEnd; 30 31 32 #define MEM_BANK_SIZE_128 ( 128 * 1024 ) /* 00b */ 33 #define MEM_BANK_SIZE_512 ( 512 * 1024 ) /* 01b */ 34 #define MEM_BANK_SIZE_2048 ( 2048 * 1024 ) /* 10b */ 35 #define MEM_BANK_SIZE_8192 ( 8192 * 1024 ) /* for TT */ 36 37 extern Uint32 RAM_Bank0_Size; 38 extern Uint32 RAM_Bank1_Size; 39 40 extern Uint32 MMU_Bank0_Size; 41 extern Uint32 MMU_Bank1_Size; 42 43 44 extern void STMemory_Init ( int RAM_Size_Byte ); 45 extern void STMemory_Reset ( bool bCold ); 46 47 extern bool STMemory_SafeClear(Uint32 addr, unsigned int len); 48 extern bool STMemory_SafeCopy(Uint32 addr, Uint8 *src, unsigned int len, const char *name); 49 extern void STMemory_MemorySnapShot_Capture(bool bSave); 50 extern void STMemory_SetDefaultConfig(void); 51 extern bool STMemory_CheckAreaType ( Uint32 addr , int size , int mem_type ); 52 extern bool STMemory_CheckRegionBusError ( Uint32 addr ); 53 extern void *STMemory_STAddrToPointer ( Uint32 addr ); 54 55 extern void STMemory_Write ( Uint32 addr , Uint32 val , int size ); 56 extern void STMemory_WriteLong ( Uint32 addr , Uint32 val ); 57 extern void STMemory_WriteWord ( Uint32 addr , Uint16 val ); 58 extern void STMemory_WriteByte ( Uint32 addr , Uint8 val ); 59 extern Uint32 STMemory_Read ( Uint32 addr , int size ); 60 extern Uint32 STMemory_ReadLong ( Uint32 addr ); 61 extern Uint16 STMemory_ReadWord ( Uint32 addr ); 62 extern Uint8 STMemory_ReadByte ( Uint32 addr ); 63 64 extern void STMemory_MMU_Config_ReadByte ( void ); 65 extern void STMemory_MMU_Config_WriteByte ( void ); 66 67 extern int STMemory_RAM_Validate_Size_KB ( int TotalMem ); 68 extern bool STMemory_RAM_SetBankSize ( int TotalMem , Uint32 *pBank0_Size , Uint32 *pBank1_Size , Uint8 *pMMU_Conf ); 69 extern Uint32 STMemory_MMU_Translate_Addr ( Uint32 addr_logical ); 70 71 #endif 72