diff --git a/SMILEBASIC/builtinfunctions.d b/SMILEBASIC/builtinfunctions.d index 0f632ed..e0b9e16 100644 --- a/SMILEBASIC/builtinfunctions.d +++ b/SMILEBASIC/builtinfunctions.d @@ -1447,6 +1447,10 @@ class BuiltinFunction { return (label in p.vm.currentSlot.globalLabel) != null; } + static wstring INKEY(PetitComputer p) + { + return p.inkey(); + } //alias void function(PetitComputer, Value[], Value[]) BuiltinFunc; static BuiltinFunctions[wstring] builtinFunctions; static wstring getBasicName(BFD)(const wstring def) diff --git a/SMILEBASIC/petitcomputer.d b/SMILEBASIC/petitcomputer.d index bcfdf7e..b6e97e9 100644 --- a/SMILEBASIC/petitcomputer.d +++ b/SMILEBASIC/petitcomputer.d @@ -1536,6 +1536,16 @@ class PetitComputer //display = olddisplay; return buffer; } + wstring inkey() + { + if (!keybufferlen) + { + return ""; + } + auto result = keybuffer[(keybufferpos - keybufferlen)]; + keybufferlen--; + return result.key.to!wstring; + } int CSRX; int CSRY; int CSRZ;