wonbe/wonbe.txt
Kawamata Akira 3bc39a53f1 - When trying to delete a line number including 0x0d such as 13, the program took a broken bug
- Change processing system from Turbo C2.0 to Visual C ++ 1.51
 - Significantly improved loading speed
 - Only the .wb entrance menu is displayed
 - Sample game STAR WITCH (star.wb, star.txt) attached

Version 0.04 - from wonbe004.lzh
2000-11-12 12:00:00 +09:00

245 lines
11 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ワンべぇ: WONBE, WonderWitch BASIC Environment
暫定マニュアル Ver 0.04
2000年11月12日
株式会社ピーデー
川俣 晶
Copyright 2000 (c) by Pie Dey Co.Ltd.
●これは何か?
 ワンべぇは、WonderWitch上で使用できる小型BASICインタプリタです。
 WonderWitch上ですべての機能が稼働し、シリアルケーブル経由で接続された一般の通信ソフトで操作します。デバッグ済みのプログラムを実行する場合は、シリアルケーブルも通信ソフトも必要ありません。
 WonderWitchのテキスト画面を扱う最小限度のステートメント(cls,locate,print)と、最小限度のボタン入力機能(wait,scan)を持ち、簡易なミニゲームが書けます。
 動作テスト用にWin32上で動くバイナリーもありますが、これは、BASIC本体の動作確認用と割り切ってください。
●必要なもの
・開発時
 WonderWitchのカートリッジとシリアルケーブル。38400bpsの無手順通信が可能な通信ソフトを持つパソコン等。
・実行時
 ワンべぇと実行したプログラムを入れてあるWonderWitchのカートリッジのみ
●準備
・TransMagicなどでワンべぇ(fonbe.fx)をWonderWitchに転送します。
・TransMagicなどの接続を切り、通信ソフトから38400bpsの無手順通信を開始します
・WonderWitch上でワンべぇを実行します
・エントランスメニュー画面でY2を押します
・通信ソフトに、ワンべぇの名前が表示され、"*Ready"と出ます
・これで準備完了です
・print "hello!"リターンと打ってWonderWitchの画面を見てください。文字が出ていれば正常です。
●開発済みプログラムの実行
・WonderWitch上でワンべぇを実行します
・エントランスメニュー画面で実行したいファイルを選んでAボタンを押します
●開発環境の概要
 通常の行番号ベースのエディタが使えます。
 行番号に引き続いて1行を入力してリターンを押すと、プログラムに記録されます。
 行番号だけを入力してリターンを押すとその行は削除されます。
 行番号無しで命令を入力すると即座に実行されます。
 編集はバックスペースによる1文字削除しか使えません。通信ソフトからホスト上のエディタにCOPY&PASTEして、エディタ上で編集してから、通信ソフトに貼り付けてワンべぇに送ると便利です。ただし、フロー制御が無いので、複数行まとめて貼り付けると文字落ちが生じます。張り付けは1行単位で行ってください。プログラムはホスト上で編集してあらかじめTransMagicなどで送信しておくのも有効な手段です。
 現状では2Kバイト以上のプログラムを作成してもsaveコマンドで保存できません。listコマンドを実行してから通信ソフト上でCOPY&PASTEしてホスト上に保存してください。
 実行中は、STARTボタンを押すといつでも対話モードに戻れます。その後、contステートメントで実行を継続できます。
 中間言語に翻訳してから処理するため、中間言語に翻訳できない場合は、入力直後にエラーが出ます。
●言語の概要
 ごく軽いBASIC言語です。
 昔あったTiny BASICに近い構文を持っています。
 データ型は、符号付き16bit整数だけです。
 定数は、-3276732767の10進数か、0x00000xffffの16進数で記述できます。-32768は変数には記憶できますが、ソースには書けません。(-32767-1のように書いてください)
 変数は、グローバル変数として、AZのアルファベット大文字1文字のものが26個あります。
 ローカル変数として、azのアルファベット子文字1文字のものが26個あります。ローカル変数はgosubステートメントを実行したときに新しい領域が割り当てられ、returnステートメントを実行したときにgosubする前の領域が戻ってきます。
 配列変数は@(インデックス)という形式の1次元配列だけが使用できます。使用可能なサイズは、プログラム記憶領域(48Kバイト)の残りサイズに等しくなります。インデックスは0から始まります。(例: for i=0 to 9:print @(i):next)
 演算子の優先順位は「単項演算子 > */ > +- > 比較演算子 > and,or,xor」となります。(比較演算子は、<と>と=で記述する演算子すべて)
 計算順序は、括弧()を使って明示的に変更できます。
 オーバーフロー、アンダーフローのチェックはありません。溢れは無視されます。ただしゼロ除算はエラーになります。
 ステートメントなどのキーワードはすべてアルファベット小文字で入力します。大文字を使っても小文字になります。
