マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[総合第156回]
●LOGディレクトリの修復
前回書きましたようにRTCの設定を忘れて新マイコン独立化システムを起動してしまった場合や、そのほか何らかの不具合やアクシデントなどによってSDカードのLOGディレクトリに「ゴミ」が記録されてしまうことがあります。
本来のログファイル名のルールから外れたファイル名として記録されることもあれば、LOGディレクトリセクタにゴミデータが書き込まれてしまうようなこともあります。
症状が軽い場合にはDIRLコマンドを実行したときにおかしなファイル名が表示されること以外には特に支障がないこともありますが、状態によってはDIRLコマンドの実行によってシステムがハングアップしてしまったり、バックグランドでのログ記録が正常に行なわれなくて、システムが正常に働かなくなってしまう場合も出てくることが考えられます。
そのような場合にはSDカードを再フォーマットすればよいのですが、再フォーマットをするとSDカードに記録されているファイルがすべて消去されてしまいます。
実は以前に新マイコン独立化セットをご購入いただいたお客様から「LOGディレクトリの異常ファイルを削除する方法はありませんか?」というご質問をいただきました。
そのときは対策について考えている時間がありませんでしたので「しばらくお待ちください」とご返事をさしあげたままになっておりました。
前回もそうだったのですが、私自身がLOGディレクトリに不良ファイルを作ってしまってそれを削除したいと思うことがあって、それでとりあえずはマニュアル的でちょっと面倒な作業ですが不良ファイルを削除する方法を考えました。
その方法を考えて実際に使って試してみたのはちょっと前のことでしたが、前回書きましたように、たまたま今度もLOGディレクトリに不良ファイルが作成されてしまい、それがもとでDIRLコマンドを実行すると途中でハングアップしてしまうという状態になってしまいました。
ちょうどよい機会なので、実際にLOGディレクトリを修復する過程を記録して、その画像などをお見せしながら、その方法について説明をすることにします。
まずは実際にLOGディレクトリに不良ファイルが作成されてしまったSDカードに対してDIRLコマンドを実行したときの画像をお見せします。
ここで画面表示が停止してしまい、ZB3.EXEを強制終了するしかありませんでした。
以下このような状態のSDカードのLOGディレクトリから不良ファイルを削除する手順を説明していきます。
その方法はLOGディレクトリをセクタ単位で読み出してその内容を確認し、異常がみつかったら、そのセクタをクリアしてセーブするというものです。
手作業による原始的な方法です。
それを自動的にこなしてくれるようなプログラムを作るとよいのですが、そこを自動化するとセクタの異常内容によっては思わぬ事態がおきないとも限りません。
面倒なようですが、こういう作業は自分の目で確かめながら手作業で修復するのが一番確実です。
この作業で使うのはSDカードのセクタb指定してセクタ単位で読み出すSCTRD.BINと、セクタ単位で書き込むSCTWR.BINです。
どちらも短くて簡単なプログラムです。
SCTRD.BINについては以前にも紹介いたしました([総合第32回])。
下にリストを再掲します。
2017/3/17 10:47 sctrd.txt END=8016 ;sector read ;17/3/17 ORG $8000 ; SCTRD=$7024 REENT=$1033 DATABF=$8200 ; 8000 C30680 JP START 8003 00 SCTH:DB 00 8004 00 SCTM:DB 00 8005 00 SCTL:DB 00 8006 2A0380 START:LD HL,(SCTH) 8009 45 LD B,L 800A 4C LD C,H 800B 3A0580 LD A,(SCTL) 800E 210082 LD HL,DATABF 8011 CD2470 CALL SCTRD 8014 C33310 JP REENT ;J DATABF =8200 REENT =1033 SCTH =8003 SCTL =8005 SCTM =8004 SCTRD =7024 START =8006 |
簡単なプログラムですから、リストを見ながらアドレス8000〜8016にマシン語コードをCMコマンドで入力したあと、ファイル名SCTRD.BINとしてセーブしてください。
または下のリンクをクリックしてバイナリファイルをダウンロードしてください。
SCTRD.BBB
上のリンクをクリックしてSCTRD.BBBをND80Z3.5(ND80ZV、ND8080、MYCPU80)の実行プログラムのあるフォルダにコピーしてください。
ウイルスチェッカーなどが常駐しているとダウンロードを拒否されてしまうかもしれませんから拡張子をBBBに変えてあります。
ダウンロード(コピー)後は拡張子をBINに変えてください。
SCTWR.BINについてはお見せしているかどうか覚えがありません。
こちらもリストをお見せしますから、同じようにしてプログラムを作成してセーブするかリンクをクリックしてダウンロードしてください。
2017/3/22 7:1 sctwr.txt END=8116 ;sector write ;17/3/22 ORG $8100 ; SCTWR=$7027 REENT=$1033 DATABF=$8200 ; 8100 C30681 JP START 8103 00 SCTH:DB 00 8104 00 SCTM:DB 00 8105 00 SCTL:DB 00 8106 2A0381 START:LD HL,(SCTH) 8109 45 LD B,L 810A 4C LD C,H 810B 3A0581 LD A,(SCTL) 810E 210082 LD HL,DATABF 8111 CD2770 CALL SCTWR 8114 C33310 JP REENT ;DATABF =8200 REENT =1033 SCTH =8103 SCTL =8105 SCTM =8104 SCTWR =7027 START =8106 |
こちらも簡単なプログラムです。
リストを見ながらアドレス8100〜8116にマシン語コードをCMコマンドで入力したあと、ファイル名SCTWR.BINとしてセーブしてください。
または下のリンクをクリックしてバイナリファイルをダウンロードしてください。
SCTWR.BBB
上のリンクをクリックしてSCTWR.BBBをND80Z3.5(ND80ZV、ND8080、MYCPU80)の実行プログラムのあるフォルダにコピーしてください。
ウイルスチェッカーなどが常駐しているとダウンロードを拒否されてしまうかもしれませんから拡張子をBBBに変えてあります。
ダウンロード(コピー)後は拡張子をBINに変えてください。
本日は時間がなくなってしまいました。
次回に続きます。
CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第156回]
2018.4.8upload
前へ
次へ
ホームページトップへ戻る