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

●やっと命令回路の説明が終了しました

前回までの、割込みとEI命令、DI命令の説明で、やっと命令回路の全ての説明が完了しました。
長かった。
しんどかった。
でも、ここまで、長々とおつきあいいただいて、ずっと読んでくださった方は、もっとしんどかった、かもしれませんね。
おつきあいいただいて、有難うございました。

でも、まだ、終わらないのです。
まだ、TK80のところの説明が、途中のままになっていますので、そいつを片付けなくてはいけません。
ま、それはともかく、記念すべき一区切りですから、もう一度、過去の説明を整理して、表にまとめてみることにいたしましょう。

もう何回かお見せした表です。

●今まで説明してきた命令を、表にまとめました

この表は[第110回]で作成したものです。
[第172回]で、その後に説明した命令を表に追記しました。
さらに、[第208回]でも、その後に説明した命令を表に追記しました。
欄が着色されていない命令は、[第110回]までに説明を完了した命令です。
黄色で着色してある命令は、その後、[第172回]までに説明した命令です。
水色で着色した命令は、その後、[第208回]までに説明した命令です。
ピンクで着色した命令は、その後、[第229回]までに説明した命令です。
この表に最後に追記をおこなったのは、[第229回]でした。
その時点で、残っていた命令はEI命令とDI命令だけでした。
今回は、第247回ですから、たった2つの命令なのに、ずいぶん時間がかかってしまいました。
単なる普通の命令ではなくて、割込みというしくみについても説明しなければ、と考えたために、余計に時間がかかってしまいました。

でも、読み直してみると、割込みとは関係のないところにはまりこんで、しっかり道草していたから、余計に時間がかかってしまった、ようです。
EI命令とDI命令については、[第229回]で説明を始めかけたのですが、その後完全に脱線してしまい、やっとのことで本線に復帰したのは、[第242回]になってからのことでした。
ですからEI命令とDI命令の初出回は、その[第242回]ということにしまして、やっと表の完成です。
今までと同じように着色しておきましょう。
今回はオレンジ色にしました。これで完成です。

命令コード アセンブラ表記 説明(初出)回
01 ddd sss MOV rm, r 第40回
01 ddd 110 MOV r, M 第40回
01 110 110 HLT 第53回
00 ddd 110 MVI rm, imm 第49回
00 ddd 100 INR rm 第58回
00 ddd 101 DCR rm 第58回
10 000 sss ADD rm 第191回
10 001 sss ADC rm 第191回
10 010 sss SUB rm 第191回
10 011 sss SBB rm 第191回
10 100 sss ANA rm 第179回
10 101 sss XRA rm 第179回
10 110 sss ORA rm 第179回
10 111 sss CMP rm 第191回
11 000 110 ADI imm 第191回
11 001 110 ACI imm 第191回
11 010 110 SUI imm 第191回
11 011 110 SBI imm 第191回
11 100 110 ANI imm 第179回
11 101 110 XRI imm 第179回
11 110 110 ORI imm 第179回
11 111 110 CPI imm 第191回
00 000 111 RLC 第166回
00 001 111 RRC 第166回
00 010 111 RAL 第166回
00 011 111 RAR 第166回
11 000 011 JMP addr 第61回
11 011 010 JC addr 第63回
11 010 010 JNC addr 第63回
11 001 010 JZ addr 第63回
11 000 010 JNZ addr 第63回
11 110 010 JP addr 第63回
11 111 010 JM addr 第63回
11 101 010 JPE addr 第63回
11 100 010 JPO addr 第63回
11 001 101 CALL addr 第97回
11 011 100 CC addr 第97回
11 010 100 CNC addr 第97回
11 001 100 CZ addr 第97回
11 000 100 CNZ addr 第97回
11 110 100 CP addr 第97回
11 111 100 CM addr 第97回
11 101 100 CPE addr 第97回
11 100 100 CPO addr 第97回
11 001 001 RET 第98回
11 011 000 RC 第98回
11 010 000 RNC 第98回
11 001 000 RZ 第98回
11 000 000 RNZ 第98回
11 110 000 RP 第98回
11 111 000 RM 第98回
11 101 000 RPE 第98回
11 100 000 RPO 第98回
11 vvv 111 RST vec 第217回
11 011 011 IN port 第106回
11 010 011 OUT port 第106回
00 pp0 001 LXI rp, imm1

第65回

