現在地

マイコン

マイコン

マイクロプロセッサ・マイクロコントローラ等です。

ROMエミュレータ(ソフトウェア編)

プリント基板化したROMエミュレータのハードウェアが無事動作したので次はソフトウェアです。

マイコンをAT90S2313からATtiny2313に移行するためにはソフトウェアの変更が必要になります。

まず確認のためにHDD内に残っていたソースを再アセンブルして新しいAT90S2313に書き込んで試したところ動作しませんでした。動いたAT90S2313から読み出してバイナリを比較してみたところ一致せず、長らく真のソースだと思っていたものは開発途上の未完成品かもしれません。タイムスタンプによると20年ほど経っているので最終版を探すのは難しそうです。

救いは動いているバイナリが存在することで、これを逆アセンブルすればソースが復元できそうです。

以前INS8073のROMを読むででっち上げた簡易逆アセンブラをAVR用に改造して読んでみました。すると大半は共通で以下の機能が追加されているようです。

2枚目の基板はQUIP

テーマ:

カテゴリー:

1枚目の基板を待っている間にもう1枚基板を注文しました。

2枚目の基板はμPD7800GをEMILY Boardで動かすためのボードです。ほぼ1:1で配線するだけで良いので回路としては非常にシンプルなのですが、パッケージがQUIPという点が災いして後回しになっていたのでした。

今回は以下が主な新規項目になります。

一つ目はフットプリントの作成です。

KiCad 6.0は回路図シンボルやフットプリントのライブラリが充実していますので一般的な部品なら探せば大抵のものはあります。なくてもSnapEDAなどから入手できることが多いのですが...

さすがにμPD7800Gのシンボルは古すぎるせいか見当たりません。シンボル作成もチャレンジしたいところですが32×2のコネクタ(Conn_02x32_Counter_Clockwise)で代用しました。フットプリントとの紐づけが緩いので問題ありません。

基板を注文してみた

テーマ:

カテゴリー:

KiCadで回路図が入力できるようになったら次はパターンを引いてプリント基板を作ることになります。

まずはパターンですが、私はこの経験はほとんどありません。

大昔(40年位前)に自分でエッチングしてプリント基板作ったことはありますが、雑誌掲載のものをそのまま作ったようなものやはじめてのプリント基板のような単純なものばかりです。

その後はユニバーサル基板にETFE線で配線するのががメインで、交差を意識してパターン引き回しを考えるのは電源などの一部のみです。ちょっと考えて無理なら交差を気にしなくて済むETFE線に逃げていました。

勤務先でCAD使っていた時も回路設計のみで基板のパターン設計は専門のグループに依頼していました。

作るのはロジックのそれもせいぜい10MHz程度です。前回書いたように自動配線に全面的に頼ることにします。

2650ボード(2651編)

Universal Monitorの基本機能が動くようになったので、保留してあった2651を動かしてみることにします。


空きソケットに残りのICを搭載します。

コンソールドライバのソフトウェアも書かなくてはなりませんが、既に2650のプログラムには慣れているのでどうということはありません。

2650ボード(ハードウェア編)

テーマ:

カテゴリー:

今度はSignetics 2650Aを動かしてみました。


例によってEMILY Boardで動かすことにしました。

CPUの他にシリアル通信用の2651 Programmable Communication Interface(PCI)も搭載します。

まずは動作に最低限必要なデバイスのみを載せて試してみることにします。

uPD7807

テーマ:

カテゴリー:

uPD78C10ボードでμPD7807もいけそうと書きましたが、現物を入手しました。


μPD7807CW、1988年36週の製造ですね。パッケージはシュリンクDIPの64ピンです。

ボードを作ったころから探していたのですが、出品が少なく高価だったりして半ば諦めていました。ところが国内ショップの新着情報を見ていて偶然発見、eBayのほぼ半値だったので即購入したのです。

ハードウェア的にはピン配置はμPD7810/μPD78C10と大差はありません。

63ピンがCMOSのμPD78C10では低消費電力モードへ移行させる機能であるのに対し、μPD7807, μPD7810では内部RAMのバックアップ電源ピンになっています。

MN1613でマンデルブロ集合

カテゴリー:

前回DC擬似命令で浮動小数点数を扱えるようになったのでテストを兼ねてASCIIART(マンデルブロ集合)を描かせてみました。


元はBASICのプログラムですがアセンブリ言語で書き直しました。16ビット整数や浮動小数点数がそのまま扱えるからか8ビット時代にアセンブリ言語で書いていて感じた面倒さはあまりなくスラスラ書けますね。

計算範囲と条件は はせりん@haserin09 さんの「番外編:ASCIIART(マンデルブロ集合)ベンチマーク」に合わせています。

実行してみたところ9600bpsのシリアルが足を引っ張っているように感じたので、計算はするけど画面出力を止めたバージョンも作って比べてみました。

ASに新CPU対応を(続編)

カテゴリー:

ちょうど2年前にASのMN1613対応を行ないましたが、セグメント関係と浮動小数点関係が積み残しになっていました。

今MN1613が話題になっていることでもあり対応方法を考えていたのですが...

先日のUniversal Monitorの拡張を行なう中で他にも機能不足を感じる点が出てきました。

      29/     80F : 5374 7269 6E67      	DC	"String",CR,LF,0
              812 : 000D 000A 0000    

これは意図した結果ではありません。STROUTルーチンはバイト単位で取り出して処理するのでこのように途中に"00"が入るとそこで終了してしまいます。

ページ