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

[目次1]
「TTLでCPUをつくろう!」というテーマで、2008年7月に始まった連載記事も2011年6月には819回を数えるまでになりました。
その成果は2009年9月にMYCPU80組立キットとして結実しました。
その後も連載記事は同じタイトルのまま書き続けていったのですが、途中からはタイトルとは関係のない記事内容になってしまいました。
これはひとえに私の怠慢によるもので、本来ならば記事内容とテーマを合わせて整理すべきものでした。
そこで2011年6月半ばから、連載記事の再編集作業にとりかかりました。
MYCPU80組立キットが完成した2009年9月以降の記事は、記事の内容ごとに、「PICでUSBを!」「ワンボードマイコンをつくろう!」「パソコンをつくろう!」の各タイトルで再編集をいたしました。
そして「TTLでCPUをつくろう!」の本来のテーマに沿った記事を第1回から目次としてまとめたのが、当目次です。
編集の都合で2008年7月の第1回から2009年4月の第200回までを[目次1](このページです)としてまとめ、
2009年4月から2010年3月(第201回〜第449回)を[目次2]としてまとめました。
第450回以降は別テーマですので、この目次にはありません。
また2009年9月以降の記事の中には別テーマとして書いたものも多くなっていますので、それらもこの目次からは除外してあります。
除外した記事は前述のように、それぞれ別テーマの連載記事として再編集してあります。

2008年7月10日〜2009年4月9日 [第1回]〜[第200回]目次(リンク一覧)

