mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-11 07:14:04 +09:00
basic: GETKEYSDOWN function
This commit is contained in:
@@ -994,7 +994,7 @@ if no arg text were given (e.g. "10 NEXT"), args will have zero length
|
|||||||
*/
|
*/
|
||||||
"INPUT" : function(lnum, stmtnum, args) {
|
"INPUT" : function(lnum, stmtnum, args) {
|
||||||
if (args.length != 1) throw lang.syntaxfehler(lnum, args.length+lang.aG);
|
if (args.length != 1) throw lang.syntaxfehler(lnum, args.length+lang.aG);
|
||||||
var troValue = args[0].troValue;
|
let troValue = args[0].troValue;
|
||||||
|
|
||||||
// print out prompt text
|
// print out prompt text
|
||||||
print("? "); var rh = sys.read().trim();
|
print("? "); var rh = sys.read().trim();
|
||||||
@@ -1011,9 +1011,9 @@ if no arg text were given (e.g. "10 NEXT"), args will have zero length
|
|||||||
return {asgnVarName: troValue.arrName, asgnValue: rh};
|
return {asgnVarName: troValue.arrName, asgnValue: rh};
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var varname = troValue.toUpperCase();
|
let varname = troValue.toUpperCase();
|
||||||
//println("input varname: "+varname);
|
//println("input varname: "+varname);
|
||||||
var type = JStoBASICtype(rh);
|
let type = JStoBASICtype(rh);
|
||||||
if (_basicConsts[varname]) throw lang.asgnOnConst(lnum, varname);
|
if (_basicConsts[varname]) throw lang.asgnOnConst(lnum, varname);
|
||||||
bStatus.vars[varname] = new BasicVar(rh, type);
|
bStatus.vars[varname] = new BasicVar(rh, type);
|
||||||
return {asgnVarName: varname, asgnValue: rh};
|
return {asgnVarName: varname, asgnValue: rh};
|
||||||
@@ -1160,6 +1160,20 @@ if no arg text were given (e.g. "10 NEXT"), args will have zero length
|
|||||||
"MAX" : function(lnum, stmtnum, args) {
|
"MAX" : function(lnum, stmtnum, args) {
|
||||||
return twoArg(lnum, stmtnum, args, (lh,rh) => (lh < rh) ? rh : lh);
|
return twoArg(lnum, stmtnum, args, (lh,rh) => (lh < rh) ? rh : lh);
|
||||||
},
|
},
|
||||||
|
"GETKEYSDOWN" : function(lnum, stmtnum, args) {
|
||||||
|
if (args.length != 1) throw lang.syntaxfehler(lnum, args.length+lang.aG);
|
||||||
|
let troValue = args[0].troValue;
|
||||||
|
let varname = troValue.toUpperCase();
|
||||||
|
let keys = [];
|
||||||
|
sys.poke(-40, 255);
|
||||||
|
for (let k = -41; k >= -48; k--) {
|
||||||
|
keys.push(sys.peek(k));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_basicConsts[varname]) throw lang.asgnOnConst(lnum, varname);
|
||||||
|
bStatus.vars[varname] = new BasicVar(keys, "array");
|
||||||
|
return {asgnVarName: varname, asgnValue: keys};
|
||||||
|
},
|
||||||
"OPTIONDEBUG" : function(lnum, stmtnum, args) {
|
"OPTIONDEBUG" : function(lnum, stmtnum, args) {
|
||||||
return oneArgNum(lnum, stmtnum, args, (lh) => {
|
return oneArgNum(lnum, stmtnum, args, (lh) => {
|
||||||
if (lh != 0 && lh != 1) throw lang.syntaxfehler(line);
|
if (lh != 0 && lh != 1) throw lang.syntaxfehler(line);
|
||||||
|
|||||||
3
assets/downkeys.bas
Normal file
3
assets/downkeys.bas
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
10 GETKEYSDOWN K
|
||||||
|
20 PRINT K
|
||||||
|
30 GOTO 10
|
||||||
Reference in New Issue
Block a user