From 13061bc8fa9e6de0f2f90bc514566e7fc3d87372 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 20 Apr 2025 13:29:43 +0900 Subject: [PATCH] running program image on ram with arg passing --- assets/disk0/home/hdk/jmp.js | 13 ------------- assets/disk0/home/hdk/load.js | 2 +- assets/disk0/home/hdk/run.js | 18 ++++++++++++++++++ 3 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 assets/disk0/home/hdk/jmp.js create mode 100644 assets/disk0/home/hdk/run.js diff --git a/assets/disk0/home/hdk/jmp.js b/assets/disk0/home/hdk/jmp.js deleted file mode 100644 index 91c5101..0000000 --- a/assets/disk0/home/hdk/jmp.js +++ /dev/null @@ -1,13 +0,0 @@ -if (exec_args[1] === undefined) { - println("Usage: jmp pointer_in_hexadecimal") - println(" This will execute the binary image stored on the Core Memory at the given pointer.") - return 1 -} - - -const ptr = parseInt(exec_args[1], 16) -const magic = sys.peek(ptr) - -if (magic != 0xA5) return 1 - -eval(sys.toObjectCode(ptr)) \ No newline at end of file diff --git a/assets/disk0/home/hdk/load.js b/assets/disk0/home/hdk/load.js index 6c8b51a..31f6870 100644 --- a/assets/disk0/home/hdk/load.js +++ b/assets/disk0/home/hdk/load.js @@ -26,7 +26,7 @@ if (3 == intent) { if (!_G.SO) _G.SO = {} - let libname = exec_args[1].split("\\").last().substringBeforeLast(".") + let libname = infile.path.split("\\").last().substringBeforeLast(".") _G.SO[libname] = addrToLoad } diff --git a/assets/disk0/home/hdk/run.js b/assets/disk0/home/hdk/run.js new file mode 100644 index 0000000..0de487a --- /dev/null +++ b/assets/disk0/home/hdk/run.js @@ -0,0 +1,18 @@ +if (exec_args[1] === undefined) { + println("Usage: run pointer_in_hexadecimal ") + println(" This will execute the binary image stored on the Core Memory at the given pointer.") + return 1 +} + + +const ptr = parseInt(exec_args[1], 16) +const magic = sys.peek(ptr) + +if (magic != 0xA5) return 1 + + +const source = sys.toObjectCode(ptr) +const wrapper = new Function("exec_args", `const g={exec_args};with(g){${source}}`); +const newArgs = ["@ptr:"+ptr].concat(exec_args.slice(2)) + +wrapper(newArgs) \ No newline at end of file