標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第626回]

●やっと説明書が完成しました

やっとND80ZVの説明書が完成しました。
7月、8月、9月と、なんと3ヶ月もかかってしまいました。
こんなにたくさんになってしまいました。

これ、全部附属説明書です。
以下、ND80ZV組立キットに附属する説明書の一覧です(全てA4版)。

ND80ZV組立説明書  35頁
ND80ZV取扱説明書  11頁
ND80ZV TK80モニタプログラム操作説明書  43頁
ND80ZV ND80Zモニタプログラム操作説明書  44頁
ND80ZV 8080命令説明書  12頁
Z80命令説明書  19頁
ND80ZV 応用プログラム集  89頁
(下記3部は合本) 28頁
   ND80ZV 附属CDROM取扱説明書
   ND80ZV USB接続操作説明書
   ND80ZV リモートプログラム操作説明書
ND80ZV ZB3BASIC操作説明書  75頁
ND80ZV SBASIC(BASICコンパイラ)操作説明書  13頁
ND80ZV アセンブラ・逆アセンブラ操作説明書  17頁

ページ数を合計してみましたら、なんと386頁です!
うちのカミさんがこれを見まして、
「こんなの、読んでくれないんじゃないの、きっと」
と言いましたけど。

いいえ。読んでください。ぜひ!
なんたって3ヶ月もかかった労作なんですから。

昔は説明書もオフセット印刷をしておりましたが、それだと最低でも4〜5百部は印刷しないと割高になってしまいます。
でもこんな頁数で500部も印刷したら、印刷代だけでひっくりかえってしまいます。

第一、そんなに売れないでしょ。
ですから。
ええ。
ふつーのプリンタで印刷します。

目次を含めたら、1セット約400ページ。
たとえば10セットで4000ページ!
うっ、うっ、うっ。
プリンタが、すぐにダメになるう。

ちゃんと両面に印刷しているのです。

なかなかに手間がかかっているのです。
最近のコピー機やプリンタは大抵両面印刷の機能があるのですけれど、言っちゃ悪いけど、あんなものは使い物になりませんです。
遅い、遅すぎます。

ですから、最初に奇数ページだけまとめて印刷して、次にそれをひっくり返して、偶数ページを印刷します。
そういうところも労作なのですよお。
あ。染料系のインクじゃなくて、普通のインクジェットプリンタですから、蛍光ペンでマーキングしたりしますと黒がにじみます。ご了承を。

●あと残っております作業は

やっと説明書もできましたので、あと残っております作業は、附属CDROMの作成作業のみです。
これはそれほど時間はかからないと思います。
説明書全部のPDFファイルを作成することと、附属ソフトウェアをまとめて整理して、書き込み元のフォルダを作成する作業です。

でも、プログラムも結構あるのですよねえ。
今回は、皆様方の参考にしていただけるように、プログラムのソースファイルもつけるつもりです。
ええ。BASICもまるごとソースファイルをつけてしまいます。

●じつは、もうひとつ悩みがあるのです

じつは、昨日も1日USBと格闘しておりました。
それで、ホームページの更新ができませんでした。

そうそう。
Windows7でND80ZVが認識できなかった、というお話しのその後の展開につきましても、まだ書いておりませんでした。
はて?
どういうことだったかいなあ?
と、もうほとんど記憶に残っておりません。情けないことに。

とにかくその後に、PIC18F14K50のプログラムを直しまして、今はもちろん、Windows7でもちゃんとHIDで通信できてはおります。
ええ。32ビット版だけではなくて64ビット版もです。

ところが、じつは。
ときどき、最初にリセットして接続をスタートしたときに、うまく接続できなくて、!マークがついてしまうことがあるのです。
最初は私のパソコンが古いせいか、とかあるいはOSがWindows98だからそうなるのか、とか思ったのですが。
新しく組んだ、Windows7マシンでも、ときどき同じ症状がでてしまうのです。

ND80ZV組立キットも、7月には出来上がっておりましたのに、なんやかやで、とうとう10月入りしてしまっております。
でもこの1ヶ月はそれなりに実りある月でした。
なんたってWindows7に接続することができるようになったのですから。
さらに、WindowsXP〜Windows7のコマンドプロンプトで16ビットアプリケーションを実行した場合に注意すべきことなども、いままで気が付かなかったことを知り得たことは大きな収穫でした。
おかげで、そのことについての[注記]を説明書に書き加えることができました。

まあ、そんなこんなで、遅れに遅れてしまったND80ZV組立キットですので、この際、もう少し時間がかかっても、このHID接続問題をクリアしてしまいたいなあ、と思っております。

●USB接続動作、Enumerationの詳細を解析します

もう少し、組立説明書の続きが残っておりますけれど、それは合間にでもはさむことにいたしまして、次回から、唐突に、USBのEnumerationについての解析に首をつっこんでしまうことにいたします。
ND80ZVを接続したときに、ときたまこけてしまうのはなぜなのか、そのあたりをできたら追求したいと思っております。

どうしたら、その追求ができるのか?
昨日一日あれこれ工夫しておりました。
その結果。
まだ、完全ではありませんが、でも、なんとか見えるようになってきました。

PIC18F14K50のHIDプログラムに手を加えて、Enumerationの様子が観測できるようにしてみました。

これはUSB接続したときに、ホスト(Windowsパソコン)から送られるSetupコマンドと、それに応えてPIC18F14K50からホストに送られるDevice Descriptorなどの値を記録したものです。
ND80ZVをWindows7(64ビット)マシンに接続して記録を取りました。

黄緑色で着色したのがSetupコマンドで、青色で着色したのがDescreptorです。41(A)ホスト、42(B)デバイスは、どちらのデータかを区別しやすくするためにデータの先頭にプログラムで置いたものです。
40はトークンパケットの着信を示します。
48、08はTransactionが完了した(データがホストに送出された)ことを示します。
橙色で着色した5DはUSBが接続されたことを示します(D+/D−検出、リセット検出ほか)。
01はホストからのリセットを示します。
コマンドやデータの詳しい説明は次回以降にいたします。

どうしたら、こんなことができてしまうのか、といったあたりについても、次回に説明いたします。
ちょっとPIC18F14K50のHIDプログラムに手を加えますけれど、ND80ZVを使って、こんなことができてしまうのです。
自画自賛、宣伝ですけれど。
ND80ZVは、そんじょそこらにあるボードとは、ちょいと違うのですよお、というあたりのところをご理解たまわりたく。

[注記]上のドキュメントはUSBの解析をするために、ソフト、ハードに手を加えて記録したものです。
ND80ZVの標準仕様では、このようなデータを記録する機能はありません。
2010.10.2upload

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