• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

BASIC compiler/interpreter for PIC32MX/MZ-80K


Commit MetaInfo

修订版87a19d019085b11b594721a3dfb4530339028a36 (tree)
时间2019-04-15 10:08:23
作者Katsumi <kmorimatsu@sour...>
CommiterKatsumi

Log Message

Protozoa -> protozoea

更改概述

  • modified: mips/megalopa/envspecific.c (diff)
  • modified: mips/megalopa/help.txt (diff)
  • modified: mips/zoea/envspecific.c (diff)
  • delete: mips/{protozoa => protozoea}/App_32MX170F256B.ld
  • delete: mips/{protozoa => protozoea}/api.h
  • delete: mips/{protozoa => protozoea}/args.c
  • delete: mips/{protozoa => protozoea}/class.c
  • delete: mips/{protozoa => protozoea}/class.txt
  • delete: mips/{protozoa => protozoea}/cmpdata.c
  • delete: mips/{protozoa => protozoea}/compiler.c
  • delete: mips/{protozoa => protozoea}/compiler.h
  • delete: mips/{protozoa => protozoea}/debug.c
  • delete: mips/{protozoa => protozoea}/debug.h
  • delete: mips/{protozoa => protozoea}/editor.c
  • delete: mips/{protozoa => protozoea}/editor.h
  • delete: mips/{protozoa => protozoea}/envspecific.c
  • delete: mips/{protozoa => protozoea}/envspecific.h
  • delete: mips/{protozoa => protozoea}/error.c
  • delete: mips/{protozoa => protozoea}/exception.c
  • delete: mips/{protozoa => protozoea}/file.c
  • delete: mips/{protozoa => protozoea}/float.c
  • delete: mips/{protozoa => protozoea}/function.c
  • delete: mips/{protozoa => protozoea}/globalvars.c
  • delete: mips/{protozoa => protozoea}/interface/LCDdriver.c
  • delete: mips/{protozoa => protozoea}/interface/LCDdriver.h
  • delete: mips/{protozoa => protozoea}/interface/SDFSIO.h
  • delete: mips/{protozoa => protozoea}/interface/graphlib.c
  • delete: mips/{protozoa => protozoea}/interface/keyinput.c
  • delete: mips/{protozoa => protozoea}/interface/keyinput.h
  • delete: mips/{protozoa => protozoea}/interface/libsdfsio.a
  • delete: mips/{protozoa => protozoea}/interface/ps2keyboard.h
  • delete: mips/{protozoa => protozoea}/interface/videoout.h
  • delete: mips/{protozoa => protozoea}/library.c
  • delete: mips/{protozoa => protozoea}/linker.c
  • delete: mips/{protozoa => protozoea}/main.c
  • delete: mips/{protozoa => protozoea}/main.h
  • delete: mips/{protozoa => protozoea}/memory.c
  • delete: mips/{protozoa => protozoea}/music.c
  • delete: mips/{protozoa => protozoea}/operator.c
  • delete: mips/{protozoa => protozoea}/reservednames.js
  • delete: mips/{protozoa => protozoea}/run.c
  • delete: mips/{protozoa => protozoea}/sharedfiles.js
  • delete: mips/{protozoa => protozoea}/statement.c
  • delete: mips/{protozoa => protozoea}/string.c
  • delete: mips/{protozoa => protozoea}/timer.c
  • delete: mips/{protozoa => protozoea}/value.c
  • delete: mips/{protozoa => protozoea}/varname.c
  • delete: mips/{protozoa/protozoa.mcp => protozoea/protozoea.mcp}

差异

