P6月間企画(その9)
戦士のカートリッジmk2(新ベルーガカートリッジ)のFD版ライターをリリースします。
belugawriter.zip
説明などは、同梱のドキュメントを参照して下さい。
!!!!!!!!!注意事項!!!!!!!!!
すべての作業に関して、自己責任で行って下さい。万一、ここの記載が誤っていても、当方では責任は負いません。
カートリッジ内のROMにデータを書き込む際、途中で電源を切ったり、リセットをしたりしないで下さい。
最悪、書き込まれているデータ(ベルーガプログラムを含む)が消去される場合があります。
通常使用時は、JP1をショートしないで下さい。最悪、暴走などでFLASH-ROMの内容が消去される可能性があります。
ベルーガが書き込まれている領域(セクタ#0、#1)は選択できません。間違って消去などしないためです。
このプログラムでは、MegaFlashWriterとは違い、セクタ単位で書き込みます。
ブロック単位で書き込めないので注意して下さい。
また、どこにデータが書き込まれているのかを表示していません。
そのため、前のデータを誤って消去/上書きをする事がありますので、十分注意して下さい。
!!!!!!!!!!!!!!!!!!!!!!
2018年06月09日
2018年06月01日
NandemoP6FD(ver1リリース)
P6月間なので...(その1)
NandemoP6FD(Ver1.0) をリリースします。
nandemop6fd.zip
○これは何をするもの?
PC-6001用(初代用)のテープイメージファイルをそのままフロッピーから起動させるように変換するツールです。
Tiny野郎さんが公開されている、「なんでもメガROM」のFD版だと思ってください。
コマンドなども同じものが使えるようにしています。
詳細はドキュメントを参照して下さい。
市販ソフトではディスク化できない事がありますが、PiOとかLoginとかから自分で打ち込んだソフトでは威力を発揮します。
メモリでディスク化が難しいソフト(例えば、Quest)などもディスク化できますよ〜
突貫で作ったので、バグがあれば知らせて下さい。
似たようなものを他の誰かが作ってそうですが(^^;)...
NandemoP6FD(Ver1.0) をリリースします。
nandemop6fd.zip
○これは何をするもの?
PC-6001用(初代用)のテープイメージファイルをそのままフロッピーから起動させるように変換するツールです。
Tiny野郎さんが公開されている、「なんでもメガROM」のFD版だと思ってください。
コマンドなども同じものが使えるようにしています。
詳細はドキュメントを参照して下さい。
市販ソフトではディスク化できない事がありますが、PiOとかLoginとかから自分で打ち込んだソフトでは威力を発揮します。
メモリでディスク化が難しいソフト(例えば、Quest)などもディスク化できますよ〜
突貫で作ったので、バグがあれば知らせて下さい。
似たようなものを他の誰かが作ってそうですが(^^;)...
2012年12月02日
マウスを動かす(3)
初代P6 で描画期間が検出できるようになったので、マウスのサンプルプログラムも移植しました。
PAGE2 です。拡張RAMはどちらでも構いません。mk2以降なら MODE1/2 です。
mouse2_p6.zip
起動すると画面にカーソルが出て、マウスで移動させる事ができます。
左右のトリガを両方押すと、終了します。
先にアップしたマウスのサンプルプログラムから、垂直同期の検出を変更したのと、スクリーンの幅を高さを変えただけです。
マウスに対してのアクセスの開始は一定間隔でなくてもいいので、いろいろとプログラムが組めそうではあります。マウスでパッドを移動するブロック崩しとか...
PAGE2 です。拡張RAMはどちらでも構いません。mk2以降なら MODE1/2 です。
mouse2_p6.zip
起動すると画面にカーソルが出て、マウスで移動させる事ができます。
左右のトリガを両方押すと、終了します。
先にアップしたマウスのサンプルプログラムから、垂直同期の検出を変更したのと、スクリーンの幅を高さを変えただけです。
マウスに対してのアクセスの開始は一定間隔でなくてもいいので、いろいろとプログラムが組めそうではあります。マウスでパッドを移動するブロック崩しとか...
2012年11月06日
2012年10月22日
RS232Cボードを動かす(3)の追記
誤解(?)を受ける前に訂正。
> ただ、送信側は 1/1 を使っても特に問題がありません。
>
> ちなみに試した所、307200bps(4800×64)まで、正常に送信できました。ただ、フロー制御を効かせているので、データが途切れてる可能性はあります。
送信の処理に、CPUクロックで100クロック(大体10命令)で済むとして、かかる時間は
100×(1/4MHz)=25μS
この処理が1秒間に出来る回数は
1/(25μS) = 40K 回(40000回)
ボーレートに直すと
40K × 8 bit = 320 Kbps
です。
今のプログラムでは、バスリクエストをそのままにしているので、307200bps(307Kbps)は出ていないですね。
OUT &H93,2 をした状態で送信しないと、ちゃんと速度が出ていない事になります。
> ただ、送信側は 1/1 を使っても特に問題がありません。
>
> ちなみに試した所、307200bps(4800×64)まで、正常に送信できました。ただ、フロー制御を効かせているので、データが途切れてる可能性はあります。
送信の処理に、CPUクロックで100クロック(大体10命令)で済むとして、かかる時間は
100×(1/4MHz)=25μS
この処理が1秒間に出来る回数は
1/(25μS) = 40K 回(40000回)
ボーレートに直すと
40K × 8 bit = 320 Kbps
です。
今のプログラムでは、バスリクエストをそのままにしているので、307200bps(307Kbps)は出ていないですね。
OUT &H93,2 をした状態で送信しないと、ちゃんと速度が出ていない事になります。
RS232Cボードを動かす(3)
先にアップしたプログラムの一部を改定しました。
rs232c_2.zip
パラメータ設定で、ボーレート倍率に x64 を追加しました。
これは、8251 の分周する回路の選択で、1/16、1/64、以外に 1/1 を選べるようにしたものです。
これを使うと、RS232Cのボード上の速度を600bps にして、x64 にすると、38400bps になるはずなんですが...
1/1 のクロックを使ってデータを受信した場合、受信データ化けを起こします(データ落ちはない)。
マニュアルではこの事には特に触れていませんが、よく読んでみるとデータのサンプリングタイミングが記載されており、これがこのクロックの立ち上がりになります。
分周クロックの場合、スタートビットの立ち下がりから、データのサンプリングタイミングを決定できますが、分周しない場合は、外部から入力されるクロックをそのまま使うようです。
そのため、データとのタイミング関係が分からない、外部のクロックの立ち上がりで取り込むため、データ化けが起こると考えられます。
ただ、送信側は 1/1 を使っても特に問題がありません。
ちなみに試した所、307200bps(4800×64)まで、正常に送信できました。ただ、フロー制御を効かせているので、データが途切れてる可能性はあります。
ボーレート設定が面倒なので、ソフトから制御できるようにしようかな...
rs232c_2.zip
パラメータ設定で、ボーレート倍率に x64 を追加しました。
これは、8251 の分周する回路の選択で、1/16、1/64、以外に 1/1 を選べるようにしたものです。
これを使うと、RS232Cのボード上の速度を600bps にして、x64 にすると、38400bps になるはずなんですが...
1/1 のクロックを使ってデータを受信した場合、受信データ化けを起こします(データ落ちはない)。
マニュアルではこの事には特に触れていませんが、よく読んでみるとデータのサンプリングタイミングが記載されており、これがこのクロックの立ち上がりになります。
分周クロックの場合、スタートビットの立ち下がりから、データのサンプリングタイミングを決定できますが、分周しない場合は、外部から入力されるクロックをそのまま使うようです。
そのため、データとのタイミング関係が分からない、外部のクロックの立ち上がりで取り込むため、データ化けが起こると考えられます。
ただ、送信側は 1/1 を使っても特に問題がありません。
ちなみに試した所、307200bps(4800×64)まで、正常に送信できました。ただ、フロー制御を効かせているので、データが途切れてる可能性はあります。
ボーレート設定が面倒なので、ソフトから制御できるようにしようかな...
2012年10月21日
RS232Cボードを動かす(2)
結局、BASIC では、サブCPUの割り込みを使う方法以外は使えないので、プログラムを組んでみました。
一応、今回作成したボードでは 38400bps、正規ボードでも 19200bps までデータ転送できるはずです。
rs232c.zip
プログラムは手抜き箇所があります。送受信時は、指定したバイト数になるまで制御が返ってきません。
○使い方
mk2以降で、MODE5、PAGE4 にして下さい。本来はmk2でなくてもいいのですが、大量のデータの受信テストにするためにmk2を使っています。
Windows 側は、何らかのターミナルプログラムを使って下さい。
私は、MORIYAさんの所で紹介されていた、acknowrich を使っています。
http://www.vector.co.jp/soft/win95/prog/se089304.html
http://p6ers.net/mm/pc-6001/dev/joy2rs232c/
リバースケーブルでWindowsパソコンと繋いだら、acknowrich を立ち上げて下さい。その後、P6側でプログラムをRUNさせます。
すると、acknowrich の下のステータスバーの「CTS」「DSR」が点いているはずです。点いていない場合はリバースケーブルがおかしいか、RS-232Cボードがおかしいと思われます。
また、Windows側 にRS-232Cポートがなくて、USB-RS232C変換コネクタを使っている場合は、変換コネクタが悪い可能性があるので注意が必要です(USB-RS232C変換はいろいろとトラブルが多いようです...)。
・パラメータ設定
立ち上げたら、まずP6側で p を押して、パラメータを設定します。
設定できるパラメータは次の通りです。
・ストップビット 1bit / 1.5bit / 2bit
・パリティ なし / 奇数 / 偶数
・データ長 5bit / 6bit / 7bit / 8bit
・ボーレート倍率 通常 / 4倍
それぞれ [ ] で囲まれた文字を押して下さい。
BASIC のデフォルトは、ストップビット 1bit、パリティなし、データ長 8bit、ボーレート倍率 通常、です。
とりあえず、デフォルトの通りに各パラメータを設定して、さらに RS-232Cボード上のジャンパを4800bps にして下さい。
また、acknowrich の通信設定もこれに合わせるようにして下さい。
さらに、acknowrich のフロー制御の設定も行って下さい。設定−デバイス設定で出てくるウインドウの、通信パラメータタブにある、フロー制御の項目で設定します。
CTS、DSR、RTS、DTR、にチェックを入れて下さい。
・データ送信
P6側 で s を押して、データを送信します。
s を押すと、開始アドレス、送信サイズを聞いてきます。入力はhex です。
例えば、開始アドレス=0、送信サイズ=10 とすると、ROM領域のアドレス0x0000〜0x000F までが、acknowrich のコンソールに表示されます。
バイナリデータなので、acknowrich のメニューから、編集−BINARYモードを選んでバイナリにしておくと、画面に16進で表示されます。
また、ファイルの転送も可能です。acknowrich のメニューから、編集−ファイル転送を選び、新しく出てきたウインドウの「受信」を選びます。すると、受信したファイルがどこに格納するかを聞いてきますので、適当に答えます。
次に、P6側で s を押して、開始アドレス、送信サイズを入れると、ファイルが転送されます。
例えば、開始アドレス=0、送信サイズ=8000 とすると、mk2のROMデータが転送されます。
手持ちのROMファイルと比較してみて下さい。一致しない場合は、どこかがおかしいと思われます。
・データ受信
P6側 で r を押して、データを送信します。
s を押すと、開始アドレス、送信サイズを聞いてきます。入力はhex です。入力が終わると、ページ4が表示されます。
その後に、Windows側の acknowrich のメニューから、編集−ファイル転送を選び、新しく出てきたウインドウの「送信」を選びます。すると、送信するファイルを聞いてきますので、適当に答えます。
開始アドレス=0、送信サイズ=4000 とすると、ページ4の画面にデータが表示されますので、Windows側で画面データを作って、P6に簡単に表示させるができます。
パラメータ設定にある「ボーレート倍率」ですが、これは、8251の分周比を変更するオプションです。正規のRS-232Cボードでは、このパラメータが 1/64 で使うようになっています。
例えば4800bpsの場合、RS-232Cのボード上で、P6から入力される8MHz クロックを26分周して、8251に入力しています。
8251 はさらにそのクロックを1/64 して、送受信クロック(4800Hz)を作っています。
で、この 1/64 の分周比が、1/16 にする事も可能です。この設定をすると、送受信クロックが4倍になるため、転送速度も4倍になります。
ですので、「ボーレート倍率」を4倍に設定した場合は、単純にボーレートが4倍になります。ジャンパで4800bps にした場合は、19200bps 、9600bps の場合は、38400bps でデータを転送できます。
ちなみに、私の環境では、問題なく38400bps の送信、受信が出来ました。1画面分が数秒の速度です。
一応、今回作成したボードでは 38400bps、正規ボードでも 19200bps までデータ転送できるはずです。
rs232c.zip
プログラムは手抜き箇所があります。送受信時は、指定したバイト数になるまで制御が返ってきません。
○使い方
mk2以降で、MODE5、PAGE4 にして下さい。本来はmk2でなくてもいいのですが、大量のデータの受信テストにするためにmk2を使っています。
Windows 側は、何らかのターミナルプログラムを使って下さい。
私は、MORIYAさんの所で紹介されていた、acknowrich を使っています。
http://www.vector.co.jp/soft/win95/prog/se089304.html
http://p6ers.net/mm/pc-6001/dev/joy2rs232c/
リバースケーブルでWindowsパソコンと繋いだら、acknowrich を立ち上げて下さい。その後、P6側でプログラムをRUNさせます。
すると、acknowrich の下のステータスバーの「CTS」「DSR」が点いているはずです。点いていない場合はリバースケーブルがおかしいか、RS-232Cボードがおかしいと思われます。
また、Windows側 にRS-232Cポートがなくて、USB-RS232C変換コネクタを使っている場合は、変換コネクタが悪い可能性があるので注意が必要です(USB-RS232C変換はいろいろとトラブルが多いようです...)。
・パラメータ設定
立ち上げたら、まずP6側で p を押して、パラメータを設定します。
設定できるパラメータは次の通りです。
・ストップビット 1bit / 1.5bit / 2bit
・パリティ なし / 奇数 / 偶数
・データ長 5bit / 6bit / 7bit / 8bit
・ボーレート倍率 通常 / 4倍
それぞれ [ ] で囲まれた文字を押して下さい。
BASIC のデフォルトは、ストップビット 1bit、パリティなし、データ長 8bit、ボーレート倍率 通常、です。
とりあえず、デフォルトの通りに各パラメータを設定して、さらに RS-232Cボード上のジャンパを4800bps にして下さい。
また、acknowrich の通信設定もこれに合わせるようにして下さい。
さらに、acknowrich のフロー制御の設定も行って下さい。設定−デバイス設定で出てくるウインドウの、通信パラメータタブにある、フロー制御の項目で設定します。
CTS、DSR、RTS、DTR、にチェックを入れて下さい。
・データ送信
P6側 で s を押して、データを送信します。
s を押すと、開始アドレス、送信サイズを聞いてきます。入力はhex です。
例えば、開始アドレス=0、送信サイズ=10 とすると、ROM領域のアドレス0x0000〜0x000F までが、acknowrich のコンソールに表示されます。
バイナリデータなので、acknowrich のメニューから、編集−BINARYモードを選んでバイナリにしておくと、画面に16進で表示されます。
また、ファイルの転送も可能です。acknowrich のメニューから、編集−ファイル転送を選び、新しく出てきたウインドウの「受信」を選びます。すると、受信したファイルがどこに格納するかを聞いてきますので、適当に答えます。
次に、P6側で s を押して、開始アドレス、送信サイズを入れると、ファイルが転送されます。
例えば、開始アドレス=0、送信サイズ=8000 とすると、mk2のROMデータが転送されます。
手持ちのROMファイルと比較してみて下さい。一致しない場合は、どこかがおかしいと思われます。
・データ受信
P6側 で r を押して、データを送信します。
s を押すと、開始アドレス、送信サイズを聞いてきます。入力はhex です。入力が終わると、ページ4が表示されます。
その後に、Windows側の acknowrich のメニューから、編集−ファイル転送を選び、新しく出てきたウインドウの「送信」を選びます。すると、送信するファイルを聞いてきますので、適当に答えます。
開始アドレス=0、送信サイズ=4000 とすると、ページ4の画面にデータが表示されますので、Windows側で画面データを作って、P6に簡単に表示させるができます。
パラメータ設定にある「ボーレート倍率」ですが、これは、8251の分周比を変更するオプションです。正規のRS-232Cボードでは、このパラメータが 1/64 で使うようになっています。
例えば4800bpsの場合、RS-232Cのボード上で、P6から入力される8MHz クロックを26分周して、8251に入力しています。
8251 はさらにそのクロックを1/64 して、送受信クロック(4800Hz)を作っています。
で、この 1/64 の分周比が、1/16 にする事も可能です。この設定をすると、送受信クロックが4倍になるため、転送速度も4倍になります。
ですので、「ボーレート倍率」を4倍に設定した場合は、単純にボーレートが4倍になります。ジャンパで4800bps にした場合は、19200bps 、9600bps の場合は、38400bps でデータを転送できます。
ちなみに、私の環境では、問題なく38400bps の送信、受信が出来ました。1画面分が数秒の速度です。
2012年05月24日
簡易BASICチェックツール
某所のブログで、BASICチェックツールの話が出ていました。
完成したらアップして下さい〜、と人にお願いするだけなのもアレなので、自分で作ったものもアップしておきます。
bascheck.zip
gawk が使える環境が必要です。
完成したらアップして下さい〜、と人にお願いするだけなのもアレなので、自分で作ったものもアップしておきます。
bascheck.zip
gawk が使える環境が必要です。

