|
|
1.1 root 1: /*
2: Hatari - stMemory.h
3:
4: This file is distributed under the GNU Public License, version 2 or at
5: 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: extern Uint32 NEXTRamEnd;
17:
18: extern Uint8 NEXTRam[64*1024*1024];
19: extern Uint8 NEXTRom[0x20000];
20: extern Uint8 NEXTIo[0x20000];
21:
22:
23:
24: /* Offset NEXT address to PC pointer: */
25: // # define NEXTRAM_ADDR(Var) ((unsigned long)NEXTRam+((Uint32)(Var) & 0x03ffffff))
26:
27:
28: /**
29: * Check whether given memory address and size are within
30: * valid memory area (i.e. read/write from/to there doesn't
31: * overwrite Hatari's own memory & cause potential segfaults)
32: * and that the size is positive.
33: *
34: * If they are; return true, otherwise false.
35: */
36: static inline bool NEXTMemory_ValidArea(Uint32 addr, int size)
37: {
38: // we are a bit optimistic...
39: return true;
40: }
41:
42:
43: /**
44: * Write 32-bit word into ST memory space.
45: * NOTE - value will be convert to 68000 endian
46: */
47: static inline void NEXTMemory_WriteLong(Uint32 Address, Uint32 Var)
48: {
49: put_long(Address, Var);
50: }
51:
52:
53: /**
54: * Write 16-bit word into ST memory space.
55: * NOTE - value will be convert to 68000 endian.
56: */
57: static inline void NEXTMemory_WriteWord(Uint32 Address, Uint16 Var)
58: {
59: put_word(Address, Var);
60: }
61:
62: /**
63: * Write 8-bit byte into ST memory space.
64: */
65: static inline void NEXTMemory_WriteByte(Uint32 Address, Uint8 Var)
66: {
67: put_byte(Address, Var);
68: }
69:
70:
71: /**
72: * Read 32-bit word from ST memory space.
73: * NOTE - value will be converted to PC endian.
74: */
75: static inline Uint32 NEXTMemory_ReadLong(Uint32 Address)
76: {
77: return get_long(Address);
78: }
79:
80:
81: /**
82: * Read 16-bit word from ST memory space.
83: * NOTE - value will be converted to PC endian.
84: */
85: static inline Uint16 NEXTMemory_ReadWord(Uint32 Address)
86: {
87: return get_word(Address);
88: }
89:
90:
91: /**
92: * Read 8-bit byte from ST memory space
93: */
94: static inline Uint8 NEXTMemory_ReadByte(Uint32 Address)
95: {
96: return get_byte(Address);
97: }
98:
99:
100: extern void NEXTMemory_Clear(Uint32 StartAddress, Uint32 EndAddress);
101: extern void NEXTMemory_MemorySnapShot_Capture(bool bSave);
102: extern void NEXTMemory_SetDefaultConfig(void);
103:
104: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.