mirror of
https://github.com/whscullin/apple2js.git
synced 2024-01-12 14:14:38 +00:00
224 lines
3.9 KiB
TypeScript
224 lines
3.9 KiB
TypeScript
|
import { byte } from 'js/types';
|
||
|
|
||
|
/** Map from token to keyword */
|
||
|
export const TOKEN_TO_STRING: Record<byte, string> = {
|
||
|
0x80: 'END',
|
||
|
0x81: 'FOR',
|
||
|
0x82: 'NEXT',
|
||
|
0x83: 'DATA',
|
||
|
0x84: 'INPUT',
|
||
|
0x85: 'DEL',
|
||
|
0x86: 'DIM',
|
||
|
0x87: 'READ',
|
||
|
0x88: 'GR',
|
||
|
0x89: 'TEXT',
|
||
|
0x8a: 'PR#',
|
||
|
0x8b: 'IN#',
|
||
|
0x8c: 'CALL',
|
||
|
0x8d: 'PLOT',
|
||
|
0x8e: 'HLIN',
|
||
|
0x8f: 'VLIN',
|
||
|
0x90: 'HGR2',
|
||
|
0x91: 'HGR',
|
||
|
0x92: 'HCOLOR=',
|
||
|
0x93: 'HPLOT',
|
||
|
0x94: 'DRAW',
|
||
|
0x95: 'XDRAW',
|
||
|
0x96: 'HTAB',
|
||
|
0x97: 'HOME',
|
||
|
0x98: 'ROT=',
|
||
|
0x99: 'SCALE=',
|
||
|
0x9a: 'SHLOAD',
|
||
|
0x9b: 'TRACE',
|
||
|
0x9c: 'NOTRACE',
|
||
|
0x9d: 'NORMAL',
|
||
|
0x9e: 'INVERSE',
|
||
|
0x9f: 'FLASH',
|
||
|
0xa0: 'COLOR=',
|
||
|
0xa1: 'POP=',
|
||
|
0xa2: 'VTAB',
|
||
|
0xa3: 'HIMEM:',
|
||
|
0xa4: 'LOMEM:',
|
||
|
0xa5: 'ONERR',
|
||
|
0xa6: 'RESUME',
|
||
|
0xa7: 'RECALL',
|
||
|
0xa8: 'STORE',
|
||
|
0xa9: 'SPEED=',
|
||
|
0xaa: 'LET',
|
||
|
0xab: 'GOTO',
|
||
|
0xac: 'RUN',
|
||
|
0xad: 'IF',
|
||
|
0xae: 'RESTORE',
|
||
|
0xaf: '&',
|
||
|
0xb0: 'GOSUB',
|
||
|
0xb1: 'RETURN',
|
||
|
0xb2: 'REM',
|
||
|
0xb3: 'STOP',
|
||
|
0xb4: 'ON',
|
||
|
0xb5: 'WAIT',
|
||
|
0xb6: 'LOAD',
|
||
|
0xb7: 'SAVE',
|
||
|
0xb8: 'DEF',
|
||
|
0xb9: 'POKE',
|
||
|
0xba: 'PRINT',
|
||
|
0xbb: 'CONT',
|
||
|
0xbc: 'LIST',
|
||
|
0xbd: 'CLEAR',
|
||
|
0xbe: 'GET',
|
||
|
0xbf: 'NEW',
|
||
|
0xc0: 'TAB(',
|
||
|
0xc1: 'TO',
|
||
|
0xc2: 'FN',
|
||
|
0xc3: 'SPC(',
|
||
|
0xc4: 'THEN',
|
||
|
0xc5: 'AT',
|
||
|
0xc6: 'NOT',
|
||
|
0xc7: 'STEP',
|
||
|
0xc8: '+',
|
||
|
0xc9: '-',
|
||
|
0xca: '*',
|
||
|
0xcb: '/',
|
||
|
0xcc: '^',
|
||
|
0xcd: 'AND',
|
||
|
0xce: 'OR',
|
||
|
0xcf: '>',
|
||
|
0xd0: '=',
|
||
|
0xd1: '<',
|
||
|
0xd2: 'SGN',
|
||
|
0xd3: 'INT',
|
||
|
0xd4: 'ABS',
|
||
|
0xd5: 'USR',
|
||
|
0xd6: 'FRE',
|
||
|
0xd7: 'SCRN(',
|
||
|
0xd8: 'PDL',
|
||
|
0xd9: 'POS',
|
||
|
0xda: 'SQR',
|
||
|
0xdb: 'RND',
|
||
|
0xdc: 'LOG',
|
||
|
0xdd: 'EXP',
|
||
|
0xde: 'COS',
|
||
|
0xdf: 'SIN',
|
||
|
0xe0: 'TAN',
|
||
|
0xe1: 'ATN',
|
||
|
0xe2: 'PEEK',
|
||
|
0xe3: 'LEN',
|
||
|
0xe4: 'STR$',
|
||
|
0xe5: 'VAL',
|
||
|
0xe6: 'ASC',
|
||
|
0xe7: 'CHR$',
|
||
|
0xe8: 'LEFT$',
|
||
|
0xe9: 'RIGHT$',
|
||
|
0xea: 'MID$'
|
||
|
};
|
||
|
|
||
|
/** Map from keyword to token. */
|
||
|
export const STRING_TO_TOKEN: Record<string, byte> = {
|
||
|
'END': 0x80,
|
||
|
'FOR': 0x81,
|
||
|
'NEXT': 0x82,
|
||
|
'DATA': 0x83,
|
||
|
'INPUT': 0x84,
|
||
|
'DEL': 0x85,
|
||
|
'DIM': 0x86,
|
||
|
'READ': 0x87,
|
||
|
'GR': 0x88,
|
||
|
'TEXT': 0x89,
|
||
|
'PR#': 0x8a,
|
||
|
'IN#': 0x8b,
|
||
|
'CALL': 0x8c,
|
||
|
'PLOT': 0x8d,
|
||
|
'HLIN': 0x8e,
|
||
|
'VLIN': 0x8f,
|
||
|
'HGR2': 0x90,
|
||
|
'HGR': 0x91,
|
||
|
'HCOLOR=': 0x92,
|
||
|
'HPLOT': 0x93,
|
||
|
'DRAW': 0x94,
|
||
|
'XDRAW': 0x95,
|
||
|
'HTAB': 0x96,
|
||
|
'HOME': 0x97,
|
||
|
'ROT=': 0x98,
|
||
|
'SCALE=': 0x99,
|
||
|
'SHLOAD': 0x9a,
|
||
|
'TRACE': 0x9b,
|
||
|
'NOTRACE': 0x9c,
|
||
|
'NORMAL': 0x9d,
|
||
|
'INVERSE': 0x9e,
|
||
|
'FLASH': 0x9f,
|
||
|
'COLOR=': 0xa0,
|
||
|
'POP=': 0xa1,
|
||
|
'VTAB': 0xa2,
|
||
|
'HIMEM:': 0xa3,
|
||
|
'LOMEM:': 0xa4,
|
||
|
'ONERR': 0xa5,
|
||
|
'RESUME': 0xa6,
|
||
|
'RECALL': 0xa7,
|
||
|
'STORE': 0xa8,
|
||
|
'SPEED=': 0xa9,
|
||
|
'LET': 0xaa,
|
||
|
'GOTO': 0xab,
|
||
|
'RUN': 0xac,
|
||
|
'IF': 0xad,
|
||
|
'RESTORE': 0xae,
|
||
|
'&': 0xaf,
|
||
|
'GOSUB': 0xb0,
|
||
|
'RETURN': 0xb1,
|
||
|
'REM': 0xb2,
|
||
|
'STOP': 0xb3,
|
||
|
'ON': 0xb4,
|
||
|
'WAIT': 0xb5,
|
||
|
'LOAD': 0xb6,
|
||
|
'SAVE': 0xb7,
|
||
|
'DEF': 0xb8,
|
||
|
'POKE': 0xb9,
|
||
|
'PRINT': 0xba,
|
||
|
'CONT': 0xbb,
|
||
|
'LIST': 0xbc,
|
||
|
'CLEAR': 0xbd,
|
||
|
'GET': 0xbe,
|
||
|
'NEW': 0xbf,
|
||
|
'TAB(': 0xc0,
|
||
|
'TO': 0xc1,
|
||
|
'FN': 0xc2,
|
||
|
'SPC(': 0xc3,
|
||
|
'THEN': 0xc4,
|
||
|
'AT': 0xc5,
|
||
|
'NOT': 0xc6,
|
||
|
'STEP': 0xc7,
|
||
|
'+': 0xc8,
|
||
|
'-': 0xc9,
|
||
|
'*': 0xca,
|
||
|
'/': 0xcb,
|
||
|
'^': 0xcc,
|
||
|
'AND': 0xcd,
|
||
|
'OR': 0xce,
|
||
|
'>': 0xcf,
|
||
|
'=': 0xd0,
|
||
|
'<': 0xd1,
|
||
|
'SGN': 0xd2,
|
||
|
'INT': 0xd3,
|
||
|
'ABS': 0xd4,
|
||
|
'USR': 0xd5,
|
||
|
'FRE': 0xd6,
|
||
|
'SCRN(': 0xd7,
|
||
|
'PDL': 0xd8,
|
||
|
'POS': 0xd9,
|
||
|
'SQR': 0xda,
|
||
|
'RND': 0xdb,
|
||
|
'LOG': 0xdc,
|
||
|
'EXP': 0xdd,
|
||
|
'COS': 0xde,
|
||
|
'SIN': 0xdf,
|
||
|
'TAN': 0xe0,
|
||
|
'ATN': 0xe1,
|
||
|
'PEEK': 0xe2,
|
||
|
'LEN': 0xe3,
|
||
|
'STR$': 0xe4,
|
||
|
'VAL': 0xe5,
|
||
|
'ASC': 0xe6,
|
||
|
'CHR$': 0xe7,
|
||
|
'LEFT$': 0xe8,
|
||
|
'RIGHT$': 0xe9,
|
||
|
'MID$': 0xea
|
||
|
};
|