accumulated old changes
This commit is contained in:
parent
b75ff48300
commit
ecf01a2dc9
@ -323,7 +323,10 @@ local function fixCode(code)
|
|||||||
return code
|
return code
|
||||||
end
|
end
|
||||||
local stringEscapes = { ["\\"] = "\\", ["n"] = "\n", ["r"] = "\r", ["t"] = "\t", ["0"] = "\0", ["\""] = "\"", ["\'"] = "\'", }
|
local stringEscapes = { ["\\"] = "\\", ["n"] = "\n", ["r"] = "\r", ["t"] = "\t", ["0"] = "\0", ["\""] = "\"", ["\'"] = "\'", }
|
||||||
|
local prefixIdx = 0
|
||||||
local function prefixCode(code, fn) -- fix strings, add line numbers
|
local function prefixCode(code, fn) -- fix strings, add line numbers
|
||||||
|
prefixIdx = prefixIdx + 1
|
||||||
|
|
||||||
local outt = {}
|
local outt = {}
|
||||||
local outnextnl = {}
|
local outnextnl = {}
|
||||||
local linenum = 1
|
local linenum = 1
|
||||||
@ -335,7 +338,7 @@ local function prefixCode(code, fn) -- fix strings, add line numbers
|
|||||||
local state = "code" -- code, comment, string, stringesc, commentml
|
local state = "code" -- code, comment, string, stringesc, commentml
|
||||||
|
|
||||||
local lastbracelabel = 0
|
local lastbracelabel = 0
|
||||||
local function bracelabel() lastbracelabel = lastbracelabel+1; return "_BRACE_"..lastbracelabel.."_"; end
|
local function bracelabel() lastbracelabel = lastbracelabel+1; return "_BRACE_"..string.format("%02d", prefixIdx)..lastbracelabel.."_"; end
|
||||||
local bracestack = {}
|
local bracestack = {}
|
||||||
local bracehasmid = {}
|
local bracehasmid = {}
|
||||||
local lastnl = false
|
local lastnl = false
|
||||||
|
Binary file not shown.
@ -668,6 +668,7 @@ function love.keypressed(k)
|
|||||||
elseif k=="o" then RunToNextInstr(cpu)
|
elseif k=="o" then RunToNextInstr(cpu)
|
||||||
elseif k=="r" then RunCPU = not RunCPU
|
elseif k=="r" then RunCPU = not RunCPU
|
||||||
elseif k=="i" then CPU.c.irq = 1
|
elseif k=="i" then CPU.c.irq = 1
|
||||||
|
elseif k=="u" then CPU.c.rfg = 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -200,8 +200,8 @@ void cpu_instr_108_3(struct CPU* const cpu, struct Memory* const mem) { storeutp
|
|||||||
void cpu_instr_108_4(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
void cpu_instr_108_4(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||||
void cpu_instr_110_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
void cpu_instr_110_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||||
void cpu_instr_110_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
void cpu_instr_110_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||||
void cpu_instr_110_2(struct CPU* const cpu, struct Memory* const mem) { storeut(hibyte(cpu->p)); cpu->cycle++; }
|
void cpu_instr_110_2(struct CPU* const cpu, struct Memory* const mem) { storeut(hibyte(cpu->q)); cpu->cycle++; }
|
||||||
void cpu_instr_110_3(struct CPU* const cpu, struct Memory* const mem) { storeutp1(lobyte(cpu->p)); cpu->cycle++; }
|
void cpu_instr_110_3(struct CPU* const cpu, struct Memory* const mem) { storeutp1(lobyte(cpu->q)); cpu->cycle++; }
|
||||||
void cpu_instr_110_4(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
void cpu_instr_110_4(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||||
void cpu_instr_112_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
void cpu_instr_112_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||||
void cpu_instr_112_1(struct CPU* const cpu, struct Memory* const mem) { subf(cpu->a,cpu->t); lni; }
|
void cpu_instr_112_1(struct CPU* const cpu, struct Memory* const mem) { subf(cpu->a,cpu->t); lni; }
|
||||||
|
@ -5,12 +5,12 @@ return {
|
|||||||
["return"] = 13,
|
["return"] = 13,
|
||||||
|
|
||||||
["lshift"] = 16,
|
["lshift"] = 16,
|
||||||
["lcontrol"] = 17,
|
["lctrl"] = 17, --["lcontrol"] = 17,
|
||||||
["lalt"] = 18,
|
["lalt"] = 18,
|
||||||
|
|
||||||
-- this block does not match vkey codes
|
-- this block does not match vkey codes
|
||||||
["rshift"] = 20,
|
["rshift"] = 20,
|
||||||
["rcontrol"] = 21,
|
["rctrl"] = 21, --["rcontrol"] = 21,
|
||||||
["ralt"] = 22,
|
["ralt"] = 22,
|
||||||
|
|
||||||
-- this block does not match vkey codes
|
-- this block does not match vkey codes
|
||||||
@ -18,7 +18,7 @@ return {
|
|||||||
["="] = 25,
|
["="] = 25,
|
||||||
[","] = 26,
|
[","] = 26,
|
||||||
["."] = 27,
|
["."] = 27,
|
||||||
["-"] = 28,
|
["-"] = 28, -- not in bl
|
||||||
["/"] = 29,
|
["/"] = 29,
|
||||||
["`"] = 30,
|
["`"] = 30,
|
||||||
|
|
||||||
|
@ -334,7 +334,7 @@ instructions = {
|
|||||||
{ mnem="ldp *imm16" , opcode=0x68, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"loadUTU","adwIncUT","adwSaveP","instrSub3"}, {"adrlP","loadRegT","instrSub4"}, {"adwrUT","adwSaveP","instrNext"}, desc="P=*imm16", ccode={"loadimm161","loadimm162","cpu.p=wordut; cpu.u=loadut;","cpu.t=loadpp1;","cpu.p=wordut; lni;"} }, -- 0x69
|
{ mnem="ldp *imm16" , opcode=0x68, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"loadUTU","adwIncUT","adwSaveP","instrSub3"}, {"adrlP","loadRegT","instrSub4"}, {"adwrUT","adwSaveP","instrNext"}, desc="P=*imm16", ccode={"loadimm161","loadimm162","cpu.p=wordut; cpu.u=loadut;","cpu.t=loadpp1;","cpu.p=wordut; lni;"} }, -- 0x69
|
||||||
{ mnem="ldq *imm16" , opcode=0x6A, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"loadUTU","adwIncUT","adwSaveQ","instrSub3"}, {"adrlQ","loadRegT","instrSub4"}, {"adwrUT","adwSaveQ","instrNext"}, desc="Q=*imm16", ccode={"loadimm161","loadimm162","cpu.q=wordut; cpu.u=loadut;","cpu.t=loadqp1;","cpu.q=wordut; lni;"} }, -- 0x6B
|
{ mnem="ldq *imm16" , opcode=0x6A, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"loadUTU","adwIncUT","adwSaveQ","instrSub3"}, {"adrlQ","loadRegT","instrSub4"}, {"adwrUT","adwSaveQ","instrNext"}, desc="Q=*imm16", ccode={"loadimm161","loadimm162","cpu.q=wordut; cpu.u=loadut;","cpu.t=loadqp1;","cpu.q=wordut; lni;"} }, -- 0x6B
|
||||||
{ mnem="stp *imm16" , opcode=0x6C, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"storeUT","alurPH","instrSub3"}, {"storeUT","adrInc","alurPL","instrSub4"}, {"instrNext"}, desc="*imm16=P", ccode={"loadimm161","loadimm162","storeut(hibyte(cpu.p));","storeutp1(lobyte(cpu.p));","lni;"} }, -- 0x6D
|
{ mnem="stp *imm16" , opcode=0x6C, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"storeUT","alurPH","instrSub3"}, {"storeUT","adrInc","alurPL","instrSub4"}, {"instrNext"}, desc="*imm16=P", ccode={"loadimm161","loadimm162","storeut(hibyte(cpu.p));","storeutp1(lobyte(cpu.p));","lni;"} }, -- 0x6D
|
||||||
{ mnem="stq *imm16" , opcode=0x6E, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"storeUT","alurQH","instrSub3"}, {"storeUT","adrInc","alurQL","instrSub4"}, {"instrNext"}, desc="*imm16=Q", ccode={"loadimm161","loadimm162","storeut(hibyte(cpu.p));","storeutp1(lobyte(cpu.p));","lni;"} }, -- 0x6F
|
{ mnem="stq *imm16" , opcode=0x6E, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"storeUT","alurQH","instrSub3"}, {"storeUT","adrInc","alurQL","instrSub4"}, {"instrNext"}, desc="*imm16=Q", ccode={"loadimm161","loadimm162","storeut(hibyte(cpu.q));","storeutp1(lobyte(cpu.q));","lni;"} }, -- 0x6F
|
||||||
{ mnem="ldp *p" , opcode=0x92, {"adrlP","load161","instrSub1"}, {"adrlP","load162","instrSub2"}, {"adwrUT","adwSaveP","instrNext"}, desc="P=*P", ccode={"cpu.u=loadp;","cpu.t=loadpp1;","cpu.p=wordut; lni;"} },
|
{ mnem="ldp *p" , opcode=0x92, {"adrlP","load161","instrSub1"}, {"adrlP","load162","instrSub2"}, {"adwrUT","adwSaveP","instrNext"}, desc="P=*P", ccode={"cpu.u=loadp;","cpu.t=loadpp1;","cpu.p=wordut; lni;"} },
|
||||||
{ mnem="ldq *p" , opcode=0x93, {"adrlP","load161","instrSub1"}, {"adrlP","load162","instrSub2"}, {"adwrUT","adwSaveQ","instrNext"}, desc="Q=*P", ccode={"cpu.u=loadp;","cpu.t=loadpp1;","cpu.q=wordut; lni;"} },
|
{ mnem="ldq *p" , opcode=0x93, {"adrlP","load161","instrSub1"}, {"adrlP","load162","instrSub2"}, {"adwrUT","adwSaveQ","instrNext"}, desc="Q=*P", ccode={"cpu.u=loadp;","cpu.t=loadpp1;","cpu.q=wordut; lni;"} },
|
||||||
{ mnem="ldp *q" , opcode=0x94, {"adrlQ","load161","instrSub1"}, {"adrlQ","load162","instrSub2"}, {"adwrUT","adwSaveP","instrNext"}, desc="P=*Q", ccode={"cpu.u=loadq;","cpu.t=loadqp1;","cpu.p=wordut; lni;"} },
|
{ mnem="ldp *q" , opcode=0x94, {"adrlQ","load161","instrSub1"}, {"adrlQ","load162","instrSub2"}, {"adwrUT","adwSaveP","instrNext"}, desc="P=*Q", ccode={"cpu.u=loadq;","cpu.t=loadqp1;","cpu.p=wordut; lni;"} },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user