remake assembler with customasm, misc, need to clean up

This commit is contained in:
Redo
2024-06-26 11:37:29 -06:00
parent 717a9d9b08
commit 7aa99412ba
14 changed files with 2173 additions and 778 deletions

View File

@@ -241,7 +241,7 @@ local function pdLinesFromDasm(dasm)
end
return lines, addrLines, lineAddrs
end
local function InitProgramDisplay(pd, data, code, arch)
local function InitProgramDisplay(pd, arch, data, code, symbols)
pd.width = 256
pd.height = 12+pd.fontHeight*pd.numLines-3
lg.print("Program", pd.scrX, pd.scrY-16)
@@ -249,7 +249,7 @@ local function InitProgramDisplay(pd, data, code, arch)
pd.firstLine = 1
pd.data = data
pd.code = code
local dasm = asm.disassembleMemory(data, code, arch)
local dasm = asm.disassembleMemory(arch, data, code, symbols)
pd.lines, pd.addrLines, pd.lineAddrs = pdLinesFromDasm(dasm)
pd.midLine = math.floor(pd.numLines/2)
end
@@ -490,13 +490,13 @@ WriteMemory = function(mem, addr, val)
end
end
local function AssembleToMemory(mem, fn, arch)
local data, code = asm.assembleFile(fn, arch)
local data, code, symbols = asm.assembleFile(fn)
for addr = 0, 65535 do
if data[addr] then
mem.c.data[addr] = data[addr]
end
end
return data, code
return data, code, symbols
end
ffi.cdef [[
@@ -631,8 +631,8 @@ function love.load()
InitCharDisplay(CharDisplay)
InitRegDisplay(RegDisplay)
InitStackDisplay(StackDisplay)
local data, code = AssembleToMemory(Memory, arg[2] or "../../8608programs/emutest.asm", Arch)
InitProgramDisplay(ProgramDisplay, data, code, Arch)
local data, code, symbols = AssembleToMemory(Memory, arg[2] or "../../8608programs/emutest.asm", Arch)
InitProgramDisplay(ProgramDisplay, Arch, data, code, symbols)
for _, md in ipairs(MemoryDisplays) do InitMemoryDisplay(md) end
RedrawWindow()
lg.setCanvas()