[UniMon] レジスタ命令の内側(その3)

カテゴリー:

最後となる今回は「3. メモリに退避されている内容をレジスタに戻しユーザプログラムに制御を渡す」です。

コマンドで値を変更したらその状態でユーザプログラムを実行できなくては意味がありません。

要はレジスタに値を設定して目的の番地にブランチすれば良いだけなのですが、すでに設定済みのレジスタを壊さないようにしなくてはいけないので進むにつれ制約が増えていきます。

比較的多くのプロセッサで使える手は、「スタックに積んでおいてPOP,...,POP,RET」です。ちょうど1回目の逆です。

スタックを使った割り込みに対応しているプロセッサなら大抵これが使えます。

割り込み時にはレジスタの状態を元に戻す必要があるからです。スタックが専用空間にあって自由にアクセスできないなど使えないプロセッサもありますが...

MC6800を例に見てみましょう。

[UniMon] レジスタ命令の内側(その2)

カテゴリー:

前回は「ユーザプログラムからモニタに制御が渡ったときにレジスタ内容をメモリに退避する」でしたので、今回は「2. メモリに退避されている値を表示・変更する」についてです。

レジスタ内容をメモリに退避するのはプロセッサ固有の書き方が必要でしたが、すでにメモリ上にある値を表示・変更するだけであれば特殊なプログラミングは必要ありません。とはいえレジスタの名称や個数はプロセッサ毎に異なりますからそれなりの工夫は要ります。

まず全レジスタの一覧表示は簡単です。ループとテーブルで書いてもいいのですが、レジスタ数が少ないうちは「レジスタ名を表示・メモリから値をロード・16進表示」を必要数分並べてしまっても大したことはありません。

レジスタの変更はそうはいきませんので、以下のようなテーブルを用意しました。

[UniMon] レジスタ命令の内側(その1)

カテゴリー:

MC6800に続いて6502, MC6809についてもレジスタ命令を追加しましたので、その内側について書いてみたいと思います。

さて、レジスタ命令とはレジスタの値を表示・変更する機能なわけですが、CPUがある瞬間に実行できるプログラムは1つですからユーザプログラム実行中はモニタプログラムは実行できません。モニタプログラム自身の動作にもレジスタは必要です。

ではどうするか?

モニタプログラムには次の3つの機能が必要になります。

MN1613のステップ実行(その1)

テーマ:

カテゴリー:

以前、MN1613のリセット時に何かあるようだと書きましたが、このまま放置するのは気持ち悪いので少し追ってみることにしました。

16チャンネル以上のロジアナでもあれば簡単なのでしょうが残念ながら持っていません。

簡易タイプを買おうとも思うのですが、どうせ買うならもうちょっとと欲が出てしまいなかなか候補を絞れません。

幸いMN1613のメモリアクセスはハンドシェイクなのでそれを利用してステップ実行を試みることにします。

ステップ回路
手っ取り早く追加してみたのがこの回路です。

NEC uPD458D

テーマ:

カテゴリー:

μPD454Dと一緒に入手していた後継品です。

uPD458D
NECのμPD458D EEPROMです。

容量はμPD454Dの4倍の8kbit(1024×8bit)となり、ピン数も4本増えて28ピンとなりました。容量の割にピン数が多いのは電源ピンが多数あるためです。

電気的特性は容量増に伴ってアドレスピンが増えたことと、アクセスタイムが少し速くなった程度でμPD454Dからほとんど変わっていません。ただしピン配置は一新されていて互換性はなく挿し替えはできません。その代わり一般的な2708などとの挿し替えを意識した配置となっていて、13~16ピンを除いた24ピンは2708そっくりです。

セラミックDIP

テーマ:

カテゴリー:

前回のμPD454Dでピンの付き方が変わっていると書きました。これでセラミックDIPの4タイプが揃ったので並べてみます。

Side Brazed DIP
最初のこれは Side Brazed DIP と呼ばれているもの、写真はIntelのC8095-90です。

セラミックのパッケージ自体に配線がされていて、ダイは金属のフタの内部にあります。

セラミックを焼成するときに配線も一緒に作ってしまいます。DIPではあまり必要ないと思われますが複雑な3次元のパターンも可能です。

ピンはパッケージ側面の電極にろう付けされています。

NEC uPD454D

テーマ:

カテゴリー:

これは古いメモリ、機能的にも外見的にもちょっと風変わりなデバイスでした。

uPD454D
NECのμPD454D、残念ながら製造年はわかりません。TK-80に使われていたようですから、まぁその頃のものでしょう。

容量が2kbit(256×8bit)のEEPROMです。以前取り上げた1702Aと同じです。

まずは機能面から。

EEPROMと書きましたが、今考える一般的なEEPROMとはちょっと違います。EEPROMというとオンボードで書き換え可能なイメージがあると思いますが、このμPD454Dをオンボードで書き換えるのはかなり困難です。確かに電気的に消去は可能なのですが、+36Vと-40Vの電源を必要とするからです。

ENW-3505-T

テーマ:

カテゴリー:

これも撮影したまま忘れていました。

ENW-3503-T
PlanexのENW-3503-T、PC Cardタイプのネットワークカードです。

10Base-Tのみの対応なのでかなり古いものですね。今ではWi-Fiがあって当たり前ですが、優先ネットワークも標準装備されていなかったころのものです。

カード 表側
左側をカードスロットに挿し込みます。

Pages