--- np2/i386c/memory.h 2004/02/05 16:41:32 1.7 +++ np2/i386c/memory.h 2004/03/04 16:58:57 1.9 @@ -53,26 +53,63 @@ REG16 MEMCALL i286_memoryread_w(UINT32 a UINT32 MEMCALL i286_memoryread_d(UINT32 address); #ifdef NP2_MEMORY_ASM -BYTE MEMCALL i286_membyte_read(WORD seg, WORD off); -WORD MEMCALL i286_memword_read(WORD seg, WORD off); -void MEMCALL i286_membyte_write(WORD seg, WORD off, BYTE dat); -void MEMCALL i286_memword_write(WORD seg, WORD off, WORD dat); +REG8 MEMCALL i286_membyte_read(UINT seg, UINT off); +REG16 MEMCALL i286_memword_read(UINT seg, UINT off); +void MEMCALL i286_membyte_write(UINT seg, UINT off, REG8 dat); +void MEMCALL i286_memword_write(UINT seg, UINT off, REG16 dat); #else #define i286_membyte_read(a, b) \ - i286_memoryread(((DWORD)(a) << 4) + (WORD)(b)) + i286_memoryread(((UINT32)(a) << 4) + (UINT16)(b)) #define i286_memword_read(a, b) \ - i286_memoryread_w(((DWORD)(a) << 4) + (WORD)(b)) + i286_memoryread_w(((UINT32)(a) << 4) + (UINT16)(b)) #define i286_membyte_write(a, b, c) \ - i286_memorywrite(((DWORD)(a) << 4) + (WORD)(b), (c)) + i286_memorywrite(((UINT32)(a) << 4) + (UINT16)(b), (c)) #define i286_memword_write(a, b, c) \ - i286_memorywrite_w(((DWORD)(a) << 4) + (WORD)(b), (c)) + i286_memorywrite_w(((UINT32)(a) << 4) + (UINT16)(b), (c)) #endif +void MEMCALL memp_read(UINT32 address, void *dat, UINT leng); +void MEMCALL memp_write(UINT32 address, const void *dat, UINT leng); + void MEMCALL i286_memstr_read(UINT seg, UINT off, void *dat, UINT leng); void MEMCALL i286_memstr_write(UINT seg, UINT off, const void *dat, UINT leng); -void MEMCALL i286_memx_read(UINT32 address, void *dat, UINT leng); -void MEMCALL i286_memx_write(UINT32 address, const void *dat, UINT leng); +void MEMCALL meml_read(UINT32 address, void *dat, UINT leng); +void MEMCALL meml_write(UINT32 address, const void *dat, UINT leng); + + + +// ---- Physical Space (DMA) + +#define MEMP_READ8(addr) \ + i286_memoryread((addr)) +#define MEMP_WRITE8(addr, dat) \ + i286_memorywrite((addr), (dat)) + +#define MEMP_READ(addr, dat, leng) \ + memp_read((addr), (dat), (leng)) +#define MEMP_WRITE(addr, dat, leng) \ + memp_write((addr), (dat), (leng)) + + +// ---- Logical Space (BIOS) + +#define MEML_READ8(seg, off) \ + i286_memoryread(((UINT32)(seg) << 4) + LOW16(off)) +#define MEML_READ16(seg, off) \ + i286_memoryread_w(((UINT32)(seg) << 4) + LOW16(off)) +#define MEML_WRITE8(seg, off, dat) \ + i286_memorywrite(((UINT32)(seg) << 4) + LOW16(off), (dat)) +#define MEML_WRITE16(seg, off, dat) \ + i286_memorywrite_w(((UINT32)(seg) << 4) + LOW16(off), (dat)) +#define MEML_READSTR(seg, off, dat, leng) \ + i286_memstr_read((seg), (off), (dat), (leng)) +#define MEML_WRITESTR(seg, off, dat, leng) \ + i286_memstr_write((seg), (off), (dat), (leng)) +#define MEML_READ(addr, dat, leng) \ + meml_read((addr), (dat), (leng)) +#define MEML_WRITE(addr, dat, leng) \ + meml_write((addr), (dat), (leng)) #ifdef __cplusplus }