ポケコン(G850)用拡張ボード(EborsyEEP)でCP/M(その9)使用方法まとめ [ポケコン]
今回開発した PC-G850V(以降、ポケコンと記す)用の増設メモリボード(EborsyEEP、以降 増設ボード と記す)を使い、CP/M が安定して動作し、ポケコン用の既存のプログラム(100Hから始まるマシン語で作成されたもの)を CP/M 上から実行できるランチャーの使い勝手も良いことから BOOTH で配布することにしました。
本増設ボードの使用方法について以下にまとめました。下記の手順で必要なファイルは BOOTH からダウンロードできる「おまけファイル」に入っています。PC-G850V と PC-G850 は同じソフトを使用し、下記の操作も両者で違いはありません。
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
本増設ボードの使用方法について以下にまとめました。下記の手順で必要なファイルは BOOTH からダウンロードできる「おまけファイル」に入っています。PC-G850V と PC-G850 は同じソフトを使用し、下記の操作も両者で違いはありません。
- 前提条件
本増設ボードは CP/M インストール後のファイル転送手段として通信速度が 19200bps のソフトウェアシリアル方式を用いたポケコン専用の xmodem 通信ソフトを使用することを前提としています。そのため、本増設ボードを使用するためには次の条件を満たす必要があります。
- 「周辺機器接続端子」に接続するシリアル通信用の通信アダプタを所有しており、パソコンからポケコンに HEX ファイルを転送し、ポケコン上で実行できること。
- 下記URLで公開しているソフトウェアシリアル方式を使用したヘキサファイルローダー(DropHx)が動作することを確認済みであること。
https://piclabo.blog.ss-blog.jp/DropHxForG850#usage
※G850S,G850VSでの動作は未確認ですが、クロックが 9MHz であることから通信速度を 21600bps(= 19200x9/8)に設定すれば動く可能性があります。 - Windows用のTeraTermのようなxmodemプロトコルに対応した通信ソフトが動作すること。
- EEPROM の初期化
出荷検査時に EEPROM を初期化済みなので本作業は不要ですが、万が一ファイルシステムが破壊された場合等に次の手順で EEPROM を初期化直後の状態にできます。
添付の EEPROM 初期化ソフト(INIEEPXM.HEX)で EEPROM を初期化します。
具体的な操作としては INIEEPXM.HEX をポケコンにダウンロードし、増設ボードを装着した状態で実行する(G100)と LCD 画面に下記のメッセージが表示されるので"Y"を入力すると数秒で初期化が完了します。
注1)増設ボードの抜き差しはポケコンの電源が OFF の状態で行ってください。
2)初期化するとファイルシステム上のファイルは A:XM.COM のみになります。
** Init EEPROM **
find 8MB : Drive A,B,C,D
Are you sure ?(Y/N)
- CP/M の起動と終了
添付の CP/M ローダー(GOCPM.HEX)を上述のDropHxを使ってポケコンにダウンロードし、実行する(G100)と CP/M が起動します。
CP/M loading ... ok
G850 Eborsy V003 47K CP/M 2.2 (C) DI
A>_
「ON」キーを押下することで CP/M が終了し、ポケコンのモニタに戻ります。
再度実行する(G100)と CP/M が再起動します。
★追記 2023/12/04 {
本拡張メモリ基板の抜き差しはポケコンの電源をオフにした状態で行ってください。また、本基板は消費電流が多いため、ポケコンを電池で動かしている場合はポケコンの電源オフ時はポケコンから抜いた状態にして下さい。
再度 CP/M を起動する場合は本基板をポケコンに装着後、ポケコンの電源をオンにしモニタから「G100」のコマンドを実行することで CP/M が起動します。
}
※ CP/M が起動しない場合の確認事項を下記の 10 項に記載しています。
※「エスケープシーケンス対応」の記事でエスケープシーケンスに対応した評価版のGOCPMをダウンロードできます。⇒EborsyEEP_V103.zip で反映済み
- CP/M へのファイル転送
パソコンとポケコンの CP/M 間のファイル転送はAドライブにあるxmodemソフト(XM.COM)を使用します。送信側を先に起動後、受信側を起動して下さい。
hoge.com ファイルを TeraTerm でポケコンの B: ドライブへ転送する際の操作は次のようになります。
- ポケコンにシリアル通信インターフェースを装着し、パソコンとケーブル接続する(通院速度は 19200bps)。
- TeraTerm の「ファイルメニュー」から file⇒Transfer⇒XMODEM⇒Send を選択し、hoge.com ファイルを指定する。
- ポケコン側で xmodem を起動する。
A>XM B:HOGE.COM /R
xm のみの起動で簡易的なヘルプが表示されます。
複数のファイルを転送する場合は Windows のアーカイブソフト(7-ZIP)で tar 形式のアーカイブファイル(hoge.tar)にし、ポケコンへ転送後、添付の解凍ソフト(UNTAR.COM)で次の操作により解凍することで転送作業が楽になります。
A>B:UNTAR B:HOGE /E
尚、untar のみの起動で簡易的なヘルプが表示されます。
★追記 2023/10/12 {
Aドライブ上に1個毎にファイルを作成(例えば XM.COM で受信する等)するとファイルが上書きされる問題が発生しました。
対処案として最初にパソコンから XM.COM を A ドライブ以外に受信し、その後は受信した A ドライブ以外にある XM.COM で A ドライブ以外にファイルを受信するようにして下さい。
A ドライブでは PIP コマンドや UNTAR による連続したファイル生成は問題無いようなので、A ドライブは PIP や UNTAR を使った複数ファイル書込みでのバックアップもしくは巨大な1個の TAR ファイルの置き場所として使用してください。
}
★追記 2023/10/17 {
Aドライブの問題に対処したファイルをリリースしました。BOOTHのページからEborsyEEP_V102をダウンロードし、その中にあるINIEEPXMを起動してください。起動後に'C'を入力すると"Wrote CP/M to PROM"と表示され CP/M だけが修正したものに書き換えられます。その後は上記3項の手順で CP/M を起動してください。
}
- ポケコンにシリアル通信インターフェースを装着し、パソコンとケーブル接続する(通院速度は 19200bps)。
- CP/M 上でのポケコンの既存ソフトの起動
スタートアドレスが 100H のポケコンの既存のソフトを下記の操作で CP/M 上から起動できます。本 CP/M のドライブ容量は1ドライブにつき約 2M バイトなので既存アプリの保存場所としては無尽蔵と言えるくらいの大きさです^^
- 既存ソフトのヘキサファイル(ファイル名の拡張子は *.HEX にする)を上述の方法でパソコンからポケコンの CP/M 環境へ転送する。
- 添付の LOAD コマンドでバイナリファイルに変換する。
例:LOAD HOGE
- 変換したバイナリファイル(*.com)を *.850 にリネームする。
例:REN HOGE.850=HOGE.COM
- 添付の run コマンドで起動する。
例:RUN HOGE
下記は life.hex を転送後、起動するまでの操作例です。
A>LOAD LIFE
FIRST ADDRESS 0100
LAST ADDRESS 134A
BYTES READ 124B
RECORDS WRITTEN 25
A>REN LIFE.850=LIFE.COM
A>RUN LIFE
- 既存ソフトのヘキサファイル(ファイル名の拡張子は *.HEX にする)を上述の方法でパソコンからポケコンの CP/M 環境へ転送する。
- CP/M でのキー操作
CP/M を操作する際に使用する各キーは次の操作で入力てきます。
^C ⇒ SHIFT + C
^X ⇒ SHIFT + X
^Z ⇒ SHIFT + Z
^S ⇒ SHIFT + S
また、本 CP/M では 80 x 25 表示の仮想画面の一部を LCD に表示(縮小フォントにより 36 x 8 表示)しています。カーソルキーを操作することで LCD の表示範囲を変更できます。この表示範囲の変更操作は CP/M のアプリケーションが動作中の時でもキーセンスさえしていれば可能です。
- パソコンの端末化
ポケコンの表示画面は狭いので次のコマンドによりシリアル接続したパソコンを端末として使用することで操作性が向上します。
A>STAT CON:=TTY:
パソコン側で次のコマンドを実行することでパソコン端末を切断し、ポケコン側からの操作に戻ります。
A>stat con:=crt:
パソコンとのシリアル通信はポケコン側でソフトウェアシリアル方式により、19200bps を実現している為、キーセンスができないという制限があります。
代替えとしてポケコン側のキー押下でキー入力有と判断するような実装にしていますので ^S で表示を一時停止したい場合はポケコン側のキーを押した後にパソコン側で ^S キーを押して下さい。
- CP/M アプリからの IOCS コール方法
CP/M は増設ボード内のメモリ上で動作している為、CP/M 側のアプリからポケコンの ROM 内にある IOCS 処理を従来の方法でコールすることはできません。
このため、ブリッジ処理を使うことで CP/M アプリから IOCS コールを実現できるようにしています。手順は次の通りです。
- 0BE03H にコール先のアドレスを設定する。
- コール時に必要な情報をレジスタに設定する。
- 0BE06H をコールする。
- 0BE03H にコール先のアドレスを設定する。
- おまけ
二値動画再生ソフト(DISP.COM)用の BadApple!! 動画ファイルをここからダウンロードできます。
再生方法 : DISP BADAPPLE.BIN
- CP/M が起動しない場合の確認項目 ★追記 2023/10/11
- EborsyEEPのハードチェック
ハードチェックプログラム(EBOCHK_V001.zip)をダウンロードし、実行してみてください。下記のように表示され、約15秒間隔で数字がインクリメントされていきます。「ON」キーを押し続けるとcheckの数字が変化するタイミングでチェックプログラムが終了します。
<< EborsyEEP check >>
EEPROM : EF 40 17
Bank check : 001
- 「EEPROM」が FF FF FF と表示される場合は、EEPROM を認識できない状態です
- 追加で複数の4桁のアドレス情報が表示される場合は、メモリチェックでNGが発生している状態です
- 対処案
- EEPROM エラーやメモリエラーが検出された場合
ポケコンのシステムバス端子とコネクタ間で接触不良が発生している可能性が考えられます。ポケコンの電源を切った状態で EborsyEEP を抜き、再度しっかり装着してチェックプログラムを実行してください。
ポケコンのシステムバス端子部のケース内面上側にはアルミ箔が貼られていて、剥がれ掛けているとその厚みの為、うまく動作しない場合があります。
★追記 2024/09/28
コネクタ部分で接触不良が発生している場合はポケコン側の基板のカードエッジ部分を接点復活スプレーを吹き着けたキムワイプ等で擦ると接触不良が解消する可能性が高いです(経験済み) - エラーが検出されない場合
ポケコンから EborsyEEP が正常に認識されています。ポケコンを一度リセットして上記の設定作業を再度試みてください。
- EEPROM エラーやメモリエラーが検出された場合
- EborsyEEPのハードチェック
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
こんにちは. はじめまして.
DropHx, EborsyEEPはPC-G850Sでも動作しました.
コネクタの形状もPC-G850Vと同じで無理なく装着することができました.
by まるひろ (2023-10-29 23:02)
PC-G850Sで動作したとの貴重な情報を頂きありがとうございます。
G850SはCPUクロックが約9MHzにアップされているのでソフトウェアシリアル通信の部分で調整が必要と考えていましたが予想に反して動作したということですね^^
Twitter(X)のTL情報ではG850VSも動作しているようなのでS系でも動作するようですね
by skyriver (2023-10-29 23:22)