何とか庵日誌

本名荒井が毒にも薬にもならないことを書きつづるところ

ボルフェスフォント for MSX

先日ボルフェスを解いたついで、こんなものを作ってしまいました。



MSX-BASIC上で使える「ボルフェス斜体フォント」。
どうやって作ったかはゴニョゴニョ...ということで。
まぁ、MSXのPCG機能を使って、デフォルトのフォントデータを
ボルフェスのものに入れ替えただけですが、
PCG定義にマシン語使ってまして、
BLOAD,R一発で実行できるのが工夫と言えば工夫です。
MSX-BASIC上からPCG機能を使う場合、
DATA文として格納したドット絵データをFOR〜NEXTとREADで読み出して、
VPOKEでパターンジェネレーターテーブルに
随時書きこんでいくという手順を踏むのですが、
今回はよく知られた手法、MSXBIOSに備わっているブロック転送命令を使って、
ドット絵データを直接PGTに書きこむという方法を使っています。
実はこのために、はじめてオリジナルのマシン語プログラムを書いたのですが、
BASIC以上に簡単に、かつ短く高速に実装できたので目から鱗でした。
それにしてもはじめてのマシン語プログラムがこんなんでいいのか、俺?


参考までにメイン部分のソース。COOOH番地から配置してますが、
このあたりはてきとうにリロケート可。


ORG C000H

LD A,01
CALL 005FH
LD HL,xxH
LD DE,yyH
LD BC,zzH
CALL 005CH
RET

xx:転送元アドレス(PCGデータ開始番地)
yy:転送ブロック長(PCGデータ総バイト数)
zz:転送先VRAMアドレス(PGTの該当番地)