プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

PC-G850VSをエミュレータで使う


SHARPのポケコンPC-G850VSをPC上のエミュレータで使うためのTIPS集です。


なお、エミュレータを使用するにはポケコンのROMを実機からPCに転送する必要がありますので、ご注意を。

エミュレータの使い方(Windows版)

まずはエミュレータをダウンロード


ダウンロードは以下のサイトより:


SHARP PC-G850/G815/E200エミュレータ g800


Windowsであれば"g800 win32バイナリ"をダウンロード。解凍して適当なディレクトリに置いておく。


BASIC・アセンブラ・モニタ・Cなどを使うにはポケコンROMの取得が必要になるので、"copyrom.zip"もダウンロードしておくとよい。

ポケコンROMの取得


マシン語プログラムを実行するだけなら、このステップは不要。


上記サイトからダウンロードした"copyrom.zip"を解凍し、manual.txtを読むと手順が書いてあるので、手順に従い、ROMイメージをPCに転送する。


PC-G850VSの場合、ROM BANKは22ページ必要。よって、PC側のファイルはbase.txtに加え、rom00.txt〜rom15.txtとなるはず。


なお、事前にPCとPC-G850VS間で通信が可能な状態にしておく必要がある。ケーブルの入手と転送方法は以下を参照。


PC-G850VSとPCを接続する - yasuhoの隠れ家

g800configの編集


上記で解凍したエミュレータに含まれる"g800config"を編集する。


「エミュレートされるマシン」は"g850"を選ぶ。

# エミュレートされるマシン
machine g850


「ROMイメージをダウンロードしたディレクトリ」のパスを書く。yasuhoの場合、g800.exeのあるディレクトリに"g850vsrom"というディレクトリを作り、そこにROMイメージを置いた。

# ROMイメージのあるディレクトリ
rom_dir g850vsrom


「ソフトウェアキーを使うか」に"y"を設定。なくてもよいが、あると便利。

# ソフトウェアキーを使うか
software_key y

エミュレータの実行


g800.exeを実行。うまく行けば、PC上に以下の画面が出るはず。

エミュレータを使う上でのTIPS


詳しくはmanual.txtに書いてあるが、ここではいくつかのTIPSを書いておく。

リセット方法


ポケコンをリセットするにはF8キーを押す。以下の画面が出るので、Yキーを押すと:


リセットされる:


なお、RAMファイルは"g800config"の"ram_path"で指定したファイルに保存される。

ファイルの読み込みと実行


BASICプログラム等をエミュレータに読み込むにはg800.exeを以下のパラメータで実行する。

g800 -sio_in={ファイル名}


エミュレータが起動したら"TEXT"ボタンを押し:


さらに"S"キーを押して:


"L"キーを押すとロードが開始される(ちょっと時間がかかる)


ロードが終わったら再び"TEXT"ボタンを押し、"B"キーを押す:


さらに"B"キーを押すと、ロードされたTEXTがBASICプログラムに変換される。


"BASIC"ボタンを押してBASICモードに戻り、"RUN"と入力してエンターを押せば、プログラムを実行。


拙作"Star Trek for PC-G850VS"を実行してみました。:)

キーボード入力について


"とか$などの記号は入力できないみたいです。なので、エミュレータで直接BASICなどのプログラムを入力するのは、ちょっとムリっぽい・・・


どなたか方法を知っている方がいましたら、教えていただけると嬉しいです。


[4/14/2010: Update]


作者のまるひろさん直々に教えていただきました。以下のキーコンビネーションで入力可能です。

文字 キーコンビネーション
! Shift+Q
" Shift+W
# Shift+E
$ Shift+R
% Shift+T
& Shift+Y
' Shift+U
Shift+I
> Shift+O
@ Shift+P
[ Shift+A
] Shift+S
{ Shift+D
} Shift+F
\ Shift+G
| Shift+H
~ Shift+J
_ Shift+K
= Shift+L
? Shift+,

やはりPCで実行できるのは


いいですね。ポケコンを使わなくてもプログラムがデバッグできるし。効率が全然違います。


このような素晴らしいツールを提供していただいたまるひろさんに、感謝いたします。

Star Trek for PC-G850VS - v1.0


マイコン黎明期の傑作ゲームスター・トレックを、PC-G850VSに移植しました。



ダウンロードは以下より:


http://www.geocities.jp/yasuho68k/g850/index.html#startrek


ベースとなったStar Trekこちら

基本的には移植なんですけど


