more CP/M basic tokens

This commit is contained in:
Denis Molony 2021-07-27 11:58:43 +10:00
parent dcb3e32845
commit c18cfe9ed7

View File

@ -9,22 +9,22 @@ public class CPMBasicFile extends TextFile
// -----------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------//
{ {
String[] tokens = { // String[] tokens = { //
"", "END", "FOR", "NEXT", "DATA", "INPUT", "DIM", "READ", // 0x80 "", "END", "FOR", "NEXT", "DATA", "INPUT", "DIM", "READ", // 0x80
"", "GOTO", "RUN", "IF", "", "GOSUB", "RETURN", "REM", // 0x88 "LET", "GOTO", "RUN", "IF", "RESTORE", "GOSUB", "RETURN", "REM", // 0x88
"POS", "PRINT", "CLEAR", "", "", "ON", "DEF", "POKE", // 0x90 "STOP", "PRINT", "CLEAR", "LIST", "NEW", "ON", "DEF", "POKE", // 0x90
"", "", "", "", "", "", "ELSE", "", // 0x98 "", "", "", "LPRINT", "LLIST", "WIDTH", "ELSE", "", // 0x98
"", "", "", "", "", "", "", "", // 0xA0 "", "SWAP", "ERASE", "", "ERROR", "RESUME", "DELETE", "", // 0xA0
"", "", "DEFINT", "", "", "LINE", "", "", // 0xA8 "RENUM", "DEFSTR", "DEFINT", "", "DEFDBL", "LINE", "", "WHILE", // 0xA8
"", "", "", "COMMON", "CHAIN", "", "", "SYSTEM", // 0xB0 "WEND", "CALL", "WRITE", "COMMON", "CHAIN", "OPTION", "RANDOMIZE", "SYSTEM", // 0xB0
"OPEN", "FIELD", "GET", "", "CLOSE", "", "", "", // 0xB8 "OPEN", "FIELD", "GET", "PUT", "CLOSE", "LOAD", "MERGE", "", // 0xB8
"", "KILL", "LSET", "", "", "RESET", "TEXT", "HOME", // 0xC0 "NAME", "KILL", "LSET", "RSET", "SAVE", "RESET", "TEXT", "HOME", // 0xC0
"VTAB", "HTAB", "INVERSE", "NORMAL", "", "", "", "", // 0xC8 "VTAB", "HTAB", "INVERSE", "NORMAL", "", "", "", "", // 0xC8
"", "", "", "", "", "", "", "", // 0xD0 "", "", "", "", "", "WAIT", "", "", // 0xD0
"", "", "", "", "", "TO", "THEN", "TAB(", // 0xD8 "", "", "", "", "", "TO", "THEN", "TAB(", // 0xD8
"STEP", "USR", "FN", "SPC(", "", "", "", "STRING$", // 0xE0 "STEP", "USR", "FN", "SPC(", "", "ERL", "ERR", "STRING$", // 0xE0
"USING", "INSTR", "", "VARPTR", "", "", "INKEY$", ">", // 0xE8 "USING", "INSTR", "", "VARPTR", "", "", "INKEY$", ">", // 0xE8
"=", "<", "+", "-", "*", "/", "", "AND", // 0xF0 "=", "<", "+", "-", "*", "/", "", "AND", // 0xF0
"OR", "", "", "", "MOD", "/", "", "", // 0xF8 "OR", "", "", "", "MOD", "/", "", "", // 0xF8
}; };
// ---------------------------------------------------------------------------------// // ---------------------------------------------------------------------------------//
@ -88,11 +88,11 @@ public class CPMBasicFile extends TextFile
break; break;
case 0x09: case 0x09:
text.append (" "); text.append (" ");
break; break;
case 0x0A: case 0x0A:
text.append ("\n"); text.append ("\n ");
break; break;
case 0x0C: case 0x0C:
@ -101,10 +101,6 @@ public class CPMBasicFile extends TextFile
text.append ("&H" + String.format ("%X", b2 * 256 + b1)); text.append ("&H" + String.format ("%X", b2 * 256 + b1));
break; break;
// case 0x0D:
// System.out.println ("found 0x0D");
// break;
case 0x0E: // same as 0x1C ?? case 0x0E: // same as 0x1C ??
b1 = buffer[ptr++] & 0xFF; b1 = buffer[ptr++] & 0xFF;
b2 = buffer[ptr++] & 0xFF; b2 = buffer[ptr++] & 0xFF;
@ -139,12 +135,42 @@ public class CPMBasicFile extends TextFile
case 0x81 -> "LEFT$"; case 0x81 -> "LEFT$";
case 0x82 -> "RIGHT$"; case 0x82 -> "RIGHT$";
case 0x83 -> "MID$"; case 0x83 -> "MID$";
case 0x84 -> "SGN";
case 0x85 -> "INT";
case 0x86 -> "ABS";
case 0x87 -> "SQR";
case 0x88 -> "RND";
case 0x89 -> "SIN";
case 0x8A -> "LOG";
case 0x8B -> "EXP";
case 0x8C -> "COS";
case 0x8D -> "TAN";
case 0x8E -> "ATN";
case 0x8F -> "FRE"; case 0x8F -> "FRE";
case 0x90 -> "POS";
case 0x91 -> "LEN"; case 0x91 -> "LEN";
case 0x92 -> "STR$";
case 0x93 -> "VAL";
case 0x94 -> "ASC"; case 0x94 -> "ASC";
case 0x95 -> "CHR$"; case 0x95 -> "CHR$";
case 0x96 -> "PEEK"; case 0x96 -> "PEEK";
default -> String.format ("<%02X>", next); case 0x97 -> "SPACE$";
case 0x98 -> "OCT$";
case 0x99 -> "HEX$";
case 0x9A -> "LPOS";
case 0x9B -> "CINT";
case 0x9C -> "CSNG";
case 0x9D -> "CDBL";
case 0x9E -> "FIX";
case 0xAA -> "CVI";
case 0xAB -> "CVS";
case 0xAC -> "CVD";
case 0xAE -> "EOF";
case 0xAF -> "LOC";
case 0xB1 -> "MKI$";
case 0xB2 -> "MKS$";
case 0xB3 -> "MKD$";
default -> String.format ("<FF %02X>", next);
}; };
text.append (token); text.append (token);
break; break;