ベーシックマスタレベル3でFLEX9を動作させる作戦の続きです。
FLEX9を動作させるのに邪魔なVRAM領域$0400~の対応方法がどうにもうまくいかないので、
マーク5をALLRAMで動作させる方法でなんとかならないか調べていきます。
レベル3でFLEX9を動作させるにはいろいろハードルがありますがTPA内のVRAM領域の問題は難しいです。
FLEX9はメモリの上限を指定するパラメータは存在するようですが下限は指定できないようなので、
そのままでは使えないようです。
(下限が指定できれば、TPAは狭いですが動作できそうなんですけどね^^;;;)
と、いうわけでI/O領域以外連続したRAMを確保できるマーク5の64KB拡張メモリでFLEX9を実行できないか調べています。
(ALLRAMはROMBIOSのバンク切り換えで躓きそうですがVRAM領域の問題よりハードルが低そう・・・)
こんな感じで実装できないか段階を分けてチャレンジしてみたいと思います
▼ステップ1
拡張RAMを使い、連続したメモリを確保してFLEX9を動作させ、まずはディスクドライバーを作るのが目標
本当はROMのルーチンを使いCRTとキーボードを使いたいけど、バンク切り換えが難しいので色々考えてから・・・
▼ステップ2
バンク切り換えのソフトを置く部分は切替しないエリアに置かないといけないと思われるので$7FFF以下付近に
置かなければと思っていたのですが、それだとTPAが分断されて$8000~が無駄になりそうです。
マーク5は$F000~$FEFFが個別に切替できるようなので、ここに切替ソフトを置ければバンク切り換えができそう。
D0のエリアにKB/CRT/割込み関係の独立した自作モニタが実装できれば低機能でもROMに頼らず入出力できる
のではと考え中ですが、これもハードルが高そう・・・^^;;;
▼ステップ3(最終目標)
ステップ2の方法でバンク切り換えができるようになったとしてもROMは$A000~$FEFFなので
結局$F000~$FEFFを動かさないままROMのルーチンを全て使えるのかは不明です。
(この方法でROMを使えない場合はやはりD2のエリアに切替ソフトを置く必要があると思われるので
やはりTPAが分断されてしまうんですかね^^;;)
$F000~$FEFFのROMルーチンを使わないのであれば使えるのではと甘いことを考えていますが、そうなるとこんな感じで全てのエリアを自由に行き来できそうですが、最終目標の夢の世界です^^;;
▼作業手順
①FLEX.CORの準備
こちらで取り出したSWTPC用のFLEX9.0 を使用し、こちらで作った6809SBC用のディスクイメージを改造して使用。
②ブートローダの準備 → TSCのFLEX Adaptation Guideに掲載のブートローダサンプルにレベル3の処理を追加。
③コンソールI/Oドライバの準備 → こちらで作ったSBC用のドライバを参考に作成。
④ディスクドライバの準備 → 同じく6809SBC用のドライバを参考に作成。
⑤コールドブートに対応
とりあえずはディスクドライバーを作るということを目標にレベル3でFLEX9を実行できるように実験を進めます。
そんな、FLEX9移植開始の記録・・・^^
ベーシックマスタの情報をお探しの方は是非こちらからどうぞ → Amazon