LSI C-80 編

FAT アクセスライブラリーの使用方法
LSI C-80 編
1.開発環境と実行環境
2.開発手順
3.ライブラリファイルと機能
4.コンパイル
5.リンク
6.初期化手順
7.使用上のご注意
8. FAT アクセスライブラリ仕様書
1.開発環境と実行環境
開発環境は LSI ジャパン社の LSI C-80 C コンパイラの動作環境に準じます。LSI C-80
を使用して、Z80/64180/KL5C80xx の開発が可能なパソコンとソフトウエアが揃っている
ことが必須です。
実行環境は当社 CPU カード MPCZ-16EX と PCMCIA カード MPC104−PCMCIA の組
み合わせとなっております。また MPC104-PCMCIA の I/O アドレスモードは8、または
16 ビットアドレス、範囲は 32 番地を占有します。
使用可能な PCMCIA カードの仕様はつぎのとおりです。
ホストインターフェース
: PC Card ATA インターフェース
動作電圧
: 5V または 3.3V/5V 兼用タイプ
フォーマット
: MS-DOS(FAT16)
当社では TDK 製 SFD064H で動作を確認しております。
2.開発手順
LSI C-80 を用いた FAT システム応用プログラム開発の流れを図に示します。
ユーザー作成
ユーザー作成
FAT ライブラリ
Cソース
ヘッダ
ヘッダ
LSIC
C コンパイラ
ユーザー作成
ユーザー作成
FAT ライブラリ
アセンブリソース
ヘッダ
ヘッダ
LSIC
アセンブラ
FAT ライブラリ
(リロケータブル
標準
リロケータブル
ライブラリ
オブジェクト
オブジェクト)
本ライブラリが提供する
LSIC
ファイル
リンカ
ターゲット
システム
デバッグ時
ターゲット
ロードモジュール
.dbg または hex
.hex
ファイル
ファイル
システム
組み込み時
3.ライブラリファイルと機能
本ライブラリは次のファイルで構成されています。ファイル名と内容を示します。
1
2
3
4
5
6
7
8
9
10
ファイル名
fatdef.h
fatinc.inc
cbios.sof
ata.sof
sub.sof
fat.sof
freec.sof
fread.sof
remove.sof
rename.sof
内容
構造体定義ヘッダー、関数プロトタイプ
アセンブリソース用インクルードファイル
カードアクセス BIOS
ATA カードアクセスライブラリ
演算、文字列操作ライブラリ
FAT ライブラリ本体
空き容量探索ライブラリ
ファイル読み出しライブラリ
ファイル削除ライブラリ
ファイル名変更ライブラリ
備考
セクタ単位のアクセス
ファイル作成、書き込み
オプション
オプション
オプション
オプション
4.コンパイル
FAT システムの初期化関数、ファイルアクセス関数を呼び出しているソースファイルに
fatdef.h をインクルードする行を記述してください。
例:(ライブラリが現在のディレクトリの下層 fatlib にあると仮定します)
#include <stdlib.h>
#include <stdio.h>
#include “fatlib¥fatdef.h”
・
_FILE *fp;
・
・
int open_new_file(char *filename)
{
if ((fp = _fopen(filename, “w”)) == 0)
/* ここでファイルオープンのライブラリを
呼び出します */
return 1;
/* Error */
else{
・
・
}
_fclose(fp); /* ファイルをクローズします。クローズせずに終了した場合ファイルの内容
は無効になります */
return 0; /* No Error */
}
5.リンク
アプリケーションにリンクするファイルは cbios.sof、ata.sof、fat.sof、sub.sof です。利
用する機能によってはオプションのファイルもリンクしてください。
またセグメント名はコード部分が fau_code、データ部分が fau_bss となっていますので、
それらもリンカに指定してください。
例:(ライブラリが現在のディレクトリの下層 fatlib にあると仮定します)
knil #CODE=80 #fau_code #DATA=8000 #fau_bss main.hex @link.lst
-mmain.map -nmain.lin -fc:¥lsic¥lib¥romlibz
下線部分がセグメント名です
link.lst の内容です。
main cmain start dir ram adda mod irqclk fatlib¥fat fatlib¥ata fatlib¥cbios fatlib¥sub
fatlib¥freec
6.初期化の手順
ファイルアクセスを行う前にカード電源の投入、カード情報の読み取り、各種変数の初
期化の必要があります。つぎのフローチャートにしたがって、初期化を行ってください。
初期化開始
インターフェースカード
CardAdrsSet(0x00c0)
のアドレス(例 0x00c0)
をセットする
カードの電源オン
ATAInit()
カード挿入確認
NO
エラー処理
結果が0?
(カードが見つからな
い)
YES
カードアクセスモードを
ATASetLBA()
LBA に設定する
ファイルシステムの
FATReset()
初期化終わり
初期化
7.使用上のご注意
使用上のご注意
7.
FAT アクセスライブラリ(FATLIB Ver1.0)の使用上の注意
FAT アクセスライブラリ(本ライブラリ)は MPCZ-16EX 上の CPU:KL5C80A16(Z80
コンパチブルの8ビット CPU)で動作します。したがいまして、プログラムサイズの制限
や、処理時間の節約のため、制限(省略)される機能、仕様があります。
--- FAT 形式の制限
本ライブラリが扱うフォーマットは 16 ビット FAT のみで 12 ビット FAT でフォーマッ
トされたカードは使用できません。
MS-DOS が扱う FAT 形式には 12 ビット FAT と 16 ビット FAT があります。MS-DOS
の初期バージョンはディスク容量(FAT 領域)を節約するため、12 ビット FAT しかあり
ませんでした。しかし、大容量ディスクを管理するためには 12 ビットの FAT では1クラ
スタあたりのサイズが大きくなりすぎて、スペースの効率的な使い方ができなくなるのと、
1つのパーティション(ドライブ)で管理できるファイル、ディレクトリの数が約 4,000
個しかとれないため、MS-DOS の Ver3 から 16 ビット FAT が使えるようになりました。
現在市販されている ATA カードでは、ほとんど 16 ビット FAT でフォーマットされて
いるので問題ありませんが、少容量(20MB 以下)の ATA カードまたはコンパクトフラ
ッシュカードを使用される場合はご注意願います。
--- 機能制限
本ライブラリは現在、次の機能をサポートします。
・ ファイル作成(fopen に相当)
・ ファイルクローズ(fclose に相当)
・ ファイル読み出し(fread に相当)
・ ファイル書き込み、追加(fwrite に相当)
・ ファイル削除(remove、unlink に相当)
・ ファイル名変更(rename に相当)
・ ファイルポインタ移動(fseek に相当)
・ ファイルポインタ取得(ftell に相当)
・ 空きクラスタ計算
・ ディレクトリサーチ
--- 作成されるファイル数の制限
本ライブラリはディレクトリ指定の機能はありません。したがいまして、読み出し・書
き込みはルートディレクトリのみに行われます。ルートディレクトリに作成されるファイ
ル(ディレクトリを含む)数はフォーマット時に決まってしまいますので、この数を超え
てファイルを作成することはできません。たとえば、64MB の ATA フラッシュメモリカ
ードをフォーマットすると、512 個分のディレクトリエントリが作成されます。すなわち、
カードにいくら残り容量があっても 512 個のファイルを作成すると、それ以上のファイル
作成はできません。
アプリケーション開発をされる場合はライブラリ関数の戻り値でエラー検出を行ってく
ださい。
なお、注意していただきたいのは Windows95/98 など、ロングファイルネームをサポー
トした OS でファイルを書き込むと、ファイル名を記憶するためだけにディレクトリエン
トリが消費され、表示されるファイル数と使用されているエントリ数が異なる点です。た
とえば、Windows95 で ABC.DAT という名のファイルをカードにコピーすると、ディレ
クトリエントリに MS-DOS 互換の ABC.DAT という名前が記憶されますが、別のエント
リにロングファイル名フォーマットの名前が記憶されます。しかも、ファイル名が長くな
れば多くのエントリが消費されます(13 文字で1エントリ)。
ディレクトリエントリが何個使用されているかは、エクスプローラや、MS-DOS プロン
プトの DIR コマンドではわかりませんので注意してください。
安全のためには Windows95/98(将来リリースされる Windows シリーズを含めて)で
書き込み操作をしたカードは使用しないことです。つまりカードは本ライブラリで書き込
んだデータを、Windows で読み出し、消去するというふうに一方通行で使用してください。
・免責事項
当社製品の故障、不具合、誤動作あるいは停電によって生じた損害等の純粋経済損失につきましては、当
社は一切その責任を負いかねますので、あらかじめご了承ください。
8. FAT アクセスライブラリ仕様書
概要
組み込みシステムでデータ収集を行う場合、現状ではインテル 386/486 互換のワンボー
ド CPU などと MS-DOS を用いたシステムが一般的な方法として考えられます。しかし、
コストや消費電力の問題でこういったシステムの構築が困難なとき、8 ビット CPU を使
用することにより解決可能な場合があります。本ライブラリは8ビット CPU(Z80 互換の
KL5C80A16)から DOS のファイルシステムにアクセスする手段を提供します。
仕様
記憶媒体
ATA フラッシュメモリーカード
インターフェース
MPC104-PCMCIA
ファイルシステム
MS-DOS(FAT16)
ファイル名形式
8+3
ディレクトリサポート
なし
パーティション
基本のみ
サポートドライブ数
1
1セクタのサイズ
同時にオープン可能なファイル
サポートする C 言語
512 バイト
1
LSIC-80
機能
ファイルオープン
ファイル書き込み(追加を含む)
ファイル読み出し
ファイルクローズ
ファイルポインタ変更
ファイルポインタ取得
ファイル削除
ファイル名変更
ファイルシステムのリセット
ファイル探索
空き容量の取得
パーティションテーブルの取得
空きクラスタの探索
空きディレクトリエントリの探索
ディレクトリ情報の取得
ファイル更新の日時取得
カードへの物理アクセス(セクタリード・ライト、電源オン・オフなど)