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