■ 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 現在のバッファの内容をディスクに書き込み、ディレクトリを更新します。

● ディスクを直接制御する命令です。
DriveInit ドライブが接続されたAVRのポートピンを設定して、ドライブを初期化します。
DriveReset ドライブをリセットします。
DriveCheck ドライブの状態をチェックします。
DriveGetIdentity カードやドライブからの、パラメータ情報を取得します。
DriveReadSector カードやドライブから、1セクター(512バイト)を読み込みます。
DriveWriteSector カードやドライブへ、1セクター(512バイト)を書き込みます。



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 = 特定のファイルを選択する、ファイル・マスク。

参照 FILEDATE , FILETIME , FILELEN , FILEDATETIME , GETATTR

 
・ファイル・マスクは、("*.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 , FILETIME , FILELEN , FILEDATETIME , GETATTR

 
・ファイル名を指定した場合は、そのファイルの日付を調べます。
・ファイル名を指定しない場合は、DIR()命令で読み込んだファイルの日付を調べます。
・日付の形態はすべて2桁の、「月\日\年」です。

(例) DIR命令を参照。



FILETIME 一覧へ戻る
ファイルの時間を調べます。

書式 string = Filetime(file)
string = Filetime()
注釈
string = ファイルの時間を入れる文字変数。
file = 時間を調べるファイルの名前。 (文字変数 または 文字列)

参照 DIR , FILEDATE , FILELEN , FILEDATETIME , GETATTR

 
・ファイル名を指定した場合は、そのファイルの時間を調べます。
・ファイル名を指定しない場合は、DIR()命令で読み込んだファイルの時間を調べます。
・時間の形態はすべて2桁の、「時:分:秒」です。

(例) DIR命令を参照。



FILELEN 一覧へ戻る
ファイルのサイズを調べます。

書式 variable = Filelen(file)
variable = Filelen()
注釈
variable = ファイルのサイズを入れるロング型数値変数。
file = サイズを調べるファイルの名前。 (文字変数 または 文字列)

参照 DIR , FILEDATE , FILETIME , FILEDATETIME , GETATTR

 
・ファイル名を指定した場合は、そのファイルのサイズを調べます。
・ファイル名を指定しない場合は、DIR()命令で読み込んだファイルのサイズを調べます。
・サイズの形態は「バイト」です。

(例) DIR命令を参照。



FILEDATETIME 一覧へ戻る
ファイルの日付と時間を調べます。

書式 variable = Filedatetime(file)
variable = Filedatetime()
注釈
variable = ファイルの日付と時間を入れる変数。 (下記参照)
file = 日付と時間を調べるファイルの名前。 (文字変数 または 文字列)

参照 DIR , FILEDATE , FILETIME , FILELEN , GETATTR

 
・ファイル名を指定した場合は、そのファイルの日付と時間を調べます。
・ファイル名を指定しない場合は、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 , FILEDATE , FILETIME , FILELEN , FILEDATETIME

 
・ファイル名を指定した場合は、そのファイルの属性を調べます。
・ファイル名を指定しない場合は、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 予約済み

(例) DIR命令を参照。



CLEARATTR 一覧へ戻る
ファイルの属性をクリアします。

書式 Clearattr file , attr
注釈
file = 属性をクリアしたいファイルの名前。(ワイルド・カードは不可)
attr = クリアする属性のビットを指定する数値変数。

参照 DIR , SETATTR

 
・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 = 設定する属性のビットを指定する数値変数。

参照 DIR , CLEARATTR

 
・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 = 削除するファイルの名前。 (文字変数 または 文字列)

参照 NAME

 
・使用中のファイルは、削除できません。
・ファイル名のワイルド・カードは使用できません。
・内部変数 [Gbdoserror] に、エラー情報が入ります。 (例 66 = File not found) DOSエラー表を参照。
 
(例)
Kill "test.txt" ' ファイル test.txt を削除する。
Print "Error=" ; Gbdoserror ' エラーコードを出力。



NAME 一覧へ戻る
ファイル名を変更します。

書式 Name OldFile As NewFile
注釈
OldFile = 変更するファイル名を入れる文字変数。 (12文字)
NewFile = 新しいファイル名を入れる文字変数。 (12文字)

参照 KILL

 
・内部変数 [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 = 変更するディレクトリの名前。 (文字変数 または 文字列)

参照 MKDIR , RMDIR

 
・パス名の長さは8文字以内です。
・1つの命令で2つ以上の階層を変更することは、まだできません。 (Chdir "Main\Sub)
・"\" は、ルートディレクトリ(最上位)へ変更します。
・"." は、1階層上のディレクトリへ変更します。
・内部変数 [Gbdoserror] に、エラー情報が入ります。 (例 66 = File not found) DOSエラー表を参照。
 
(例)
Chdir "prgdat" ' カレントディレクトリを prgdat に変更する。
Print "Error=" ; Gbdoserror ' エラーコードを出力。



MKDIR 一覧へ戻る
新しいディレクトリを作成します。

書式 Mkdir "directory"
注釈 directory = 新しく作成するディレクトリの名前。 (文字変数 または 文字列)

参照 CHDIR , RMDIR

 
・パス名の長さは8文字以内です。
・内部変数 [Gbdoserror] に、エラー情報が入ります。 (例 50 = File Exist) DOSエラー表を参照。
 
(例)
Mkdir "newdat" ' サブ・ディレクトリ newdat を作成する。
Print "Error=" ; Gbdoserror ' エラーコードを出力。



RMDIR 一覧へ戻る
サブ・ディレクトリを削除します。

書式 Rmdir "directory"
注釈 directory = 削除するディレクトリの名前。 (文字変数 または 文字列)

参照 CHDIR , MKDIR

 
・パス名の長さは8文字以内です。
・削除するサブ・ディレクトリの中は、空でなければなりません。
・内部変数 [Gbdoserror] に、エラー情報が入ります。 (例 66 = File not found) DOSエラー表を参照。
 
(例)
Rmdir "newdat" ' サブ・ディレクトリ newdat を削除する。
Print "Error=" ; Gbdoserror ' エラーコードを出力。



DISKSIZE 一覧へ戻る
ディスクのサイズ(容量)を調べます。

書式 variable = Disksize()
注釈 variable = ディスクのサイズを入れる、ロング型数値変数。

参照 DISKFREE

 
・サイズの形態は「バイト」です。
 
(例)
Print "Disksize=" ; Disksize() ' ディスクのサイズを表示。



DISKFREE 一覧へ戻る
ディスクの空き容量を調べます。

書式 variable = Diskfree()
注釈 variable = ディスクの空き容量を入れる、ロング型数値変数。

参照 DISKSIZE

 
・サイズの形態は「バイト」です。
 
(例)
Print "Diskfree=" ; Diskfree() ' ディスクの空き容量を表示。



BLOAD 一覧へ戻る
SRAMに、ファイルのデータを読み込みます。

書式 Bload "file" , address
注釈
file = 読み込むファイルの名前。 (文字変数 または 文字列)
address = 読み込み先のSRAM先頭アドレス。 (ワード型変数 または 定数)

参照 BSAVE

 
・読み込まれるバイト数は、ファイルの大きさに依存します。
・未使用のファイル・ハンドル(バッファ)が、この命令のために必要です。
 
(例)
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 = 保存するバイト数。 (ワード型変数 または 定数)

参照 BLOAD

 
・未使用のファイル・ハンドル(バッファ)が、この命令のために必要です。

(例) BLOAD命令を参照。



OPEN (DOS) 一覧へ戻る
ファイルを開きます。

書式 Open "file" For mode As #channel
注釈 file = 開くファイルの名前。 (文字変数 または 文字列)
mode = Input  −既存のファイルから、入力を行います。
Output  −新規にファイルを作成し、出力を行います。
Append  −既存のファイルの後に、追加を行います。
Binary  −GET・PUT命令で使用するファイルを開きます。
channel = 開くチャンネル番号。 (1〜127) 最大値は255

参照 CLOSE (DOS)

 
・未使用のファイル・ハンドル(バッファ)が、チャンネル毎に必要です。
・一度開かれたファイルは、使用後に必ずCLOSE命令で閉じなければなりません。



CLOSE (DOS) 一覧へ戻る
ファイルを閉じます。

書式 Close #channel
注釈 channel = 閉じるチャンネル番号。 (1〜127) 最大値は255

参照 OPEN (DOS)

 
・開かれたチャンネルは、必ず同じ番号で閉じなければなりません。
・CLOSE命令は、プログラム動作の最後に記述します。



INPUT (DOS) 一覧へ戻る
開かれたファイルから、シーケンシャル・データを読み込みます。

書式 Input #channel , variable , variable ・・・
注釈
#channel = OPEN命令で開いた、ファイルのチャンネル番号。
variable = ファイルからの、数値または文字列を入れる変数名。

参照 OPEN (DOS) , CLOSE (DOS) , WRITE , LINE INPUT , PRINT (DOS)

 
・ファイルに書き込まれているデータの型式と、読み込む変数の型式を合わせる必要があります。

・ファイル 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 = ファイルへ書き込む、数値変数または文字変数および文字列。

参照 OPEN (DOS) , CLOSE (DOS) , INPUT (DOS) , LINE INPUT , PRINT (DOS)

 
・数値変数の値は、バイナリー値ではなく、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 = ファイルからの、文字列を入れる変数名。

参照 OPEN (DOS) , CLOSE (DOS) , INPUT (DOS) , WRITE , PRINT (DOS)

 
・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 = ファイルへ書き込む、数値変数または文字変数および文字列。

参照 OPEN (DOS) , CLOSE (DOS) , INPUT (DOS) , WRITE , LINE INPUT

 
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 = 空いているファイルのチャンネル番号を入れる、バイト型数値変数。

参照 OPEN (DOS) , CLOSE (DOS)

 
・ファイルのチャンネル番号は、1〜255が使用できますが、FREEFILE命令では、128〜255の
 間の使用されていない番号が与えられます。
・よって、ユーザーが任意に割り当てるチャンネル番号は、FREEFILE命令の番号と重複しないように、
 1〜127を使用するようにして下さい。



FILEATTR 一覧へ戻る
開かれたファイルのモードを調べます。

書式 variable = Fileattr(#channel)
注釈
variable = 開かれたファイルのモードを入れる、バイト型数値変数。
#channel = OPEN命令で開いた、ファイルのチャンネル番号。

参照 OPEN (DOS) , CLOSE (DOS)

 
・ファイルが開かれているモードを調べます。
 
   1 = INPUT , 2 = OUTPUT , 8 = APPEND , 32 = BINARY



GET 一覧へ戻る
BINARYモードで開かれたファイルから、データを読み込みます。

書式 Get #channel , variable , position , length
注釈
#channel = OPEN命令で開いた、ファイルのチャンネル番号。
variable = ファイルからの、数値または文字列を入れる変数名、配列。
position = データを読み込む位置を指定する、ロング型変数 (オプション)
length = 読み込むデータのバイト数を指定する、変数または定数。 (オプション)

参照 OPEN (DOS) , CLOSE (DOS) , PUT , LOC , SEEK , LOF , EOF , FLUSH

 
・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 = 書き込むデータのバイト数を指定する、変数または定数。 (オプション)

参照 OPEN (DOS) , CLOSE (DOS) , GET , LOC , SEEK , LOF , EOF , FLUSH

 
・BINARYモードで開かれたファイルにのみ有効です。 すべてのデータ形式が書き込めます。
・デフォルトでは、チャンネル番号と、書き込む変数名だけを与えて実行できます。
・変数の型式によって、書き込まれるバイト数が決まります。
 (バイト型は1バイト、ワード型は2バイトなど)
 (文字列は文字数ではなく、宣言されたバイト数分が書き込まれます。 最大255バイト)
・配列を書き込む場合は、lengthでバイト数を指定できます。 [ Put #1 , buff(1) , , 128 ]
 (lengthは、最大 65535バイトまで)

(例) GET命令を参照。



LOC 一覧へ戻る
開かれたファイルの、現在の論理位置(ファイル・ポジション)を調べます。

書式 variable = Loc(#channel)
注釈
variable = 現在の論理位置(ファイル・ポジション)を入れる、ロング型数値変数。
#channel = OPEN命令で開いた、ファイルのチャンネル番号。

参照 OPEN (DOS) , CLOSE (DOS) , GET , PUT , SEEK , LOF , EOF , FLUSH

 
・ファイルに対して、最後に読み書きを行った位置(バイト単位)を調べます。 (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 = 論理位置(ファイル・ポジション)を入れる、ロング型数値変数。

参照 OPEN (DOS) , CLOSE (DOS) , GET , PUT , LOC , LOF , EOF , FLUSH

 
・ファイルに対して、読み書きを行う位置(バイト単位)を指定します。 (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命令で開いた、ファイルのチャンネル番号。

参照 OPEN (DOS) , CLOSE (DOS) , GET , PUT , LOC , SEEK , EOF , FLUSH

 
・開かれたファイルの、長さ(バイト単位)を調べます。 (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命令で開いた、ファイルのチャンネル番号。

参照 OPEN (DOS) , CLOSE (DOS) , GET , PUT , LOC , SEEK , LOF , FLUSH

 
・開かれたファイルが、終わりに達したかどうかを調べます。
  まだ終わりに達していない場合は、「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命令で開いた、ファイルのチャンネル番号。

参照 OPEN (DOS) , CLOSE (DOS) , GET , PUT , LOC , SEEK , LOF , EOF

 
・通常、ファイル・ハンドル(バッファ)の内容は、別のセクターに変わるか、ファイルが閉じられる時に、
 ディスクに書き込まれ、ディレクトリが更新されます。
・この命令は、まだディスクに保存されていないファイル・ハンドル(バッファ)の内容を、ディスクに
 書き込みます。
・ファイルのチャンネル番号が指定されない場合は、開いているすべてのファイルが書き込まれます。



DriveInit 一覧へ戻る
ドライブが接続されたAVRのポートピンを設定して、ドライブを初期化します。

書式 variable = Driveinit()
注釈 variable = 命令実行によるエラーコードを入れる、バイト型数値変数。

参照 DriveReset , DriveCheck , DriveGetIdentity , DriveReadSector , DriveWriteSector

 
・ドライブの入出力を接続するポートとピンを設定し、初期値を出力ピンに与えます。
・その後、ドライブをリセットします。
・この命令が、どのような動作をするかは、AVRに接続するドライブの種類に依存します。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
 エラーコードを参照して下さい。



DriveReset 一覧へ戻る
ドライブをリセットします。

書式 variable = Drivereset()
注釈 variable = 命令実行によるエラーコードを入れる、バイト型数値変数。

参照 DriveInit , DriveCheck , DriveGetIdentity , DriveReadSector , DriveWriteSector

 
・ドライブをリセットします。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
 エラーコードを参照して下さい。



DriveCheck 一覧へ戻る
ドライブの状態をチェックします。

書式 variable = Drivecheck()
注釈 variable = 命令実行によるエラーコードを入れる、バイト型数値変数。

参照 DriveInit , DriveReset , DriveGetIdentity , DriveReadSector , DriveWriteSector

 
・ドライブにカード等が有るか無いかに関わらず、ドライブのチェックをします。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
 エラーコードを参照して下さい。



DriveGetIdentity 一覧へ戻る
カードやドライブからの、パラメータ情報を取得します。

書式 variable = Drivegetidentity(pointer)
注釈
variable = 命令実行によるエラーコードを入れる、バイト型数値変数。
pointer = パラメータ情報を読み込むための、SRAMアドレス・ポインタ。(ワード型)

参照 DriveInit , DriveReset , DriveCheck , DriveReadSector , DriveWriteSector

 
・カードやドライブからのパラメータ情報(512バイト)を読み込み、変数pointerで示されるアドレスの
 SRAMに書き込みます。
・例えば、この情報は、カードのセクター数やシリアルナンバーなどです。
・詳細については、カードやドライブのマニュアルを参照して下さい。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
 エラーコードを参照して下さい。



DriveReadSector 一覧へ戻る
カードやドライブから、1セクター(512バイト)を読み込みます。

書式 variable = Drivereadsector(pointer , sector)
注釈
variable = 命令実行によるエラーコードを入れる、バイト型数値変数。
pointer = 1セクターを読み込むための、SRAMアドレス・ポインタ。(ワード型変数)
sector = 読み込むセクター番号。 (ロング型変数)

参照 DriveInit , DriveReset , DriveCheck , DriveGetIdentity , DriveWriteSector

 
・カードやドライブの指定されたセクターから、1セクター(512バイト)を読み込み、変数pointer
 示されるアドレスのSRAMに書き込みます。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
 エラーコードを参照して下さい。



DriveWriteSector 一覧へ戻る
カードやドライブへ、1セクター(512バイト)を書き込みます。

書式 variable = Drivewritesector(pointer , sector)
注釈
variable = 命令実行によるエラーコードを入れる、バイト型数値変数。
pointer = 1セクターを書き込むための、SRAMアドレス・ポインタ。(ワード型変数)
sector = 書き込むセクター番号。 (ロング型変数)

参照 DriveInit , DriveReset , DriveCheck , DriveGetIdentity , DriveReadSector

 
・カードやドライブの指定されたセクターへ、変数pointerで示されるアドレスのSRAMの内容を、
 1セクター(512バイト)分書き込みます。
・エラーが無ければ、変数に0が入ります。 0以外のエラー番号は、組み込む設定プログラムの
 エラーコードを参照して下さい。



VER 一覧へ戻る
AVR-DOSのバージョン番号を、変数に入れます。

書式 variable = Ver()
注釈 variable = AVR-DOSのバージョン番号を入れる数値変数。 (バイト型)

参照 VERSION

 
・最初のリリースは、バージョン1です。
・VERSION()命令とは、異なる命令です。





   電子工作の部屋 Top へ 前のページへ戻る