● ステートメント一覧
変数 = 式
 式を計算して変数に代入します。letキーワードはサポートしていません。
例: a=b+c
if 式 then ステートメント列
 式が0でなければステートメント列を実行します。0なら次の行から実行を継続します。elseはありません。
例: if (a=0) and (b=1) then goto 200
print [文字列|式|chr(式)][,|;]...
 WonderWitchのテキスト画面の現在のカーソル位置から文字を表示します。
 式の前後に空白文字が入ることはありません。
 chr(式)は、式の値を文字コードと見なして表示します。
 制御コードは扱いませんので、WonderWitchのキャラクタージェネレータにあるすべての文字が表示できます。
 区切り文字の;は何もしません。,はタブストップ位置までカーソルを進めます。
 print文の最後は;または,で終わった場合は改行しません。
例: print "計算結果=",chr(34);1+2;chr(34)
locate 式,式
 WonderWitchのテキスト画面の現在のカーソル位置を設定します。引数はx,yの順番です。
例: locate 10,10
cls
 WonderWitchのテキスト画面を消去します。
例: cls
goto 式
 式の行番号に飛びます。計算型goto文が可能です。つまり、goto A*100とすると、Aが1のきは100行目に。2のときは200行目に飛びます。
例: goto 100
gosub 式
 スタックに現在位置とローカル変数を積んで、式の行番号に飛びます。gotoと同じく計算型gosubが可能です。
 スタックはforと合わせて8レベルまでです。
例: gosub 100
return
 gosubがスタックに積んだ情報を取り出して、そこに処理を戻す。ローカル変数も戻る。
例: return
for 変数=式 to 式
for 変数=式 to 式 step 式
 変数の値を変化させながらnextまで繰り返します。
 最後の変数の値が終値に一致せず、終値+ステップ値がオーバーフローする場合は無限ループする可能性があります。そのような値は指定しないように注意してください。
例: for i=0 to 10 step 2
next
 forステートメントの位置に戻って動作を繰り返します。forステートメントで示した条件が満たされた場合は、nextの次に動作が進みます。nextの後に変数名を書くとエラーになります。
例: next
end
 プログラムの実行を終了します。
break
 その位置で一時的に実行を中断します。contステートメントで実行を継続できます。
rem 文字列
'文字列
 コメントを記述します。後ろに:を置いてステートメントを続けることはできません。
例: rem これはテストプログラムです。
例: 'この式が座標を計算します
new
 メモリ上のプログラムを消去します。
list [行番号][-][行番号]
 指定範囲の行番号のプログラムをリストします。すべて省略すると全行をリストします。
run
run 式
run 文字列
 プログラムを実行します。それに先だって変数やスタックがクリアされます。
 runはメモリ上のプログラムを先頭から。run 式は、式の行番号から。run 文字列は文字列のファイルを読み込んでそれを実行します。
例: run
例: run 100
例: run "test.wb"
cont
 breakステートメントやSTARTボタンによるブレークによって停止した位置から実行を再開します。
save 文字列
 文字列をファイル名としてメモリ上のプログラムを保存します。保存されるのは内部表現ではなくテキスト形式です。
 現在はWonderWitchのファイルシステムの制約上、2Kバイトを超えるファイルを保存できません。listコマンドで端末にリストを送ってそれをCOPY&PASTEして保存してください。
例: save "hello.wb"
load 文字列
 文字列をファイル名としてファイルからプログラムを読み込みます。読み込むのはテキスト形式で、改行はCRLFとLFのどちらでも可です。中間言語に翻訳できない行がある場合はそこで読み込みが中断されます。プログラムの実行中に使用した場合は実行は中断されます。
例: load "hello.wb"
merge 文字列
 メモリ上のプログラムにファイル上のプログラムを混ぜ合わせます。同じ行番号の行は読み込まれる方が優先されます。中間言語に翻訳できない行がある場合はそこで読み込みが中断されます。プログラムの実行中に使用した場合は実行は中断されます。
