マーク5の拡張RAMでFLEX9を試す その9 (CRT出力の1)

ベーシックマスタレベル3でFLEX9を動作させる作戦の続きです。

今回のFLEX9動作環境は64KBの拡張RAMを使っている上にTPAを連続して確保したいので$8000付近にROMとの
バンク切替用のワークが取れないのでROMの機能がうまく使えません

ROMのサブルーチンが上手く使えないのでFLEX9のドライバ内にレベル3のCRT出力とKB入力の機能を実装
したいと思います

64KB拡張RAMで動作しているプログラムからCRT出力するにはVRAMエリアのバンク切換えが必要ですが
レベル3にはVRAMエリアのみバンク切り換えできる機能が用意されていました。

64K拡張RAM使用中のVRAMアクセス切替は$FFE8 で 拡張64KRAM $78 ⇔ $7C VRAMエリア

を切替えることでVRAMエリアを切替できました

試しにACIAに文字出力するところでUレジにVRAMの先頭$400をセットしデータを書いてみました

ACIAのデータレジスタを書いた後に追加したので、ACIA出力とVRAMへのデータ書き込みは分かれているはず・・

表示結果はこんな感じで、VRAMに書いた文字は反映されました^^

表示がおかしくなるので$20のスペースはスキップしていますが、文字出力はできるようです。

しかし、

ACIAに文字を送信した後にVRAMにデータを書いていますが、なぜだかACIAのデータ送信がおかしくなります
(ACIA送信中に割込みORCC #$50で禁止にしてみても改善なし・・)

VRAMへのスクロールや改行処理を追加しACIAの文字化けを解決すればCRT表示も実装できそうな感じです。

ROMに頼らずBIOS内のプログラムで完結できるように頑張ってみます^^

ざっくり追いかけてみた感じではCRT出力よりもKB入力の方が複雑な感じがしました

そんなVRAMへのデータ書き込みの記録・・・

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。 本文に全角文字を2文字以上含めて下さい (スパム対策)