status = $100
scr = $101
kbd = $102
step = $110
maxrow = 23
maxcol = 79
MAX_SYM = $800
OPNUM = 87
DIR_ORG = 0
DIR_BYTE = 1
DIR_WORD = 2
DIR_DWORD = 3
DIR_QWORD = 4
DIR_INCL = 5
DIR_RES = 6
TOK_DIR = 0
TOK_LOCAL = 1
TOK_LABEL = 2
TOK_SYM = 3
TOK_EXPR = 4
TOK_CSV = 5
TOK_STR = 6
TOK_CHAR = 7
TOK_IND = 8
TOK_IMM = 9
TOK_MNE = 10
TOK_RS = 11
TOK_COMM = 12
TOK_HEX = 13
TOK_DEC = 14
TOK_BIN = 15
TOK_INCL = 16
PTOK_DOT = 0
PTOK_AT = 1
PTOK_COLON = 2
PTOK_EQU = 3
PTOK_PLUS = 4
PTOK_MINUS = 5
PTOK_GT = 6
PTOK_LT = 7
PTOK_LBRAK = 8
PTOK_RBRAK = 9
PTOK_COMMA = 10
PTOK_X = 11
PTOK_Y = 12
PTOK_S = 13
PTOK_P = 14
PTOK_DQUOT = 15
PTOK_SQUOT = 16
PTOK_HASH = 17
PTOK_SCOLN = 18
PTOK_DOLR = 19
PTOK_PRCNT = 20
PTOK_NUM = 21
PTOK_ALPH = 22
PTOK_OTHR = 23
EXPR_PLUS = 0
EXPR_MINUS = 1
EXPR_LOW = 2
EXPR_HIGH = 3
EXPR_NONE = 4
.org $30000
bitabl:
.res $1000
buffer:
.res $2000
cmd_buf:
.res $400
.org 0
scr_row:
.res 1
scr_col:
.res 1
scr_trow:
.res 1
scr_tcol:
.res 1
scr_ptr:
.res 2
scr_ptr2:
.res 2
scr_ptr3:
.res 2
a:
.res 1
b:
.res 1
c:
.res 1
d:
.res 1
e:
.res 1
f:
.res 1
g:
.res 1
zero:
.res 8
end:
.res 8
bitmask:
.res 1
scr_str:
.res 1
scr_end:
.res 1
wrapped:
.res 1
ptr:
.res 8
ptr2:
.res 8
ptr3:
.res 8
.org $20000
tokline:
.res $400
prg_cnt:
.res 8
hex_str:
.res 16
strbuf:
.res $80
sub_ptr:
.res 2
idx0:
.res 8
idx1:
.res 8
idx2:
.res 8
idx3:
.res 8
valbuf:
.res 8
cpybuf:
.res 8
ctok:
.res 2
ltok:
.res 2
lex_type:
.res 1
lexeme:
.res $100
sym:
.res $8000
fix:
.res $2000
.org $A000
tok:
.byte "dab"
msg:
.byte "oof, you divided a, and b on me.\n"
ed_name:
.byte "SuBEditor"
ed_ver:
.byte "1"
ed_sver:
.byte ".0.0"
ver_str:
.byte ", version "
made:
.byte "Created by, "
author:
.byte "mr b0nk 500"
string2:
.byte "You typed, "
asm_name:
.byte "SuBAsm"
asm_ver:
.byte "0.1"
dir:
.byte "org"
.byte "byte"
.byte "word"
.byte "dword"
.byte "qword"
.byte "include"
.byte "res"
sh_cmds:
.byte "vlahirs"
cmds:
.byte "viewmem"
.byte "list"
.byte "asm"
.byte "help"
.byte "inst"
.byte "run"
.byte "set"
bits:
.byte $80, $40, $20, $10, $08, $04, $02, $01
mne:
.byte "ADC", $01, $06, $FF, $FF, $FF, $FF, $FF, $04, $FF, $FF
.byte "AAB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $02
.byte "ABA", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $22
.byte "ADC", $01, $06, $FF, $FF, $FF, $FF, $FF, $04, $FF, $FF
.byte "AND", $21, $26, $FF, $FF, $FF, $FF, $FF, $24, $FF, $FF
.byte "ARB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F2
.byte "ASR", $F1, $F6, $FF, $FF, $FF, $FF, $FF, $F4, $FF, $FF
.byte "BCC", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $80, $FF
.byte "BCS", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $70, $FF
.byte "BEQ", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $90, $FF
.byte "BNE", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $A0, $FF
.byte "BNG", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $60, $FF
.byte "BPO", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $50, $FF
.byte "BRA", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $D0, $FF
.byte "BRK", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $68
.byte "BVC", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $C0, $FF
.byte "BVS", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $B0, $FF
.byte "CAB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $B2
.byte "CLC", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $08
.byte "CLI", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $28
.byte "CLV", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $48
.byte "CMP", $B1, $B6, $FF, $FF, $25, $7D, $7C, $B4, $FF, $FF
.byte "CPB", $2A, $2D, $FF, $FF, $55, $AD, $AC, $2C, $FF, $FF
.byte "CPS", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00
.byte "CPX", $3A, $4D, $FF, $FF, $FF, $FF, $FF, $3C, $FF, $FF
.byte "CPY", $4A, $3D, $FF, $FF, $FF, $FF, $FF, $4C, $FF, $FF
.byte "DAB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $A2
.byte "DEB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $C2
.byte "DEC", $FF, $0D, $FF, $FF, $FF, $FF, $FF, $0C, $FF, $0A
.byte "DEX", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $09
.byte "DEY", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $29
.byte "DIV", $A1, $A6, $FF, $FF, $FF, $FF, $FF, $A4, $FF, $FF
.byte "INB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $D2
.byte "INC", $FF, $1D, $FF, $FF, $FF, $FF, $FF, $1C, $FF, $1A
.byte "INX", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $19
.byte "INY", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $39
.byte "JMP", $FF, $30, $FF, $FF, $B5, $FF, $FF, $10, $FF, $FF
.byte "JSR", $FF, $40, $FF, $FF, $A5, $FF, $FF, $20, $FF, $FF
.byte "LDA", $C1, $C6, $B8, $78, $05, $5D, $5C, $C4, $FF, $FF
.byte "LDB", $D1, $D6, $D8, $98, $35, $8D, $8C, $D4, $FF, $FF
.byte "LDX", $B9, $BD, $FF, $FF, $85, $FF, $FF, $BC, $FF, $FF
.byte "LDY", $E1, $E6, $FF, $FF, $65, $FF, $FF, $E4, $FF, $FF
.byte "LLB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $52
.byte "LRB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $62
.byte "LSL", $51, $56, $FF, $FF, $FF, $FF, $FF, $54, $FF, $FF
.byte "LSR", $61, $66, $FF, $FF, $FF, $FF, $FF, $64, $FF, $FF
.byte "MAB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $92
.byte "MUL", $91, $96, $FF, $FF, $FF, $FF, $FF, $94, $FF, $FF
.byte "NOP", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $EA
.byte "OAB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $32
.byte "ORA", $31, $36, $FF, $FF, $FF, $FF, $FF, $34, $FF, $FF
.byte "PHA", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $79
.byte "PHB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $99
.byte "PHP", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $59
.byte "PHX", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $E9
.byte "PHY", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $C9
.byte "PLA", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $89
.byte "PLB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $A9
.byte "PLP", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $69
.byte "PLX", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F9
.byte "PLY", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $D9
.byte "RLB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $72
.byte "ROL", $71, $76, $FF, $FF, $FF, $FF, $FF, $74, $FF, $FF
.byte "ROR", $81, $86, $FF, $FF, $FF, $FF, $FF, $84, $FF, $FF
.byte "RRB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $82
.byte "RTI", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F0
.byte "RTS", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $E0
.byte "SAB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $12
.byte "SBC", $11, $16, $FF, $FF, $FF, $FF, $FF, $14, $FF, $FF
.byte "SEC", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $18
.byte "SEI", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $38
.byte "STA", $FF, $CD, $C8, $88, $15, $6D, $6C, $CC, $FF, $FF
.byte "STB", $FF, $DD, $E8, $A8, $45, $9D, $9C, $DC, $FF, $FF
.byte "STX", $FF, $FD, $FF, $FF, $95, $FF, $FF, $FC, $FF, $FF
.byte "STY", $FF, $ED, $FF, $FF, $75, $FF, $FF, $EC, $FF, $FF
.byte "TAB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $5A
.byte "TAX", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $9A
.byte "TAY", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $7A
.byte "TBA", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $6A
.byte "TSX", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $DA
.byte "TXA", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $AA
.byte "TXS", $FA, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
.byte "TXY", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $CA
.byte "TYA", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $8A
.byte "TYX", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $BA
.byte "WAI", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $58
.byte "XAB", $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $42
.byte "XOR", $41, $46, $FF, $FF, $FF, $FF, $FF, $44, $FF, $FF
cmd_srt:
.word viewmem
.word list
.word asm
.word help
.word inst
.word run
.word set
swtab:
.word ptok_dot
.word ptok_at
.word ptok_col
.word ptok_equ
.word ptok_plus
.word ptok_min
.word ptok_gt
.word ptok_lt
.word ptok_lbrk
.word ptok_rbrk
.word ptok_com
.word ptok_xr
.word ptok_yr
.word ptok_sp
.word ptok_pc
.word ptok_dqu
.word ptok_squ
.word ptok_hash
.word ptok_scol
.word ptok_dolr
.word ptok_prcn
.word ptok_num
.word ptok_alph
.word ptok_othr
hex_char:
.byte "0123456789ABCDEF"
ptok_tab:
.byte ".@:=+-><(),xysp\"\'#;$%"
dtab:
.byte "\n,\"\' \\"
dtab2:
.byte "),.+<>-=;\n"