FlashAirのStatusRegister表示プログラム2017年03月26日 23:49

FA_TIMEやFA_CLOCK作成する際に作ったFlashAirのStatusRegisterを表示するプログラム。
1chipMSXに接続したFlashAirの0400hから512バイトを表示する。
ただそれだけ。

ダウンロードはこちら

FlashAirのコマンド発行覚書2017年03月20日 23:48

iSDIOを利用してのコマンド発行の覚書。


コマンド発行手順は

1・CMD48にてシーケンスIDを取得
2・CMD49にてコマンド発行
3・CMD48にてコマンド実行結果のステータス取得
4・CMD48にてコマンドの実行結果取得

となる。

シーケンスIDは0444hから4バイト
コマンドのステータスは0448hから1バイト

コマンド実行はアドレス00hから512バイトのコマンドデータを書き込む。
コマンドデータの書式はここにある通り。

Size of iSDIO Command Write Dataは書き込むデータ全体の長さ
Length of Argument(No.1)はパディングを含まない引数の長さ。

Size of iSDIO Command Write Dataが512バイト以下の場合(たいていそうだと思うけど)
512バイトになるようにFFhを書き込み。
(読込の時と同じく必ず512バイト)
512バイト書き込んだ後はCRC2バイト(ダミーOKなのでFFh2バイトでOK)書き込み。

SendHTTPMessageByRegister(hostName, message)
SendHTTPSSLMessageByRegister(hostName, message)
でHTTPリクエスト発行できるけど、コマンド書き込み直後にステータス取りに行っても
結果は取れないので、数秒待機すること。

ステータスは03hが帰ってくればコマンド発行は成功。
00h→01hと変化するみたい。


MSX&FlashAirでNTPサーバーより時刻取得(FA_TIME Ver0.01)2017年03月19日 23:53

FlashAirのHTTPリクエスト機能を利用して、NTPサーバー(ntp-a1.nict.go.jp)から時刻を取得し、
FlashAirのRTC及びMSXの時刻を設定するプログラム。

FA_CLOCK.COM と違い、自分自身でNTPサーバーに時刻取得に行くのでluaスクリプト不要。
SDカードの初期化も自前で行うので、似非RAM上などにプログラム配置すればノーマルな1chipMSXでも動作するはず。

オプションは以下の通り。
/T[+-]xx タイムゾーンを指定します。デフォルトは/T-09(日本標準時)です。
+05や-03など数字部分は必ず2桁で指定してください。

/Sxx SDカードが接続されているスロットを指定します。
デフォルトは1chipMSXで利用している8D(3-2)です。
MegaFlashROM SCC+ SDでの利用時は適宜設定してみてください。

/M FlashAirのRTCのみ設定し、MSXの時計は設定しません。

W-03でテストしてるけど、iSDIOしか使ってないのでW-01やW-02でも利用可能かも。
(持ってないからテストできない…)

ダウンロードはこちら


FlashAirでHTTPリクエスト2017年03月14日 23:49


HTTPレスポンス

1chipMSXからFlashAirのiSDIOを利用してHTTPリクエスト発行し、レスポンスを受け取ることができた。
とりあえず、タイムサーバーから時刻を受け取ってFlashAirのRTCにセットするプログラムを組んでみるつもり。
パラメーターの大半がハードコーディングになりそうな予感…

FA_CLOCK更新 (FA_CLOCK Ver0.03)2017年03月12日 19:18

Ver0.03
SDカードの初期化処理追加。
これにより、SDHC非対応の1chipMSXでもFlashAirから時刻取得可能に。

例えば
・事前にLuaスクリプトによるRTC設定が正常に動作するFlashAirを準備
・ESE-RAM等SDカード以外にFA_CLOCK.COMを配置。
・1chipMSXのSDカードスロットにFlashAirをセットし、FA_CLOCK.COMを実行
といった手順。

FA_CLOCK.COMはiSDIOを利用してFlashAirから情報を取得している=FATを一切見ていないので、
このような動作も可能。
多分、FlashAirがFAT32フォーマットのままでもRTCから時刻取得できると思う。

ダウンロードはこちら