CPU実験室

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

8085

回路FIX

一応、ROMソケットからも電源供給を切り替えられるようにジャンパポスト追加しておきました。 簡単な回路なので片面基板で作ってしまいます。 オートルータで表側のパターンになってしまったラインを裏面で通せるところを探して 手作業で引き直していったの…

配線引き回し

非常に簡単な回路なんですがこれもオートルータをかけてみました やはりノード数が少ないので一瞬にして配線完了、最適化もあっという間に終わってこんな感じの出来上がりです。 ただ手作りの片面基板にしようと1層だけの制限で実行すると、こんな簡単なの…

回路変更

この程度の簡単なピンアサイン変換だけで行けると思っていたのですが、念のためi8755の電気的特性を見ていたらちょっと問題ありそうです まずプログラミング電圧VDDですが、プログラム時25Vの電流IDD=15mAは良いとしても、通常のリードモード時も30mA…

8755ライタ

MCS-85の3チップでシングルボードコンピュータを構成するにはi8755のEPROMにプログラムを書き込まねばならず、どうしてもライタが必要です。 プログラミングのタイミングチャートはインテルのデータシートに記載がありPIC等で専用のライ…

MCS-85

8085CPUはアドレスとデータが時分割してバスに出力されるため汎用のメモリを接続するには74373のようなアドレスラッチが必要になります。 ですが始めから周辺デバイスがマルチプレックスバスを受けるように設計されていればアドレスラッチは不要で…

ハンダ不良発見

ペリフェラルのICを全て抜いて、CPU-アドレスラッチ-ROMの最小構成でJMP$を実行させてみるもNG。 はじめはジャンパに使っているUEWの外れも怪しみましたがCPU-ROM間は全て銅箔パタンと錫メッキ線で結線されていて大丈夫そうです。念のためCPUとROMの間のアド…

データバス負荷

ROMの先頭番地にテスト用のコードJMP$(C3/00/00)を書込み、アドレスバスやデータバスが正しく遷移するか見ています CPUからのコードフェッチが正常であれば、アドレスは0~2番地でループするので アドレスバスのA0とA1しか変化しないはず。 データバスには…

ハードウェア故障

5年ほど使ったフルHD液晶TVがいきなり故障。 長期保証が切れる頃に壊れるタイミングの良さに感心しつつもT芝のサービスマンを呼ぶとあっさり「これはLCDパネルの故障ですねぇ交換すると6~7万掛かりますよ」とのことで修理は諦めました。 おそらくほんの一…

こっちも換装

グラフィックボードでTK-80BS化はちっとも進みませんが。。。。 8085も東芝のセラミックパッケージをオークションで入手したので動作を確認してみます 紫色のパッケージがちょっと地味かなー 9.8304MHzの水晶で全く問題なく動作しました。 LCDに注目。 せっ…

部品位置決め

グラフィック関連回路の周りの余った部分に残りの機能を押し込みました。 大型部品の位置決めができたのであとはいかにパタンを引き回せるかです 基板左下隅に配置したのは40ピンPICの16F877でPS/2キーボードとシリアルROMのI/Fコントローラに なる予定です…

コネクタ配置

基板背面にVGA出力、PS/2キーボード端子、電源入力を配置しました。 VGA出力部分には1石エミッタフォロワによるビデオアンプRGB3チャンネル分のパタンも 引いてあります。 ただグラフィック周りだけで基板面積のほとんどを占めてしまっていて残りの周辺回…

パタン設計再開

完全に放置していたグラフィックボードですが、気が向いてきたのでぼちぼち再開です。 先ず始めたのは同じパタンの繰り返しになるフレームバッファ部分のパタン引きですが、 ローカルのアドレス、データバスで膨大な配線量になってしまします 特にデータバス…

部品配置

8085ボードと同一サイズの基板に主要ICを並べてみました。 サイズ的には充分余裕はありますが、フレームバッファのローカルバスにアドレスラッチ やバスバッファが結構な数必要です フレームバッファ192kBはACRTCの向こう側にあり制御CPUのメモリと分離して…

TK-85BS

部品箱に死蔵されていて日の目を見ないデバイスをなんとか活用しようと思い、8085CPUボードに接続する I/Oボードを画策しています。 ざっくりブロック図を描いてみたのがこれ。 8085シングルボードの拡張バスに接続しキーボード入力とビデオ信号出力をもって…

82C79

ジャンク屋の店先でICレールを物色してたらディスプレイキーボードコントローラの 82C79が出てきたので思わず大人買い。(1個約30円) でもこんなに沢山使い道なし。8085ボードをキット化するか 多数のキー制御に結構便利で昔の自動販売機やNC制御…

