From 72cc54876a0bcb297b0e3ffb2c253e766c2260bb Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Tue, 8 Oct 2013 17:53:20 +0300 Subject: [PATCH] Lua: Also add scatter-gather to memory.* (not just memory2.*) --- lua.lyx | 87 ++++++++++++++++++++++++++------------------- lua.pdf | Bin 180632 -> 181554 bytes src/lua/memory.cpp | 49 +++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 36 deletions(-) diff --git a/lua.lyx b/lua.lyx index 939c57e6..405072a3 100644 --- a/lua.lyx +++ b/lua.lyx @@ -3326,51 +3326,66 @@ Reads the specified address
(if 's' variant is used, do undergo \end_layout \begin_layout Subsection -memory.read{,s}{byte,{,h,d,q}word}: Read memory +memory.{,s}read_sg: Scatter/Gather read memory \end_layout \begin_layout Itemize -Syntax: none memory.readbyte([string vma, ]number address) +Syntax: none memory.read_sg(string/boolean/number...) \end_layout \begin_layout Itemize -Syntax: none memory.readword([string vma, ]number address) -\end_layout - -\begin_layout Itemize -Syntax: none memory.readhword([string vma, ]number address) -\end_layout - -\begin_layout Itemize -Syntax: none memory.readdword([string vma, ]number address) -\end_layout - -\begin_layout Itemize -Syntax: none memory.readqword([string vma, ]number address) -\end_layout - -\begin_layout Itemize -Syntax: none memory.readsbyte([string vma, ]number address) -\end_layout - -\begin_layout Itemize -Syntax: none memory.readsword([string vma, ]number address) -\end_layout - -\begin_layout Itemize -Syntax: none memory.readshword([string vma, ]number address) -\end_layout - -\begin_layout Itemize -Syntax: none memory.readsdword([string vma, ]number address) -\end_layout - -\begin_layout Itemize -Syntax: none memory.readsqword([string vma, ]number address) +Syntax: none memory.sread_sg(string/boolean/number...) \end_layout \begin_layout Standard -Reads the specified address
+Perform (2s complement signed if using memory.sread_sg) scatter/gather read + of memory. + Each argument can be string, boolean or number: +\end_layout + +\begin_layout Itemize +String: Set VMA addresses are relative to (e.g. + 'WRAM'). +\end_layout + +\begin_layout Itemize +boolean: If true, increment relative address by 1, if false, decrement by + 1. + The new address is read as next higher byte. +\end_layout + +\begin_layout Itemize +integer: Set the relative address to specified value and read the address + as next higher byte. +\end_layout + +\begin_layout Subsection +memory.write_sg: Scatter/Gather write memory +\end_layout + +\begin_layout Itemize +Syntax: none memory.write_sg(number value, string/boolean/number...) +\end_layout + +\begin_layout Standard +Perform scatter/gather write of value on memory. + Each argument can be string, boolean or number: +\end_layout + +\begin_layout Itemize +String: Set VMA addresses are relative to (e.g. + 'WRAM'). +\end_layout + +\begin_layout Itemize +boolean: If true, increment relative address by 1, if false, decrement by + 1. + The new address is read as next higher byte. +\end_layout + +\begin_layout Itemize +integer: Set the relative address to specified value and read the address + as next higher byte. \end_layout \begin_layout Subsection diff --git a/lua.pdf b/lua.pdf index f35ba8848764cdaf9f8c4d22724589bbbfe6f6ea..c797beaef0d345ba3e8363f41dffd739242197a0 100644 GIT binary patch delta 42969 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 MCFSPUFwi9ZA8={xM*si- delta 42084 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 F`ai?Zmwo^M diff --git a/src/lua/memory.cpp b/src/lua/memory.cpp index 610e9918..17e901cc 100644 --- a/src/lua/memory.cpp +++ b/src/lua/memory.cpp @@ -394,6 +394,55 @@ namespace return 1; }); + template int memory_scattergather(lua_state& L, const std::string& fname) + { + uint64_t val = 0; + int ptr = 1; + unsigned shift = 0; + uint64_t addr = 0; + uint64_t vmabase = 0; + if(write) + val = L.get_numeric_argument(ptr++, fname.c_str()); + while(L.type(ptr) != LUA_TNIL && L.type(ptr) != LUA_TNONE) { + if(L.type(ptr) == LUA_TBOOLEAN) { + if(L.toboolean(ptr++)) + addr++; + else + addr--; + } else if(L.type(ptr) == LUA_TSTRING) { + vmabase = get_vmabase(L, L.get_string(ptr++, fname.c_str())); + continue; + } else + addr = L.get_numeric_argument(ptr++, fname.c_str()); + if(write) + lsnes_memory.write(addr + vmabase, val >> shift); + else + val = val + ((uint64_t)lsnes_memory.read(addr + vmabase) << shift); + shift += 8; + } + if(!write) { + int64_t sval = val; + if(val >= (1ULL << (shift - 1))) sval -= (1ULL << shift); + if(sign) L.pushnumber(sval); else L.pushnumber(val); + } + return write ? 0 : 1; + } + + function_ptr_luafun scattergather1(lua_func_misc, "memory.read_sg", [](lua_state& L, const std::string& fname) + -> int { + return memory_scattergather(L, fname); + }); + + function_ptr_luafun scattergather2(lua_func_misc, "memory.sread_sg", [](lua_state& L, + const std::string& fname) -> int { + return memory_scattergather(L, fname); + }); + + function_ptr_luafun scattergather3(lua_func_misc, "memory.write_sg", [](lua_state& L, + const std::string& fname) -> int { + return memory_scattergather(L, fname); + }); + lua_read_memory> rub("memory.readbyte"); lua_read_memory> rsb("memory.readsbyte"); lua_read_memory> ruw("memory.readword");