ポケコン版は画面サイズなどの制約から、以下のアレンジをしています。

  • オリジナル8x8に対して、6x6の宇宙空間
  • 上記に伴うゲームバランスの調整
  • 座標系の変更(オリジナルは上0度から時計回りに角度上昇に対し、PC-G850VS版は右0度から反時計回りに角度上昇)
  • Sコマンドはない(小宇宙はメイン画面上に表示されている)


大部分は新たに書き直してます。特に角度計算の部分はフツウに三角関数ですが、ポケコンなんで十分速いですね。


最初は6x5ドットのフォントとか用意して8x8を実現しようとか考えてましたが、最終的には24x6の画面にキャラクタベースで。8x8に比べて狭いけど、あの雰囲気は再現できたと思っております。いかがでしょうか!?

開発メモとか

ポケコンにしては規模が大きかったので


当初予定していた期間よりずいぶん時間がかかってしまいました。大体一ヶ月ぐらいかな。電車の中でプログラミングするには、このぐらいの規模が限界かも。これより大きいと、たぶん面倒になっちゃう。

LINE10にDIM SM$(5,5)*1という不思議な行がありますが


これは文字列変数の文字数を制限するものです。*1と書くと、変数あたりの文字数は1になります。


PC-G850VSのBASICでは文字列は無条件に16バイトの領域が取られてしまいます。なので、文字列配列は文字数を制限することで使用メモリ量を変えることが出来るようになっています。このプログラムではSM$は1文字しかあり得ないので、1に設定。逆に16文字の制限を増やすことも可能。


ポケコンガベージコレクションは荷が重いので、このような構造になっているのでしょうね。

次回作は


どうしようかな。いよいよ機械語に手を出そうかしら。:)

Deep Sea for PC-G850VS - v0.1


今回もVX-4版の移植です。とはいえ、リライトしてますけど。



ダウンロードは以下から。


http://www.geocities.jp/yasuho68k/g850/index.html#deepsea

やっぱりグラフィックスが使えると雰囲気が出るなあ


何となくそれっぽいでしょ。:)


VX-4もグラフィックス出来ないわけじゃないんですが、やっぱり標準で付いていないと、電車内のプログラミングにはつらいっす。

開発メモとか


GPRINT命令は便利なのですけど、やっぱり縦ドット固定なのは制限きついですね。やってみれば分かるように、潜水艦と弾が重なって見えない時が多々あります。まあそれほど苦にならないのでこのままになってますが。


やっぱり任意の位置に任意のドットを書けるアセンブラルーチンを作らないと。


PC-G850VSのBASICは高速なので、オールBASICでもあまり問題になりません。さすが8Mhz. とはいえ、BASICではこのへんが限界かな。

次回作は


考え中。というか、まずは4ビットマイコンかな。:)

RPN calculator for PC-G850VS - v0.1


PC-G850VSで使うRPN電卓です。10<->16進変換機能つき。



ダウンロードはこちらから。


http://www.geocities.jp/yasuho68k/

開発メモとか


画面を見れば分かるように、コンセプトはVX-4版と同じなのですが、移植ではなくリライトしてます。そのままでは面白くないので、いくつかPC-G850VS版ならではの機能を追加:

  • 浮動小数点のサポート
  • 10<->16進のダイレクト変換(数値入力と同時に一番下のラインへ変換される)


PC-G850VSでは32bit値*1の10<->16進変換が出来るので、VX-4より楽でした。速度の面でも申し分なし。これでHP-16Cが壊れても大丈夫かな。:)

当分は


VX-4からの移植が多いと思います。いろいろ試したいことはあるのですが、それはおいおいと。:)

*1:正確には-9999999999〜9999999999

デジタルインベーダー for PC-G850VS - v0.1


まずは練習ということで、以前作ったデジタルインベーダー for VX-4を移植してみました。



ダウンロードは以下のサイトから。


http://www.geocities.jp/yasuho68k/


ちなみに操作は"."で数字変更、"="がファイアです。

一部を書きなおしたものの


ほぼそのまま移植できました。さすがBASIC.


キャラクタの再定義が出来なかったので、3本線はカタカナの「ミ」で代用しました。GPRINTで出来るんだろうけど、まあいいか。:)


さすがにPC-G850VSは速いので、こんなしょぼいアプリでも十分実用的な速度になっています。てか、もっとがんばれ>私

標準のBASE-n電卓が好みじゃないので


さっそく自分好みの電卓を作ってます。もちろんRPNで(笑)

PC-G850VSとPCを接続する


