moved to test3d-tools
This commit is contained in:
parent
c98c736360
commit
f322b55a84
@ -1,51 +0,0 @@
|
||||
stab = {}
|
||||
stab.stack = {}
|
||||
stab.pc = 1
|
||||
stab.cins = 0
|
||||
mem = {}
|
||||
t400 = require "t400"
|
||||
|
||||
while true do
|
||||
io.write("*> ")
|
||||
i=io.read()
|
||||
it = {}
|
||||
for s in i:gmatch("%S+") do it[#it+1] = s end
|
||||
if it[1] == "peek" then
|
||||
print(mem[tonumber(it[2])])
|
||||
elseif it[1] == "poke" then
|
||||
mem[tonumber(it[2])] = tonumber(it[3])
|
||||
elseif it[1] == "push" then
|
||||
stab.stack[#stab.stack+1] = tonumber(it[2])
|
||||
elseif it[1] == "dumpstack" then
|
||||
for k,v in ipairs(stab.stack) do print(k,v) end
|
||||
elseif it[1] == "ppc" then
|
||||
print(stab.pc)
|
||||
elseif it[1] == "spc" then
|
||||
stab.pc=tonumber(it[2])
|
||||
elseif it[1] == "step" then
|
||||
local scount = tonumber(it[2]) or 1
|
||||
for i = 1, scount do
|
||||
stab.cins = mem[stab.pc]
|
||||
stab,rw,addr,val=t400.run(stab)
|
||||
if rw == "halt" then break end
|
||||
if rw == "read" then
|
||||
stab.stack[#stab.stack+1] = mem[addr]
|
||||
elseif rw == "write" then
|
||||
mem[addr] = dat
|
||||
end
|
||||
end
|
||||
elseif it[1] == "load" then
|
||||
local f,e = io.open(it[2])
|
||||
if f == nil then
|
||||
print("Error: "..e)
|
||||
else
|
||||
local n = tonumber(it[3]) or 0
|
||||
local c = f:read("*a")
|
||||
f:close()
|
||||
for v in c:gmatch("%S+") do
|
||||
mem[n] = tonumber(v) or 0
|
||||
n = n + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user