80系でリロケータブルを実現する

2017-03-08 16:38 — asano
カテゴリー

80系(8080,Z80,8085)で真のリロケータブルコード(PIC)を書くことはほぼ不可能です。

これらのプロセッサが現役だった頃、リロケータブルなコードといえば現在のPIC (Position Independent Code)の事を指していました。好きなアドレスにロードすればそのまま(書き換えたりせずに)実行できるコードです。
MC6809では普通に可能だったので、6809ファンの友人によく馬鹿にされたものです。

PICであるためには何が必要で80系では何が欠けているのか考えて見ましょう。必要なのはコード内のアドレスを正しく求め、参照できることです。

やっと確定申告を出せました

2017-03-08 13:33 — asano

テーマ

カテゴリー

ここ何週間も四苦八苦していた所得税の確定申告をやっと出すことができました。

確定申告自体は10年ほど出していたのですが、これまでは給与所得+株・FXだったのでWEB上でチョイチョイと数字を入れるだけで済んでいました。
しかし今回からは事業所得(まだ赤字ですが)でしかも青色申告なので、やれ棚卸しだ決算だと慣れないことばかりです。これまで表計算で帳簿付けてきたのですが、いざ決算書等を作ろうとするとわからないことが次から次へと出てきます。結局、専用のソフトウェアを購入して1年分を再入力することになってしまいました。
それにしても1年目はまだ慣れていない上に、開業前から持っていたカードの利用分が引き落とされたり、プロバイダ料金はいつの分がいつ請求されるか、など例外的な事項が多くて大変です。こういうことって本等にもあまり書いていないんですよね。

そんなわけで何とか仕上げて投函してきました。
あとは税務署から電話かかってこないことを祈るのみです。

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

2017-03-06 18:53 — asano
カテゴリー

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もエントリポイントと考えると以下のようになります。オブジェクトは上と一緒です。

SONY CDU561-01

2017-03-03 22:26 — asano

テーマ

カテゴリー

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

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

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

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

SED9420

2017-03-02 22:57 — asano

テーマ

カテゴリー

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

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

データセパレータというのはフロッピーディスクドライブから読み出された信号、これはデータとクロックが一緒に記録されているわけですが、そこからデータを取り出す回路です。より正確にはデータの位置(タイミング)を示す信号(WINDOW)を作り出す回路です。この信号を元にFDC (Floppy Disc Controller)はデータを取り出します。
なぜ直接データを取り出さないかというと、FDCはデータ以外にクロックの抜けているところ(Missing Clock)と呼ばれるものを検出する必要があるためで、そのためにクロックの含まれた信号も必要としているからです。

AVR用ツール

2017-03-01 18:03 — asano

テーマ

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

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

Hucom HUCOM-EX336

2017-02-28 21:12 — asano
カテゴリー

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

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

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

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

Motorola MC68882

2017-02-27 14:40 — asano

テーマ

カテゴリー

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

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

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