Takeda氏が解析してくださったおかげで、色々なことが容易になりました。
今回は文字を表示します。
SORD M23のCRTCはHD46505SでBOOT ROM内で、80桁、25行に設定されています。
テキストVRAM(文字コード)はF800hからFFFFhまで、テキストVRAMのアトリビュートはF000hからF7FFhまでです。アトリビュートの設定はBOOT ROMでされているので、特に変更する必要がなければ、テキストVRAMの文字コードエリアにアスキーコードを書けば表示されます。テキストVRAMの文字コード領域は、画面に見える範囲は以下のようになっています。
ただ、このテキストVRAMはRAMページ1にあり、SORD M23ではI/Oポート0xD2hに任意の値を入力した命令の次の命令がRAMページ1への書き込み/読み込みとなります。0xD2には何を入力しても良いようなので、書き込む文字コードを書き込んでいます。
PUTCHR:
LD A,(HL)
OR A
RET Z
OUT (0D2H),A
LD (DE),A
INC HL
INC DE
JR PUTCHR
DEにテキストVRAM(文字コード)領域のどこかのアドレスが入ります。HLは表示したい文字列の先頭アドレスです。
これにキャリッジリターンやラインフィードを実装すると、こんな感じに表示できます。