続・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進を記述する際の記述方法」です。
私がこれまでに使ってきたOSたちです。
操作環境としてのもののみ挙げており、vxWorks, μITRONといった組み込みOSは除いています。
いつもモノのことばかり書いているので、時には「私」についても書いてみようかと思っています。
題して「私の~遍歴」、第1回はプログラミング言語についてです。
これまでに個人的にも業務としてもいろいろなプログラミング言語を使ってきました。既存のプログラムをちょっと修正したようなものまで含めるとかなりの数になってしまうので、ある程度使い込んだものを並べて見ました。
私が初めてパソコンに接したのは1982年のことですから、BASICから入ったのはごく自然な流れでした。一部の例外を除いてパソコンを買えばBASICは入っている時代でしたから、まずはそれを使ってみることになります。
EPSON製のPC-9801互換機を購入すると付いてきたものです。
NEC製のパソコンPC-9801シリーズは一時期日本で絶大なシェアを誇っていました。それに便乗しようとEPSONは互換機を発売したわけですが、当然NECとしては面白くありません。そこで自社のソフトウェアに互換機かどうか判別して動作させなくする細工を施しました。
それに対しEPSONは互換機チェックを無効化するパッチを作成し、パッチをあてるツールとしてこのソフトウェア・インストレーション・プログラム(略してSIP)をパソコン本体に付属させたのです。
これはEPSON PC-286NOTE FかEPSON PC-386NOTE Aのどちらかに付属のものです。
今回はMC68kボード (概要編)で紹介したボードに搭載したソフトウェアの話です。
CP/M-68K上で動作させたソフトウェアまで含めるとキリが無いので、ボード上のROMに書き込んだものに限定します。そうするとモニタ、Tiny BASIC、CP/M-68Kの3つになります。
【モニタ】は最初に動かしたもの(ハードウェアのテスト用の無限ループ等を除いて)になります。ベースは「トランジスタ技術」誌の1985年4月号にアセンブラソースが掲載されたものです。その後少しずつ機能を追加して行き、MPUをMC68010に変更したときは対応するための修正をしています。
ただMC68kはバイナリを見ながらデバッグするような代物ではないので、もっぱらハードウェアの確認用に使用することが多かったです。後述のTiny BASICのデバッグ時も机上で行ってROMを書き換えてしまうことが多かったです。
Palm OSの日本語環境ソフトJ-OSです。
これがパッケージです。
Sony CLIEなど最初から日本語化されているものはともかく、私のように英語版のPalm Pilot使用者でもこれを入れれば日本語を使用できるというもので、フォントやかな漢字変換とその辞書などの集まりです。
中身のCD-ROMですね。「Macintosh & Windows ハイブリッド版」とあるのは1枚でMacintoshでもWindowsでも使えるということなのですが、どちらのホストでも実際にPalm Pilotに送り込まれるソフトウェアは一緒です。
CP/M-68Kのマニュアルが出てきました。
CP/Mというと8080用のものや8086用のCP/M-86が有名ですが、このMC68000用のCP/M-68KやZ-8000用のCP/M-8000というのもありました。
変わったサイズのバインダーですが、おそらくは8インチフロッピーが入るサイズだったのでしょう。私は日本でパソコンの68000拡張ボード用に移植されたものを購入したのでメディアは5インチの2HDでしたね。それをさらに自作のボードに移植して使っていました。