PDF形式 - 片山博文MZのNEWホームページ

VeySicK リファレンスマニュアル
片山博文 MZ (かたやまひろふみエムゼッド)
2016 年 1 月 26 日
2
VeySicK について
VeySicK とは?
VeySicK (ヴェイシック)は、昔のパソコンのような BASIC 環境を実現するソフトウェアです。
Windows や Linux などで昔ながらの BASIC 環境を体験できます。
VeySicK の特徴
VeySicK は、次の特徴を持っています。
• 多くの N88-BASIC プログラムをインタープリター方式で実行できます。
• 8801 モード、9801 モード、VSK モードの三つのシステムモードが用意されており、切り替え
て使うことが可能です。
• 高速実行が可能です。エミュレーターよりも速く実行できます。動作が速すぎる場合は、遅延
時間の設定で実行速度を調整できます。
• 文字を表示するテキスト画面と図形を表示するグラフィック画面が分離されており、合成して
表示できます。
• GRPH モードでテキスト画面に半角カナや半角のグラフィックシンボル文字(GRPH 文字)
を表示できます。
• SJIS コードでテキスト画面に漢字を直接入力・表示できます。
• PUT@ KANJI コマンドでグラフィック画面に漢字を表示できます。
• 多彩なカラー表示が可能です。
• グラフィック画面は、640×200 モードと 640×400 モードを切り替えて使うことができ、白黒
グラフィック画面は合成して表示できます。
• PLAY、CMD PLAY コマンドにより、FM 音源と SSG 音源による6重奏のサウンドが楽しめ
ます。
なぜ VeySicK を作ったか?
古いパソコンは、電波ノイズを発生し、電気を馬鹿食いします。コンデンサーの劣化により、故障し
て白い煙を発生し、火事の危険があります。また、ファイルシステムが現在のものと異なり、ファイ
VeySicK について
ルの変換に面倒な手間が発生します。よって、昔のパソコンを所有して使用するのは、現実的ではあ
りません。古いパソコンは、売り払うか、博物館に展示してもらいましょう。
だからといって、現物を所有していない人が、古いシステムをまるごと仮想化した「エミュレーター」
を使用するのは、著作権上の問題が発生します。
現行の OS で動作し、著作権の問題を生じないような BASIC 環境の提供を目的として、VeySicK は
開発されました。VeySicK は、現物の ROM 情報を使用しない自由なソフトウェアですので、著作権
の問題は発生しません。
VeySicK は、古い N88-BASIC コードを現在の環境で生かすことができます。もはや、N88-BASIC
のプログラムは、死に絶えることはないのです。
歴史
1981 年、日本電子(NEC)が 8 ビットパソコン「PC-8801」の発売を開始した。
1982 年、NEC が 16 ビットパソコン「PC-9801」の発売を開始した。
1983 年、X Window System (X11) が登場。
1995 年、Microsoft が Windows 95 を発売。
2016 年、VeySicK Friend が正式リリースされる。
VeySicK の動作環境
• Windows XP、Windows Vista、Windows 7、Windows 8.1、Windows 10
• 32 ビット日本語 Ubuntu (i686)
• 実メモリー 64MB 以上必須
※ この他の環境で動いた場合は、ご報告下さい。
未対応の機能
次に挙げる機能は、VeySicK ではまだ利用できません。
• RS-232C 通信
• ライトペン入力
• JIS 文字列の処理
• 磁気テープレコーダー
• ターミナルモード
3
4
• 機械語
• 一部の I/O インタフェース
• ハードウェアや CPU に依存した処理
インストール方法
Windows の場合は、C:\VSK に展開して下さい。絶対に C:\Program Files などにはインストール
しないで下さい。他の場所で使用する場合は、インストールした場所のパスを VSK 環境変数を指定す
る必要があります。
Linux の場合は、事前に libx11 と OpenAL と alut と zlib のインストールを行って、管理者権限で
make -f Makefile.x11 install または install.sh を実行して下さい。その他にも必要なライブ
ラリーがあるかもしれません。ご報告下さい。
$ sudo apt-get install libx11-6:i386
$ sudo apt-get install libxpm4:i386
$ sudo apt-get install libopenal1:i386
$ sudo apt-get install libalut0:i386
$ sudo apt-get install zlib1g-dev:i386
$ cd veysick-0.4.2-linux32
$ sudo ./install.sh
著作権表示と免責事項
このソフトウェアは、フリーソフトです。このソフトを利用した事によるいかなる損害も作者は一切
の責任を負いません。自己責任の上で使用して下さい。
配布、転載、雑誌掲載などは、自由に行って下さい。
ご感想やご要望、不具合などありましたら、メールか掲示板でご連絡下さい。
• 作者のホームページ http://katahiromz.web.fc2.com/
• メール [email protected]
• 掲示板 http://katahiromz.bbs.fc2.com/
Copyright (C) 2014-2016 Katayama Hirofumi MZ. Copyright (C) 2006-2014 Naoyuki HIRAYAMA.
Copyright (C) 2013 Yasuhiro Fujii. Copyright (C) 2009-2011 Shinsuke Kishi.
VeySicK について
This software (VeySicK) is distributed by Katayama Hirofumi MZ under the terms of the Modified
BSD License, with some restrictions (the fmgon license).
This software uses kanji bitmap fonts derived from “jiskan16.bdf” and Ume-Font.
This software doesn’t use any ROM data of real BASIC machines.
This software uses the “fmgon” module for FM sound generation, that is derived by Katayama
Hirofumi MZ, from “FM Sound Generator” by cisc ([email protected]).
VeySicK のシステムモードについて
「システムモード」は、基本的な動作の振る舞いを切り替えるモードです。VeySicK のシステムモー
ドには、
「8801 モード」、「9801 モード」、「VSK モード」の 3 種類あります (VeySicK 拡張)。
8801 モードは、PC-8801 に近いシステムモードです。9801 モードは、PC-9801 に近いシステムモー
ドです。VSK モードは、8801 モードと 9801 モードの両方の機能を取り込んだシステムモードです。
システムモードによって利用できる命令が異なります。NEW ON コマンドによってシステムモードを
切り替えることができます。詳しくは命令リファレンスを参照して下さい。
8801 モードと VSK モードでは、テキスト画面にファンクションキーが 5 個しか表示されませんが、
9801 モードでは、ファンクションキーが 10 個表示されます。VSK モードの初期状態では、テキスト
画面は緑色ですが、その他の場合は、白色になります。8801 モードよりも 9801 モードの方が、テキ
スト画面の文字が見やすくなっております。
VeySicK は、常に「DISK version」です。
VeySicK の文字モードについて
VeySicK には、文字符号の表示方法を切り替えるために「文字モード」というものが存在します
(VeySicK 拡張)。文字モードには現在、「GRPH モード」
「SJIS モード」の二種類あります。
GRPH モードは、ASCII 文字の他に半角カナとグラフィックシンボル文字(GRPH 文字)を表示で
きる文字モードです。
SJIS モードは、ASCII 文字の他に半角カナと全角文字を表示できる文字モードです。
文字モードの切り替えには、後述の KANJI コマンド(VeySicK 拡張)を使います。
全角について
VeySicK のテキスト画面では、「あいうえお」は「AIUEO」の二倍の幅で表示されます。二倍の幅の
文字のことを「全角文字」と言います。漢字やひらがなは全角文字です。
5
6
図1
【図】 文字列のデータイメージ
全角文字を表示するには、KANJI コマンドで SJIS モードに切り替えないといけません。
半角について
全角文字ではない文字のことを 「半角文字」といいます。
GRPH 文字について
「グラフィックシンボル文字(GRPH 文字)
」は、トランプのマーク、罫線などを表示できる1バイト
の半角文字です。【付属資料】の文字コード表をご覧下さい。
GRPH 文字は機種依存文字ですので、他のソフトウェアでは正しく表示できないことがあります。ま
た、GRPH モード以外のときや、画面以外のデバイスでは正しく表示できないことがあります。
実機では GRPH キーを押しながらキーボードの特定のキーを押せば、GRPH 文字を入力できます。
VeySicK では、GRPH モードの場合に、Esc キーを押しながらキーボードの特定のキーを押せば、
GRPH 文字を入力できます。
動作モード
VeySicK を起動すると、画面に「Ok」という文字が表示されて、VeySicK は利用者のコマンド入力を
受け付けるようになります。この状態のときは、BASIC のコマンドをキーボードで入力することが
できます。
ダイレクトモード
先頭に行番号をつけずに VeySicK の文法に沿った文を入力した場合、その文は、「Enter」キーを入
力後、すぐに実行されます。これを「ダイレクトモード」による実行と言います。VeySicK の文法に
沿った文ではない場合、Syntax error エラーが発生します。ダイレクトモードで文を実行できる状
態のことを「コマンドレベル」と言います。
VeySicK について
プログラムモード
先頭に行番号をつけて文を入力したとき、それはプログラム行として行番号とともにメモリーに格納
されます。VeySicK の文法に沿った文ではない場合は、Syntax error エラーが発生します(VeySicK
のみ)
。格納されたプログラムは、RUN、GOTO、または GOSUB コマンドにより、実行を開始できます。
これを「プログラムモード」による実行と言います。VeySicK では実行する前に文法エラーがあるか
どうかすぐにわかります。
文
文とは、VeySicK が行う手続きを記述している最小単位です。文は、コマンドの呼び出しです。コマ
ンドの引数として定数、変数、演算子、式や関数呼び出しなどを含むことができます。コマンドの引
数は、カンマ(,)で区切ることが多いです。文はコロン(:)を用いて他の文と連結できます。連結し
たものを、「複文」(マルチステートメント)と言います。複文の長さに制限はありません(VeySicK
拡張)
。コマンドや関数の詳しい文法については、命令リファレンスを参照下さい。
行番号
VeySicK のプログラムの各行は、
「行番号」で始めなければなりません。行番号は 1~2147483647 ま
での整数です(VeySicK 拡張)
。行番号は、プログラムが格納される順番を表します。行に分岐コマン
ドがなければ、通常は行番号が小さい順で実行されます。行番号は、分岐や編集の目印でもあります。
行番号の代わりにピリオド(.)が使える場合があります。ピリオドは、現在エラー発生や編集時の現
在の行を表す行番号の代わりとして、LIST、AUTO、EDIT、DELETE コマンドなどで使用できます。
RENUM コマンドを使うと、行番号を振り直すことができます。
プログラム
メモリー上にあるプログラムは SAVE コマンドでプログラムファイルとして保存できます。プログラ
ムファイルは、LOAD コマンドでメモリー上に読み込むことができます。プログラムをファイルから読
み込んだときに行番号がなければ、自動的に行番号がつけられます(VeySicK 拡張)
。EDIT コマンド
を使うと、プログラムの閲覧や編集がしやすくなります。また、アスキーセーブしたプログラムファ
イルは、テキスト形式ですので、その文字コードに対応している他のソフトウェア(テキストエディ
ター、バイナリーエディタなど)でも編集ができます。VeySicK がプログラムファイルを保存する場
合は、常にアスキーセーブされます。
7
8
ラベル
VeySicK では、分岐先の行番号の代わりに「ラベル」を指定することができます。ラベルは、プログ
ラムの行につけることができる名前です。
ラベルの使用については以下の規則を守る必要があります。
• ラベル名の直前に必ずアスタリスク(*)をつけなければなりません。
• ラベル名に使用できる文字は、先頭のアスタリスクを除いて英文字と数字とピリオド(.)で
あり、大文字と小文字の区別はありません。
• VeySicK の予約語をラベルとして使用できません。
• ラベルの後に文を書くときは、ラベルの後にコロン(:)をつけて区切ります。
特殊記号
プラス(+) 足し算を表すのに使う演算子です。
マイナス(-) 引き算を表すのに使う演算子です。また、LIST、DELETE コマンドなどで行の範囲を
表すのに使います。
アスタリスク(*) ラベル名の直前につけます。また、掛け算を表すのに使う演算子でもあります。
スラッシュ(/) 割り算を表すのに使う演算子です。
ハット(ˆ) べき乗を表すのに使う演算子です。
二重引用符(ダブルクォーテーション)
(") 二重引用符(")で囲まれた内容は、文字列として扱わ
れます。
ピリオド(.)
ピリオドは、エラーが発生した行、または新しく入力した行の行番号の代わりです。
LIST、AUTO、EDIT、DELETE コマンドなどで使用できます。また、小数点としても使えます。
コロン(:) 複文の区切りです。
カンマ(,) PRINT、INPUT コマンドなどの引数の区切りとして使います。
セミコロン(;) PRINT コマンドなどの区切りとして使います。
アポストロフィー(') REM キーワードの代用として使えます。
疑問符(クエスチョンマーク)(?) PRINT キーワードの代用として使えます。
スペース(空白)
VeySicK は、原則として文字列内部以外の空白を無視します。ただし、コマンド
名と引数が隣り合う場合、間にスペースを入れなければいけません。
9
VeySicK について
型
型の種類
VeySicK の「型」とは、VeySicK で扱うデータの種類のことです。VeySicK の型は、「文字列型」と
「数値型」に分類されます。
文字列型
「文字列」とは、文字の並びのことです。
「文字列定数」は、半角の二重引用符(")で囲まれた文字の
並びのことです。半角の二重引用符そのものを記述する場合は、CHR$関数を使います。
文字には半角文字と全角文字があります。全角文字は1文字が2バイトであり、半角の2倍の文字幅
を持ちます。半角文字は1バイトで全角文字の半分の文字幅です。
図2
【図】 文字列のデータイメージ
数値型
数値型は、
「整数型」と「実数型」に分類されます。数値型は、正の数、負の数、またはゼロです。負
の数にはマイナス符号を付ける必要があります。
整数型
整数型は、
「10 進形式」「8 進形式」「16 進形式」の三つに分類されます。
10 進形式 0 から 9 までの数字の並びです。
8 進形式 先頭に「&O」または「&」を伴った 0 から 7 までの数字の並びです。10 進の 8 は、8 進で
は「&10」「&O10」などと表します。
16 進形式 先頭に「&H」を伴った 0~9 または A~F の並びです。10 進の 18 は、16 進では「&H12」
と表します。
整数型は、内部表現2バイトで保存されます。10 進数、8 進数、16 進数の関係を次の表で示します。
10 進数
8 進数
16 進数
0
&0
&H0
10
10 進数
8 進数
16 進数
1
&1
&H1
2
&2
&H2
3
&3
&H3
4
&4
&H4
5
&5
&H5
6
&6
&H6
7
&7
&H7
8
&10
&H8
9
&11
&H9
10
&12
&HA
11
&13
&HB
12
&14
&HC
13
&15
&HD
14
&16
&HE
15
&17
&HF
16
&20
&H10
17
&21
&H11
18
&22
&H12
:
:
:
:
:
:
255
&377
&HFF
256
&400
&H100
:
:
:
:
:
:
65535
&177777
&HFFFF
ご覧の通り、8 進数は、7 の次で繰り上がりが発生します。16 進数は、F の次で繰り上がりが発生し
ます。
実数型
実数型は、「単精度型」と「倍精度型」に分類されます。
単精度型 内部表現4バイトの浮動小数点数です。有効桁 7 桁の精度を持ちます。
倍精度型 内部表現8バイトの浮動小数点数です。有効桁 16 桁の精度を持ちます。
11
VeySicK について
図3
【図】 データのイメージ
次のいずれかで表記される定数は、「単精度型定数」です。
• 7 桁以下の実数(123.1)
• E を使った指数形式(-3.2E-03 など)
• 最後に感嘆符(!)がつく定数
次のいずれかで表記される定数は、「倍精度型定数」です。
• 8 桁以上の数(123456789)
• D を使った指数形式(-3.27273749236D+08 など)
• 最後にシャープ(#)がつく定数
文字列データと数値の内部表現の違い
VeySicK では、整数型のデータは、2 バイトの 2 進数として格納されます。ただし、符号付きの整数
としてみなされた場合は、最上位のビットは符号を表し、その他のビットは 2 の補数として格納され
ます。実数型のデータは、IEEE-754 に従って格納されます。VeySicK の数値データはリトルエン
ディアンです。
実際に計算機内部の数値計算で扱う数値データ(内部表現、バイナリー)と、数値を表示するための
文字列データはまったく違うものです。例えば、"0"という文字は、文字コード 48 (&H30) です。つ
まり、"0"という文字を表示するのに、48 (&H30) という値の 1 バイトが使われます。文字コードに
ついては【付属資料】の文字コード表をご覧下さい。文字列データは、1 バイト(2 進 8 桁)単位の文
字コードの並びによって格納されます。
2 進で 8 桁の整数は、16 進の 2 桁で表せますから、1 バイトは 16 進 2 桁で表せます。バイト列を表
すときは桁数が少なくなる 16 進表記を使うことが多いです。
2 進で符号化されたデータは、10 進よりも計算機にとって扱いやすく、データ量も節約でき、処理速
度も速くなる利点があります。ただし、進数変換で誤差が生じる欠点があるので注意が必要です。
12
変数
変数とは?
「変数」とは、数値や文字列を記憶されておく場所で、英数字からなる名前がついています。この名前
を「変数名」と言います。
変数を使うことで、ある値を記憶させたり、取り出したり、参照できます。
まだ何も代入されていない変数は、ゼロ(0)か空文字列("")の値を返します。
変数名と型宣言文字
変数の名前のことを「変数名」と言います。変数名とは、英数字かピリオドの並び、またはその後に
「$」
「!」「#」「%」「@」のいずれかをつけたものです。これらの記号は、
「型宣言文字」と言います。
• 最後に「$」がつく変数名は、文字列型であることを表します。
• 最後に「!」がつく変数名は、単精度型であることを表します。
• 最後に「#」がつく変数名は、倍精度型であることを表します。
• 最後に「%」がつく変数名は、整数型であることを表します。
• 最後に「@」がつく変数名は、VeySicK の予約変数であることを表します。
型宣言文字が違う変数は、別の変数として区別されます。
変数名は、VeySicK の予約語ではあってはなりませんが、予約語を含むことはできます。変数名の英
字には大文字・小文字の区別はありません。
DEFINT/DEFSNG/DEFDBL/DEFSTR コマンドを使うと、型宣言文字をつけない変数の型を指定できま
す。初期状態では、型宣言文字をつけない変数は、単精度型です。
FN や USR で始まる名前は、変数名には使えません。
配列変数
「配列」とは、同じ型のデータが集まったものであり、「配列変数」は、その配列を格納するための変
数です。
配列変数は、DIM 文で宣言し、各要素は、添字(そえじ)によって表されます。
「DIM A%(3)」を実行すると、
「A%」という名前の1次元の配列変数が確保されます。このとき、要
素の数は 4 個(= 3+1)で、各要素は、整数であり、
「A%(0)」
「A%(1)」
「A%(2)」
「A%(3)」という
式によってアクセスできます。
13
VeySicK について
図 4 【図】 配列のイメージ
「DIM B#(2,3)」を実行すると、「B#」という名前の2次元の配列変数が確保されます。このとき、
要素の数は (2+1)×(3+1) = 12 個で、各要素は、倍精度型であり、
「A%(0,0)」~「A%(2,3)」などの
式によってアクセスできます。
予約変数
次の変数は、VeySicK が特別に使用する「予約変数」です。
• TIME$
• DATE$
• ERL
• ERR
• 最後に「@」がつく変数
これらの変数は、利用者が一般の変数としては使用できません。
型変換
VeySicK の数値データは、以下のような場合に、必要に応じてある型から他の型に変換されます。
• 数値データが他の型の数値変数に代入された場合、数値は、その変数名に応じた数値型に変換
されます。
• 精度の違う数値どうしの演算の場合、精度の高い方に変換されて演算が行われます。
• 論理演算の場合、扱われる数値はすべて整数に変換され、結果は整数を返します。
• 実数が整数に変換されるときは、小数点以下は四捨五入されます。このとき、整数型で扱える
範囲を超えたときは、Overflow エラーが発生します。
• 倍精度変数が単精度変数に代入されたときは、変数の値は、有効数字7桁に丸めたものとなり
ます。単精度変数の精度は7桁であり、もとの倍精度の数値との誤差の絶対値は、5.96E-8 以
下となります。
14
式と演算
「式」は、1個以上の定数や変数や関数呼び出しを「演算子」で結合して表します。式の演算結果は、
1個の数値または1個の文字列になります。
算術演算子
「算術演算子」
(足し算 +、引き算-、掛け算*、割り算/、整数除算\、剰余 MOD、べき乗 ˆ)は、算術計
算を行う演算子です。整数除算(\)は整数での割り算を行います。剰余(MOD)は割り算の余りを求
めます。べき乗(ˆ)は指数計算を行います。
関係演算子
「関係演算子」(等号=、以下<=、以上>=、小なり<、大なり>、不等号<>)は、2つの数値や文字列を
比較する場合に使います。結果は、真(-1)か偽(0)となり、IF~THEN~ELSE 文などでプログラム
の流れを変えるのに使えます。
論理演算子
「論理演算子」
(論理否定 NOT、論理積 AND、論理和 OR、排他的論理和 XOR、包含 IMP、同値 EQV)は、
複数の条件を調べたり、ビット操作や論理演算を行うのに使います。論理演算は、ビットごとに計算
した結果を返します。
論理演算も IF~THEN~ELSE 文などでプログラムの流れを変えるのに使えます。
ゼロでの除算
式の実行時にゼロでの除算が行われたときは、Division by zero エラーが発生しますが、結果はシ
ステムが扱うことのできる最大の数とみなし、それを除算の結果として、処理を続行します。
桁あふれ(オーバーフロー)
代入や演算の結果がその変数の型で扱える範囲を超えた場合、桁あふれが発生します。桁あふれが発
生した場合、VeySicK は、Overflow エラーが発生し、型が扱える最大の数を結果としてみなし、処
理を続行します。
VeySicK について
関数
ゼロ個以上の値を使った演算結果を返す仕組みが「関数」です。関数は、式の中で使えます。関数に
渡す値を「引数」と言います。
BASIC や VeySicK では、組み込み関数として、SIN、COS、SQR 関数などの数値関数や CHR$関数や
LEFT$関数などの文字列関数が使えます。
【例 1】 PRINT SQR(16) ⇒ 4
【例 2】 PRINT 1+COS(0) ⇒ 2
また、VeySicK は、ユーザー定義関数として FN で始まる関数を DEF FN 文で定義できます。
文字列の連結
文字列は演算子 + によって連結できます。
【例 1】 PRINT "ABC"+"123" ⇒ ABC123
【例 2】 A$="ABC":B$="123":PRINT A$+B$ ⇒ ABC123
文字列の比較
文字列も数値の比較と同様に、関係演算子で比較できます。文字列の比較は、文字ごとの文字コード
の大小に応じた順になります。
【例】IF "ABC"<"ABD" THEN PRINT "GOOD" ⇒ GOOD
演算の優先順位
演算は次の順位で行われます。
1. カッコで囲まれた式
2. 関数
3. べき乗
4. マイナス符号
5. *、/
6. \
7. MOD
8. +、9. 関係演算子
15
16
10. NOT
11. AND
12. OR
13. XOR
14. IMP
15. EQV
演算の誤差
コンピューターの計算は、紙の上での計算と同じとは限りません。数値の精度のために、
「誤差」が発
生することがあります。
誤差への対策
誤差に対処する方法は、次のとおりです。
• 実数を比較する場合は、等号(=)ではなく、不等号(<、>、<=、>=)を使います。
• FOR~NEXT ループの変数には、整数型変数を使います。
• 結果を整数値として表示する場合は、INT 関数や FIX 関数を使います。
• 結果を画面やプリンターに出力する場合は、PRINT USING コマンドを使います。
• 求められる精度に応じて、単精度型と倍精度型を使い分けます。
VeySicK と実機の BASIC の違い
実機では、BASIC そのものが基本ソフト(OS)として動作していますが、VeySicK は、Windows や
Linux といった基本ソフト上でプログラムとして仮想的に実行されます。そのため、次のような相違
点が発生します。
• ディスクに直接アクセスできない。
• 処理に遅延が発生することがある。
また、実機とはファイルシステムが異なるので、ファイル入出力におけるファイル指定は、使用して
いる基本ソフトにおけるパスファイル名となります。ただし、ファイル指定におけるドライブ番号の
指定は、次のように変換されます(VeySicK 拡張)
。
• Windows の場合、
「1:」
「2:」…は、
「C:\VSK\DRIVE1\」
「C:\VSK\DRIVE2\」…に変換されます。
• Linux の場合、「1:」「2:」…は、「~/.vsk/drive1/」「~/.vsk/drive2/」…に変換されます。
VeySicK について
古い実機 BASIC には、ファイルシステムに「フォルダー」という概念はありませんでした。フォル
ダーとは、階層構造を持ったファイルの入れ物であり、フォルダーの中に別のフォルダーを入れるこ
とができます。VeySicK では、現在のフォルダーの表示や移動に CHDIR コマンドを使うことができ
ます(VeySicK 拡張)。ファイルは、絶対パスと相対パスで指定でき、ドットドット(..)は一つ上
のフォルダーを意味します。Windows の場合は、パスの区切りにバックスラッシュ(\)が指定でき
ますが、Linux と同じようにスラッシュ(/)を指定できます。
N88-BASIC では、KYBD:、SCRN:、LPT1:、CAS1:、COM1:などといったデバイスをファイルとして
開くことができましたが、VeySicK では現在、デバイスをファイルとして開くことはできません。
シーケンシャルファイルの入出力においては、VeySicK は改行コードを自動的に変換します。シーケ
ンシャルファイルの出力においては、改行コードは CRLF になり、入力においては改行コードの違い
を吸収しようとします。
古いハードウェアに依存した処理は、VeySicK では正しく動作しないことがあります。
VeySicK と実機の BASIC は、処理速度が桁違いに違いますので、次のようなキー待ち処理はうまく
いかないことがあります。
...
300 IF INKEY$="" GOTO 300
...
このような場合は、キーを押されるのを待つ前に、キーが離されるのを待つとうまくいくことがあり
ます。
...
295 IF INKEY$<>"" GOTO 295
300 IF INKEY$="" GOTO 300
...
画面モード
テキスト画面とグラフィック画面
文字を直接入力したり表示するのには、テキスト画面がよく使われます。直線や四角形などの図形の
表示にはグラフィック画面が使われます。
VeySicK では、テキスト画面とグラフィック画面は独立しており、表示の際に2つの画面が合成され
て表示されます。テキスト画面はグラフィック画面の前面に表示されます。
実機 PC-8801 の日本語 BASIC では、テキスト画面とグラフィック画面の区別はありませんでした。
17
18
テキスト画面
テキスト画面は、文字からなる画面であり、主に文字直接入力したり、表示するのに使います。コマ
ンドレベルでキーボードから文字を入力すると、テキスト画面に文字が表示されます。テキスト画面
の幅は 80 桁か 40 桁であり、高さは 20 行か 25 行になります。40 桁の場合、文字の横幅は2倍にな
ります。高さが 20 行の場合は、行と行の間にすき間が設けられます。WIDTH コマンドによって桁数
や行数を変更できます。
テキスト画面には、カラーモードと白黒モードがあり、CONSOLE コマンドにより切り替えることがで
きます。テキスト画面がカラーモードの場合、各文字には、色をつけることができます。白黒モード
の場合は、文字の色は白か黒のみになりますが、点滅や反転などの文字属性を各文字につけることが
できます。
カーソル
テキスト画面で、文字を入力できる位置を表す、点滅する四角形のことを「カーソル」と言います。
カーソルの位置は、LOCATE コマンドで変更できます。
ファンクションキー
キーボードの上側にある「F1」
「F2」
「F3」などのキーを「ファンクションキー」と言います。ファン
クションキーは、テキストの入力を助けるためや、押したときに割り込みを行うために使われます。
テキスト画面では、初期状態では下側にファンクションキーの内容が表示されます。8801 では F1~
F5 しか画面に表示されませんが、Shift キーを押すと、F6~F10 の表示に切り替わります。9801 で
は F1~F10 が表示されます。コマンドレベルでは、ファンクションキーを押すと、そのキーに対応す
る内容が入力されます。
ファンクションキーの内容を設定するには、KEY コマンドを使います。ファンクションキーの内容を
表示するには、KEY LIST コマンドを使います。テキスト画面のファンクションキー表示と非表示を
切り替えるには、CONSOLE ,,0 や CONSOLE ,,1 を実行します。
グラフィック画面
グラフィック画面は、小さな画素(ピクセル)の集まりからなる画面であり、主に直線や四角形など
の図形やグラフを表示するのに使います。グラフィック画面には、640×200 モードと 640×400 モー
ドがあり、SCREEN コマンドで切り替えることができます。640×400 モードは「高精細モード」とも
呼ばれ、横 640 ピクセル縦 400 ピクセルの画素で、より細かい画像を表示できます。640×200 モード
は、縦 200 ピクセルをすき間のある2倍の高さに引き伸ばして表示するため、画質が劣ります。初期
状態では 640×200 です。
VeySicK について
グラフィック画面にもカラーモードと白黒モードがあり、SCREEN コマンドで切り替えることができ
ます。カラーモードでは、カラフルな色の図形を描くことができます。白黒モードでは、白か黒の図
形しか描けませんが、複数の白黒画面を合成して表示できます。
座標系
座標と座標系
「座標」とは、空間において特定の位置を表す値であり、
「座標系」とは座標と位置の対応のことです。
「X 座標」は横方向の座標であり、「Y 座標」は縦方向の座標です。特定の座標系があるとき、X 座標
と Y 座標を組み合わせると、平面上の点の位置を表すことができます。通常は、この位置と座標を
(X,Y) のような記号で表します。VeySicK と BASIC の座標系では、右へ行くほど X 座標が大きくな
り、下へ行くほど Y 座標が大きくなります。
文字座標系
テキスト画面の文字の位置は LOCATE コマンドで「文字座標」を指定することによって指定できま
す。一番左上の文字は、文字座標 (0,0) であり、その一つ右の文字の文字座標は (1,0) です。文字
座標の範囲は、ファンクションキーの表示(CONSOLE ,,1)や、テキスト画面の表示桁数・表示行数
(WIDTH)によって変わります。
ワールド座標系
「ワールド座標系」は、グラフィック画面でのみ有効な座標系であり、実際に表示されるピクセルの位
置ではなく、架空の大きな座標系を扱うために使われます。この座標系の指定により、同じ描画方法
でも、図形を自由自在に拡大・縮小して描画できます。また、ワールド座標には負の座標も指定可能
です。
オリジナルスクリーン座標系
ワールド座標系はもともと架空のものであり、私たちが実際に見ることができる画面は、「オリジナ
ルスクリーン座標」です。640×400 モードの場合、オリジナルスクリーン座標は (0,0)~(639,399)
の範囲となり、640×200 モードの場合、オリジナルスクリーン座標は (0,0)~(639,199) の範囲と
なります。(0,0) が一番左上のピクセルとなります。
論理ウィンドウとビューポート
ワールド座標系において図形を描画できる特定の範囲は、「論理ウィンドウ」と呼ばれます。これは
WINDOW コマンドによって変更できます。
19
20
実際に図形が描画されるオリジナルスクリーン座標系の範囲は、「ビューポート」(または「物理ウィ
ンドウ」)と呼ばれます。これは VIEW コマンドによって変更できます。「スクリーン座標系」とは、
ビューポートの一番左上を (0,0) とする座標系です。
ワールド座標系で描画される図形は、論理ウィンドウで切り抜かれ、切り抜かれた図形のイメージが
ビューポートに写るように拡大・縮小されて描画されます。通常、ビューポートの外側には描画され
ません。
図5
【図】 座標系のイメージ
WINDOW コマンドや VIEW コマンドを使っていない初期状態では、ワールド座標系とスクリーン座標
系とオリジナルスクリーン座標系は一致します。
座標の指定方法について
どんな座標を指定するかは、コマンドによって異なります。
文字座標は、LOCATE コマンドで指定します。
ワールド座標は、WINDOW、PSET、PRESET、LINE、CIRCLE、PAINT などで指定します。
スクリーン座標は、GET@、PUT@、CMD TURTLE などで指定します。
コマンドによっては、STEP の指定により、相対座標を指定できます。
21
VeySicK について
LP とは?
VeySick および BASIC は、最後にグラフィック操作を行った座標を覚えています。その座標を LP
(last referenced point) と言います。コマンドによっては、LP を基準にした相対座標で描画を指示で
きるものがあります。
色
テキスト画面の色
テキスト画面の文字の色は、次のノーマルカラーコードによって指定します。
0
1
2
3
4
5
6
7
黒
青
赤
紫
緑
水色
黄色
白
設定方法は、COLOR、CONSOLE コマンドを参照して下さい。
グラフィック画面の色
グラフィック画面の色指定は、0~7 のパレット番号によって行います。実際の色を表すのはカラー
コードです。COLOR=コマンドにより、1つのパレット番号に対して、1つのカラーコードを設定でき
ます。初期状態では、パレット番号とカラーコードは同じで、テキスト画面のノーマルカラーコード
と同じです。
拡張命令の CMD PAL コマンドを使うと、0~7 の各パレット番号に対して&O000~&O777 の値の「ア
ナログカラーコード」を指定できます(8801 のみ)
。ただし、拡張命令を使えるようにするには、NEW
CMD を実行する必要があります(VSK モードを除く)。
COLOR ,,,,1 により、
「スーパー 8 色モード」にすることができます (9801 のみ)。スーパー 8 色モー
ドでは、0~7 の各パレット番号に、&H000~&HFFF の値のスーパーカラーコードを1つ指定できます。
COLOR ,,,,2 により、「スーパー 16 色モード」にすることができます (9801 のみ)。スーパー 16 色
モードでは、0~15 の各パレット番号に、&H000~&HFFF の値のスーパーカラーコードを1つ指定で
きます。
詳しくは、COLOR、COLOR=、CMD PAL を参照して下さい。
22
命令リファレンス
命令リファレンスの読み方
この章では、VeySicK で利用できる関数やコマンドの使い方や文法を記載しています。
• アルファベットの大文字で書かれた項目は、半角文字のアルファベットとして入力します。入
力する場合は、小文字でも大文字でもかまいません。VeySicK および BASIC は小文字のアル
ファベットを自動的に大文字に変換します。
• [ ] で囲まれた部分は省略できます。ただし、[ ] で囲まれていてもそれより右側の引数を指
定する場合は、カンマ(,)は省略できません。
• 連続した3ドット(...)は 1 回以上の繰り返しを意味します。
•「VeySicK 拡張」と書かれた項目は、VeySicK に該当しますが、実機の BASIC には該当しま
せん。
•「8801 のみ」と書かれた項目は、PC-8801 や 8801 モードに該当しますが、PC-9801 や 9801
モードには該当しません。
•「9801 のみ」と書かれた項目は、PC-9801 や 9801 モードに該当しますが、PC-8801 や 8801
モードには該当しません。
•「PC-8801 のみ」と書かれた項目は、実機 PC-8801 のみに該当します。
•「PC-9801 のみ」と書かれた項目は、実機 PC-9801 のみに該当します。
•「VeySicK のみ」と書かれた項目は、VeySicK のみに該当します。
ABS 関数
【機能】 絶対値を取得します。
【書式】 ABS( 数式 )
【文例】 PRINT ABS(-1.2) ⇒ 1.2
【説明】 数式 に指定した値の絶対値を取得します。
【参照】 サンプルプログラム「samples/ABS.BAS」
命令リファレンス
AKCNV$関数
【機能】半角文字を、対応する全角文字に変換します。
【書式】 AKCNV$( 文字列 )
【文例】PRINT AKCNV$("アイウエオ日本語 ABC") ⇒ アイウエオ日本語ABC
【説明】 文字列中の半角文字を全角文字に変換します。全角文字については変換を行いません。
【参照】KACNV$、サンプルプログラム「samples/AKCNV_.BAS」
ASC 関数
【機能】 文字コードを取得します。
【書式】 ASC( 文字列 )
【文例】 PRINT ASC("A") ⇒ 65
【説明】 文字列の最初の文字の文字コードを返します。最初の文字が全角文字であれば、その文字コー
ドを返します。GRPH モードでは全角文字は表示できませんが、SJIS モードと同じ動作を行います。
【注意】 文字列に空文字列("")を指定した場合は、Illegal function call エラーが発生します。
【参照】CHR$、JIS$、サンプルプログラム「samples/ASC.BAS」
ATN 関数
【機能】 アークタンジェント(逆正接)を計算します。
【書式】 ATN( 数式 )
【文例】 PRINT ATN(1/2) ⇒ 0.4636476090008061
【説明】 数式のアークタンジェント(逆正接)を計算します。返される値の単位はラジアンで、値の
範囲は-π/ 2 からπ/ 2 までです。
【参照】TAN、サンプルプログラム「samples/ATN.BAS」
23
24
ATTR$関数
【機能】 ファイルまたはドライブの属性を返します。
【書式 1】 ATTR$( ドライブ番号 )
【書式 2】 ATTR$(# ファイル番号 )
【書式 3】 ATTR$( ファイル名 )
【説明】指定したファイルやドライブの属性を返します。返されるのは、3 文字の文字列で次の通り
です。
• "___" ……… 属性なしで、読み込みおよび書き込みが可能です。
• "R__" ……… 書き込んだ後に比較チェック(リードアフターライト)を行います。
• "_E_" ……… ファイルが暗号化されています。
• "__P" ……… 書き込みが禁止されています。
※ 上記の項目は空白を下線(_)で表しています。
【注意】VeySicK ではドライブ番号を指定できません。基本ソフトのファイルシステムによっては未
対応の属性があります。
【参照】SET、サンプルプログラム「samples/ATTR_.BAS」
AUTO コマンド
【機能】 行番号を自動的に発生させます。
【書式】 AUTO( 行番号 [, 増分])
【説明】AUTO コマンドは、プログラム入力を楽に行うために、行番号の入力を助けるコマンドです。
行番号 は、最初に発生させる行番号で、以後、Enter キーの入力ごとに増分だけ増えた行番号が表示
されます。Ctrl+C を入力すると、AUTO モードから抜け出し、BASIC のコマンドレベルに戻りま
す。すでに存在する行番号を発生させた場合は、アスタリスク(*)が追加されて表示されます。何も
入力しないで、Enter キーを入力した場合は、その行はメモリーから消されます。
【参照】EDIT、LIST
命令リファレンス
BEEP コマンド
【機能】 ブザー音を鳴らします。
【書式】 BEEP [ スイッチ]
【説明】スピーカーから音を鳴らします。スイッチに 1 を指定した場合は、音が鳴り続けます。スイッ
チに 0 を指定した場合は、音が止まります。スイッチを省略した場合は、一定時間音が鳴ります。
【参照】CMD SING、CMD PLAY、サンプルプログラム「samples/BEEP.BAS」
BLOAD コマンド (未対応)
【機能】 機械語プログラムをファイルから読み込みます(ロード)
。
【書式】 BLOAD ファイル名 [, ロードアドレス ] [, R]
【文例】 BLOAD "@exst*v2"
【説明】 ファイル名で指定された機械語プログラムを指定されたロードアドレスへ読み込みます。R オ
プションを指定すると、読み込み後に指定したセーブアドレスからプログラムの実行を開始します。
【注意】VeySicK では現在、BLOAD コマンドは利用できません。ただし、ファイル名が"@exst*v1"ま
たは"@exst*v2"の場合は、タートルグラフィック拡張命令を利用可能にします。また、ファイル名
が"@exst"の場合は CMD 拡張命令も利用可能にします。
【参照】 BSAVE
BSAVE コマンド
【機能】 メモリー領域を機械語プログラムとしてファイルへ書き込みます。
【書式】 BSAVE ファイル名 , セーブアドレス , 長さ
【説明】 メモリー上の領域を機械語プログラムとして指定されたファイル名でセーブします。8801 の
場合は、&H8000~&H83FF の領域を BSAVE することはできません (8801 のみ)。
【参照】 BLOAD
25
26
CALL コマンド (未対応)
【機能】 機械語サブルーチンを呼び出します。
【書式】 CALL 変数名 ([, 引数 [, 引数 ... ]])
【文例】CALL MYPROG(X, Y, Z$) ⇒ 機械語ルーチンを呼び出す
【説明】 メモリー中に用意された機械語サブルーチンに制御を移します。変数名は、機械語サブルー
チンの実行開始アドレスを指定します。変数名には配列変数を指定できません。 引数には、機械語サ
ブルーチンに渡す変数を指定します。定数や式を渡すことはできません。CALL コマンドによって呼び
出されたサブルーチンからは、機械語の RET 命令により、BASIC に戻ることができます。
【注意】 VeySicK では現在、CALL コマンドは利用できません。
【参照】 サンプルプログラム「samples/CALL.BAS」
【参照】 BLOAD
CDBL 関数
【機能】 整数値や単精度実数値を倍精度実数値に変換した値を返します。
【書式】 CDBL( 数式 )
【説明】 数式 の値を倍精度実数値に変換します。
【参照】 サンプルプログラム「samples/CDBL.BAS」
【参照】CINT、CSNG
CHAIN コマンド
【機能】 プログラムを連結し、実行します。
【書式】 CHAIN [MERGE] ファイル記述子 [, 行番号 ] [, ALL] [, DELETE 範囲 ]
【説明】 ファイル記述子で指定されたプログラムファイルを読み込み、実行します。 行番号は実行開
始行を指定します。 行番号が省略された場合は、プログラムの最初から実行します。 ALL が指定さ
れたら、すべての変数を引き渡します。 MERGE オプションを指定すると、プログラムをメモリー上
で結合し、結合結果のプログラムを指定された行番号から実行します。指定されたプログラムはアス
キーセーブしたものでなければなりません。同一の行番号があった場合は、その行は上書きされます。
命令リファレンス
DELETE オプションは、MERGE オプションが指定された場合のみ有効であり、結合する前に DELETE
で指定された 範囲を削除します。行番号の代わりにラベル名を使用できます。
【参照】 サンプルプログラム「samples/CHAIN.BAS」
【参照】MERGE、SAVE
CHDIR コマンド (VeySicK 拡張)
【機能】 現在のフォルダー(ディレクトリー)を表示または移動します。
【書式 1】 CHDIR パス文字列
【書式 2】 CHDIR
【文例】 CHDIR "../samples"
【説明】パス文字列を指定しない場合は、現在のフォルダーのパスが表示されます。パス文字列を指
定した場合、それが表すフォルダーへ移動します。パス文字列には、絶対パスか相対パスを指定でき
ます。ドットドット(..)は一つ上のフォルダーを意味します。パスの区切りは、Windows の場合、
バックスラッシュ(\)とスラッシュ(/)の両方が使え、Linux の場合はスラッシュ(/)のみが使え
ます。
【注意】CHDIR コマンドは VeySicK 拡張です。古い実機 BASIC では利用できません。
【参照】OPEN、LOAD、SAVE、BLOAD、BSAVE、FILES、LFILES、サンプルプログラム「samples/CHDIR.BAS」
CHR$関数
【機能】 文字コードに対応する文字を返す。
【書式】 CHR$( 数式 )
【文例】 PRINT CHR$(65) ⇒ A
【説明】 数式の値を文字コードとして、対応する 1 文字の文字列を返します。JIS コードやシフト JIS
コード、利用者定義文字(外字)コードも指定できます (VeySicK 拡張)。文字コードが範囲外の場合
は、Illegal function call エラーが発生します。
【参照】ASC、KNJ$、サンプルプログラム「samples/CHR_.BAS」
27
28
CINT 関数
【機能】 単精度実数値や倍精度実数値を整数値に変換します。
【書式】 CINT( 数式 )
【文例】 PRINT CINT(-1.2) ⇒ -1
【説明】 数式の小数部分を切り捨てた値を返します。結果の値が-32768~32767 の範囲にない場合
は、Overflow エラーが発生します。
【参照】CSNG、CDBL、サンプルプログラム「samples/CINT.BAS」
CIRCLE コマンド
【機能】 円(楕円)を描きます。
【書式】 CIRCLE( WX , WY ), 半径 [, パレット番号 ] [, 開始角度 ] [, 終了角度 ] [, 比率 ]
【書式】 CIRCLE STEP( DX , DY ), 半径 [, パレット番号 ] [, 開始角度 ] [, 終了角度] [, 比率
]
【文例】 CIRCLE (100, 100), 50
【説明】 ワールド座標 ( WX , WY ) を中心とし、半径で指定される円を描きます。パレット番号で
指定された色で円を描きます。パレット番号が省略された場合は、COLOR コマンドで指定された前景
色で円を描きます。角度の指定はラジアンで、開始角度と 終了角度 は-2 π~2 πの範囲で指定しま
す。省略時は、0 と 2 πです。範囲を超えた場合は、Illegal function call エラーが発生します。
開始角度、終了角度が負だった場合は、絶対値の値が用いられますが、そのとき、半径が描画される
ので、扇形を描くことができます。比率は、(垂直方向の半径)/(水平方向の半径) で指定します。省略
時は、640×200 モードでは 0.5 であり、640×400 モードでは 1 となります。STEP を指定すると LP
からの相対座標となります。CIRCLE コマンドを実行すると、LP は、円の中心座標へ移動します。
【参照】LINE、サンプルプログラム「samples/CIRCLE.BAS」
CLEAR コマンド
【機能】 変数の初期化およびメモリー領域の設定を行います。
【書式】 CLEAR 文字列領域の大きさ [, メモリーの上限 ] [, スタックの大きさ]
命令リファレンス
【文例】 CLEAR
【説明】すべての変数を初期化します。数値変数は、0 になり、文字列変数は空文字列("")に
なります。文字列領域の大きさは現在では意味はありません。省略できます。VeySicK では現
在、メモリーの上限と スタックの大きさ の指定には意味はありません。CLEAR を実行すると、
DEFINT/DEFSNG/DEFDBL/DEFSTR コマンドで指定した型宣言はすべて無効になります。
【参照】NEW、サンプルプログラム「samples/DEF.BAS」
CLOSE コマンド
【機能】 ファイルを閉じます。
【書式 1】 CLOSE
【書式 2】 CLOSE [#] ファイル番号, [#] ファイル番号 , ...
【文例】 CLOSE #1 ⇒ ファイル番号 1 のファイルを閉じる
【説明】 ファイル番号に対応するファイルを閉じます。ファイル番号を指定しなければ、現在の
VeySicK プログラムで開かれているすべてのファイルを閉じます。ファイル番号は複数指定して一度
に閉じることができます。シャープ(#)は省略可能です。
【注意】R オプション指定のない RUN コマンド、END コマンド、NEW コマンドを実行すると自動的にす
べてのファイルを閉じます。STOP コマンドまたは Ctrl+C で実行を中止した場合は、ファイルを閉じ
る作業を行いませんので注意して下さい。
【参照】OPEN、サンプルプログラム「samples/CLOSE.BAS」
CMD BGM コマンド (CMD 拡張)
【機能】 音楽を並列動作で演奏するかどうかを設定します。
【書式】 CMD BGM スイッチ
【説明】スイッチが 1 の場合、並列動作モードになり、0 で並列動作モードが解除されます。並列動
作モードの場合、CMD PLAY コマンドなどで音楽を演奏しながら、次の命令の実行を続けます。この
モードを解除しているときは、音楽が終わるまで実行を待ちます。NEW CMD を実行したときは、並列
動作モードになっています。
【注意】CMD BGM コマンドは CMD 拡張命令であり、8801 のみで使用できます。CMD BGM を使用する
前に NEW CMD を実行する必要があります (VSK モードを除く)。
【参照】CMD SING、CMD PLAY、サンプルプログラム「samples/CMD_BGM.BAS」
29
30
CMD CLS コマンド (タートル拡張)
【機能】 指定した画面を消去します。
【書式】 CMD CLS [ 機能 ]
【文例】 CMD CLS 2
【説明】機能に応じて、画面を消去します。機能の意味は次の通りです。
• 1 … テキスト画面のみを消去します。
• 2 … 現在表示されているグラフィック画面が消去されます。SCREEN コマンドによってカラー
モードに設定されていれば、COLOR によって指定された背景色で消去します。CLS と違うのは、
ビューポートが無視されることと、LP が移動しないことです。
• 3 … テキスト画面とグラフィック画面を消去します。
• 9~15 … 対応するグラフィックプレーンを消去します。
機能
青 (B)
赤 (R)
緑 (G)
9
○
×
×
10
×
○
×
11
○
○
×
12
×
×
○
13
○
×
○
14
×
○
○
15
○
○
○
※ ○…消去する ×…そのまま
機能を省略した場合は、1 が選択されます。機能に 5~8 を指定した場合、Illegal function call
エラーが発生します。
【注意】CMD CLS コマンドはタートル拡張命令であり、8801 のみで使用できます。CMD BGM を使用す
る前に BLOAD "@exst*v2"か BLOAD "@exst"を実行する必要があります (VSK モードを除く)。
【参照】CLS、サンプルプログラム「samples/CMD_CLS.BAS」
31
命令リファレンス
CMD CUT コマンド (タートル拡張)
【機能】 タートル拡張命令を解放します。
【書式】 CMD CUT
【説明】タートル拡張命令をキャンセルし、占有していたメモリー領域を解放します。このコマンドを
実行すると、CLEAR ,&HE0FF が自動的に実行されます。これによってタートル拡張命令がキャンセ
ルされ、タートル拡張命令が使えなくなりますが、CMD 拡張命令はキャンセルされません。
【参照】BLOAD、CLEAR、CMD UNLINK
CMD OUTM コマンド (CMD 拡張) (未対応)
【機能】 MIDI ポートへ 1 バイトのデータを送ります。
【書式】 CMD OUTM 数式 [, 数式] ...
【説明】 ミュージックインタフェースボードが必要です。
【注意】 VeySicK では現在、CMD OUTM コマンドは利用できません。
【参照】 サンプルプログラム「samples/CMD_OUTM.BAS」
CMD PAL コマンド (CMD 拡張)
【機能】 パレットにアナログカラーコードを割り当てます。
【書式 1】 CMD PAL パレット番号 [, アナログカラーコード ]
【書式 2】 CMD PAL
【文例】CMD PAL 2, &O007 ⇒ パレット番号 2 に明るい青を設定します。
【説明】パレット番号で指定されるパレットにアナログカラーコードで指定される色を設定します。パ
レット番号は、0~7 で指定します。アナログカラーコードは、&O000~&HO777 の整数値で指定しま
す。初期状態のパレットとアナログカラーコードの対応は次の通りです。
パレット番号
色
アナログカラーコード
0
黒
&O000
1
青
&O007
32
パレット番号
色
アナログカラーコード
2
赤
&O070
3
紫
&O077
4
緑
&O700
5
水色
&O707
6
黄色
&O770
7
白
&O777
引数にパレット番号のみ指定した場合は、そのパレットが初期化されます。引数に何も指定しなかっ
た場合は、すべてのパレットを初期化します。
【注意】CMD PAL コマンドは CMD 拡張命令であり、8801 のみで使用できます。CMD PAL を使用する
前に NEW CMD を実行する必要があります (VSK モードを除く)。
【参照】COLOR、サンプルプログラム「samples/CMD_PAL.BAS」
CMD PLAY コマンド (CMD 拡張)
【機能】 音楽を演奏します。
【書式】 CMD PLAY [#音源モード,] [ 文字列 1 ][, 文字列 2 ][, 文字列 3 ][, 文字列 4 ][, 文字
列 5 ][, 文字列 6 ]
【文例】 CMD PLAY "CDE" ⇒ ドレミを演奏
【説明】6 和音まで演奏できます。文字列 1、文字列 2 、文字列 3 はチャンネル 1、2、3 に、文字列 4、
文字列 5 、文字列 6 はチャンネル 4、5、6 に対応します。音源モードは 0~4 の値で指定でき、次の
ような意味があります。
• #0 … 別売のミュージックインタフェースボードの SSG 音源を使います。
• #1 … 別売のミュージックインタフェースボードの MIDI インタフェースを使います。
• #2 … チャンネル 1、2、3 が FM 音源を、チャンネル 4、5、6 が SSG 音源を使用します。
• #3 … OPN を効果音モードに切り替えます。CMD PLAY の Y コマンドによって音を出します。
• #4 … OPN を CSM(サイン波) モードに切り替えます。CMD PLAY の Y コマンドによって音を
出します。
VeySicK では現在、#0 と#2 以外は選択できません。音源モードを省略した場合は、#2 が選択されま
す。各チャンネルの文字列は、MML (Music Macro Language) といい、次のような意味を持ちます。
33
命令リファレンス
文字列
意味
初期値
Mx (SSG 音源のみ)
エンベロープ周期を設定します(1 ≦ x ≦ 65535)
。
M255
Sx (SSG 音源のみ)
エンベロープ形状を設定します(0 ≦ x ≦ 15)。
S1
Vx
音量を設定します(0 ≦ x ≦ 15)
。
V8
Lx
音符や休符の既定値の長さを設定します(1 ≦ x ≦ 64)
。
L4
Qx
音の長さの割合を設定します(1 ≦ x ≦ 8)
。
Q8
Ox
オクターブを設定します(1 ≦ x ≦ 8)
。
O4
>
オクターブを1つ上げます。
<
オクターブを1つ下げます。
Nx
x で指定された高さの音を発生します(0 ≦ x ≦ 96)。
Tx
テンポを設定します(32 ≦ x ≦ 255)
。
T120
Rx
休符を演奏します(1 ≦ x ≦ 64)
。x は休符の長さです。
R4
C~B[+/-][x][.]
音符を演奏します(1 ≦ x ≦ 64)
。x は音符の長さです。
+ (#)
直前の音符を半音上げます。
-
直前の音符を半音下げます。
.
直前の音符に符点をつけます。
&
前後の音をつなげます。
{ ... }x
指定された長さの x 分音符を{ }の中の音符の個数で等分した連符を演奏します。
@x (FM 音源のみ)
音色番号 x で指定された音色に切り替えます。
Yr,d (OPN のみ)
OPN のレジスタ r の内容を d にします。
Zd (MIDI のみ)
MIDI にデータ d を送ります。
@Vx (FM 音源と MIDI のみ)
音量を細かく調整します(0 ≦ x ≦ 127)。
@V106
@Wx
x で指定された長さだけ状態を維持します(1 ≦ x ≦ 64)。
@W4
※音色番号については、【付属資料】の FM 音源の音色一覧をご覧ください。
【注意】CMD PLAY コマンドは CMD 拡張命令であり、8801 のみで使用できます。CMD PLAY を使用
する前に NEW CMD を実行する必要があります (VSK モードを除く)。
【参照】 サンプルプログラム「samples/CMD_PLAY.BAS」
CMD SING コマンド (タートル拡張)
【機能】 音楽を演奏します。
【書式】 CMD SING サブコマンド文字列
@0
34
【文例】 CMD SING "CDE" ⇒ ドレミを演奏
【説明】サブコマンド文字列で指定されたメロディーを演奏します。サブコマンド文字列は、ミュー
ジックサブコマンドを並べた文字列です。ミュージックサブコマンドには、テンポ、オクターブ、長
さ、音符、休符などを指定できます。ミュージックサブコマンドは文字と引数で指定します。引数は数
字か変数名で指定できます。たとえば、テンポを 120 にしたい場合は、次の2通りの方法があります。
CMD SING "T120"
tempo=120:CMD SING "T(tempo)"
ミュージックサブコマンドの文法は次の通りです。
記号
条件
説明
Tn
48 ≦ n ≦ 255
テンポを設定します。1 分間に演奏する4分音符の数を n で指定します。
On
3≦ n≦ 6
オクターブを設定します。
Ln
1 ≦ n ≦ 32
音符・休符の長さの既定値を設定します。全音符の場合は n = 1、四分音符の場
R[n][.]
1 ≦ n ≦ 32
休符を演奏します。n の値で長さを指定します。. は符点を表します。
C~B[+/-][n][.]
1 ≦ n ≦ 32
音符を演奏します。n の値で長さを指定します。. は符点を表します。+/-でシャ
Xn
n = 0,1
テキスト画面の表示を制御します。0 でテキスト画面を消し、1 で表示します。
RPj[...]
1 ≦ j ≦ 255
[ ] の中身を j 回繰り返します。入れ子は 8 レベルまでです。
【注意】CMD SING コマンドはタートル拡張命令であり、8801 のみで使用できます。CMD SING を使
用する前に BLOAD "@exst*v2"か BLOAD "@exst"を実行する必要があります (VSK モードを除く)。
古い機種ではテキスト画面を消さずに演奏すると、聞きづらくなりますので、テキスト画面を X0 か
CMD TEXT OFF で表示を切り替えることをおすすめします。
【参照】CMD PLAY、サンプルプログラム「samples/DEF.BAS」
CMD SOUND コマンド (CMD 拡張) (未対応)
【機能】 PSG のレジスタにデータをセットします。
【書式】 CMD SOUND レジスタ番号 , 数式
【説明】CMD SOUND コマンドを実行するには、付属のミュージックインタフェースボードが必要です。
【注意】VeySicK では現在、CMD SOUND コマンドは利用できません。
【参照】 サンプルプログラム「samples/CMD_SOUND.BAS」
命令リファレンス
CMD STOPM コマンド (CMD 拡張)
【機能】 音の初期設定を行います。
【書式】 CMD STOPM
【説明】 現在出している音を止め、音楽機能の初期化を行います。
【注意】CMD STOPM コマンドは CMD 拡張命令であり、8801 のみで使用できます。CMD STOPM を使
用する前に NEW CMD を実行する必要があります (VSK モードを除く)。
【参照】CMD BGM、CMD PLAY、CMD SING、サンプルプログラム「samples/CMD_STOPM.BAS」
CMD TEXT ON/OFF コマンド (タートル拡張)
【機能】テキスト画面の表示・非表示を切り替えます。
【書式 1】 CMD TEXT ON
【書式 2】 CMD TEXT OFF
【説明】テキスト画面の表示・非表示を切り替えます。CMD TEXT ON でテキスト画面を表示し、CMD
TEXT OFF でテキスト画面を一時的に非表示にします。プログラムの終了時・停止時には自動的にテ
キスト画面が表示されます。
【注意】CMD TEXT コマンドはタートル拡張命令であり、8801 のみで使用できます。CMD TEXT を使用
する前に BLOAD "@exst*v2"か BLOAD "@exst"を実行する必要があります (VSK モードを除く)。
【参照】 サンプルプログラム「samples/CMD_TEXT.BAS」
CMD TURTLE コマンド (タートル拡張)
【機能】 タートルで図形を描きます。
【書式】 CMD TURTLE サブコマンド文字列
【文例】 CMD TURTLE "STFD50" ⇒ タートルを表示して 50 前進
【説明】画面上を動くタートル(亀)を使って描画します。タートルは位置と向きと色などの情報を持
ちます。サブコマンド文字列は、グラフィックサブコマンドを並べた文字列です。グラフィックサブ
35
36
コマンドは、文字と引数で指定します。引数は数字か変数名で指定できます。たとえば、タートルを
100 進める場合、次の2通りの指定方法があります。
CMD TURTLE "FD100"
dist=100:CMD TURTLE "FD(dist)"
タートルの位置は、LP になります。
サブコマンド
条件
機能
FDn
-32768 ≦ n ≦ 32767
タートルを n 進めます。タートルの向きは変化しません。
BKn
-32768 ≦ n ≦ 32767
タートルを n 後退します。タートルの向きは変化しません。
MVx,y
-32768 ≦ x,y ≦ 32767
タートルを (x,y) へ移動します。タートルの向きは変化しません。
SXx
-32768 ≦ x ≦ 32767
タートルの X 座標を設定します。タートルの向きは変化しません。
SYy
-32768 ≦ y ≦ 32767
タートルの Y 座標を設定します。タートルの向きは変化しません。
HDn
-32768 ≦ n ≦ 32767
タートルの向きを角度で設定します。真上の向きが 0 度です。正の値で時計
LTn
-32768 ≦ n ≦ 32767
タートルの向きを n 度左に向けます。
RTn
-32768 ≦ n ≦ 32767
タートルの向きを n 度右に向けます。
CPn
n = 0,1
640×200 モードで x 方向の補正をします。0 で補正しない、1 で補正します
PD
なし
ペンを下げます。次に PU が実行されるまで軌跡を残します。
PU
なし
ペンを上げます。次に PD が実行されるまで軌跡を残しません。
PCn
0≦ n≦ 7
ペンの色を設定します。n はパレット番号です。
HT
なし
タートルを消します。
ST
なし
タートルを表示します。
RPj[...]
1 ≦ j ≦ 255
[ ] の間を j 回繰り返します。入れ子は 8 レベルまでです。
【注意】CMD TEXT コマンドはタートル拡張命令であり、8801 のみで使用できます。CMD TURTLE を使
用する前に BLOAD "@exst*v2"か BLOAD "@exst"を実行する必要があります (VSK モードを除く)。
【参照】 サンプルプログラム「samples/CMD_TURTLE.BAS」
CMD UNLINK コマンド (CMD 拡張)
【機能】 CMD 拡張命令およびタートル拡張命令を解放します。
【書式】 CMD UNLINK
命令リファレンス
【説明】CMD 拡張命令およびタートル拡張命令をキャンセルし、占有しているメモリー領域を解放
します。この文を実行すると、CLEAR ,&HE5FF が自動的に行われます。CMD UNLINK を実行すると、
CMD 命令は利用できなくなります。
【参照】NEW CMD、CLEAR、CMD CUT
CMD VOICE コマンド (CMD 拡張)
【機能】 音色を設定します。
【書式】 CMD VOICE 整数配列名 1 [, 整数配列名 2 ] [, 整数配列名 3 ]
【文例】 CMD VOICE V% ⇒ 配列変数 V% で音色を設定
【説明】指定された配列変数の値を音色設定引数として FM 音源に渡し、音色を設定します。整数配
列名 1、整数配列名 2 、整数配列名 3 は、それぞれチャンネル 1~3 に対応します。
【注意】CMD VOICE コマンドは CMD 拡張命令であり、8801 のみで使用できます。CMD VOICE を使
用する前に NEW CMD を実行する必要があります (VSK モードを除く)。
【参照】CMD VOICE COPY、CMD VOICE REG、サンプルプログラム「samples/CMD_VOICE.BAS」
CMD VOICE COPY コマンド (CMD 拡張)
【機能】 音色データを配列変数にコピーします。
【書式】 CMD VOICE COPY 音色番号 , 整数配列名
【説明】音色番号で指定された音色のデータを整数配列名で指定された変数にコピーします。
【注意】CMD VOICE COPY コマンドは CMD 拡張命令であり、8801 のみで使用できます。CMD VOICE
COPY を使用する前に NEW CMD を実行する必要があります (VSK モードを除く)。
【参照】CMD VOICE、CMD VOICE REG、サンプルプログラム「samples/CMD_VOICE_COPY.BAS」
CMD VOICE LFO コマンド (CMD 拡張)
【機能】 各チャンネルの LFO 効果を設定します。
【書式】 CMD VOICE LFO チャンネル番号 [, WF ] [, SYNC スイッチ] [, スピード ] [, PMD ]
37
38
[, AMD ] [, PMS ]
【説明】指定したチャンネルの音に、ビブラート(音程を細かく変化させること)やトレモロ(音量を
細かく変化させること)をつけます。
【注意】VeySicK では現在、CMD VOICE LFO コマンドは利用できません。
【参照】 サンプルプログラム「samples/CMD_VOICE_LFO.BAS」
CMD VOICE REG コマンド (CMD 拡張)
【機能】 シンセサイザー(OPN)のレジスタに値を設定します。
【書式】 CMD VOICE REG OPN レジスタ番号 , 数式
【説明】指定された OPN のレジスタに、数式によって指定された値を書き込みます。
【注意】VeySicK では現在、CMD VOICE REG コマンドは利用できません。CMD VOICE REG コマンド
は CMD 拡張命令であり、8801 のみで使用できます。CMD VOICE REG を使用する前に NEW CMD を
実行する必要があります (VSK モードを除く)。
【参照】CMD VOICE、CMD VOICE COPY、サンプルプログラム「samples/CMD_VOICE_REG.BAS」
CLS コマンド
【機能】 画面を消去します。
【書式】 CLS [ 機能 ]
【文例】 CLS 2
【説明】 機能は 1、2、3 から選ぶことができます。省略された場合は、1 が選ばれます。
• 1 … テキスト画面のスクロール範囲をクリアします。
• 2 … グラフィック画面のビューポート内をクリアします。
• 3 … テキスト画面とグラフィック画面の両方をクリアします。
グラフィック画面を消去した場合は、LP はビューポートの左上に移動します。
【注意】N88-日本語 BASIC では、テキスト画面とグラフィック画面の区別はありません。
【参照】CMD CLS、サンプルプログラム「samples/CLS.BAS」
39
命令リファレンス
COLOR コマンド
【機能】テキスト画面とグラフィック画面の色の指定をします。
【書式】 COLOR [ 機能コード ] [, 背景色 ] [, 境界色 ] [, 前景色 ] [, パレットモード ]
【文例】 COLOR 2 ⇒ テキスト画面の現在の色を赤色にする
【説明】 機能コードはテキスト画面の表示する文字の色や属性を 0~7 の値で以下の中から指定しま
す。白黒モードの場合(CONSOLE ,,,0)、機能コードは以下の通りです:
• 0 … ノーマル(通常の表示)
• 1 … シークレット(文字を表示しない)
• 2 … ブリンク (点滅する)
• 3 … シークレット(1 と同じ)
• 4 … リバース(反転する)
• 5 … リバースシークレット(反転して文字は表示しない)
• 6 … リバースブリンク(反転して点滅する)
• 7 … リバースブリンクシークレット(5 と同じ)
カラーモードの場合(CONSOLE ,,,1)、機能コードは以下の通りです:
機能コード
0
1
2
3
4
5
6
7
色
黒
青
赤
紫
緑
水色
黄色
白
背景色は、主にグラフィック画面の消去に用いられる背景色をパレット番号で指定します。
境界色 は現在、意味がありません。省略することを推奨します。
前景色は、グラフィック画面に点や線を描くために使われる前景色をパレット番号で指定します。
パレットモードは、9801 のみで有効です。パレットモードには 0、1、2、3 のいずれかを指定できま
す (9801 のみ)。それぞれの意味は次の通りです。
• 0 … ノーマルパレットモードにします。0~7 の 8 個のパレット番号が使え、それぞれに 0~7
のノーマルカラーコードを指定できます。
• 1 … スーパー 8 色モードにします。0~7 の 8 個のパレット番号が使え、それぞれに&H000~
&HFFF のスーパーカラーコードを指定できます。
• 2 … スーパー 16 色モードにします。0~15 の 16 個のパレット番号が使え、それぞれに&H000
~&HFFF のスーパーカラーコードを指定できます。
パレットモードが変更されると、すべてのパレットが初期化されます。COLOR のすべての引数を省略
40
すると、すべてのパレットが初期化されます。
【参照】COLOR=、SCREEN、CMD PAL、サンプルプログラム「samples/COLOR.BAS」
COLOR=コマンド
【機能】 カラーパレットを変更します。
【書式】 COLOR=( パレット番号 , カラーコード )
【説明】グラフィック画面への色の指定には、カラーパレットが用いられます。このコマンドは、カ
ラーパレットへ色を割り当てます。パレット番号とは、0~7 の 8 つのカラーパレットにつけられた固
有の番号で、番号にどんな色を割り当てるかは、カラーコードによって指定します。ノーマルカラー
コードの意味は次の通りです。
ノーマルカラーコード
0
1
2
3
4
5
6
7
色
黒
青
赤
紫
緑
水色
黄色
白
スーパー 8 色モードとスーパー 16 色モードの場合、カラーコードにはスーパーカラーコードを指定
します (9801 のみ)。スーパーカラーコードは&H000~&HFFF の整数値になります。スーパーカラー
モードの初期化時のパレット番号とカラーコードの対応は次の通りです。
パレット番号
色
スーパーカラーコード
0
黒
&H000
1
青
&H00F
2
赤
&H0F0
3
紫
&H0FF
4
緑
&HF00
5
水色
&HF0F
6
黄色
&HFF0
7
白
&HFFF
8
灰色
&H777
9
少し暗い青
&H00A
10
少し暗い赤
&H0A0
11
少し暗い紫
&H0AA
12
少し暗い緑
&HA00
13
少し暗い水色
&HA0A
41
命令リファレンス
パレット番号
色
スーパーカラーコード
14
少し暗い黄色
&HAA0
15
少し暗い白色
&HAAA
カラーパレットを変更すると、グラフィック画面の指定したパレット番号の色が一度に変化します。
【注意】COLOR=は、テキスト画面の色には影響しません。
【参照】COLOR、CMD PAL、サンプルプログラム「samples/COLOR_EQUAL.BAS」
COLOR@コマンド
【機能】テキスト画面に書かれた文字の色や属性を変化させます。
【書式】 COLOR@ ( X1 , Y1 )-( X2 , Y2 ) [, 機能コード]
【文例】 COLOR@(3,3)-(10,7),2
【説明】テキスト画面の文字座標の2点 ( X1 , Y1 ), ( X2 , Y2 ) を対角とする長方形領域に含まれ
る文字の色や属性を変化させます。機能コード の指定方法については COLOR コマンドを参照して下
さい。機能コードが省略された場合は 7 が使われます。COLOR@で指定した範囲内に白黒モードで描か
れたグラフィックスがある場合、グラフィックスの色も COLOR@で指定した色に変わります (PC-9801
のみ)。
【参照】COLOR、CONSOLE、サンプルプログラム「samples/COLORAT.BAS」
COMMON コマンド
【機能】CHAIN コマンドが実行されたときに渡す変数を設定します。
【書式】 CHAIN 変数名 [, 変数名] ...
【説明】COMMON コマンドは、CHAIN コマンドと一緒に使います。COMMON コマンドは、CHAIN コマン
ドが実行されたときに渡す変数を決めます。プログラム中のすべての変数を渡す場合は、CHAIN コマ
ンドの ALL オプションを使う方が便利です。
【参照】CHAIN、サンプルプログラム「samples/COMMON.BAS」
42
COM ON/OFF/STOP コマンド (未対応)
【機能】 RS-232C 通信回線による割り込みを許可・禁止・停止します。
【書式 1】 COM ON
【書式 2】 COM OFF
【書式 3】 COM STOP
【書式 4】 COM 回線番号 ON
【書式 5】 COM 回線番号 OFF
【書式 6】 COM 回線番号 STOP
【文例】 COM2 ON ⇒ 回線番号 2 の割り込みを許可
【説明】指定された通信ポート(RS-232C)に外部からの通信が入ったことによる割り込みを許可(ON)
するか、禁止(OFF)するか、停止(STOP)するかを設定します。回線番号が省略された場合は第 1
回線(1)が使われます。停止中に通信が入った場合は、次に許可あるいは禁止されるまでその出来事
を覚えておき、許可されたときに割り込みが発生します。
【注意】 VeySicK では現在、RS-232C 通信は利用できません。
【参照】ON COM GOSUB、サンプルプログラム「samples/ON_COM.BAS」
CONSOLE コマンド
【機能】テキスト画面の設定を行います。
【書式】 CONSOLE [ スクロール開始行] [, スクロール行数 ] [, ファンクションキー表示スイッチ
] [, カラー/白黒スイッチ ]
【説明】テキスト画面のさまざまな設定を行います。スクロール開始行と スクロール行数 は、スク
ロール範囲を設定します。CLS と PRINT CHR$(12) は、このスクロール範囲の文字を消去します。
ファンクションキー表示スイッチは、0 か 1 を指定でき、1 を指定すると、画面の下部にファンクショ
ンキーを表示します。カラー/白黒スイッチを 1 にするとカラーモードになり、0 にすると白黒モード
になります。
【参照】COLOR、WIDTH、サンプルプログラム「samples/CONSOLE.BAS」
命令リファレンス
CONT コマンド
【機能】 停止したプログラムの実行を再開します。
【書式】 CONT
【説明】STOP コマンドや Ctrl+C で停止したプログラムを再開します。実行を停止したときに、変数
の値を PRINT コマンドで確認したり、変更した後でプログラムを再開できます。ただし、プログラム
を変更したら、再開できません。
【参照】STOP、サンプルプログラム「samples/CONT.BAS」
COPY コマンド
【機能】 画面に表示されている情報をプリンターに出力します。
【書式】 COPY 機能
【説明】テキスト画面やグラフィック画面に表示されている情報をプリンターに出力します。機能に指
定できる値は次の通りです。* 1…テキスト画面のみを出力します。* 2…グラフィック画面のみを出力
します。* 3…テキスト画面とグラフィック画面の両方を出力します。* 4…グラフィック画面のみを出
力します。640×200 モードの場合は、縦方向を 1/2 に縮小して出力します。* 5…テキスト画面とグラ
フィック画面の両方を出力します。640×200 モードの場合は、縦方向を 1/2 に縮小して出力します。
【注意】VeySicK の場合は、画面イメージをプリンターではなく画像ファイルに出力します (VeySicK
のみ)。
【参照】 サンプルプログラム「samples/COPY.BAS」
COS 関数
【機能】 コサイン(余弦)を計算します。
【書式】 COS( 数式 )
【文例】 PRINT COS(0) ⇒ 1
【説明】 数式 のコサイン(余弦)を計算します。数式の値の単位は、ラジアンです。
【参照】SIN、TAN、サンプルプログラム「samples/COS.BAS」
43
44
CSNG 関数
【機能】 整数値や倍精度実数値を単精度実数値に変換します。
【書式】 CSNG( 数式 )
【文例】 PRINT CSNG(1.1111111111) ⇒ 1.11111
【説明】 数式の値を有効数字 6 桁の単精度実数に変換した値を返します。
【注意】 結果の値が -1.70141E+38~1.70141E+38 の範囲にない場合は、Overflow エラーが発生し
ます。
【参照】CINT、CDBL、サンプルプログラム「samples/CSNG.BAS」
CSRLIN 関数
【機能】 カーソルの垂直位置を返します。
【書式】 CSRLIN
【文例】 PRINT CSRLIN ⇒ 現在のカーソルの垂直位置
【説明】 現在のカーソルの垂直位置を行単位で返します。
【参照】POS、LOCATE、サンプルプログラム「samples/CSRLIN.BAS」
CVI/CVS/CVD 関数
【機能】 バイナリー文字列を数値データに変換した値を返します。
【書式 1】 CVI( 2 文字の文字列 )
【書式 2】 CVS( 4 文字の文字列 )
【書式 3】 CVD( 8 文字の文字列 )
【説明】ファイルから読み込んだデータは文字列になっているため、数値として使いたい場合は、数値
型に変換する必要があります。数値データは、MKI$/MKS$/MKD$関数でそれぞれ、2 文字、4 文字、8
文字のバイナリー文字列に変換できます。それらの文字列をそれぞれ、整数値、単精度実数値、倍精
度実数値に戻すには、CVI/CVS/CVD 関数を使います。
【参照】MKI$/MKS$/MKD$、サンプルプログラム「samples/CVICVSCVD.BAS」
命令リファレンス
DATA コマンド
【機能】READ コマンドで読み込まれるデータを格納します。
【書式】 DATA 定数 [, 定数] ...
【説明】DATA コマンドは、プログラム中にデータを格納します。DATA で格納されたデータは、READ
コマンドで一つずつ順番に読み込むことができます。データは、数値定数か文字列定数です。データ
に空白が含まれる場合は、二重引用符 (") で囲む必要があります。RESTORE コマンドにより、読み込
む位置を行単位で指定できます。
【参照】READ、RESTORE、サンプルプログラム「samples/DATA.BAS」
DATE$関数
【機能】 内部時計の日付を取得または設定します。
【書式 1】 DATE$
【書式 2】 DATE$="01/12/25"
【文例】 PRINT DATE$ ⇒ 内部時計の日付
【説明】DATE$関数は、内部時計の日付を 8 文字の文字列で返します。返される文字列の形式は、年 2
桁/月 2 桁/日 2 桁です。
【注意】VeySicK では、日付の変更はできません。基本ソフトの日付設定を変更して下さい。
【参照】TIME$、サンプルプログラム「samples/DATE_.BAS」
DEF FN コマンド
【機能】 利用者関数を新しく定義します。
【書式】 DEF FN 名前 [ 引数リスト]= 関数の定義式
【文例】 DEF FNKYORI(X,Y)=SQR(X*X+Y*Y)
【説明】DEF FN コマンドは、引数リストと計算式をもとに新しく利用者関数を定義します。利用者関
数の名前には最初に FN がつきます。引数リストは、0 個以上の変数の名前をカンマ (,) で区切ったも
ので、省略可能です。定義された利用者関数は、その後の式の中で関数として呼び出すことができま
す。
【参照】 サンプルプログラム「samples/DEF_FN.BAS」
45
46
DEFINT/DEFSNG/DEFDBL/DEFSTR コマンド
【機能】 変数の型宣言を行います。
【書式 1】 DEFINT 文字の範囲 [, 文字の範囲 ] ...
【書式 2】 DEFSNG 文字の範囲 [, 文字の範囲 ] ...
【書式 3】 DEFDBL 文字の範囲 [, 文字の範囲 ] ...
【書式 4】 DEFSTR 文字の範囲 [, 文字の範囲 ] ...
【文例】 DEFINT A-F, K
【説明】 文字の範囲で指定された文字で始まる変数の型を宣言します。
• DEFINT … 変数を整数型に宣言します。
• DEFSNG … 変数を単精度型に宣言します。
• DEFDBL … 変数を倍精度型に宣言します。
• DEFSTR … 変数を文字列型に宣言します。
文字の範囲は、1 文字の英字か、ハイフン (-) でつなげた 2 つの英字で表します。
型宣言文字は、DEF 宣言よりも優先されます。型宣言が行われていない変数は、すべて単精度型とみ
なされます。
【参照】CLEAR、サンプルプログラム「samples/DEF.BAS」
DEF SEG コマンド (未対応)
【機能】 セグメントベースを宣言します。
【書式】 DEF SEG= セグメントベース
【文例】 DEF SEG=&H9E00
【説明】PC-9801 では、BLOAD、BSAVE、PEEK、POKE などの命令でメモリーにアクセスしようとする
場合は、アクセスするメモリー空間を含むセグメントを DEF SEG で指定する必要があります。これら
の命令におけるアドレスの指定では、該当するセグメント内での相対アドレスで指定します。セグメ
ントベースには、セグメントの物理アドレスを 16 で割った値を指定します。各変数が記憶されてい
るデータのセグメントベースとアドレスは、VARPTR 関数で取得できます。
【注意】VeySicK では現在、DEF SEG コマンドは利用できません。DEF と SEG の間には空白を入れな
命令リファレンス
ければなりません。
【参照】 サンプルプログラム「samples/DEF_SEG.BAS」
DEF USR コマンド (未対応)
【機能】 機械語で作られた利用者関数の実行開始アドレスを定義します。
【書式】 DEF USR [ 番号 ]= 開始番号
【説明】USR 関数(利用者関数)が呼び出す機械語プログラムの実行開始アドレスを設定します。番号
は、0~9 の値で、USR+ 番号が関数名となり、後の式で関数として呼び出すことができます。番号 が
省略された場合は、0 とみなされます。
【参照】 サンプルプログラム「samples/DEF_USR.BAS」
DELETE コマンド
【機能】 プログラムを行単位で削除します。
【書式】 DELETE [ 始点行番号 ][- 終点行番号 ]
【説明】 始点行番号 から 終了行番号までのプログラム行を削除します。ハイフン (-) 以降を省略する
と、始点行番号のみが削除されます。ハイフン (-) と終点行番号のみを指定すると、プログラムの先
頭から終点行番号までを削除します。現在の行番号をピリオド (.) で指定できます。
【参照】LIST、NEW、サンプルプログラム「samples/DELETE.BAS」
DIM コマンド
【機能】配列変数の要素の大きさを指定します。
【書式】 DIM 変数名 ( 添字の最大値 [, 添字の最大値 ] ...)
【説明】 配列変数を使う前には、必ず DIM で要素の大きさを宣言しなければいけません。DIM コマン
ドは、配列変数の添字の最大値を設定し、同時にその配列の領域をメモリー上に割り当てます。添字
の最大値を超える添字へアクセスがあれば、Subscript out of range エラーが発生します。添字
の最小値は、OPTION BASE コマンドで 0 か 1 に設定できます。すでに宣言された配列があった場合
47
48
は、Duplicate Definition エラーが発生します。ERASE コマンドで配列の宣言を取り消すことが
できます。
【参照】ERASE、サンプルプログラム「samples/DIM.BAS」
DRAW コマンド (9801 のみ)
【機能】 ワールド座標上で図形を描きます。
【書式】 DRAW 文字列式
【説明】DRAW コマンドでは、グラフィックサブコマンドを使って図形を描きます (9801 のみ)。文字列
式内に指定可能なサブコマンドは次のような形式です。
[修飾子] 識別子 [ 引数 1 ] [, 引数 2 ] ...
1. 修飾子には B および N を指定できます。
• B … 識別子で指定されるサブコマンドの描画を行わず、LP のみを更新します。
• N … 識別子で指定されるサブコマンドを実行後、LP を (0,0) にします。
2. 識別子と引数
識別子は、描画機能を表すもので、英字一文字で指定します。引数は数値定数または変数で、以下の
いずれかの形式で指定します。
• 数値定数 [;]
• = 変数 ;
数値定数には指数形式は指定できません。また、16 進表記で指定する場合は、必ずセミコロン(;)を
つけなければなりません。変数を指定する場合は、直前に等号 (=) を、直後にはセミコロン(;)をつ
けなければなりません。グラフィックサブコマンドは次のようなものが指定できます。
• An … n の値に応じて DRAW の座標系を以下のように設定します。n には 0~3 の値を指定でき
ます。
• Cn … DRAW で描画する図形のパレット番号を n の値で指定します。既定値は COLOR の前景色
です。
• Dn … LP から、Y 軸に沿って (n の値)×(スケール値) だけ正の方向に移動した位置まで直線を
描画します。スケール値については Sn をご覧ください。
49
命令リファレンス
図 6 【図】DRAW の座標系
• En … LP から、X 軸に沿って (n の値)×(スケール値) だけ正の方向に、Y 軸に沿って (n の
値)×(スケール値) だけ負の方向に移動した位置まで直線を描画します。スケール値については
Sn をご覧ください。
• Fn … LP から、X 軸に沿って (n の値)×(スケール値) だけ負の方向に、Y 軸に沿って (n の
値)×(スケール値) だけ負の方向に移動した位置まで直線を描画します。スケール値については
Sn をご覧ください。
• Gn … LP から、X 軸に沿って (n の値)×(スケール値) だけ負の方向に、Y 軸に沿って (n の
値)×(スケール値) だけ正の方向に移動した位置まで直線を描画します。スケール値については
Sn をご覧ください。
• Hn … LP から、X 軸に沿って (n の値)×(スケール値) だけ正の方向に、Y 軸に沿って (n の
値)×(スケール値) だけ正の方向に移動した位置まで直線を描画します。スケール値については
Sn をご覧ください。
• Ln … LP から、座標系の X 軸に向かって (n の値)×(スケール値) だけ負の方向に移動した位置
まで直線を描画します。スケール値については Sn をご覧ください。
• Mx,y … LP から、(x, y) まで直線を描画します。
• Pn … LP を含み、n で指定したパレット番号で描かれた領域を色またはタイル文字列で塗りつ
ぶします。n が省略された場合は、Cn コマンドで指定されたパレット番号が使われます。塗り
つぶし方法やタイル文字列の指定方法については Zs を参照して下さい。
• Qm,n … LP から、X 軸に沿って (m の値)×(スケール値) だけ正の方向に、Y 軸に沿って (n の
値)×(スケール値) だけ正の方向に移動した場所までを対角線とする長方形を描画します。ス
ケール値については Sn をご覧ください。
• Rn … LP から、座標系の X 軸に向かって (n の値)×(スケール値) だけ正の方向に移動した位置
まで直線を描画します。スケール値については Sn をご覧ください。
• Sn … 相対座標のスケール値を n により指定します。初期状態ではスケール値は 1 です。
• Tm,n … Qm,n と同じように長方形を描画した後、その内部を塗りつぶします。塗りつぶし方法
やタイル文字列の指定方法については Zs を参照して下さい。
• Un … LP から、座標系の Y 軸に向かって (n の値)×(スケール値) だけ負の方向に移動した位置
まで直線を描画します。スケール値については Sn をご覧ください。
• Wx,y … LP から、(x×(スケール値), y×(スケール値)) まで移動した点まで直線を描画します。
50
• X=s; … 文字列変数 s で指定されたグラフィックサブコマンドに従って描画します。
• Yn … 描画する直線または長方形のラインスタイルを設定します。n は&H0000~&HFFFF の 2 バ
イト整数でなければなりません。初期状態では&HFFFF となっています。
• Zn … 塗りつぶしに使う色を指定します。n は、パレット番号です。
• Z=s; … 塗りつぶしに使うタイル文字列を指定します。s は、タイル文字列を格納した文字列
変数です。タイル文字列については、PAINT をご覧ください。
初期状態では、描画に使われる色は COLOR で指定される前景色となります。描画においては修飾子 N
が指定されなければ LP が変更されます。SCREEN を実行すると、DRAW は初期状態になります。DRAW
の座標系は、ワールド座標系とは違って、独立しています。
【注意】 DRAW コマンドは、9801 のみで使用できます。
【参照】CMD TURTLE、サンプルプログラム「samples/DRAW.BAS」
DSKF 関数 (未対応)
【機能】 ディスクの各種情報を返します。
【書式】 DSKF( ドライブ番号 [, 機能])
【説明】ドライブ番号で指定されたドライブに関する情報を関数の値として返します。
【注意】 VeySicK では DSKF 関数は利用できません。
【参照】 サンプルプログラム「samples/DSKF.BAS」
DSKI$関数 (未対応)
【機能】 ディスクから直接データを読み込みます。
【書式】 DSKI$( ドライブ番号 , サーフェス番号 , トラック番号 , セクタ番号 )
【説明】ドライブ番号で指定されたドライブから直接データを読み込みます。
【注意】 VeySicK では DSKI$関数は利用できません。
【参照】 サンプルプログラム「samples/DSKI_.BAS」
命令リファレンス
DSKO$コマンド (未対応)
【機能】 ディスクに直接データを書き込みます。
【書式】 DSKO$ ドライブ番号 , サーフェス番号 , トラック番号 , セクタ番号
【説明】ドライブ番号で指定されたドライブへ直接データを書き込みます。
【注意】 VeySicK では DSKO$コマンドは利用できません。
【参照】 サンプルプログラム「samples/DSKO_.BAS」
EDIT コマンド
【機能】 編集モードに入り、指定されたプログラム行の編集を助けます。
【書式】 EDIT 行番号
【説明】指定された行を表示し、カーソルをその先頭へ移動して編集モードに入ります。エラー発生時
や STOP を実行した直後に EDIT . を実行すると、エラーの発生した行、または停止中の行が表示さ
れ、直ちに修正作業に入ることができます。編集モードに入ると、ROLLUP/ROLLDOWN キーで編集行
の前後を表示・編集できます。
【参照】 AUTO
END コマンド
【機能】 プログラムを終了します。
【書式】 END
【説明】プログラムの実行を終了し、すべてのファイルを閉じてコマンドレベルに戻ります。END コマ
ンドは、プログラムを終了したい場所のどこでも置くことができます。
【注意】プログラムの最後に END がない場合は、自動的に終了しますが、ファイルは閉じられません。
【参照】STOP、サンプルプログラム「samples/END.BAS」
51
52
EOF 関数
【機能】 ファイルが終端に達したかどうかを値として返します。
【書式】 EOF( ファイル番号 )
【説明】 シーケンシャルファイルにおいて、ファイル番号で指定されたファイルが終わりに達したか
どうかを調べる関数です。ファイルが終端に達した場合は、真 (-1) を、そうでなければ偽 (0) を返し
ます。指定されたファイルが RS-232C 通信(COM:)であった場合は、バッファが空のときに真を返
します。
【参照】OPEN、サンプルプログラム「samples/EOF.BAS」
ERASE コマンド
【機能】 配列変数の宣言を取り消します。
【書式】 ERASE 配列変数名 [, 配列変数名 ] ...
【説明】指定した配列変数の宣言を取り消し、配列変数に割り当てられているメモリー領域を解放しま
す。
【参照】DIM、CLEAR、サンプルプログラム「samples/ERASE.BAS」
ERL/ERR 関数
【機能】エラーが起こったときのエラーの発生した行番号とエラー番号を返します。
【書式 1】 ERL
【書式 2】 ERR
【文例】 PRINT ERL ⇒ エラーの発生した行番号
【説明】エラーが発生した時点で、ERL にはエラーの発生した行番号が格納され、ERR には、エラー
番号が格納されます。エラー番号によってエラーの種類を知ることができます。エラーがダイレクト
モードで発生した場合は、ERL は 65535 を返します。
【参照】ERROR、サンプルプログラム「samples/ERL_ERR.BAS」
、
【付属資料】のエラーメッセージ一覧
命令リファレンス
ERROR コマンド
【機能】 エラーを発生させます。
【書式】 ERROR エラー番号
【文例】 ERROR 5 ⇒ Illegal function call エラー
【説明】エラー番号の値は、1~255 の数値で指定します。指定した番号がエラー番号として使われて
いる場合は、エラー番号に対応するエラーメッセージを表示し、コマンドレベルに戻ります。対応す
るエラーメッセージがなければ、Unprintable error を表示します。ON ERROR GOTO コマンドがあ
る場合は、ERROR が実行されると、エラー処理ルーチンへ分岐されます。このとき、ERR 関数の値は、
指定したエラー番号 となります。
【参照】ERL/ERR、サンプルプログラム「samples/ERROR.BAS」
、
【付属資料】のエラーメッセージ一覧
EXP 関数
【機能】 ネイピア数 (e) を底とする指数関数の値を返します。
【書式】 EXP( 数式 )
【文例】 PRINT EXP(2) ⇒ 7.38905609893065
【説明】 数式の値に対する指数関数の値を返します。ただし、数式の値が 87.33655 より大きい場合は
Overflow エラーが発生します。
【参照】LOG、サンプルプログラム「samples/EXP.BAS」
FIELD コマンド
【機能】 ランダムファイルのバッファに変数領域を割り当てます。
【書式】 FIELD [#] ファイル番号 , フィールド幅 AS 文字列変数 [, フィールド幅 AS 文字列変数 ]
...
【文例】 ‘FIELD #1, 12 AS A, 4ASB
【説明】 ファイル番号で指定されたランダムファイルに書き込むデータブロックを定義します。ファ
イル番号はすでに開かれていないといけません。フィールド幅は、文字列変数に割り当てる文字数
(バイト数)です。フィールド幅の合計は、256 バイト未満でなければなりません。FIELD で指定した
53
54
文字列変数は、LSET/RSET コマンドで定義します。この変数に LSET/RSET 以外の方法で値を代入で
きません。FIELD で指定した変数は、FIELD を実行した時点でフィールド幅で指定した文字数のヌル
文字(文字コード 0 の文字)の文字列がセットされます。
【参照】OPEN、LSET/RSET、PUT、サンプルプログラム「samples/FIELD.BAS」
FILES コマンド
【機能】ファイルの一覧をテキスト画面に出力します。
【書式 1】 FILES [ ドライブ番号 ]
【書式 2】 FILES 文字列 (VeySicK 拡張)
【説明】ドライブ番号で指定されたドライブに登録されているファイルの一覧をテキスト画面に出力
します。引数を省略した場合は、現在のフォルダーのファイルが出力します。文字列が指定されたと
きは、そのワイルドカードのパターンにマッチするファイルを出力します(VeySicK 拡張)
。
【参照】SAVE、LOAD
FIX 関数
【機能】 数値の整数部の値を返します。
【書式】 FIX( 数式 )
【文例】 PRINT FIX(-3.2) ⇒ -3
【説明】 数式の絶対値の小数点以下を切り捨て、数式の符号を付けた値を返します。
【参照】INT、サンプルプログラム「samples/FIX.BAS」
FOR~TO~STEP~NEXT コマンド
【機能】 一連の命令を指定回数だけ繰り返して実行します。
【書式】 FOR 変数 = 初期値 TO 終値 [STEP 増分 ] : ~: NEXT [ 変数 , ...]
【文例】FOR I=1 TO 10:PRINT I:NEXT I ⇒ 1 から 10 まで表示
【説明】FOR コマンドと NEXT コマンドの間にはさまれた命令を次のように繰り返し実行します。
命令リファレンス
1. 最初の FOR で、変数に初期値が代入されます。
2. FOR~NEXT の間の命令を実行します。
3. 変数を増分だけ増やします。
4. 変数 が 終値 を超えるまで、2.~3. を繰り返します。
増分は負でもかまいません。増分が正の場合、変数は増加し、負の場合は減少します。
次の場合は、FOR~NEXT ループの内部は実行されません。
• 増分が正で初期値が 終値より大きい場合。
• 増分が負で初期値が 終値より小さい場合。
• 初期値と終値が同じ値で増分が 0 の場合。
FOR~NEXT は「入れ子」にすることができます。これは、FOR~NEXT の中に別の FOR~NEXT を入れ
ることができるということです。FOR と NEXT は1対1に対応していなければなりません。NEXT の変
数は、省略したり、複数指定することが可能です。
「STEP 増分」は省略可能です。
【参照】WHILE~WEND、サンプルプログラム「samples/FOR_NEXT.BAS」
FPOS 関数 (未対応)
【機能】 指定されたファイルの物理的な現在位置を返します。
【書式】 FPOS( ファイル番号 )
【説明】ファイル番号によって指定されたファイルが最後に読み書きした位置を返します。ファイルが
ディスクファイルの場合は、最後に読み書きしたセクタの番号を返します。この番号は、トラック 0、
サーフェス 0、セクタ 1 を 0 とした通し番号になります。指定されたファイルがプリンターの場合、
LPOS と同じようにプリンターのヘッダ位置を返します。
【注意】VeySicK ではディスクファイルに対する FPOS は現在、利用できません。
【参照】OPEN、PUT、サンプルプログラム「samples/GET.BAS」
FRE 関数
【機能】 メモリーの未使用領域の大きさを返します。
【書式】 FRE( 機能 )
55
56
【文例】 PRINT FRE(0) ⇒ 未使用変数領域のバイト数
【説明】 機能は、0、1、2 のいずれかの値をとり、それぞれ次のような意味です。
• 0 … 未使用変数領域のバイト数。
• 1 … 未使用テキスト領域のバイト数。プログラムテキストを格納する領域です。
• 2 … 未使用変数領域と未使用テキスト領域を合わせたバイト数。
• 3 … 配列データセグメントの未使用領域のバイト数 (9801 のみ)。
機能が 0 または 2 の場合、ガーベジコレクションが実行されますので、処理が終わるのに時間がかか
ることがあります (VeySicK を除く)。
【参照】CLEAR、サンプルプログラム「samples/FRE.BAS」
GET コマンド
【機能】 ファイル中のデータをバッファに読み込む。
【書式】 GET [#] ファイル番号 [, 数 ]
【文例】 GET #1, 64 ⇒ 64 バイトを読み込みます
【説明】ファイル番号で指定されたファイル中のデータを、対応するバッファの中に読み込みます。数
は、バッファに読み込むバイト数を意味します。0~255 の値を指定できます。数が省略された場合
や、0 が指定された場合は、256 バイト読み込みます。GET コマンドで読み込んだデータを参照する
には、あらかじめ FIELD コマンドで変数を割り当てておく必要があります。
【参照】OPEN、PUT、サンプルプログラム「samples/GET.BAS」
GET@コマンド
【機能】グラフィック画面のイメージを配列変数に読み込みます。
【書式 1】 GET@( SX1 , SY1 )-( SX2 , SY2 ), 配列変数名 [( 添字 )]
【書式 2】 GET@( SX1 , SY1 )-STEP( DX , DY ), 配列変数名 [( 添字 )]
【説明】 スクリーン座標の2点 (SX1, SY1),(SX2, SY2) を対角とする長方形領域を配列変数名で指定
された配列変数に読み込みます。配列に先頭に読み込まない場合は、添字を指定できます。GET@を実
行する前に、DIM コマンドで配列変数を宣言する必要があります。配列変数の大きさは、読み込む領
命令リファレンス
域の大きさ、画面モード、配列変数の型により異なります。配列の大きさは、次の計算式で求めるこ
とができます。
• (必要なバイト数) = (((横のピクセル数)+7)\8)*(縦のピクセル数)*M+4‘
※ 白黒モードの場合は M=1、カラーモードの場合は M=3
• (配列の添字の最大値) = (必要なバイト数)\N+1
※ 整数型配列の場合 N=2、単精度型配列の場合 N=4、倍精度型配列の場合 N=8
GET@を実行した結果は PUT@コマンドで活用できます。GET@実行後は、LP は (SX2, SY2) に移動し
ます。STEP が指定された場合は、相対座標となります。
【参照】PUT@、サンプルプログラム「samples/GETAT.BAS」
GOSUB コマンド
【機能】 サブルーチンの呼び出しを行います。
【書式】 GOSUB 行番号
【文例】GOSUB 1000 ⇒ 1000 行から始まるサブルーチンを呼び出す
【説明】GOSUB は、行番号から始まるサブルーチンを呼び出し、サブルーチン内の RETURN コマンドに
よりサブルーチンから戻ります。1 つのサブルーチンから別のサブルーチンを呼び出すことも可能で
す。RETURN は、GOSUB と正しく対応していなければなりません。GO と SUB の間に 1 個の空白を入れ
ることが許されます。
【参照】GOTO、RETURN、サンプルプログラム「samples/GOSUB.BAS」
GOTO コマンド
【機能】 指定された行へ制御を移します。
【書式】 GOTO 行番号
【文例】 GOTO 1000 ⇒ 1000 行へ制御を移す
【説明】 行番号で指定した行へ制御を移します。言い換えると、行番号で指定した行から実行を続け
ます。GO と TO の間に 1 個の空白を入れることが許されます。
【参照】GOSUB、サンプルプログラム「samples/GOTO.BAS」
57
58
HELP ON/OFF/STOP コマンド
【機能】 HELP キーによる割り込みを許可・禁止・停止します。
【書式 1】 HELP ON
【書式 2】 HELP OFF
【書式 3】 HELP STOP
【説明】HELP キーを押したときに発生する割り込みを、許可(ON)するか、禁止(OFF)するか、停止
(STOP)するかを設定します。停止中に HELP が押された場合は、次に許可あるいは禁止されるまで
その出来事を覚えておき、許可されたときに割り込みが発生します。
【参照】ON HELP GOSUB、サンプルプログラム「samples/HELP.BAS」
HEX$関数
【機能】 数値を 16 進数の文字列に変換した値を返します。
【書式】 HEX$( 数式 )
【説明】数式の値を 16 進数に変換して、その文字列を返します。数式の値の範囲は-32768~65535 で
す。数値に小数点が含まれる場合は、小数点以下を四捨五入してから変換します。
【参照】VAL、OCT$、サンプルプログラム「samples/HEX_.BAS」
IF~THEN~ELSE/IF~GOTO~ELSE コマンド
【機能】 論理式の条件判断を行い、次に実行する文を選択します。
【書式 1】 IF 論理式 THEN 文 [ELSE 文 ]
【書式 2】 IF 論理式 THEN 行番号 [ELSE 文 ]
【書式 3】 IF 論理式 GOTO 行番号 [ELSE 文 ]
【書式 4】 IF 論理式 THEN 文 ELSE 行番号
【書式 5】 IF 論理式 THEN 行番号 ELSE 行番号
【書式 6】 IF 論理式 GOTO 行番号 ELSE 行番号
【説明】論理式の条件によってプログラムの実行を制御します。論理式が真 (0 以外) なら、THEN また
命令リファレンス
は GOTO の直後の文 を実行し、偽 (0) ならば ELSE の直後の 文を実行します。文 ではなく行番号が
あれば、その行番号に移動します。ELSE 以降が省略された場合、偽ならば IF の次の行へ制御が移動
します。
【参照】GOTO、サンプルプログラム「samples/IF_THEN_ELSE.BAS」
INKEY$関数
【機能】 キーが押されていればその文字を返します。
【書式】 INKEY$
【文例】 A$=INKEY$
【説明】キーボードバッファが空であれば、空文字列("")を返します。キー入力により空でなければ
バッファの先頭から一文字取り出し、その文字を返します。キー入力された文字は画面に表示されま
せん。
【参照】INP、サンプルプログラム「samples/INKEY_.BAS」
INP 関数 (一部未対応)
【機能】 入力ポートから読み込んだ値を返します。
【書式】 INP( I/O アドレス )
【文例】A=INP(2) ⇒ 02H ポートから入力データを A に代入
【説明】I/O アドレスから 8 ビットのデータを読み込み、その値を返します。I/O アドレスに指定で
きる値は、0~255 です。
【注意】VeySicK の INP で現在利用できるのはキーボード入力だけです (VeySicK のみ)。
【参照】INKEY$、OUT、サンプルプログラム「samples/INKEY_.BAS」
INPUT コマンド
【機能】 キーボードから入力したデータを指定した変数に代入します。
【書式 1】 INPUT "プロンプト文字列 " ; 変数名 [, 変数名 ] ...
59
60
【書式 2】 INPUT "プロンプト文字列 " , 変数名 [, 変数名 ] ...
【文例】 INPUT "DATA=";D$
【説明】INPUT コマンドが実行されると、プログラムは入力待ち状態になります。プロンプト文字列
の後に、セミコロン (;) が続いた場合は、プロンプト文字列の後に疑問符 (?) と1文字の空白を画面
に表示します。カンマ (,) が続いた場合は、プロンプト文字列の後には何も表示しません。データは、
Enter キーを押すことで入力され、変数に代入されます。2 個以上の変数名がカンマ (,) で区切られ
て指定された場合は、カンマで区切った入力を受け付け、対応する変数に代入されます。変数名と入
力されたデータの型や個数が一致しなかった場合は、?Redo from start と表示され、再び入力待ち
になります。Enter キーのみ入力された場合は、0 または空文字列("")が入力されたとみなされま
す。文字列変数に意味のある空白を入力したい場合は二重引用符 (") で文字列を囲んで下さい。
【注意】 値として二重引用符を入力することはできません。
【参照】INPUT WAIT、INPUT#、LINE INPUT、サンプルプログラム「samples/INPUT.BAS」
INPUT#コマンド
【機能】 シーケンシャルファイルからデータを読み込みます。
【書式】 INPUT #ファイル番号 , 変数 [, 変数 ] ...
【文例】INPUT #1, DAT ⇒ #1 からデータを読み込み、変数 DAT に代入
【説明】データをシーケンシャルファイルから読み込むことと、プロンプトが表示されないことを除け
ば、INPUT コマンドと同じです。ファイル番号には、OPEN コマンドで事前に開いたファイルを指定
します。
【参照】INPUT、LINE INPUT#、サンプルプログラム「samples/INPUT_SHARP.BAS」
INPUT$関数
【機能】指定されたファイルより指定された長さの文字列を読み込み、返します。
【書式】 INPUT$( 文字数 [, #ファイル番号 ])
【文例】 I= IN P U T (1)
【説明】ファイル番号によって指定されたファイルから、文字数分の文字列を読み込み、その文字列を
返します。ファイル番号が省略された場合は、キーボードから入力が行われますが、INPUT コマンド
とは異なり、入力された文字は表示されません。INPUT$関数は、指定された文字数の文字列が入力さ
命令リファレンス
れるまで待ちます。INPUT$は、改行文字なども読み込むことができます。
【参照】INPUT、INKEY$、サンプルプログラム「samples/INPUT_.BAS」
INPUT WAIT コマンド
【機能】 キーボードから時間制限のある入力を行います。
【書式 1】 INPUT WAIT 待ち時間, "プロンプト文字列"; 変数名 [, 変数名 ] ...
【書式 2】 INPUT WAIT 待ち時間, "プロンプト文字列", 変数名 [, 変数名 ] ...
【文例】INPUT WAIT 100, "Your name";NA$ ⇒ "Your name? "と表示して入力を 10 秒待つ
【説明】待ち時間で指定された時間だけ、キーボードの入力を待ちます。待ち時間の単位は 0.1 秒で
す。INPUT WAIT コマンドは、時間制限があることを除けば INPUT と同じです。この文の後にマルチ
ステートメントとして文を続けた場合、制限時間内に入力されたとき、次の文から実行しますが、制
限時間内に入力されなかった場合は、次の行から実行を続けます。
【参照】INPUT、LINE INPUT WAIT、サンプルプログラム「samples/INPUT_WAIT.BAS」
INSTR 関数
【機能】文字列から任意の文字列を探し、その文字の位置をバイト数で返します。
【書式】 INSTR([ 数式 , ] 文字列 1 , 文字列 2 )
【説明】 文字列 1 の中から 文字列 2 を探し、見つかればその位置をバイト数で返します。数式には読
み始める位置を指定します。数式が省略された場合は、文字列の先頭から探します。文字列 2 が見つ
からない場合、文字列 1 が空文字列("")の場合、数式が文字列 1 の長さより大きい場合は、0 を返
します。文字列 2 に空文字列("")を指定すると、数式と同じ値を返します。全角文字は 2 バイト分
として計算されます。
【参照】KINSTR、サンプルプログラム「samples/INSTR.BAS」
61
62
INT 関数
【機能】 小数点以下を切り捨てた整数値を返します。
【書式】 INT( 数式 )
【文例】 PRINT INT(-3.14) ⇒ -4
【説明】 数式の値を超えない最大の整数値を返します。
【参照】FIX、サンプルプログラム「samples/INT.BAS」
JIS$関数
【機能】全角文字を文字列 4 桁で表された JIS 漢字コードに変換します。
【書式】 JIS$( 文字列 ‘)
【文例】 PRINT JIS$("漢") ⇒ 3441
【説明】文字列の最初の 2 バイトを 16 進表記の JIS 漢字コードの文字列に変換します。文字列の最初
の文字が半角文字の場合は、最初の 2 バイトの 16 進表記の文字コードが連続して得られます。
【注意】シフト JIS コードの全角文字を変換したい場合は、ASC をお使い下さい。
【参照】ASC、KNJ$、サンプルプログラム「samples/JIS_.BAS」
KANJI コマンド (VeySicK 拡張)
【機能】 文字モードを切り替えます。
【書式 1】 KANJI GRPH
【書式 2】 KANJI SJIS
【説明】GRPH を指定するとテキスト画面で GRPH 文字を表示・入力できる GRPH モードになりま
す。SJIS を指定すると、テキスト画面でシフト JIS の全角文字を表示・入力できる SJIS モードにな
ります。
【注意】KANJI コマンドは VeySicK 拡張です。実機 BASIC では利用できません。プログラムを実行
する前に文字モードを切り替えたい場合、REM コマンドを使うと便利です。
【参照】 サンプルプログラム「samples/KANJI.BAS」
命令リファレンス
KACNV$関数
【機能】文字列中の全角文字を半角文字に変換した文字列を返します。
【書式】 KACNV$( 文字列 )
【説明】文字列に含まれる全角文字を半角文字に変換します。変換できない文字はそのまま返します。
GRPH モードでは全角文字は表示できませんが、SJIS モードと同じ動作を行います。
【参照】AKCNV$、サンプルプログラム「samples/KACNV_.BAS」
KEXT$関数 (9801 のみ)
【機能】文字列から半角文字だけ、あるいは全角文字だけを取り出します。
【書式】 KEXT$( 文字列 , 機能)
【文例】 PRINT KEXT$("漢字 ABC123",1) ⇒ 漢字
【説明】機能に指定する値によって、特定の種類の文字だけを抽出します。
• 0 … 半角文字だけ抽出します。
• 1 … 全角文字だけ抽出します。KI/KO コードは抽出されません。
指定された種類の文字がない場合は、空文字列("")を返します。GRPH モードでは全角文字は表示
できませんが、SJIS モードと同じ動作を行います。
【参照】 サンプルプログラム「samples/KEXT_.BAS」
KEY コマンド
【機能】 ファンクションキーの内容を設定します。
【書式】 KEY キー番号 , 文字列
【文例】 KEY 1, "width 80"+CHR$(13)
【説明】ファンクションキーの内容を定義します。各ファンクションキーには最大 15 文字までの文字
列(制御文字を含む)を設定できます。VeySicK では文字数に制限はありません (VeySicK 拡張)。
キーボードから直接入力できない文字は、CHR$関数を使って入力して下さい。キー番号は 1~10 の
63
64
ファンクションキーの番号です。
【参照】KEY LIST、サンプルプログラム「samples/KEY.BAS」
KEY LIST コマンド
【機能】 ファンクションキーの内容を表示します。
【書式】 KEY LIST
【説明】現在、ファンクションキーに定義されている内容を画面に表示します。制御文字もそのまま表
示されます。
【参照】 KEY
KEY ON/OFF/STOP コマンド
【機能】 ファンクションキーによる割り込みを許可・禁止・停止します。
【書式 1】 KEY[(キー番号)] ON
【書式 2】 KEY[(キー番号)] OFF
【書式 3】 KEY[(キー番号)] STOP
【説明】ファンクションキーを押したときに発生する割り込みを許可(ON)するか、禁止(OFF)する
か、停止(STOP)するかを設定します。キー番号は、1~10 のファンクションキーの番号です。これ
が省略された場合はすべてのファンクションキーに対して設定します。停止中に割り込み対象のファ
ンクションキーが押された場合は、次に許可あるいは禁止されるまでその出来事を覚えておき、許可
されたときに割り込みが発生します。
【参照】ON KEY GOSUB、サンプルプログラム「samples/ON_KEY.BAS」
KILL コマンド
【機能】 ファイルを削除します。
【書式】 KILL ファイル記述子
【文例】KILL "2:demo.bas" ⇒ ドライブ 2 のファイル「demo.bas」を削除
命令リファレンス
【説明】 ファイル記述子で指定されたファイルを削除します。
【参照】NAME、サンプルプログラム「samples/KILL.BAS」
KINPUT コマンド (9801 のみ)
【機能】キーボードから入力された日本語文字列を、文字列変数に代入します。
【書式】 KINSTR 変数名
【文例】 KINSTR K$
【説明】変数名には、文字列変数の名前を指定します。KINPUT が実行されると、自動的に日本語入力
モードになります。同時に SJIS モードになります (VeySicK のみ)。
【注意】KINSTR では、INPUT とは違って1つの文字列変数しか指定できません。VeySicK では現在、
[全角文字]#(zenkaku) はシフト JIS になります。
【参照】INPUT、LINE INPUT、サンプルプログラム「samples/KINPUT.BAS」
KINSTR 関数 (9801 のみ)
【機能】全角文字を含む文字列の中から指定文字列を探し、その位置を返します。
【書式】 KINSTR([ 開始位置 ,] 文字列 1 , 文字列 2 )
【文例】 PRINT KINSTR("国語算数理科社会", "社会") ⇒ 7
【説明】文字列 1 の中から文字列 2 を探し出し、見つかればその位置を、見つからなければ 0 を返し
ます。開始位置が指定されれば、開始位置番目の文字から探し始めます。開始位置が省略された場合
は、1 とみなされ、最初から探し始めます。位置は、バイト数ではなく文字数です。文字列 2 に空文
字列("")を指定すると、KINSTR の値は開始位置と同じになります。GRPH モードでは全角文字
は表示できませんが、SJIS モードと同じ動作を行います。
【注意】VeySicK では現在、[全角文字]#(zenkaku) はシフト JIS になります。
【参照】INSTR、サンプルプログラム「samples/KLEN.BAS」
65
66
KLEN 関数
【機能】 文字列に含まれる文字数を返します。
【書式】 KLEN( 文字列 )
【文例】 PRINT KLEN("CAT電気") ⇒ 6
【説明】文字列に含まれる文字数(バイト数ではない)を返します。空文字列("")の場合は 0 を返し
ます。GRPH モードでは全角文字は表示できませんが、SJIS モードと同じ動作を行います。
【注意】VeySicK では現在、[全角文字]#(zenkaku) はシフト JIS になります。
【参照】LEN、サンプルプログラム「samples/KLEN.BAS」
KMID$関数 (9801 のみ)
【機能】[全角文字]#(zenkaku) を含む文字列の中から任意の長さの文字列を抜き出します。
【書式】 KMID$( 文字列 , 式 1 [, 式 2 ])
【文例】 PRINT KMID$("CAT電気", 2, 2) ⇒ AT
【説明】文字列の中の式 1 番目の文字から始まる、式 2 文字の長さの文字列を返します。ここで、式
1、式 2 の単位は、バイト数ではなく文字数であり、全角文字も 1 文字として数えます。文字列の文字
数が式 1 より短い場合、空文字列("")を返します。式 2 を省略した場合や、文字列の式 1 番目の文
字から右の文字数が式 2 より小さい場合は、文字列の式 1 番目の文字から始まる右のすべての文字列
が結果として返されます。
【注意】VeySicK では現在、[全角文字]#(zenkaku) はシフト JIS になります。
【参照】MID$、サンプルプログラム「samples/KMID_.BAS」
KNJ$関数 (9801 のみ)
【機能】文字列 4 桁で表された JIS 漢字コードを全角文字に変換します。
【書式】 KNJ$( 文字列 )
【文例】 PRINT KNJ$("95B6")+KNJ$("8E9A") ⇒ 文字
【説明】文字列に指定した JIS 漢字コードを全角文字に変換します。文字列は以下の条件を満たして
いなければなりません。
命令リファレンス
• 文字列が 4 文字以上であること。
• 最初の 4 文字が 16 進数 (0~9、A~F) の範囲内の文字であること。
• 最初の 4 文字が JIS 漢字コードの範囲内あるいは KI/KO コードであること。
文字列が 4 文字を超える場合、最初の 4 文字だけが使われます。
【注意】シフト JIS コードを変換したい場合は、CHR$をお使い下さい。
【参照】CHR$、JIS$、サンプルプログラム「samples/KNJ_.BAS」
KPLOAD コマンド (未対応)
【機能】 利用者定義文字(外字)パターンの文字イメージを定義します。
【書式】 KPLOAD 文字コード , 整数型配列名
【説明】文字コードで指定された漢字の文字イメージを、整数型配列名で設定します。文字コードは、
EB9FH~EBDDH(シフト JIS)と&H7621~&H767E と&H7721~&H777E(JIS)の値が指定できます。文
字コードがこの範囲にない場合は、Illegal function call エラーが発生します。整数型配列名に
は、18 要素を持つ一次元の整数型配列を指定します。配列の最初の 2 要素には 16 を代入して下さい。
残りの 16 要素には、上から順番に 16 ドットのビットイメージを 2 バイトの整数として格納して下さ
い。指定した文字は PUT@ KANJI や SJIS モードのテキスト画面で使えるようになります。
【注意】 VeySicK ではまだ KPLOAD は利用できません。
【参照】PUT@ KANJI、サンプルプログラム「samples/KPLOAD.BAS」
「samples/S34.BAS」
KPOS 関数 (8801 のみ)
【機能】 文字列の先頭からの位置をバイト数で返します。
【書式】 KPOS( 文字列 , 数式)
【文例】 PRINT KPOS("電気 CAT", 4) ⇒ 6
【説明】文字列の数式番目の文字が先頭から何バイト目かを返します。数式の値は 0~255 の範囲とし
ます (PC-8801 のみ)。文字列の文字数が数式の値に満たない場合は 0 を返します。GRPH モードで
は全角文字は表示できませんが、SJIS モードと同じ動作を行います。
【注意】VeySicK では現在、[全角文字]#(zenkaku) はシフト JIS になります。
【参照】 サンプルプログラム「samples/KPOS.BAS」
67
68
KTYPE 関数 (9801 のみ)
【機能】全角文字を含む文字列の中の指定された文字の種類を返します。
【書式】 KTYPE( 文字列 , 式 )
【文例】 PRINT KTYPE("日本語", 2) ⇒ 1
【説明】文字列の式バイト目の文字の種類を返します。文字の種類は次のような意味を持ちます。
• 0 … 1 バイト系英数カナ文字
• 1 … 2 バイト系全角文字
• 2 … 2 バイト系半角文字
• 3 … KI コード
• 4 … KO コード
式の値が 0 もしくは文字列のバイト数より大きい場合、あるいは文字列が空文字列("")の場合は、
Illegal function call エラーが発生します。
【注意】 VeySicK では現在、JIS コードは扱えません。
【参照】 サンプルプログラム「samples/KTYPE.BAS」
LEFT$関数
【機能】 文字列の左側から、指定した長さの文字列を返します。
【書式】 LEFT$( 文字列 , 数式)
【文例】 PRINT LEFT$("BlueCat", 4) ⇒ Blue
【説明】LEFT$関数は、文字列の左側から文字列を抜き出して値として返します。数式がバイト数を表
し、バイト数の範囲は 0~255 です。VSK モードの場合は文字数に制限はありません (VSK モードの
み)。全角文字は、2 バイト分となります。
【参照】RIGHT$、サンプルプログラム「samples/LEFT_.BAS」
命令リファレンス
LEN 関数
【機能】 文字列の長さをバイト数で返します。
【書式】 LEN( 文字列 )
【文例】 PRINT LEN("BlueCat") ⇒ 7
【説明】 与えられた文字列の長さをバイト数で返します。
【参照】KLEN、サンプルプログラム「samples/LEN.BAS」
LET コマンド
【機能】 変数に値を代入します。
【書式】 [LET] 変数名 = 式
【文例】 PI=3.14159 ⇒ 変数 PI に 3.14159 を代入
【説明】LET は省略できます。変数の型と式の型は一致しなければなりません。言い換えると、両方が
数値型か、両方が文字列型でなければなりません。型の異なる数値型の場合、左辺の型に変換されま
す。
【参照】INPUT、サンプルプログラム「samples/LET.BAS」
LFILES コマンド
【機能】 ファイルの一覧をラインプリンターに出力します。
【書式 1】 LFILES [ ドライブ番号 ]
【書式 2】 LFILES 文字列 (VeySicK 拡張)
【説明】ドライブ番号で指定されたドライブに登録されているファイルの一覧をラインプリンターに
出力します。引数を省略した場合は、現在のフォルダーのファイルが出力します。文字列が指定され
た場合は、そのワイルドカードのパターンにマッチするファイルを出力します(VeySicK 拡張)
。
【注意】 VeySicK の場合、ラインプリンターは標準出力になります。
【参照】SAVE、LOAD、LPRINT
69
70
LINE コマンド
【機能】グラフィック画面に直線や長方形を描きます。
【書式 1】 LINE( WX1 , WY1 )-[STEP]( WX2 , WY2 )[, パレット番号 ] [, B/BF ] [, ライ
ンスタイル ]
【書式 2】 LINE STEP( WX1 , WY1 )-[STEP]( WX2 , WY2 )[, パレット番号 ] [, B/BF ] [,
ラインスタイル ]
【書式 3】 LINE-[STEP]( WX2 , WY2 )[, パレット番号 ] [, B/BF ] [, ラインスタイル ]
【文例】 LINE(100,100)-(120,140),2,BF ⇒ 赤い長方形を描く
【説明】 ワールド座標の2点 (WX1, WY1), (WX2, WY2) を結ぶ直線か、2点を対角とする長方形
を描きます。(WX1, WY1) が省略された場合は、LP の値をとります。線を描くときは、パレット番
号の色を使います。パレット番号が省略された場合は、COLOR コマンドで指定された前景色を使いま
す。B/BF には B または BF を指定します。B/BF が省略された場合は、直線が描かれます。B が指
定された場合は、塗りつぶさない長方形を描きます。BF が指定された場合は、パレット番号で指定さ
れた色で塗りつぶした長方形を描きます。ラインスタイルが指定された場合は、そのビットパターン
で破線や点線などを描きます。ラインスタイルに指定できる値は、&H0000~&HFFFF の 16 ビット整
数値です。STEP が指定された場合は、直前に指定された座標の相対座標になります。
【参照】CIRCLE、サンプルプログラム「samples/LINE.BAS」
LINE INPUT コマンド
【機能】 区切ることなくキーボードから 1 行の文字列を読み込みます。
【書式】 LINE INPUT ["プロンプト文字列 “‘;] 文字列変数
【文例】LINE INPUT "Name? ";NA$ ⇒ 変数 NA$に 1 行の文字列を読み込む
【説明】プロンプト文字列を表示し、Enter が入力されるまで入力を待ちます。Enter キーが入力され
たら、入力された 1 行の文字列がそのまま文字列変数に代入されます。Enter キーのみの場合は、空
文字列("")が代入されます。STOP キーにより、入力を中断できます。その場合、コマンドレベルに
戻ります。
【参照】INPUT、LINE INPUT#、LINE INPUT WAIT、サンプルプログラム「samples/LINE_INPUT.BAS」
命令リファレンス
LINE INPUT#コマンド
【機能】 区切ることなくファイルから 1 行の文字列を読み込みます。
【書式】 LINE INPUT #ファイル番号 , 文字列変数
【文例】LINE INPUT #1, L$ ⇒ ファイル#1 から一行読み込み、変数 L$に代入
【説明】ファイル番号は、OPEN コマンドで開かれたファイルの番号を指定します。ファイルから 1 行
読み込み、それを文字列変数に代入します。読み込める文字数は、255 文字以内です。
【参照】LINE INPUT、INPUT#、サンプルプログラム「samples/LINE_INPUT_SHARP.BAS」
LINE INPUT WAIT コマンド
【機能】 キーボードから時間制限のある入力を行います。
【書式 1】 LINE INPUT WAIT 待ち時間 [, "プロンプト文字列";] 文字列変数
【書式 2】 LINE INPUT WAIT 待ち時間 [, "プロンプト文字列",] 文字列変数
【文例】LINE INPUT WAIT 50, "NO=",NO$ ⇒ NO=を表示し文字列の入力を 5 秒待ち、NO$に代
入
【説明】LINE INPUT WAIT は時間制限つきの LINE INPUT です。LINE INPUT と INPUT WAIT の両方
の機能を備えています。詳しくはそれぞれの命令を参照して下さい。
【参照】LINE INPUT、INPUT WAIT、サンプルプログラム「samples/LINE_INPUT_WAIT.BAS」
LIST コマンド
【機能】 プログラムの内容を出力します。
【書式 1】 LIST
【書式 2】 LIST 行番号
【書式 3】 LIST 行番号-行番号
【書式 4】 LIST -行番号
【文例】 LIST 100-. ⇒ 行番号 100 から現在の行まで表示
【説明】プログラムの内容を画面に表示します。引数を省略すると、プログラム全部が出力されます。
行番号が一つだけ指定されると、その行のみを出力します。ハイフン(-)で行番号の範囲を指定する
71
72
と、その範囲の行が出力されます。行番号の代わりに現在の行を表すピリオド(.)を指定できます。
LIST が実行されるとコマンドレベルに戻ります。
【参照】 LLIST
LLIST コマンド
【機能】 プログラムの内容をラインプリンターに出力します。
【書式 1】 LLIST
【書式 2】 LLIST 行番号
【書式 3】 LLIST 行番号-行番号
【書式 4】 LLIST -行番号
【文例】 LLIST 100-. ⇒ 行番号 100 から現在の行まで出力
【説明】プログラムの内容をラインプリンターに出力します。引数を省略すると、プログラム全部が出
力されます。行番号が一つだけ指定されると、その行のみを出力します。ハイフン(-)で行番号の範
囲を指定すると、その範囲の行が出力されます。行番号の代わりに現在の行を表すピリオド(.)を指
定できます。LIST が実行されるとコマンドレベルに戻ります。
【注意】 VeySicK の場合、ラインプリンターは標準出力になります。
【参照】 LIST
LOAD コマンド
【機能】 ファイルからプログラムを読み込みます。
【書式】 LOAD ファイル記述子 [,R]
【文例】LOAD "2:demo.bas" ⇒ ドライブ 2 からプログラムファイル「demo.bas」を読み込む
【説明】ファイル記述子で指定されたプログラムファイルをメモリー上に読み込みます(ロード)。そ
の前にメモリーにあったプログラムは消され、変数の値も初期化されます。開いているファイルが
あった場合はすべて閉じられます。R オプションを付けると、ファイルを開いたままプログラムを読
み込み、直ちに実行を開始します。プログラムファイルを読み込むと、自動的にそのファイルがある
フォルダーへ移動します (VeySicK のみ)。
【参照】SAVE、MERGE、RUN
命令リファレンス
LOAD?コマンド (未対応)
【機能】 カセットテープに正しくプログラムが保存されたか確認します。
【書式】 LOAD? ファイル記述子
【文例】 LOAD? "CAS:TEST.BAS"
【説明】このコマンドは、カセットファイルに正しくファイルが保存されたか確認するために使用しま
す。
【注意】 VeySicK では LOAD?コマンドは利用できません。
【参照】 SAVE
LOC 関数 (未対応)
【機能】 ファイルの中での論理的な現在位置を取得します。
【書式】 LOC( ファイル番号 )
【説明】ファイル番号で指定されたファイルの種類によって、取得できる値の意味は異なります。
• ランダムファイルの場合
現在のレコード番号を返します。
• シーケンシャルファイルの場合
読み書きしたセクター数を返します。
• キーボードファイルの場合
キーボードバッファにたまっている文字数を返します。
• RS-232C 回線ファイルの場合
入力バッファにたまっている文字数を返します。
【注意】VeySicK ではランダムファイル以外に対して LOC 関数は利用できません。
【参照】OPEN、サンプルプログラム「samples/LOC.BAS」
73
74
LOCATE コマンド
【機能】 カーソル位置を移動させます。
【書式】LOCATE [X ],[Y ][, カーソルスイッチ]
【文例】 LOCATE 0,10 ⇒ 文字座標 (0,10) にカーソルを移動
【説明】カーソル位置をテキスト画面の文字座標 (X, Y ) へ移動します。カーソルは入力待ちのときに
テキスト画面で入力位置を表す点滅する四角形です。X は水平座標を表します。一番左が 0 です。Y
は垂直座標を表します。一番上が 0 です。カーソルスイッチには、0 か 1 を指定できます。カーソル
スイッチが 0 の場合は、カーソルは表示されなくなります。
【参照】POS、CSRLIN、サンプルプログラム「samples/LOCATE.BAS」
LOF 関数
【機能】 ファイルの大きさを返します。
【書式】 LOF( ファイル番号 )
【文例】 PRINT LOF(2) ⇒ ファイル#2 の大きさ
【説明】 ファイル番号で指定したファイルの大きさを返します。
【参照】OPEN、サンプルプログラム「samples/LOF.BAS」
LOG 関数
【機能】 自然対数を返します。
【書式】 LOG( 数式 )
【文例】 PRINT LOG(1) ⇒ 0
【説明】数式によって与えられた値の自然対数(ネイピア数を底とした対数)を返します。数式には正
の数を指定します。
【参照】EXP、サンプルプログラム「samples/LOG.BAS」
命令リファレンス
LPOS 関数
【機能】 ラインプリンターの現在の水平ヘッド位置を返します。
【書式】 LPOS( 式 )
【文例】 PRINT LPOS(0) ⇒ 現在の水平ヘッド位置
【説明】ラインプリンターのヘッドがどの位置にあるかを返します。式は意味を持たず、通常は 0 を
指定します。
【注意】 VeySicK の場合、ラインプリンターは標準出力になります。
【参照】POS、サンプルプログラム「samples/LPOS.BAS」
LPRINT コマンド
【機能】 数値や文字列をラインプリンターに出力します。
【書式】 LPRINT 式 [, 式] ...
【説明】LPRINT コマンドが PRINT と違うのは、出力先がラインプリンターであることだけです。PRINT
を参照して下さい。
【注意】 VeySicK の場合、ラインプリンターは標準出力になります。
【参照】 PRINT
LPRINT USING コマンド
【機能】 数値や文字列を指定した書式でラインプリンターに出力します。
【書式】 LPRINT USING 書式制御文字列 ; 式 [ 式区切り 式 ]…‘
【説明】書式制御文字列によって、式の出力される領域や書式を決定します。LPRINT USING コマンド
が PRINT USING と違うのは、出力先がラインプリンターであることだけです。PRINT USING を参照
して下さい。
【注意】 VeySicK の場合、ラインプリンターは標準出力になります。
【参照】 PRINT USING
75
76
LSET/RSET コマンド
【機能】 ファイルバッファへデータを書き込みます。
【書式 1】 LSET 文字列変数 = 文字列
【書式 2】 RSET 文字列変数 = 文字列
【文例】RSET A$="BASIC" ⇒ バッファ変数 A$に右詰めで"BASIC"を代入する
【説明】FIELD コマンドで定義した文字列型変数に該当するファイルバッファ領域にデータを格納し
ます。格納するデータは文字列型です。数値データは、事前に MKI$/MKS$/MKD$により文字列に変換
してから格納して下さい。文字列の長さが、FIELD で割り当てられた長さより短い場合、LSET は左
詰めで、RSET は右詰めで格納され、余った領域は空白(CHR$(20))になります。文字列が、FIELD
で割り当てられた長さより長い場合は、はみ出た右側が無視されます。文字列変数は、FIELD コマン
ドであらかじめ定義されておく必要があります。
【参照】OPEN、FIELD、サンプルプログラム「samples/LSET_RSET.BAS」
MAP 関数
【機能】スクリーン座標とワールド座標の相互変換を行います。
【書式】 MAP( 数式 , 機能 )
【文例】 PRINT MAP(100, 1) ⇒ スクリーン座標系の Y 座標
【説明】数式で表されるスクリーン座標、あるいはワールド座標を、機能の値に応じて対応するワール
ド座標あるいはスクリーン座標に変換します。機能の値は 0~3 の値を指定でき、次のような意味を
持ちます。
• 0 … ワールド座標系の X 座標をスクリーン座標系の X 座標に変換します。
• 1 … ワールド座標系の Y 座標をスクリーン座標系の Y 座標に変換します。
• 2 … スクリーン座標系の X 座標をワールド座標系の X 座標に変換します。
• 3 … スクリーン座標系の Y 座標をワールド座標系の Y 座標に変換します。
【参照】VIEW、WINDOW、サンプルプログラム「samples/MAP.BAS」
命令リファレンス
MERGE コマンド
【機能】メモリー上にあるプログラムにプログラムファイルの内容を結合します。
【書式】 MERGE ファイル記述子
【説明】メモリー上にあるプログラムにファイル記述子で指定したプログラムをメモリー上で結合しま
す。指定するプログラムは、アスキーセーブしたものでなければなりません。ファイル中にメモリー
上と同じ行番号があった場合は、その行は上書きされます。MERGE コマンドを実行すると必ずコマン
ドレベルに戻ります。
【参照】CHAIN、サンプルプログラム「samples/MERGE.BAS」
MID$コマンド
【機能】 文字列の一部を指定された文字列で置き換えます。
【書式】 MID$( 文字列変数 , 式 1 [, 式 2 ])= 文字列
【説明】文字列変数の式 1 バイト目の位置から式 2 バイト分の文字列を文字列の最初から式 2 バイト
分の文字列で置き換えます。式 2 が省略された場合は、式 1 バイト目以降の文字列を置き換えます。
文字列変数に空文字列("")を指定することはできません。全角文字はそれぞれ 2 バイト分となりま
す。
【参照】LEN、LEFT、RIGHT$、サンプルプログラム「samples/MID_.BAS」
MID$関数
【機能】 文字列の指定された位置から任意の長さの文字列を返します。
【書式】 MID$( 文字列 , 式 1 , [ 式 2 ])
【説明】文字列の式 1 バイト目から、式 2 バイト分の文字列を抜き出して返します。式 2 が省略され
た場合、式 1 バイト目以降の文字列を返します。文字列全体のバイト数が式 1 よりも小さい場合、式
2 が 0 の場合は空文字列("")を返します。全角文字はそれぞれ 2 バイト分となります。
【参照】LEN、LEFT、RIGHT$、サンプルプログラム「samples/MID_2.BAS」
77
78
MKI$/MKS$/MKD$関数
【機能】 数値をバイナリー文字列に変換した値を返します。
【書式 1】 MKI$( 整数 )
【書式 2】 MKS$( 単精度実数 )
【書式 3】 MKD$( 倍精度実数 )
【説明】これらの関数は、数値をバイナリー文字列に変換した値を返します。変換した値は、それぞれ
2 バイト、4 バイト、8 バイトの文字列になり、それぞれ CVI/CVS/CVD 関数で、もとの数値に戻すこ
とができます。
【参照】CVI/CVS/CVD、サンプルプログラム「samples/MKIMKSMKD.BAS」
MON コマンド (未対応)
【機能】 機械語モニターに制御を移します。
【書式】 MON
【説明】BASIC モードから機械語モニターへ制御を移すコマンドです。機械語モニターに入ると、h]
というプロンプトが表示されます。Ctrl+B で BASIC に戻ることができます。
【注意】 VeySicK では現在、機械語モニターは利用できません。
MOTOR コマンド (未対応)
【機能】 カセットテープレコーダーのモーターを制御します。
【書式】 MOTOR スイッチ
【説明】スイッチを 0 にすれば、モーターは OFF に、0 以外の値にすれば、モーターは ON になりま
す。スイッチを省略した場合は、ON/OFF を切り替えます。
【注意】VeySicK では現在、カセットテープは利用できません。昔、モーターが回転すると音が出る
ことを利用して、効果音の出力方法として利用されたようです。
命令リファレンス
NAME コマンド
【機能】 ファイルの名前を変更します。
【書式】 NAME 古いファイル名 , 新しいファイル名
【説明】ファイル名を変更します。ファイル名を変更するときは、ファイルが閉じられた状態でなけれ
ばなりません。
【参照】KILL、サンプルプログラム「samples/NAME.BAS」
NEW コマンド
【機能】 メモリーにあるプログラムを消去します。
【書式】 NEW
【説明】メモリーに記憶されている現在のプログラムを消去します。さらに、すべての変数を初期化
し、開かれているすべてのファイルを閉じて、コマンドレベルに戻ります。
【参照】NEW ON、CLEAR、サンプルプログラム「samples/NEW.BAS」
NEW CMD コマンド (8801 のみ)
【機能】 拡張命令を利用可能にします。
【書式】 NEW CMD
【説明】 拡張命令を使用できるようにします (8801 のみ)。
【注意】 9801 モードでは NEW CMD は利用できません。
【参照】 サンプルプログラム「samples/NEW.BAS」
NEW ON コマンド
【機能】 システムを指定されたモードにリセットします。
【書式】 NEW ON 式
79
80
【説明】式で指定されたモードでシステムの電源を入れ直し、システムをリセットします。式は、16
ビットの整数で指定します。各ビットの意味は次の通りです。
ビット
意味
ビット 0
BASIC セレクトスイッチ(0: N88-BASIC V1、1: N-BASIC)
ビット 1
システムモード(0: BASIC モード、1: ターミナルモード)
ビット 2
桁数(0: 40 桁、1: 80 桁)
ビット 3
行数(0: 20 行、1: 25 行)
ビット 4
S パラメータ(0: OFF、1: ON)
ビット 5
DEL コード(0: 無視する、1: 処理する)
ビット 7
文字モード(0: GRPH モード、1: SJIS モード)(VeySicK のみ)
ビット 8
パリティスイッチ(0: OFF、1: ON)
ビット 9
パリティ(0: 奇数パリティ、1: 偶数パリティ)
ビット 10
ビット数(0: 7 ビット、1: 8 ビット)
ビット 11
ストップビット(0: ストップビット 1、1: ストップビット 2)
ビット 12
XON スイッチ(0: OFF、1: ON)
ビット 13
モード(0: フルデュプレックス、1: ハーフデュプレックス)
ビット 14
8801 モード(0: OFF、1: ON)(VeySicK のみ)
ビット 15
9801 モード(0: OFF、1: ON)(VeySicK のみ)
※ビット 14 とビット 15 が同じ値の場合、VSK モードになります。
【注意】 VeySicK ではビット 2、3、7、14、15 以外のビットは無視されます。
【参照】 CLEAR
OCT$関数
【機能】 数値を 8 進数の文字列に変換した値を返します。
【書式】 OCT$( 数式 )
【説明】数式の値を 8 進数に変換して、その文字列を返します。数式の値の範囲は、-32768~65535
です。数式の値に小数点以下の値が含まれている場合は、小数点以下は変換前に四捨五入されます。
【参照】HEX$、VAL、サンプルプログラム「samples/OCT_.BAS」
命令リファレンス
ON COM GOSUB コマンド (未対応)
【機能】 RS-232C 通信回線による割り込みルーチンの開始行を定義します。
【書式 1】 ON COM GOSUB 行番号
【書式 2】 ON COM 回線番号 GOSUB 行番号
【文例】 ON COM3 GOSUB 100
【説明】通信ポート(RS-232C)に外部からの通信が入ったことによる割り込みによって分岐する処
理ルーチンの開始行を定義します。処理ルーチンから戻る方法は、一般のサブルーチンの場合と同じ
で、RETURN コマンドで戻ります。割り込みを有効にするには、COM ON コマンドを使います。
【注意】 VeySicK では現在、RS-232C 通信は利用できません。
【参照】COM ON/OFF/STOP、サンプルプログラム「samples/ON_COM.BAS」
ON ERROR GOTO コマンド
【機能】エラー処理ルーチンの開始行を指定して、エラートラップを有効にします。
【書式】 ON ERROR GOTO 行番号
【説明】エラートラップを有効にすると、エラーが発生したときに、指定されたエラー処理ルーチンへ
プログラムの制御が移ります。エラートラップを無効にするには、ON ERROR GOTO 0 を実行して下
さい。エラー処理の後、プログラムの実行を再開するには、RESUME コマンドを使って下さい。エラー
処理ルーチンでエラーが起こったときは、そのエラーに対応するエラーメッセージが表示され、実行
が中断されます。エラー処理ルーチンに ON ERROR GOTO 0 があった場合は、エラートラップの原因
になったエラーのエラーメッセージが表示され、実行が停止されます。
【参照】RESUME、ERROR、サンプルプログラム「samples/ON_ERROR.BAS」
ON~GOSUB/ON~GOTO コマンド
【機能】 数式の値に応じて、それぞれの行へ分岐します。
【書式 1】 ON 数式 GOSUB 行番号 [, 行番号 ] ...
【書式 2】 ON 数式 GOTO 行番号 [, 行番号 ] ...
【説明】数式の値がどの行番号に分岐するかを決定します。最初の行番号は、数式の値が 1 の場合に
81
82
分岐します。2 番目の行番号は、数式の値が 2 の場合に分岐します。数式の値の範囲は、0~255 で
す。値が 0 または行番号リストの個数よりも大きくなった場合は、次の文へプログラムの制御が移り
ます。ON…GOSUB の場合は、行番号はサブルーチンの開始行を表し、RETURN コマンドでサブルーチ
ンから戻ります。
【参照】GOSUB、GOTO、サンプルプログラム「samples/ON_GOTO.BAS」
ON HELP GOSUB コマンド
【機能】 HELP キーによる割り込みルーチンの開始行を定義します。
【書式】 ON HELP GOSUB 行番号
【説明】HELP キーを押したときに、割り込みによって分岐する処理ルーチンの開始行を定義します。
処理ルーチンから戻る方法は、一般のサブルーチンの場合と同じで、RETURN コマンドで戻ります。
ON HELP GOSUB は、ON KEY GOSUB コマンドと使い方が同じです。しかし、ファンクションキーの
場合は、INPUT コマンドなどのキー入力待ちの状態での割り込みは禁止されていますが、HELP の割
り込みはそれが可能です。割り込みを有効にするには、HELP ON コマンドを使います。
【参照】HELP ON/OFF/STOP、サンプルプログラム「samples/ON_HELP.BAS」
ON KEY GOSUB コマンド
【機能】ファンクションキーによる割り込みルーチンの開始行を定義します。
【書式】 ON KEY GOSUB 行番号 [, 行番号 ] ...
【説明】ファンクションキーを押したときに、割り込みによって分岐する処理ルーチンの開始行を定義
します。行番号の並びは、ファンクションキーの番号と 1 対 1 に対応し、最初の行番号 は、F1 キー
に、2 番目の 行番号 は F2 キーに対応します。ファンクションキーは 10 個ありますから、最大 10 個
の行番号を並べて記述できます。割り込みを有効にするには、KEY ON コマンドを使います。
【参照】KEY ON/OFF/STOP、KEY、KEY LIST、サンプルプログラム「samples/ON_KEY.BAS」
命令リファレンス
ON PEN GOSUB コマンド (未対応)
【機能】 ライトペン入力による割り込みルーチンの開始行を定義します。
【書式】 ON PEN GOSUB 行番号
【説明】ライトペンによる入力があったときに、割り込みによって分岐する処理ルーチンの開始行を定
義します。割り込みを有効にするには、PEN ON コマンドを使います。
【注意】 VeySicK では現在、ライトペン入力は利用できません。
【参照】PEN ON/OFF/STOP、サンプルプログラム「samples/ON_PEN.BAS」
ON PLAY~GOSUB コマンド (未対応)
【機能】PLAY 割り込みルーチンの開始行を定義します。
【書式】 ON PLAY ( チャンネル番号 , 残りバイト数 ) GOSUB 行番号
【説明】この命令を実行しておくと、バックグラウンドで演奏中に、チャンネル番号のバッファが残り
バイト数以下になったとき、指定した行番号から始まる処理ルーチンに処理を移します。チャンネル
番号に指定する値とその意味は次の通りです。
• 0 … 全チャンネルの中で最大の残りバイト数を持つもの。
• 1~6 … 各チャンネル。
• 負の値 … 全チャンネルの中で最小の残りバイト数を持つもの。
残りバイト数は、0~32767 の範囲で指定します。この命令によって割り込み処理ルーチンへ分岐さ
せるためには、割り込みのあったときに PLAY ON の状態でなければなりません。| 【注意】VeySicK
では現在、ON PLAY~GOSUB は利用できません。 | 【参照】PLAY、PLAY ON/OFF/STOP、サンプルプ
ログラム「samples/PLAY.BAS」
ON STOP GOSUB コマンド
【機能】 STOP キーによる割り込みルーチンの開始行を定義します。
【書式】 ON STOP GOSUB 行番号
【説明】STOP キー(または Ctrl+C)を押したときに、割り込みによって分岐する処理ルーチンの開
83
84
始行を定義します。割り込みを有効にするには、STOP ON コマンドを使います。
【注意】STOP キーによる割り込みを有効にすると、プログラムを中断できなくなります。不具合のな
いプログラムにしてから使用して下さい。
【参照】STOP ON/OFF/STOP、サンプルプログラム「samples/ON_STOP.BAS」
ON TIME$ GOSUB コマンド
【機能】時刻による割り込み発生時刻と割り込みルーチン開始行を定義します。
【書式】 ON TIME$="hh:mm:ss" GOSUB 行番号
【説明】割り込み時刻の指定は、TIME$(#TIME_) と同じ形式です。割り込みを有効にするには、
TIME$ ON コマンドを使います。割り込みルーチンから戻るには、RETURN コマンドを使います。
【注意】 3 秒程度の誤差が出ることもあります。
【参照】TIME$ ON/OFF/STOP、サンプルプログラム「samples/ON_TIME_.BAS」
OPEN コマンド
【機能】 ファイルを開きます。
【書式】 OPEN ファイル記述子 [FOR モード ] AS [#] ファイル番号
【説明】 ファイル記述子で指定されたファイルを、指定されたファイル番号で開きます(オープン)。
以後、ファイルへの入出力は、このファイル番号を使って指示します。モードは、ファイルへのアク
セス方法を指定します。モードには次の4種類あります。
• INPUT … 既存のシーケンシャルファイルから読み込みを行う。
• OUTPUT … 新しくシーケンシャルファイルを作り、書き込みを行う。
• APPEND … 既存のシーケンシャルファイルの終わりから追加書き込みを行う。
• 省略時 … ランダムファイルに対して入出力を行う。
INPUT、APPEND モードでは、指定したファイルが存在しなければ、File not found エラーが発生
します。OUTPUT モードでは、同一の名前のファイルがあった場合、内容は削除されます。ファイル
番号は、How many files (0-15)?で指定したファイル数を超えてはなりません。モードが省略され
た場合に、ファイルが存在しない場合は、新たにファイルが作成されます。
【注意】VeySicK では現在、RS-232C 通信やカセットテープは利用できません。
命令リファレンス
【参照】CLOSE、FIELD、LSET/RSET、GET、PUT、INPUT#、LINE INPUT#、PRINT#、PRINT# USING、
WRITE#、サンプルプログラム「samples/OPEN.BAS」
OPTION BASE コマンド
【機能】 配列の添字の下限を宣言します。
【書式 1】 OPTION BASE 0
【書式 2】 OPTION BASE 1
【説明】配列の添字の下限を 0 か 1 にすることを宣言します。通常、添字の下限は 0 ですが、OPTION
BASE 1 によって 1 にすることができます。以後、配列の添字に 0 が使われると Subscript out of
range エラーが発生します。この宣言は、プログラム中で配列変数が宣言された後に行うことはでき
ません。一度宣言すると、再宣言によって変更できません。このような場合、Duplicate Definition
エラーが発生します。OPTION BASE コマンドは、一度宣言すると、RUN コマンドか CLEAR コマンド
が実行されるまで解除・変更することはできません。
【参照】DIM、サンプルプログラム「samples/OPTION_BASE.BAS」
OUT コマンド (未対応)
【機能】 出力ポートに 1 バイトのデータを送ります。
【書式】 OUT I/O アドレス , 数式
【説明】 I/O アドレスは、出力ポートの番号で、数式は出力する 1 バイトのデータです。I/O アドレ
ス、数式はともに 0~255 の整数値で指定します。
【注意】 VeySicK では現在、OUT コマンドは利用できません。
【参照】INP、サンプルプログラム「samples/OUT.BAS」
PAINT コマンド
【機能】 指定された境界色で指定された領域を塗りつぶします。
【書式 1】 PAINT ( WX , WY ) [, 領域色 ] [, 境界色]
85
86
【書式 2】 PAINT STEP( DX , DY ) [, 領域色 ] [, 境界色]
【書式 3】 PAINT ( WX , WY ), タイル文字列 [, 境界色 ] [, 背景文字列 ]
【書式 4】 PAINT STEP( DX , DY ), タイル文字列 [, 境界色] [, 背景文字列 ]
【説明】 ワールド座標 ( WX , WY ) を中心点として、境界色で囲まれた領域を塗りつぶします。STEP
をつけると、LP からの相対座標になります。領域色と境界色はともに、パレット番号で指定します。
領域色が省略された場合は、COLOR で指定された前景色が用いられます。境界色が省略された場合は、
領域色と同じ色が使われます。( WX , WY ) の色が境界色と同じ色の場合は、何もしません。
タイル文字列が指定された場合は、その文字列の文字コードの 2 進数表現(ビットパターン)に従っ
て塗りつぶされます。タイルの横幅は 8 ドット分と決められていますが、高さはタイル文字列の長さ
によって決まります。高さが n ドットのタイルを作るためには、白黒モードの場合 n 文字の文字列
を、8 色モードの場合は、n*3 文字の文字列を、16 色モードの場合は、n*4 文字の文字列を指定する
必要があります。白黒モードの場合、ビットが 0 の場合は黒に、ビットが 1 の場合は白に対応します。
8 色モードの場合は、3 文字単位で青、赤、緑の各ビットパターンを指定します。16 色モードの場合
は、4 文字ずつで指定します。
背景文字列は、PC-8801 のみ有効であり、VeySicK では無視されます。
【注意】PAINT はビューポートの内部のみで働きます。ビューポートの外側は境界とみなされます。
【参照】LINE、CIRCLE、サンプルプログラム「samples/OUT.BAS」
PEEK 関数
【機能】 メモリー上の指定されたアドレスの内容を返します。
【書式】 PEEK( アドレス )
【説明】アドレスによって指定されたメモリーアドレスの内容を 0~255 の値で返します。アドレスの
範囲は、0~65535 です。
【注意】VeySicK と BASIC ではメモリーモデルが異なるため、想定された値を返さないことがあり
ます。
【参照】POKE、サンプルプログラム「samples/PEEK.BAS」
PEN 関数 (未対応)
【機能】 ライトペンから情報を取得します。
【書式】 PEN( 機能 )
命令リファレンス
【説明】 機能に応じてライトペンの状態を取得します。
【注意】 VeySicK では現在、ライトペン入力は利用できません。
【参照】PEN ON/OFF/STOP、ON PEN GOSUB、サンプルプログラム「samples/PEEK.BAS」
PEN ON/OFF/STOP コマンド (未対応)
【機能】 ライトペン入力による割り込みを許可・禁止・停止する。
【書式 1】 PEN ON
【書式 2】 PEN OFF
【書式 3】 PEN STOP
【説明】ライトペンによる入力があったときに発生する割り込みを許可(ON)
、禁止(OFF)
、または停
止(STOP)します。停止中にライトペン入力が入った場合は、次に許可あるいは禁止されるまでその
出来事を覚えておき、許可されたときに割り込みが発生します。
【注意】 VeySicK では現在、ライトペン入力は利用できません。
【参照】ON PEN GOSUB、PEN、サンプルプログラム「samples/PEEK.BAS」
PLAY コマンド (9801 のみ)
【機能】 音楽を演奏します。
【書式】 PLAY [#モード番号,] [ 文字列 1 ][, 文字列 2 ][, 文字列 3 ][, 文字列 4 ][, 文字列 5
][, 文字列 6 ]
【文例】 PLAY "CDE" ⇒ ドレミを演奏
【説明】6 和音まで演奏できます。文字列 1、文字列 2 、文字列 3 はチャンネル 1、2、3 に、文字列 4、
文字列 5 、文字列 6 はチャンネル 4、5、6 に対応します。モード番号は 0~4 の値で指定でき、次の
ような意味があります。
• #0 … 楽音モード(通常の演奏に適する)。
• #1 … 効果音モード(効果音に適する)。
• #2 … CSM モード(複合正弦波合成モード)。
モード番号を省略した場合は、#0 が選択されます。各チャンネルの文字列は、MML (Music Macro
Language) といい、次のような意味を持ちます。
87
88
文字列
意味
Mx (SSG 音源のみ)
エンベロープ周期を設定します(1 ≦ x ≦ 65535)
。
Sx (SSG 音源のみ)
エンベロープ形状を設定します(0 ≦ x ≦ 15)
。
Vx
音量を設定します(0 ≦ x ≦ 15)
。
Lx
音符や休符の既定値の長さを設定します(1 ≦ x ≦ 64)
。
Qx
音の長さの割合を設定します(1 ≦ x ≦ 8)
。
Ox
オクターブを設定します(1 ≦ x ≦ 8)
。
>
オクターブを1つ上げます。
<
オクターブを1つ下げます。
Kx
x で指定された高さの音を発生します(0 ≦ x ≦ 96)。
Tx
テンポを設定します(32 ≦ x ≦ 255)
。
Rx / Px
休符を演奏します(1 ≦ x ≦ 64)
。x は休符の長さです。
C~B[+/-][x][.]
音符を演奏します(1 ≦ x ≦ 64)
。x は音符の長さです。
+ (#)
直前の音符を半音上げます。
-
直前の音符を半音下げます。
.
直前の音符に符点をつけます。
&/ˆ
前後の音をつなげます。
{ ... }x
指定された長さの x 分音符を{ }の中の音符の個数で等分した連符を演奏します。
@x (FM 音源のみ)
音色番号 x で指定された音色に切り替えます。
Yr,d
シンセサイザ LSI のレジスタ r の内容を d にします。VeySicK では無視されます。
@Vx (FM 音源と MIDI のみ)
音量を細かく調整します(0 ≦ x ≦ 127)
。
@Wx
x で指定された長さだけ状態を維持します(1 ≦ x ≦ 64)。
_x
x 移調を指示します。VeySicK では無視されます。
!
LFO 効果(ビブラート、トレモロ)を加えます。VeySicK では無視されます。
*
LFO 効果を切ります。VeySicK では無視されます。
Zp,v
指定チャンネルの音色パラメータの内容を設定します。VeySicK では無視されます。
MF
演奏が終了してから次の命令の実行へ移ります。
MB
演奏しながら次の命令の実行へ移ります。
※ VeySicK で使用できる音色番号については、
【付属資料】の FM 音源の音色一覧をご覧ください。
【注意】PLAY は、9801 のみで使用できます。9801 では、PLAY を使用する前に PLAY ALLOC を実行す
る必要があります (VSK モードを除く)。
【参照】 サンプルプログラム「samples/CMD_PLAY.BAS」
命令リファレンス
PLAY ALLOC コマンド (9801 のみ)
【機能】 サウンドバッファの確保および初期化を行う
【書式】 PLAY ALLOC [ CH1 サイズ ][, CH2 サイズ ][, CH3 サイズ ][, CH4 サイズ ][, CH5 サ
イズ ][, CH6 サイズ ]
【文例】 PLAY ALLOC 255,255,255
【説明】音楽演奏のためのサウンドバッファを指定されたサイズのバイト数分、各チャンネルごとに
確保します。省略されたチャンネルのバッファサイズは 0 になります。PC-9801 では、サウンド命令
を使用する前に必ず一度実行しなければなりません。確保しようとするバッファサイズの合計は必ず
CLEAR で確保した機械語プログラム領域よりも小さくなければなりません。また、PLAY ALLOC はサ
ウンド機能を初期化します。
【注意】VeySicK では、PLAY ALLOC はサウンド機能を初期化するだけで、バッファサイズを無視し
ます。
【参照】 PLAY
PLAY ON/OFF/STOP コマンド (未対応)
【機能】PLAY 割り込みを許可・禁止・停止する。
【書式 1】 PLAY ON
【書式 2】 PLAY OFF
【書式 3】 PLAY STOP
【説明】PLAY によって演奏中に発生する割り込みを許可(ON)
、禁止(OFF)
、または停止(STOP)し
ます。停止中に PLAY 割り込みが発生した場合は、次に許可あるいは禁止されるまでその出来事を覚
えておき、許可されたときに割り込みが発生します。
【注意】 VeySicK では現在、PLAY ON/OFF/STOP は利用できません。
【参照】PLAY、ON PLAY~GOSUB、サンプルプログラム「samples/ON_PLAY.BAS」
POINT コマンド
【機能】 LP を変更します。
【書式 1】 POINT ( WX, WY )
89
90
【書式 2】 POINT STEP( DX, DY )
【説明】BASIC は、最後にグラフィック操作を行った座標を覚えています。その座標を LP (last
referenced point) と言います。POINT コマンドは、単に LP を設定する場合に使います。STEP を指
定すると、相対座標となります。
【参照】PSET、LINE、CIRCLE、サンプルプログラム「samples/POINT.BAS」
POINT 関数 (1)
【機能】 LP の値を返します。
【書式】 POINT( 機能 )
【説明】 最後にグラフィック操作を行った座標 (LP) を機能の指定に応じてスクリーン座標、あるは
ワールド座標で返します。機能は 0~3 の整数値で、次のような意味を持ちます。
• 0 … ワールド座標系の X 座標を返す。
• 1 … ワールド座標系の Y 座標を返す。
• 2 … スクリーン座標系の X 座標を返す。
• 3 … スクリーン座標系の Y 座標を返す。
【参照】MAP、VIEW、WINDOW、サンプルプログラム「samples/POINT2.BAS」
POINT 関数 (2)
【機能】スクリーン座標上の指定された座標にあるピクセルのパレット番号を返します。
【書式】 POINT( SX , SY )
【説明】 スクリーン座標 (SX, SY ) にあるピクセルの色をパレット番号で返します。グラフィック画
面がカラーモードの場合は、パレット番号が返され、白黒モードの場合は、白のとき 1 を、黒のとき
は 0 を返します。指定された座標がビューポートの外にある場合は、-1 を返します。
【参照】PSET、PRESET、サンプルプログラム「samples/POINT2.BAS」
命令リファレンス
POKE コマンド
【機能】 メモリー上の指定されたアドレスへデータを書き込みます。
【書式】 POKE アドレス , 式
【説明】指定されたメモリーアドレスに 1 バイトのデータを書き込みます。番地は 2 バイトの整数値
(0~65535)の値をとります。式は 1 バイトの整数値 (0~255) です。
【注意】VeySicK と BASIC ではメモリーモデルが異なるため、想定された動作をしないことがあり
ます。
【参照】PEEK、サンプルプログラム「samples/POKE.BAS」
POS 関数
【機能】 カーソルの水平位置を返します。
【書式】 POS( 式 )
【説明】テキスト画面上の現在のカーソルの水平位置を返します。式の値は意味を持ちません。通常は
0 とします。
【参照】LOCATE、CSRLIN、サンプルプログラム「samples/POS.BAS」
PRESET コマンド
【機能】グラフィック画面上の点を消去します。
【書式 1】 PRESET( WX , WY ) [, パレット番号 ]
【書式 2】 PRESET STEP( DX , DY ) [, パレット番号 ]
【説明】指定されたワールド座標のピクセルを消去します。通常、パレット番号は省略し、COLOR コマ
ンドで指定された背景色でピクセルを描きます。STEP を付けた場合は、LP からの相対座標となりま
す。パレット番号を指定した場合は、PSET コマンドと同じ動作になります。PRESET の実行後は、LP
は (WX, WY ) に移動します。
【参照】PSET、サンプルプログラム「samples/PRESET.BAS」
91
92
PRINT コマンド
【機能】 数値や文字列を画面に出力します。
【書式】 PRINT 式 [, 式] ...
【文例】 PRINT "Computer" ⇒ Computer と出力
【説明】 指定した式の値をテキスト画面に出力します。式が数式の場合は数値を、文字列式の場合は文
字列を出力します。式が省略された場合は、改行のみを出力します。式の区切りにカンマ(,)を使う
と、式の間にいくつかの空白を出力します。式の区切りにセミコロン(;)を使うと、続けて出力しま
す。式の最後にセミコロンかカンマを付けると改行しません。数値を出力した場合、その後ろには1
文字の空白が挿入されます。また、数値の前には符号のための桁を確保します(正の数の場合は空白
を、負の数の場合はマイナスを出力します)
。PRINT というキーワードは入力時に?で代用できます。
【参照】PRINT USING、PRINT#、WRITE、サンプルプログラム「samples/PRINT.BAS」
PRINT#コマンド
【機能】 数値や文字列をシーケンシャルファイルに出力します。
【書式】 PRINT #ファイル番号 , 式 [, 式 ] ...
【文例】PRINT #1, "Computer" ⇒ #1 に Computer と出力
【説明】式を PRINT コマンドと同じ形式でファイルに出力します。ファイル番号は、OPEN コマンドで
すでに開かれていなければなりません。
【参照】PRINT、PRINT# USING、WRITE#、サンプルプログラム「samples/PRINT_SHARP.BAS」
PRINT USING コマンド
【機能】 数値や文字列を指定した書式で出力します。
【書式】 PRINT USING 書式制御文字列 ; 式 [ 式区切り 式 ]…‘
【説明】書式制御文字列によって、式の出力される領域や書式を決定します。
文字の書式制御:
• ! … 与えられた文字列の最初の 1 文字のみを出力します。
命令リファレンス
• &(n 個の空白)& … 与えられた文字列の先頭から (n+2) 文字の文字列を出力します。与えられ
た文字列が (n+2) より長い場合は、余分な文字は無視され、短い場合は、左詰めで出力され、
余った部分には空白が出力されます。
• @ … 与えられた1つの文字列を出力します。
数値の書式制御:
• # … 数値の出力する桁の数を#の個数で指定します。
• . … 数値の小数点の位置を指定します。
• + … 数値の符号を数値の前か後ろに出力します。
• - … 数値が負の数の場合に、数値の後ろに-を出力します。
• ** … 数値の左側に余裕がある場合にそこに*で埋めて出力します。**は 2 文字分の領域を確保
します。
• \\ … 数値の左側に\を出力します。**は 2 文字分の領域を確保しますが、\を出力するのは 1
文字のみです。
• **\ … ** と\\ の両方の機能となります。**\は 3 文字分の領域を確保します。
• , … 桁区切りとして 3 桁ごとに, を出力します。
• ˆˆˆˆ … #の後で指定された場合、数値は指数形式で出力されます。
• _ … この文字の次にある制御文字を単に文字として出力するのに使います。
これら以外の文字は、そのまま出力されます。桁数が指定された幅を超えた場合は % が出力されま
す。
【参照】PRINT、PRINT# USING、サンプルプログラム「samples/PRINT_USING.BAS」
PRINT# USING コマンド
【機能】 数値や文字列を書式つきでシーケンシャルファイルに出力します。
【書式】 PRINT #ファイル番号 , USING 書式制御文字列 ; 式 [, 式] ...
【説明】PRINT USING と PRINT#コマンドの両方の機能を持ったコマンドです。
【参照】PRINT#、サンプルプログラム「samples/PRINT_SHARP_USING.BAS」
93
94
PSET コマンド
【機能】グラフィック画面上に点を描きます。
【書式 1】 PSET( WX , WY ) [, *パレット番号 ]
【書式 2】 PSET STEP( DX , DY ) [, *パレット番号 ]
【説明】指定したワールド座標に点を描きます。点の色はパレット番号によって指定します。省略され
た場合は、COLOR コマンドの前景色になります。PSET の実行後、LP は (WX,WY ) へ移動します。
STEP を指定すると LP からの相対座標になります。
【参照】PRESET、CLS、サンプルプログラム「samples/PSET.BAS」
PUT コマンド
【機能】 バッファをランダムファイルに書き出します。
【書式】 PUT [#] ファイル番号 [, 数式 ]
【説明】ファイル番号で指定されたファイルのバッファの内容をランダムファイルに書き込みます。指
定されたファイルは、ランダムファイルで開かれていなければなりません。数式はレコード番号です。
省略された場合、現在のレコード位置に書き込まれます。書き出すバッファは FIELD、LSET/RSET コ
マンドで準備しなければなりません。
【参照】OPEN、FIELD、LSET/RSET、サンプルプログラム「samples/PUT.BAS」
PUT@コマンド
【機能】グラフィックイメージや文字をグラフィック画面に出力します。
【書式 1】 PUT[@]( SX , SY ), 配列変数名 [, 条件] [, 前景色 ] [, 背景色]
【書式 2】 PUT[@]( SX , SY ), KANJI( 文字コード ) [, 条件] [, 前景色 ] [, 背景色]
【文例】PUT@(100, 100),G%,PSET ⇒ (100,100) にイメージを出力
【説明】GET@コマンドで読み込んだグラフィックイメージや文字コードで指定した文字をグラフィッ
ク画面のスクリーン座標 (SX, SY ) で指定された位置に出力します。PUT@を実行すると、LP は (SX,
SY ) に移動します。条件は、表示方法を指定するもので、次のものが使用できます。文字コードには
JIS 第一水準、第二水準および利用者定義文字(外字)を指定できます。また、シフト JIS の文字コー
ドも指定できます (VeySicK 拡張)。
命令リファレンス
• PSET … グラフィックイメージをそのまま出力します。
• PRESET … 反転して出力します。
• OR … グラフィック画面とグラフィックイメージをピクセルごとに論理和 (OR) によって合成
して出力します。
• AND … グラフィック画面とグラフィックイメージをピクセルごとに論理積 (AND) によって
合成して出力します。
• XOR … グラフィック画面とグラフィックイメージをピクセルごとに排他的論理和 (XOR) に
よって合成して出力します。
前景色 と 背景色は、白黒モードによって読み込んだイメージに色をつけて出力する場合に使用する
引数です。
【参照】GET@、COLOR、サンプルプログラム「samples/PUTAT.BAS」
RANDOMIZE コマンド
【機能】 乱数生成系の種を指定します。
【書式】 RANDOMIZE [ 式 ]
【説明】新しい乱数の種 (seed) を与えることにより、以後 RND 関数によって生成される乱数のパター
ンを変更します。種は式によって-32768~32767 の範囲で指定します。式を省略した場合は、乱数の
種を入力するように Random number seed (-32768 to 32767) というメッセージを表示し、利用
者に種の入力を要求します。CLEAR コマンドを実行すると、乱数の種が初期化されます。
【参照】RND、サンプルプログラム「samples/RANDOMIZE.BAS」
READ コマンド
【機能】DATA コマンドに格納されている値を変数に代入します。
【書式】 READ 変数 [, 変数] ...
【説明】READ コマンドは、プログラム中の DATA コマンドに格納されている定数値を順番に取り出し、
変数に代入します。読み込むデータが足りない場合は、Out of DATA エラーが発生します。RESTORE
コマンドでデータを読み込む位置を行単位で指定できます。
【参照】DATA、RESTORE、サンプルプログラム「samples/READ.BAS」
95
96
REM コマンド
【機能】 プログラム中にコメントを入れます。
【書式 1】 REM コメント
【書式 2】 ' コメント
【説明】REM コマンドは、プログラムを読みやすくしたり、コメントを書くのに使います。REM キー
ワードの代わりにアポストロフィー(')を使うことができます。REM コマンドでは、コロン(:)も
コメントになりますので、REM の右に命令を続けることはできません。プログラムの最初の行のコメ
ントに次の文字列が含まれていると、プログラム実行前に対応するモードに変更されます (VeySicK
拡張)。
• {GRPH} … 文字モードが GRPH モードに変更されます。
• {SJIS} … 文字モードが SJIS モードに変更されます。
• {8801} … システムモードが 8801 モードに変更されます。
• {9801} … システムモードが 9801 モードに変更されます。
• {VSK} … システムモードが VSK モードに変更されます。
• {DELAY1:xx} … コマンドが1つ実行されるごとに実行を遅らせる遅延時間を設定します。xx
は 10 進表記の整数です。
• {DELAY2:yy} … FOR~NEXT、GOTO、IF などによる分岐に対して実行を遅らせる遅延時間を設
定します。yy は 10 進表記の整数です。
【参照】KANJI、NEW ON、サンプルプログラム「samples/REM.BAS」
RENUM コマンド
【機能】 プログラムの行番号を付け替えます。
【書式】 RENUM 新行番号 [, 旧行番号] [, 増分 ]
【説明】 RENUM コマンドは、行番号を振りなおします。旧番号で指定された行は、新行番号になり、
それ以降の行の行番号は、増分ずつ増加していきます。旧番号が省略された場合は、プログラムの最
初の行になります。プログラム中で分岐するために記載された行番号も変更されますが、参照してい
る行番号が存在しない場合は Undefined line xxxxx in yyyyy のようなメッセージが表示されま
命令リファレンス
す。
【参照】LIST、DELETE、サンプルプログラム「samples/RENUM.BAS」
RESTORE コマンド
【機能】READ の読み込み位置を行番号で指定します。
【書式】 RESTORE [ 行番号 ]
【説明】READ コマンドでデータの読み込みを開始する位置を行番号で指定します。行番号を省略する
と、読み込み位置は最初に移動します。
【参照】READ、DATA、サンプルプログラム「samples/RESTORE.BAS」
RESUME コマンド
【機能】 エラー処理ルーチンを終了し、プログラムの実行を再開します。
【書式 1】 RESUME [0]
【書式 2】 RESUME NEXT
【書式 3】 RESUME 行番号
【説明】ON ERROR GOTO によりエラー処理ルーチンに分岐した後にプログラムの実行を再開するとき
に RESUME を使います。
• RESUME または RESUME 0 … エラーの原因となった文からプログラムの実行が再開されます。
エラー処理ルーチンがエラーの原因を取り除かないと再びエラー処理ルーチンへ戻ります。
• RESUME NEXT … エラーの原因となった文のすぐ次の文から処理を再開します。
• RESUME 行番号 … 行番号で指定された行から実行を再開します。
【参照】ON ERROR GOTO、サンプルプログラム「samples/RESUME.BAS」
97
98
RETURN コマンド
【機能】 サブルーチンから戻ります。
【書式】 RETURN [ 行番号 ]
【説明】GOSUB などで呼び出されたサブルーチンからサブルーチン呼び出し側に制御を戻します。行
番号を省略すると、呼び出した文のすぐ次の文から実行を続けます。
【参照】GOSUB、サンプルプログラム「samples/GOSUB.BAS」
RIGHT$関数
【機能】文字列の右側から指定された長さの文字列を返します。
【書式】 RIGHT$( 文字列 , 数式)
【説明】文字列の右側から数式バイトの文字列を取り出し、それを値として返す関数です。数式の値は
0~255 の範囲で指定します。数式の値が 0 の場合は空文字列("")を返します。数式の値が、文字
列の長さを超える場合は、文字列そのものを返します。
【参照】LEFT$、MID$、LEN、サンプルプログラム「samples/RIGHT_.BAS」
RND 関数
【機能】 乱数の値を返します。
【書式】 RND [( 数式 )]
【文例】 PRINT RND ⇒ 次の乱数
【説明】0 以上 1 未満の乱数値を返します。発生する乱数列は、RUN や CLEAR コマンドが実行される
と初期化されます。RANDOMIZE コマンドで、生成される乱数のパターンを変更することができます。
発生する乱数は数式の値によって次のようになります。
• 数式が負の場合 … 乱数系が初期化され、初期値を返します。
• 数式が 0 の場合 … 1 つ前に発生した乱数の値を返します。
• 数式が正の場合 … 次の乱数を返します。
命令リファレンス
数式が省略された場合は、次の乱数を返します。
【参照】RANDOMIZE、サンプルプログラム「samples/RND.BAS」
ROLL コマンド
【機能】グラフィック画面をスクロールさせます。
【書式】 ROLL DY [, DX ] [, Y/N ]
【説明】グラフィック画面のイメージを、指定されたピクセル数だけずらします。DY は縦方向に、
DX は横方向にスクロールする量です。DY が正の場合は上方向に、負の場合は下方向にスクロール
します。DX が正の場合は左方向に、負の場合は右方向に、DX のピクセル数の絶対値以下で最も大
きい 8 の倍数の量だけスクロールします。8801 の場合は、DX と Y/N は指定できず、DY は-197~
197 の値に制限されます (8801 のみ)。9801 の場合は、DY の値は、640×200 モードのとき-199~
199 に、640×400 モードのとき-399~399 に制限され、DX の値は-639~639 に制限されます (9801
のみ)。VSK モードのときは DY 、DX の値に制限はありません。Y/N に Y か N を指定すると、スク
ロールによって新たに現れた領域を決められた色でクリアできます (9801 のみ)。Y を指定した場合、
COLOR で指定された背景色で、N を指定するか省略した場合は、パレット番号 0 でクリアします。
【参照】 サンプルプログラム「samples/ROLL.BAS」
RUN コマンド
【機能】 プログラムの実行を開始します。
【書式 1】 RUN [行番号]
【書式 2】 RUN ファイル記述子 [,R]
【説明】引数を指定しない場合は、最初の行からプログラムを実行します。行番号を指定すると、その
行から実行します。ファイル記述子を文字列として指定すると、そのプログラムファイルを読み込ん
で実行します。R オプションを付けない場合は、実行前にすべてのファイルが閉じられますが、R オ
プションを指定した場合は、ファイルは開いたままになります。
【参照】STOP、CONT
99
100
SAVE コマンド
【機能】 メモリー上のプログラムをファイルに保存します。
【書式 1】 SAVE ファイル記述子 [,A]
【書式 2】 SAVE ファイル記述子 ,P
【文例】SAVE "MYPROGRAM.BAS" ⇒ プログラムを"MYPROGRAM.BAS"というファイル名で保存
【説明】ファイル記述子で指定されたファイル名でメモリー上の現在のプログラムをファイルに保存
します。指定されたファイル名と同じ名前のファイルがあった場合は、上書きされます。A オプショ
ンを指定した場合は、プログラムはアスキー形式で保存されます。P オプションを指定した場合は暗
号化されたバイナリー形式で保存されます。P オプションのついたプログラムは LIST や EDIT コマ
ンドなどで表示したり編集したりすることはできません。P オプションは解除できません。
【参照】LOAD、NEW
SCREEN コマンド
【機能】グラフィック画面に対してさまざまなモードを設定します。
【書式】 SCREEN [ 画面モード ] [, 画面スイッチ ] [, アクティブページ] [, ディスプレイページ
]
【説明】画面モードは、カラー、白黒、分解能などの基本的なモードを設定する引数で、次のような意
味があります。
画面モード
画面モード名
分解能(横 × 縦)
使用可能ページ数
0
カラーモード
640×200 ピクセル
4
1
白黒モード
640×200 ピクセル
12 (16*)
2
高分解能白黒モード
640×400 ピクセル
6 (8*)
3
高分解能カラーモード
640×400 ピクセル
2
※ここで*のついた数値は、スーパー 16 色モードの場合の値です。
※ PC-8801 の場合は、高分解能カラーモードは利用できません。
画面スイッチは、0~3 の値で、次のような意味を持ちます。
• 0 … グラフィックの表示を行い、通常描画モードにします。
• 1 … グラフィックの表示を行い、高速描画モードにします。
101
命令リファレンス
• 2 … グラフィックを一時的に非表示にし、通常描画モードにします。
• 3 … グラフィックを一時的に非表示にし、高速描画モードにします。
※高速描画モードは PC-8801 のみ有効で、VeySicK では意味を持ちません。
アクティブページは、実際に描画を行うページを指定するもので、0~((使用可能ページ数)-1) を指
定できます。((アクティブページ)+1) が描画を行うページ番号になります。
ディスプレイページは、どのページを表示するかを決定するもので、カラーモードによって意味は異
なります。8 色モードの場合は、ディスプレイページは以下の意味になります。
指定値
カラーモード
白黒モード
高分解能カラーモード
高分解能白黒モード
0
全ページ非表示
全ページ非表示
全ページ非表示
全ページ非表示
1
ページ 1 のみ表示
ページ 1 のみ表示
ページ 1 のみ表示
ページ 1 のみ表示
2
ページ 2 のみ表示
ページ 2 のみ表示
ページ 2 のみ表示
×
3
×
ページ 1,2 を合成表示
ページ 1,2 を合成表示
×
4
×
ページ 3 のみ表示
ページ 3 のみ表示
×
5
×
ページ 1,3 を合成表示
ページ 1,3 を合成表示
×
6
×
ページ 2,3 を合成表示
ページ 2,3 を合成表示
×
7
×
ページ 1,2,3 を合成表示
ページ 1,2,3 を合成表示
×
8
全ページ非表示
全ページ非表示
全ページ非表示
全ページ非表示
9
×
ページ 4 のみ表示
×
×
10
×
ページ 4 のみ表示
×
×
11
×
ページ 4,5 を合成表示
×
×
12
×
ページ 6 のみ表示
×
×
13
×
ページ 4,6 を合成表示
×
×
14
×
ページ 5,6 を合成表示
×
×
15
×
ページ 4,5,6 を合成表示
×
×
16
全ページ非表示
全ページ非表示
全ページ非表示
全ページ非表示
17
ページ 3 のみ表示
ページ 7 のみ表示
ページ 4 のみ表示
ページ 2 のみ表示
18
ページ 4 のみ表示
ページ 8 のみ表示
ページ 5 のみ表示
×
19
×
ページ 7,8 を合成表示
ページ 4,5 を合成表示
×
20
×
ページ 9 のみ表示
ページ 6 のみ表示
×
21
×
ページ 7,9 を合成表示
ページ 4,6 を合成表示
×
22
×
ページ 8,9 を合成表示
ページ 5,6 を合成表示
×
23
×
ページ 7,8,9 を合成表示
ページ 4,5,6 を合成表示
×
24
全ページ非表示
全ページ非表示
全ページ非表示
全ページ非表示
25
×
ページ 10 のみ表示
×
×
26
×
ページ 11 のみ表示
×
×
102
指定値
カラーモード
白黒モード
高分解能カラーモード
高分解能白黒モード
27
×
ページ 10,11 を合成表示
×
×
28
×
ページ 12 のみ表示
×
×
29
×
ページ 10,12 を合成表示
×
×
30
×
ページ 11,12 を合成表示
×
×
31
×
ページ 10,11,12 を合成表示
×
×
※ 8801 の場合は、ディスプレイページには 0~7 の値しか指定できません (8801 のみ)。
※ × がつけられた値を指定すると、Illegal function call エラーが発生します。
16 色モードの場合は、ディスプレイページは以下の意味になります (9801 のみ)。
指定値
カラーモード
白黒モード
高分解能カラーモード
高分解能白黒モード
0
全ページ非表示
全ページ非表示
全ページ非表示
全ページ非表示
1
ページ 1 のみ表示
ページ 1 のみ表示
ページ 1 のみ表示
ページ 1 のみ表示
2
ページ 2 のみ表示
ページ 2 のみ表示
ページ 2 のみ表示
×
3
×
ページ 1,2 を合成表示
ページ 1,2 を合成表示
×
4
×
ページ 3 のみ表示
ページ 3 のみ表示
×
5
×
ページ 1,3 を合成表示
ページ 1,3 を合成表示
×
6
×
ページ 2,3 を合成表示
ページ 2,3 を合成表示
×
7
×
ページ 1,2,3 を合成表示
ページ 1,2,3 を合成表示
×
8
×
ページ 4 のみ表示
ページ 4 のみ表示
×
9
×
ページ 1,4 を合成表示
ページ 1,4 を合成表示
×
10
×
ページ 2,4 を合成表示
ページ 2,4 を合成表示
×
11
×
ページ 1,2,4 を合成表示
ページ 1,2,4 を合成表示
×
12
×
ページ 3,4 を合成表示
ページ 3,4 を合成表示
×
13
×
ページ 1,3,4 を合成表示
ページ 1,3,4 を合成表示
×
14
×
ページ 2,3,4 を合成表示
ページ 2,3,4 を合成表示
×
15
×
ページ 1,2,3,4 を合成表示
ページ 1,2,3,4 を合成表示
×
16
全ページ非表示
全ページ非表示
全ページ非表示
全ページ非表示
17
×
ページ 5 のみ表示
×
×
18
×
ページ 6 のみ表示
×
×
19
×
ページ 5,6 を合成表示
×
×
20
×
ページ 7 のみ表示
×
×
21
×
ページ 5,7 を合成表示
×
×
22
×
ページ 6,7 を合成表示
×
×
23
×
ページ 5,6,7 を合成表示
×
×
103
命令リファレンス
指定値
カラーモード
白黒モード
高分解能カラーモード
高分解能白黒モード
24
×
ページ 8 のみ表示
×
×
25
×
ページ 5,8 を合成表示
×
×
26
×
ページ 6,8 を合成表示
×
×
27
×
ページ 5,6,8 を合成表示
×
×
28
×
ページ 7,8 を合成表示
×
×
29
×
ページ 5,7,8 を合成表示
×
×
30
×
ページ 6,7,8 を合成表示
×
×
31
×
ページ 5,6,7,8 を合成表示
×
×
32
全ページ非表示
全ページ非表示
全ページ非表示
全ページ非表示
33
ページ 3 のみ表示
ページ 9 のみ表示
ページ 5 のみ表示
ページ 2 のみ表示
34
ページ 4 のみ表示
ページ 10 のみ表示
ページ 6 のみ表示
×
35
×
ページ 9,10 を合成表示
ページ 5,6 を合成表示
×
36
×
ページ 11 のみ表示
ページ 7 のみ表示
×
37
×
ページ 9,11 を合成表示
ページ 5,7 を合成表示
×
38
×
ページ 10,11 を合成表示
ページ 6,7 を合成表示
×
39
×
ページ 9,10,11 を合成表示
ページ 5,6,7 を合成表示
×
40
×
ページ 12 のみ表示
ページ 8 のみ表示
×
41
×
ページ 9,12 を合成表示
ページ 5,8 を合成表示
×
42
×
ページ 10,12 を合成表示
ページ 6,8 を合成表示
×
43
×
ページ 9,10,12 を合成表示
ページ 5,6,8 を合成表示
×
44
×
ページ 11,12 を合成表示
ページ 7,8 を合成表示
×
45
×
ページ 9,11,12 を合成表示
ページ 5,7,8 を合成表示
×
46
×
ページ 10,11,12 を合成表示
ページ 6,7,8 を合成表示
×
47
×
ページ 9,10,11,12 を合成表示
ページ 5,6,7,8 を合成表示
×
48
全ページ非表示
全ページ非表示
全ページ非表示
全ページ非表示
49
×
ページ 13 のみ表示
×
×
50
×
ページ 14 のみ表示
×
×
51
×
ページ 13,14 を合成表示
×
×
52
×
ページ 15 のみ表示
×
×
53
×
ページ 13,15 を合成表示
×
×
54
×
ページ 14,15 を合成表示
×
×
55
×
ページ 13,14,15 を合成表示
×
×
56
×
ページ 16 のみ表示
×
×
57
×
ページ 13,16 を合成表示
×
×
58
×
ページ 14,16 を合成表示
×
×
104
指定値
カラーモード
白黒モード
高分解能カラーモード
高分解能白黒モード
59
×
ページ 13,14,15 を合成表示
×
×
60
×
ページ 15,16 を合成表示
×
×
61
×
ページ 13,15,16 を合成表示
×
×
62
×
ページ 14,15,16 を合成表示
×
×
63
×
ページ 13,14,15,16 を合成表示
×
×
SCREEN を実行すると、論理ウィンドウ、ビューポート、LP は初期状態に戻ります。LP の初期状態
は (0,0) です。
【参照】CONSOLE、COLOR、サンプルプログラム「samples/SCREEN.BAS」
SEARCH 関数
【機能】配列変数の中から指定された値を探し、その添字を返します。
【書式】 SEARCH( 配列変数名 , 整数 [, 開始添字 ] [, 増分])
【説明】 配列変数名で指定された配列変数の中から整数で指定された値を探し、最初に見つかった要
素の添字を返します。配列変数名は、1 次元の整数型配列でなければなりません。開始添字は、探し
始める添字を指定します。増分は、値を探すときに、添字をどのくらい増やしていくかを指定します。
増分の省略時は 1 が使われます。
【参照】FOR…TO…STEP~NEXT、サンプルプログラム「samples/SEARCH.BAS」
SET コマンド
【機能】 ディスクまたはファイルの属性を設定します。
【書式 1】 SET ドライブ番号,"属性文字"
【書式 2】 SET #ファイル番号,"属性文字"
【書式 3】 SET ファイル記述子,"属性文字"
【説明】指定されたドライブやファイルに属性を設定します。属性文字は大文字の"P","R"で指定しま
す。"P"はライトプロテクト(書き込み禁止)属性を、"R"はリードアフターライト(書き込み後、読
み込みチェック)属性を意味します。ライトプロテクト属性がついたファイルは、書き込み・変更・
削除ができなくなります。
命令リファレンス
【注意】ATTR$、VeySicK ではドライブの属性を設定できません。また、VeySicK では"R"は意味を持
ちません。
SGN 関数
【機能】 数値の符号の情報を返します。
【書式】 SGN( 数式 )
【文例】 PRINT SGN(-3) ⇒ -1
【説明】数式の値が正の場合は 1 を、0 の場合は 0 を、負の場合は-1 を返します。
【参照】 サンプルプログラム「samples/SGN.BAS」
SIN 関数
【機能】 サイン(正弦)の値を返します。
【書式】 SIN( 数式 )
【説明】数式の値のサイン(正弦)の値を返します。数式の値の単位はラジアンです。
【参照】COS、TAN、サンプルプログラム「samples/SIN.BAS」
SPACE$関数
【機能】 指定した長さの空白文字列を返します。
【書式】 SPACE$( 数式 )
【説明】数式で指定された長さの空白の文字列を返します。数式の値の範囲は 0~255 です (BASIC の
み)。
【参照】STRING$、サンプルプログラム「samples/SPACE_.BAS」
105
106
SPC 関数
【機能】 指定した長さの空白を出力します。
【書式】 SPC( 数式 )
【文例】PRINT "<";SPC(2);">" ⇒ <
>
【説明】SPC 関数は、PRINT コマンドなどの出力でのみ使用できます。数式の値の範囲は-32768~
32768 まで許されますが、負の数は 0 とみなされます。また、正の数でも現在の水平表示文字数以上
の場合は、数式をその水平表示文字数で割った余りを値とします。
【参照】SPACE$、サンプルプログラム「samples/SPC.BAS」
SQR 関数
【機能】 平方根を返します。
【書式】 SQR( 数式 )
【文例】 PRINT SQR(16) ⇒ 4
【説明】数式で指定された値の平方根を返します。数式が負の場合は、Illegal function call エ
ラーが発生します。
【参照】 サンプルプログラム「samples/SQR.BAS」
STOP コマンド
【機能】 プログラムの実行を停止してコマンドレベルに戻ります。
【書式】 STOP
【説明】STOP コマンドは、プログラムの実行を停止します。プログラムのどこに置いてもかまいませ
ん。STOP を実行すると Break in xxxxx のようなメッセージが表示され、コマンドレベルに戻りま
す。END コマンドとは異なり、STOP はファイルを閉じません。CONT コマンドで実行を再開できるこ
とがあります。
【参照】END、CONT、サンプルプログラム「samples/STOP.BAS」
命令リファレンス
STOP ON/OFF/STOP コマンド
【機能】 STOP キーによる割り込みを許可・禁止・停止する。
【書式 1】 STOP ON
【書式 2】 STOP OFF
【書式 3】 STOP STOP
【説明】STOP キー (または Ctrl+C キー) を押したときに発生する割り込みを許可(ON)
、禁止(OFF)
、
または停止(STOP)します。停止中に STOP(または Ctrl+C) が押された場合は、次に許可あるいは禁
止されるまでその出来事を覚えておき、許可されたときに割り込みが発生します。
【参照】ON STOP GOSUB、サンプルプログラム「samples/ON_STOP.BAS」
STR$関数
【機能】 数値を文字列に変換した値を返します。
【書式】 STR$( 数式 )
【文例】PRINT "<<"+STR$(12)+">>" ⇒ ‘« 12»“
【説明】数式によって指定された値を、文字列に変換した値を返します。変換後の文字列の最初の文字
は、空白かマイナス符号となります。
【参照】VAL、OCT$、HEX$、サンプルプログラム「samples/STR_.BAS」
STRING$関数
【機能】 指定された文字からなる指定された長さの文字列を返します。
【書式 1】 STRING$( 式 , 文字列)
【書式 2】 STRING$( 式 , 文字コード)
【文例】 PRINT STRING$(3, "*") ⇒ ***
【説明】文字は、文字列か文字コードで指定します。文字列の場合、最初の 1 文字が使われます。文字
コードの場合は、0~255 の数値か、シフト JIS コードで全角コードを指定できます。
【参照】 サンプルプログラム「samples/STRING_.BAS」
107
108
SWAP コマンド
【機能】 2 つの変数の値を交換します。
【書式】 SWAP 変数名 1 , 変数名 2
【文例】 SWAP A$,B$ ⇒ 変数 A$,B$の値を交換
【説明】2 つの変数は同じ型でなければなりません。変数名 1 は、定義されていなくてもかまいませ
ん。変数名 2 が配列変数以外の場合、その変数には値が定義されていなければなりません。
【参照】 サンプルプログラム「samples/SWAP.BAS」
TAB 関数
【機能】 指定された桁位置まで空白を出力します。
【書式】 TAB( 数式 )
【文例】PRINT TAB(4);"|" ⇒ 5 桁目に"|"を出力
【説明】TAB 関数は、PRINT コマンドなどで出力する場合のみで使用できます。数式の値が負の場合
は、0 とみなされます。数式の値が正の場合は、現在の水平表示文字数で割った余りを値とします。
【参照】SPC、サンプルプログラム「samples/TAB.BAS」
TAN 関数
【機能】 タンジェント(正接)を返します。
【書式】 TAN( 数式 )
【説明】数式の値のタンジェント(正接)を返します。数式の値の単位はラジアンです。
【参照】SIN、COS、サンプルプログラム「samples/TAN.BAS」
命令リファレンス
TERM コマンド (未対応)
【機能】 システムをターミナルモードにします。
【書式】TERM "[COM:][パリティ [ビット [ストップビット [XON スイッチ [S 引数]]]]]" [, モー
ド ][, 変数領域の大きさ ]
【説明】 BASIC モードからターミナルモードになります。
【注意】 VeySick では現在、ターミナルモードは利用できません。
TIME$関数
【機能】 現在の時刻を取得または設定します。
【書式 1】 TIME$
【書式 2】 TIME$="HH:MM:SS"
【説明】コンピューター内部の時計の現在の時刻を取得または設定します。時刻は 8 文字の文字列で
返され、文字列変数に代入したり、PRINT コマンドで表示したりできます。
【参照】DATE$、ON TIME$ GOSUB、サンプルプログラム「samples/TIME_.BAS」
TIME$ ON/OFF/STOP 関数
【機能】 時刻による割り込みを許可・禁止・停止します。
【書式 1】 TIME$ ON
【書式 2】 TIME$ OFF
【書式 3】 TIME$ STOP
【説明】時刻による割り込みを許可(ON)、禁止(OFF)
、または停止(STOP)します。停止中に指定時
刻になった場合は、次に許可あるいは禁止されるまでその出来事を覚えておき、許可されたときに割
り込みが発生します。
【参照】ON TIME$ GOSUB、サンプルプログラム「samples/ON_TIME_.BAS」
109
110
TRON/TROFF コマンド
【機能】 実行トレースモードを制御します。
【書式 1】 TRON
【書式 2】 TROFF
【説明】プログラムをデバッグするために、「実行トレースモード」があります。実行トレースモード
でプログラムを実行すると、実行中の行番号を画面に出力しながら実行されます。TRON は実行トレー
スモードに入るコマンドです。TROFF は実行トレースモードを解除するコマンドです。NEW コマンド
も実行トレースモードを解除します。
【参照】RUN、サンプルプログラム「samples/TRON_TROFF.BAS」
USR 関数 (未対応)
【機能】 機械語の利用者関数ルーチンを呼び出し、その値を返します。
【書式】 USR[番号]( 引数)
【説明】USR 関数は、機械語でできた利用者関数ルーチンを呼び出します。USR 関数を実行する前に
DEF USR コマンドで開始アドレスを指定する必要があります。番号は 0~9 の値です。番号が省略さ
れた場合は、0 とみなされます。引数によって、BASIC から機械語ルーチンに値を渡すことができま
す。
【参照】 サンプルプログラム「samples/DEF_USR.BAS」
VAL 関数
【機能】 文字列の表す数値を返します。
【書式】 VAL( 文字列 )
【説明】文字列を数値に変換した値を返します。変換できない場合は 0 を返します。文字列中の空白
は無視されます。
【参照】STR_、サンプルプログラム「samples/VAL.BAS」
命令リファレンス
VARPTR 関数
【機能】変数の格納されているメモリーアドレスを返すか、ファイルに割り当てられているバッファの
先頭アドレスを返します。
【書式 1】 VARPTR( 変数 [, 機能])
【書式 2】 VARPTR(#ファイル番号 )
【説明】機能に 0 を指定すると、変数のデータが格納されているメモリーアドレスを返します。機能に
0 以外の整数を指定すると、変数のセグメントベースが返されます。機能を省略すると、0 とみなされ
ます。変数には値が代入されていなければなりません。ファイル番号が指定された場合は、PC-9801
の場合、指定したファイル番号に割り当てられているファイルコントロールブロックの開始番地を返
し、PC-8801 の場合、そのファイル番号に割り当てられている入出力バッファの先頭番地-9 を返し
ます。
【注意】 VeySicK ではファイル番号と機能を指定できません。
【参照】LET、DIM、サンプルプログラム「samples/VARPTR.BAS」
VIEW コマンド
【機能】グラフィック画面の表示領域(ビューポート)を指定します。
【書式】 VIEW( SX1 , SY1 )-( SX2 , SY2 ) [, 領域色] [, 境界色 ]
【説明】 ( SX1, SY1 ) を左上の頂点、( SX2, SY2 ) を右下の頂点とするオリジナルスクリーン座標上
の長方形をグラフィック画面の新しい表示領域(ビューポート)に設定します。
「オリジナルスクリー
ン座標」とは、ディスプレイ画面のピクセルと1対1に対応する物理的な座標のことです。WINDOW コ
マンドによって指定されたワールド座標系の領域に入る図形は、ビューポート内に表示されるように
なります。領域色が指定された場合、指定されたパレット番号でビューポート内を塗りつぶします。
境界色が指定された場合、指定されたパレット番号でビューポートの外部に線を描きます。LP は、
ビューポートの左上の頂点に設定されます。
【参照】WINDOW、サンプルプログラム「samples/VIEW.BAS」
111
112
VIEW 関数
【機能】 ビューポートの情報を返します。
【書式】 VIEW( 機能 )
【説明】VIEW コマンドで指定されているビューポートの情報を返します。機能の意味は次の通りです。
• 0 … ビューポートの左上の頂点の X 座標。
• 1 … ビューポートの左上の頂点の Y 座標。
• 2 … ビューポートの右下の頂点の X 座標。
• 3 … ビューポートの右下の頂点の Y 座標。
返される値は、オリジナルスクリーン座標です。
「オリジナルスクリーン座標」とは、ディスプレイ画
面のピクセルと1対1に対応する物理的な座標のことです。
【参照】 サンプルプログラム「samples/VIEW.BAS」
WAIT コマンド (未対応)
【機能】 入力ポートを監視し、その間プログラムの実行を中断します。
【書式】 WAIT I/O アドレス , 式 1 [, 式 2 ]
【注意】 VeySicK では WAIT コマンドは利用できません。
【参照】INP、サンプルプログラム「samples/WAIT.BAS」
WHILE~WEND コマンド
【機能】 条件が満たされている間、繰り返し実行します。
【書式】 WHILE 論理式 : ~ : WEND
【説明】論理式が真 (0 以外) の場合、WHILE コマンドと WEND コマンドの間にはさまれた命令を実行
します。論理式が偽 (0) の場合、対応する WEND に実行位置を移動します。
【参照】FOR…TO…STEP~NEXT、サンプルプログラム「samples/WHILE_WEND.BAS」
命令リファレンス
WIDTH コマンド
【機能】 デバイスやファイルに対して文字領域を設定します。
【書式 1】 WIDTH 桁数 [, 行数]
【書式 2】 WIDTH ファイル記述子 , サイズ
【書式 3】 WIDTH #ファイル番号, サイズ
【文例】WIDTH 40,25 ⇒ テキスト画面を 40×25 モードにする
【説明】書式 1 の場合、テキスト画面の文字領域を設定します。桁数に指定できるのは、80 か 40 で
す。40 を指定した場合、文字の横幅は 2 倍となります。行数に指定できるのは、20 か 25 です。25 の
場合、行と行の間にすき間はありません。書式 2 の場合、指定できるファイルは、COM 通信ポート
か、ラインプリンターです。サイズは 0~255 の値で、0 は 256 とみなされます。ラインプリンター
を指定した場合は、WIDTH LPRINT コマンドと同じ動作となり、1 行に印刷できる文字数となります。
COM 通信ポートを指定した場合、サイズはバッファのサイズとなります。
【参照】CONSOLE、サンプルプログラム「samples/WIDTH.BAS」
WIDTH LPRINT コマンド
【機能】 ラインプリンターに出力される 1 行の文字数を設定します。
【書式】 WIDTH LPRINT 文字数
【説明】ラインプリンターの 1 行に印字することのできる文字数を設定します。設定できる範囲は 0~
255 で、0 は 256 として解釈されます。
【注意】 VeySicK の場合、ラインプリンターは標準出力になります。
【参照】LPOS、WIDTH、サンプルプログラム「samples/WIDTH_LPRINT.BAS」
WINDOW コマンド
【機能】ビューポートに表示するワールド座標系内の領域を設定します。
【書式】 WINDOW( WX1 , WY1 )-( WX2 , WY2 )
【説明】 (WX1, WY1) を左上の頂点、(WX2, WY2) を右下の頂点とするワールド座標系上の長方形
で囲まれた領域を、スクリーン上のビューポートに表示する領域として指定します。WINDOW コマ
113
114
ンド実行後は、その領域内に入る図形は、VIEW コマンドで指定された領域(ビューポート)内に表示
されます。WINDOW で設定した領域は「論理ウィンドウ」と呼ばれます。WINDOW が実行されると、LP
は論理ウィンドウの左上の頂点に設定されます。
【参照】VIEW、サンプルプログラム「samples/WINDOW.BAS」
WINDOW 関数
【機能】 現在の論理ウィンドウの情報を返します。
【書式】 WINDOW( 機能 )
【説明】WINDOW コマンドによって設定された現在の論理ウィンドウの情報を返します。機能は 0~3
で指定し、次のような意味を持ちます。
• 0 … 論理ウィンドウの左上の頂点の X 座標 (WX1)。
• 1 … 論理ウィンドウの左上の頂点の Y 座標 (WY1)。
• 2 … 論理ウィンドウの左上の頂点の X 座標 (WX2)。
• 3 … 論理ウィンドウの左上の頂点の Y 座標 (WY2)。
WINDOW が返す値は、ワールド座標です。
【参照】 サンプルプログラム「samples/WINDOW.BAS」
WRITE コマンド
【機能】テキスト画面へデータを出力します。
【書式】 WRITE 式 [ 式区切り 式] ...
【説明】式により指定された数値や文字列をテキスト画面に出力します。式区切りはカンマ(,)かセ
ミコロン(;)です。WRITE ではカンマとセミコロンには区別はなく、常に区切りとしてカンマが出
力されます。WRITE はほぼ PRINT コマンドとほぼ同じですが、余分な空白は詰められ、カンマ区切り
で出力されます。文字列は二重引用符(")で囲まれて出力されます。
【参照】PRINT、PRINT USING、WRITE#、サンプルプログラム「samples/WRITE.BAS」
付属資料
WRITE#コマンド
【機能】 シーケンシャルファイルへデータを出力します。
【書式】 WRITE #ファイル番号 , 式 [ 式区切り 式 ] ...
【説明】式により指定された数値や文字列をファイル番号で指定されたシーケンシャルファイルに出
力します。式区切りはカンマ(,)かセミコロン(;)です。WRITE#ではカンマとセミコロンには区別
はなく、常に区切りとしてカンマが出力されます。WRITE#はほぼ [PRINT#](#PRINT_SHARP) コマ
ンドとほぼ同じですが、余分な空白は詰められ、カンマ区切りで出力されます。文字列は二重引用符
(“‘)で囲まれて出力されます。
【参照】WRITE、PRINT#、サンプルプログラム「samples/WRITE_SHARP.BAS」
付属資料
エラーメッセージ一覧
【メッセージ】 Bad allocation table
【エラー番号】 69
【原因】 ディスクの内容が壊れている。
【対策】 ディスクを再フォーマットするか、専門の業者に頼んで復元する。
【メッセージ】 Bad drive number
【エラー番号】 70
【原因】 ドライブ番号の指定が間違っている。
【対策】 正しいドライブ番号を指定する。
【メッセージ】 Bad file name
【エラー番号】 56
【原因】 ファイル名の指定が間違っている。
【対策】 正しいファイル名を指定する。
115
116
【メッセージ】 Bad file number
【エラー番号】 52
【原因】 開くことが可能なファイル数を超えるファイル番号を指定した。
【対策】ファイル番号を小さくするか、開くことが可能なファイル数を増やす。
【メッセージ】 Bad track/sector
【エラー番号】 71
【原因】 ヘッド番号、トラック、セクタの指定が間違っている。
【対策】 正しいヘッド番号、トラック、セクタを指定する。
【メッセージ】 Can't continue
【エラー番号】 17
【原因】 プログラムの書き換えなどで実行を再開することができない。
【対策】CONT コマンドを使用したい場合は、プログラムを書き換えたりしてはならない。
【メッセージ】 Direct statement in file
【エラー番号】 57
【原因】 ファイルの中に行番号のない行が存在した。
【対策】プログラムファイルが壊れているか、ファイルの内容が間違っているので修正する。
【メッセージ】 Disk full
【エラー番号】 68
【原因】 ディスクの空き容量が足りない。
【対策】 空き容量の大きいディスクを使う。
【メッセージ】 Disk I/O error
【エラー番号】 64
【原因】 ディスクとの入出力中にエラーが発生した。
【対策】 ディスクが壊れているので、ディスクを交換する。
付属資料
【メッセージ】 Disk offline
【エラー番号】 62
【原因】ディスクのセットされていないドライブに対して入出力を行おうとした。
【対策】 ディスクを正しくドライブにセットする。
【メッセージ】 Division by Zero (/0)
【エラー番号】 11
【原因】 0 による割り算が行われてオーバーフローが発生した。
【対策】 0 による割り算にならないようにする。
【メッセージ】 Duplicate Definition
【エラー番号】 10
【原因】 一度宣言した配列を二重定義しようとした。
【対策】別の配列名を使うか、ERASE コマンドで古い配列を消去する。
【メッセージ】 Duplicate label
【エラー番号】 31
【原因】 プログラムの中に同じラベル名が2つ以上存在する。
【対策】 ラベル名が重複しないようにする。
【メッセージ】 Feature not available
【エラー番号】 33
【原因】 現在の状態では実行できない命令を実行しようとした。
【対策】その命令が実行できるようにシステムモードを変更するか、NEW CMD を実行する。あるいは、
その命令がサポートされるまで待つ。
【メッセージ】 FIELD overflow
117
118
【エラー番号】 50
【原因】FIELD コマンドで、ランダムファイルのレコード長として合計 256 バイト以上の領域を指定
した。
【対策】 フィールドの合計サイズを 256 バイト以内にする。
【メッセージ】 File already exist
【エラー番号】 65
【原因】 ファイルがすでに存在する。
【対策】 ファイル名を変更する。
【メッセージ】 File already open
【エラー番号】 54
【原因】 ファイルがすでに開かれている。
【対策】CLOSE コマンドでいったんファイルを閉じる。
【メッセージ】 File not found
【エラー番号】 53
【原因】 ファイルが見つからなかった。
【対策】 正しいドライブ名およびファイル名を指定する。
【メッセージ】 File not open
【エラー番号】 60
【原因】 開かれていないファイルを指定した。
【対策】 入出力命令の前に、ファイルを開いておく。
【メッセージ】 File write protected
【エラー番号】 61
【原因】 ファイルが書き込み禁止になっていた。
【対策】ファイルの属性を変更する。ファイルを開いている他のプログラムを終了する。
付属資料
【メッセージ】 FOR without NEXT
【エラー番号】 26
【原因】FOR~NEXT が正しく対応していない。
【対策】FOR~NEXT を正しく対応させる。
【メッセージ】 Illegal direct
【エラー番号】 12
【原因】ダイレクトモードで指定できない命令をダイレクトモードで指定した。
【対策】プログラムモードで実行する。
【メッセージ】 Illegal function call
【エラー番号】 5
【原因】 命令や関数の使い方が間違っている。
【対策】 命令や関数の使い方をリファレンスで確認する。
【メッセージ】 Illegal operation
【エラー番号】 74
【原因】スクロール範囲内に表示データがいっぱいに詰まっている場合、あるいはスクロール範囲内で
キー入力したデータがいっぱいに詰まっている場合に、スクロール開始行に対してインサートモード
でキー入力した。
【対策】 インサートモードを抜けてから、キー入力を行う。
【メッセージ】 Input past end
【エラー番号】 55
【原因】 ファイルの終端で入力命令が実行された。
【対策】読み込むデータサイズを修正するか、EOF、LOF 関数を使ってファイルの終端を検出する。
119
120
【メッセージ】 Line buffer overflow
【エラー番号】 23
【原因】 1 行で入力できる文字の範囲(255 バイト)を超えた。
【対策】 1 行の文字数を 255 バイト以内にする。
【メッセージ】 Missing operand
【エラー番号】 22
【原因】 命令中で必要な引数が指定されていない。
【対策】 リファレンスで書式を確認し、必要な引数を指定する。
【メッセージ】 NEXT without FOR
【エラー番号】 1
【原因】FOR~NEXT が正しく対応していない。
【対策】FOR~NEXT を正しく対応させる。
【メッセージ】 No RESUME
【エラー番号】 19
【原因】エラー処理ルーチンの終わりに RESUME コマンドがなく、プログラムの実行を継続できない。
【対策】RESUME、ON ERROR GOTO 0 のどちらかで終わらせるようにする。
【メッセージ】 Out of DATA
【エラー番号】 4
【原因】READ コマンドで次に読み込む ‘DATA がない。
【対策】DATA を増やすか、‘READ の呼び出しを減らす。
【メッセージ】 Out of memory
【エラー番号】 7
【原因】 メモリーが足りない。
【対策】プログラムが長すぎるか、配列が大きすぎるか、変数が多すぎるので、どれかを減らす。
付属資料
【メッセージ】 Out of string space
【エラー番号】 14
【原因】 文字列の全体量が、使用できるメモリー容量を超えてしまった。
【対策】 文字列や配列のサイズを小さくする。
【メッセージ】 Overflow (OV)
【エラー番号】 6
【原因】 演算結果や入力された数値が許させる範囲を超えた。
【対策】 データの型と、値の範囲を確認する。
【メッセージ】 Rename across disk
【エラー番号】 73
【原因】異なるドライブ上にあるファイルに対して ‘NAME コマンドを実行しようとした。
【対策】NAME コマンドでは、同じドライブを指定する。
【メッセージ】 RESUME without error
【エラー番号】 20
【原因】エラー処理ルーチンではないところに、RESUME コマンドがある。
【対策】エラー処理ルーチンに移動しないように、END コマンドでプログラムを終わらせる。
【メッセージ】 RETURN without GOSUB
【エラー番号】 3
【原因】GOSUB~RETURN コマンドが正しくしていない。
【対策】GOSUB~RETURN コマンドを正しく対応させる。
【メッセージ】 Sequential I/O only
【エラー番号】 59
121
122
【原因】シーケンシャル入出力で開かれたファイルで、シーケンシャル入出力以外の入出力命令を使用
した。または、MERGE コマンドでバイナリーファイルを指定した。
【対策】シーケンシャル入出力命令を使用するようにする。MERGE コマンドで読み込むファイルは、ア
スキー形式でセーブしておく。
【メッセージ】 String formula too complex
【エラー番号】 16
【原因】 文字列式が複雑すぎる。
【対策】 複雑な文字列式は、いくつかの式に分ける。
【メッセージ】 String too long
【エラー番号】 15
【原因】 1 つの文字列変数の長さが、255 バイトを超えている。
【対策】 文字列変数を2つに分けて処理する。
【メッセージ】 Subscript out of range
【エラー番号】 9
【原因】配列変数の添字の値が DIM コマンドで指定した範囲を超えている。
【対策】DIM コマンドで指定されている添字の範囲を確認する。
【メッセージ】 Syntax error
【エラー番号】 2
【原因】 入力した命令の文法が間違っている。
【対策】 リファレンスで命令の書式を確認する。
【メッセージ】 Tape read error
【エラー番号】 27
【原因】 磁気テープからの読み込み中にエラーが発生した。
【対策】 もう一度読み込みをやり直す。テープの異常を調べる。
付属資料
【メッセージ】 Type mismatch
【エラー番号】 13
【原因】 式・命令・関数に指定された引数などで型が一致していない。
【対策】 リファレンスで関数や命令の型を確認する。
【メッセージ】 Undefined label
【エラー番号】 32
【原因】 定義されていないラベルを参照した。
【対策】 ラベル名が間違っていないか確認する。
【メッセージ】 Undefined line number
【エラー番号】 8
【原因】 存在していない行番号を指定した。
【対策】 行番号を確認する。
【メッセージ】 Undefined user function
【エラー番号】 18
【原因】 存在しない利用者関数や機械語関数を呼び出そうとした。
【対策】関数名を確認する。DEF FN コマンドで使用する関数を定義する。機械語関数は、DEF USR コ
マンドで実行開始アドレスを指定する。
【メッセージ】 Unprintable error
【エラー番号】 21、24、25、28、他
【原因】 メッセージの定義されていないエラー。
【対策】ERROR 整数を実行してこのエラーが発生した場合は、その番号を利用者独自のエラー処理に
使用できる。
123
124
【メッセージ】 WEND without WHILE
【エラー番号】 30
【原因】WHILE~WEND が正しく対応していない。
【対策】WHILE~WEND を正しく対応させる。
【メッセージ】 WHILE without WEND
【エラー番号】 29
【原因】WHILE~WEND が正しく対応していない。
【対策】WHILE~WEND を正しく対応させる。
制御コード表
文字コード
対応するキー
エディター中の機能
実行中の機能
1
Ctrl+A
「HELP」キーと同じ
-
2
Ctrl+B
一つ前のワードへ移動
-
3
Ctrl+C
「STOP」キーと同じ
-
4
Ctrl+D
1ワード削除
-
5
Ctrl+E
行末まで削除
-
6
Ctrl+F
一つ先のワードへ移動
-
7
Ctrl+G
スピーカーを鳴らす
スピーカーを鳴らす
8
Ctrl+H
「BS」キーと同じ
バックスペース
9
Ctrl+I
「TAB」キーと同じ
水平タブ
10
Ctrl+J
行の連結(インサートモードでは行の分割)
ラインフィード
11
Ctrl+K
ホームポジション
ホームポジション
12
Ctrl+L
テキスト画面のクリア
テキスト画面のクリア
13
Ctrl+M
「Enter」キーと同じ
キャリッジリターン
15
Ctrl+O
画面への表示の切替
-
18
Ctrl+R
インサートモード切替
-
19
Ctrl+S
表示(スクロール)の一時停止
-
21
Ctrl+U
一行削除
-
24
Ctrl+X
行の最後へ移動
-
28
→
カーソルを右へ移動
カーソルを右へ移動
29
←
カーソルを左へ移動
カーソルを左へ移動
30
↑
カーソルを上へ移動
カーソルを上へ移動
125
付属資料
文字コード
31
対応するキー
エディター中の機能
実行中の機能
↓
カーソルを下へ移動
カーソルを下へ移動
文字コード表
半角文字の文字コードと文字の対応を表した表です。上位 4 ビットと下位 4 ビットはそれぞれ 16 進
数で表記されています。
図7
【例】文字"A"の上位 4 ビットは 4 で、下位 4 ビットは 1 なので、"A"の文字コードは&H41 です。
※全角文字の表示においてはシフト JIS コードや JIS コードが使われます。
誘導関数
関数として用意されていない三角関数のうち、いくつかは用意された関数を使って作り出すことがで
きます。以下の数式を参考にして下さい(誤差の範囲に注意が必要です)
。
126
目的とする関数
組み込み関数からの誘導式
セカント
SEC(X)=1/COS(X)
コセカント
CSC(X)=1/SIN(X)
コタンジェント
COT(X)=1/TAN(X)
アークサイン
ARCSIN(X)=ATN(X/SQR(-X*X+1))
アークコサイン
ARCCOS(X)=-ATN(X/SQR(-X*X+1))+1.5708
アークセカント
ARCSEC(X)=ATN(SQR(X*X-1))+(SGN(X)-1)*1.5708
アークコセカント
ARCCSC(X)=ATN(1/SQR(X*X-1))+(SGN(X)-1)*1.5708
アークコタンジェント
ARCCOT(X)=-ATN(X)+1.5708
ハイパーボリック・サイン
SINH(X)=(EXP(X)-EXP(-X))/2
ハイパーボリック・コサイン
COSH(X)=(EXP(X)+EXP(-X))/2
ハイパーボリック・タンジェント
TANH(X)=2/(EXP(X)+EXP(-X))
ハイパーボリック・セカント
SECH(X)=2/(EXP(X)+EXP(-X))
ハイパーボリック・コセカント
CSCH(X)=2/(EXP(X)-EXP(-X))
ハイパーボリック・コタンジェント
COTH(X)=EXP(-X)/(EXP(X)-EXP(-X))*2+1
ハイパーボリック・アークサイン
ARCSINH(X)=LOG(X+SQR(X*X+1))
ハイパーボリック・アークコサイン
ARCCOSH(X)=LOG(X+SQR(X*X-1))
ハイパーボリック・アークタンジェント
ARCTANH(X)=LOG((1+X)/(1-X))/2
ハイパーボリック・アークセカント
ARCSECH(X)=LOG(SQR(1-X*X)+1/X)
ハイパーボリック・アークコセカント
ARCCSCH(X)=LOG((SGN(X)*SQR(X*X+1)+1)/X)
ハイパーボリック・アークコタンジェント
ARCCOTH(X)=LOG((X+1)/(X-1))/2
VeySicK と実機 BASIC のキー対照表
実機 BASIC のキー
VeySick キー
SHIFT
Shift
CTRL
Ctrl
RETURN
Enter
STOP
Ctrl+C
HELP
End
BS
BackSpace (BkSp)
TAB
Tab
INS/DEL
Delete (Del)
SHIFT+INS/DEL
Insert (Ins)
127
付属資料
実機 BASIC のキー
VeySick キー
HOMECLR
Home
カナ
カタカナ/ひらがな
GRPH
Esc
ROLLUP
PageUp (PgUp)
ROLLDOWN
PageDown (PgDn)
VeySicK のメモリーモデル
• テキスト VRAM:&HF3C8H~&HFF7F (3000 バイト)
• 自由領域:&H8400~&HE5FF (25088 バイト)
テキスト VRAM の内容は、PC-8801 とほぼ同じです。
自由領域に格納される変数は、8801 の VARPTR 関数との互換性を保っています。
VeySicK 入力ポート表
キーが押されている間は、対応するビットがゼロになります。
ビット
&H00
&H01
&H02
&H03
&H04
&H05
&H06
&H07
0
Num0
Num8
‘
H
P
X
0
8
1
Num1
Num9
A
I
Q
Y
1
9
2
Num2
Num*
B
J
R
Z
2
:
3
Num3
Num+
C
K
S
[
3
;
4
Num4
D
L
T
|
4
,
5
Num5
E
M
U
]
5
.
6
Num6
F
N
V
ˆ
6
/
7
Num7
Enter
G
O
W
-
7
_
ビット
&H08
&H09
&H0A
&H0B
&H0C
&H0D
&H0E
0
Home
STOP
Tab
PgUp
F6
変換
Enter
1
↑
F1
↓
PgDn
F7
NumEnter
2
→
F2
←
F8
LShift
3
Del
F3
End
F9
Num.
全角
RShift
128
ビット
&H08
&H09
&H0A
&H0B
&H0C
4
GRPH
F4
Print
F10
5
かな
F5
Num-
BkSp
6
Shift
空白
Num/
Insert
7
Ctrl
Esc
Caps
Del
VeySicK のキーワード一覧
ABS
GO
LET
OUT
SIN
AKCNV$
GOSUB
LFILES
PAINT
SPACE$
AND
GOTO
LINE
PEEK
SPC
ASC
HELP
LIST
PEN
SQR
ATN
HEX$
LLIST
PLAY
SRQ
ATTR$
IEEE
LOAD
POINT
STATUS
AUTO
IF
LOC
POKE
STEP
BEEP
IMP
LOCATE
POLL
STOP
BLOAD
INKEY$
LOF
POS
STR$
BSAVE
INP
LOG
PRESET
STRING$
CALL
INPUT
LPOS
PRINT
SWAP
CDBL
INPUT$
LPRINT
PSET
TAB
CHAIN
INSTR
LSET
PUT
TAN
CHDIR
INT
MAP
RANDOMIZE
TERM
CHR$
IRESET
MERGE
RBYTE
THEN
CINT
ISET
MID$
READ
TIME$
CIRCLE
JIS$
MKD$
REM
TO
CLEAR
KACNV$
MKI$
RENUM
TROFF
CLOSE
KANJI
MKS$
RESTORE
TRON
CLS
KEXT$
MOD
RESUME
USING
CMD
KEY
MON
RETURN
USR
COLOR
KILL
MOTOR
RIGHT$
VAL
COM
KINPUT
NAME
RND
VARPTR
COMMON
KINSTR
NEW
ROLL
VIEW
CONSOLE
KLEN
NEXT
RSET
WAIT
CONT
KMID$
NOT
RUN
WBYTE
COPY
KNJ$
OCT$
SAVE
WEND
&H0D
&H0E
129
付属資料
COS
KPLOAD
OFF
SCREEN
WHILE
CSNG
KPOS
ON
SEARCH
WIDTH
CSRLIN
KTYPE
OPEN
SEG
WINDOW
CVD
LEFT$
OPTION
SET
WRITE
CVI
LEN
OR
SGN
XOR
FM 音源の音色一覧
音色番号
音色名
解説
0
Default VOICE
既定の音色
1
BRASS 2
ブラス系の音
2
STRING 2
ストリング系の音
3
EPIANO 3
電子ピアノ系の音
4
EBASS 1
電子ベース系の音
5
EORGAN 1
電子オルガン系の音
6
PORGAN 1
パイプオルガン系の音
7
FLUTE
フルート
8
OBOE
オーボエ
9
CLARINET
クラリネット
10
VIBRPHN
ビブラフォン
11
HARPSIC
ハープシコード
12
BELL
ベル
13
PIANO
ピアノ
14
MUSHI
虫の鳴き声
15
DESCENT
高空から降下する音
16
UFO
UFO が遠ざかる音
17
GRANPRI
レーシングカーのエンジン音
18
LASER 1
レーザーガンの音
19
LASER 2
レーザーガンの音
20
SIN WAVE
チューニング用の正弦波
21
BRASS 1
ブラス系の音
22
BRASS 2
ブラス系の音、音色 1 と同じ
23
TRUMPET
トランペット
24
STRING 1
ストリング系の音
25
STRING 2
ストリング系の音、音色 2 と同じ
26
EPIANO 1
電子ピアノ系の音
130
音色番号
音色名
解説
27
EPIANO 2
電子ピアノ系の音
28
EPIANO 3
電子ピアノ系の音、音色 3 と同じ
29
GUITAR
ギター
30
EBASS 1
電子ベース系の音、音色 4 と同じ
31
EBASS 2
電子ベース系の音
32
EORGAN 1
電子オルガン系の音、音色 5 と同じ
33
EORGAN 2
電子オルガン系の音
34
PORGAN 1
パイプオルガン系の音、音色 6 と同じ
35
PORGAN 2
パイプオルガン系の音
36
FLUTE
フルート、音色 7 と同じ
37
PICCOLO
ピッコロ
38
OBOE
オーボエ、音色 8 と同じ
39
CLARINET
クラリネット、音色 9 と同じ
40
GROCKEN
グロッケン
41
VIBRPHN
ビブラフォン、音色 10 と同じ
42
XYLOPHN
シロフォン
43
KOTO
琴
44
ZITAR
ツィター
45
CLAV
クラビネット
46
HARPSIC
ハープシコード、音色 0、11 と同じ
47
BELL
ベル、音色 12 と同じ
48
HARP
ハープ
49
BELL/BRASS
スタッカートでベル、ロングトーンでブラスの音
50
HARMONICA
ハーモニカ
51
STEEL DRUM
スチールドラム
52
TIMPANI
ティンパニー
53
TRAIN
列車の警笛
54
AMBULAN
救急車
55
TWEET
小鳥のさえずり
56
RAIN DROP
雨の落ちる音
57
HORN
ホルン
58
SNARE DRUM
スネアドラム
59
COW BELL
カウベル
60
PERC 1
打楽器系の音
61
PERC 2
打楽器系の音
付属資料
Copyright © 2015 Katayama Hirofumi MZ. All Rights Reserved.
131