TABの実装
This commit is contained in:
@@ -4,8 +4,9 @@ import otya.smilebasic.error;
|
||||
import otya.smilebasic.vm;
|
||||
class SystemVariable
|
||||
{
|
||||
VM vm;
|
||||
@property
|
||||
abstract Value value(VM vm);
|
||||
abstract Value value();
|
||||
@property
|
||||
void value(Value value)
|
||||
{
|
||||
@@ -18,7 +19,7 @@ import std.conv;
|
||||
class Date : SystemVariable
|
||||
{
|
||||
@property
|
||||
override Value value(VM vm)
|
||||
override Value value()
|
||||
{
|
||||
auto currentTime = Clock.currTime();
|
||||
wstring timeString = format("%04d/%02d/%02d", currentTime.year, currentTime.month, currentTime.day).to!wstring;
|
||||
@@ -28,7 +29,7 @@ class Date : SystemVariable
|
||||
class Time : SystemVariable
|
||||
{
|
||||
@property
|
||||
override Value value(VM vm)
|
||||
override Value value()
|
||||
{
|
||||
auto currentTime = Clock.currTime();
|
||||
wstring timeString = format("%02d:%02d:%02d", currentTime.hour, currentTime.minute, currentTime.second).to!wstring;
|
||||
@@ -38,7 +39,7 @@ class Time : SystemVariable
|
||||
class Maincnt : SystemVariable
|
||||
{
|
||||
@property
|
||||
override Value value(VM vm)
|
||||
override Value value()
|
||||
{
|
||||
return Value(vm.petitcomputer.maincnt);
|
||||
}
|
||||
@@ -46,7 +47,7 @@ class Maincnt : SystemVariable
|
||||
class CSRX : SystemVariable
|
||||
{
|
||||
@property
|
||||
override Value value(VM vm)
|
||||
override Value value()
|
||||
{
|
||||
return Value(vm.petitcomputer.CSRX);
|
||||
}
|
||||
@@ -54,7 +55,7 @@ class CSRX : SystemVariable
|
||||
class CSRY : SystemVariable
|
||||
{
|
||||
@property
|
||||
override Value value(VM vm)
|
||||
override Value value()
|
||||
{
|
||||
return Value(vm.petitcomputer.CSRY);
|
||||
}
|
||||
@@ -62,15 +63,37 @@ class CSRY : SystemVariable
|
||||
class CSRZ : SystemVariable
|
||||
{
|
||||
@property
|
||||
override Value value(VM vm)
|
||||
override Value value()
|
||||
{
|
||||
return Value(vm.petitcomputer.CSRZ);
|
||||
}
|
||||
}
|
||||
class TabStep : SystemVariable
|
||||
{
|
||||
@property
|
||||
override Value value()
|
||||
{
|
||||
return Value(vm.petitcomputer.TABSTEP);
|
||||
}
|
||||
@property
|
||||
override void value(Value value)
|
||||
{
|
||||
if(!value.isNumber)
|
||||
{
|
||||
throw new TypeMismatch();
|
||||
}
|
||||
int i = value.castInteger;
|
||||
if(i < 0 || i > 16)
|
||||
{
|
||||
throw new OutOfRange();
|
||||
}
|
||||
vm.petitcomputer.TABSTEP = i;
|
||||
}
|
||||
}
|
||||
class Version : SystemVariable
|
||||
{
|
||||
@property
|
||||
override Value value(VM vm)
|
||||
override Value value()
|
||||
{
|
||||
return Value(0x3010000);
|
||||
}
|
||||
@@ -78,7 +101,7 @@ class Version : SystemVariable
|
||||
class FreeMem : SystemVariable
|
||||
{
|
||||
@property
|
||||
override Value value(VM vm)
|
||||
override Value value()
|
||||
{
|
||||
return Value(8327164);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user