80系アセンブラのテクニック

カテゴリー:

2日目の今日は80系(8080, Z80, 8085など)のちょっと懐かしいテクニックです。

今こんな書き方をすると、わかりにくいと怒られるか、パイプラインなどに悪影響が出たり技術的にもデメリットになったりしますので避けるべきですが、当時はそれなりにメリットもあってよく使われていました。

一つは命令の途中に飛び込むというものです。例えばこんな感じです。


   1:	8000          	    ORG 8000H
   2:	8000          	entry1:
   3:	8000  3EAF    	    LD  A,0AFH
   4:	8002  3200FF  	    LD  (0FF00H),A
   5:	8005  C9      	    RET

3行目でAレジスタに0AFHを入れ、4行目で0FF00H番地のメモリに書き込んで、リターンするだけのものです。
ここでは8000Hがエントリポイントですが、8001Hもエントリポイントと考えると以下のようになります。オブジェクトは上と一緒です。

16進の表記方法について

カテゴリー:

今回からしばらくはちょっと趣向を変え、ソフトウェアについて書いてみたいと思います。1回目は「ソースコード等に16進を記述する際の記述方法」です。

  • (F300)16
    コンピュータを離れるとこれが一般的でしょうか。
    ただコンピュータ以外で16進表記を使うことはあまり無いので、昔数学か何かでやったはずですが完全に忘れていました。さすがに当時の教科書は残していないと思うので、当時の表記方法が同じだったのかはわかりません。
  • 0xF300
    C言語をはじめ最近の言語では一般的な記述方法ですね。
    「x」をつけずに「0」で始まると8進だとみなされます。私は8進なんて使わないという人でもこれは知っておく必要があります。桁をそろえるなどの理由で「012」などと書くと(12)10ではなく(12)8=(10)10と解釈されるからです。
    定数「0」は実は8進定数として処理されているのだとか。結果は変わらないですが。

    今ではアセンブラもこの記述方法が多いです。

IDT7134 Dual Port SRAM

テーマ:

カテゴリー:

今設計中の機器で使おうと思って調達したメモリです。

IDT7134 DIP
IDT製のIDT7134SA35P、デュアルポートRAMという種類の特殊なRAMです。容量は4k×8bitと前時代的な小ささにもかかわらず、48ピンDIPという大きなパッケージに入っているのはその特殊性ゆえで、「デュアルポート」の名のとおり電源以外のアドレス・データ等の信号が2つずつあるのです。

SONY CDU561-01

テーマ:

カテゴリー:

今回のモノは比較的初期のCD-ROMドライブです。

CDU561 正面
SONY製のCDU561というCD-ROMドライブです。

左からヘッドホンジャック、ヘッドホン用のボリューム、アクセスLED、イジェクトボタンと今のドライブと変わりはありません。右端の穴は強制的にイジェクトするためのもの、中にスイッチがあるわけではなく機械的に動かすのでそれなりに丈夫なもので押す必要があります。

挿入口に「CADDY LOADED」とあるのはディスクがセットされていることを表しています。セットされていないときは確かCDロゴの付いたグレーのカバーが見えるようになりました。

SED9420

テーマ:

カテゴリー:

今回のデバイス、昔は単独のICでしたがコントローラに内蔵されるようになり、現在では用途そのものが無くなりつつあります。

SED9420C
これはSED9420C、フロッピーディスク用のデータセパレータのICです。

AVR用ツール

テーマ:

以前AVRマイコンの開発用に製作したものなのですが、何をするものなのかわからなくなってしまいました。

AVRツール
自分で作っておきながらわからなくなるとはマヌケな話ですが、憶えているのはパラレルプログラミングによってどこかのFuse bitを書き換えるツールだということだけです。

Hucom HUCOM-EX336

カテゴリー:

昔使っていたモデムです。

EX336 正面
HucomのHUCOM-EX336、その名の通り33.6kbpsのモデムです。
モデムはその速度性能が電話代に直結するということで私にしては積極的に新しいモノを買っていましたが、冷静に考えるとモデム代の元を取れるほどの通信量は無かったですね。

正面には各種LEDのみです。

EX336 背面
背面にはコネクタが並びます。

Motorola MC68882

テーマ:

カテゴリー:

今回はXC68030とよくペアで使われたFPUです。

MC68882
これがMC68882RC25A、PGAパッケージの25MHz版です。他にPLCCとQFPのものが出ていたはずで、PLCCは持っているかも。

MC68882は以前紹介したMC68881の改良版でピン配置も命令も互換です。基本的に挿し換えればそのまま使えるはず。「基本的に」と書いたのは、未確認ですがFSAVE, FRESTORE命令でスタックに積まれる内部状態は異なっている可能性があり、これを直接操作するようなソフトウェアは影響を受けるから。そんなソフトウェアが実際にあるかは疑問ですが、デバッガとかであればフォーマット番号くらいは参照していても驚きません。

富士フィルム DS-8

テーマ:

カテゴリー:

これは初めて買ったデジカメですが、あまり使った記憶がありません。

DS-8 前面
富士フィルムのDS-8、1996年の発売です。

前面はシンプルなデザインです。本体が大きいわりにレンズは小さいですね。

DS-8 背面
背面もLCDと電源スイッチのみとスッキリしています。LCDも最低限のサイズといった感じの小さなものです。

ウィークリータイマー

テーマ:

カテゴリー:

ここのところPC関連が続いたので今回は違うもの、タイマーです。でも私の使用目的はPC関係でした...

ウィークリータイマー 表側
壁のコンセントに直接挿し込むタイプのタイマーです。「ウィークリー」と付くのは年月日の設定がなく、曜日でしかセットできないためです。

On / Offそれぞれ何件かプログラムできたはずですが、私は「デイリー」でしかも1回ずつで使っていましたね。

下側には負荷を接続するようになっています。3Pに見えますが、PE (アース)はどこにも接続されてなく穴があいているだけですね。

ページ