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

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

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

[総合第57回]


●取扱説明書のひとつがやっと出来上がりました

本日も組立説明書の作成作業の続きをしようとして、Windowsパソコンを立ち上げて、Wordを起動しましたら、ピッと音がして、「作成中の文書があります」のメッセージが表示されました。
開いてみましたら、昨日Wordが突然ハングアップして、消滅してしまったはずの作成途中の組立説明書が復活しておりました。
そういえばいつだったかずっと以前にも同じようなことを経験したような…。
ううう。
こーいうことは、もっとはやく表示してほしいなあ。
てっきり完全に消滅してしまったと思って、3時間も費やして思い出し出し再度作成してしまったではないか。
朝から実に気分の悪いことでありました。

ま、しかし、そんなことでくすぶっている余裕などありませんので、気を取り直して一日しっかり説明書の作成作業に取り組みました。
組立説明書は大分出来上がりましたが、図などが多くてまだ完全には出来ませんでした。
とりあえずSDカードインターフェースボードの取扱説明書が出来ましたので内容見本を兼ねてお見せします。
まだ校正などしていませんので、手直しなどが必要になるかもしれません。
PDFファイルにしてUPしたほうが読みやすいと思いますが、まだ作成途中なので普通のホームページの表示形式でUPしました。

●SDカード・PS/2キーボードインターフェースボード取扱説明書

T.この説明書で説明する範囲について
 
 SDカード・PS/2キーボードインターフェースボードの名前の通り、このボードにはSDカードのインターフェースとPS/2キーボードのインターフェースが搭載されています。
 そのうちこの説明書ではSDカードのインターフェースについてのみ説明します。
 SDカードもキーボードもそれを制御するソフトウェアがなければ使えません。
 とりわけキーボードの場合には、特別の用途を別にすれば、プログラムやデータを入力するために用いられ、そのためには入力結果を確認するための画面表示が必要になります。
 つまりはキーボードはCRT/VGAインターフェースとともに使う必要がありますから、説明の都合上、キーボードの取扱についてはマイコン独立化セット取扱説明書の中で説明することにします。
 したがってこの説明書で説明する使い方の場合にはPS/2キーボードは接続しません。
 SDカードのみを実装して使います。
 以下の説明ではSDカード・PS/2キーボードインターフェースボードをSDカードIFボードと略記します。

 SDカードについては次の3つの使い方が考えられます。

 1)キーボード、CRT/VGAディスプレイとともに用いて、独立型マイコンシステムの外部記憶装置として使う。
 2)今までのUSB接続型マイコンシステムの補助的な外部記憶装置として使う。
 3)CRT/VGAインターフェースもUSBインターフェースも使わないで、TK−80モニタ、ND80Zモニタの補助記憶装置として使う。

 1)はCRT/VGAインターフェースが必要になりますので、その使い方についてはマイコン独立化セット取扱説明書の中で説明することにします。
 この説明書では2)3)の使い方について説明します。

U.マイコンボードとの接続
 
 USB接続の場合もマイコンボードのみを単独で使用する場合もSDカードIFボードはマイコンボードのI/O増設用コネクタに接続します。
 ND80ZV、ND80Z3.5、ND8080はいずれもこのキットに付属の26pinフラットケーブルコネクタを使って、基板下部4PDIPスイッチ右側の26pinコネクタに接続します。
 コネクタの1pinが逆向きに対向する形になるため、フラットケーブルがねじれますがスダレ型ケーブルなのでストレスなく接続できます。

 MYCPU80の場合には26pinコネクタのpin配列がSDカードIFボードと異なります。
 また必要な制御線が26pinコネクタにはなく16pinコネクタにあります。
 そのためMYCPU80と接続する場合にはMYCPU80/ND80Z変換コネクタボードを介して接続します。
 MYCPU80でUSB接続をしないでSDカードを使う(ND80ZモニタのSV、LDを使う)場合にはCN3のpin5とpin7をショートピンでショートします([総合第55回]参照)。

V.システムROMの交換
 
 ND80ZV(ND80Z3.5)、ND8080、MYCPU80でSDカードを使うためにはシステムROMを交換する必要があります。
 SDカードIFプログラムの入ったシステムROMにはND80ZV(ND80Z3.5)用、ND8080用、MYCPU80用があります。
 それぞれに合うシステムROMと交換してください。
 このROMはSDカードのためのアクセスプログラムを追加したために、ZB3BASICの倍精度演算機能が使えません。
 そのほかは今までのシステムROMと同じです。

