続・80系アセンブラのテクニック
3回目も昨日に引き続き、80系アセンブラの懐かしいテクニックです。
スタックポインタ(SP)を利用してメモリクリアです。
3回目も昨日に引き続き、80系アセンブラの懐かしいテクニックです。
スタックポインタ(SP)を利用してメモリクリアです。
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もエントリポイントと考えると以下のようになります。オブジェクトは上と一緒です。
今回からしばらくはちょっと趣向を変え、ソフトウェアについて書いてみたいと思います。1回目は「ソースコード等に16進を記述する際の記述方法」です。
今回のモノは比較的初期のCD-ROMドライブです。
SONY製のCDU561というCD-ROMドライブです。
左からヘッドホンジャック、ヘッドホン用のボリューム、アクセスLED、イジェクトボタンと今のドライブと変わりはありません。右端の穴は強制的にイジェクトするためのもの、中にスイッチがあるわけではなく機械的に動かすのでそれなりに丈夫なもので押す必要があります。
挿入口に「CADDY LOADED」とあるのはディスクがセットされていることを表しています。セットされていないときは確かCDロゴの付いたグレーのカバーが見えるようになりました。
今回のデバイス、昔は単独のICでしたがコントローラに内蔵されるようになり、現在では用途そのものが無くなりつつあります。
これはSED9420C、フロッピーディスク用のデータセパレータのICです。
データセパレータというのはフロッピーディスクドライブから読み出された信号、これはデータとクロックが一緒に記録されているわけですが、そこからデータを取り出す回路です。より正確にはデータの位置(タイミング)を示す信号(WINDOW)を作り出す回路です。この信号を元にFDC (Floppy Disc Controller)はデータを取り出します。
なぜ直接データを取り出さないかというと、FDCはデータ以外にクロックの抜けているところ(Missing Clock)と呼ばれるものを検出する必要があるためで、そのためにクロックの含まれた信号も必要としているからです。
以前AVRマイコンの開発用に製作したものなのですが、何をするものなのかわからなくなってしまいました。
自分で作っておきながらわからなくなるとはマヌケな話ですが、憶えているのはパラレルプログラミングによってどこかのFuse bitを書き換えるツールだということだけです。
昔使っていたモデムです。
HucomのHUCOM-EX336、その名の通り33.6kbpsのモデムです。
モデムはその速度性能が電話代に直結するということで私にしては積極的に新しいモノを買っていましたが、冷静に考えるとモデム代の元を取れるほどの通信量は無かったですね。
正面には各種LEDのみです。
背面にはコネクタが並びます。
今回はXC68030とよくペアで使われたFPUです。
これがMC68882RC25A、PGAパッケージの25MHz版です。他にPLCCとQFPのものが出ていたはずで、PLCCは持っているかも。
MC68882は以前紹介したMC68881の改良版でピン配置も命令も互換です。基本的に挿し換えればそのまま使えるはず。「基本的に」と書いたのは、未確認ですがFSAVE, FRESTORE命令でスタックに積まれる内部状態は異なっている可能性があり、これを直接操作するようなソフトウェアは影響を受けるから。そんなソフトウェアが実際にあるかは疑問ですが、デバッガとかであればフォーマット番号くらいは参照していても驚きません。
これは初めて買ったデジカメですが、あまり使った記憶がありません。
富士フィルムのDS-8、1996年の発売です。
前面はシンプルなデザインです。本体が大きいわりにレンズは小さいですね。
背面もLCDと電源スイッチのみとスッキリしています。LCDも最低限のサイズといった感じの小さなものです。
ここのところPC関連が続いたので今回は違うもの、タイマーです。でも私の使用目的はPC関係でした...
壁のコンセントに直接挿し込むタイプのタイマーです。「ウィークリー」と付くのは年月日の設定がなく、曜日でしかセットできないためです。
On / Offそれぞれ何件かプログラムできたはずですが、私は「デイリー」でしかも1回ずつで使っていましたね。
下側には負荷を接続するようになっています。3Pに見えますが、PE (アース)はどこにも接続されてなく穴があいているだけですね。