CPU実験室

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

TLCS900

高速Lチカ

TLCS-900ボードはモニタもFIX、Cでの開発環境も整っていて応用がいろいろできそうですが世の中には既製の高性能CPUボードが安価で売ってるわけで無謀にも比較してみました。すべてUSBバスパワーで動作するという点では同族です 左から自作TLCS-900ボード(ク…

アドレッシングモード

TLCS-900のJPインストラクションの引数は即値だけでレジスタ直接指定:JP(XHL),JP(XBC),JP(XDE)は無くなった・・・なんて書いてしまいましたがこれは間違いでした。 マニュアルをちゃんと見ればJP [cc],memの項に示されていてmの5bitを使って各種アドレッシ…

TLCS900用モニタ

プログラムのダウンロードとその実行しかできない原始モニタのままだったTLCS-900ボードのモニタを拡張しました。Sコマンド:バイト単位のメモリセット、Dコマンド:メモリダンプ、Xコマンド:レジスタ表示です このモニタはどこからか拾ってきたZ80用モニタ…

ライブラリ化

1文字入出力などの汎用処理を切り出してライブラリ化しました。 作った関数はまだ少ないですがヘッダファイルはこんな感じ。 c92lib.h 統合環境cmpldrvにもCコンパイルの環境を登録。ライブラリ関数を使ってLチカを書き直しました。 コンパイル結果はこのよ…

プロジェクト完了

CPU内モジュールのすべての機能を確認したわけではないですが、おそらく動作するであろうということでボードとしての開発は完了。応用は別途考えます。 汎用的に使えるように技術資料はぼちぼち整備しておきましょう。部配図とパタンとか コネクタのピンアサ…

Cコーディング

CC900コンパイラに付属している標準ライブラリには文字列処理is~、str~、mem~、printf系関数やsin/cosなど数学関数、malloc/freeといったヒープ操作も含まれているのであとはハードウェアに依存した入出力関数などをちょこちょこっと作ってやればそれで全…

CでLチカ

環境が整ったのでCでプログラムしてみます まずはソースファイル。内蔵パラレルポートP7を定義するためにヘッダファイルio900h1.hをインクルードしていますが、 ソース本体はアセンブラ言語でのLチカテストとほぼ同じになっています ソースファイル:TEST.C …

ファイルカスタマイズ

Cで書いたプログラムはそれを動作させるためにある程度のお膳立てが必要でそのためのサンプルコードが付属していました。これをそれぞれの環境に合わせてカスタマイズしろ、ということです まず必要なのがスタートアップルーチン。スタックの設定、静的変数…

Cコンパイラ

TLCS-900ボードのプログラムはアセンブリ言語でちょこっと書いてASでアセンブル、実行はできていますが、ボード上のI/Oがport7のbit3につないだLED1個だけ。あまり面白い動きをさせることもできないのでちょっと放置していました。 アセンブラによるLチカ例…

レジスタセット

昔、アセンブラでプログラムを書き始めたころCPUの汎用レジスタがもっとたくさんあればなぁなんて思ってた時期もありました。メモリにコピーしたりスタックに退避したりすればいいのはわかりますが、プログラミングをBASICから始めてしまうとコード上の変数…

モニタ搭載

考えてみるとレジスタも32ビット幅になってレジスタ表示を修正する必要あるし。コマンドの引数も4バイト対応しなければならないので直すところは結構あります。ここはいつものようにシリアルからRAMへのロード’L’とプログラム先頭番地へのジャンプ’G’の2つ…

モニタ移植

1文字入出力ができればモニタの搭載は簡単です。しかも以前TLCS-90のモニタを作ってますからそのソースをそっくり持ってくることができます。 ターゲットCPUとインクルードファイルの指定を修正。1文字入出力ルーチンをさしかえ、ROM配置に合わせエントリー…

シリアル入出力

このボードもモニタを載せるためにシリアル入出力ルーチンの作りこみをやっていきます 先ずプログラムの先頭部分の疑似命令ですがインクルードファイルSTDDEF900H.INCはTMP92CM22の内部レジスタの定義を記述した自作ファイル(ネット上で探せばどこかにある…

ボーレート設定

内部レジスタの初期化のついでにシリアルコントローラの設定をやってみます。 マニュアルでボーレートを得るまでの流れをみると結構複雑です。まず外付け発振子の原振fOSCHをクロックギアで1/1~1/16に分周、さらに2分周したものがシステムクロックfSYSにな…

メモリマップ

CPU内部には大量の内蔵レジスタがありますが、デフォルト状態でもROMからブートすることはでき、この仮の環境下で設定を追加上書きしていきます。まずウオッチドッグタイマを停止、クロックのギア切替、外部拡張したメモリブロックの開始番地、サイズ、ウェ…

ROM焼き込み

出来上がったバイナリをフラッシュROMに焼いてみます。まさにこのために作ったROMライタ基板がさっそく活躍。WINアプリによるコントロールはまだできてませんがターミナルからの対話形式で十分用が足りるのでこれで開発完了になってしまうかもしれません。 …

初コーディング

TLCS-900の初コーディング、内容は例によってJUMP $からです。 アセンブラではASがTLCS-900をサポートしているのでまずこれを使ってみました。先頭のターゲット指定は96C141になっていますがTMP96C141は厳密にはTLCS-900(無印)シリーズのようです。ただしコ…

部品実装完了

手持ち部品で賄えたので一気にはんだ付けしてしまいました いちばん心配していた0.5mmピッチTQFPですがなんとかいけました。盛大にはんだブリッジさせてから吸い取り線で吸いっとってますが、むしろハンダ量を加減してしまったところがちゃんと付いてなくて…

部品実装開始

ROMライタ基板の片割れ、TLCS-900ボードの方も組み立てることにします。とりあえず基板を眺めて手持ちだけでいけそうか、配置が干渉しないか点検してます 裏面に貼り付けるSRAMは1Mbitと4Mbitの選択ができますが、これはROMライタと同じで手持ちのTC55V1001…

基板到着

T805トランスピュータ基板とTLCS-900/ROMライタ基板が到着。 今回は発注から到着までちょうど3週間でした。うちshippedからの輸送に半分の10日かかってますが急ぎでもないので全くOKです。ただ送料の安いJapanDirectを選択したので入港して大阪の佐川の営業…

基板発注

GNDの塗りつぶし、シルクの位置調整等して基板設計完了、これで発注しました。 だいたいがSMT部品で出来ていますがROMだけはどうしてもプログラム書き込みがあるのでPLCCになりソケットもスルーホール品になっています。もしこれにTSSOP品を使い直接実装すれ…

新プロジェクト

3V動作フラッシュROMの書込みをやろうとしているのは実はこれを動かしてみるためでした。 東芝TLCS-900/H1シリーズのTMP92CM22です。もはやレトロCPUではなく比較的新しいマイクロコントローラですがZ80ベースを32bitに拡張したアーキテクチャや内蔵ペリフェ…