SDOS, SD Card driver for PC-6001 Series Copyright (c) 2008 by Takahide Matsutsuka, All rights reserved. http://www.markn.org/pc-6001/ 1. 使い方 BASICから'sd'リターンで"%"というプロンプトのあるコマンドモードに入ります。 ここで以下のコマンドが使えます。 ? コマンドの簡単な使い方を表示します。 例: % ? ls ディレクトリ情報を表示します。 例: % ls cd [ディレクトリ] カレントディレクトリを変更します。ディレクトリが指定されない場合、 カレントディレクトリをルートディレクトリに変更します。 複数レベル(a/bなど)は指定できません。 例: % cd sub ad [アドレス] 4桁までの16進数でアドレスを指定します。"0x"や"&h"などのプレフィクスや "h"などのサフィックスをつける必要はありません。 このアドレスはRAWモードでの読込開始アドレスや実行アドレスとして使われます。 アドレスを指定しない場合、現在の値が表示されます。 例: % ad a800 rs SDカードアダプタを初期化します。動作がおかしくなったときなどに 利用してください。 例: % rs st <ファイル名> ファイル情報を表示します。BASICファイル、MP6ファイル、RAWファイルがサポート されています。 例: % st ax-9.p6 ex [引数] 実行を開始します。実行方法やアドレスは最後にロードしたファイルの形式により 自動的に決定されます(BASICおよびMP6の場合)。adコマンドでアドレスを指定した 場合はそこから実行されます。 引数はプログラムに渡されます。この機能はMP6ファイルで有効です。 例: % ex movie.pmv mo [オプション] 読込モードを設定します。以下のオプションが有効です。 a ロード後自動実行します (デフォルト) A ロード後自動実行を解除します v ロード中の情報を詳しく表示します V ロード中に情報表示しません (デフォルト) c ロード中に画面表示を停止して速度を上げます C ロード中に画面表示を停止しません (デフォルト) オプションが指定されない場合、現在の指定値を表示します。 例: % mo vA <ファイル名> [引数] ファイル名を指定した場合、そのファイルを読み込みます。ファイル形式は ファイルヘッダにより自動判別されます。拡張子は関係ないので注意してください。 ファイル形式については以降を参照してください。 例: % intro1.p6 例: % pmv movie.pmv BASICおよびMP6ファイルのロードが成功した場合、'mo'コマンドで指定しない限り ロードされたファイルは*自動実行*されます。このときMP6形式の場合は、 指定された引数がプログラムに渡されます。 全てのコマンドは英小文字です。ファイル名はFATの規約で大文字小文字を 区別しません。そのため、もしコマンド名と同じ名前のファイルがある場合は、 大文字で指定することができます。 2. ファイル形式 2-1. BASIC形式 ファイルヘッダ: 16 bytes 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, <6-byte BASICカセットファイル名> ロードされるアドレスは現在のBASICモードとページ数により自動設定されます。 2-2. MP6形式 ファイルヘッダ: 16 bytes 0x54, 0x4d, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, <1-byte モード>, <1-byte ページ数>, <2-byte ロードアドレス>, <2-byte 実行アドレス> モード: ファイルが対応するBASICモード('st'コマンドで表示されますが、サポートされていません) ページ数: ファイルが対応するページ数('st'コマンドで表示されますが、サポートされていません) ロードアドレス: ロード開始アドレス(リトルエンディアン) 実行アドレス: 実行開始アドレス(リトルエンディアン) ファイルがロードされると、アドレス('ad'コマンドで指定されるもの)は ファイルヘッダにある実行アドレスに設定されます。そのため、自動実行モードに なっていなくても、続けて'ex'コマンドを実行するとファイルで設定されている アドレスから実行されます。 2-3. RAW形式 上記以外の全てのファイルです。ファイルヘッダはありませんので、ロードアドレスや 実行アドレスを'ad'コマンドで手動指定する必要があります。 アプリケーション固有のファイル形式については、SDOSのコマンドラインでは (プラグイン等でフックしていない限り)RAWファイルとして扱われます。 3. サポートしているカードとその他 SDOSは全てのFAT12およびFAT16でフォーマットされたMMCおよびSDカードに対応します。 FAT32には対応していませんので、SDHCも対応していません。 このソフトウェアはPC-6001(32kB)およびPC-6001mkIIでテストされています。 ドライバはMMC/SDカードをアクセスするために、PC-6001に備わっているPSG (AY-3-8910)のパラレルポートを使います。実測転送レートは、PC-6001でおおよそ 2.3kB/s(画面を表示する場合)〜4.4kB/s(画面表示をとめる場合)です。 6. APIとフック SDOSはユーザプログラム用にAPIとフックを用意しています。詳細については Hexameterプロジェクトをご覧ください (https://sourceforge.net/projects/hexameter/)。 5. 今後の予定 - PC-6001mkIIの64kB読込み対応 - カードリーダの拡張カード化(AVRを利用する) 6. バージョン変遷 1.0.0 Apr. 24, 2008 Release version Initial release 1.0.1 Apr. 25, 2008 Internal change Move stack area to upper area of VRAM while loading 1.1.0 Apr. 30, 2008 Internal change Command "sdload" introduced 1.2.0 May 1, 2008 Internal change 1.3.0 May 2, 2008 Internal change Command name has been changed to "sd" Commands "ls", "cd', "ad", and "um" have been supported. 1.4.0 May 7, 2008 Release version Some bugs regarding BASIC file have been fixed. MP6 format has been supported. 'ls', 'cd', 'ad', 'rs', 'st', and 'ex' have been supported. Usage document is provided. 1.5.0 May 19, 2008 Release version (SDOS 1.0) A glitch in the stack usage has been fixed. Modes and pages in mp6 format is supported by 'st' command, but yet supported in loading. 1.6.0 Aug. 10, 2008 Release version (SDOS 1.1) 6. Acknowledgement このソフトウェアは、ChaN氏作成のTiny-FatFsから影響を受けました。 有用なソフトウェアの公開、ありがとうございます。 7. 著作権について Copyright (c) 2008, Takahide Matsutsuka. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.