📄 tinyset.inc
字号:
passes = 5;
#define pfx n { #if(n!=0) { out mem, n&0xff; }}
#define addi n { pfx ((n&0xffff)/0x100); out mem, 0x0800+(n&0xff); }
#define adci n { pfx ((n&0xffff)/0x100); out mem, 0x0900+(n&0xff); }
#define subi n { pfx ((n&0xffff)/0x100); out mem, 0x0a00+(n&0xff); }
#define sbci n { pfx ((n&0xffff)/0x100); out mem, 0x0b00+(n&0xff); }
#define andi n { pfx ((n&0xffff)/0x100); out mem, 0x0c00+(n&0xff); }
#define ori n { pfx ((n&0xffff)/0x100); out mem, 0x0d00+(n&0xff); }
#define xori n { pfx ((n&0xffff)/0x100); out mem, 0x0e00+(n&0xff); }
#define cmpi n { pfx ((n&0xffff)/0x100); out mem, 0x0f00+(n&0xff); }
#define adda n { pfx ((n&0xffff)/0x100); out mem, 0x1000+(n&0xff); }
#define adca n { pfx ((n&0xffff)/0x100); out mem, 0x1100+(n&0xff); }
#define suba n { pfx ((n&0xffff)/0x100); out mem, 0x1200+(n&0xff); }
#define sbca n { pfx ((n&0xffff)/0x100); out mem, 0x1300+(n&0xff); }
#define anda n { pfx ((n&0xffff)/0x100); out mem, 0x1400+(n&0xff); }
#define ora n { pfx ((n&0xffff)/0x100); out mem, 0x1500+(n&0xff); }
#define xora n { pfx ((n&0xffff)/0x100); out mem, 0x1600+(n&0xff); }
#define cmpa n { pfx ((n&0xffff)/0x100); out mem, 0x1700+(n&0xff); }
#define addx { out mem, 0x1800; }
#define adcx { out mem, 0x1900; }
#define subx { out mem, 0x1a00; }
#define sbcx { out mem, 0x1b00; }
#define andx { out mem, 0x1c00; }
#define orx { out mem, 0x1d00; }
#define xorx { out mem, 0x1e00; }
#define cmpx { out mem, 0x1f00; }
#define psha { out mem, 0x2000; }
#define pshp { out mem, 0x2001; }
#define pula { out mem, 0x2002; }
#define pulp { out mem, 0x2003; }
#define clc { out mem, 0x2004; }
#define sec { out mem, 0x2005; }
#define ldsx { out mem, 0x2006; }
#define ldxs { out mem, 0x2007; }
#define inx { out mem, 0x2008; }
#define dex { out mem, 0x2009; }
#define swap { out mem, 0x200a; }
#define ror { out mem, 0x200c; }
#define rol { out mem, 0x200d; }
#define stix { out mem, 0x2200; }
#define ldai n { pfx (n&0xffff)/0x200; out mem, 0x2400+(n&0x1ff); }
#define ldxi n { pfx (n&0xffff)/0x200; out mem, 0x2600+(n&0x1ff); }
#define lda n { pfx (n&0xffff)/0x200; out mem, 0x2800+(n&0x1ff); }
#define ldx n { pfx (n&0xffff)/0x200; out mem, 0x2a00+(n&0x1ff); }
#define sta n { pfx (n&0xffff)/0x200; out mem, 0x2c00+(n&0x1ff); }
#define stx n { pfx (n&0xffff)/0x200; out mem, 0x2e00+(n&0x1ff); }
#define ldix { out mem, 0x3000; }
// relative branching definitions
#define jpr n {
pfx ((((n-mem)-1)&0xffff)/4096);
out mem, 0x7000+(((n-mem)-1)&0xfff); }
#define jprc n {
pfx ((((n-mem)-1)&0xffff)/4096);
out mem, 0x4000+(((n-mem)-1)&0xfff); }
#define jprz n {
pfx ((((n-mem)-1)&0xffff)/4096);
out mem, 0x5000+(((n-mem)-1)&0xfff); }
#define jprnz n {
pfx ((((n-mem)-1)&0xffff)/4096);
out mem, 0x6000+(((n-mem)-1)&0xfff); }
#define jrs n {
pfx ((((n-mem)-1)&0xffff)/4096);
out mem, 0xb000+(((n-mem)-1)&0xfff); }
#define jrsc n {
pfx ((((n-mem)-1)&0xffff)/4096);
out mem, 0x8000+(((n-mem)-1)&0xfff); }
#define jrsz n {
pfx ((((n-mem)-1)&0xffff)/4096);
out mem, 0x9000+(((n-mem)-1)&0xfff); }
#define jrsnz n {
pfx ((((n-mem)-1)&0xffff)/4096);
out mem, 0xa000+(((n-mem)-1)&0xfff); }
#define ret { out mem, 0xf000; }
#define retc { out mem, 0xc000; }
#define retz { out mem, 0xd000; }
#define retnz { out mem, 0xe000; }
#define data n { out mem, n&0xffff; }
#define lbl n { n = mem; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -