ポケコン(G850)用拡張ボード(EborsyEEP)でCP/M(その4)ランチャーの製作 [ポケコン]
前回の記事で今回開発した PC-G850V(以降 G850 と記す)用の増設ボード EborsyEEP(RAM & シリアル EEPROM を実装)使って CP/M が安定して動作するようになったことを書きました。今回は CP/M 環境下で既存の G850 用のアプリケーションを起動できるランチャーを制作したので概要を記載したいと思います。
CP/M が動作している状態で既存のアプリケーションを起動するために G850 内蔵メモリ上で動作していた CP/M loader をメモリの後方に移動し、アプリケーション用のメモリを確保するようにしました。
下図が CP/M 起動時のメモリ配置の概要図になります。
起動時の処理の概要は
loader の末尾には backup から loader 自身をリストアする restore モジュールを配置しました。理由はゲーム終了時に リストアすることで、restore モジュールの直前までゲームで使用可能にしようと考えたためです。しかし、loader がある 5600H まで使えれば殆どのゲームが動作可能なようなので resotore 処理は実装までして、現状はゲーム終了時に動かしてはいません(暴走時に restore を起動することで復活できる場合があります)。
既存のアプリケーションは CP/M の LOAD コマンドでバイナリ変換した後、CP/M のコマンドと区別するために拡張子を ".850" にしています。このファイルを今回作成した RUN コマンドにより CP/M 上で起動することが可能になります。
また、今回のランチャーは BASIC プログラムの起動には対応していません。
G850 で動作する CP/M 上で既存プログラムのランチャーが動くことで、ゲーム等のアプリケーションを瞬時に起動できるようになり、利便性がかなり向上しました^^
Twitter(X?)に投稿した動画付きメッセージを貼っておきます。
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
CP/M が動作している状態で既存のアプリケーションを起動するために G850 内蔵メモリ上で動作していた CP/M loader をメモリの後方に移動し、アプリケーション用のメモリを確保するようにしました。
下図が CP/M 起動時のメモリ配置の概要図になります。
CP/M 起動時のメモリ配置 |
|
起動時の処理の概要は
- loader 自身を 5600H 以降にコピーする。
- 未使用だった BAMK0 に loader をバックアップする。
- BE00H にブリッジ処理をコピーする。
- loader 内の IPL により EEPROM から CCP/BDOS/BIOS を読込み、BANK1 に展開する。
- CCP へジャンプし、CP/M を起動する。
loader の末尾には backup から loader 自身をリストアする restore モジュールを配置しました。理由はゲーム終了時に リストアすることで、restore モジュールの直前までゲームで使用可能にしようと考えたためです。しかし、loader がある 5600H まで使えれば殆どのゲームが動作可能なようなので resotore 処理は実装までして、現状はゲーム終了時に動かしてはいません(暴走時に restore を起動することで復活できる場合があります)。
既存のアプリケーションは CP/M の LOAD コマンドでバイナリ変換した後、CP/M のコマンドと区別するために拡張子を ".850" にしています。このファイルを今回作成した RUN コマンドにより CP/M 上で起動することが可能になります。
また、今回のランチャーは BASIC プログラムの起動には対応していません。
G850 で動作する CP/M 上で既存プログラムのランチャーが動くことで、ゲーム等のアプリケーションを瞬時に起動できるようになり、利便性がかなり向上しました^^
Twitter(X?)に投稿した動画付きメッセージを貼っておきます。
ポケコン(PC-G850V)用に開発したシリアルEEPROM&SRAMボードを使いCP/Mが安定して動いたので、CP/M上から既存のプログラムを起動できるランチャーを作ってみました
— skyriver (@wcinp) July 27, 2023
使ってみると思いの外、便利ですね^^https://t.co/dnUIvUik9X#G850 #EborsyEEP #CPM #ポケコン pic.twitter.com/xnrssMFlYk
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
コメント 0