From e106374bb6b2c0177e60e2bd4234e66b417e34bf Mon Sep 17 00:00:00 2001 From: otya128 Date: Fri, 16 Dec 2016 23:04:17 +0900 Subject: [PATCH] Implement HARDWARE sytem variable --- SMILEBASIC/compiler.d | 1 + SMILEBASIC/petitcomputer.d | 7 +++++++ SMILEBASIC/systemvariable.d | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/SMILEBASIC/compiler.d b/SMILEBASIC/compiler.d index 8cac621..ebac7bd 100644 --- a/SMILEBASIC/compiler.d +++ b/SMILEBASIC/compiler.d @@ -227,6 +227,7 @@ class Compiler addSystemVariable("FREEMEM", new FreeMem()); addSystemVariable("TABSTEP", new TabStep()); addSystemVariable("RESULT", new Result()); + addSystemVariable("HARDWARE", new Hardware()); } void addSystemVariable(wstring name, SystemVariable var) { diff --git a/SMILEBASIC/petitcomputer.d b/SMILEBASIC/petitcomputer.d index c09f23d..6812d65 100644 --- a/SMILEBASIC/petitcomputer.d +++ b/SMILEBASIC/petitcomputer.d @@ -213,6 +213,12 @@ class RingBuffer(T) return buffer[(start != -1 ? start + index : index) % buffer.length]; } } +enum Hardware +{ + threeDS = 0, + new3DS = 1, + wiiU = 2, +} class PetitComputer { this() @@ -1463,6 +1469,7 @@ class PetitComputer std.stdio.stderr.writefln("Unknown XON %s", func); } } + Hardware hardware = Hardware.wiiU; //プチコン内部表現はRGB5_A1 static uint toGLColor(GLenum format, ubyte r, ubyte g, ubyte b, ubyte a) { diff --git a/SMILEBASIC/systemvariable.d b/SMILEBASIC/systemvariable.d index 35f6fa9..6de74d6 100644 --- a/SMILEBASIC/systemvariable.d +++ b/SMILEBASIC/systemvariable.d @@ -116,3 +116,11 @@ class Result : SystemVariable return Value(vm.petitcomputer.project.result); } } +class Hardware : SystemVariable +{ + @property + override Value value() + { + return Value(cast(int)vm.petitcomputer.hardware); + } +}