W.SDカードの装着
 
 SDカードはマイコンボードの電源が入っているときでも、入っていないときでも、着脱できます。
 このSDカードソケットはプッシュオン・プッシュオフ型です。
 装着するときも外すときもSDカードがSDカードソケットの奥に当たって止まるところまで軽く押すことで、着脱できます。

X.使用可能なSDカード
 
 ソフトウェアの制約から、このシステムでは2GB以下のSDカードのみ使用できます。
 2GBを越える容量のカードは使用できません。
 2GB以下の容量のカードならminiSDカード、microSDカードも変換ソケットを使って使用することができます。

Y.フォーマット
 
 このキットに付属のSDカードはWindowsのFAT16フォーマット済みですから、そのまま使うことができます。
 何かに使用済みのSDカードもWindowsでFAT16フォーマットをすれば使うことができるようになります。
 もしも独立型ZB3DOS(CP/M互換DOS)での使用も兼用する可能性があれば、ZB3BASICに新たに追加したFORMATコマンドでフォーマットしてから使用してください。
 FORMATコマンドは[.で説明します。

Z.TK−80モニタ、ND80Zモニタでの使い方
 
1)LD(データ、プログラムのロード)

[ND80Z3.5(ND80ZV),ND8080]
 7セグメントLEDのアドレス表示部にロードする先頭アドレスを置き、データ表示部にファイル名(0000〜FFFF)を置いて、[I/O][6]とキー操作します。
 この場合にはTK−80モニタモードでも同じ操作をします。
[MYCPU80]
 7セグメントLEDのアドレス表示部にロードする先頭アドレスを置き、データ表示部にファイル名(0000〜FFFF)を置いて、[STORE][6] とキー操作します。

 いずれの場合でもロードに成功するとデータ表示部にはロードされた終わりのアドレスが表示されます。
 ロードに失敗するとエラーコードが表示されます。

[注記]TK−80モニタ、ND80Zモニタで使うファイル名は4桁の16進数0000〜FFFFのみです。
 LD、SVを実行すると、システムが拡張子BINを付加します。
2)SV(データ、プログラムのセーブ)

[ND80Z3.5(ND80ZV),ND8080]
 7セグメントLEDのアドレス表示部にロードする先頭アドレスを置き、データ表示部に終わりのアドレスを置いて[I/O][6]とキー操作します。
 アドレス表示部にFn..と表示されるので、データ表示部にファイル名(0000〜FFFF)を置いて、[WRITE INC]キーを押します。
 この場合にはTK−80モニタモードでも同じ操作をします。
[MYCPU80]
 7セグメントLEDのアドレス表示部にロードする先頭アドレスを置き、データ表示部に終わりのアドレスを置いて[STORE][5]とキー操作します。
 アドレス表示部にFn..と表示されるので、データ表示部にファイル名(0000〜FFFF)を置いて、[WRITE INC]キーを押します。

 いずれの場合でもセーブに成功するとアドレス表示部にはセーブした先頭アドレスが表示され、データ表示部には終わりのアドレスが表示されます。
 セーブに失敗するとエラーコードが表示されます。

[注記]指定したファイル名がすでに存在するとエラーになります。

3)エラーコード

 エラーが発生すると7セグメントLEDにError.に続いて2桁の数値が表示されます。

50 指定したファイル名がみつからない(LD)
51 データがない(0バイト)(LD)
53 すでに存在するファイル名を指定した(SV)
55 書き込み中にエラーが発生した
56 指定したアドレスに誤りがある(SV)
5A SDカードが実装されていないかSDカードインターフェースボードが接続されていない
5B SDカードが実装されていないかSDカードインターフェースボードが接続されていない
5C おそらく2GBを越えるSDカード
5D コマンドエラー(なんらかの異常が発生した)

