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

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

こちらの実験でVRAMに直接データを書込むことでCRT表示ができることを確認済みなので
画面クリアとスクロール、改行などを実装してBASICROMの処理不要でCRT出力を実装してみました

ANKの表示は思った通りの動きをしているのですが、この出力サブルーチンを使うとasmbの画面出力などで
おかしくなります

しかし、簡単なFLEXコマンドはKB入力の指示で動作するので、OSの基本的な動作はするようになったようです。

カーソルは処理が無いのでBASICが起動した最後の位置で放置されています・・・

KB入力とCRT出力を実装する前に入出力がACIAの時はasmbやdebug, COPYコマンド等も動作していたので、
KB入力やCRT出力の作りが悪いだけのようです^^;;

かなりポンコツですが、一応レベル3でFLEX9が動作するようになったので、ここをスタート地点としてデバッグ
を開始できそうです^^

CRT出力で何か参考になる本があればいいのですが、見たことが無いので気分のままに必要な処理を書いてみた
だけになっています。
相変わらずポンコツで何も参考にもなりませんが、晒しておきます^^;;;
水平文字数や開始アドレス等にマジックナンバーが残っているのは実験用が直し切れていないだけだったりします
(CRTCを使ったCRT出力処理の参考になる書籍でおすすめな本がありましたら教えて下さい)

LISTコマンドは調子よく文字化けもありませんが、


ASNコマンドは一部文字化けしたりします

SYSTEM DRIVE IS #0 の 0部分がおかしかったり、FILESコマンドなども化けます
これだけならすぐに直せそうですが、問題が多いのでじっくり修正していきます^^;;;

Aレジスタに入った文字をVRAMアドレスに変換して表示しているだけの処理のつもりですが、まだまだ
ダメな部分があるんですね

本当はBASICROMの処理をうまくバンク切換して使うのが正しいやりかただと思うのですが、うまくいかないので
拡張メモリのみで自前のKB,CRT,FDCのI/Oを載せて実装しました。
とりあえず動くようになりましたが、私には難しいです^^;;

最初はVRAM位置の問題を解決するためにはマーク5の64KB拡張RAMのみで動作させるしかないと思って挑戦
しましたが、何だかこのやり方は間違っている気もしてきました・・・
やはりKB入力やCRT出力の基本モニタ部分は素人が作ったものではダメですね

そんなCRT出力ができるようになった記録^^

「マーク5の拡張RAMでFLEX9を試す その12 (CRT出力の2)」への2件のフィードバック

  1. うーん、これはエミュのバグの可能性がありそうです。
    VRAMに書き込む直前でカラーレジスタを更新するとどうなるでしょうか。

    1. VRAMに書込む直前にブレークポイントで止めてカラーレジスタを更新してみましたが、
      正常に1文字毎に色が変わりました。
      エミュのバグではなく、私のポンコツBIOSに色々問題がありそうです^^
      未完成もいいところですが一通り動作できるコード一式をお送りしますので、よろしければエミュの評価用にお使いください

コメントを残す

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

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