From ed8017b4e070d26e25cfbe566d1c1bde3b8572a1 Mon Sep 17 00:00:00 2001 From: otya128 Date: Wed, 31 Aug 2016 18:19:14 +0900 Subject: [PATCH] =?UTF-8?q?INKEY$()=E3=82=92=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SMILEBASIC/builtinfunctions.d | 4 ++++ SMILEBASIC/petitcomputer.d | 10 ++++++++++ 2 files changed, 14 insertions(+) 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;