例: load "merge.wb"
randomize 式
 乱数の初期値を指定します。これを使わないと必ず同じ順序で乱数が発生します。引数には、システム変数tickを指定すると最適です。
例: randomize tick
exit
 ワンべぇを抜けてOSに戻ります。
debug [文字列|式|chr(式)][,|;]...
 printステートメントと同等ですが、WonderWitchの画面ではなく、シリアルポートに送ります。単体で実行する場合には使えないデバッグ専用の機能です。
waitvb 式
 式の回数だけVBLANKを待ちます。待っている間はSTARTボタンによるブレークを受け付けなくなるので、指定できる値は750までと制限されています。750を超える値を指定するとエラーになります。
例: waitvb 75
files
 カレントディレクトリのファイル一覧をシリアルポートに送ります。単体で実行する場合には使えないデバッグ専用の機能です。
 2項演算子
 + - * / < > = <= >= <> and or xor
● 単項演算子
 - not
● 関数
rnd(式)
 0から式-1までの範囲の乱数を返します。
abs(式)
 式の絶対値を返します。
● システム変数 (読み出しのみ)
scan
 WonderSwanのボタンの状態を調べ、1個の整数値として返します。SCAN_で始まるシステム変数とandを取ることで、どのボタンが押されているかどうか判定できます。STARTボタンは実行中断になるので、これは扱えません。
wait
 WonderSwanのボタンが押されるまで待ち、その状態を1個の整数値として返します。SCAN_で始まるシステム変数とandを取ることで、どのボタンが押されたか判定できます。STARTボタンは実行中断になるので、これは扱えません。
scan_a
scan_b
scan_x1
scan_x2
scan_x3
scan_x4
scan_y1
scan_y2
scan_y3
scan_y4
 それぞれのボタンのマスク値を示す定数を返します。
 Aボタンが押されているかどうかを調べるには、下記の例のように記述します。
例: if scan and scna_a then print "Aボタンが押さている"
tick
 システムタイマーのtickを返します。ただし、本来のtick値は符号無し32bit整数であり、ここで得られるのは16bit符号あり整数であることに注意が必要です。はみ出たbitは捨てられます。
● ファイル保存時の拡張子
 ワンべぇのソースフィルは、".wb"で終わるファイル名にしておいて下さい。loadなどのコマンドでは拡張子に関係なく読み込めますが、エントランスメニューに表示されるのは".wb"で終わるファイル名だけです。
● 配布規則
 現バージョンは品質が不明のテスト版です。
 ですので、以下のように扱ってください。
 (正規版でどうするかは未定です)
・転載
 未完成品ですので、Internetやパソコン通信などへの転載は不可です。必ずhttp://www.piedey.co.jp/のサイトから入手するようにしてください。
・雑誌掲載等
 ご相談下さい。
・商業利用
 ご相談下さい。
・自作ソフトの実行手段としてのワンべぇの添付
 自作ソフトを配布するためにwonbe.fxを一緒に渡すことを許可します。アーカイブへの同梱、CD-Rメディアなどへの焼き込み、通信ケーブルによる転送、どれも可です。ただし、ワンべぇの動作に関しては何も保証はできませんので、リスクは自分で負ってください。利用にあたっては、ロイヤリティなどはありませんので、報告も送金も必要ありません。
● 変更履歴
2000年11月12日 Ver 0.04
・13など0x0dを含む行番号を削除しようとするとプログラムが壊れたバグを取った
・処理系をTurbo C2.0からVisual C++ 1.51に変更
・ロード速度を大幅に改善
・エントランスメニューは.wbのみ表示
・サンプルゲームSTAR WITCH(star.wb, star.txt)を添付
2000年11月7日 Ver 0.03
・演算子の優先順位 単項演算子 > */ > +- > 比較演算子 > and,or,xor
・比較演算子成立時の値を1から-1に変更
・プロンプトをOKに変更
・print/debugで負数が正数として出力されていたバグを解消
・forの終値がピッタリ一致しなくてもnextでループ脱出するように変更
2000年11月7日 Ver 0.02 scan_XXが機能しないバグを取った
2000年11月6日 Ver 0.01 最初のバージョン
● 問い合わせ先
株式会社ピーデー http://www.piedey.co.jp/
川俣 晶 autumn@piedey.co.jp
以上