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); + } +}