accumulated old changes
This commit is contained in:
		| @@ -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, | ||||||
| 	 | 	 | ||||||
| @@ -95,18 +95,18 @@ return { | |||||||
| 	["kp."]           = 110, --["numpaddecimal"] = 110, | 	["kp."]           = 110, --["numpaddecimal"] = 110, | ||||||
| 	["kp/"]           = 111, --["/"]             = 111, | 	["kp/"]           = 111, --["/"]             = 111, | ||||||
| 	 | 	 | ||||||
| 	["f1"]            = 112,  | 	["f1"]            = 112, | ||||||
| 	["f2"]            = 113,  | 	["f2"]            = 113, | ||||||
| 	["f3"]            = 114,  | 	["f3"]            = 114, | ||||||
| 	["f4"]            = 115,  | 	["f4"]            = 115, | ||||||
| 	["f5"]            = 116,  | 	["f5"]            = 116, | ||||||
| 	["f6"]            = 117,  | 	["f6"]            = 117, | ||||||
| 	["f7"]            = 118,  | 	["f7"]            = 118, | ||||||
| 	["f8"]            = 119,  | 	["f8"]            = 119, | ||||||
| 	["f9"]            = 120,  | 	["f9"]            = 120, | ||||||
| 	["f10"]           = 121,  | 	["f10"]           = 121, | ||||||
| 	["f11"]           = 122,  | 	["f11"]           = 122, | ||||||
| 	["f12"]           = 123,  | 	["f12"]           = 123, | ||||||
| 	 | 	 | ||||||
| 	["invalid"]       = 127, | 	["invalid"]       = 127, | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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;"} }, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Redo
					Redo