basic: tron/troff command

This commit is contained in:
minjaesong
2020-12-03 20:30:00 +09:00
parent 743837bd86
commit 300f7cb9b4
2 changed files with 13 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
1 FOR I = 99 TO 1 1 FOR I = 99 TO 1 STEP -1
2 MODE = 1 2 MODE = 1
3 GOSUB 12 3 GOSUB 12
4 PRINT(I+" bottle"+BOTTLES$+" of beer on the wall, "+i+" bottle"+BOTTLES$+" of beer.") 4 PRINT(I+" bottle"+BOTTLES$+" of beer on the wall, "+i+" bottle"+BOTTLES$+" of beer.")

View File

@@ -16,7 +16,7 @@ Test Programs:
*/ */
let INDEX_BASE = 0; let INDEX_BASE = 0;
let TRACEON = true; let TRACEON = false;
if (system.maxmem() < 8192) { if (system.maxmem() < 8192) {
println("Out of memory. BASIC requires 8K or more User RAM"); println("Out of memory. BASIC requires 8K or more User RAM");
@@ -359,14 +359,16 @@ bStatus.getArrayIndexFun = function(lnum, arrayName, array) {
// NOTE: BASIC arrays are index in column-major order, which is OPPOSITE of C/JS/etc. // NOTE: BASIC arrays are index in column-major order, which is OPPOSITE of C/JS/etc.
return varArgNum(lnum, args, (dims) => { return varArgNum(lnum, args, (dims) => {
let indexingstr = ""; let indexingstr = "";
serial.println("ar dims: "+dims); if (TRACEON) serial.println("ar dims: "+dims);
dims.forEach((d) => { dims.forEach((d) => {
indexingstr = `[${d-INDEX_BASE}]${indexingstr}`; indexingstr = `[${d-INDEX_BASE}]${indexingstr}`;
}) })
serial.println("ar indexedValue = "+`/*ar1*/array${indexingstr}`); if (TRACEON)
serial.println("ar indexedValue = "+`/*ar1*/array${indexingstr}`);
let indexedValue = eval(`/*ar1*/array${indexingstr}`); let indexedValue = eval(`/*ar1*/array${indexingstr}`);
let index = dims[0]-INDEX_BASE; let index = dims[0]-INDEX_BASE;
serial.println("ar parentArr = "+`/*ar2*/array${indexingstr.substring(0, indexingstr.length - 2 - (""+index).length)}`); if (TRACEON)
serial.println("ar parentArr = "+`/*ar2*/array${indexingstr.substring(0, indexingstr.length - 2 - (""+index).length)}`);
let parentArr = eval(`/*ar2*/array${indexingstr.substring(0, indexingstr.length - 2 - (""+index).length)}`); let parentArr = eval(`/*ar2*/array${indexingstr.substring(0, indexingstr.length - 2 - (""+index).length)}`);
if (index < 0) throw lang.subscrOutOfRng(lnum, arrayName); if (index < 0) throw lang.subscrOutOfRng(lnum, arrayName);
@@ -1899,6 +1901,12 @@ bF.renum = function(args) { // RENUM function
bF.fre = function(args) { bF.fre = function(args) {
println(vmemsize - getUsedMemSize()); println(vmemsize - getUsedMemSize());
}; };
bF.tron = function(args) {
TRACEON = true;
};
bF.troff = function(args) {
TRACEON = false;
};
bF.run = function(args) { // RUN function bF.run = function(args) { // RUN function
var linenumber = 1; var linenumber = 1;
var oldnum = 1; var oldnum = 1;