2017.5.10
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[総合第68回]


●ZB3DOSについてのご質問(3)

前回に続いて、今回もY様からいただいたご質問とその答えです。

(質問)
PIPコマンド終了時に互換DOSの読込および表示されるためあたかもコピーされたように見えます。(プログラム終了時には必ず起こる?)
SMINIT1B.BIN
SMBDOS2C.BIN
SMCCP1B.BIN

(答え)
USB接続型でもアプリケーションの終了時には頻繁にリブートが行なわれています(CP/Mの本来の動作です)。
SDカード型はROMメモリが少ない中でやりくりしているため、ロードエラー時にファイル名が表示できません。
そのための対策です。

そのようにお答えしたのですが、たしかにリブートの度に表示されるのはわずらわしいのも事実です。
CPMコマンドを一度実行してZB3DOSが正しく起動すれば、もうお尋ねのような表示をする必要もありませんから、それなら表示しないようにできないものかという気にもなりますでしょう。
そこで本来のZB3DOSシステムプログラムに少し手を加えて起動時のファイル名を表示させないようにしてみました。
本当はそのように変更したプログラムもCDROMに入れるようにすればよいのですけれど、出荷に追われて考えるゆとりもありませんでした。
以下の説明を参考にして皆様ご自身で変更作業を行なってみてください。

●リブート時のファイル名表示をカットする

まずはご質問の内容について具体的に説明をします。
下はCPMコマンドの入力によってZB3DOS(CP/M互換DOS)が起動する様子です。
これはND80Z3.5(ND80ZV)用の独立化システムです。

CPMコマンドによって最初にZB3DOSシステムプログラム(SZBDS2B.BIN)が読み込まれ、続いてSDカード初期化プログラムSZINIT1D.BINが読み込まれて実行され、そのあとリブート動作としてSZBDOS1N.BINとSZCCP1F.BINが読み込まれたあと、ZB3DOSが最終的にセッティングされます。
ご質問の動作を見ていただくために、ZB3DOSが起動したあとでMBASICを起動させています。
MBASICを終了してZB3DOSに戻るためのコマンドはSYSTEMです。
SYSTEMコマンドを入力すると、リブートが行なわれて、そのときご質問にあったファイル名が表示されます。

確かに毎回この表示がでるのもなんだかなあという感じです。
しかしこの表示はそれなりに必要で、たとえば最初の準備段階でSDカードにSZBDOS1N.BINをコピーするのを忘れていたとしますと、上の表示でSZBDOS1N.BINが表示されたあとでERR:80と表示されます(ERR:80は指定されたファイル名がみつからないというエラーメッセージです)。
もっとも最初に書きましたように一度正しく起動してしまえば、毎回そのように表示するのは冗長ですから、表示されないようにできたらすっきりします。

それにはちょいとした作業が必要です。
この作業は独立化システムの上でもできますが、ここでは画面コピーが簡単なのでUSB接続で行なっています。

SZBDS2B.BINを一部変更するために、
LD SZBDS2B.BIN,CC00
を実行してRAMにロードします。
そのあと一部を書き換えます。
アドレスE2D4〜E2D6、E2E7〜E2E9、E2F2〜E2F4の12箇所を00に書き換えます。

書き換えたら、それを新しいSZBDS2B.BINとするために、先にERASEコマンドで今あるSZBDS2B.BINを消去してから、今書き換えたSZBDS2B.BINをSDカードにセーブします。


ここまで作業してから、ちょっと足りないところがあることに気が付きました。
そこで手戻りの作業でなんだかもたもたしたことをやっています。

SDカードには新しいSZBDS2B.BINをセーブしたのですが、これは後のためハードディスクにも保存しておいたほうがよいと考えました。
そこで同じ内容をハードディスクにSZBDS2B0.BINとして保存しました。
それから変更前のSZBSB2B.BINもSDカードにセーブしておいて、いつでももとにもどせるようにしておくことにしました。
ハードディスクにあるもともとのSZBDS2B.BINをRAMにロードして、それをSZBDS2BN.BINとしてSDカードにセーブしました。
同様にして今回変更したSZBDS2B0.BINもSDカードに保存しました。
これは現在SDカードにあるSZBSB2B.BINと同じ内容ですが、SZBDS2B.BINをSZBDS2BN.BINで書き換えたり、その後にまたSZBDS2B0.BINに変更したりということができるようにしておくためです。
このようにするわけは、CPMコマンドで起動するファイルはSZBDS2B.BINというファイル名でなければならないからです。

そこまで準備したあと、独立化システムに戻って、ZB3DOSを起動してみます。
上の説明の流れからすると、余計なことをしているようですが、上の説明の画像と下の画像は今回の説明のために別々のタイミングで撮影したものなので、そのような印象になります。
ここでやっているのは上の作業で変更したZBDS2B.BINでCPM互換DOSを起動するということです。

CPMコマンドの実行後も、SYSTEMコマンドの実行後も、ファイル名は表示されなくなりました。

●ND8080の場合

ND8080でも同じことをやってみます。
以下の作業はMYCPU80でも同じです。

まずは変更前のファイル名が表示される様子です。


SMBDS2E.BINを書き換えます。

書き換え前のプログラムをSMBDS2EN.BINとしてSDカードにセーブしておきます。
その後、アドレスE2D7〜E2D9、E2EA〜E2EC、E2F5〜E2F7の12箇所を00に書き換えます。
書き換え後のプログラムをSMBDS2E0.BINとしてSDカードにセーブします。

そこまで準備したあと、独立化システムに戻って、SMBDS2E.BINをSMBDS2E0.BINで置き換えたあと、ZB3DOSを起動してみます。

CPMコマンドの実行後も、SYSTEMコマンドの実行後も、ファイル名は表示されなくなりました。

CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第68回]
2017.5.10upload

前へ
次へ
ホームページトップへ戻る