11 pp0 101 PUSH rr 第69回
11 pp0 001 POP rr 第70回
00 110 010 STA addr 第64回
00 111 010 LDA addr 第64回
11 101 011 XCHG 第91回
11 100 011 XTHL 第100回
11 111 001 SPHL 第93回
11 101 001 PCHL 第93回
00 pp1 001 DAD rp 第212回
00 pp0 010 STAX rx 第66回
00 pp1 010 LDAX rx 第66回
00 pp0 011 INX rp 第95回
00 pp1 011 DCX rp 第95回
00 101 111 CMA 第209回
00 110 111 STC 第167回
00 111 111 CMC 第167回
00 100 111 DAA 第223回
00 100 010 SHLD addr 第104回
00 101 010 LHLD addr 第104回
11 111 011 EI 第242回
11 110 011 DI 第242回
00 000 000 NOP 第156回


●問い合わせのメールをいただきました

「発売はいつごろの予定でしょうか?」というお問い合わせのメールをいただきました。

それなんですけれどねぇ。
本当は、もう、ぼちぼち完成して、堂々発売開始ですぅ、なんてことになっていなくてはいけないはずだったのですけれど、それが、まあ、諸般の事情で、なかなかに完成までいきつかないで、もたついているところです。

でも、少しずつですけれど、完成に近づいてきています。
本当に、もうあと少し、のところです。
目標としては、できれば、7月終りころまでには、発売開始!にしたい、と思っています。

それまでに、まだこなさなければならないことが、ヤマほど残っていますから、果たして目標通りにうまくいきますかどうか…。
それはともかく、時々、詳細をお知らせするようにいたしますので、もう少し気を長くしていただいて、おつきあいをお願いいたします。

●で、とりあえずの現在の状況です

説明の方は、まだあとTK80のところの説明や、そうそう、とんでもないミスを発見してしまったお話もまだしていませんでした。
それもしなければいけませんし、まだしばらく続きそうです。
それとは別に、またまたとんでもない、信じられないことにも出くわしてしまいましたので、それもまたどこかでご報告しなくては、と思っています。

作業の方は、配線図の最終チェックが済んで、これから最後のアートワーク図の修正作業と、シルク図の完成作業さえ済ませれば、いよいよ正式基板の発注、というところまで来ているのですが、そこで、止まってしまっています。

うーん。
じつは、ですね。
この間から、こうやって説明を進めていくうちに、あれま、だめじゃないの、というミスが見つかっているものですから、ちょっと、このまま基板を発注してしまうのは、やばいのではないか、という、まあ、当然といえば、当然の結論に至って、しばし、そこのところの対策について、思い悩んでいたところです。

当初は強気だったのですけれどね。
大抵は、大丈夫、だから、とにかく基板を発注してしまって、それができてくるまでの間に、まあ、ちょこちょこっと、形だけでもテストすれば、それでオーケーよ。なんたって、いままで命令回路についてはずいぶん個別にテストプログラムを走らせてきたから、大丈夫だってばぁ。

それが、大丈夫じゃなかったから、説明の途中で、あれま、というおかしなところがでてきたりしてるんですよぉ。
その、極め付きが、近日中にお伝えする予定の、とんでもないミスを発見してしまったこと、でした。

●やっぱり、徹底的にテストしてみなければ

という結論です。
全命令の動作を、全部チェックするためのプログラムを作って、それで動作テストをすることに決めました。
もうカクゴしました。
それが済まないことには、ちょっと、基板の発注はできません(でも、それって、当たり前のことでしょうよ)。

それは、やらなくては、ということは、この間から、わかっていたんです。
でも、やりたくないなぁ。
そりゃあ、なんたって、ものすごく、退屈なプログラムをつくらなくてはならないから。
できれば、やりたくない…。
で、ぐずぐずしてましたけど…。

やっと、腹が決まりました。
昨日から、いくつかに分けてですけれど、テストプログラムの作成と、実際の動作テストの作業にとりかかりました。
やり始めてみると、これはこれで、それほど退屈な作業でもなくて、まあ、結構面白いかな、などと思い始めていたりもしています。
このテスト作業についても、適当なところでお話するつもりです。

ああ。その前に、中断してしまったままの、TK80の説明の続きやら、とんでもないミスを発見したことなどを書かなければ、いけませんでした。
でも、今回は、ちょいとまた時間がなくなってしまいましたので、それについては、次回以降に書くことにいたします。
2009.6.11upload

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