CPU実験室

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

T805

量産計画

トランスピュータが動きそうとだいたい分かった時点で実はもう1個発注していました。せっかくリンク機構があるのでそれを確かめたいし、1人では寂しかろうと・・こうしてCPU多頭飼育崩壊が始まってます 前回と同じ業者で同価格、2週間くらいで到着しました…

飛び先修正

条件付き分岐CJの飛び先相対アドレスが何か間違っているんじゃ・・となると無条件分岐Jもヤバいのではないかと原始モニタのソースコードから相対ジャンプする行を抜き出してみました。 next Iptrはジャンプ命令の次の命令のインストラクションポインタ、dest…

条件分岐

1文字入出力、メモリ書込み、ジャンプができればそれらの組合せでモニタを作るのは簡単なはずなんですがいろいろつまづいてます。 たとえば以下は原始モニタでターミナルホストから入力された1文字コマンド(「L」:ロード、「G」:実行)でそれぞれの処理…

ウェイト挿入

トランスピュータのマニュアルを見てみるとアクセス時にウェイトを挿入するにはMemWaitピンをHにするとマシンサイクルT2の終わりでサンプリングされてT4の後にウェイトサイクルTwが挿入されるとあります 然るべき位置でサンプリング、挿入をしてくれるのでハ…

1文字入力

ホストPCからコードを受け取るために1文字入力も作っておきます。これも今までのシリアルコントローラと同じでキャラクタが受信バッファに入ったかRxRDYフラグをチェック、これが立つまで永久ループ(用途によってはタイムアウトも必要ですが)し、フラグが…

アドレッシングモード

トランスピュータボードで1文字出力ができるように(おそらく1文字入力もできるはず)なったので、いつものボード開発手順通り原始モニタを載せることを考えてみます。 まずは1文字入力で取得したデータをメモリ上に並べていく処理です。改めてマニュアルで…

RS232C I/F

表面実装部品のうち、最後まで残っていたRS232CレベルコンバータのMAX202を取り付けました。これは基板発注してから気づいたのですがフットプリントの選択が間違っていてパッド間がちょっと広すぎでした。足はギリギリ届きましたがハンダ多めに盛っています…

タイミング調整

転送終了、TxEMT=1になるのを待つループが回っているときのSCN2681につながる信号線をプローブしてみました ch1: /SIOCS, ch2: /RD, ch3: D3(=TxEMT) 読取りパルス/RDはトランスピュータが生成していてT4-T5の2マシンステート;約50nsということになります…

フラグ読取り

送信は済んでいるのに送信完了のループから抜けられないということは脱出条件を満たさないということで考えられるのはこんなところです 1.フラグの論理を間違っている これは前にUSART:8251のステータスTxEMPTYのチェックで間違ったことがありましたが今…

1文字出力

シリアルコントローラの初期化ができたので引き続き1文字出力ルーチンを作っていきます。 ステータスレジスタSRAを見るとBIT3に送信バッファ空:TxEMTがあるのでこのフラグをチェックしました 1文字出力ルーチンTXのコーディングはこうなります。出力するキ…

シリアル初期化

LチカができたのでSCN2681へのアクセスは問題ないようです。つづけてシリアルコントローラのプログラミングもやってしまいます 先ず内蔵レジスタの定義 これらのレジスタに初期化ルーチンINITで制御ワードを書き込んでいきますが設定に1ビットでも漏れがある…

LEDチカチカ

準備が整ったので一気にコーディングしました まずSCN2681出力ポートの設定と変数COUNTの初期化した後、変数COUNTの値を出力ポートにセット、ビット反転してリセットと2回出力。そのあとCOUNTをインクリメントしてSTARTラベルにループします。 単純なパラレ…

シリアルコントローラ

今回、ボード上に実装したシリアルコントローラSCN2681(DUART)は初めて使う品番ですが、フィリップス社のマニュアルが見つかったのでざっと確認しておきます。 機能は非同期調歩型シリアルコントローラが2組、ボーレートジェネレータ、タイマ/カウンタ、割込…

コーディング開始

