|
|
1.1.1.2 root 1: /*
1.1 root 2: * UAE - The Un*x Amiga Emulator
1.1.1.2 root 3: *
1.1 root 4: * Memory access functions
5: *
6: * Copyright 1996 Bernd Schmidt
7: */
8:
1.1.1.3 ! root 9: STATIC_INLINE uae_u32 do_get_mem_long(uae_u32 *a)
1.1 root 10: {
11: uae_u8 *b = (uae_u8 *)a;
1.1.1.2 root 12:
1.1 root 13: return (*b << 24) | (*(b+1) << 16) | (*(b+2) << 8) | (*(b+3));
14: }
15:
1.1.1.3 ! root 16: STATIC_INLINE uae_u16 do_get_mem_word(uae_u16 *a)
1.1 root 17: {
18: uae_u8 *b = (uae_u8 *)a;
1.1.1.2 root 19:
1.1 root 20: return (*b << 8) | (*(b+1));
21: }
22:
1.1.1.3 ! root 23: STATIC_INLINE uae_u8 do_get_mem_byte(uae_u8 *a)
1.1 root 24: {
25: return *a;
26: }
27:
1.1.1.3 ! root 28: STATIC_INLINE void do_put_mem_long(uae_u32 *a, uae_u32 v)
1.1 root 29: {
30: uae_u8 *b = (uae_u8 *)a;
1.1.1.2 root 31:
1.1 root 32: *b = v >> 24;
1.1.1.2 root 33: *(b+1) = v >> 16;
1.1 root 34: *(b+2) = v >> 8;
35: *(b+3) = v;
36: }
37:
1.1.1.3 ! root 38: STATIC_INLINE void do_put_mem_word(uae_u16 *a, uae_u16 v)
1.1 root 39: {
40: uae_u8 *b = (uae_u8 *)a;
1.1.1.2 root 41:
1.1 root 42: *b = v >> 8;
43: *(b+1) = v;
44: }
45:
1.1.1.3 ! root 46: STATIC_INLINE void do_put_mem_byte(uae_u8 *a, uae_u8 v)
1.1 root 47: {
48: *a = v;
49: }
50:
51: #define call_mem_get_func(func, addr) ((*func)(addr))
52: #define call_mem_put_func(func, addr, v) ((*func)(addr, v))
53:
54: #undef NO_INLINE_MEMORY_ACCESS
55: #undef MD_HAVE_MEM_1_FUNCS
56:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.