「FLEX9」タグアーカイブ

FLEX9の話題

マーク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出力処理の参考になる書籍でおすすめな本がありましたら教えて下さい) 続きを読む マーク5の拡張RAMでFLEX9を試す その12 (CRT出力の2)

マーク5の拡張RAMでFLEX9を試す その10 (KB入力の1)

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

VRAMへのデータ書込みでROMのルーチンに頼らずCRT表示ができることが確認できたので
ROMルーチンに頼らないKB入力について調べてみました。

どうやらROM内にKBのスキャンコードとASCIIコードの変換テーブルがあり、そのテーブルで変換している
ことが分かったので、テーブル部分の一部を抜き出してKB入力を試してみました

とりあえず、KBスキャンコードからASCIIコードに変換できることは確認できましたが、
CRT出力以上にKB入力は難しそうです・・・^^;;;

ACIAのデータ入力をキーボードからのデータ読込に差替えてみたところ、入力はできますがキースキャンが高速
なのでちょっとキーを押しただけでも大量に取り込んでしまいます^^;;

IRQ割込みでキースキャンコードをASCIIコードに変換して変数に代入、読み出したら変数クリアで次のキーを
入力可にしていますがスキャンが速い・・・ 続きを読む マーク5の拡張RAMでFLEX9を試す その10 (KB入力の1)

マーク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をセットしデータを書いてみました 続きを読む マーク5の拡張RAMでFLEX9を試す その9 (CRT出力の1)

マーク5の拡張RAMでFLEX9を試す その8 (ディスクドライバの仕上げ1)

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

こちら でなんとか動作しているFLEX9のMP-1820用ディスクドライバですが、同一トラックでもSEEKしてしまう
簡易的なドライバなので、割込みを使用した完全版のドライバに整理しております。

一通り整理して安定して動作しているのですが、なぜかカレントドライブ0からDSP,1やCAT,1やFILES,1で
ドライブ1のファイルリストが表示できません (DELETE 1.FLEX.SYS等もダメ)
しかし、COPY,FLEX.SYS,1でドライブ1にコピーは可能なので原因の特定が難しいです・・・


ドライバ作成の際にFLEXのシステム込みでトレースするのは大変でしたが、FLEX9のアダプテーションガイドのAPPENDIX-Aに掲載されている1セクタの読書きテストユーティリティを使うとシンプルにデバッグできました。

こちらのテストユーティリティですが、FLEX.CORは不要なようでConsole I/Oドライバとディスクドライバのみ
メモリにロードすれば動作するようです。

64KB拡張メモリに切り替えてコンソールI/Oドライバとディスクドライバをメモリにロードします
Console I/OドライバのINITは実行しないので割込ベクタは手動で設定しておきました


アダプテーションガイドの51ページからのAPPENDIX-AをアセンブルしてMOT形式に変換しメモリにロードし、
Tで数ステップ確認してからGで実行

続きを読む マーク5の拡張RAMでFLEX9を試す その8 (ディスクドライバの仕上げ1)

マーク5の拡張RAMでFLEX9を試す その7 (FLEX.SYS化)

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

これまで別々にロードしていたFLEX.COR, コンソールドライバー, ディスクドライバを合体させてFLEX.SYSにして
一発でメモリにロードできるようにしたいと思います

FLEX.SYSに合体
こちらで、SBC同等ですが一応FLEX9が使えるようになっていますので、王道のAPPENDコマンドでFLEX.SYS化してみました

S1エミュのデバッガで手作業でセットしていたバンク切換と割込みベクタセット、ドライブ番号指定、FLEX9の
エントリアドレスを変更しておきます

▼ローダの変更

▼コンソールI/Oドライバの変更

▼ディスクドライバの変更

▼FLEX.SYSのエントリアドレスをレベル3のモニタからFLEX9のスタートアドレスに変更

続きを読む マーク5の拡張RAMでFLEX9を試す その7 (FLEX.SYS化)