[第1回]●TTLを使った組立キットで、何か面白いものはないだろうか?●コンピュータをつくろう!●マイクロプロセッサ[インテル8080]との出会い●ついにコンピュータ完成、か?●あの、TK80が!●そして、BASICが!おお!動いた!●本当に作りたかったのは、こんなモノではなかったはず…●今こそ、CPUをつくろう!
[第2回]●なぜTTLでつくるのか?理由についてその2です●では、何をつくるか?と言えば、やっぱりこれしかない!のではありませんか?
[第3回]●8080はこんなICなのだ!
[第4回]●実は、すでに設計は完了してしまっているのです
[第5回]●今回の回路の基本的なコンセプト
[第6回]●では、どんなICを使っているのでしょう?
[第7回]●回路図設計は大変な作業だったけれど…プリント基板配線図作成はもっと大変!●しかし…。プリント基板もハンパじゃあなかった。●プリント基板作成ソフト(CAD)●フリーのプリント基板エディタ
[第8回]●さて、残りの回路はどうなるのでしょう?●残りの回路の基板
[第9回]●落ち着いて、最初からもう一度考えてみよう!●やっぱりムリだった…。●でも、せっかくなので、CPUをつくる組立キットはあきらめたくはない
[第10回]●宿題の答えです●十進補正って何だ?●16進数●ここからがやっと本題のDAAのおはなし●BCD数
[第11回]●新しい組立キットを考えました!●4ビットCPUの組立キットです!●4bitマイコンボードMC4命令コード表●ところで、ICの使用個数は減ったのでしょうか?
[第12回]●またまた大変なことをみつけてしまいました●フリーの回路図エディタ●実は、「回路図」は一番最後に出来あがる!●プログラムを書くときも、ぶっつけ本番!●PC(プログラムカウンタ)の回路図(お馬鹿)の答えです●PC(プログラムカウンタ)には、74HC193を使う(74HC191では、だめです)
[第13回]●DAAのお話の続きです●BCD数の計算でも、2進数の計算と結果が一致する場合もある●一致する計算と不一致になる計算を区別して整理してみよう●DAAの補正の方法が見えてきた!●しかし、それだけでは問題はまだ解決しない!●しかし、計算結果に「色」がついていた!●では、どのように補正するのか?●まだ、説明は終わりません!●キャリーフラグが問題!●以上のまとめ●まだ、宿題は全然終わりではありません!
[第14回]●DAAの続き(その2 減算に対しては?)●ところで、余談ですが、2進数、16進数には符号付の数と符号無しの数があります●2の補数(7月22日追記)●「1の補数」と「2の補数」●16ビットの2進数●16ビットの計算●2進数の、正の数と負の数●符号付の2進数には「符号ビット」というものがある●マイナスのマイナスはプラス、だが…●まだ、納得がいきません●本題に戻ります。BCD数の減算と2進数の減算の結果の違いについて整理してみましょう
[第15回]●DAAのお話の続き(その3 「減算後の補正について」の続き)●その前に、前回の加筆訂正についてのご報告です。●減算の代わりに加算する●上位桁についても同じ考え方ができるか?●上位桁と下位桁の両方ともに補正が必要な場合はどうなるか?●減算に対するDAA(十進補正)のまとめ
[第16回]●DAAのお話の続き(その4 最終回、のつもりでしたけれど…)●それでは、どんな回路になるのでしょうか?●忘れてしまうところでした。Nフラグについてです●負の2進数について、もう少し
[第17回]●DAAのお話の続き(その5 今度こそ、本当に終わり、です)●人間の計算方法(十進数)とコンピュータの計算法(2進数)は根本的に異なっている●コンピュータは単純な作業が得意。複雑な思考は、できません。●符号付2進数の特徴とは?●2進数は「金太郎飴」と同じ
[第18回]●試作基板を発注しました●また、大ミスをみつけてしまいました…●TTLは遅い!●ORを8ゲートも追加!●不幸はまだ続く!
[第19回]●2枚目の基板の配線チェック作業に入りました●P/Vフラグ(パリティ&オーバーフローフラグ)●そうか!8080とZ80の比較資料をみつければ、良かったんだ!●Nフラグの回路と同じように、オーバーフローフラグの回路も、削除!
[第20回]●まずは、パリティフラグについて、少しだけ●コンピュータで使われる文字コードのお話●ASCIIコード●7ビットコードと8ビットコード●お話をもとに戻します。7ビットコードと8ビットコードの、別の切り口です●7ビットコードとパリティチェックは相性がいい●やっとパリティフラグの登場です●しかし、8ビットコードではこうは都合よくはいきません●お話はさらに脱線してしまいます●BCD数と十進数と2進数、その上さらに今度は文字コードです!●LFとCR●例をあげて説明します(以上、7月29日大幅に加筆いたしました)●それでは、やっと、オーバフローフラグのお話です●8080はオーバーフローなどいたしません(?)●そんな話は、おかしいよー!それじゃINC(INR)命令は127を超えて実行はできないと言うの?
[第21回]●INR/DCRのオーバーフローフラグ回路●まず、DCR回路について説明しましょう●INR回路はこのままではわかりづらい●ORゲートがANDになる?
[第22回]●2枚目の基板の最終チェックが済みました
[第23回]●2枚目の基板図の写真です●少しずつ、回路の説明をはじめましょう●レジスタの回路図です。A、B、C、D、Eの各レジスタです●HレジスタとLレジスタです●内緒のワークレジスタです
[第24回]●回路の説明にとりかかろうと思った矢先に…●なんとか、ICの数を減らせないだろうか●結局、今のままでいくことに…
[第25回]●こんどこそ、やっと、本当に回路の説明にはいります●なので、まずインパクトのある回路図から、どどっとお見せいたします●周辺部(データバス、アドレスバス)およびOPコードレジスタです●回路図の簡単な説明です(2008.8.3追記)●まずはデータバスです●アドレスバス●d0〜d3、s0〜s3は何の信号か?●OPコードレジスタ●LEDを山ほど使います!●LED回路について●TTLの出力にLEDのアノードはつなげない●74HCシリーズの出力にはLEDのアノードをつなぐことができる●オープンコレクタまたはオープンドレイン●TTLとHCは違うじゃないの
[第26回]●タイトルを訂正いたしました●前回についても少し加筆しました●なぜLEDの接続に2通りを使っているのでしょう?その理由です●では、まず、そもそもなぜプルアップ抵抗が必要なのか?の説明から●CMOSの入力端子をオープンにしてはいけません!●だけど、CMOSはほとんど電流を消費しないICだったのではないの?●ファンアウトということ●CMOSのファンアウトはン百?●CMOSでは流れないはずの電流が流れてしまう?●CMOSは出力がスイッチするときに電流が流れる(らしい)●ラインをハイインピーダンスにしてはいけないので、プルアップ(またはプルダウン)●それでは、プルアップ抵抗があると、なぜLEDのアノード接続ができなくなるのか?その理由です●いや、それでもLEDを直接接続できるはず●欠点とは?
[第27回]●回路図の説明をあと少し…●s0〜s3、d0〜d3(レジスタアドレス)●レジスタ選択回路
[第28回]●水晶発振回路
[第29回]●JKフリップフロップとDフリップフロップ
[第30回]●74HCU04●74HCシリーズのデータシートの入手先
[第31回]●メールをいただきました●やっぱりAMDだったんだ!●でも残念ながら、フラグについては不明のまま●そうそう、もうひとつ、ホームページについての情報もいただいておりました●でも…、なんだか、少し、おかしいような…●でも、気になるので…、もう少し、探ってみました●算術演算命令のP(parity)フラグには意味は無いのか?●名探偵の推理●試作基板が、いよいよ、出来てきそうですよ!
[第32回]●フラグについて(続き)●Aフラグとは?●毛利のおっちゃんの名推理(その後)●また、メールをいただきました
[第33回]●プルアップはダイオードがあるとダメ、でした●なんと、リレー1000個を使った計算機!●なにごとにも検証が大事です●うちのシステムはほんと、便利なシステムなんですよー
[第34回]●基板が出来てきました!
[第35回]●基板が少しずつ完成に近づいてきました●デバッグ回路を用意しました
[第36回]●試運転成功!動きましたよ!●あとは明日。本日はここまで。さあ、乾杯!
[第37回]●まずは、メモリテストから始めましょう●いよいよお待ちかね、の本番テスト、です●最初はクロックを入力して1マシンサイクルずつ実行●今度はいよいよ、本番中の本番、通常のクロック(4MHz)で一気に実行させます
[第38回]●水晶発振回路●やっぱりHCは電流を消費しませんでした●STEP回路は削除●2枚目の試作基板も発注予定
[第39回]●OPコードフェッチサイクル●T、M、Wクロック発生回路は「つくるCPU」回路の心臓部です●もういちどOPコードフェッチのタイミングチャート●プログラムカウンタの回路図です●OPコードレジスタ部分の回路図です●制御信号作成回路です●論理ゲートの回路図はこう描くと、もっとわかりやすくなります●OPコード(マシン語命令コード)をOPコードレジスタにラッチします●そして最後の仕上げです
[第40回]●回路図を差し替えました●本日はいよいよ、MOV命令、MVI命令、HLT命令の回路の説明です(でも本日だけではとても終わりません)●MOV命令のマシン語コード●HLT命令●MVI命令のマシン語コード●MVI命令の動作●さて、MOV、HLT、MVI命令の回路図です●まずは、MOV r,r’の回路図です●MOV r,r’のタイミングチャートです●MOV r,r’回路の説明です●どうして、regRDはM2で、regWRはT4なのでしょう?●Mclrっていったい何者?
[第41回]●ステップ動作について●外部クロックを使ってマシンサイクル毎に実行できる●MOV r,r’の動作をクロックごとに実行させてみました●クロック毎の動作の様子を写真に撮りました
[第42回]●MOV r,Mの回路図です●MOV r,M のタイミングチャートです
[第43回]●MOV r,Mの動作をクロックごとに実行させてみました●クロック毎の動作の様子です
[第44回]●MOV M,rの回路図です●s≠110は条件に加えなくてもよい?●MOV r,M のタイミングチャートです●MEMWRの出力タイミングについて
[第45回]●MOV回路を大幅に変更してしまいました●改造後のMOV r,Mのタイミングチャートです●改造後のMOV M,rのタイミングチャートです●MEMWRからdataOUTをつくる●RCは使わない方がいい●MEMWR、MEMRDの回路図です●RSフリップフロップ●次はDフリップフロップの出番です
[第46回]●改造後の回路で、MOV M,rの動作をクロックごとに実行させてみました●クロック毎の動作の様子です
[第47回]●またすこし、追記いたしました●テーマとは全く関係ありませんが…Operaが9.52にバージョンアップ
[第48回]●ダイオードOR●ワイヤードOR●なぜ普通のOR回路は使えないのか?●CPU回路のほとんどは、いつも止まっている●ワイヤードORは複数の出力線を1本にしてしまう●ゲートの出力同士はつなぐことができません●CPU回路では74HC03と74HC05が大活躍●ワイヤードORにはプルアップ抵抗が必要●やっと、ダイオードORの説明です●ダイオードORをLSTTLで使うのはまずい●ワイヤードORは負論理にしなければならない
[第49回]●MVI命令の説明です●MVI r,I8の回路図です●MVI r,I8のタイミングチャートです
[第50回]●MVI r,I8の動作をクロックごとに実行させてみました●クロック毎の動作の様子です
[第51回]●MVI M,I8の説明です●MVI M,I8はダイレクトに実行することができません●MVI M,I8を実行させるためには、ワークレジスタが必要●MVI M,I8の回路図です●MVI M,I8のタイミングチャートです
[第52回]●MVI M,I8の動作をクロックごとに実行させてみました●クロック毎の動作の様子です
[第53回]●HLT命令の説明です●HLT命令の回路図です●HLT命令のタイミングチャートです●HLTはPCのカウントアップを禁止することで、HLTとなる●プログラムカウンタの回路図(カウントアップを禁止している部分の回路)
[第54回]●HLT命令の説明の続きです●なぜHLT命令なのに、動いているのでしょう?●MOV命令とHLT命令の競合●ANDを追加した、MOV命令の回路図です●ついうっかりしてしまった、74HC126の回路
[第55回]●HLT命令の動作をクロックごとに実行させてみました●クロック毎の動作の様子です
[第56回]●リセット回路●RESETの回路図です●パワーオンリセット回路●パワーオンリセットの波形です
[第57回]●BUSRQ回路の説明です●BUSRQの回路図です●CPUがBUSRQ信号を受け付けたときの写真です●BUSRQと、BUSAKの波形写真です
[第58回]●いよいよ2枚目の基板の説明にかかります●最初はINR、DCR回路の説明です●INR、DCR命令のデコード回路です●INR(DCR)レジスタの回路です●SフラグとZフラグ●H(ハーフキャリー)フラグ●あれ?C(キャリー)フラグがある?
[第59回]●フラグレジスタの回路図です●74HC74は74LS74ではなかった!●74LS74の内部論理図です●74HC74の内部論理図です●74HC74の出力にはバッファがついている!●INR、DCR命令の回路図です●INR/DCR命令のタイミングチャートです
[第60回]●大幅に加筆、および回路図の変更をいたしました●2枚目の試作基板が出来ました!
[第61回]●JMP命令の説明です●話の順番として、JMP命令をデコードする回路です●2枚目の基板にある全命令のデコード回路です●JMP命令のタイミングチャートです
[第62回]●JMP命令の回路図です●2番目の基板にICを取り付けました
[第63回]●条件JMP命令●条件JMP命令(条件不成立のとき)のタイミングチャート●2枚目の基板に部品を全部実装しました
[第64回]●STA命令とLDA命令●STA命令、LDA命令のタイミングチャートです●STA命令、LDA命令の回路図です
[第65回]●LXI命令●8080のニーモニックは不統一?●LXI命令のタイミングチャートです●LXI命令の回路図です
[第66回]●STAX命令とLDAX命令●インテルニーモニックとザイログニーモニック●STAX命令、LDAX命令のタイミングチャートです●STAX命令、LDAX命令の回路図です
[第67回]●スタックポインタ●スタック
[第68回]●SP(スタックポインタ)の回路図です
[第69回]●PUSH命令の説明です●PUSH命令の回路図です●PUSH命令のタイミングチャートです●AレジスタはHighかLowか?
[第70回]●POP命令の説明です●POP命令の動作●POP命令のタイミングチャートです●POP命令の回路図です●2枚目の基板の追加配線作業が完了しました
[第71回]●2枚目の基板が動き出しました!●LXI B命令のクロックごとの動作の写真です
[第72回]●INR、DCR命令について説明するつもりでしたが…●回路図の訂正です●d3〜d0の立ち上がりが遅い!
[第73回]●回路図の訂正(の続き)です
[第74回]●STA、LDA、JMP命令のクロック毎の動作を見ていきます●まずは、MVI A命令のクロック毎の動作の写真です●STA命令のクロック毎の動作の写真です
[第75回]●2回目のMVI命令の動作の写真(前回の続き)です●LDA命令のクロック毎の動作の写真です
[第76回]●JMP命令のクロック毎の動作の写真です
[第77回]●ついに!8080の詳細な技術資料をいただいてしまいました●INR、DCR命令でもP(パリティフラグ)が変化することがはっきりしました●INR、DCR命令はすでに説明済みでした
[第78回]●INR B命令のクロック毎の動作の写真です●また回路にミスがみつかりました●INRレジスタの回路図を修正します●INR、DCRの回路図も変更します●またメールで教えていただきました
[第79回]●INR、DCR命令のクロック毎の動作確認の準備です●LXI H命令のクロック毎の動作の写真です●MOV M,H命令のクロック毎の動作の写真です
[第80回]●INR M命令のクロック毎の動作の写真です●MOV A,M命令のクロック毎の動作の写真です
[第81回]●INR L命令のクロック毎の動作の写真です●DCR H命令のクロック毎の動作の写真です
[第82回]●PUSH命令、POP命令のクロック毎の動作の写真を撮ったのですが…●PUSH、POPはわざと組み合わせを変えることがある●スタックの値が変わってしまう?
[第83回]●PUSH命令回路の問題点(前回の続きです)●MEMWR回路を変更しました●MEMWR回路変更後のPUSH命令のタイミングチャートです●regWR回路変更後のPOP命令のタイミングチャートです
[第84回]●LXI SP命令のクロック毎の動作の写真で●PUSH PSW命令のクロック毎の動作の写真です●PUSH H命令のクロック毎の動作の写真です
[第85回]●POP PSW命令のクロック毎の動作の写真です●POP H命令のクロック毎の動作の写真です
[第86回]●STAX命令のクロック毎の動作の写真です●LDAX D命令のクロック毎の動作の写真です
[第87回]●条件JMP命令のクロック毎の動作の写真です●JZ命令のクロック毎の動作の写真です(1)●DCR A命令実行後のフラグの状態です●JNZ命令のクロック毎の動作の写真です(1)
[第88回]●JNZ命令のクロック毎の動作の写真です(2)●INR A命令実行後のフラグの状態です●JZ命令のクロック毎の動作の写真です(2)
[第89回]●JP命令のクロック毎の動作の写真です(1)●DCR A命令実行後のフラグの状態です●JM命令のクロック毎の動作の写真です(1)
[第90回]●JM命令のクロック毎の動作の写真です(2)●INR A命令実行後のフラグの状態です●JP命令のクロック毎の動作の写真です(2)
[第91回]●XCHG命令の説明です●XCHG命令のタイミングチャートです●XCHG命令の回路図です
[第92回]●XCHG命令のクロック毎の動作の写真です
[第93回]●SPHL命令●PCHL命令●SPHL命令とPCHL命令のタイミングチャートです●SPHL命令とPCHL命令の回路図です
[第94回]●SPHL命令のクロック毎の動作の写真です●PCHL命令のクロック毎の動作の写真です
[第95回]●INX命令とDCX命令●INX命令、DCX命令のタイミングチャートです●INX命令、DCX命令の回路図です
[第96回]●DCX命令のクロック毎の動作の写真です●INX命令のクロック毎の動作の写真です●もう一度、INX命令のクロック毎の動作の写真です
[第97回]●CALL命令●CALL命令のタイミングチャートです●CALL命令の回路図です●条件CALL命令
[第98回]●RET命令●RET命令のタイミングチャートです●RET命令の回路図です●条件RET命令
[第99回]●CALL命令のクロック毎の動作の写真です●MOV B,A命令のクロック毎の写真です●RET命令のクロック毎の動作の写真です
[第100回]●XTHL命令●XTHL命令のタイミングチャートです●XTHL命令の回路図です
[第101回]●XTHL命令のクロック毎の動作の写真です●POP B命令のクロック毎の写真です
[第102回]●XTHL命令のクロック動作(T15)の異常の原因がわかりました
[第103回]●Qe出力について、タイミングチャートで説明します
[第104回]●LHLD命令●SP(スタックポインタ)を利用する●LHLD命令のタイミングチャートです●SHLD命令●SHLD命令のタイミングチャートです●LHLD命令とSHLD命令の回路図です
[第105回]●SHLD命令のクロック毎の動作の写真です●LHLD命令のクロック毎の写真です
[第106回]●IN命令とOUT命令●メモリ空間は16ビットですがI/Oは8ビットです●メモリとI/Oがぶつかってしまわない理由●IN命令とOUT命令はAレジスタだけ●IN命令とOUT命令のタイミングチャートです●IN命令とOUT命令の回路図です
[第107回]●IN命令とOUT命令の動作テスト●I/Oといえば82C55が定番です●82C55の簡単な説明です●動作テストプログラムです
[第108回]●テスト用回路の構成●メモリアドレスは下位8ビットだけ?
[第109回]●OUT命令とIN命令のクロック毎の動作の写真です
[第110回]●今まで説明してきた命令を整理してみました●作るべきか、それとも、作らざるべきか。それが問題だ…●しかし、悪魔のささやきが…●ついに、試作2号基板です!
[第111回]●試作2号基板の仕様などについて●メモリとスイッチをつけました
[第112回]●試作2号基板のICの使用個数
[第113回]●試作2号基板の配線図をプリントアウトしました●図面をカットして貼り合わせました●こちらは回路図の写真です
[第114回]●なにしろ大変な作業ですので…●どうしてここまでやるのでしょう?
[第115回]●チェック作業の進行状況の中間報告です
[第116回]●もうあと、一息です
[第117回]●チェック作業が終わりました
[第118回]●試作2号基板の最終図面。のはずだったのですが…
[第119回]●82C55は止めましょう●では、何を追加するつもりなのでしょう?●いっそ、TK−80にしてしまいましょう!●それでは、実装するためのスペースの確保です
[第120回]●「TK80」の回路です●まずは7segLEDの説明から●TTLロジックではLEDドライブには74LS47を使います●7segLEDの表示を8ビットデータでおこなう
[第121回]●7segLED表示回路はダイナミックドライブです●7seg表示回路はDMAを利用します
[第122回]●7segLED表示回路を手直ししました●74HC373と74HC374、見かけは同じ、ですが中身は大きく違います●74HC373のデータシート(部分)です●74HC374のデータシート(部分)です●74HC373の場合のタイミングチャートです●74HC374の場合のタイミングチャートです●そこで、今回の回路図になりました●74LS145のデータシート(部分)です
[第123回]●キーマトリクス回路の説明です●74HC138のデータシート(部分)です
[第124回]●7segLED表示回路の更なる改良です●改良後の7segLED表示回路です●74HC191のデータシート(部分)です
[第125回]●TK80の資料をいただいてしまいました!●TK80の7segLED表示回路●「つくるCPU」のLED表示回路の説明です
[第126回]●RC発振回路の動作の説明です●インバータの入力が+2.5Vを越えると、とんでもないことがおきてしまいます!●コンデンサが2階に?●放電し終わって、C1の電圧が0Vになったら、そこで止まる?●インバータの入力が+2.5V以下になると、ふたたび、とんでもないことが…●今度は、コンデンサが地下に?
[第127回]●RC発振回路の動作の説明(その2)です●CMOSゲートの入力端子に電気は流れないはずだった、のですが…●クランプダイオード●それなら、安心だ…●74HCシリーズの「絶対最大定格」●でも、参考までに…。なにごとも実験です
[第128回]●試作2号基板の配線図ができあがりました●基板屋さんにガーバーデータを送りました●やれやれ、またか…
[第129回]●追加した回路部分です。さてこれは何でしょう?●そこのところの、回路図です●シリアル変換にはPICを使います●余談ですが…
[第130回]●メモリ(ROMとRAM)と入力スイッチの回路図です●ROMのアドレスとRAMのアドレス●プログラム&データ入力スイッチ●せっかくなので、RAMはバックアップしておきたい…●RAMのバックアップはCEの禁止が必要●プロテクトスイッチの代わりに、トランジスタを使います
[第131回]●ALUについて●74HC181●74HC283
[第132回]●74HC283の真理表の説明です●表のH、Lを1、0に置き換えてみます●じつは、論理回路なのです●加算回路の論理的考察●Half Adder回路
[第133回]●Full Adder回路●Full Adder回路です●4ビットのFull Adder回路です●74HC283の内部論理回路図です
[第134回]●試作基板ができてきました!
[第135回]●試作基板の写真
[第136回]●試作基板の部品実装作業にとりかかりました●まずはクロック発振回路の実装です●絶対にしてはいけないこと●絶対にしてはいけないこと。それは入力端子オープンです●CMOS・ICが「静電気」で破損する?●そこでふたたび「静電気」●「試作基板の実装作業のおはなし」のはず、でしたけれど…
[第137回]●クロック回路の実装作業●水晶発振回路●マシンクロック発生回路です●74HC08(32)の残り2/4の捜索●クロック回路に部品を実装したところです●無事にクロック回路が動きました
[第138回]●メモリ回路について●RAMとROMのアドレス選択●アドレス、データ入力スイッチの件●アドレス、データ入力スイッチとメモリ(RAM)を実装したところの写真(スキャナ利用)です●RAMセレクト用のショートピンです●追加変更後の回路図です●トランジスタとダイオードが直列に…
[第139回]●穴が…、小さい???
[第140回]●RAMのバックアップデータが書き換えられてしまう?●74HC123のデータシートです●容量の大きなコンデンサを使うときは、注意を●74HC123の動作●74HC123の入力はシュミットトリガでした●ふたたびシュミットトリガ入力です●他のメーカーのデータシート●大容量のコンデンサ接続についての更なる注意
[第141回]●お話は、またまた前回の続きです●シュミットトリガってなにもの?●速度の速い素子ではRC回路は要注意●74HC14のデータシート(部分)です●シュミットトリガの動作の説明です●シュミットトリガについて、あともう少し●74LS244のデータシート(部分)です●74LS245のデータシート(部分)です●74HC244のデータシート(部分)です●74HC245のデータシート(部分)です
[第142回]●事態はさらに混沌として…●やっぱりWRITE用PUSHスイッチ回路が、おかしい…●でも、やっぱりおかしい…●一晩寝てから、思いつきました●でも…。やっぱり、納得できません…
[第143回]●まだチェックしていないところがありました…●ついに。原因がわかりました!●シュミットトリガを外してスッキリしてしまいました●開発速報。製作快調!
[第144回]●あれま。ヒゲがある…●同期カウンタと非同期カウンタ●74HC161のデータシート(部分)です●非同期カウンタと「ヒゲ」
[第145回]●前回の続きです●74HC93のデータシート(部分)です●be subject to●ヒゲは退治しておきましたよ
[第146回]●PC(プログラムカウンタ)の回路を実装しました●PC(プログラムカウンタ)のLED表示がおかしい●ラインショートをみつけました●レジスタ回路を実装しました●MOV命令の回路を実装しました
[第147回]●INR/DCRレジスタを実装しました●JMP命令の回路を実装しました●ワークレジスタがおかしい…
[第148回]●INR命令とJNZ命令を使ったプログラム●INR命令の実行時間●JNZ命令の実行時間●プログラムの実行時間
[第149回]●テストプログラムを実行中の写真です●でもやっぱり時間をはかってみたい…●ボタン電池をつけてしまいました
[第150回]●LXI、PUSH、POP、CALL、RETの回路を実装しました●まずはLXI命令のテストです●次はPUSH命令とPOP命令のテストです
[第151回]●こういうトラブルが一番難しい●信号の立ち上がりが問題●74HC05のデータシート(部分)です●wired−ORとwired−AND●それではどうすればよいのでしょう?●改良前と改良後の波形の写真です
[第152回]●誤動作の本当の原因は?●74HC126は、どうする?
[第153回]●LXI、PUSH、POPを使ったテストプログラムです●ND80Kのメモリマップです●テストプログラムの説明に戻ります
[第154回]●CALL、RETを使ったテストプログラムです●CZ命令の実行時間●RZ命令、RET命令の実行時間●テストプログラムの実行時間
[第155回]●テストプログラムを実行して時間を計ってみました●連続40時間実行後の写真です
[第156回]●STA、LDA、STAX、LDAX、XCHG、SPHL、PCHL、INX、DCX、XTHL、SHLD、LHLD、NOPの回路を実装しました●まずはXCHGとNOPのテストです(ついでにINR M、DCR MやMOV M,r、MOV r,Mも)●NOP命令●NOP命令のタイミングチャートと回路図です
[第157回]●タイマールーチンをつくりました●2.5msのタイマールーチン●2.5msタイマールーチンの説明●0.5secのタイマールーチン●タイマールーチンでのNOP命令の働き
[第158回]●タイマールーチンをCALLする、XCHG命令のテストプログラム●テストプログラムを実行中の写真です
[第159回]●INX命令のテストプログラム●テストプログラムを実行中の写真です
[第160回]●STA、LDA、STAX、LDAXのテストプログラム●テストプログラムを実行中の写真です
[第161回]●SHLD、LHLD、XTHLのテストプログラムです●INX命令の実行時間●その他の命令の実行時間●テストプログラムの実行時間
[第162回]●XTHLのテストプログラムを実行中の写真です●もう一枚、写真を撮りました●じつは、もう一枚写真を撮りました
[第163回]●SPHL、PCHLのテストプログラムです
[第164回]●前回のテストプログラムの説明です
[第165回]●SPHL命令とPCHL命令の実行時間●テストプログラムの実行時間●テストプログラムを実行中の写真です●もう一枚、写真を撮りました
[第166回]●IN、OUT、RLC、RRC、RAL、RAR、の回路を実装しました●とりあえず、IN命令とOUT命令を片付けてしまいましょう●IN命令とOUT命令のテストプログラム●テスト中の写真です
[第167回]●STC、CMCの回路も実装していました●STC、CMCのタイミングチャートです●STC、CMCの回路図です
[第168回]●RLC、RRC、RAL、RARの各命令の説明です●RLC、RRC、RAL、RARのタイミングチャートです●RLC、RRC、RAL、RARの回路図です●74HC51のデータシート(部分)です●74HC194のデータシート(部分)です
[第169回]●RLC、RRC、RAL、RARの回路図の説明です
[第170回]●RRC、RAL、CMC、STCのクロック毎の動作の写真です
[第171回]●RAL、CMC、STCのクロック毎の動作の写真です
[第172回]●今まで説明してきた命令を、もう一度、整理してみました●ANA、XRA、ORA、ANI、XRI、ORI、の回路を実装しました
[第173回]●ついに、完成してしまいましたよー!●ああ堂々の、DMA、7segLEDのダイナミックドライブ表示ですよ!●実行中のプログラムです●プログラムの実行時間を計算してみましょう
[第174回]●RAMのバックアップがどうもおかしい…●あれま。WRITEパルスが出ています●こいつが黒幕か?●その、狂ったようなWRITE信号はとりあえず無視するとして…●あの「暴走」WRITE信号を追及するしかないか…
[第175回]●RAMのバッテリーバックアップ●そこで、前回の「犯人捜し」の続きです●ついに!犯人を、発見!●RST命令の回路図です●RST命令とは?(とりあえず、簡単に)●そうか、わかったぞ!
[第176回]●なぜRST命令が実行されてしまうのか?●では、解決策は?
[第177回]●全回路完成!です●キー入力回路と232C回路とROM回路●割り込み回路●基板の裏側の写真です
[第178回]●ROMにプログラムを書いて実行してみました●ROMでのプログラムを実行中の写真です●作業中の机の上の様子です
[第179回]●AND、OR、XOR回路の説明です●AND、OR、XORロジックの中心回路です●ALUのレジスタ”A”とレジスタ”B”の回路です●ALU命令のデコード回路●ANA、ORA、XRA、ANI、ORI、XRI命令のタイミングチャートです●論理演算のコントロール回路●全命令のデコード回路
[第180回]●80アセンブラを作ってしまいました●これはソースプログラムです●DOS窓で実行
[第181回]●前回のプログラムの説明です●パソコンとPICとの間のデータ通信●PICとCPUとの間のデータ通信(ハンドシェイク)
[第182回]●前回からの続きです●ブートプログラムの由来●実際にプログラムをロードしてみました●送信するためのASCIIファイル●ファイルの中身をナマで見る
[第183回]●RS232Cケーブルで、パソコンと接続…●いまどきのパソコンには、9pinDSUBもないらしい…●ハイパーターミナル
[第184回]●論理演算命令(AND、OR、XOR)のクロック毎の動作の写真です
[第185回]●またもや、思わぬトラブルが…●サスペンス劇場…衝撃の結末?●232C送信でエラー発生●オーバーランエラーとは?●いくらなんでも、オーバーランエラーはありえない…●フレーミングエラーとは?●でも、それって、おかしくね?
[第186回]●PIC16F88の内部発振クロックの確認●最終的なPIC16F88付近の回路図です●今度はPICのお勉強です●まずは、PIC16F88のプログラムです●CPUのカウントルーチンです●カウント中の写真です
[第187回]●もうあと考えられる可能性は…?●もう一度、エラーを再現させて調べてみよう
[第188回]●波形の写真から、送信されたデータを解読する●やっぱり、目撃証言は間違っていた…●なんと、ハイパーターミナルにはバグがありました!
[第189回]●C++でRS232C送信プログラムを作る●送信プログラムのソースリストです
[第190回]●ADD、SUB、CMP命令の回路の説明です●2進数の加減算命令だけを使って、なんと倍精度浮動小数点計算だってできる
[第191回]●こんどこそ本当に、ADD、SUB、CMP命令の回路の説明です●74HC157のデータシート(部分)です●算術演算命令の命令コード●ADD命令、ADC命令、ADI命令、ACI命令のタイミングチャートです●SUB命令、SBB命令、SUI命令、SBI命令のタイミングチャートです●CMP命令、CPI命令のタイミングチャートです
[第192回]●ADD、SUB、CMP命令の回路の説明の続きです●ADD命令の計算
[第193回]●減算命令の回路の説明です
[第194回]●減算命令の回路の説明の続きです
[第195回]●2進数の減算について、もう少し…●2進数では負数を引くことができないのはなぜでしょうか?●10進数なら、どうなの?●10進数の引き算でも、足し算にできる?
[第196回]●SBB命令の計算方法
[第197回]●SBB命令の計算方法の「理由」●2進数でSBB命令の計算方法を確認してみる
[第198回]●ADD、SUB、CMP命令の回路の説明(キャリーフラグを中心に)●キャリー無し加算、減算のためのC0入力●キャリー付加算、減算命令のためのC0入力●加算、減算実行後のキャリー出力回路
[第199回]●ADD、SUB、CMP命令の回路の説明(タイミングチャートを見ながら)●ほとんどの回路は、論理演算命令と同じ●算術演算命令の回路の説明
[第200回]●算術演算命令のテストプログラムです●テストプログラムの説明です●ADD命令のクロック毎の動作の写真です

次([目次2])へ

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