ようやくHX-20(HC-20)上で、「Hello World!」の表示が出来た!
もちろんオールマシン語だ!
全く大した事はしていないのだが、環境含めてあれこれ書いてみようと思う。
私が実験した環境は以下の通りだ。
・MacBookPro
・シリアル - USB変換器 MPRS-225R
・HC-20のRS-232Cコネクタに繋がる自作アダプタ
・6301CPUアセンブラ(自作)
・バイナリをBASICへ変換するプログラム(自作)
忘却の彼方にある6301のニーモニック
あれだけHC-88の時にハマりまくっていた6301なのに、驚くほどニーモニックを覚えていなかった(^^;; 1つ覚えると1つ忘れてしまう、ところてんのような脳みそだ!!スワップアウトじゃないところもタチが悪い(T-T)
そしてHC-88の時に開発した6301アセンブラについても、相当な即席で作られていたようで、引数なしで実行してもUsageすら表示されない状態だった!!
オプションを調べるためにもソースコードを読まねばならないという事態に!(^^;;
過去のブログを参照してみると、どうやらcpp(プリプロセッサ)に依存しきった作りにしてあった模様。プログラムの中でisattyしているので「gcc -E a.asm | asm」みたいな指定が可能だ。
それぞれのニーモニックについてはもう一度覚え直すしかないが、過去に作っていたプログラムを見つつ、そうだっけこんな命令があったっけ…と思い出しつつある。きっとその分、別のことを忘れていってるに違いない…(SC61860とかw
HelloWorldを書いてみる
Hello World!のプログラムとしてはこんな感じ。
何も難しい事は考えず、素直にコードを書いたに過ぎない。
アセンブラの書き方としては、コメントが「;」と「//」が混ざっていたり、equではなくて#defineだったりと節操がない。
cppを利用しているので条件コンパイルや#defineマクロなどが使えるのは便利だ!
ROM内ルーチンのエントリについて、HC-20とHX-20は共通で使えるらしい。$FED1以降にあるジャンプテーブルを活用している分には、相互に互換性は保てそうな感じだ!
このファイルをアセンブルすると(オプションの指定によって)生のバイナリが出力される。
このバイナリの状態のままではHC-20に転送する事が出来ないので、BASICの形式に変換する簡易ツールを作る。
こんな感じのBASICファイルにする。
このファイルをHC-20へ転送してRUNすれば、$0A50からマシン語ルーチンが書き込まれる。ファクンションキー1(PF1)に「EXEC &H0A50」が登録されているので、PF1を押して実行が出来る(^-^)
とりあえずこれで文字が表示できるようになった!
この先、グラフィックスを自由に表示出来るようにしていきたいが、先日調べていたOh!HCなどの情報に、これ(グラフィックス系)の情報が無かったような気がするのだが…汗
逆アセンブラから探し出すしかないのかなー(にこにこ)大変だなー(にやにや)
今日のところは環境を作りましたという事で!(^-^)
ではまた次回!(^-^)ノ