[UniMon] Z280のI/Oページに対応

カテゴリー:

Universal MonitorをZ280のI/Oページレジスタに対応させました。

先日のI/O命令追加はそもそもZ280ボードで内蔵UARTの検討用に始めたのですが、あのままではZ280内蔵デバイスへのアクセスには使えません。

Z280内蔵デバイスはI/Oページ0FEH, 0FFHに配置されています。I/OページレジスタはOS 8,FEなどとすれば変更できますが、0FEH, 0FFHに切り替えたとたんに外部I/Oデバイスへのアクセスができなくなります。現状コンソールを外部のZ80 SIOに頼っているのでこれではキー入力・画面出力が不能になってしまいます。

そこで"I", "O"コマンドで実際にI/Oアクセスする直前にI/Oページレジスタを変更し終わったら元に戻す必要があります。

ここまでは簡単ですが、コマンドをどうするのかは悩みました。

[UniMon] I/O命令追加

カテゴリー:

8080とZ80のUniversal MonitorにI/OアクセスのコマンドとCPU判別を追加しました。

  • I(nput)
    入力ポートから入力して表示します。
    1. I <port>
    2. IW <port> (Z280のみ)
    3. IS <port> (Z280のみ)

    1の形式では<port>番の入力ポートから8ビット幅で入力して表示します。2の形式では16ビット幅で入力して表示します。3の形式ではZ280のCPU制御/ステータス・レジスタを読んで表示します。
    Z80系では<port>は16ビットアドレスが使用可能です。

74シリーズの変り種(その4)

テーマ:

カテゴリー:

74シリーズの変り種も今回で4回目、これでいったん終了とします。

いつものように初回の注意事項を繰り返しておきます。

それと誤解がないように書いておきますが、特記のない限り実際に使ったことはありません。古いデータシートを読んで気になったものを取り上げているだけなので、勘違いなどあるかもしれません。入手も難しいものが多いと思いますので「へぇ~」という軽い気持ちでお読みください。

最終回となる今回は「汎用とは呼べないモノたち」です。

74LS361

データシートは未発見ですが、TMS9916 Bubble Memory Controllerのマニュアルの中にSN74LS361 Function Timing Generatorとして登場します。

74LS362

前にTMS9900を取り上げましたが、これはそれ用のクロックジェネレータです。

74シリーズの変り種(その3)

テーマ:

カテゴリー:

74シリーズの変り種の3回目になります。

例によって初回の注意事項を繰り返しておきます。

それと誤解がないように書いておきますが、特記のない限り実際に使ったことはありません。古いデータシートを読んで気になったものを取り上げているだけなので、勘違いなどあるかもしれません。入手も難しいものが多いと思いますので「へぇ~」という軽い気持ちでお読みください。

74LS600, 74LS601, 74LS603

これらはMemory Refresh Controller、DRAMのリフレッシュを行うためのカウンタやタイミング回路をまとめたものです。

3種類あるのは対応するDRAMの容量とリフレッシュのモードが異なるため。

タイミングはR,Cを外付けします。

SN74LS610 ~ SN74LS613

これはMemory Mapperといって4ビットのアドレスを12ビットに拡張します。簡易MMUみたいなものです。

74シリーズの変り種(その2)

テーマ:

カテゴリー:

昨日に引き続き74シリーズの変り種をお送りします。

念のため初回の注意事項を繰り返しておきます。

それと誤解がないように書いておきますが、特記のない限り実際に使ったことはありません。古いデータシートを読んで気になったものを取り上げているだけなので、勘違いなどあるかもしれません。入手も難しいものが多いと思いますので「へぇ~」という軽い気持ちでお読みください。

74S124

これはVCO(Voltage Controlled Oscillator)という入力電圧で周波数を制御する発振器、純粋なロジック回路ではありません。改良版に74LS324~74LS327, 74LS624~74LS629などがあります。

他にアナログ要素を含むものには74121~74123, 74LS422~74LS423の単安定マルチバイブレータなどがあります。

74ALS229

16×5bitのFIFO(First-In First-Out)メモリです。

幅5ビットというのがいかにも半端ですね。幅方向は必要なだけ並べて拡張が可能ですが、深さ方向は拡張不能です。

74シリーズの変り種(その1)

テーマ:

カテゴリー:

最近では74LSシリーズを店頭で買えるところが減ってきました。たとえ売っていても品種がかなり少なくなっています。今はCMOSの時代ということもありますが、74HCシリーズの品種が往時の74LSシリーズ並みにあるかというとそんなこともありません。

ある程度の規模なら(FPGAなどを含む広い意味で)PLDを使うでしょうから、汎用ロジックとして残るのは限られた品種になります。

  • 基本的なゲートやフリップフロップなど
  • 単独でも使われるカウンタやデコーダなど
  • PLDに入れにくいバス関係(Octalのバッファやラッチ)など
  • やはりPLDに入れにくいドライバやレシーバなど

これらもバリエーションが少なくなっています。

そこで数回に分けて「こんなのもあったんだよ」というのを取り上げてみたいと思います。74LSシリーズを中心にしますが、74シリーズや74ASシリーズにしかないようなものも含みます。

Sharp LH70108

テーマ:

カテゴリー:

海外からZ86C91を取り寄せたときについでに買ってみたものです。

LH70108-8
SharpのLH70108-8、NECの著作権表示が気になりますね。

「70108」という番号からピンと来る人もいるかもしれません。

そう、これはNECのμPD70108(V20)のセカンドソースです。V20, V30は日本製のマイコン(Intel 8088が元ですが)としては珍しく多くのセカンドソースがあったのでした。

[UniMon] 固定エントリポイント

カテゴリー:

モニタとして必要最小限の機能はできたかなと思っていましたが、大事なものが抜けていました。

ユーザプログラムからモニタの内部ルーティンを呼び出す方法です。

大昔のトレーニングキットや初期のパソコンでは直接ROM内のルーティンを呼び出していました。基本的に完成したモニタなのでアドレスは変わりません。バージョンアップ時もよく使われるルーティンのアドレスは動かないように配慮されています。

でもこのUniversal Monitorはまだ発展途上です。

それでアドレス固定のエントリポイントを用意して、本来のルーティンへジャンプするようにしてみました。

電卓キーホルダ

テーマ:

ちょっと探し物をしていたら今度はこんなのが出てきました。

電卓キーホルダ
電卓のキーホルダです。

背景は1cm方眼なのでかなり小さいです。常用する気にはもちろんなりませんが、操作できないサイズではありません。

キーカバー
キーにはカバーがついているのでポケットの中でジャラジャラさせてもいいようになっています。でも液晶がちょっと心配ですね。

Pages