|
|
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 1997 Bernd Schmidt 7: */ 8: 9: extern uae_u32 do_get_mem_long(uae_u32 *a); 10: #pragma aux do_get_mem_long = \ 11: "mov edx,[eax]" \ 12: "bswap edx" \ 13: parm [eax] \ 14: value [edx]; 15: 16: extern uae_u32 do_get_mem_word(uae_u16 *a); 17: #pragma aux do_get_mem_word = \ 18: "xor edx,edx" \ 19: "mov dx,[eax]" \ 20: "rol dx,8" \ 21: parm [eax] \ 22: value [edx]; 23: 24: static __inline__ uae_u32 do_get_mem_byte(uae_u8 *a) 25: { 26: return *a; 27: } 28: 29: extern void do_put_mem_long(uae_u32 *a, uae_u32 v); 30: #pragma aux do_put_mem_long = \ 31: "bswap edx" \ 32: "mov [eax],edx" \ 33: parm [eax] [edx] \ 34: modify [edx]; 35: 36: extern void do_put_mem_word(uae_u16 *a, uae_u16 v); 37: #pragma aux do_put_mem_word = \ 38: "rol dx,8" \ 39: "mov [eax],dx" \ 40: parm [eax] [dx] \ 41: modify [edx]; 42: 43: static __inline__ void do_put_mem_byte(uae_u8 *a, uae_u8 v) 44: { 45: *a = v; 46: } 47: 48: #define call_mem_get_func(func,addr) ((*func)(addr)) 49: #define call_mem_put_func(func,addr,v) ((*func)(addr,v)) 50: 51: #undef NO_INLINE_MEMORY_ACCESS 52: #undef MD_HAVE_MEM_1_FUNCS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.