現在地

ROMカプセル

テーマ:

カテゴリー:

Tandy 200HC-88で一般ユーザーにROM交換させるために使われていたカプセル式のソケット、正体不明だったのですが偶然に判明しました。

おそらくMolex社の2.54×15.24mm (.100×600") Pitch Modular IC Socket Systemと呼ばれるものと思われます。

これは基板に実装する「Socket」と、ROMなどのICを取り付ける「Carrier」からなり、ICのピンを保護しつつ逆挿しを防ぐ仕組みになっています。ピン数は24, 28, 32が用意されており、キーの位置(と色)によって(アドレスの偶奇など)複数ある場合の入れ替わり防止もできるようになっています。

2023年

テーマ:

カテゴリー:

新年あけましておめでとうございます。
今年もよろしくお願いします。

2022年の大きな変化はプリント基板を注文するようになったことでした。
今年は何ができるかな。いろいろ構想しているものはあるので少しずつでも実現させていきたいですね。

続・SN74141を試す

テーマ:

カテゴリー:

SN74141を試すで触れた消灯しているはずなのに中央がボーっと光る問題、思い当たることがあると書きましたが、対策が効いてほぼ原因が確定したのでそれについて書きたいと思います。

実は、ヒントになることはニキシー管を点灯してみたにも少し書いています。

あの時はこんな現象は起きていませんでした。

何が違っているかというと、カソードを1本ずつ手でGNDに接続していたのをSN74141で切り替えるように変更したことです。

SN74141を試す

テーマ:

カテゴリー:

複数のSN74141が揃ったので動かしてみることにします。ニキシー管を点灯してみたで使った基板を流用します。


4ビットのカウンタを追加して順に点灯させることにします。

管もSN74141も取り換えて試すのが目的です。管は前回同様、ピン1, 13のみ穴に通し基板にハンダづけしているのはアノードのピン13だけです。SN74141はZIFソケットを使いました。

SN74141

テーマ:

カテゴリー:

ウクライナから買った石でニキシー管用のデコーダ・ドライバのSN74141が入手困難らしいと書きましたが、その後eBayで度々見かけたのでいくつか購入しました。単にこれまで欲しいと思わなかったので目に入っていなかっただけみたいです。


これはオリジナルのTIのSN74141ANです。元々SN7441というのがあって、それの改良版です。

SN7441もSN74141もBCD-to-Decimal Decoder / Driverというもので、デコーダの出力は60Vという高耐圧のオープンコレクタになっています。これは多くのニキシー管のカソードを直接ドライブ可能です。

MC68020 / MC68030 の判別

カテゴリー:

アドレスエラー・バスエラー時の表示は、未対応のフォーマットの場合にはスタックに積まれたワードをそのまま16進ダンプするようにしたので、デコードルーチンは後回しにして判別を書くことにしました。

まずMC68020以上であることの判別は容易(MC68010の判別(補足)参照)なのですが、MC68020からMC68030で追加された命令はありません。というかあるにはあるのですがMMU関係の命令なのでMC68020+MC68851(PMMU)でも実行できてしまいます。細かな動作の違いはあるかもしれませんが...

Z8000セグメントモード対応(その3)

カテゴリー:

前回までで従来の機能がセグメントモードで動作するようになりましたが、セグメントモードで動作するなら当然D(ump)などのコマンドでもセグメントが指定できなくてはなりません。

この辺りは8086のセグメントやTLCS-90のバンクを移植する形で対応しました。

表記はZ8000らしく<<SEG>>OFFSET形式も考えましたが、長くなるので8086同様SEG:OFFSET形式としています。

コマンドのパラメータ以外に対応が必要なのはR(egister)コマンドにおけるSSPとPCです。

  1. SSPH, SSPL, PCH, PCLのように16ビットずつ別のレジスタ名をつける
  2. 32レジスタとして扱う
  3. 16ビットずつに分けるが「:」で区切ってレジスタとしては1つとして扱う

などの方法が考えられます。

1.は勝手に名前を付けることになることと、2回に分けて設定するのは面倒です。

Z8000セグメントモード対応(その2)

カテゴリー:

前回枠組みができたので実際に変更していきます。

直接アドレスやJR, CALRなどの相対アドレスはアセンブラが良きに計らってくれるので書き直す必要はありません。

問題はレジスタ間接(インデックスなども含む)です。これは単純に書き換えられない上に、アドレスレジスタが隣り合う2つのレジスタをペアにする関係でレジスタの割り当てを大きく変更する必要がありました。幸いレジスタ数に余裕があったためレジスタ番号の書き換え程度で済んでいますが、不足する場合はメモリに退避するなど変更規模が大きくなってしまいます。

今回は大きく3つのパターンで対応しました。

単純に32ビットレジスタへ置き換え

レジスタ間接のまま32ビット化するのが一番手っ取り早いのですが、レジスタをペアで使用するので多用するとレジスタが足りなくなる恐れがあります。

これはどこを指すかわからない場合に使用しました。具体的にはSTROUTルーチンへの引数と各コマンドでの対象メモリへのアクセスです。

ページ

Electrelic RSS を購読