update and improve emulator
This commit is contained in:
20
emulator/8608-emulator.bat
Normal file
20
emulator/8608-emulator.bat
Normal file
@ -0,0 +1,20 @@
|
||||
@echo off
|
||||
rem This is the main process to run the 8608 Emulator.
|
||||
rem To use it, simply drag an .asm file onto this batch file.
|
||||
|
||||
if [%1] == [] goto noarg
|
||||
|
||||
cd /d %~dp0
|
||||
mkdir temp
|
||||
"third-party/customasm/customasm.exe" -f binary -o "temp/temp.bin" %~dpnx1
|
||||
"third-party/customasm/customasm.exe" -f annotated -o "temp/temp.lis" %~dpnx1
|
||||
"third-party/love/love.exe" %~dp0 "temp/temp.bin"
|
||||
goto done
|
||||
|
||||
:noarg
|
||||
echo No input file specified.
|
||||
echo Drag-and-drop an assembly code file onto this .bat file to use the emulator.
|
||||
echo.
|
||||
pause
|
||||
|
||||
:done
|
155
emulator/8608emulator.c
Normal file
155
emulator/8608emulator.c
Normal file
@ -0,0 +1,155 @@
|
||||
// 8608emulator.c
|
||||
// This is the backend portion of the 8608 emulator application.
|
||||
// It uses the generated instruction code from instructions_gen.c to emulate the internals of the 8608 CPU.
|
||||
// It is included into the application by 8608emulator.lua, which provides the frontend.
|
||||
|
||||
#define lobyte(x) (x&0xFF)
|
||||
#define hibyte(x) ((x>>8)&0xFF)
|
||||
#define wordfrombytes(h,l) (((h<<8)&0xFF00)|(l&0xFF))
|
||||
#define popbyte readmemory(((--cpu->s)%256)+0x0100)
|
||||
#define loadimmed readmemory(cpu->i++)
|
||||
#define loadstackrel readmemory(cpu->t)
|
||||
#define loadstackrelp1 readmemory(cpu->t+1)
|
||||
#define wordut (wordfrombytes(cpu->u, cpu->t))
|
||||
#define wordcb (wordfrombytes(cpu->c, cpu->b))
|
||||
#define loadut readmemory(wordut)
|
||||
#define loadutp1 readmemory((wordut+1)%65536)
|
||||
#define loadp readmemory(cpu->p)
|
||||
#define loadq readmemory(cpu->q)
|
||||
#define loadpinc readmemory((cpu->p++)%65536)
|
||||
#define loadqinc readmemory((cpu->q++)%65536)
|
||||
#define loadpp1 readmemory((cpu->p+1)%65536)
|
||||
#define loadqp1 readmemory((cpu->q+1)%65536)
|
||||
#define loadput readmemory((cpu->p+wordut)%65536)
|
||||
#define loadqut readmemory((cpu->q+wordut)%65536)
|
||||
#define signed8(x) (x>=128 ? x|0xFF00 : x)
|
||||
#define setzf(x) cpu->nz=(x!=0);
|
||||
#define loadimmedt cpu->t = loadimmed;
|
||||
#define loadimm161 cpu->u = loadimmed;
|
||||
#define loadimm162 cpu->t = loadimmed;
|
||||
#define loadstackrelu cpu->u = loadstackrel;
|
||||
#define storestackrel(x) writememory(cpu->t, x);
|
||||
#define storestackrelu storestackrel(cpu->u);
|
||||
#define storestackrel161(x) writememory(cpu->t , hibyte(x));
|
||||
#define storestackrel162(x) writememory(cpu->t+1, lobyte(x));
|
||||
#define loadstackrel161 cpu->u=loadstackrel;
|
||||
#define loadstackrel162 cpu->t=loadstackrelp1;
|
||||
#define storeut(x) writememory(wordut, x);
|
||||
#define storeutp1(x) writememory((wordut+1)%65536, x);
|
||||
#define storep(x) writememory(cpu->p, x);
|
||||
#define storeq(x) writememory(cpu->q, x);
|
||||
#define storepinc(x) writememory(cpu->p++, x);
|
||||
#define storeqinc(x) writememory(cpu->q++, x);
|
||||
#define storepp1(x) writememory((cpu->p+1)%65536, x);
|
||||
#define storeqp1(x) writememory((cpu->q+1)%65536, x);
|
||||
#define storeput(x) writememory((cpu->p+wordut)%65536, x);
|
||||
#define storequt(x) writememory((cpu->q+wordut)%65536, x);
|
||||
#define pushretaddr1 writememory(((cpu->s++)%256)+0x0100, hibyte((cpu->i-1)%65536));
|
||||
#define pushretaddr2 writememory(((cpu->s++)%256)+0x0100, lobyte((cpu->i-1)%65536));
|
||||
#define lni cpu->instr = readmemory(cpu->i++); cpu->cycle = 0;
|
||||
#define ldi cpu->instr = readmemory(cpu->i); cpu->cycle = 0;
|
||||
#define addf(x,y) { x=(x+y)&0x1FF; cpu->cf=x>=256; x&=0xFF; setzf(x); }
|
||||
#define subf(x,y) addf(x,(-y)&0xFF);
|
||||
#define cmpf(x,y) { int t=x+((-y)&0xFF); cpu->cf=t>=256; t&=0xFF; setzf(t); }
|
||||
#define rol(x,y) x=(x<<y)|(x>>(8-y));
|
||||
#define ror(x,y) x=(x>>y)|(x<<(8-y));
|
||||
#define sra(x,y) x=(x>>y);
|
||||
#define jmpabsp cpu->i=cpu->p; lni;
|
||||
#define jmpabsq cpu->i=cpu->q; lni;
|
||||
#define jmpabsut cpu->i=wordut; lni;
|
||||
#define jmpabsutplus1 cpu->i=(wordut+1)%65536; lni;
|
||||
#define pushbyte(b) writememory(((cpu->s++)%256)+0x0100, b);
|
||||
#define push161(x) pushbyte(hibyte(x));
|
||||
#define push162(x) pushbyte(lobyte(x));
|
||||
#define pop161 cpu->t=popbyte;
|
||||
#define pop162 cpu->u=popbyte;
|
||||
#define tst(x) cpu->cf = x>=128; cpu->nz = x!=0;
|
||||
#define instrpreload cpu->instrpre = loadimmed;
|
||||
#define instrloadpre cpu->instr = cpu->instrpre; cpu->cycle = 0;
|
||||
#define jmprelt cpu->i = (cpu->i + signed8(cpu->t))%65536; lni;
|
||||
#define saveretaddr cpu->q = (cpu->i+1)%65536;
|
||||
|
||||
#define readmemory(x) _readmemory(cpu, mem, x)
|
||||
#define writememory(x, y) _writememory(cpu, mem, x, y)
|
||||
|
||||
struct CPU {
|
||||
int a;
|
||||
int b;
|
||||
int c;
|
||||
int u;
|
||||
int t;
|
||||
int p;
|
||||
int q;
|
||||
int s;
|
||||
int v;
|
||||
int i;
|
||||
int cf;
|
||||
int nz;
|
||||
int irq;
|
||||
int ifg;
|
||||
int rfg;
|
||||
int ien;
|
||||
int instr;
|
||||
int cycle;
|
||||
int instrpre;
|
||||
int frame;
|
||||
};
|
||||
struct Event {
|
||||
int id;
|
||||
int addr;
|
||||
};
|
||||
struct Memory {
|
||||
int data[65536];
|
||||
int canwrite[65536];
|
||||
int writes[65536];
|
||||
int reads[65536];
|
||||
int onread[65536];
|
||||
int onwrite[65536];
|
||||
struct Event events[4096];
|
||||
int numevents;
|
||||
};
|
||||
|
||||
void postEvent(struct Memory* const mem, int id, int addr) {
|
||||
if(mem->numevents<4096) {
|
||||
mem->events[mem->numevents].id = id;
|
||||
mem->events[mem->numevents].addr = addr;
|
||||
mem->numevents++;
|
||||
}
|
||||
}
|
||||
int _readmemory(const struct CPU* const cpu, struct Memory* const mem, const int addr) {
|
||||
int addr2 = addr%65536;
|
||||
mem->reads[addr2] = cpu->frame;
|
||||
if(mem->onread[addr2]) {
|
||||
postEvent(mem, mem->onread[addr2], addr2);
|
||||
}
|
||||
return mem->data[addr2];
|
||||
}
|
||||
int _writememory(const struct CPU* const cpu, struct Memory* const mem, const int addr, const int data) {
|
||||
int addr2 = addr%65536;
|
||||
if(mem->canwrite[addr2]) {
|
||||
mem->writes[addr2] = cpu->frame;
|
||||
mem->data[addr2] = data%256;
|
||||
}
|
||||
if(mem->onwrite[addr2]) {
|
||||
postEvent(mem, mem->onwrite[addr2], addr2);
|
||||
}
|
||||
}
|
||||
|
||||
typedef void(*CPUInstruction)(struct CPU* const cpu, struct Memory* const mem);
|
||||
|
||||
#include "instructions_gen.c"
|
||||
|
||||
int TickCPU(struct CPU* const cpu, struct Memory* const mem, const int count, const int countinstrs, const int breakaddr) {
|
||||
int i = 0;
|
||||
while(i<count) {
|
||||
if(cpu->irq && !cpu->ifg && cpu->cycle==0 && cpu->ien) { cpu->instr = 0x01; }
|
||||
if(cpu->rfg || cpu->ifg || (cpu->irq && cpu->ien)) {
|
||||
CPUInstruction instr = CPUInstructions[cpu->instr][cpu->cycle];
|
||||
if(instr) instr(cpu, mem);
|
||||
if(!countinstrs || cpu->cycle==0) { i++; }
|
||||
if(cpu->i==breakaddr) { i = count; break; }
|
||||
} else { i = count; break; }
|
||||
if(mem->numevents!=0) { break; }
|
||||
}
|
||||
return count-i;
|
||||
}
|
BIN
emulator/8608emulator.dll
Normal file
BIN
emulator/8608emulator.dll
Normal file
Binary file not shown.
1001
emulator/8608emulator.lua
Normal file
1001
emulator/8608emulator.lua
Normal file
File diff suppressed because it is too large
Load Diff
79
emulator/colorset.lua
Normal file
79
emulator/colorset.lua
Normal file
@ -0,0 +1,79 @@
|
||||
-- Colorset definitions
|
||||
-- This is used by the emulator to convert color codes into colors for the text and video displays.
|
||||
-- It should correspond with the colorset used in-game.
|
||||
-- Colors are listed in order of color code from 0 to 63.
|
||||
-- The format is 8-bit RGBA. The alpha channel is currently ignored.
|
||||
|
||||
ColorSet = {
|
||||
{222,52,52,255},
|
||||
{166,65,65,255},
|
||||
{220,215,144,255},
|
||||
{231,193,110,255},
|
||||
{57,180,74,255},
|
||||
{0,128,64,255},
|
||||
{50,105,227,255},
|
||||
{49,79,145,255},
|
||||
|
||||
{196,17,14,255},
|
||||
{112,17,10,255},
|
||||
{255,191,0,255},
|
||||
{168,98,0,255},
|
||||
{38,107,22,255},
|
||||
{28,82,17,255},
|
||||
{165,189,210,255},
|
||||
{105,145,170,255},
|
||||
|
||||
{198,105,156,255},
|
||||
{145,68,92,255},
|
||||
{239,202,217,255},
|
||||
{225,175,153,255},
|
||||
{255,125,64,255},
|
||||
{160,66,22,255},
|
||||
{165,234,240,255},
|
||||
{85,175,205,255},
|
||||
|
||||
{178,169,231,255},
|
||||
{139,90,176,255},
|
||||
{229,175,121,255},
|
||||
{100,50,0,255},
|
||||
{232,114,0,255},
|
||||
{191,54,0,255},
|
||||
{138,178,141,255},
|
||||
{37,69,69,255},
|
||||
|
||||
{240,239,235,255},
|
||||
{221,216,214,255},
|
||||
{188,184,182,255},
|
||||
{163,158,153,255},
|
||||
{124,124,117,255},
|
||||
{87,86,80,255},
|
||||
{45,45,42,255},
|
||||
{17,17,14,255},
|
||||
|
||||
{207,175,144,255},
|
||||
{189,158,121,255},
|
||||
{177,138,102,255},
|
||||
{154,112,79,255},
|
||||
{119,82,56,255},
|
||||
{87,59,35,255},
|
||||
{61,36,14,255},
|
||||
{40,23,8,255},
|
||||
|
||||
{127,52,52,190},
|
||||
{196,136,52,190},
|
||||
{55,90,25,190},
|
||||
{160,180,255,180},
|
||||
{10,45,80,180},
|
||||
{31,22,8,200},
|
||||
{230,228,225,150},
|
||||
{18,18,18,150},
|
||||
|
||||
{199,178,156,255},
|
||||
{150,135,120,255},
|
||||
{115,99,87,255},
|
||||
{85,70,65,255},
|
||||
{54,47,45,255},
|
||||
{255,255,255,255},
|
||||
{0,0,0,255},
|
||||
{255,255,255,50},
|
||||
}
|
11
emulator/conf.lua
Normal file
11
emulator/conf.lua
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
WindowScale = 2
|
||||
WindowX = 800
|
||||
WindowY = 480
|
||||
|
||||
function love.conf(t)
|
||||
t.console = true
|
||||
t.window.width = WindowX*WindowScale
|
||||
t.window.height = WindowY*WindowScale
|
||||
t.window.title = "8608 Emulator"
|
||||
end
|
BIN
emulator/content/consola.ttf
Normal file
BIN
emulator/content/consola.ttf
Normal file
Binary file not shown.
BIN
emulator/content/enter.wav
Normal file
BIN
emulator/content/enter.wav
Normal file
Binary file not shown.
BIN
emulator/content/error.wav
Normal file
BIN
emulator/content/error.wav
Normal file
Binary file not shown.
BIN
emulator/content/interrupt.wav
Normal file
BIN
emulator/content/interrupt.wav
Normal file
Binary file not shown.
BIN
emulator/content/keyOff.wav
Normal file
BIN
emulator/content/keyOff.wav
Normal file
Binary file not shown.
BIN
emulator/content/keyOn.wav
Normal file
BIN
emulator/content/keyOn.wav
Normal file
Binary file not shown.
BIN
emulator/content/runOff.wav
Normal file
BIN
emulator/content/runOff.wav
Normal file
Binary file not shown.
BIN
emulator/content/runOn.wav
Normal file
BIN
emulator/content/runOn.wav
Normal file
Binary file not shown.
BIN
emulator/content/start.wav
Normal file
BIN
emulator/content/start.wav
Normal file
Binary file not shown.
BIN
emulator/content/step.wav
Normal file
BIN
emulator/content/step.wav
Normal file
Binary file not shown.
BIN
emulator/content/success.wav
Normal file
BIN
emulator/content/success.wav
Normal file
Binary file not shown.
BIN
emulator/content/write.wav
Normal file
BIN
emulator/content/write.wav
Normal file
Binary file not shown.
BIN
emulator/content/writeDone.wav
Normal file
BIN
emulator/content/writeDone.wav
Normal file
Binary file not shown.
71
emulator/gendefs.lua
Normal file
71
emulator/gendefs.lua
Normal file
@ -0,0 +1,71 @@
|
||||
-- gendefs.lua
|
||||
-- This code generates instructions_gen.c from the instruction definitions in 8608-instructions.lua.
|
||||
-- It is executed as part of the compilation process for the 8608 emulator DLL.
|
||||
|
||||
local function fixCode(code)
|
||||
code = code:gsub("cpu%.", "cpu%->")
|
||||
if
|
||||
not code:find("lni") and
|
||||
not code:find("instrloadpre") and
|
||||
not code:find("jmp") and
|
||||
not code:find("ldi")
|
||||
then code = code.." cpu->cycle++;" end
|
||||
return code
|
||||
end
|
||||
local function lineFromInstr(instr)
|
||||
local cycleLines = {}
|
||||
for cycle = 0, 7 do
|
||||
if instr and instr.ccode[cycle+1] then
|
||||
cycleLines[cycle+1] = string.format("cpu_instr_%i_%i", instr.opcode, cycle)
|
||||
else
|
||||
cycleLines[cycle+1] = 0
|
||||
end
|
||||
end
|
||||
return string.format("{%s},", table.concat(cycleLines, ","))
|
||||
end
|
||||
local function codeFromInstr(instr, lines)
|
||||
for i, code in ipairs(instr.ccode) do
|
||||
local cycle = i-1
|
||||
local line = string.format(
|
||||
"void cpu_instr_%i_%i(struct CPU* const cpu, struct Memory* const mem) { %s }",
|
||||
instr.opcode, cycle,
|
||||
fixCode(code)
|
||||
)
|
||||
table.insert(lines, line)
|
||||
end
|
||||
end
|
||||
|
||||
local ccode = [[
|
||||
// Auto-generated by gendefs.lua
|
||||
|
||||
%s
|
||||
|
||||
CPUInstruction CPUInstructions[256][8] = {
|
||||
%s
|
||||
};
|
||||
]]
|
||||
local function ccodeFromArch(arch)
|
||||
local instrsByOpcode = {}
|
||||
for i, instr in ipairs(arch.instructions) do
|
||||
if instr.opcode then instrsByOpcode[instr.opcode] = instr end
|
||||
end
|
||||
|
||||
local instrLines = {}
|
||||
local funcLines = {}
|
||||
for opcode = 0, 255 do
|
||||
local instr = instrsByOpcode[opcode]
|
||||
instrLines[opcode+1] = lineFromInstr(instr)
|
||||
if instr then codeFromInstr(instr, funcLines) end
|
||||
end
|
||||
return string.format(ccode,
|
||||
table.concat(funcLines, "\n"),
|
||||
table.concat(instrLines, "\n\t")
|
||||
)
|
||||
end
|
||||
|
||||
__ARCH_INCLUDED = true
|
||||
local arch = dofile("../8608-definition.lua")
|
||||
arch.instructions = dofile("../8608-instructions.lua")
|
||||
local fo = io.open("instructions_gen.c", "w")
|
||||
fo:write(ccodeFromArch(arch))
|
||||
fo:close()
|
7
emulator/generate-and-compile.bat
Normal file
7
emulator/generate-and-compile.bat
Normal file
@ -0,0 +1,7 @@
|
||||
rem This is the procedure to generate the C code for the emulator backend
|
||||
rem from the instruction definitions in the parent directory,
|
||||
rem and compile it.
|
||||
|
||||
luajit gendefs.lua
|
||||
gcc 8608emulator.c -shared -Ofast -o 8608emulator.dll
|
||||
pause
|
712
emulator/instructions_gen.c
Normal file
712
emulator/instructions_gen.c
Normal file
@ -0,0 +1,712 @@
|
||||
// Auto-generated by gendefs.lua
|
||||
|
||||
void cpu_instr_0_0(struct CPU* const cpu, struct Memory* const mem) { cpu->ifg=1; cpu->u=readmemory(0xFFFE); cpu->cycle++; }
|
||||
void cpu_instr_0_1(struct CPU* const cpu, struct Memory* const mem) { cpu->t=readmemory(0xFFFF); cpu->cycle++; }
|
||||
void cpu_instr_0_2(struct CPU* const cpu, struct Memory* const mem) { cpu->v=(cpu->i )%65536; jmpabsut; }
|
||||
void cpu_instr_1_0(struct CPU* const cpu, struct Memory* const mem) { cpu->irq=0; cpu->ifg=1; cpu->u=readmemory(0xFFFE); cpu->cycle++; }
|
||||
void cpu_instr_1_1(struct CPU* const cpu, struct Memory* const mem) { cpu->t=readmemory(0xFFFF); cpu->cycle++; }
|
||||
void cpu_instr_1_2(struct CPU* const cpu, struct Memory* const mem) { cpu->v=(cpu->i-1)%65536; jmpabsut; }
|
||||
void cpu_instr_3_0(struct CPU* const cpu, struct Memory* const mem) { storep(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_3_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_4_0(struct CPU* const cpu, struct Memory* const mem) { pushretaddr1 cpu->cycle++; }
|
||||
void cpu_instr_4_1(struct CPU* const cpu, struct Memory* const mem) { pushretaddr2 cpu->cycle++; }
|
||||
void cpu_instr_4_2(struct CPU* const cpu, struct Memory* const mem) { jmpabsq }
|
||||
void cpu_instr_5_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_5_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_5_2(struct CPU* const cpu, struct Memory* const mem) { cpu->a|=cpu->u; setzf(cpu->a); lni; }
|
||||
void cpu_instr_7_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt; cpu->cycle++; }
|
||||
void cpu_instr_7_1(struct CPU* const cpu, struct Memory* const mem) { storestackrel(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_7_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_8_0(struct CPU* const cpu, struct Memory* const mem) { int f = cpu->nz | (cpu->cf<<1); pushbyte(f); cpu->cycle++; }
|
||||
void cpu_instr_8_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_9_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_9_1(struct CPU* const cpu, struct Memory* const mem) { cpu->a|=cpu->t; setzf(cpu->a); lni; }
|
||||
void cpu_instr_12_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_12_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_12_2(struct CPU* const cpu, struct Memory* const mem) { pushretaddr1 cpu->cycle++; }
|
||||
void cpu_instr_12_3(struct CPU* const cpu, struct Memory* const mem) { pushretaddr2 cpu->cycle++; }
|
||||
void cpu_instr_12_4(struct CPU* const cpu, struct Memory* const mem) { cpu->i=(wordut+cpu->a)%65536;cpu->u=readmemory(cpu->i); cpu->cycle++; }
|
||||
void cpu_instr_12_5(struct CPU* const cpu, struct Memory* const mem) { cpu->t=readmemory((cpu->i+1)%65536); cpu->cycle++; }
|
||||
void cpu_instr_12_6(struct CPU* const cpu, struct Memory* const mem) { jmpabsut }
|
||||
void cpu_instr_16_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_16_1(struct CPU* const cpu, struct Memory* const mem) { if((!cpu->nz) || (!cpu->cf)) { jmprelt } else { lni } }
|
||||
void cpu_instr_19_0(struct CPU* const cpu, struct Memory* const mem) { storeq(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_19_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_20_0(struct CPU* const cpu, struct Memory* const mem) { push161(cpu->q); cpu->cycle++; }
|
||||
void cpu_instr_20_1(struct CPU* const cpu, struct Memory* const mem) { push162(cpu->q); cpu->cycle++; }
|
||||
void cpu_instr_20_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_21_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_21_1(struct CPU* const cpu, struct Memory* const mem) { cpu->a<<=cpu->t; setzf(cpu->a); lni; }
|
||||
void cpu_instr_23_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a=cpu->c; lni; }
|
||||
void cpu_instr_24_0(struct CPU* const cpu, struct Memory* const mem) { cpu->rfg=0; lni; }
|
||||
void cpu_instr_25_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a|=cpu->c; setzf(cpu->a); lni; }
|
||||
void cpu_instr_27_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_27_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_27_2(struct CPU* const cpu, struct Memory* const mem) { storequt(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_27_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_28_0(struct CPU* const cpu, struct Memory* const mem) { pushbyte(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_28_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_29_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a|=cpu->b; setzf(cpu->a); lni; }
|
||||
void cpu_instr_31_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_31_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_31_2(struct CPU* const cpu, struct Memory* const mem) { storeput(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_31_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_32_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_32_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_32_2(struct CPU* const cpu, struct Memory* const mem) { pushretaddr1 cpu->cycle++; }
|
||||
void cpu_instr_32_3(struct CPU* const cpu, struct Memory* const mem) { pushretaddr2 cpu->cycle++; }
|
||||
void cpu_instr_32_4(struct CPU* const cpu, struct Memory* const mem) { jmpabsut }
|
||||
void cpu_instr_35_0(struct CPU* const cpu, struct Memory* const mem) { cpu->c=loadp; setzf(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_35_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_36_0(struct CPU* const cpu, struct Memory* const mem) { pushretaddr1 cpu->cycle++; }
|
||||
void cpu_instr_36_1(struct CPU* const cpu, struct Memory* const mem) { pushretaddr2 cpu->cycle++; }
|
||||
void cpu_instr_36_2(struct CPU* const cpu, struct Memory* const mem) { jmpabsp }
|
||||
void cpu_instr_37_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_37_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_37_2(struct CPU* const cpu, struct Memory* const mem) { cpu->a&=cpu->u; setzf(cpu->a); lni; }
|
||||
void cpu_instr_39_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt; cpu->cycle++; }
|
||||
void cpu_instr_39_1(struct CPU* const cpu, struct Memory* const mem) { cpu->c=loadstackrel; setzf(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_39_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_40_0(struct CPU* const cpu, struct Memory* const mem) { int f=popbyte; cpu->nz = f&1; cpu->cf = (f>>1)&1; cpu->cycle++; }
|
||||
void cpu_instr_40_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_41_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_41_1(struct CPU* const cpu, struct Memory* const mem) { cpu->a&=cpu->t; setzf(cpu->a); lni; }
|
||||
void cpu_instr_43_0(struct CPU* const cpu, struct Memory* const mem) { cpu->c=loadimmed; setzf(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_43_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_44_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_44_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_44_2(struct CPU* const cpu, struct Memory* const mem) { pushretaddr1 cpu->cycle++; }
|
||||
void cpu_instr_44_3(struct CPU* const cpu, struct Memory* const mem) { pushretaddr2 cpu->cycle++; }
|
||||
void cpu_instr_44_4(struct CPU* const cpu, struct Memory* const mem) { cpu->i=(wordut+cpu->a)%65536;cpu->u=readmemory(cpu->i); cpu->cycle++; }
|
||||
void cpu_instr_44_5(struct CPU* const cpu, struct Memory* const mem) { cpu->t=readmemory((cpu->i+1)%65536); cpu->cycle++; }
|
||||
void cpu_instr_44_6(struct CPU* const cpu, struct Memory* const mem) { jmpabsut }
|
||||
void cpu_instr_48_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_48_1(struct CPU* const cpu, struct Memory* const mem) { if( cpu->nz && cpu->cf ) { jmprelt } else { lni } }
|
||||
void cpu_instr_51_0(struct CPU* const cpu, struct Memory* const mem) { cpu->c=loadq; setzf(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_51_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_52_0(struct CPU* const cpu, struct Memory* const mem) { pop161 cpu->cycle++; }
|
||||
void cpu_instr_52_1(struct CPU* const cpu, struct Memory* const mem) { pop162 cpu->cycle++; }
|
||||
void cpu_instr_52_2(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; lni; }
|
||||
void cpu_instr_53_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_53_1(struct CPU* const cpu, struct Memory* const mem) { cpu->a=rol(cpu->a,cpu->t); setzf(cpu->a); lni; }
|
||||
void cpu_instr_55_0(struct CPU* const cpu, struct Memory* const mem) { cpu->c=cpu->a; lni; }
|
||||
void cpu_instr_56_0(struct CPU* const cpu, struct Memory* const mem) { cpu->rfg=1; lni; }
|
||||
void cpu_instr_57_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a&=cpu->c; setzf(cpu->a); lni; }
|
||||
void cpu_instr_59_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_59_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_59_2(struct CPU* const cpu, struct Memory* const mem) { cpu->c=loadqut; setzf(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_59_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_60_0(struct CPU* const cpu, struct Memory* const mem) { cpu->c=popbyte; cpu->cycle++; }
|
||||
void cpu_instr_60_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_61_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a&=cpu->b; setzf(cpu->a); lni; }
|
||||
void cpu_instr_63_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_63_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_63_2(struct CPU* const cpu, struct Memory* const mem) { cpu->c=loadput; setzf(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_63_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_64_0(struct CPU* const cpu, struct Memory* const mem) { cpu->ifg=0; int t=cpu->i; cpu->i=cpu->v; cpu->v=t; lni; }
|
||||
void cpu_instr_65_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a=0; cpu->b=0; cpu->c=0; cpu->u=0; cpu->t=0; cpu->p=0; cpu->q=0; cpu->s=0; cpu->v=0; cpu->i=0; cpu->cf=0; cpu->nz=0; cpu->rfg=1; cpu->ien=0; cpu->irq=0; cpu->ifg=0; cpu->u=readmemory(0xFFFC); cpu->cycle++; }
|
||||
void cpu_instr_65_1(struct CPU* const cpu, struct Memory* const mem) { cpu->t=readmemory(0xFFFD); cpu->cycle++; }
|
||||
void cpu_instr_65_2(struct CPU* const cpu, struct Memory* const mem) { jmpabsut; }
|
||||
void cpu_instr_67_0(struct CPU* const cpu, struct Memory* const mem) { storepinc(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_67_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_68_0(struct CPU* const cpu, struct Memory* const mem) { jmpabsq }
|
||||
void cpu_instr_69_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_69_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_69_2(struct CPU* const cpu, struct Memory* const mem) { cpu->a^=cpu->u; setzf(cpu->a); lni; }
|
||||
void cpu_instr_71_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_71_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_71_2(struct CPU* const cpu, struct Memory* const mem) { instrpreload; addf(cpu->u,cpu->cf); cpu->cycle++; }
|
||||
void cpu_instr_71_3(struct CPU* const cpu, struct Memory* const mem) { storestackrelu; instrloadpre }
|
||||
void cpu_instr_72_0(struct CPU* const cpu, struct Memory* const mem) { pushbyte(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_72_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_73_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_73_1(struct CPU* const cpu, struct Memory* const mem) { cpu->a^=cpu->t; setzf(cpu->a); lni; }
|
||||
void cpu_instr_76_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_76_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_76_2(struct CPU* const cpu, struct Memory* const mem) { cpu->i=(wordut+cpu->a)%65536;cpu->u=readmemory(cpu->i); cpu->cycle++; }
|
||||
void cpu_instr_76_3(struct CPU* const cpu, struct Memory* const mem) { cpu->t=readmemory((cpu->i+1)%65536); cpu->cycle++; }
|
||||
void cpu_instr_76_4(struct CPU* const cpu, struct Memory* const mem) { jmpabsut }
|
||||
void cpu_instr_79_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_79_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_79_2(struct CPU* const cpu, struct Memory* const mem) { storeut(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_79_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_83_0(struct CPU* const cpu, struct Memory* const mem) { storeqinc(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_83_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_84_0(struct CPU* const cpu, struct Memory* const mem) { push161(cpu->p); cpu->cycle++; }
|
||||
void cpu_instr_84_1(struct CPU* const cpu, struct Memory* const mem) { push162(cpu->p); cpu->cycle++; }
|
||||
void cpu_instr_84_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_85_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_85_1(struct CPU* const cpu, struct Memory* const mem) { cpu->a>>=cpu->t; setzf(cpu->a); lni; }
|
||||
void cpu_instr_87_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,cpu->cf); lni; }
|
||||
void cpu_instr_88_0(struct CPU* const cpu, struct Memory* const mem) { cpu->ien=1; lni; }
|
||||
void cpu_instr_89_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a^=cpu->c; setzf(cpu->a); lni; }
|
||||
void cpu_instr_91_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->c,cpu->cf); lni; }
|
||||
void cpu_instr_92_0(struct CPU* const cpu, struct Memory* const mem) { pushbyte(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_92_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_93_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a^=cpu->b; setzf(cpu->a); lni; }
|
||||
void cpu_instr_95_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->b,cpu->cf); lni; }
|
||||
void cpu_instr_96_0(struct CPU* const cpu, struct Memory* const mem) { pop161 cpu->cycle++; }
|
||||
void cpu_instr_96_1(struct CPU* const cpu, struct Memory* const mem) { pop162 cpu->cycle++; }
|
||||
void cpu_instr_96_2(struct CPU* const cpu, struct Memory* const mem) { jmpabsutplus1 }
|
||||
void cpu_instr_99_0(struct CPU* const cpu, struct Memory* const mem) { cpu->c=loadpinc; setzf(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_99_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_100_0(struct CPU* const cpu, struct Memory* const mem) { jmpabsp }
|
||||
void cpu_instr_101_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_101_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_101_2(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,cpu->u+cpu->cf); lni; }
|
||||
void cpu_instr_103_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_103_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_103_2(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,cpu->u); lni; }
|
||||
void cpu_instr_104_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a=popbyte; cpu->cycle++; }
|
||||
void cpu_instr_104_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_105_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_105_1(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,cpu->t+cpu->cf); lni; }
|
||||
void cpu_instr_107_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_107_1(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,cpu->t); lni; }
|
||||
void cpu_instr_108_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_108_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_108_2(struct CPU* const cpu, struct Memory* const mem) { cpu->i=(wordut+cpu->a)%65536;cpu->u=readmemory(cpu->i); cpu->cycle++; }
|
||||
void cpu_instr_108_3(struct CPU* const cpu, struct Memory* const mem) { cpu->t=readmemory((cpu->i+1)%65536); cpu->cycle++; }
|
||||
void cpu_instr_108_4(struct CPU* const cpu, struct Memory* const mem) { jmpabsut }
|
||||
void cpu_instr_111_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_111_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_111_2(struct CPU* const cpu, struct Memory* const mem) { cpu->c=loadut; setzf(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_111_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_115_0(struct CPU* const cpu, struct Memory* const mem) { cpu->c=loadqinc; setzf(cpu->c); cpu->cycle++; }
|
||||
void cpu_instr_115_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_116_0(struct CPU* const cpu, struct Memory* const mem) { pop161 cpu->cycle++; }
|
||||
void cpu_instr_116_1(struct CPU* const cpu, struct Memory* const mem) { pop162 cpu->cycle++; }
|
||||
void cpu_instr_116_2(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_117_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_117_1(struct CPU* const cpu, struct Memory* const mem) { cpu->a=ror(cpu->a,cpu->t); setzf(cpu->a); lni; }
|
||||
void cpu_instr_120_0(struct CPU* const cpu, struct Memory* const mem) { cpu->ien=0; lni; }
|
||||
void cpu_instr_121_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,cpu->c+cpu->cf); lni; }
|
||||
void cpu_instr_123_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,cpu->c); lni; }
|
||||
void cpu_instr_124_0(struct CPU* const cpu, struct Memory* const mem) { cpu->b=popbyte; cpu->cycle++; }
|
||||
void cpu_instr_124_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_125_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,cpu->b+cpu->cf); lni; }
|
||||
void cpu_instr_127_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,cpu->b); lni; }
|
||||
void cpu_instr_128_0(struct CPU* const cpu, struct Memory* const mem) { storep(hibyte(cpu->q)); cpu->cycle++; }
|
||||
void cpu_instr_128_1(struct CPU* const cpu, struct Memory* const mem) { storepp1(lobyte(cpu->q)); cpu->cycle++; }
|
||||
void cpu_instr_128_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_129_0(struct CPU* const cpu, struct Memory* const mem) { storep(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_129_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_131_0(struct CPU* const cpu, struct Memory* const mem) { storep(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_131_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_132_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_132_1(struct CPU* const cpu, struct Memory* const mem) { storestackrel161(cpu->q); cpu->cycle++; }
|
||||
void cpu_instr_132_2(struct CPU* const cpu, struct Memory* const mem) { storestackrel162(cpu->q); cpu->cycle++; }
|
||||
void cpu_instr_132_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_133_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt; cpu->cycle++; }
|
||||
void cpu_instr_133_1(struct CPU* const cpu, struct Memory* const mem) { storestackrel(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_133_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_134_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_134_1(struct CPU* const cpu, struct Memory* const mem) { storestackrel161(cpu->p); cpu->cycle++; }
|
||||
void cpu_instr_134_2(struct CPU* const cpu, struct Memory* const mem) { storestackrel162(cpu->p); cpu->cycle++; }
|
||||
void cpu_instr_134_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_135_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt; cpu->cycle++; }
|
||||
void cpu_instr_135_1(struct CPU* const cpu, struct Memory* const mem) { storestackrel(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_135_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_136_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_136_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_136_2(struct CPU* const cpu, struct Memory* const mem) { cpu->q=(cpu->p+wordut )%65536; lni; }
|
||||
void cpu_instr_138_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_138_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_138_2(struct CPU* const cpu, struct Memory* const mem) { cpu->p=(cpu->p+wordut )%65536; lni; }
|
||||
void cpu_instr_140_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_140_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_140_2(struct CPU* const cpu, struct Memory* const mem) { storeut(hibyte(cpu->q)); cpu->cycle++; }
|
||||
void cpu_instr_140_3(struct CPU* const cpu, struct Memory* const mem) { storeutp1(lobyte(cpu->q)); cpu->cycle++; }
|
||||
void cpu_instr_140_4(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_142_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_142_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_142_2(struct CPU* const cpu, struct Memory* const mem) { storeut(hibyte(cpu->p)); cpu->cycle++; }
|
||||
void cpu_instr_142_3(struct CPU* const cpu, struct Memory* const mem) { storeutp1(lobyte(cpu->p)); cpu->cycle++; }
|
||||
void cpu_instr_142_4(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_144_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_144_1(struct CPU* const cpu, struct Memory* const mem) { if(!cpu->cf ) { jmprelt } else { lni } }
|
||||
void cpu_instr_145_0(struct CPU* const cpu, struct Memory* const mem) { storeq(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_145_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_146_0(struct CPU* const cpu, struct Memory* const mem) { storeq(hibyte(cpu->p)); cpu->cycle++; }
|
||||
void cpu_instr_146_1(struct CPU* const cpu, struct Memory* const mem) { storeqp1(lobyte(cpu->p)); cpu->cycle++; }
|
||||
void cpu_instr_146_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_147_0(struct CPU* const cpu, struct Memory* const mem) { storeq(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_147_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_148_0(struct CPU* const cpu, struct Memory* const mem) { cpu->q=cpu->p; lni; }
|
||||
void cpu_instr_149_0(struct CPU* const cpu, struct Memory* const mem) { cpu->p=cpu->s; lni; }
|
||||
void cpu_instr_150_0(struct CPU* const cpu, struct Memory* const mem) { cpu->p=cpu->v; lni; }
|
||||
void cpu_instr_151_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a=cpu->b; lni; }
|
||||
void cpu_instr_152_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_152_1(struct CPU* const cpu, struct Memory* const mem) { jmprelt }
|
||||
void cpu_instr_153_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_153_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_153_2(struct CPU* const cpu, struct Memory* const mem) { storequt(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_153_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_154_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_154_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_154_2(struct CPU* const cpu, struct Memory* const mem) { storeut(hibyte(cpu->p)); cpu->cycle++; }
|
||||
void cpu_instr_154_3(struct CPU* const cpu, struct Memory* const mem) { storeutp1(lobyte(cpu->p)); cpu->cycle++; }
|
||||
void cpu_instr_154_4(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_155_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_155_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_155_2(struct CPU* const cpu, struct Memory* const mem) { storequt(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_155_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_156_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_156_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_156_2(struct CPU* const cpu, struct Memory* const mem) { storeut(hibyte(cpu->q)); cpu->cycle++; }
|
||||
void cpu_instr_156_3(struct CPU* const cpu, struct Memory* const mem) { storeutp1(lobyte(cpu->q)); cpu->cycle++; }
|
||||
void cpu_instr_156_4(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_157_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_157_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_157_2(struct CPU* const cpu, struct Memory* const mem) { storeput(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_157_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_159_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_159_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_159_2(struct CPU* const cpu, struct Memory* const mem) { storeput(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_159_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_160_0(struct CPU* const cpu, struct Memory* const mem) { cpu->u=loadp; cpu->cycle++; }
|
||||
void cpu_instr_160_1(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadpp1; cpu->cycle++; }
|
||||
void cpu_instr_160_2(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; lni; }
|
||||
void cpu_instr_161_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a=loadp; setzf(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_161_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_162_0(struct CPU* const cpu, struct Memory* const mem) { cpu->u=loadp; cpu->cycle++; }
|
||||
void cpu_instr_162_1(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadpp1; cpu->cycle++; }
|
||||
void cpu_instr_162_2(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_163_0(struct CPU* const cpu, struct Memory* const mem) { cpu->b=loadp; setzf(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_163_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_164_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_164_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrel161 cpu->cycle++; }
|
||||
void cpu_instr_164_2(struct CPU* const cpu, struct Memory* const mem) { loadstackrel162 cpu->cycle++; }
|
||||
void cpu_instr_164_3(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_165_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt; cpu->cycle++; }
|
||||
void cpu_instr_165_1(struct CPU* const cpu, struct Memory* const mem) { cpu->a=loadstackrel; setzf(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_165_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_166_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_166_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrel161 cpu->cycle++; }
|
||||
void cpu_instr_166_2(struct CPU* const cpu, struct Memory* const mem) { loadstackrel162 cpu->cycle++; }
|
||||
void cpu_instr_166_3(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_167_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt; cpu->cycle++; }
|
||||
void cpu_instr_167_1(struct CPU* const cpu, struct Memory* const mem) { cpu->b=loadstackrel; setzf(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_167_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_168_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_168_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_168_2(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; lni; }
|
||||
void cpu_instr_169_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a=loadimmed; setzf(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_169_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_170_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_170_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_170_2(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_171_0(struct CPU* const cpu, struct Memory* const mem) { cpu->b=loadimmed; setzf(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_171_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_172_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_172_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_172_2(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; cpu->u=loadut; cpu->cycle++; }
|
||||
void cpu_instr_172_3(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadqp1; cpu->cycle++; }
|
||||
void cpu_instr_172_4(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; lni; }
|
||||
void cpu_instr_174_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_174_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_174_2(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; cpu->u=loadut; cpu->cycle++; }
|
||||
void cpu_instr_174_3(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadpp1; cpu->cycle++; }
|
||||
void cpu_instr_174_4(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_176_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_176_1(struct CPU* const cpu, struct Memory* const mem) { if( cpu->cf ) { jmprelt } else { lni } }
|
||||
void cpu_instr_177_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a=loadq; setzf(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_177_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_178_0(struct CPU* const cpu, struct Memory* const mem) { cpu->u=loadq; cpu->cycle++; }
|
||||
void cpu_instr_178_1(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadqp1; cpu->cycle++; }
|
||||
void cpu_instr_178_2(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_179_0(struct CPU* const cpu, struct Memory* const mem) { cpu->b=loadq; setzf(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_179_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_180_0(struct CPU* const cpu, struct Memory* const mem) { cpu->p=cpu->q; lni; }
|
||||
void cpu_instr_181_0(struct CPU* const cpu, struct Memory* const mem) { cpu->s=cpu->p; lni; }
|
||||
void cpu_instr_182_0(struct CPU* const cpu, struct Memory* const mem) { cpu->v=cpu->p; lni; }
|
||||
void cpu_instr_183_0(struct CPU* const cpu, struct Memory* const mem) { cpu->b=cpu->a; lni; }
|
||||
void cpu_instr_184_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_184_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_184_2(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; cpu->u=loadut; cpu->cycle++; }
|
||||
void cpu_instr_184_3(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadqp1; cpu->cycle++; }
|
||||
void cpu_instr_184_4(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; lni; }
|
||||
void cpu_instr_185_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_185_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_185_2(struct CPU* const cpu, struct Memory* const mem) { cpu->a=loadqut; setzf(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_185_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_186_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_186_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_186_2(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; cpu->u=loadut; cpu->cycle++; }
|
||||
void cpu_instr_186_3(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadqp1; cpu->cycle++; }
|
||||
void cpu_instr_186_4(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; lni; }
|
||||
void cpu_instr_187_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_187_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_187_2(struct CPU* const cpu, struct Memory* const mem) { cpu->b=loadqut; setzf(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_187_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_188_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_188_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_188_2(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; cpu->u=loadut; cpu->cycle++; }
|
||||
void cpu_instr_188_3(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadpp1; cpu->cycle++; }
|
||||
void cpu_instr_188_4(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_189_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_189_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_189_2(struct CPU* const cpu, struct Memory* const mem) { cpu->a=loadput; setzf(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_189_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_190_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_190_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_190_2(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; cpu->u=loadut; cpu->cycle++; }
|
||||
void cpu_instr_190_3(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadpp1; cpu->cycle++; }
|
||||
void cpu_instr_190_4(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_191_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_191_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_191_2(struct CPU* const cpu, struct Memory* const mem) { cpu->b=loadput; setzf(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_191_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_192_0(struct CPU* const cpu, struct Memory* const mem) { storepinc(hibyte(cpu->q)); cpu->cycle++; }
|
||||
void cpu_instr_192_1(struct CPU* const cpu, struct Memory* const mem) { storepinc(lobyte(cpu->q)); cpu->cycle++; }
|
||||
void cpu_instr_192_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_193_0(struct CPU* const cpu, struct Memory* const mem) { storepinc(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_193_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_195_0(struct CPU* const cpu, struct Memory* const mem) { storepinc(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_195_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_197_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_197_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_197_2(struct CPU* const cpu, struct Memory* const mem) { cmpf(cpu->a,cpu->u); lni; }
|
||||
void cpu_instr_198_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_198_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_198_2(struct CPU* const cpu, struct Memory* const mem) { instrpreload; addf(cpu->u,-1 ); cpu->cycle++; }
|
||||
void cpu_instr_198_3(struct CPU* const cpu, struct Memory* const mem) { storestackrelu; instrloadpre }
|
||||
void cpu_instr_200_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_200_1(struct CPU* const cpu, struct Memory* const mem) { cpu->q=(cpu->q+signed8(cpu->t))%65536; lni; }
|
||||
void cpu_instr_201_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_201_1(struct CPU* const cpu, struct Memory* const mem) { cmpf(cpu->a,cpu->t); lni; }
|
||||
void cpu_instr_204_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_204_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_204_2(struct CPU* const cpu, struct Memory* const mem) { jmpabsut }
|
||||
void cpu_instr_205_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_205_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_205_2(struct CPU* const cpu, struct Memory* const mem) { storeut(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_205_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_207_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_207_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_207_2(struct CPU* const cpu, struct Memory* const mem) { storeut(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_207_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_208_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_208_1(struct CPU* const cpu, struct Memory* const mem) { if( cpu->nz ) { jmprelt } else { lni } }
|
||||
void cpu_instr_209_0(struct CPU* const cpu, struct Memory* const mem) { storeqinc(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_209_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_210_0(struct CPU* const cpu, struct Memory* const mem) { storeqinc(hibyte(cpu->p)); cpu->cycle++; }
|
||||
void cpu_instr_210_1(struct CPU* const cpu, struct Memory* const mem) { storeqinc(lobyte(cpu->p)); cpu->cycle++; }
|
||||
void cpu_instr_210_2(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_211_0(struct CPU* const cpu, struct Memory* const mem) { storeqinc(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_211_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_214_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,-1 ); lni; }
|
||||
void cpu_instr_215_0(struct CPU* const cpu, struct Memory* const mem) { cpu->b=cpu->c; lni; }
|
||||
void cpu_instr_217_0(struct CPU* const cpu, struct Memory* const mem) { cmpf(cpu->a,cpu->c); lni; }
|
||||
void cpu_instr_218_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->c,-1 ); lni; }
|
||||
void cpu_instr_220_0(struct CPU* const cpu, struct Memory* const mem) { cpu->q=(cpu->p+signed8(cpu->a))%65536; lni; }
|
||||
void cpu_instr_221_0(struct CPU* const cpu, struct Memory* const mem) { cmpf(cpu->a,cpu->b); lni; }
|
||||
void cpu_instr_222_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->b,-1 ); lni; }
|
||||
void cpu_instr_224_0(struct CPU* const cpu, struct Memory* const mem) { cpu->u=loadpinc; cpu->cycle++; }
|
||||
void cpu_instr_224_1(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadpinc; cpu->cycle++; }
|
||||
void cpu_instr_224_2(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; lni; }
|
||||
void cpu_instr_225_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a=loadpinc; setzf(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_225_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_226_0(struct CPU* const cpu, struct Memory* const mem) { cpu->u=loadq; cpu->cycle++; }
|
||||
void cpu_instr_226_1(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadqp1; cpu->cycle++; }
|
||||
void cpu_instr_226_2(struct CPU* const cpu, struct Memory* const mem) { cpu->q=wordut; lni; }
|
||||
void cpu_instr_227_0(struct CPU* const cpu, struct Memory* const mem) { cpu->b=loadpinc; setzf(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_227_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_229_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_229_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_229_2(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,-cpu->u+cpu->cf); lni; }
|
||||
void cpu_instr_230_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_230_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_230_2(struct CPU* const cpu, struct Memory* const mem) { instrpreload; addf(cpu->u, 1 ); cpu->cycle++; }
|
||||
void cpu_instr_230_3(struct CPU* const cpu, struct Memory* const mem) { storestackrelu; instrloadpre }
|
||||
void cpu_instr_231_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_231_1(struct CPU* const cpu, struct Memory* const mem) { loadstackrelu cpu->cycle++; }
|
||||
void cpu_instr_231_2(struct CPU* const cpu, struct Memory* const mem) { subf(cpu->a,cpu->u); lni; }
|
||||
void cpu_instr_232_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_232_1(struct CPU* const cpu, struct Memory* const mem) { cpu->p=(cpu->p+signed8(cpu->t))%65536; lni; }
|
||||
void cpu_instr_234_0(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_237_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_237_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_237_2(struct CPU* const cpu, struct Memory* const mem) { cpu->a=loadut; setzf(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_237_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_239_0(struct CPU* const cpu, struct Memory* const mem) { loadimm161 cpu->cycle++; }
|
||||
void cpu_instr_239_1(struct CPU* const cpu, struct Memory* const mem) { loadimm162 cpu->cycle++; }
|
||||
void cpu_instr_239_2(struct CPU* const cpu, struct Memory* const mem) { cpu->b=loadut; setzf(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_239_3(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_240_0(struct CPU* const cpu, struct Memory* const mem) { loadimmedt cpu->cycle++; }
|
||||
void cpu_instr_240_1(struct CPU* const cpu, struct Memory* const mem) { if(!cpu->nz ) { jmprelt } else { lni } }
|
||||
void cpu_instr_241_0(struct CPU* const cpu, struct Memory* const mem) { cpu->a=loadqinc; setzf(cpu->a); cpu->cycle++; }
|
||||
void cpu_instr_241_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_242_0(struct CPU* const cpu, struct Memory* const mem) { cpu->u=loadqinc; cpu->cycle++; }
|
||||
void cpu_instr_242_1(struct CPU* const cpu, struct Memory* const mem) { cpu->t=loadqinc; cpu->cycle++; }
|
||||
void cpu_instr_242_2(struct CPU* const cpu, struct Memory* const mem) { cpu->p=wordut; lni; }
|
||||
void cpu_instr_243_0(struct CPU* const cpu, struct Memory* const mem) { cpu->b=loadqinc; setzf(cpu->b); cpu->cycle++; }
|
||||
void cpu_instr_243_1(struct CPU* const cpu, struct Memory* const mem) { lni; }
|
||||
void cpu_instr_246_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a, 1 ); lni; }
|
||||
void cpu_instr_247_0(struct CPU* const cpu, struct Memory* const mem) { cpu->c=cpu->b; lni; }
|
||||
void cpu_instr_249_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,-cpu->c+cpu->cf); lni; }
|
||||
void cpu_instr_250_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->c, 1 ); lni; }
|
||||
void cpu_instr_251_0(struct CPU* const cpu, struct Memory* const mem) { subf(cpu->a,cpu->c); lni; }
|
||||
void cpu_instr_252_0(struct CPU* const cpu, struct Memory* const mem) { cpu->p=(cpu->p+signed8(cpu->a))%65536; lni; }
|
||||
void cpu_instr_253_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->a,-cpu->b+cpu->cf); lni; }
|
||||
void cpu_instr_254_0(struct CPU* const cpu, struct Memory* const mem) { addf(cpu->b, 1 ); lni; }
|
||||
void cpu_instr_255_0(struct CPU* const cpu, struct Memory* const mem) { subf(cpu->a,cpu->b); lni; }
|
||||
|
||||
CPUInstruction CPUInstructions[256][8] = {
|
||||
{cpu_instr_0_0,cpu_instr_0_1,cpu_instr_0_2,0,0,0,0,0},
|
||||
{cpu_instr_1_0,cpu_instr_1_1,cpu_instr_1_2,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_3_0,cpu_instr_3_1,0,0,0,0,0,0},
|
||||
{cpu_instr_4_0,cpu_instr_4_1,cpu_instr_4_2,0,0,0,0,0},
|
||||
{cpu_instr_5_0,cpu_instr_5_1,cpu_instr_5_2,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_7_0,cpu_instr_7_1,cpu_instr_7_2,0,0,0,0,0},
|
||||
{cpu_instr_8_0,cpu_instr_8_1,0,0,0,0,0,0},
|
||||
{cpu_instr_9_0,cpu_instr_9_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_12_0,cpu_instr_12_1,cpu_instr_12_2,cpu_instr_12_3,cpu_instr_12_4,cpu_instr_12_5,cpu_instr_12_6,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_16_0,cpu_instr_16_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_19_0,cpu_instr_19_1,0,0,0,0,0,0},
|
||||
{cpu_instr_20_0,cpu_instr_20_1,cpu_instr_20_2,0,0,0,0,0},
|
||||
{cpu_instr_21_0,cpu_instr_21_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_23_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_24_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_25_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_27_0,cpu_instr_27_1,cpu_instr_27_2,cpu_instr_27_3,0,0,0,0},
|
||||
{cpu_instr_28_0,cpu_instr_28_1,0,0,0,0,0,0},
|
||||
{cpu_instr_29_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_31_0,cpu_instr_31_1,cpu_instr_31_2,cpu_instr_31_3,0,0,0,0},
|
||||
{cpu_instr_32_0,cpu_instr_32_1,cpu_instr_32_2,cpu_instr_32_3,cpu_instr_32_4,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_35_0,cpu_instr_35_1,0,0,0,0,0,0},
|
||||
{cpu_instr_36_0,cpu_instr_36_1,cpu_instr_36_2,0,0,0,0,0},
|
||||
{cpu_instr_37_0,cpu_instr_37_1,cpu_instr_37_2,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_39_0,cpu_instr_39_1,cpu_instr_39_2,0,0,0,0,0},
|
||||
{cpu_instr_40_0,cpu_instr_40_1,0,0,0,0,0,0},
|
||||
{cpu_instr_41_0,cpu_instr_41_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_43_0,cpu_instr_43_1,0,0,0,0,0,0},
|
||||
{cpu_instr_44_0,cpu_instr_44_1,cpu_instr_44_2,cpu_instr_44_3,cpu_instr_44_4,cpu_instr_44_5,cpu_instr_44_6,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_48_0,cpu_instr_48_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_51_0,cpu_instr_51_1,0,0,0,0,0,0},
|
||||
{cpu_instr_52_0,cpu_instr_52_1,cpu_instr_52_2,0,0,0,0,0},
|
||||
{cpu_instr_53_0,cpu_instr_53_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_55_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_56_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_57_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_59_0,cpu_instr_59_1,cpu_instr_59_2,cpu_instr_59_3,0,0,0,0},
|
||||
{cpu_instr_60_0,cpu_instr_60_1,0,0,0,0,0,0},
|
||||
{cpu_instr_61_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_63_0,cpu_instr_63_1,cpu_instr_63_2,cpu_instr_63_3,0,0,0,0},
|
||||
{cpu_instr_64_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_65_0,cpu_instr_65_1,cpu_instr_65_2,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_67_0,cpu_instr_67_1,0,0,0,0,0,0},
|
||||
{cpu_instr_68_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_69_0,cpu_instr_69_1,cpu_instr_69_2,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_71_0,cpu_instr_71_1,cpu_instr_71_2,cpu_instr_71_3,0,0,0,0},
|
||||
{cpu_instr_72_0,cpu_instr_72_1,0,0,0,0,0,0},
|
||||
{cpu_instr_73_0,cpu_instr_73_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_76_0,cpu_instr_76_1,cpu_instr_76_2,cpu_instr_76_3,cpu_instr_76_4,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_79_0,cpu_instr_79_1,cpu_instr_79_2,cpu_instr_79_3,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_83_0,cpu_instr_83_1,0,0,0,0,0,0},
|
||||
{cpu_instr_84_0,cpu_instr_84_1,cpu_instr_84_2,0,0,0,0,0},
|
||||
{cpu_instr_85_0,cpu_instr_85_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_87_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_88_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_89_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_91_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_92_0,cpu_instr_92_1,0,0,0,0,0,0},
|
||||
{cpu_instr_93_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_95_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_96_0,cpu_instr_96_1,cpu_instr_96_2,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_99_0,cpu_instr_99_1,0,0,0,0,0,0},
|
||||
{cpu_instr_100_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_101_0,cpu_instr_101_1,cpu_instr_101_2,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_103_0,cpu_instr_103_1,cpu_instr_103_2,0,0,0,0,0},
|
||||
{cpu_instr_104_0,cpu_instr_104_1,0,0,0,0,0,0},
|
||||
{cpu_instr_105_0,cpu_instr_105_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_107_0,cpu_instr_107_1,0,0,0,0,0,0},
|
||||
{cpu_instr_108_0,cpu_instr_108_1,cpu_instr_108_2,cpu_instr_108_3,cpu_instr_108_4,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_111_0,cpu_instr_111_1,cpu_instr_111_2,cpu_instr_111_3,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_115_0,cpu_instr_115_1,0,0,0,0,0,0},
|
||||
{cpu_instr_116_0,cpu_instr_116_1,cpu_instr_116_2,0,0,0,0,0},
|
||||
{cpu_instr_117_0,cpu_instr_117_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_120_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_121_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_123_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_124_0,cpu_instr_124_1,0,0,0,0,0,0},
|
||||
{cpu_instr_125_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_127_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_128_0,cpu_instr_128_1,cpu_instr_128_2,0,0,0,0,0},
|
||||
{cpu_instr_129_0,cpu_instr_129_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_131_0,cpu_instr_131_1,0,0,0,0,0,0},
|
||||
{cpu_instr_132_0,cpu_instr_132_1,cpu_instr_132_2,cpu_instr_132_3,0,0,0,0},
|
||||
{cpu_instr_133_0,cpu_instr_133_1,cpu_instr_133_2,0,0,0,0,0},
|
||||
{cpu_instr_134_0,cpu_instr_134_1,cpu_instr_134_2,cpu_instr_134_3,0,0,0,0},
|
||||
{cpu_instr_135_0,cpu_instr_135_1,cpu_instr_135_2,0,0,0,0,0},
|
||||
{cpu_instr_136_0,cpu_instr_136_1,cpu_instr_136_2,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_138_0,cpu_instr_138_1,cpu_instr_138_2,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_140_0,cpu_instr_140_1,cpu_instr_140_2,cpu_instr_140_3,cpu_instr_140_4,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_142_0,cpu_instr_142_1,cpu_instr_142_2,cpu_instr_142_3,cpu_instr_142_4,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_144_0,cpu_instr_144_1,0,0,0,0,0,0},
|
||||
{cpu_instr_145_0,cpu_instr_145_1,0,0,0,0,0,0},
|
||||
{cpu_instr_146_0,cpu_instr_146_1,cpu_instr_146_2,0,0,0,0,0},
|
||||
{cpu_instr_147_0,cpu_instr_147_1,0,0,0,0,0,0},
|
||||
{cpu_instr_148_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_149_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_150_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_151_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_152_0,cpu_instr_152_1,0,0,0,0,0,0},
|
||||
{cpu_instr_153_0,cpu_instr_153_1,cpu_instr_153_2,cpu_instr_153_3,0,0,0,0},
|
||||
{cpu_instr_154_0,cpu_instr_154_1,cpu_instr_154_2,cpu_instr_154_3,cpu_instr_154_4,0,0,0},
|
||||
{cpu_instr_155_0,cpu_instr_155_1,cpu_instr_155_2,cpu_instr_155_3,0,0,0,0},
|
||||
{cpu_instr_156_0,cpu_instr_156_1,cpu_instr_156_2,cpu_instr_156_3,cpu_instr_156_4,0,0,0},
|
||||
{cpu_instr_157_0,cpu_instr_157_1,cpu_instr_157_2,cpu_instr_157_3,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_159_0,cpu_instr_159_1,cpu_instr_159_2,cpu_instr_159_3,0,0,0,0},
|
||||
{cpu_instr_160_0,cpu_instr_160_1,cpu_instr_160_2,0,0,0,0,0},
|
||||
{cpu_instr_161_0,cpu_instr_161_1,0,0,0,0,0,0},
|
||||
{cpu_instr_162_0,cpu_instr_162_1,cpu_instr_162_2,0,0,0,0,0},
|
||||
{cpu_instr_163_0,cpu_instr_163_1,0,0,0,0,0,0},
|
||||
{cpu_instr_164_0,cpu_instr_164_1,cpu_instr_164_2,cpu_instr_164_3,0,0,0,0},
|
||||
{cpu_instr_165_0,cpu_instr_165_1,cpu_instr_165_2,0,0,0,0,0},
|
||||
{cpu_instr_166_0,cpu_instr_166_1,cpu_instr_166_2,cpu_instr_166_3,0,0,0,0},
|
||||
{cpu_instr_167_0,cpu_instr_167_1,cpu_instr_167_2,0,0,0,0,0},
|
||||
{cpu_instr_168_0,cpu_instr_168_1,cpu_instr_168_2,0,0,0,0,0},
|
||||
{cpu_instr_169_0,cpu_instr_169_1,0,0,0,0,0,0},
|
||||
{cpu_instr_170_0,cpu_instr_170_1,cpu_instr_170_2,0,0,0,0,0},
|
||||
{cpu_instr_171_0,cpu_instr_171_1,0,0,0,0,0,0},
|
||||
{cpu_instr_172_0,cpu_instr_172_1,cpu_instr_172_2,cpu_instr_172_3,cpu_instr_172_4,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_174_0,cpu_instr_174_1,cpu_instr_174_2,cpu_instr_174_3,cpu_instr_174_4,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_176_0,cpu_instr_176_1,0,0,0,0,0,0},
|
||||
{cpu_instr_177_0,cpu_instr_177_1,0,0,0,0,0,0},
|
||||
{cpu_instr_178_0,cpu_instr_178_1,cpu_instr_178_2,0,0,0,0,0},
|
||||
{cpu_instr_179_0,cpu_instr_179_1,0,0,0,0,0,0},
|
||||
{cpu_instr_180_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_181_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_182_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_183_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_184_0,cpu_instr_184_1,cpu_instr_184_2,cpu_instr_184_3,cpu_instr_184_4,0,0,0},
|
||||
{cpu_instr_185_0,cpu_instr_185_1,cpu_instr_185_2,cpu_instr_185_3,0,0,0,0},
|
||||
{cpu_instr_186_0,cpu_instr_186_1,cpu_instr_186_2,cpu_instr_186_3,cpu_instr_186_4,0,0,0},
|
||||
{cpu_instr_187_0,cpu_instr_187_1,cpu_instr_187_2,cpu_instr_187_3,0,0,0,0},
|
||||
{cpu_instr_188_0,cpu_instr_188_1,cpu_instr_188_2,cpu_instr_188_3,cpu_instr_188_4,0,0,0},
|
||||
{cpu_instr_189_0,cpu_instr_189_1,cpu_instr_189_2,cpu_instr_189_3,0,0,0,0},
|
||||
{cpu_instr_190_0,cpu_instr_190_1,cpu_instr_190_2,cpu_instr_190_3,cpu_instr_190_4,0,0,0},
|
||||
{cpu_instr_191_0,cpu_instr_191_1,cpu_instr_191_2,cpu_instr_191_3,0,0,0,0},
|
||||
{cpu_instr_192_0,cpu_instr_192_1,cpu_instr_192_2,0,0,0,0,0},
|
||||
{cpu_instr_193_0,cpu_instr_193_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_195_0,cpu_instr_195_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_197_0,cpu_instr_197_1,cpu_instr_197_2,0,0,0,0,0},
|
||||
{cpu_instr_198_0,cpu_instr_198_1,cpu_instr_198_2,cpu_instr_198_3,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_200_0,cpu_instr_200_1,0,0,0,0,0,0},
|
||||
{cpu_instr_201_0,cpu_instr_201_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_204_0,cpu_instr_204_1,cpu_instr_204_2,0,0,0,0,0},
|
||||
{cpu_instr_205_0,cpu_instr_205_1,cpu_instr_205_2,cpu_instr_205_3,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_207_0,cpu_instr_207_1,cpu_instr_207_2,cpu_instr_207_3,0,0,0,0},
|
||||
{cpu_instr_208_0,cpu_instr_208_1,0,0,0,0,0,0},
|
||||
{cpu_instr_209_0,cpu_instr_209_1,0,0,0,0,0,0},
|
||||
{cpu_instr_210_0,cpu_instr_210_1,cpu_instr_210_2,0,0,0,0,0},
|
||||
{cpu_instr_211_0,cpu_instr_211_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_214_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_215_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_217_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_218_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_220_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_221_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_222_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_224_0,cpu_instr_224_1,cpu_instr_224_2,0,0,0,0,0},
|
||||
{cpu_instr_225_0,cpu_instr_225_1,0,0,0,0,0,0},
|
||||
{cpu_instr_226_0,cpu_instr_226_1,cpu_instr_226_2,0,0,0,0,0},
|
||||
{cpu_instr_227_0,cpu_instr_227_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_229_0,cpu_instr_229_1,cpu_instr_229_2,0,0,0,0,0},
|
||||
{cpu_instr_230_0,cpu_instr_230_1,cpu_instr_230_2,cpu_instr_230_3,0,0,0,0},
|
||||
{cpu_instr_231_0,cpu_instr_231_1,cpu_instr_231_2,0,0,0,0,0},
|
||||
{cpu_instr_232_0,cpu_instr_232_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_234_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_237_0,cpu_instr_237_1,cpu_instr_237_2,cpu_instr_237_3,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_239_0,cpu_instr_239_1,cpu_instr_239_2,cpu_instr_239_3,0,0,0,0},
|
||||
{cpu_instr_240_0,cpu_instr_240_1,0,0,0,0,0,0},
|
||||
{cpu_instr_241_0,cpu_instr_241_1,0,0,0,0,0,0},
|
||||
{cpu_instr_242_0,cpu_instr_242_1,cpu_instr_242_2,0,0,0,0,0},
|
||||
{cpu_instr_243_0,cpu_instr_243_1,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_246_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_247_0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_249_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_250_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_251_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_252_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_253_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_254_0,0,0,0,0,0,0,0},
|
||||
{cpu_instr_255_0,0,0,0,0,0,0,0},
|
||||
};
|
113
emulator/keycodes.lua
Normal file
113
emulator/keycodes.lua
Normal file
@ -0,0 +1,113 @@
|
||||
-- These are the keycodes provided by the keyboard peripheral to the CPU within the emulator.
|
||||
-- copied from Brick_LuaLogic/bricks/input/keyboard-global.lua
|
||||
|
||||
return {
|
||||
["backspace"] = 8,
|
||||
["tab"] = 9,
|
||||
["return"] = 13,
|
||||
|
||||
["lshift"] = 16,
|
||||
["lcontrol"] = 17,
|
||||
["lalt"] = 18,
|
||||
|
||||
-- this block does not match vkey codes
|
||||
["rshift"] = 20,
|
||||
["rcontrol"] = 21,
|
||||
["ralt"] = 22,
|
||||
|
||||
-- this block does not match vkey codes
|
||||
[";"] = 24,
|
||||
["="] = 25,
|
||||
[","] = 26,
|
||||
["."] = 27,
|
||||
["/"] = 29,
|
||||
["`"] = 30,
|
||||
|
||||
["space"] = 32,
|
||||
["pageup"] = 33,
|
||||
["pagedown"] = 34,
|
||||
["end"] = 35,
|
||||
["home"] = 36,
|
||||
["left"] = 37,
|
||||
["up"] = 38,
|
||||
["right"] = 39,
|
||||
["down"] = 40,
|
||||
["insert"] = 45,
|
||||
["delete"] = 46,
|
||||
|
||||
["0"] = 48,
|
||||
["1"] = 49,
|
||||
["2"] = 50,
|
||||
["3"] = 51,
|
||||
["4"] = 52,
|
||||
["5"] = 53,
|
||||
["6"] = 54,
|
||||
["7"] = 55,
|
||||
["8"] = 56,
|
||||
["9"] = 57,
|
||||
|
||||
-- this block does not match vkey codes
|
||||
["["] = 60,
|
||||
["\\"] = 61,
|
||||
["]"] = 62,
|
||||
["apostrophe"] = 63,
|
||||
|
||||
["a"] = 65,
|
||||
["b"] = 66,
|
||||
["c"] = 67,
|
||||
["d"] = 68,
|
||||
["e"] = 69,
|
||||
["f"] = 70,
|
||||
["g"] = 71,
|
||||
["h"] = 72,
|
||||
["i"] = 73,
|
||||
["j"] = 74,
|
||||
["k"] = 75,
|
||||
["l"] = 76,
|
||||
["m"] = 77,
|
||||
["n"] = 78,
|
||||
["o"] = 79,
|
||||
["p"] = 80,
|
||||
["q"] = 81,
|
||||
["r"] = 82,
|
||||
["s"] = 83,
|
||||
["t"] = 84,
|
||||
["u"] = 85,
|
||||
["v"] = 86,
|
||||
["w"] = 87,
|
||||
["x"] = 88,
|
||||
["y"] = 89,
|
||||
["z"] = 90,
|
||||
|
||||
["numpad0"] = 96,
|
||||
["numpad1"] = 97,
|
||||
["numpad2"] = 98,
|
||||
["numpad3"] = 99,
|
||||
["numpad4"] = 100,
|
||||
["numpad5"] = 101,
|
||||
["numpad6"] = 102,
|
||||
["numpad7"] = 103,
|
||||
["numpad8"] = 104,
|
||||
["numpad9"] = 105,
|
||||
["*"] = 106,
|
||||
["+"] = 107,
|
||||
["numpadenter"] = 108,
|
||||
["minus"] = 109,
|
||||
["numpaddecimal"] = 110,
|
||||
--["/"] = 111, -- already 29
|
||||
|
||||
["f1"] = 112,
|
||||
["f2"] = 113,
|
||||
["f3"] = 114,
|
||||
["f4"] = 115,
|
||||
["f5"] = 116,
|
||||
["f6"] = 117,
|
||||
["f7"] = 118,
|
||||
["f8"] = 119,
|
||||
["f9"] = 120,
|
||||
["f10"] = 121,
|
||||
["f11"] = 122,
|
||||
["f12"] = 123,
|
||||
|
||||
["invalid"] = 127,
|
||||
}
|
1
emulator/main.lua
Normal file
1
emulator/main.lua
Normal file
@ -0,0 +1 @@
|
||||
require("8608emulator")
|
BIN
emulator/temp/temp.bin
Normal file
BIN
emulator/temp/temp.bin
Normal file
Binary file not shown.
16
emulator/temp/temp.hex
Normal file
16
emulator/temp/temp.hex
Normal file
@ -0,0 +1,16 @@
|
||||
outp | addr | data (base 16)
|
||||
|
||||
ff00:0 | ff00 | ; PRINTCHAR:
|
||||
ff00:0 | ff00 | aa ff 0d ; LDX #HELLOSTR
|
||||
ff03:0 | ff03 | a8 c0 00 ; LDY #$C000
|
||||
ff06:0 | ff06 | ; PRINTLP:
|
||||
ff06:0 | ff06 | e1 ; LDA X+
|
||||
ff07:0 | ff07 | 48 ; PHA
|
||||
ff08:0 | ff08 | d1 ; STA Y+
|
||||
ff09:0 | ff09 | d0 fb ; BNE PRINTLP
|
||||
ff0b:0 | ff0b | 18 ; HLT
|
||||
ff0c:0 | ff0c | 41 ; RST
|
||||
ff0d:0 | ff0d | ; HELLOSTR:
|
||||
ff0d:0 | ff0d | 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 00 ; "Hello, world!\0"
|
||||
fffc:0 | fffc | ff 00 ; PRINTCHAR
|
||||
fffe:0 | fffe | 00 00 ; 0
|
18
emulator/temp/temp.lis
Normal file
18
emulator/temp/temp.lis
Normal file
@ -0,0 +1,18 @@
|
||||
outp | addr | data (base 16)
|
||||
|
||||
0:0 | 0 | ; FAIL:
|
||||
0:0 | 0 | fa ; INC C
|
||||
1:0 | 1 | 98 fd ; BRA FAIL
|
||||
3:0 | 3 | ; RESET:
|
||||
3:0 | 3 | 58 ; CLI
|
||||
4:0 | 4 | fe ; INC B
|
||||
5:0 | 5 | cd f0 05 ; STA TIMER
|
||||
8:0 | 8 | 18 ; HLT
|
||||
9:0 | 9 | 98 f8 ; BRA RESET
|
||||
b:0 | b | 41 ; RST
|
||||
c:0 | c | ; INTERRUPT:
|
||||
c:0 | c | f6 ; INC A
|
||||
d:0 | d | 38 ; RUN
|
||||
e:0 | e | 40 ; RTI
|
||||
fffc:0 | fffc | 00 03 ; RESET
|
||||
fffe:0 | fffe | 00 0c ; INTERRUPT
|
201
emulator/third-party/customasm/LICENSE.txt
vendored
Normal file
201
emulator/third-party/customasm/LICENSE.txt
vendored
Normal file
@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
BIN
emulator/third-party/customasm/customasm.exe
vendored
Normal file
BIN
emulator/third-party/customasm/customasm.exe
vendored
Normal file
Binary file not shown.
BIN
emulator/third-party/love/OpenAL32.dll
vendored
Normal file
BIN
emulator/third-party/love/OpenAL32.dll
vendored
Normal file
Binary file not shown.
BIN
emulator/third-party/love/SDL2.dll
vendored
Normal file
BIN
emulator/third-party/love/SDL2.dll
vendored
Normal file
Binary file not shown.
1440
emulator/third-party/love/changes.txt
vendored
Normal file
1440
emulator/third-party/love/changes.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
emulator/third-party/love/game.ico
vendored
Normal file
BIN
emulator/third-party/love/game.ico
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 361 KiB |
1355
emulator/third-party/love/license.txt
vendored
Normal file
1355
emulator/third-party/love/license.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
emulator/third-party/love/love.dll
vendored
Normal file
BIN
emulator/third-party/love/love.dll
vendored
Normal file
Binary file not shown.
BIN
emulator/third-party/love/love.exe
vendored
Normal file
BIN
emulator/third-party/love/love.exe
vendored
Normal file
Binary file not shown.
BIN
emulator/third-party/love/love.ico
vendored
Normal file
BIN
emulator/third-party/love/love.ico
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 361 KiB |
BIN
emulator/third-party/love/lovec.exe
vendored
Normal file
BIN
emulator/third-party/love/lovec.exe
vendored
Normal file
Binary file not shown.
BIN
emulator/third-party/love/lua51.dll
vendored
Normal file
BIN
emulator/third-party/love/lua51.dll
vendored
Normal file
Binary file not shown.
BIN
emulator/third-party/love/mpg123.dll
vendored
Normal file
BIN
emulator/third-party/love/mpg123.dll
vendored
Normal file
Binary file not shown.
BIN
emulator/third-party/love/msvcp120.dll
vendored
Normal file
BIN
emulator/third-party/love/msvcp120.dll
vendored
Normal file
Binary file not shown.
BIN
emulator/third-party/love/msvcr120.dll
vendored
Normal file
BIN
emulator/third-party/love/msvcr120.dll
vendored
Normal file
Binary file not shown.
111
emulator/third-party/love/readme.txt
vendored
Normal file
111
emulator/third-party/love/readme.txt
vendored
Normal file
@ -0,0 +1,111 @@
|
||||
LÖVE is an *awesome* framework you can use to make 2D games in Lua. It's free, open-source, and works on Windows, macOS, Linux, Android, and iOS.
|
||||
|
||||
[](https://ci.appveyor.com/project/slime73/love)
|
||||
[](https://github.com/love2d/love/actions?query=workflow%3Acontinuous-integration)
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
We use our [wiki][wiki] for documentation.
|
||||
If you need further help, feel free to ask on our [forums][forums], our [Discord server][discord], or our [subreddit][subreddit].
|
||||
|
||||
Repository
|
||||
----------
|
||||
|
||||
We use the 'main' branch for patch development of the current major release, and therefore it should not be considered stable.
|
||||
There may also be a branch for the next major version in development, which is named after that version.
|
||||
|
||||
We tag all our releases (since we started using mercurial and git), and have binary downloads available for them.
|
||||
|
||||
Experimental changes are developed in a separate [love-experiments][love-experiments] repository.
|
||||
|
||||
Builds
|
||||
------
|
||||
|
||||
Files for releases are in the [releases][releases] section on GitHub. [The site][site] has links to files and additional platform content for the latest release.
|
||||
|
||||
There are also unstable/nightly builds:
|
||||
|
||||
- Builds for some platforms are automatically created after each commit and are available through GitHub's CI interfaces.
|
||||
- For ubuntu linux they are in [ppa:bartbes/love-unstable][unstableppa]
|
||||
- For arch linux there's [love-git][aur] in the AUR.
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
The best places to contribute are through the issue tracker and the official Discord server or IRC channel.
|
||||
|
||||
For code contributions, pull requests and patches are welcome. Be sure to read the [source code style guide][codestyle].
|
||||
Changes and new features typically get discussed in the issue tracker or on Discord or the forums before a pull request is made.
|
||||
|
||||
Compilation
|
||||
-----------
|
||||
|
||||
### Windows
|
||||
Follow the instructions at the [megasource][megasource] repository page.
|
||||
|
||||
### *nix
|
||||
Run `platform/unix/automagic` from the repository root, then run ./configure and make.
|
||||
|
||||
$ platform/unix/automagic
|
||||
$ ./configure
|
||||
$ make
|
||||
|
||||
When using a source release, automagic has already been run, and the first step can be skipped.
|
||||
|
||||
### macOS
|
||||
Download or clone [this repository][dependencies-apple] and copy, move, or symlink the `macOS/Frameworks` subfolder into love's `platform/xcode/macosx` folder.
|
||||
|
||||
Then use the Xcode project found at `platform/xcode/love.xcodeproj` to build the `love-macosx` target.
|
||||
|
||||
### iOS
|
||||
Building for iOS requires macOS and Xcode.
|
||||
|
||||
#### LÖVE 11.4 and newer
|
||||
Download the `love-apple-dependencies` zip file corresponding to the LÖVE version being used from the [Releases page][dependencies-ios],
|
||||
unzip it, and place the `iOS/libraries` subfolder into love's `platform/xcode/ios` folder.
|
||||
|
||||
Or, download or clone [this repository][dependencies-apple] and copy, move, or symlink the `iOS/libraries` subfolder into love's `platform/xcode/ios` folder.
|
||||
|
||||
Then use the Xcode project found at `platform/xcode/love.xcodeproj` to build the `love-ios` target.
|
||||
|
||||
See `readme-iOS.rtf` for more information.
|
||||
|
||||
#### LÖVE 11.3 and older
|
||||
Download the `ios-libraries` zip file corresponding to the LÖVE version being used from the [Releases page][dependencies-ios],
|
||||
unzip it, and place the `include` and `libraries` subfolders into love's `platform/xcode/ios` folder.
|
||||
|
||||
Then use the Xcode project found at `platform/xcode/love.xcodeproj` to build the `love-ios` target.
|
||||
|
||||
See `readme-iOS.rtf` for more information.
|
||||
|
||||
### Android
|
||||
Visit the [Android build repository][android-repository] for build instructions.
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
- SDL2
|
||||
- OpenGL 2.1+ / OpenGL ES 2+
|
||||
- OpenAL
|
||||
- Lua / LuaJIT / LLVM-lua
|
||||
- FreeType
|
||||
- ModPlug
|
||||
- mpg123
|
||||
- Vorbisfile
|
||||
- Theora
|
||||
|
||||
[site]: https://love2d.org
|
||||
[wiki]: https://love2d.org/wiki
|
||||
[forums]: https://love2d.org/forums
|
||||
[discord]: https://discord.gg/rhUets9
|
||||
[subreddit]: https://www.reddit.com/r/love2d
|
||||
[dependencies-apple]: https://github.com/love2d/love-apple-dependencies
|
||||
[dependencies-ios]: https://github.com/love2d/love/releases
|
||||
[megasource]: https://github.com/love2d/megasource
|
||||
[unstableppa]: https://launchpad.net/~bartbes/+archive/love-unstable
|
||||
[aur]: https://aur.archlinux.org/packages/love-git
|
||||
[love-experiments]: https://github.com/slime73/love-experiments
|
||||
[codestyle]: https://love2d.org/wiki/Code_Style
|
||||
[android-repository]: https://github.com/love2d/love-android
|
||||
[releases]: https://github.com/love2d/love/releases
|
Reference in New Issue
Block a user