CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

その他

配線完了

コネクタからワイヤを引き出して配線完了。(?) これがどう動作するのか、 何故ICはMB8868Aでなければならないのか それはわかる人はわかります。 えーと、タイトルは 何ぞそれ。

コネクタ実装

20ピンのポストがユニバーサル基板に刺さらないので、それと勘合する20ピンのハウジングだけを基板に両面テープで貼り付け。 (って、それでいいのか・・・) ICソケットにはUARTのMB8868Aを挿入しました。

こちらも部品実装中

ユニバーサル基板上にUARTの40ピンICソケットを中心に周辺部品を配置しています。 今のところここまでできました。 このあとICソケットの両側に日圧のXHPコネクタを挿入しようとしたのですが、ここで驚愕の事実が判明。 XHPコネクタのピンピッチは100mil=2.5…

UART(3)

部品リストの続き。 トリマコンデンサ・・・水晶発振の微調整用? 赤20pF、緑30pF、黄40pFですが、黄のかわりに青5pFがいいようです フィルムコンデンサ 手持ちは10nF(0.01uF)でしたが0.015uFを推奨 スチロールコンデンサ これは容量判らず。何かだんだん…

UART(2)

こういったお蔵入り部品も一度は日の目を見させてあげたいのですが、ちょっと思いついて周辺につなげる部品を手持ちで探してみました まず5mm砲弾LEDの赤、黄、緑、クリア 5連LED。本当はアンバー色発光で分割されてないタイプが良し(何故に?) DIPスイッ…

UART

