basic: newly implemented EMIT

This commit is contained in:
minjaesong
2020-12-05 17:41:15 +09:00
parent bd6a6be6b6
commit 2d13e9e492

View File

@@ -665,18 +665,38 @@ if no arg text were given (e.g. "10 NEXT"), args will have zero length
if (args[args.length - 1] !== undefined && args[args.length - 1].troType != "null") println(); if (args[args.length - 1] !== undefined && args[args.length - 1].troType != "null") println();
}, },
"EMIT" : function(lnum, args) { "EMIT" : function(lnum, args, seps) {
if (args.length > 0) { if (args.length == 0)
println();
else {
for (var llll = 0; llll < args.length; llll++) { for (var llll = 0; llll < args.length; llll++) {
var lvalll = resolve(args[llll]); // parse separators.
if (isNaN(lvalll)) { // ; - concat
print(lvalll); // , - tab
if (llll >= 1) {
if (seps[llll - 1] == ",") print("\t");
} }
else {
con.addch(lvalll); var rsvArg = resolve(args[llll]);
if (rsvArg === undefined && args[llll] !== undefined && args[llll].troType != "null") throw lang.refError(lnum, args[llll].troValue);
let printstr = "";
if (rsvArg === undefined)
print("")
else if (!isNaN(rsvArg)) {
let c = con.getyx();
con.addch(rsvArg);
} }
else if (rsvArg.toString !== undefined)
print(rsvArg.toString());
else
printstr = (rsvArg);
if (TRACEON) serial.println("[BASIC.EMIT] "+printstr);
} }
} }
if (args[args.length - 1] !== undefined && args[args.length - 1].troType != "null") println();
}, },
"POKE" : function(lnum, args) { "POKE" : function(lnum, args) {
twoArgNum(lnum, args, (lh,rh) => sys.poke(lh, rh)); twoArgNum(lnum, args, (lh,rh) => sys.poke(lh, rh));