[.USB接続型ZB3BASICでの使い方

1)ファイル名のルール

 ファイル名の長さは8桁以内+拡張子3桁以内に限られます。
 拡張子は必須ではありません。
 使える文字は半角英数記号で半角カナもエラーにはなりませんが、DIRコマンドで正しく表示されないので使わないようにしてください。
 記号としては+/*?なども使用可能ですがCP/MやMSDOS、Windowsとの互換性を維持するためにはそれらの記号は使うべきではありません。
 一般にファイル名として使っても支障のない記号としては−か_ぐらいにしておくのが無難です。

2)FORMAT

 FORMATを含めて以下のコマンドはND80ZV(ND80Z3.5)、ND8080、MYCPU80のシステムROMをキットに付属のROMに交換したうえで、WindowsパソコンにUSB接続して、ZB3BASICを起動すると使えるようになります。
 ZB3BASICの起動方法は交換前のROMで行なっていた方法と全く同じです。

 このキットに付属のSDカードはWindowsのFAT16フォーマット済みですから、そのまま使うことができます。
 何かに使用済みのSDカードもWindowsでFAT16フォーマットをすれば使うことができるようになります。
 もしも独立型ZB3DOS(CP/M互換DOS)での使用も兼用する可能性があれば、ZB3BASICに新たに追加したFORMATコマンドでフォーマットしてから使用してください。

 SDカードIFボードにSDカードを装着した状態で
 FORMAT[Enter]
 と入力するとSDカードがZB3DOS(CP/M互換DOS)で使用する形式でフォーマットされます。
 フォーマットには約25秒かかります(ND80Z3.5、ND80ZVの場合)。
 フォーマットによって全てのファイルが消去され、元に戻すことはできません。
 FORMATコマンドによってフォーマットしたSDカードはWindowsパソコンで読み書きすることができますが、Windowsパソコンに接続したときに下記のようなメッセージが表示されることがあります。

 「リムーバルディスクをスキャンして修復しますか?
 このデバイスまたはディスク上のいくつかのファイルに問題がある可能性があります。(以下省略)」

 このときは「スキャンしてこのまま続行します」を選択してください。
 推奨にしたがってスキャンするとZB3DOS(CP/M互換DOS)では使えなくなってしまいます。

3)DIR

 DIR[Enter]
 と入力するとSDカードのルートディレクトリにあるファイル名が表示され、このとき以後はルートディレクトリが選択された状態になります。
 LD、SV、LOAD、SAVE、ERASEの各コマンドはルートディレクトリにあるファイルに対して有効になります。

4)DIRZ

 DIRZ[Enter]
 と入力するとSDカードのZディレクトリにあるファイル名が表示され、このとき以後はZディレクトリが選択された状態になります。
 LD、SV、LOAD、SAVE、ERASEの各コマンドはZディレクトリにあるファイルに対して有効になります。

5)LD

 指定したファイル名のデータが指定したアドレスにロードされます。
 本来はバイナリデータファイル、マシン語プログラムをロードするためのコマンドですがテキストファイルに対しても機能します。
 LD ファイル名,aaaa[Enter]
 と入力します。
 ファイル名に拡張子がある場合には拡張子を省略することはできません。
 aaaaは16進数4桁のRAMアドレスを指定します。
 aaaaにシステムのワークエリア(通常E000以後)を指定したり、データサイズが大きくてロードした結果システムのワークエリアが破壊されたりした場合にはシステムがハングアップするなどの異常が発生します。
 aaaaに0000〜7FFFの間のアドレスを指定すると裏のRAM領域にロードされます。

[使用例]
 LD TEST.BIN,9100

 ロードに失敗するとエラーコードが表示されます。

6)SV

 指定したアドレス範囲のデータが指定したファイル名でセーブされます。
 拡張子に関係なく、バイナリファイルとしてセーブされます。
  SV ファイル名,aaaa,eeee[Enter]
 と入力します。
 aaaaはセーブ開始アドレスでeeeeはセーブ終了アドレスで、ともに16進数4桁の数値を指定します。
 システムのワークエリアを指定することも可能ですが間違いのもとですから避けたほうが無難です。
 aaaaに0000〜7FFFの間のアドレスを指定すると裏のRAM領域を含む領域のデータがセーブされます。

[使用例]
 SV TEST5.BIN,8100,825F

 セーブに失敗するとエラーコードが表示されます。

[注記]指定したファイル名がすでに存在するとエラーになります。

7)LOAD

 ZB3BASICのテキストプログラムファイルをロードします。
 LOAD ファイル名(,aaaa)[Enter]
 と入力します。
 ファイル名に拡張子がある場合には拡張子を省略することはできません。
 aaaaは16進数4桁のRAMアドレスを指定します。
 aaaaを省略するとBASICプログラムは8004番地からロードさとれます。
 aaaaを指定するとBASICプログラムがaaaa番地からロードされます。
 aaaaにシステムのワークエリア(通常E000以後)を指定したり、データサイズが大きくてロードした結果システムのワークエリアが破壊されたりした場合にはシステムがハングアップするなどの異常が発生します。
 
[使用例]
 LOAD TEST.TXT,9100

 ロードに失敗するとエラーコードが表示されます。

8)SAVE

 BASICプログラムが指定したファイル名でセーブされます。
 拡張子に関係なく、テキストファイルとしてセーブされます。
  SAVE ファイル名[Enter]
 と入力します。

 [使用例]
 SAVE TESTPRO.TXT

 セーブに失敗するとエラーコードが表示されます。

[注記]指定したファイル名がすでに存在するとエラーになります。

9)ERASE

 指定したファイル名のファイルを削除します。
 ファイル名に拡張子がある場合には拡張子を省略することはできません。
 ワイルドカード(*?)は使えません。
 削除したファイルはもとには戻せません。

10)エラーコード

 エラーが発生するとERR:に続いて2桁の数値が表示されます。

80 指定したファイル名がみつからない(LD,LOAD,ERASE)
81 データがない(0バイト)(LD,LOAD)
83 すでに存在するファイル名を指定した(SV,SAVE)
84 ファイル名が半角英数8字+拡張子3字のルールに合っていない
85 書き込み中にエラーが発生した
86 アドレスが指定されていないかアドレスに誤りがある(LD,SV)
87 BASICのプログラムが存在しない(SAVE)
90 SDカードが実装されていないかSDカードインターフェースボードが接続されていない
91 SDカードが実装されていないかSDカードインターフェースボードが接続されていない
92 おそらく2GBを越えるSDカード
93 コマンドエラー(なんらかの異常が発生した)

H.いままでのZB3BASICROMをRAMで使う

 V.で説明したように、今までのシステムROMとUSB接続型でSDカードを使うためのROMとの違いはSDカードにアクセスできる代わりにZB3BASICで倍精度演算機能が使えなくなることだけです。
 倍精度演算機能を使う機会はそれほど多くないとは思いますが、その機能が必要な場合にはシステムROMをもとに戻す必要がありますが、ROMをもとに戻さないで使う簡便な方法があります。
 それはもとのROMプログラムを裏のRAMにロードして使う方法です。

[ND80ZV(ND80Z3.5)] 
 付属CDROMに現行のシステムROMのバイナリイメージファイルが入っています。
 ND3ROM4K.BIN
 です。
 それをあらかじめND80Zフォルダにコピーしておきます。
 ZB3BASICを起動したあと、
 /LD ND3ROM4K.BIN,0000[Enter]
 と入力します。
CMコマンドで適当なアドレス(たとえば9000)に下のROM/RAM切換えプログラムを書きます。
9000 3EFF
9002 D39C
9004 C33310
そのあと
JP 9000[Enter]
と入力すると、すぐに>が表示されて見かけ上は何も変わっていないように見えますが、このときRAM上のシステムに切り換わっています。
 念のために本来はROMのアドレスである7FFFをCMコマンドで書き換えてみることで、そのことが確認できます。
CM 7FFF[Enter]
7FFF 03−00   00にしてみる
8000 C3−     ここで[←]を入力して確認する
7FFF 00−     確認できたので[Enter]を入力してCMコマンドを終了する

 このあと倍精度演算のサンプルプログラムを入力してテストしてみます。
 下のプログラムを入力して実行してみてください。

10 FOR A#=0 TO 10
20 PRINT A#,SQR(A#)
30 NEXT A#

[注記]交換後のROMで上のプログラムを実行するとERR:78が表示されます。

 RAMモードからROMモードに戻るにはシステムを終了してリセットするか、CMコマンドで下のプログラムを書いて実行します。 
9007 3E00
9009 D39C
900B C33310

JP 9007[Enter]と入力すると、ROMシステムに戻ります。

[ND8080]
 CDROMからロードするバイナリイメージファイルがN8ROM1H.BINであることと、コピーするフォルダがND8080であること以外は上の[ND80ZV(ND80Z3.5)]の場合と同じです。

[MYCPU80]
 CDROMからロードするバイナリイメージファイルがMROM5V.BINであることと、コピーするフォルダがMYCPU80であること以外は上の[ND80ZV(ND80Z3.5)]の場合と同じです。

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

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