
■ BASCOM-AVR (DEMO) の使用方法 ■ |
AVR-DOS 関連の命令 |
● AVR-DOS (Disk Operating System)で、各種のディスクを管理・制御する命令です。 |
INITFILESYSTEM |
ファイル・システムを、初期化します。 |
DIR |
ディレクトリから、ファイル名を読み込みます。 |
FILEDATE |
ファイルの日付を調べます。 |
FILETIME |
ファイルの時間を調べます。 |
FILELEN |
ファイルのサイズを調べます。 |
FILEDATETIME |
ファイルの日付と時間を調べます。 |
GETATTR |
ファイルの属性を調べます。 |
CLEARATTR |
ファイルの属性をクリアします。 |
SETATTR |
ファイルの属性を設定します。 |
KILL |
ディスクから、ファイルを削除します。 |
NAME |
ファイル名を変更します。 |
CHDIR |
カレント(ワーキング)ディレクトリを変更します。 |
MKDIR |
新しいディレクトリを作成します。 |
RMDIR |
サブ・ディレクトリを削除します。 |
DISKSIZE |
ディスクのサイズ(容量)を調べます。 |
DISKFREE |
ディスクの空き容量を調べます。 |
VER |
AVR-DOSのバージョン番号を、変数に入れます。 |
● ファイルを開く必要がない、簡易なアクセス。 |
BLOAD |
SRAMに、ファイルのデータを読み込みます。 |
BSAVE |
SRAMの内容を、ファイルに保存します。 |
● ファイルを開く、正規のアクセス。 |
OPEN (DOS) |
ファイルを開きます。 |
CLOSE (DOS) |
ファイルを閉じます。 |
INPUT (DOS) |
開かれたファイルから、シーケンシャル・データを読み込みます。 |
WRITE |
開かれたファイルに、シーケンシャル・データを書き込みます。 |
LINE INPUT |
開かれたファイルから、テキストを1行分読み込みます。 |
PRINT (DOS) |
開かれたファイルに、テキストを書き込みます。 |
FREEFILE |
空いているファイルのチャンネル番号を調べます。 |
FILEATTR |
開かれたファイルのモードを調べます。 |
● BINARYファイルに、ランダム・アクセスを行う命令。 |
GET |
BINARYモードで開かれたファイルから、データを読み込みます。 |
PUT |
BINARYモードで開かれたファイルに、データを書き込みます。 |
LOC |
開かれたファイルの、現在の論理位置(ファイル・ポジション)を調べます。 |
SEEK |
開かれたファイルの、読み書きを行う位置(ファイル・ポジション)を指定します。 開かれたファイルの、次の論理位置(ファイル・ポジション+1)を調べます。 |
LOF |
開かれたファイルの、長さ(レングス)を調べます。 |
EOF |
開かれたファイルの、終わりを調べます。 |
FLUSH |
現在のバッファの内容をディスクに書き込み、ディレクトリを更新します。 |
INITFILESYSTEM |
一覧へ戻る |
ファイル・システムを、初期化します。
書式 |
variable = Initfilesystem(value) |
注釈 |
variable |
= 初期化時のエラー結果を入れる、バイト型数値変数。 |
value |
= ドライブのパーティション番号。 (通常は1) |
|
・ドライブから、マスタ・ブートレコードとパーティション・ブートレコード(セクタ)を読み込み、
ファイル・システムを初期化します。
・ファイル関連の命令を使用する前に、必ずこの命令を実行しなければなりません。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、DOSエラー表を参照して下さい。
|
(例) |
|
Dim Temp1 As Byte |
' エラー結果を入れるバイト型変数を宣言。 |
Temp1 = Initfilesystem(1) |
' ファイル・システムを初期化する。 |
If Temp1 > 0 Then Goto Avrdoserr |
' エラーがあれば分岐する。 |
End |
' プログラムの終了。 |
' |
' |
Avrdoserr: |
' |
Print "DOS Error! " ; Temp1 |
' エラー番号を表示。 |
End |
' プログラムの終了。 |
|
|
DIR |
一覧へ戻る |
ディレクトリから、ファイル名を読み込みます。
書式 |
string = Dir("mask")
string = Dir() |
注釈 |
string |
= ファイル名を入れる文字変数。 |
mask |
= 特定のファイルを選択する、ファイル・マスク。 |
|
・ファイル・マスクは、("*.TXT")のような文字列が使用できます。
・すべてのファイルを選ぶには、ワイルドカード("*.*")を使用します。
・最初のディレクトリ読み込みには、必ずファイル・マスクが必要です。
・二つめの読み込みからは、ファイル・マスクを省略できます。
・読み込むファイル名が無くなると、空の文字列を返します。
・ファイル名は8文字+拡張子3文字 "XXXXXXXX.XXX" に対応します。
・8文字以上のファイル名は、(~)で表現されます。 "123456789.TXT"は"123456~1.TXT"となります。
・フォルダは、拡張子が無い形で表現されます。 "ABCDEF."
|
(例) |
|
Dim Tempstr As String * 15 |
' ファイル名を入れる文字変数を宣言。 |
Tempstr = Dir( "*.*") |
' 最初のディレクトリを読み込み。(すべてのファイル) |
While Len(tempstr) > 0 |
' ファイル名が無くなるまで繰り返し。 |
Print Tempstr ; " " ; Filedate() ; |
' ファイル名とファイルの日付を表示。 |
Print " " ; Filetime() ; " " ; Filelen() ; |
' ファイルの時間とレングスを表示。 |
Print " " ; Hex(getattr()) |
' ファイルの属性を表示。 |
Tempstr = Dir() |
' 次のファイル名を読み込む。 |
Wend |
' |
End |
' プログラムの終了。 |
|
|
FILEDATE |
一覧へ戻る |
ファイルの日付を調べます。
書式 |
string = Filedate(file)
string = Filedate() |
注釈 |
string |
= ファイルの日付を入れる文字変数。 |
file |
= 日付を調べるファイルの名前。 (文字変数 または 文字列) |
|
・ファイル名を指定した場合は、そのファイルの日付を調べます。
・ファイル名を指定しない場合は、DIR()命令で読み込んだファイルの日付を調べます。
・日付の形態はすべて2桁の、「月\日\年」です。
|
FILETIME |
一覧へ戻る |
ファイルの時間を調べます。
書式 |
string = Filetime(file)
string = Filetime() |
注釈 |
string |
= ファイルの時間を入れる文字変数。 |
file |
= 時間を調べるファイルの名前。 (文字変数 または 文字列) |
|
・ファイル名を指定した場合は、そのファイルの時間を調べます。
・ファイル名を指定しない場合は、DIR()命令で読み込んだファイルの時間を調べます。
・時間の形態はすべて2桁の、「時:分:秒」です。
|
FILELEN |
一覧へ戻る |
ファイルのサイズを調べます。
書式 |
variable = Filelen(file)
variable = Filelen() |
注釈 |
variable |
= ファイルのサイズを入れるロング型数値変数。 |
file |
= サイズを調べるファイルの名前。 (文字変数 または 文字列) |
|
・ファイル名を指定した場合は、そのファイルのサイズを調べます。
・ファイル名を指定しない場合は、DIR()命令で読み込んだファイルのサイズを調べます。
・サイズの形態は「バイト」です。
|
FILEDATETIME |
一覧へ戻る |
ファイルの日付と時間を調べます。
書式 |
variable = Filedatetime(file)
variable = Filedatetime() |
注釈 |
variable |
= ファイルの日付と時間を入れる変数。 (下記参照) |
file |
= 日付と時間を調べるファイルの名前。 (文字変数 または 文字列) |
|
・ファイル名を指定した場合は、そのファイルの日付と時間を調べます。
・ファイル名を指定しない場合は、DIR()命令で読み込んだファイルの日付と時間を調べます。
・代入する変数の形式によって、形態が変わります。
文字変数の場合 = 「月\日\年 時:分:秒」 (17文字の文字変数が必要です)
配列の場合 = 添字1:秒 添字2:分 添字3:時 添字4:日 添字5:月 添字6:年
(バイト型配列が6個必要です)
数値変数の場合 = 内部で使用されるコード形式で入ります。 (ダブル型数値変数)
|
(例) |
|
Dim Fdt As String * 17 |
' 文字変数の場合。 |
Fdt = Filedatetime() |
' |
' |
' |
Dim Fdt(6) As Byte |
' 配列の場合。 |
Fdt(1) = Filedatetime() |
' |
' |
' |
Dim Fdt As Double |
' 数値変数の場合。 |
Fdt = Filedatetime() |
' |
|
|
GETATTR |
一覧へ戻る |
ファイルの属性を調べます。
書式 |
string = Getattr(file)
string = Getattr() |
注釈 |
string |
= ファイルの属性を入れるバイト型数値変数。 |
file |
= 属性を調べるファイルの名前。 (文字変数 または 文字列) |
|
・ファイル名を指定した場合は、そのファイルの属性を調べます。
・ファイル名を指定しない場合は、DIR()命令で読み込んだファイルの属性を調べます。
bit 0 |
Read Only |
読み取り専用 |
bit 1 |
Hidden |
隠しファイル |
bit 2 |
System |
システム・ファイル |
bit 3 |
Volume |
ボリューム・ラベル |
bit 4 |
Directory |
サブ・ディレクトリ |
bit 5 |
Archiv |
アーカイブ・ファイル |
bit 6 |
reserved |
予約済み |
bit 7 |
reserved |
予約済み |
|
CLEARATTR |
一覧へ戻る |
ファイルの属性をクリアします。
書式 |
Clearattr file , attr |
注釈 |
file |
= 属性をクリアしたいファイルの名前。(ワイルド・カードは不可) |
attr |
= クリアする属性のビットを指定する数値変数。 |
|
・DOSファイルの属性をクリアします。
・ファイルは複数の属性を持つことができます。
・通常のファイルでは、8(ボリューム)と16(サブ・ディレクトリ)の属性を使用しないでください。
bit 0 |
Read Only |
読み取り専用 |
bit 1 |
Hidden |
隠しファイル |
bit 2 |
System |
システム・ファイル |
bit 3 |
Volume |
ボリューム・ラベル |
bit 4 |
Directory |
サブ・ディレクトリ |
bit 5 |
Archiv |
アーカイブ・ファイル |
bit 6 |
reserved |
予約済み |
bit 7 |
reserved |
予約済み |
・ファイルの属性には、[3]のように複数のビットを設定できます。(非表示 + 読み取り専用)
・したがって、ビットを組み合わせることで複数のビットをクリアできます。
・CLEARTTRはワイルドカードをサポートしていないので、ファイル名を指定するときはワイルドカードが
含まれていないことを確認してください。
・ファイル名を省略すると、DIR() から最後に見つかったファイルが操作に使用されます。
・AVR-DOSでは、クリアするビットを指定します。
・したがって、変更されない古い属性ビットは維持されます。
・AVR-DOSでは、SETRATTR命令を使用して個々のビットを設定することもできます。
|
SETATTR |
一覧へ戻る |
ファイルの属性を設定します。
書式 |
Setattr file , attr |
注釈 |
file |
= 属性を設定したいファイルの名前。(ワイルド・カードは不可) |
attr |
= 設定する属性のビットを指定する数値変数。 |
|
・DOSファイルの属性を設定します。
・ファイルは複数の属性を持つことができます。
・通常のファイルでは、8(ボリューム)と16(サブ・ディレクトリ)の属性を使用しないでください。
bit 0 |
Read Only |
読み取り専用 |
bit 1 |
Hidden |
隠しファイル |
bit 2 |
System |
システム・ファイル |
bit 3 |
Volume |
ボリューム・ラベル |
bit 4 |
Directory |
サブ・ディレクトリ |
bit 5 |
Archiv |
アーカイブ・ファイル |
bit 6 |
reserved |
予約済み |
bit 7 |
reserved |
予約済み |
・ファイルの属性には、[3]のように複数のビットを設定できます。(非表示 + 読み取り専用)
・したがって、複数のビットを組み合わせて、一度に複数のビットを設定することができます。
・SETATTRはワイルドカードをサポートしていないので、ファイル名を指定するときはワイルドカードが
含まれていないことを確認してください。
・ファイル名を省略すると、DIR() から最後に見つかったファイルが操作に使用されます。
・AVR-DOSでは、設定するビットを指定します。
・したがって、変更されない古い属性ビットは維持されます。
・AVR-DOSでは、CLEARATTR命令を使用して個々のビットをリセットすることもできます。
|
KILL |
一覧へ戻る |
ディスクから、ファイルを削除します。
書式 |
Kill "file" |
注釈 |
file = 削除するファイルの名前。 (文字変数 または 文字列) |
・使用中のファイルは、削除できません。
・ファイル名のワイルド・カードは使用できません。
・内部変数 [Gbdoserror] に、エラー情報が入ります。 (例 66 = File not found) DOSエラー表を参照。
|
(例) |
|
Kill "test.txt" |
' ファイル test.txt を削除する。 |
Print "Error=" ; Gbdoserror |
' エラーコードを出力。 |
|
|
NAME |
一覧へ戻る |
ファイル名を変更します。
書式 |
Name OldFile As NewFile |
注釈 |
OldFile |
= 変更するファイル名を入れる文字変数。 (12文字) |
NewFile |
= 新しいファイル名を入れる文字変数。 (12文字) |
|
・内部変数 [Gbdoserror] に、エラー情報が入ります。 (例 66 = File not found) DOSエラー表を参照。
|
(例) |
|
Dim Oldfile As String * 12 |
' ファイル名を入れる文字変数を宣言。 |
Dim Newfile As String * 12 |
' ファイル名を入れる文字変数を宣言。 |
Oldfile = "olddata.txt" |
' 変更するファイル名。 |
Newfile = "newdata.txt" |
' 新しいファイル名。 |
Name Oldfile As Newfile |
' ファイル名を変更する。 |
Print "Error=" ; Gbdoserror |
' エラーコードを出力。 |
|
|
CHDIR |
一覧へ戻る |
カレント(ワーキング)ディレクトリを変更します。
書式 |
Chdir "directory" |
注釈 |
directory = 変更するディレクトリの名前。 (文字変数 または 文字列) |
・パス名の長さは8文字以内です。
・1つの命令で2つ以上の階層を変更することは、まだできません。 (Chdir "Main\Sub)
・"\" は、ルートディレクトリ(最上位)へ変更します。
・"." は、1階層上のディレクトリへ変更します。
・内部変数 [Gbdoserror] に、エラー情報が入ります。 (例 66 = File not found) DOSエラー表を参照。
|
(例) |
|
Chdir "prgdat" |
' カレントディレクトリを prgdat に変更する。 |
Print "Error=" ; Gbdoserror |
' エラーコードを出力。 |
|
|
MKDIR |
一覧へ戻る |
新しいディレクトリを作成します。
書式 |
Mkdir "directory" |
注釈 |
directory = 新しく作成するディレクトリの名前。 (文字変数 または 文字列) |
・パス名の長さは8文字以内です。
・内部変数 [Gbdoserror] に、エラー情報が入ります。 (例 50 = File Exist) DOSエラー表を参照。
|
(例) |
|
Mkdir "newdat" |
' サブ・ディレクトリ newdat を作成する。 |
Print "Error=" ; Gbdoserror |
' エラーコードを出力。 |
|
|
RMDIR |
一覧へ戻る |
サブ・ディレクトリを削除します。
書式 |
Rmdir "directory" |
注釈 |
directory = 削除するディレクトリの名前。 (文字変数 または 文字列) |
・パス名の長さは8文字以内です。
・削除するサブ・ディレクトリの中は、空でなければなりません。
・内部変数 [Gbdoserror] に、エラー情報が入ります。 (例 66 = File not found) DOSエラー表を参照。
|
(例) |
|
Rmdir "newdat" |
' サブ・ディレクトリ newdat を削除する。 |
Print "Error=" ; Gbdoserror |
' エラーコードを出力。 |
|
|
DISKSIZE |
一覧へ戻る |
ディスクのサイズ(容量)を調べます。
書式 |
variable = Disksize() |
注釈 |
variable = ディスクのサイズを入れる、ロング型数値変数。 |
・サイズの形態は「バイト」です。
|
(例) |
|
Print "Disksize=" ; Disksize() |
' ディスクのサイズを表示。 |
|
|
DISKFREE |
一覧へ戻る |
ディスクの空き容量を調べます。
書式 |
variable = Diskfree() |
注釈 |
variable = ディスクの空き容量を入れる、ロング型数値変数。 |
・サイズの形態は「バイト」です。
|
(例) |
|
Print "Diskfree=" ; Diskfree() |
' ディスクの空き容量を表示。 |
|
|
BLOAD |
一覧へ戻る |
SRAMに、ファイルのデータを読み込みます。
書式 |
Bload "file" , address |
注釈 |
file |
= 読み込むファイルの名前。 (文字変数 または 文字列) |
address |
= 読み込み先のSRAM先頭アドレス。 (ワード型変数 または 定数) |
|
・読み込まれるバイト数は、ファイルの大きさに依存します。
・未使用のファイル・ハンドル(バッファ)が、この命令のために必要です。
|
(例) |
|
Dim Tempstr As String * 10 |
' 文字変数を宣言。 |
Dim Ad As Word |
' アドレス用ワード型変数を宣言。 |
Tempstr = "Bload Test" |
' 文字変数に、テスト用文字列を代入。 |
Ad = Varptr(tempstr) |
' 文字変数のメモリーアドレスを調べる。 |
Bsave "testbld.txt" , Ad , 10 |
' SRAMの内容を10Byte分ディスクに保存。 |
Tempstr = "XXXXXXXXXX" |
' 文字変数を、書き換え。 |
Bload "testbld.txt" , Ad |
' SRAMにディスクからデータを読み込み。 |
Print Tempstr |
' 文字列を表示。 |
End |
' プログラムの終了。 |
|
|
BSAVE |
一覧へ戻る |
SRAMの内容を、ファイルに保存します。
書式 |
Bsave "file" , address , length |
注釈 |
file |
= 保存するファイルの名前。 (文字変数 または 文字列) |
address |
= 保存するSRAMの先頭アドレス。 (ワード型変数 または 定数) |
length |
= 保存するバイト数。 (ワード型変数 または 定数) |
|
・未使用のファイル・ハンドル(バッファ)が、この命令のために必要です。
|
OPEN (DOS) |
一覧へ戻る |
ファイルを開きます。
書式 |
Open "file" For mode As #channel |
注釈 |
file = 開くファイルの名前。 (文字変数 または 文字列) |
mode = |
Input |
−既存のファイルから、入力を行います。 |
Output |
−新規にファイルを作成し、出力を行います。 |
Append |
−既存のファイルの後に、追加を行います。 |
Binary |
−GET・PUT命令で使用するファイルを開きます。 |
|
channel = |
開くチャンネル番号。 (1〜127) 最大値は255 |
|
・未使用のファイル・ハンドル(バッファ)が、チャンネル毎に必要です。
・一度開かれたファイルは、使用後に必ずCLOSE命令で閉じなければなりません。
|
CLOSE (DOS) |
一覧へ戻る |
ファイルを閉じます。
書式 |
Close #channel |
注釈 |
channel = 閉じるチャンネル番号。 (1〜127) 最大値は255 |
・開かれたチャンネルは、必ず同じ番号で閉じなければなりません。
・CLOSE命令は、プログラム動作の最後に記述します。
|
INPUT (DOS) |
一覧へ戻る |
開かれたファイルから、シーケンシャル・データを読み込みます。
書式 |
Input #channel , variable , variable ・・・ |
注釈 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
variable |
= ファイルからの、数値または文字列を入れる変数名。 |
|
・ファイルに書き込まれているデータの型式と、読み込む変数の型式を合わせる必要があります。
・ファイル test.txt の内容が "Disk","Write",123,45678 の場合。
|
(例) |
|
Dim S1 As String * 5 , S2 As String * 5 |
' 文字変数を宣言。 |
Dim B As Byte , W As Word |
' 数値変数を宣言。 |
Open "test.txt" For Input As #1 |
' ファイル test.txt を開く。 |
Input #1 , S1 , S2 , B , W |
' ファイルから文字列と数値を読み込み。 |
Close #1 |
' ファイルを閉じる。 |
Print S1 ; " " ; S2 ; " " ; B ; " " ; W |
' 読み込んだ値を表示する。 |
End |
' プログラムの終了。 |
|
|
WRITE |
一覧へ戻る |
開かれたファイルに、シーケンシャル・データを書き込みます。
書式 |
Write #channel , variable , variable ・・・ |
注釈 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
variable |
= ファイルへ書き込む、数値変数または文字変数および文字列。 |
|
・数値変数の値は、バイナリー値ではなく、ASCII表現の文字列に変換して書き込まれます。
・文字変数および文字列は、ダブルクォーテーション""によって囲まれ、書き込まれます。
(DOS設定 "Config_AVR-DOS.BAS" 内で、ダブルクォーテーションを取り外す選択が可能です)
・複数の変数や文字列が書き込まれる場合は、コンマ[,]によって区切られます。
(DOS設定 "Config_AVR-DOS.BAS" 内で、区切りコードの変更が可能です) ・WRITE命令の終わりには、改行コードが書き込まれます。
|
(例) |
|
Dim Sd As String * 5 |
' 文字変数を宣言。 |
Dim B As Byte , W As Word |
' 数値変数を宣言。 |
Sd = "Write" |
' 文字変数に、テスト用文字列を代入。 |
B = 123 : W = 45678 |
' 数値変数に、テスト用数値を代入。 |
Open "test.txt" For Output As #1 |
' ファイル test.txt を開く。 |
Write #1 , "Disk" , Sd , B , W |
' ファイルに文字列と数値を書き込み。 |
Close #1 |
' ファイルを閉じる。 |
End |
' プログラムの終了。 |
|
・上記のプログラムでは、ファイル test.txt の内容が "Disk","Write",123,45678 となり、
テキストエディタ等で内容を見ることができます。
|
LINE INPUT |
一覧へ戻る |
開かれたファイルから、テキストを1行分読み込みます。
書式 |
Line input #channel , variable |
注釈 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
variable |
= ファイルからの、文字列を入れる変数名。 |
|
・INPUTモードで開かれたファイルにのみ有効です。
・文字列の初めから改行コードまでを、1行として読み込みます。
・ファイル test.txt の内容が DiskWrite12345678 の場合。
|
(例) |
|
Dim Sd As String * 80 |
' 文字変数を宣言。 |
Open "test.txt" For Input As #1 |
' ファイル test.txt を開く。 |
Line input #1 , Sd |
' ファイルから文字列を読み込み。 |
Close #1 |
' ファイルを閉じる。 |
Print Sd |
' 読み込んだ文字列を表示する。 |
End |
' プログラムの終了。 |
|
|
PRINT (DOS) |
一覧へ戻る |
開かれたファイルに、テキストを書き込みます。
書式 |
Print #channel , variable ; variable ; ・・・ |
注釈 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
variable |
= ファイルへ書き込む、数値変数または文字変数および文字列。 |
|
・WRITE命令のように、ダブルクォーテーションでの囲いや、コンマによる区切りはなく、
ターミナル出力と同様に、連続した文字列が書き込まれます。
・PRINT命令の終わりには、改行コードが書き込まれます。
|
(例) |
|
Dim Sd As String * 5 |
' 文字変数を宣言。 |
Dim B As Byte , W As Word |
' 数値変数を宣言。 |
Sd = "Write" |
' 文字変数に、テスト用文字列を代入。 |
B = 123 : W = 45678 |
' 数値変数に、テスト用数値を代入。 |
Open "test.txt" For Output As #1 |
' ファイル test.txt を開く。 |
Print #1 , "Disk" ; Sd ; B ; W |
' ファイルに文字列と数値を書き込み。 |
Close #1 |
' ファイルを閉じる。 |
End |
' プログラムの終了。 |
|
・上記のプログラムでは、ファイル test.txt の内容が DiskWrite12345678 となります。
|
FREEFILE |
一覧へ戻る |
空いているファイルのチャンネル番号を調べます。
書式 |
variable = Freefile() |
注釈 |
variable |
= 空いているファイルのチャンネル番号を入れる、バイト型数値変数。 |
|
・ファイルのチャンネル番号は、1〜255が使用できますが、FREEFILE命令では、128〜255の
間の使用されていない番号が与えられます。
・よって、ユーザーが任意に割り当てるチャンネル番号は、FREEFILE命令の番号と重複しないように、
1〜127を使用するようにして下さい。
|
FILEATTR |
一覧へ戻る |
開かれたファイルのモードを調べます。
書式 |
variable = Fileattr(#channel) |
注釈 |
variable |
= 開かれたファイルのモードを入れる、バイト型数値変数。 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
|
・ファイルが開かれているモードを調べます。
1 = INPUT , 2 = OUTPUT , 8 = APPEND , 32 = BINARY
|
GET |
一覧へ戻る |
BINARYモードで開かれたファイルから、データを読み込みます。
書式 |
Get #channel , variable , position , length |
注釈 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
variable |
= ファイルからの、数値または文字列を入れる変数名、配列。 |
position |
= データを読み込む位置を指定する、ロング型変数 (オプション) |
length |
= 読み込むデータのバイト数を指定する、変数または定数。 (オプション) |
|
・BINARYモードで開かれたファイルにのみ有効です。 すべてのデータ形式が読み込めます。
・デフォルトでは、チャンネル番号と、読み込む変数名だけを与えて実行できます。
・変数の型式によって、読み込まれるバイト数が決まります。
(バイト型は1バイト、ワード型は2バイトなど)
(文字列は文字数ではなく、宣言されたバイト数分が読み込まれます。 最大254バイト)
・配列に読み込む場合は、lengthでバイト数を指定できます。 [ Get #1 , buff(1) , , 128 ]
(lengthは、最大 65535バイトまで)
|
(例) |
|
Dim B As Byte , L As Long |
' 数値変数を宣言。 |
B = 123 : L = 123456789 |
' 数値変数に、テスト用数値を代入。 |
Open "test.bin" For Binary As #1 |
' ファイル test.bin を開く。 |
Put #1 , B |
' ファイルにバイト型数値を書き込み。 |
Put #1 , L |
' ファイルにロング型数値を書き込み。 |
Close #1 |
' ファイルを閉じる。 |
Open "test.bin" For Binary As #1 |
' ファイル test.bin を開く。 |
Get #1 , B |
' ファイルからバイト型数値を読み込み。 |
Get #1 , L |
' ファイルからロング型数値を読み込み。 |
Close #1 |
' ファイルを閉じる。 |
Print B : Print L |
' 読み込んだ数値を出力。 |
End |
' プログラムの終了。 |
|
・上記のプログラムでは、 123 と 123456789 が出力されます。
|
PUT |
一覧へ戻る |
BINARYモードで開かれたファイルに、データを書き込みます。
書式 |
Put #channel , variable , position , length |
注釈 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
variable |
= ファイルへ書き込む、数値変数または文字変数、配列。 |
position |
= データを書き込む位置を指定する、ロング型変数 (オプション) |
length |
= 書き込むデータのバイト数を指定する、変数または定数。 (オプション) |
|
・BINARYモードで開かれたファイルにのみ有効です。 すべてのデータ形式が書き込めます。
・デフォルトでは、チャンネル番号と、書き込む変数名だけを与えて実行できます。
・変数の型式によって、書き込まれるバイト数が決まります。
(バイト型は1バイト、ワード型は2バイトなど)
(文字列は文字数ではなく、宣言されたバイト数分が書き込まれます。 最大255バイト)
・配列を書き込む場合は、lengthでバイト数を指定できます。 [ Put #1 , buff(1) , , 128 ]
(lengthは、最大 65535バイトまで)
|
LOC |
一覧へ戻る |
開かれたファイルの、現在の論理位置(ファイル・ポジション)を調べます。
書式 |
variable = Loc(#channel) |
注釈 |
variable |
= 現在の論理位置(ファイル・ポジション)を入れる、ロング型数値変数。 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
|
・ファイルに対して、最後に読み書きを行った位置(バイト単位)を調べます。 (1〜)
・実際に、次に読み書きを行える位置を調べるには、「Loc(#channel) + 1」とします。
・もしSEEK命令によって、ファイル・ポジションが変更されたならば、この命令の結果は、
次に読み書き動作を行うまで無効になります。
|
(例) |
|
Dim B As Byte , L As Long , Fp As Long |
' 数値変数を宣言。 |
B = 123 : L = 123456789 |
' 数値変数に、テスト用数値を代入。 |
Open "test.bin" For Binary As #1 |
' ファイル test.bin を開く。 |
Put #1 , B |
' ファイルにバイト型数値を書き込み。 |
Put #1 , L |
' ファイルにロング型数値を書き込み。 |
Fp = Loc(#1) |
' ファイル・ポジションを調べる。 |
Print Fp |
' ファイル・ポジションを出力。 |
Close #1 |
' ファイルを閉じる。 |
End |
' プログラムの終了。 |
|
・上記のプログラムでは、バイト型が1byte+ロング型が4byteの書き込みを行うので、
ファイル・ポジションは「5」になります。
|
SEEK |
一覧へ戻る |
開かれたファイルの、読み書きを行う位置(ファイル・ポジション)を指定します。
開かれたファイルの、次の論理位置(ファイル・ポジション+1)を調べます。
書式 |
Seek #channel , variable (設定)
variable = Seek(#channel) (調査) |
注釈 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
variable |
= 論理位置(ファイル・ポジション)を入れる、ロング型数値変数。 |
|
・ファイルに対して、読み書きを行う位置(バイト単位)を指定します。 (1〜)
・ファイルに対して、次に読み書きを行える位置(バイト単位)を調べます。 (1〜)
・ファイルのサイズを越えるファイル・ポジションは、設定できません。
|
(例) |
|
Dim Sd As String * 10 |
' 文字変数を宣言。 |
Dim Fp As Long |
' 数値変数を宣言。 |
Open "test.bin" For Binary As #1 |
' ファイル test.bin を開く。 |
Sd = "ABCDEFGH" |
' 文字変数に、テスト用文字を代入。 |
Put #1 , Sd |
' ファイルに文字列を書き込み。 |
Sd = "123" |
' 文字変数に、テスト用文字を代入。 |
Fp = 3 |
' ファイル・ポジションを3にセット。 |
Seek #1 , Fp |
' ファイル・ポジションを指定する。 |
Put #1 , Sd |
' ファイルに文字列を書き込み。 |
Close #1 |
' ファイルを閉じる。 |
Open "test.bin" For Binary As #1 |
' ファイル test.bin を開く。 |
Get #1 , Sd |
' ファイルから文字列を読み込み。 |
Close #1 |
' ファイルを閉じる。 |
Print Sd |
' 文字列を出力。 |
End |
' プログラムの終了。 |
|
・上記のプログラムでは、 AB123 が出力されます。
|
LOF |
一覧へ戻る |
開かれたファイルの、長さ(レングス)を調べます。
書式 |
variable = Lof(#channel) |
注釈 |
variable |
= ファイルの長さ(レングス)を入れる、ロング型数値変数。 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
|
・開かれたファイルの、長さ(バイト単位)を調べます。 (1〜)
|
(例) |
|
Dim B As Byte , L As Long , Fl As Long |
' 数値変数を宣言。 |
B = 123 : L = 123456789 |
' 数値変数に、テスト用数値を代入。 |
Open "test.bin" For Binary As #1 |
' ファイル test.bin を開く。 |
Put #1 , B |
' ファイルにバイト型数値を書き込み。 |
Put #1 , L |
' ファイルにロング型数値を書き込み。 |
Fl = Lof(#1) |
' ファイルの長さを調べる。 |
Print Fl |
' ファイルの長さを出力。 |
Close #1 |
' ファイルを閉じる。 |
End |
' プログラムの終了。 |
|
・上記のプログラムでは、バイト型が1byte+ロング型が4byteの書き込みを行うので、
ファイルの長さ(レングス)は「5」になります。
|
EOF |
一覧へ戻る |
開かれたファイルの、終わりを調べます。
書式 |
variable = Eof(#channel) |
注釈 |
variable |
= ファイルの終わりの判定状態を入れる、バイト型数値変数。 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
|
・開かれたファイルが、終わりに達したかどうかを調べます。
まだ終わりに達していない場合は、「0」が変数に入ります。
終わりに達した場合は、「255」が変数に入ります。
|
(例) |
|
Dim Sd As String * 10 |
' 文字変数を宣言。 |
Dim B As Byte , Ef As Byte |
' 数値変数を宣言。 |
Open "test.bin" For Binary As #1 |
' ファイル test.bin を開く。 |
Sd = "ABCDEFGH" |
' 文字変数に、テスト用文字を代入。 |
Put #1 , Sd |
' ファイルに文字列を書き込み。 |
Close #1 |
' ファイルを閉じる。 |
Open "test.bin" For Binary As #1 |
' ファイル test.bin を開く。 |
While Eof(#1) = 0 |
' ファイルの終わりまで、繰り返し。 |
Get #1 , B |
' ファイルから1バイトを読み込み。 |
Print Chr(b) |
' 数値を文字コードに変換して出力。 |
Wend |
' |
Close #1 |
' ファイルを閉じる。 |
|
・上記のプログラムでは、 A〜H が、1文字ずつ出力されます。
|
FLUSH |
一覧へ戻る |
現在の、ファイル・ハンドル(バッファ)の内容をディスクに書き込み、ディレクトリを更新します。
書式 |
Flush #channel |
注釈 |
#channel |
= OPEN命令で開いた、ファイルのチャンネル番号。 |
|
・通常、ファイル・ハンドル(バッファ)の内容は、別のセクターに変わるか、ファイルが閉じられる時に、
ディスクに書き込まれ、ディレクトリが更新されます。
・この命令は、まだディスクに保存されていないファイル・ハンドル(バッファ)の内容を、ディスクに
書き込みます。
・ファイルのチャンネル番号が指定されない場合は、開いているすべてのファイルが書き込まれます。
|
DriveInit |
一覧へ戻る |
ドライブが接続されたAVRのポートピンを設定して、ドライブを初期化します。
書式 |
variable = Driveinit() |
注釈 |
variable = 命令実行によるエラーコードを入れる、バイト型数値変数。 |
・ドライブの入出力を接続するポートとピンを設定し、初期値を出力ピンに与えます。
・その後、ドライブをリセットします。
・この命令が、どのような動作をするかは、AVRに接続するドライブの種類に依存します。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
エラーコードを参照して下さい。
|
DriveReset |
一覧へ戻る |
ドライブをリセットします。
書式 |
variable = Drivereset() |
注釈 |
variable = 命令実行によるエラーコードを入れる、バイト型数値変数。 |
・ドライブをリセットします。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
エラーコードを参照して下さい。
|
DriveCheck |
一覧へ戻る |
ドライブの状態をチェックします。
書式 |
variable = Drivecheck() |
注釈 |
variable = 命令実行によるエラーコードを入れる、バイト型数値変数。 |
・ドライブにカード等が有るか無いかに関わらず、ドライブのチェックをします。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
エラーコードを参照して下さい。
|
DriveGetIdentity |
一覧へ戻る |
カードやドライブからの、パラメータ情報を取得します。
書式 |
variable = Drivegetidentity(pointer) |
注釈 |
variable |
= 命令実行によるエラーコードを入れる、バイト型数値変数。 |
pointer |
= パラメータ情報を読み込むための、SRAMアドレス・ポインタ。(ワード型) |
|
・カードやドライブからのパラメータ情報(512バイト)を読み込み、変数pointerで示されるアドレスの
SRAMに書き込みます。
・例えば、この情報は、カードのセクター数やシリアルナンバーなどです。
・詳細については、カードやドライブのマニュアルを参照して下さい。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
エラーコードを参照して下さい。
|
DriveReadSector |
一覧へ戻る |
カードやドライブから、1セクター(512バイト)を読み込みます。
書式 |
variable = Drivereadsector(pointer , sector) |
注釈 |
variable |
= 命令実行によるエラーコードを入れる、バイト型数値変数。 |
pointer |
= 1セクターを読み込むための、SRAMアドレス・ポインタ。(ワード型変数) |
sector |
= 読み込むセクター番号。 (ロング型変数) |
|
・カードやドライブの指定されたセクターから、1セクター(512バイト)を読み込み、変数pointerで
示されるアドレスのSRAMに書き込みます。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
エラーコードを参照して下さい。
|
DriveWriteSector |
一覧へ戻る |
カードやドライブへ、1セクター(512バイト)を書き込みます。
書式 |
variable = Drivewritesector(pointer , sector) |
注釈 |
variable |
= 命令実行によるエラーコードを入れる、バイト型数値変数。 |
pointer |
= 1セクターを書き込むための、SRAMアドレス・ポインタ。(ワード型変数) |
sector |
= 書き込むセクター番号。 (ロング型変数) |
|
・カードやドライブの指定されたセクターへ、変数pointerで示されるアドレスのSRAMの内容を、
1セクター(512バイト)分書き込みます。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
エラーコードを参照して下さい。
|
VER |
一覧へ戻る |
AVR-DOSのバージョン番号を、変数に入れます。
書式 |
variable = Ver() |
注釈 |
variable = AVR-DOSのバージョン番号を入れる数値変数。 (バイト型) |
・最初のリリースは、バージョン1です。
・VERSION()命令とは、異なる命令です。
|
|