リセット回路変更

デバッグモニタでCPUボードを制御するとき、ホスト側からハードリセットがかけられると便利です。 MAX232の入力側にシリアルポートのDTRが接続されていたので、 これをオープンコレクタバッファ74LS07を介してリセットIC、TL7705のリセットスイッチ入力に パ…

デバッグモニタ

VC++2008でホスト側デバッグモニタを作ってみました。 モニタの本体は8085ボード上で動作しているので、ただのターミナルプログラムなのですが プログラムの転送、実行や簡単なI/O操作を行うコマンド列をボタン押下で送出するようになってます。 ルネサスH8…

LEDフィルタ

久しぶり更新 スモークアクリルを切ってLEDの上に取り付けました

Tiny BASIC移植

昔なつかしのBASICインタプリタtinyBASICのソースを見つけてきたので8085ボードに移植してみました。 元の走行環境がCP/M80なのでコードとデータのアドレス割付、文字入出力がCP/M のBIOSコールを使用していたものをシリアル入出力に置き換えています。 マク…

TK-85E→TK-85(?)

秋葉原の某店でセラミックパッケージの8085があったので買ってきました。 高いか安いかは別として、稀少性はあるけど一歩間違えばただの産業廃棄物に 値段が付いて売っているところがすごい。 やっぱり白いセラミックパッケージは基板に映えます。 さしずめ…

音程設定

YM2203のFM音源部とSSG音源部でメロディを出してみます。 まず音階を出すためにレジスタに設定する値を求める必要がありますが A=440Hzとして平均律で1オクターブ分の設定値を求めるとこうなります。 fm=2.4576MHz 音名 周波数比 周波数(Hz) 位相速度 FM設…

はじめてのマイコン

1.プログラムを書こう まずはじめに足し算で3+5を計算してみよう。 プログラムではAに3を入れておき、そこに5を足して答えを0xC010番地に入れるという手順です。 これを8085のマシン語に置き換えます。これをハンドアセンブルといいます。 アドレス コート…

ボード上モニタ

TK80/85のようにボード上のキーとLEDによって操作するモニタを書いてみました。 核となる部分はたったのこれだけです while(1){ i=hex_inkey(4,&data); switch(i){ case KEY_ADRSET: adrs=data; break; case KEY_RDDECR: adrs--; break; case KEY_RDINCR: ad…

LEDフィルタ

7セグLED用のフィルタとしてアクリル板を買ってきました。 赤とスモークで比べています。 TK-85には赤色のフィルタが付いていて 赤い方は光の透過はいいのですがコントラストが良くないので スモークの方が見た目よさそうです

割込みをCで記述

アセンブラで正常動作していた割込み処理をCに移植しました まず8259を初期化しますが8085モード4バイトインターバルで 割込みベクタのアドレスを9020H番地とします。 これはコードを9000H番地から配置するので+20Hとしてみました。 そのあと必要な割込み以…

FM音源の制御

FM音源ICには多くのレジスタがありますが、取りあえず動作確認のため KEY_ONレジスタにONを書き込み、何かしら音が出ると思ったのですが 全く反応ありません。 マニュアルを見るとリセット直後では全レジスタにが0クリアされるとあります。 するとエンベロー…

アナログ出力回路実装

最後に残っていたアナログまわりの回路を実装しました。 YM2203からのシリアル出力をアナログ信号にするDAコンバータYM3014 バイアス電圧発生、LPF用のOPアンプからなっています。 FM音源ICに関しては、パソコンに組み込まれ始めた頃にはいろいろな記事があ…

ドライバをC言語化

これまでアセンブラで動作が確認できていた周辺IOのドライバをC言語で書き換え 次のような関数群がさくっと出来上がりました。 ライブラリ化してユーザプログラムにリンクすれば制御がとても楽になります。 void pit_init(void); /* 8253タイマ初期化 */ uns…

C言語で開発

プログラム開発環境をCに移行しました。 コンパイラはLSIC-80でこれはもともとROM化を前提とした開発環境なので CPUボードへのインプリメントは容易です。 ただ、DOS環境下で動作するのでパスや環境変数など根回しが必要です。 まずは簡単なスタート…

OPN割込み

FM音源IC、YM2203には10ビットと8ビットの2個のタイマが内蔵されていて 外部に割込み信号を発生できるので8259に接続しましたが、どうも割込みが発生しません。 よく調べてみるとYM2203の割り込み信号は負論理のオープンドレイン出力で これは8259の割込み入…