高松製作所さんからUSBケーブルを購入し、PCと通信が出来るようになりました。



通信にはくりこうさんのホームページを参考にさせていただきました。

PC-G850VS インプレッション


すでにウェブにはいっぱいあるような気がしますが、SHARPのポケコンPC-G850VSを使ってみた感想を書いてみました。なお、文中VX-4とあるのはカシオのポケコンVX-4を示しています。

PC-G850VS インプレッション

全体の印象


寸法は196x95x20と、少し高さがあるため、ポケットに入れるには難しい。ただ、重量は260gと大きさの割に軽いので、ずっしりとした感じはない。ちなみにVX-4は寸法196.6x78x22.6・重量327g。


キーボードは適度にストロークもあり、タッチはいい。押したつもりで押せなかったということもなく、好感触。


液晶は見やすく、キャラクタベースであればちらつきもほとんどない。24桁x6行に5x7ドットのキャラクタが表示可能で、144x48ドットのフルグラフィックススクリーンとして使うことも可能。


メモリは32KB RAMが内蔵されていて、ファイル操作も可能なため、いろいろと試してみるには十分な印象。

バッテリー持続時間


消費電力は0.2Wと記載されているが、どの程度持つかは不明。ただ、消費電力0.08WのVX-4が今年の1月に電池を交換したまま現在まで使えている(それなりに利用)ことを考えると、1-2ヶ月は持つのではないかと予想。


まあポケコンなので、すぐに交換ということはないはず。:)

速度


速度はポケコンとしては申し分ない。感覚的には昔のマイコンの速度ぐらいだろうか。VX-4ではストレスを感じたデジタルインベーダーを移植してみたが、ストレスなく遊べた。もっとも、これはyasuhoの技術力不足から来る差であることは明白だけど(笑)

内蔵ソフト


ポケコンは元が電卓なので、計算機能は充実している。機能も速度も一般の関数電卓と同等かそれ以上。


プログラミング言語はBASICに加えてC,CASL,PICが利用できる。さらに内蔵CPUであるZ-80のアセンブラもついていて、機械語によるプログラミングも容易になっている。


TEXTモードはテキスト入力に利用できる。BASICのエディタを使っているようで、入力には行番号の必要だが。


内蔵RAMを使ったファイルシステムも標準装備している。あらかじめ領域の予約が必要だが、プログラムで扱うデータファイルとしても利用可能。


BASICからはMONと入力することでモニタモードに移行できる。メモリの参照や変更はもちろんブレークポイントも設定できてデバッグには便利そう。


BASE-nモードを選ぶといわゆる16進電卓が使えるが、これはROM内蔵のBASICプログラムで出来ている。さらに特定のファイル名で保存することで、別のBASICプログラムに変更することも可能なのは嬉しい。

BASIC


文法はいわゆるマイクロソフトBASICに近い。昔マイコンをさわった人であれば違和感なく使えると思う。スクリーンエディタも使いやすく、ラベルや構造化ステートメントなどの使用により行番号を意識せずプログラミングが出来て快適。これで文字列サーチがあれば完璧だが、そこまで求めるのはポケコンでは酷だろうか。


PSET/PRESETなどはもちろん、GPRINTによりグラフィックパターンをまとめて転送することも可能。


ちょっと特殊なのは変数の扱い。A-Zまでの一文字だけの変数は、数値も文字列も区別されない。例えば

A=0
A$=""

とした場合、数値変数であるAはA$に置き換えられてしまう。これは性能を優先したためと思われるが、プログラミングでは注意が必要。


その他便利と思った機能:

  • ラベルが使える(例:GOSUB *LABEL)
  • IF~THEN~ELSE~ENDIF / REPEAT~UNTIL / WHILE~WEND / SWITCH~CASEなど、いわゆる構造化プログラミング用ステートメントが使える
  • TRON/TROFFはカーソルキーによるステップ動作が可能で、非常に使いやすい
C/CASL/PIC


未評価。

しばらく使ってみた印象は


ポケコンとしてはかなり完成されているという印象ですね。とにかくソフトウェアを作る機能に特化するとこうなるんだろうか。


思えばyasuhoが初めて買ったコンピュータはSHARPのPC-1211というポケコンでした。発売は1980年らしいので、もう30年ぐらい前なんですね。当時のマイコンは全て絶滅したのに、未だに新製品が発売されているポケコンって、すごいと思う。


誰もが使って楽しいコンピュータじゃないけど、いつでもどこでもプログラミングしていたいアナタならきっと気にいるよ。:)