I/Oも用意できたのでいよいよ意味のあるプログラムを書いてみますが、いくつか準備があります。 1.2段階ジャンプ これはトランスピュータのアーキテクチャを調べ始めた時にも検討していましたがリセットベクタがメモリ空間の最上位-2:Bootstrap(0x7FFFF…

I/O拡張

ROMのアクセスがうまくいってるようなので次はLEDチカチカをやりたいところなんですが、ボード上のパラレルLEDは単純にデータバスをラッチしているのではなくシリアルコントローラ(DUART)SCN2681の汎用出力ポートに接続しています そのためこれの周辺部品…

マシンサイクル

ボード上のトランスピュータIMST805は入力クロックClockin=4.9152MHzの4倍のProcClockOut=19.6608MHzを内部生成して各種タイミング信号を発生させます。 マニュアルのメモリアクセス関連の説明を読んでみました。 まずProcClockOutの半周期ごとにマシンサイ…

動作クロック

CPUの動作クロック周波数についてちょっと勘違いしてました。外部から与えるクロックClockinはCPU内部で5逓倍されると思い込んでましたがデータシートをよく見てみるとこれはオーダー時の速度サフィックス指定によるものでIMST805-G25Sならば倍率PLLxは5.0で…

最小ループ再び

パタンの修正ができたので、信号線をプローブして電源ON! ・・とその前に。 今回ROM(U16)へのデータバスの引き込みを修正しました 修正前:D24 D23 D21 D20 D19 D18 D17 D16 修正後:D22 D23 D21 D20 D19 D18 D17 D16 つまりD23は元々つながっていましたがD…

パタン補修

まずPLCCソケット間のラインから。隙間は約2.5mmしかありませんがルータにハイスビットを装着して切削できました 切断前 切断後 もう一か所の切断箇所は基板の裏面なのとパタン密度が低いのでこちらは簡単 切断前 切断後 それよりハンダ付けした時の飛沫なの…

修復計画

見れば明らかなんですがROM(U16)に接続されるデータバスがD16~D23になるべきところがD22をすっ飛ばしてD23、D24になっちゃってるわけです。D24は本来つながるべきU17にも行っているので接続先が重複してしまってます。番号のカウントを先走ったか「時そば…

接続ミス発見

ここのところまで、起きている現象がNS32032のトラブルとそっくりです。ソフトウェアはこれ以上単純にできず間違えようがない。となるとなにか物理的に配線ミスしてるとしか思えません。 先ずはROMの制御線まわりを検図・・テレコとかはなさそうです。 次に…

ROM入れ替え

最小ループとして得られたコード「600E」の意味を考えてみます。ぱっと見これは16ビット固定長命令にも見えますが、トランスピュータの命令体系は8ビット固定長であって実は2個の命令の組合せであることがわかります code mnemonic function operation Oreg…

最小ループ

いよいよトランスピュータ上で動作するプログラムを作成してみます。いつものようにコードは一番簡単な最小ループ「j $」、リセットベクタはメモリ空間の最後の2バイトを指すので開始番地を0x7FFFFFFEにしてアセンブルします アセンブルは瞬時に終わって実行…

アドレスデコーダ

とりあえずデータバス、アドレスバスはパタパタ動いているのでCPUは何かしら動作しようとしているのは判りますが外部メモリがつながっていないので、浮いているデータバスから不定のコードをフェッチしてしまい、どこにジャンプして何をしてるのかが全く分か…

CPU実装

トランスピュータIMST805をソケットに挿しこみました。外部メモリは全くない状態ですがこのまま電源ONしてみます CPUから直接出力されるステータス信号MEMSTATUS0はアドレスバスのラッチ信号に使いますがここにパルスが出力されていました 周期は4.9MHzでこ…

ピン電圧

トランスピュータがささるPGAソケットの各ピンの電圧を測って然るべき信号が来ているか確認をしています ・VDD、GNDのように電源に直接接続されている端子 ・CLOCK、RESETのように外部で生成して与えられる信号 ・ProcSpeedSelectなどプルアップ/プルダウン…

部品実装中

チップCR,LEDのはんだ付けが完了しました 部品総数からいうと75%くらい占めていますが基板の見た目はまだほとんど変わってません

部品実装開始

トランスピュータ基板にやっと部品実装始めました。先ずは0.1uFのパスコン20個から。 いつものようにこの状態で電源コネクタからみた静電容量を測定しました。 測定値は1.95uF、直流抵抗は無限大でここまで問題なしです 部品リスト上で済んだところを塗潰し…

ソケット加工

本番のPGAソケットでピン抜きしてみます。 左が加工前の100ピンPGA、右が中央の4×4、計16本のピンを抜いた加工後の84ピンPGAになった状態です。このソケットのピンは細く軟らかかったのでそのまま押すとピンがぐにゃっと曲がってしまいます。そのためまず根…

ピン抜き

2023年最初のプロジェクトですがしばらくお蔵入りになっていたT805トランスピュータボードをようやく再開することにします 発注した基板はできていてあとは部品実装するだけ。ハードに関して技術的問題点は残ってないはずですが、細かいメカ加工としてPGAソ…