標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第608回]
●Windows7のネットワーク接続(訂正の訂正です)
[第603回]で、Windows7から、ネットワークにある別のマシンの共有フォルダのファイルをコピーしようとしますと、えらく時間がかかります、と書きました。
でもそのあと、[第604回]で、そのような現象は出なくなってしまいました、と書きました。
しかし。
やっぱり、出たのです(これじゃ、まるでお化けみたいです)。
多分ですけれど、どういうときにお化けが出るのか、じゃありませんでした、どういうときに待たされるのか、ということが少しわかったように思います。
どうも、開こうとするファイルのタイプに依存しているようなのです。
ふつうのファイルではそういう現象は起こらないようです。
EXEファイルを開こうとすると、待たされます。
なんだか、ファイルの中をチェックしているようにも見えます。
そういう余計なことはしないでほしいんだけどなあ。
そういうのを「越権行為」というのだぞ。
そもそも、ネットワークの設定で、「ホームネットワーク」あるいは「社内ネットワーク」について、「信頼されているネットワークです」と言ったのは、Windows7くんよ、あんたでしょうが。
そのあんたが。
信頼されているはずのネットワークにつながっている他のマシンの共有フォルダから、EXEファイルをコピーして持ってこようとすると。
「ご主人様ぁ。こいつぁクサいファイルかもしれませんぜぇ。あっしが調べ終わるまで、待っておくんなさいまし」
って、それが余計なことだっていうの!
大体、いったい何を調べようっていうの?
でも、ほんと。いったいぜんたい何をしているのでしょうねえ。大いなる疑問です。
疑問といえば。
いつもEXEファイルだと待たされるか。
といいますと、そうでもないのですねえ。
EXEファイルでも、全然待たされずに、すぐにメニューが開くときもあります。
多分ですけれど、履歴かなにかで管理していて、以前にチェックしたファイルだと、ノーチェックでただちにメニューがオープンするのかも。
でも、そうじゃないときもあるようで、いったいどういう基準でそれをやっているのか、よくわからないのですよねえ。
所有者や使用者が理解できないようなことを、裏でやってほしくないんだけどなあ。
●ステップ動作で異常な表示が…
今回もまたまた想定外のトラブルに遭遇してしまったお話です。
お話がどんどん横道にそれてしまって、あいかわらず脱線続きで申し訳ありません。
リモート接続プログラムの説明書を書いておりまして。
ND80Zモニタプログラムのステップ動作を、リモート接続で行う、というところを、実際にやってみて、確認してみようとしたときのことです。
ここのところ、ND80ZVはUSBで、Windows7マシンに接続しています。
それで、いつものように、まずND80ZVの電源を入れて、それからコマンドプロンプトのリモート接続プログラムをスタートさせました。
これもいつもの手順で、ND80ZVをUSB接続モードにするために、[*(I/O)][8 VF]と操作しました。
これでND80ZVがリモート接続されて、Windows7マシンのキーボード入力で、ND80ZVをリモート操作できるようになります。
ここからが、実はあとから利いてくる、重要なポイントなのですが。
「そうだ、そうだ、ステップ動作の確認をするのだから、ディップスイッチをSTEP側にするんだった」
で、ディッブスイッチをそのようにいたしました。
「そうだった。その前に、8000番地からテストプログラムも書かなくちゃ」
RAMの8000番地からテストプログラムを書くために、まずはWindows7マシンのキーボードから、[8][0][0][0][.]と入力しようといたしました。
[.]はND80ZV側では[ADRSSET]のキー入力になります。
その最初の[8]を入力した途端に、異変は起きたのでありました。
いきなり、コマンドプロンプト画面に次のような表示が現れました。
logfile nd80zlog\09081145.txt open ND80ZVに接続しました 0001 0000 - 8A F B C D E H L SP PC IX IY A'F' B'C' D'E' H'L' I R SZ H PNC BRC 7F50 05E9 FF00 FFF8 FFB6 0D6C 0000 0000 0000 0000 0000 0000 FF6E 01010000 00
一瞬、「うわあ、ND80ZVが暴走してしもうたあ」と思いました。
ま。たまには、そーいうこともあるのさ。
と、ここは無理に冷静を装いつつ。
「こーいうことは、忘れてしまうに限る」と、とりあえずは無難な対応をすることに決めました。
念の為に、[Enter]キーを押してみましたら、普通に応答するようです。いつもの[WR+]として働きました。
[WR+] 0D6D 50F7 - [RD+] 0D6E 00C5 - 8000[ADRSSET]
[+]キーを入力すると[RD+]として働きました。
どうやら大丈夫そうです。
それならばということで、もう一度、[8][0][0][0][.]と入力いたしました。[.]は[ADRSSET]として働きます。
今度は大丈夫のようです。
8000 003C - 3e[WR+] 8001 3EFF - 00[WR+] 8002 00C3 - 3c[WR+] 8003 3C00 - c3[WR+] 8004 C380 - 02[WR+] 8005 0221 - 80[WR+] 8006 8000 - /r
8000番地からテストプログラムを書きました。
8000番地でAレジスタに00をセットしたあとで、8002のINC A(コード3C)で、Aレジスタを+1して、8003のJP $8002(C3 02 80)で8002に戻って、それを繰り返すという簡単なプログラムです。
プログラムを書き終わったら、次はいよいよブレイクアドレスとブレイクカウンタの設定です。
[/][r]と入力するとレジスタモードになります。
*** REGISTER mode entry *** [ AF ] FFEA 7F50 - ra [ brA] FFF0 0000 - 8002[WR+] [ brC] FFF2 0000 - 32[WR+] [ AF ] FFEA 7F50 - [RD-] [ brC] FFF2 0032 - [RD-] [ brA] FFF0 8002 - /0 *** REGISTER mode end ***
[r][a]と入力すると、ブレイクアドレス[brA]がセレクトされます。
ブレイクアドレスとして8002をセットしました。
ブレイクアドレスをセットすると、次はブレイクカウンタ[brC]になります。
ブレイクするまでの繰り返し回数をセットします。
今回は50回(16進数の32)をセットしました。
念の為に[−]キーで、書き込んだ内容を確認しています。[−]キーは[RD−]として働きます。
レジスタモードを終了するには、[/][0](数字キーの0です)と入力します。
いよいよ実行です。
[8][0][0][0][.]と入力してから、[r]キーを入力しました。
[.]は[ADRSSET]、[r]は[RUN]キーとして働きます。
FFF0 8002 - 8000[ADRSSET] 8000 003E - r [RUN]
すると、あっという間にアドレス8002の命令が50回実行され、ブレイクして下のようなレジスタダンプリストが表示されました。
A F B C D E H L SP PC IX IY A'F' B'C' D'E' H'L' I R SZ H PNC BRC 3220 05E9 FF00 FFF8 FFB6 8003 0000 0000 0000 0000 0000 0000 FF44 00100000 00 n [CONT] A F B C D E H L SP PC IX IY A'F' B'C' D'E' H'L' I R SZ H PNC BRC 3220 05E9 FF00 FFF8 FFB6 8002 0000 0000 0000 0000 0000 0000 FF5F 00100000 00 n [CONT] A F B C D E H L SP PC IX IY A'F' B'C' D'E' H'L' I R SZ H PNC BRC 3320 05E9 FF00 FFF8 FFB6 8003 0000 0000 0000 0000 0000 0000 FF6F 00100000 00 n [CONT] A F B C D E H L SP PC IX IY A'F' B'C' D'E' H'L' I R SZ H PNC BRC 3320 05E9 FF00 FFF8 FFB6 8002 0000 0000 0000 0000 0000 0000 FF38 00100000 00 n [CONT] A F B C D E H L SP PC IX IY A'F' B'C' D'E' H'L' I R SZ H PNC BRC 3420 05E9 FF00 FFF8 FFB6 8003 0000 0000 0000 0000 0000 0000 FF50 00100000 00
その後は、[n]キーを入力する度に1ステップずつ実行されて、レジスタダンプが行われます。
[n]キーは[CONT]キー(TK80の[RET]キー)を入力したことになります。
最初はいきなり変な表示が出てしまったものですから、いささかびっくりしたのですけれど、そのあとは特におかしいところもなく、まともに動作してくれているようです。
むむ。
やっぱり、最初のアレは、なにかちょっとだけ誤動作しただけだったんだ。
早いところ、忘れてしまいましょお。
で。
終了することにいたしました。
[RD+] 8004 2002 - [RD+] 8005 0280 - ^E 0000 00C3 - ndremote.exeを終了しました logfile closed at Wed Sep 08 11:53:41 2010
無事終了いたしました。
と、思ったのですが…。
な。なんと。
ND80ZVの7セグメントLEDのアドレス表示部に、05C0という不可解な表示が出ておりました。
リモート接続を終了したときに、ハードウェアリセットをリモートで行う回路があればよかったのですが、PIC18F14K50の端子にその余裕がなかったものですから、リモート接続の終了時にはND80ZVに、[0][0][0][0][ADRSSET][RUN]
を送って、ソフトウェア的にリセットするようにしてあります。
ですから、リモート接続を終了すると、ND80ZVのLEDには00000000が表示されて、リセット直後と同じ状態になります。
というはずなのですが、それが、00000000の表示にはならないで、05C0xxxxというわけのわからない表示になってしまったのです。
うむむ。
やっぱり、おかしい。
念の為にもう一度、リモート接続して動作確認をしてみましたところ、一番最初に出た、あの、いきなりブレイクしてしまったような、レジスタダンプ表示は出ないようになったのですけれど、リモート接続を終了すると、ND80ZVの7セグメントLEDの表示は、必ず05C0xxxxになってしまうのです。
ディップスイッチをSTEP側にした状態でリモート接続を終了すると、ND80ZVのLED表示は00000000にならずに、必ず05C0xxxxになってしまうことが確認できました。
しかし、その状態からでも、ふたたびUSB接続の手続きをすることは、支障なくできました。
ディップスイッチをSTEP側にして、リモート接続を終了すると必ずLED表示が05C0xxxxになる、ということから考えて、それは単なる誤動作などではなくて、どこかにその原因があることは多分間違いないことだと思います。
でも、その原因はどうやって追求したらよいのでしょう?
なにしろ、さっぱり、心当たりがないものですから、途方に暮れてしまいます。
まあ。実用上は特にこれというほどの差し障りがあるわけでもない、のでありますから。
「ディップスイッチがSTEPの状態のときに、リモート接続を終了すると、ND80ZVのLEDには05C0xxxxと表示されますが、あ、え…と、これは、プログラムの都合でこういう表示が出るのでありまして、仕方が無い、あ、いえ、そうではなくて、ああ、誤動作ではありませんから、気にしないようにしてください。
あ、…と、それからひょっとすると、リモート接続したときに、いきなりブレイクしたような表示が出る、かもしれませんが、全然大丈夫ですから、気にしないでください」
なんて、説明書に注記して、
「これにて一件落着」
にしてしまおうとも思ったのですけれど。
まことにもって、因果な性分でありまして。
どうにも気になって、その原因を追求せずには、いられないのですよねえ。
だめだあ。
また説明書作業がストップしてしまうぅ。
2010.9.12upload
前へ
次へ
ホームページトップへ戻る