--- a/mips/megalopa/envspecific.c
+++ b/mips/megalopa/envspecific.c
@@ -256,11 +256,12 @@ int lib_system(int a0, int a1 ,int v0, int a3, int g_gcolor, int g_prev_x, int g
256256 return v0;
257257 }
258258 switch(a0){
259- // Version info
259+ // Version info etc
260260 case 0: return (int)SYSVER1;
261261 case 1: return (int)SYSVER2;
262262 case 2: return (int)BASVER;
263263 case 3: return (int)FILENAME_FLASH_ADDRESS;
264+ case 4: return (int)CPU_CLOCK_HZ;
264265 // Display info
265266 case 20: return twidth;
266267 case 21: return twidthy;
--- a/mips/megalopa/help.txt
+++ b/mips/megalopa/help.txt
@@ -10,13 +10,17 @@ A-Zの26個の整数型変数が利用可能です。文字列として扱
1010 述します。ただし、A(整数型)とA$(文字列型)を同時に使用することは出来ま
1111 せん。
1212
13+USEVARなどのステートメントで指定すると、6文字までの長い名前の変数を使用出
14+来ます。名前の最初の一文字は英字(A-Z)とアンダースコアー(_)で、二文字目から
15+はそれらに加えて数字(0-9)も使う事が出来ます。
16+
1317 整数型の定数は、10進法で記述します。16進法を使う場合、「$1200」のよう
1418 に、頭に「$」を付加するか、「0x1200」の様に表記して下さい。
1519
1620 文字列型の定数は、「"」で囲って記述してください。「"」を使用する場合は、
1721 「CHR$($22)」のように記述することが出来ます。
1822
19-<命令>
23+<一般命令>
2024 以下、x, y, z等は整数値を、x$, y$, z$は文字列を、x#, y#, z#は浮動
2125 小数点型実数値を指します。xxx, yyy, zzz, www等は任意のステートメントを
2226 指します。[ ]は省略可能である事を示します。
@@ -81,9 +85,6 @@ GOSUB xxx [, yyy [, zzz [, ... ]]]
8185 等は、サブルーチンに引き継がれる引数(ARGS()関数を参照)。
8286 GOTO xxx
8387 xxx行目(もしくはラベル)に移動する。
84-IDLE
85- アイドルモード("wait"アセンブリー)に入る。ビデオ信号作製やタイマーなどの割
86- り込みがかかるまで、CPUが停止する。
8788 IF xまたはx# THEN yyy [ ELSE zzz ]
8889 xが0以外のとき、yyyを、0のときzzzを実行。yyyおよびzzzは、複数のステート
8990 メントを「:」で挟んで記述可能。
@@ -106,16 +107,16 @@ LABEL xxx
106107 [LET] x$=yyy
107108 yyyで示された文字列(もしくは連結結果;連結演算子は「+」)を、x$に
108109 代入する。「LET」は省略可。
109-MUSIC x$
110- BGMを演奏する。詳細は、下記<MUSIC>の項を参照。
111-OPTION x[,y[,z ... ]]]
112- 各種オプションを指定する。オプションについては、下記<オプション>の項を参照。
110+MUSIC x$[,y]
111+ BGMを演奏する。詳細は、下記<MUSIC>の項を参照。Type Mでは、y=1の時右側だけ、
112+ y=2の時左側だけ、y=3もしくは省略した場合に両方から音が出る。
113113 PLAYWAVE x$[,y]
114114 音楽用のWAVEファイル(ファイル名をx$で指定)を演奏する。WAVEのフォーマットは、
115- ステレオもしくはモノラル、ビット長は8、サンプリング周波数が15700 Hzの物を
116- 指定する。16000 Hzでも再生出来るが、音程と再生速度が少しずれる。yを指定した
117- 場合、指定の箇所から再生される(1秒目から再生したい場合は、15700を指定)。
118- x$に長さ0の文字列を指定すると、現在再生中の音楽が停止する。
115+ Type Mの場合はステレオもしくはモノラル(Type Zではモノラルのみ)、ビット長
116+ は8、サンプリング周波数が15700 Hzの物を指定する。16000 Hzでも再生出来るが、
117+ 音程と再生速度が少しずれる。yを指定した場合、指定の箇所から再生される(1秒
118+ 目から再生したい場合は、15700を指定)。x$に長さ0の文字列を指定すると、現在
119+ 再生中の音楽が停止する。
119120 PALETTE n,r,g,b
120121 パレット指定。
121122 PCG x,y,z
@@ -123,10 +124,10 @@ PCG x,y,z
123124 ターデーター。詳細は、下記<PCG>の項を参照。
124125 POKE x,y
125126 xで示される物理的アドレスに、yで示される値(1バイト値)を書き込む。
126-PEEK16(x)
127+PEEK16 x,y
127128 xで示される物理アドレスに、yで示される値(16ビット値)を書き込む。xが奇数値の
128129 場合、例外停止するので注意。
129-PEEK32(x)
130+PEEK32 x,y
130131 xで示される物理アドレスに、yで示される値(32ビット値)を書き込む。xが4の倍数で
131132 無い場合、例外停止するので注意。
132133 PRINT [ xまたはx$またはx# [ ,または; [ yまたはy$またはy# [ ... ]]]]
@@ -144,24 +145,15 @@ RETURN
144145 SCROLL x,y
145146 画面を横方向、もしくは縦方向(斜めも可)に動かす。動かす方向と大きさ
146147 は、x, yでそれぞれ、横方向の移動度、縦方向の移動度として指定する。
147-SOUND xxx
148+SOUND xxx[,y]
148149 効果音を再生する。詳細は、下記<SOUND>の項を参照。xxxは行番号もしく
149- はラベル。
150-SYSTEM x , y
151- 様々なシステム値の設定を行なう。<SYSTEM>の項を参照。
152-USEGRAPHIC [x]
153- グラフィックディスプレイを使用、もしくは使用停止する。x=0で使用停止、
154- x=1, 5, 9で使用、x=2, 6, 10で画面とパレットをクリアーして使用、x=3,7,
155- 11でグラフィック領域を確保するが表示はキャラクターディスプレイのまま。
156- ただし、グラフィックディスプレイ未使用の状態でx=0, 4, 8の場合は、領域
157- を確保する。xを省略した場合は、x=1と同じ。
158- ただし、xの値が0-3の場合はType-Z互換グラフィック、4-7の場合は標準グラ
159- フィック、8-11の場合はワイドグラフィック。
150+ はラベル。Type Mでは、y=1の時右側だけ、y=2の時左側だけ、y=3もしくは
151+ 省略した場合に両方から音が出る。
160152 USEPCG [x]
161153 PCGを使用、もしくは使用停止する。x=0で使用停止、x=1で使用、x=2で
162154 キャラクターをリセットして使用。xを省略した場合は、x=1と同じ。
163155 USEVAR xxx [, yyy [, zzz [, ... ]]]
164- 英数字で最大6文字までの変数名を使用できるようにする。
156+ 英数字とアンダースコアー(_)で最大6文字までの変数名を使用できるようにする。
165157 このステートメント以降でxxx, yyy等の長い変数名が使用可能となる。
166158 VAR xxx [, yyy [, zzz [, ... ]]]
167159 サブルーチン内で使う、ローカル変数を指定する。xxx, yyy等は、A-Zの
@@ -176,106 +168,6 @@ WIDTH x
176168 キャラクターディスプレイの横幅を文字数で指定。xは30、36、40、48、
177169 もしくは80。
178170
179-<グラフィック関連命令>
180-
181-BOXFILL [x1,y1],x2,y2[,c]
182- 座標(x1,y1),(x2,y2)を対角線とするカラーcで塗られた長方形を描画。
183-CIRCLE [x,y],r[,c]
184- 座標(x,y)を中心に、半径r、カラーcの円を描画。
185-CIRCLEFILL [x,y],r[,c]
186- 座標(x,y)を中心に、半径r、カラーcで塗られた円を描画。
187-GCLS
188- 画面クリアー。
189-GCOLOR c
190- それぞれの命令で、cを省略した場合の色を指定。
191-GPALETTE n,r,g,b
192- パレット指定。
193-GPRINT [x,y],c,bc,s$
194- 座標(x,y)にカラーcで文字列s$を表示、bc:背景色(負数の場合背景色指定なし)。
195-LINE [x1,y1],x2,y2[,c]
196- 座標(x1,y1)から(x2,y2)にカラーcで線分を描画。
197-POINT x,y
198- グラフィック現在位置を、設定する。
199-PSET [x,y][,c]
200- 座標(x,y)の位置にカラーcで点を描画。
201-PUTBMP [x,y],m,n,bbb
202- 横m*縦nドットのキャラクター(bbbで指定)を座標(x,y)に表示。
203- サイズm*nの配列bmpに、単純にカラー番号を並べる。
204- ただし、カラーが0の部分は透明色として扱う。ただし、bbbはラベル名もし
205- くは配列へのポインター。
206-(GCOLOR()関数も参照のこと)
207-
208-<ファイル関連命令>
209-FCLOSE [x]
210- ファイルを閉じる。引数(x)がある場合は、そのファイルハンドルで指定されたファ
211- イルを閉じる。
212-FGET x,y
213- バッファー(xに配列として指定)にyバイト読み込む。関数として呼ばれた場合は、
214- 読み込みに成功したバイト数を返す。
215-FILE x
216- アクティブなファイルハンドル(1もしくは2)をxに指定する。
217-FOPEN x$,y$[,z]
218- x$で示される名前のファイルを、y$で示されたモードで開く。同時に開けるファイ
219- ルの数は、2つまで。関数として呼ばれた場合は、ファイルハンドルを返す。y$と
220- しては、次のものが有効。
221- "r" :ファイルを読み込みモードで開く。
222- "r+" :"r"と同じだが書き込みも可能。
223- "w" :ファイルを書き込みモードで開く。同名のファイルが在る場合は、
224- 以前のファイルは消去される。
225- "w+" :"w"と同じだが、読み込みも可能。
226- "a" :ファイルを書き込みモードで開く。同名のファイルが在る場合は、
227- ファイルは消去されず、ファイルの最後尾から書き込まれる。
228- "a+" :"a"と同じだが、読み込みも可能。
229- zには、割り当てたいファイルハンドル(1もしくは2)を指定する。省略した場
230- 合、1が指定される。
231-FPRINT [ xまたはx$またはx# [ ,または; [ yまたはy$またはy# [ ... ]]]]
232- PRINT命令と同じだが、画面ではなくファイルに情報が書き込まれる。
233-FPUT x,y
234- バッファー(xに配列として指定)のyバイト分を書き込む。関数として呼ばれた場合
235- は、書き込みに成功したバイト数を返す。
236-FPUTC x
237- xで示される1バイトのデーターをファイルに書き込む。関数として呼ばれた場合
238- は、書き込みに成功したバイト数(1もしくは0)を返す。
239-FREMOVE x$
240- x$で示される名前のファイルを、SDカードから削除する。関数として呼ばれた場合
241- は、削除に成功したか(0)、失敗したか(-1)を返す。
242-FSEEK x
243- xで示されるファイル位置に移動する。
244-SETDIR x$
245- カレントディレクトリーをx$に移動する。関数として呼ばれた場合、成功すれば0を、
246- エラーが有れば0以外を返す。
247-(FEOF(), FGETC(), FINPUT$(), FLEN(), FSEEK(), GETDIR$()関数も参照のこと)
248-
249-<タイマー及び割り込み関連命令と関数>
250-USETIMER x
251- タイマーを開始する。xはタイマーの速度を、μ秒で指定(175769以下の値)。
252-
253-TIMER x
254- 現在のタイマー値を32ビット整数(x)で設定する。
255-
256-TIMER()
257- タイマーの現在値を、32ビット整数値として返す。
258-
259-INTERRUPT xxx,yyy[,z1[,z2 ... ]]
260- 割り込みを設定する。xxxは割り込みの種類、yyyは割り込み時のサブルーチンをラベ
261- ルで指定。z1, z2等を指定すると、割り込み用サブルーチンの引数となる。使用可能
262- な割り込みの種類は以下の通り。
263- TIMER
264- タイマー割り込み。タイマー値が1増えるごとに割り込みがかかる。
265- DRAWCOUNT
266- 1/60秒毎の割り込み。
267- KEYS
268- ボタンの押下状態が変化した時。
269- INKEY
270- キーボード押下時。
271- MUSIC
272- 音楽再生の時、最後の音の再生時に割り込み。
273- WAVE
274- WAVEファイル再生終了時。
275-
276-INTERRUPT STOP xxx
277- 割り込みを停止する。xxxは割り込みの種類。
278-
279171 <整数型関数>
280172 以下、x, y, zは整数値を、x$, y$, z$は文字列を指します。[ ]は省略可能である事
281173 を示します。
@@ -296,18 +188,6 @@ CREAD()
296188 DRAWCOUNT()
297189 DRAWCOUNT値を得る。DRAWCOUNTは16ビット整数値で、1/60秒ごとに1ずつ
298190 増える。
299-FEOF()
300- FOPENで開いたファイルの現在のファイル位置が、末端に到達しているかどうか
301- を返す。1で末端に到達、0で未到達。
302-FGETC()
303- FOPENで開いたファイルから1バイト読み込み、整数値として返す。ファイル
304- 末端に到達しているなどで読み込みに失敗した場合、-1を返す。
305-FLEN()
306- FOPENで開いたファイルのファイル長を、バイト数で返す。
307-FSEEK()
308- FOPENで開いたファイルの、現在のファイル位置を返す。
309-GCOLOR(x,y)
310- グラフィック座標(x,y)の表示中パレット番号を返す。
311191 GOSUB(xxx [, y [, z [, ... ]]])
312192 GOSUB命令と同じだが、戻り値(RETURNを参照)を得ることが出来る。xxxは、
313193 ラベルもしくは行番号。。yyy, zzz 等は、サブルーチンに引き継がれる引数(
@@ -353,8 +233,6 @@ SGN(x)
353233 xの符号(-1, 0, または1)を返す。
354234 STRNCMP(x$,y$,z)
355235 2つの文字列のうちz文字分を比較し、結果を返す。同じ文字列の場合は0。
356-SYSTEM(x)
357- 様々なシステム値を、整数値で返す。「<システム変数>」の項を参照。
358236 TVRAM([x])
359237 ビデオRAMのx番目の内容を、バイト値で返す。xを省略した場合、ビデオ
360238 RAMの開始位置の物理アドレスを返す。
@@ -429,13 +307,8 @@ CHR$(x)
429307 xをアスキーコードとする文字を返す。
430308 DEC$(x)
431309 xの値を、10進数の文字列として返す。
432-FINPUT$([x])
433- FOPENで開いたファイルから、xで示された長さの文字列を読み込む。xが省略された
434- 場合は、行の最後まで読み込む(改行コードが含まれる)。
435310 FLOAT$(x#)
436311 実数値x#を、10進数の文字列として返す。
437-GETDIR$()
438- カレントディレクトリーを文字列として返す。
439312 GOSUB$(xxx [, y [, z [, ... ]]])
440313 GOSUB命令と同じだが、戻り値(RETURNを参照)を文字列として得ることが出来る。
441314 xxxは、ラベルもしくは行番号。。yyy, zzz 等は、サブルーチンに引き継がれる引数
@@ -447,8 +320,6 @@ INPUT$()
447320 文字列入力状態になり、入力が終了すると(Enterが押されると)文字列を返す。
448321 SPRINTF$(x$,y#)
449322 x$で示される書式に従って、実数y#の内容を文字列として返す。
450-SYSTEM$(x)
451- 様々なシステム値を、文字列で返す。「<システム変数>」の項を参照。
452323 READ$()
453324 DATA文の後から、一つずつ文字列データーを読み出す。
454325
@@ -544,6 +415,162 @@ x# OR y#
544415 AND
545416 OR
546417
418+<特殊命令・関数>
419+IDLE
420+ アイドルモード("wait"アセンブリー)に入る。ビデオ信号作製やタイマーなどの割
421+ り込みがかかるまで、CPUが停止する。
422+OPTION x[,y[,z ... ]]]
423+ 各種オプションを指定する。オプションについては、下記<オプション>の項を参照。
424+SYSTEM x , y
425+ 様々なシステム値の設定を行なう。<SYSTEM>の項を参照。
426+SYSTEM(x)
427+ 様々なシステム値を、整数値で返す。<システム変数>の項を参照。
428+SYSTEM$(x)
429+ 様々なシステム値を、文字列で返す。<システム変数>の項を参照。
430+
431+<グラフィック関連命令と関数>
432+
433+BOXFILL [x1,y1],x2,y2[,c]
434+ 座標(x1,y1),(x2,y2)を対角線とするカラーcで塗られた長方形を描画。
435+CIRCLE [x,y],r[,c]
436+ 座標(x,y)を中心に、半径r、カラーcの円を描画。
437+CIRCLEFILL [x,y],r[,c]
438+ 座標(x,y)を中心に、半径r、カラーcで塗られた円を描画。
439+GCLS
440+ 画面クリアー。
441+GCOLOR c
442+ それぞれの命令で、cを省略した場合の色を指定。
443+GPALETTE n,r,g,b
444+ パレット指定。
445+GPRINT [x,y],c,bc,s$
446+ 座標(x,y)にカラーcで文字列s$を表示、bc:背景色(負数の場合背景色指定なし)。
447+LINE [x1,y1],x2,y2[,c]
448+ 座標(x1,y1)から(x2,y2)にカラーcで線分を描画。
449+POINT x,y
450+ グラフィック現在位置を、設定する。
451+PSET [x,y][,c]
452+ 座標(x,y)の位置にカラーcで点を描画。
453+PUTBMP [x,y],m,n,bbb
454+ 横m*縦nドットのキャラクター(bbbで指定)を座標(x,y)に表示。
455+ サイズm*nの配列bmpに、単純にカラー番号を並べる。
456+ ただし、カラーが0の部分は透明色として扱う。ただし、bbbはラベル名もし
457+ くは配列へのポインター。
458+USEGRAPHIC [x]
459+Type Mの場合
460+ グラフィックディスプレイを使用、もしくは使用停止する。x=0で使用停止、
461+ x=1, 5, 9で使用、x=2, 6, 10で画面とパレットをクリアーして使用、x=3,7,
462+ 11でグラフィック領域を確保するが表示はキャラクターディスプレイのまま。
463+ ただし、グラフィックディスプレイ未使用の状態でx=0, 4, 8の場合は、領域
464+ を確保する。xを省略した場合は、x=1と同じ。
465+ ただし、xの値が0-3の場合はType-Z互換グラフィック、4-7の場合は標準グラ
466+ フィック、8-11の場合はワイドグラフィック。
467+Type Zの場合
468+ グラフィックディスプレイを使用、もしくは使用停止する。x=0で使用停止、
469+ x=1で使用、x=2で画面とパレットをクリアーして使用、x=3でグラフィック領
470+ 域を確保するが表示はキャラクターディスプレイのまま。ただし、グラフィッ
471+ クディスプレイ未使用の状態でx=0の場合は、領域を確保する。xを省略した場
472+ 合は、x=1と同じ。
473+
474+
475+GCOLOR(x,y)
476+ グラフィック座標(x,y)の表示中パレット番号を返す。
477+
478+<ファイル関連命令と関数>
479+ファイルは、最大2つまで同時に開く事が出来ます。
480+
481+FCLOSE [x]
482+ ファイルを閉じる。引数(x)がある場合は、そのファイルハンドルで指定されたファ
483+ イルを閉じる。
484+FGET x,y
485+ バッファー(xに配列として指定)にyバイト読み込む。関数として呼ばれた場合は、
486+ 読み込みに成功したバイト数を返す。
487+FILE x
488+ アクティブなファイルハンドル(1もしくは2)をxに指定する。
489+FOPEN x$,y$[,z]
490+ x$で示される名前のファイルを、y$で示されたモードで開く。同時に開けるファイ
491+ ルの数は、2つまで。関数として呼ばれた場合は、ファイルハンドルを返す。y$と
492+ しては、次のものが有効。
493+ "r" :ファイルを読み込みモードで開く。
494+ "r+" :"r"と同じだが書き込みも可能。
495+ "w" :ファイルを書き込みモードで開く。同名のファイルが在る場合は、
496+ 以前のファイルは消去される。
497+ "w+" :"w"と同じだが、読み込みも可能。
498+ "a" :ファイルを書き込みモードで開く。同名のファイルが在る場合は、
499+ ファイルは消去されず、ファイルの最後尾から書き込まれる。
500+ "a+" :"a"と同じだが、読み込みも可能。
501+ zには、割り当てたいファイルハンドル(1もしくは2)を指定する。省略した場
502+ 合、1が指定される。
503+FPRINT [ xまたはx$またはx# [ ,または; [ yまたはy$またはy# [ ... ]]]]
504+ PRINT命令と同じだが、画面ではなくファイルに情報が書き込まれる。
505+FPUT x,y
506+ バッファー(xに配列として指定)のyバイト分を書き込む。関数として呼ばれた場合
507+ は、書き込みに成功したバイト数を返す。
508+FPUTC x
509+ xで示される1バイトのデーターをファイルに書き込む。関数として呼ばれた場合
510+ は、書き込みに成功したバイト数(1もしくは0)を返す。
511+FREMOVE x$
512+ x$で示される名前のファイルを、SDカードから削除する。関数として呼ばれた場合
513+ は、削除に成功したか(0)、失敗したか(-1)を返す。
514+FSEEK x
515+ xで示されるファイル位置に移動する。
516+SETDIR x$
517+ カレントディレクトリーをx$に移動する。関数として呼ばれた場合、成功すれば0を、
518+ エラーが有れば0以外を返す。
519+FEOF()
520+ FOPENで開いたファイルの現在のファイル位置が、末端に到達しているかどうか
521+ を返す。1で末端に到達、0で未到達。
522+FGETC()
523+ FOPENで開いたファイルから1バイト読み込み、整数値として返す。ファイル
524+ 末端に到達しているなどで読み込みに失敗した場合、-1を返す。
525+FLEN()
526+ FOPENで開いたファイルのファイル長を、バイト数で返す。
527+FSEEK()
528+ FOPENで開いたファイルの、現在のファイル位置を返す。
529+FINPUT$([x])
530+ FOPENで開いたファイルから、xで示された長さの文字列を読み込む。xが省略された
531+ 場合は、行の最後まで読み込む(改行コードが含まれる)。
532+GETDIR$()
533+ カレントディレクトリーを文字列として返す。
534+
535+<タイマー関連命令と関数>
536+タイマーは、通常タイマーとコアタイマーの2つがあります。通常タイマーは速度の設定
537+や値の変更など出来る、汎用タイマーです。コアタイマーは、CPUクロックと同期した特
538+殊なタイマーで、値を読む事は出来るが設定する事は出来ません。
539+
540+CORETIMER
541+ コアタイマーを用いた割り込みの時期を設定する。コアタイマーの値を変更するわけ
542+ ではない事に注意。
543+USETIMER x
544+ タイマーを開始する。xはタイマーの速度を、μ秒で指定(175769以下の値)。
545+TIMER x
546+ 現在のタイマー値を32ビット整数(x)で設定する。
547+CORETIMER()
548+ 現在のコアタイマーの値を、32ビット整数値として返す。
549+TIMER()
550+ タイマーの現在値を、32ビット整数値として返す。
551+
552+<割り込み命令>
553+INTERRUPT xxx,yyy[,z1[,z2 ... ]]
554+ 割り込みを設定する。xxxは割り込みの種類、yyyは割り込み時のサブルーチンをラベ
555+ ルで指定。z1, z2等を指定すると、割り込み用サブルーチンの引数となる。使用可能
556+ な割り込みの種類は以下の通り。
557+ TIMER
558+ タイマー割り込み。タイマー値が1増えるごとに割り込みがかかる。
559+ DRAWCOUNT
560+ 1/60秒毎の割り込み。
561+ KEYS
562+ ボタンの押下状態が変化した時。
563+ INKEY
564+ キーボード押下時。
565+ MUSIC
566+ 音楽再生の時、最後の音の再生時に割り込み。
567+ WAVE
568+ WAVEファイル再生終了時。
569+ CORETIMER
570+ コアタイマーの値がCORETIMER命令で設定した値と一致した時。
571+INTERRUPT STOP xxx
572+ 割り込みを停止する。xxxは割り込みの種類。
573+
547574 <MUSIC>
548575 MUSIC命令では、BGM用のデーターを文字列で指定します。文字列の書式は、ABC
549576 notationに準拠しています。ただし、すべての記法が使えるわけではありません。
@@ -606,7 +633,7 @@ SYSTEM関数及びSYSTEMステートメントを用いて、各種システム
606633 とが出来ます。
607634
608635 SYSTEM$(0)
609- MachiKania バージョン文字列、"Zoea"を返す。
636+ MachiKania バージョン文字列、"Zoea"等を返す。
610637 SYSTEM$(1)
611638 MachiKania バージョン文字列、"1.0"等を返す。
612639 SYSTEM$(2)
@@ -657,6 +684,8 @@ SYSTEM 200,x
657684 ディスプレイの表示を停止(xが0のとき)、もしくは開始(xが0以外の時)する。
658685
659686 <入出力命令・関数>
687+入出力機能は、Type Mでのみ使えます。
688+
660689 ANALOG(x)
661690 PORTBの下位からxビット目のアナログ入力値(10ビット値;0-1023の値)を返す。但
662691 し、x=16, 17, 18の場合は、PORTE5, 6, 7がそれぞれ指定される。
@@ -756,11 +785,9 @@ OPTIONステートメントを使って、コンパイル時もしくは実行
756785 OPTION NOLINENUM
757786 コンパイル時に、行番号を指定する命令を挿入しない。このオプションにより、プロ
758787 グラムサイズを小さくして実行速度を増加する効果が見込める。ただし、エラーが発
759- 生した場合に、どの行でのエラーかは分からなくなる。また、一時領域を使うような
760- 場合(主に文字列操作)は、該当箇所にLABELステートメントを入れること。
788+ 生した場合に、どの行でのエラーかは分からなくなる。
761789
762790 <クラス・オブジェクト関連機能>
763-
764791 クラスとオブジェクトの利用方法について、詳しくはclass.txtを参照して下さい。
765792 以下は、関連する命令と関数です。
766793
@@ -785,10 +812,10 @@ NEW(x[,y[,z[, ... ]]])
785812 DELETE x[,y[,z[, ... ]]]
786813 作成されたオブジェクトを破棄する。x,y,z等は、オブジェクトを格納する変数名。
787814 CALL x
788- xで指定されたオブジェクトのメソッドを呼び出す。
815+ xで指定されたオブジェクトのメソッドを呼び出す。「CALL」は省略可。
789816
790817 <ヒント>
791-KM-1302以降、FOR-NEXTループ、WHILE-WENDループ、DO-LOOPループの途中で、
818+MachiKania ver 1.2 以降、FOR-NEXTループ、WHILE-WENDループ、DO-LOOPループの途中で、
792819 RETURN文が使えるようになりました。ただし、GOTO文でループの外に飛ぶと、予期せぬ結
793820 果(機器のリセット等)を引き起こします。ただし、GOSUB文でサブルーチンを呼んだり、別の
794821 ループをネストして使う事は可能です。
@@ -808,10 +835,12 @@ ON GOTO分やON GOSUB文はサポートしていません。ただし、例え
808835
809836 <バージョン履歴>
810837 ・KM-1303 2019年?月公開。
811- ・タイマー機能(USETIMER,TIMERステートメントとTIMER()関数)を追加。
838+ ・タイマー機能(USETIMER,TIMER, CORETIMERステートメントとTIMER(), CORETIMER()関
839+  数)を追加。
812840  ・割り込み機能(INTERRUPTステートメント)を追加。
813841  ・オプション機能(OPTIONステートメント)を追加。
814842  ・アイドル機能(IDLEステートメント)を追加。
843+ ・EXEC()関数を追加。
815844 ・KM-1302 2019年3月公開。
816845  ・オブジェクト指向プログラミングに対応
817846  ・args(0)で引数の数を取得できるようにした
--- a/mips/protozoa/envspecific.c
+++ b/mips/protozoea/envspecific.c
@@ -207,11 +207,12 @@ void videowidth(int width){
207207
208208 int lib_system(int a0, int a1 ,int v0, int a3, int g_gcolor, int g_prev_x, int g_prev_y){
209209 switch(a0){
210- // Version info
210+ // Version info etc
211211 case 0: return (int)SYSVER1;
212212 case 1: return (int)SYSVER2;
213213 case 2: return (int)BASVER;
214214 case 3: return (int)FILENAME_FLASH_ADDRESS;
215+ case 4: return (int)CPU_CLOCK_HZ;
215216 // Display info
216217 case 20: return twidth;
217218 case 21: return WIDTH_Y;
--- a/mips/zoea/envspecific.c
+++ b/mips/zoea/envspecific.c
@@ -204,11 +204,12 @@ void videowidth(int width){
204204
205205 int lib_system(int a0, int a1 ,int v0, int a3, int g_gcolor, int g_prev_x, int g_prev_y){
206206 switch(a0){
207- // Version info
207+ // Version info etc
208208 case 0: return (int)SYSVER1;
209209 case 1: return (int)SYSVER2;
210210 case 2: return (int)BASVER;
211211 case 3: return (int)FILENAME_FLASH_ADDRESS;
212+ case 4: return (int)CPU_CLOCK_HZ;
212213 // Display info
213214 case 20: return twidth;
214215 case 21: return WIDTH_Y;