From 692c7907e91804a17373003651f1e1780e0686c4 Mon Sep 17 00:00:00 2001 From: otya128 Date: Wed, 28 Dec 2016 22:51:22 +0900 Subject: [PATCH] Implement PRGSLOT --- SMILEBASIC/compiler.d | 1 + SMILEBASIC/program.d | 2 +- SMILEBASIC/systemvariable.d | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/SMILEBASIC/compiler.d b/SMILEBASIC/compiler.d index f0b7c4a..d47ee79 100644 --- a/SMILEBASIC/compiler.d +++ b/SMILEBASIC/compiler.d @@ -226,6 +226,7 @@ class Compiler addSystemVariable("RESULT", new Result()); addSystemVariable("HARDWARE", new Hardware()); addSystemVariable("MILLISEC", new MilliSecond()); + addSystemVariable("PRGSLOT", new ProgramSlot()); } void addSystemVariable(wstring name, SystemVariable var) { diff --git a/SMILEBASIC/program.d b/SMILEBASIC/program.d index 7ac2586..0e590f7 100644 --- a/SMILEBASIC/program.d +++ b/SMILEBASIC/program.d @@ -518,7 +518,7 @@ class Program { Slot[] slot; bool PRGEDITused; - int currentSlot; + int currentSlot = -1/*PRGSLOT default value*/; int slotSize = 4; this() { diff --git a/SMILEBASIC/systemvariable.d b/SMILEBASIC/systemvariable.d index 934ae1f..7159014 100644 --- a/SMILEBASIC/systemvariable.d +++ b/SMILEBASIC/systemvariable.d @@ -131,3 +131,11 @@ class MilliSecond : SystemVariable return Value(cast(int)SDL_GetTicks()); } } +class ProgramSlot : SystemVariable +{ + @property + override Value value() + { + return Value(vm.petitcomputer.program.currentSlot); + } +}