ここのところ自宅に居ることも多いので探し物のついでに部品箱を整理していたのですが、これはもう一生使わないだろうというような部品がいろいろ掘り出されてます。 何かのジャンク基板から引き抜いたのだと思うのですがまとまってUART(Universal Asynchro…

ダフスデバイス

CMOCのマニュアルにある言語仕様を読んでいたら、サポートしない機能として ・Implementing Duff's device in a switch(). という記述に突き当たりました。「Duff's Device」とは何ぞ、何それおいしいの? Wikipediaによると、「ダフスデバイスとは、C言語で…

CMOCコンパイラ

このCMOCはなかなかのスグレモノでCのサブセットとは謙遜していますが、サポートしてない点、C99規格との相違点も明記されていて通常の使い方では全く問題がありません。C標準ライブラリも必要最小限しかサポートしないとしていますがstr~、mem~のストリン…

6809用Cコンパイラ

以前作ったCPUボードの開発環境整備を気が向いたときにしていますが、久々に6809ボードを引っ張り出してきました。酷い埃まみれ・・ 6809用のクロスCコンパイラとしてMicro-Cというのがありましたが、今動かそうとするとありがちなエラー が出てしまいます。…

DSPクロス開発環境(2)

binutilsのコンフィギュアが通ったのでmake。 $ make Configuring in libiberty configure: loading cache ./config.cache configure: error: `target_alias' has changed since the previous run: configure: former value: m68k-coff configure: current v…

DSPクロス開発環境

68000用GCCのビルドで大体やり方がわかったので、他のクロス環境にも挑戦してみます m68k、arm、H8等の構築はネット上あちこちに先人の情報がありますので あまり見かけないTIのDSPなぞを。 m68kは試行錯誤ありましたが、今回は後でわかるようにちょっとメ…

Cygwin環境

MSDOS上で動作するようにビルドされているm68k-GCCが結構古いので Cygwinでのクロス開発環境を作ってみたのですが・・・これが実に大変でした。 あまりにめんどくさかったので経過はすべて割愛。 結果から言うと最後まで無事ビルド、インストールできたのが …

PC更新

異様に暑かったこの夏、長らく使っていたWin-XPマシンがついに電源が入らなくなり、あえなく更新となりました HDDは幸い無事だったので増設HDDとして移植し、OSもWin10にアップデート。 なかなか快適な環境によろこんでいたのですが、久々にCPUボードでもい…

555発振回路(4)

あまり引っ張ってもしょうがないので種明かしです まずホンモノの555の内部構成。シンプルですがいろいろな応用がきく優れた回路です。 これをソフトウェア+デジタル回路で構成するとどうなるかです。 コンパレータ入力のTHRESとTRIGはA/Dコンバータにつない…

555発振回路(3)

さて、最後にもう一つ555。 表面に何のマーキングが無いし、なんか怪しさ満点です。 さては某国のリマーク品失敗作か? でもブレッドボードに挿すとちゃんと発振します。 ただ若干周波数が低いようです。外付けCRだけで周波数は決定するはずなのに何ゆえ・・…

555発振回路(2)

それにしても555は凄すぎです。基本設計が変わらず1970年代から40年以上生産が続いている ICの品種ってこれ位じゃないでしょうか。 細かい改善やプロセスの向上で性能は上がっているでしょうけど。 これはC-MOS化された中でも初期のものでインターシルのICM7…

555発振回路

気分転換でブレッドボードでタイマIC、555の発振回路を組み立ててみました いつもはやっつけの配線で済ましていますが、今回はちょっとマジメにきれいに引き回してます。 縦一列が導通しているという制約の中で部品配置とうまい長さのジャンパワイヤで回路を…

ODPベンチマーク

DX4ODPRでCPUID命令を実行してみました プロセッサ識別シグネチャに0x00000480が返ってきます。 これから タイプ=0 ファミリコード=4 モデル番号=8 ステッピング=0 で、IntelDX4(TM)プロセッサであることを示しています。 このDX4ODPRはCPUと完全に置換…

オーバードライブプロセッサ

インテルのオーバードライブプロセッサ、DX4ODPR100のジャンク品を入手しました 80486DX/DX2のソケットにそのままさせるアクセラレータでベースクロックを 3逓倍した内部クロックで動作します さっそく自作486ボードの486DX2と換装してみました。 このボー…

P5 ペンティアム

オークションで初期のペンティアムを見つけておもわず入手してしまいました。 自作ボードではPentium以降は無理だろうと考えていたのですが この初期Pentium(P5)は電源電圧5V、FSB=60MHzで、あと何と言っても裏を見るとわかるように ピン配置が千鳥ではなく…

DSP用モニタ

DSPボードと基本的なコマレスのハンドシェイクが確認できたので、そこから先は簡単で プログラムメモリのダンプ・書込み、データメモリのダンプ・書込み プログラムコードのダウンロード・実行をさくっと実装しました。 テキサスDSPの開発キットについてくる…

DSPボード整備

掃除がてら以前作ったTMS32C025ボードを久しぶりに引っ張り出してきましたが 他で使うためにパーツが引っこ抜かれてハゲタカ状態になっていたので整備しておきました 抜かれていたCPLD、リセットICを実装し、さらにDSP本体も、もともとは銀メッキキャップのP…

ALUコレクション

標準ロジックのALU 74181のSシリーズと4500系CMOSロジックのピンコンパチ品HD14581が コレクションに加わりました。 あとは74HCタイプとECL(HD100181)でコンプかな・・使わないですけど 演算ロジックといえばAMDの数値演算…

Z80-DMA(5)

HALT中のメモリ書換えの話ですがためしにCPUを交換してやってみようと思います。 手前はNECのuPD780C。Z80コンパチですが正規セカンドソースではないのかな? 後は東芝のTMPZ84C00。 手持ちがあると思ってましたが見つからなかったのでオークションで@80円…

懐かし部品(2)

生まれて初めて買ったICです。(たぶん間違いない) 東芝のTC7404 型番から明らかな通りHexインバータなんですがC-MOSプロセスです。 CD4000シリーズやMC14500シリーズは既にあったと思いますが74HCが出現する 前の系統のものです 生死は不明ですがよく捨て…

懐かし部品

東芝の7セグLED、TLR306です 昔、初めて買った7セグLEDがこれでデジタルで数字が出る工作にものすごく感動していました。 もちろん1桁づつのスタティックドライブで7セグデコーダSN7447,10進カウンタSN7490の組合せで 1桁で小遣いが無くなった様な。計測…

葬灯?

CPUボードを作ってシリアル周りのハードデバッグの時に、こんなコードを良く書きます。 #include<stdio.h> int main(void) { unsigned char c; c=0; while(1) { putcom(c++); } } インクリメントするデータをシリアルに吐き出すだけですが、これで周辺I/Oやタイミング</stdio.h>…

Z80-DMA(4)

HALTが解除されないままリセット、書き換えたエリアをダンプしてみると確かにNOP(0x00)に 書き換わっています。 DMAでの書き換えとCPUのフェッチの干渉とかがあるのでしょうか そこでハード的にメモリの内容自体変えてしまったら?と思いつきました HALTは…

Z80-DMA(3)

実験結果は・・・ いわれているようにはなりませんでした。 HALT状態でHALTをNOPに書き換えてもHALTが解除されません。 まずは各信号をモニタしてみました 動作をわかりやすくするために書き換えるデータを2バイトとしました つまり、コードをこのようにDMA…

Z80-DMA(2)

検証のためにこんなコードを書いてみました。 ①8100-81FF番地を「76H」(HALTのコード)で埋めておく ②8300-83FF番地を「00H」(NOPのコード)で埋めておく ③DMAを外部トリガによって8300番地から256バイトを8100番地にメモリ間転送するようにプログラミング…