プログラムの作成や保存にパソコンを使う事になりますが、
実行を確認するためにわざわざポケコンに転送するのは面倒です。
そこで、エミュレータを使うのがおすすめです。
PC-G シリーズ・E200 向けのエミュレータ g800 が
まるひろさんより Verison 0 内で公開されています。
このページでは g800 の導入と操作方法を説明しています。
SHARP PC-G850/G815/E200エミュレータ g800
最新版では ROM イメージがなくても互換 BASIC が動作し、
マシン語モニタも備わっているので、マシン御も動作できます。
Windows 実行パッケージ、
およびソースは Version 0 内で公開されています。
SHARP PC-G850/G815/E200エミュレータ g800
ソースは gcc 向けで記載され、Windows 以外の OS でもビルド可能です。
SDL ライブラリ・開発ライブラリ が必要です。
g800 では 0.9.9 まで SDL 1.2、0.10.0 より SDL 2.0 を採用しています。
(0.10.0 以降でもソース上では SDL 1.2 でもビルドできるようになっています)
SDL | Simple DirectMedia Layer
Version 0 から得られるソースからビルドする事も可能です。
libsdl の開発ライブラリを入れます。
SDL 2.0 は 0.10.0 からの対応です。0.9.9 は SDL 1.2 となります。
0.10.0 以降で SDL 1.2 を使用するする事も可能です。
Makefile の SDL 2.0 部分をコメントにし、SDL 1.2 部分のコメントを外します。
macOS からのビルドは下記に記載があります。
実際にはソースの編集は行わず、make でビルド可能です。
PC-G850V のエミュレータ | KOYAMA Yoshiaki のブログ
Yosemite(OS X 10.10) では、そのまま make すると
「clang: error: unknown argument: '-finline-limit-20000'」と表示され失敗します。
Makefile にある SDL 2.0 の -finline-limit-20000 を削除すると make が通ります。
g800 本体だけでもマシン語実行、
最新版では BASIC エミュレータも搭載しているため、
BASIC もある程度が可能ですが、
BASIC の完全な実行や C 言語等を使用する場合は
ポケコン本体のイメージが必要です。
ダウンロードページの本体下にある
「PC-G800のROMをエミュレータで使うためのツール」をダウンロードし、
解凍したファイル manual.txt の手順にある通りに行って下さい。
PC-G850 シリーズは copyg850.hex を、
それ以外の PC-G シリーズおよび PC-E200 は copye200.hex を使用します。
PC-G850V・PC-G850VS の場合は以下の 23 ファイルになります。
base.txt
rom00.txt rom01.txt rom02.txt rom03.txt rom04.txt rom05.txt rom06.txt rom07.txt
rom08.txt rom09.txt rom0a.txt rom0b.txt rom0c.txt rom0d.txt rom0e.txt rom0f.txt
rom10.txt rom11.txt rom12.txt rom13.txt rom14.txt rom15.txt
機種によって runXX.txt のファイル数が変わってきます。
これらのファイルをひとまとめにしてフォルダに置いておきます。
テキストファイルで g800config を編集します。
# エミュレートされるマシン
machine g850
# ROMイメージのあるディレクトリ
rom_dir ~/g800
# RAMファイルパス名
ram_path ~/g800user.txt
rom_dir はイメージを置いたパスです。ram_path は g800 が生成します。
~ はユーザーフォルダです。
Windows では / ではなく ¥(\)区切りにする必要がありそうです。
/ を付けずにフォルダ名のみにした場合は、g800 からの相対パスになるようです。
manual.txt には macOS の場合に「g800config を .g800config に変更」とありますが、
g800config のまま、ユーザーフォルダ直下に入れても構いません。
頭に . を付けたファイル名は Finder で表示されなくなるので、
編集する時に手間となります。
キー割り当てはデフォルトだとテンキー部分を数字キーにして、
関数キーは数字キー・記号キーに割り当てています。
最近はテンキーのないキーボードも使われるので、
必須的に関数キーを割り当てず(またはテンキーに)
ソフトウェアキーを使用するようになるでしょう。
または、プログラムを考えて、数字キーは QWER の上にする手もあります。
manual.txt に記載がありませんが、 [ @ ] [ _ ] キーも使えました。
アップル製のキーボードの場合、一部読み替えが必要です。
Insert キーがないため、insert の代わりに別のキーを割り当てる必要があります。
また非表示になっているキーのうち、[ = ] [ R・CM ] [ M+ ] は
分かりやすいキーに割り当てると無難かもしれません。
(デフォルトで R・CM と M+ が PgUp・PgDn なのはそのためでしょう)
テンキー付だと右 option キー(ralt)が場所的にちょうど良いです。
ファンクションキーは OS が別用途で設定していますので、ご注意下さい。
キーボード配列に合わせて g800config を作ってみました。
ダウンロードし、g800config に変更します。
コンパクトタイプのキーボードは変更が必要になるかと思いますので、
キー配列も含めて編集し、ご利用下さい。
下記の g800config で全て共通しているキーは下記のとおりです。
(ポケコン → 左 Windows ・ 右 Apple Keyboard)
Windows でテンキーのない JIS 109 配列キーボード(fn キーで代用)向けです。
特殊キーは配列がまちまちなので、
fn を用いないで入力できるキーを優先して割り当てます。
キーボードの文字で分かりやすいものから割り当てます。
ファンクションキーが単独で使えるので、ここによく使うキーを中心に。
ただし F4〜F8 は割り当てがあるので、F11 も全画面で使われているので除外します。
テンキー部分はこんな感じでしょうか。
その他関数キーはテンキーに割り当てます。
INS キーは Apple Keyboard にないのでどこかに割り当てが必要。
数字入力はテンキーにしてフルに使えるように。
残った関数キーは数字・記号キーに割り当てて分かりやすく
テンキー付の Apple Keyboard (JIS) 向け その2。
テンキーは関数割り当てにして、数字入力は QWER の上に割り当てています。
プログラムを入力しようとすると数字入力は QWER の上に手がいくので、
運営者はこの割当が無難そうです。
その1 との違いだけ記載しておきます。
テンキーなしの Apple Keyboard (JIS) 向けです。
キーの数が少ないので、fn キーを用いて入力を行えるようにします。
() で記載時の割り当てを書いておきました。
BASIC・TEXT・ON・CLS は fn+矢印 で実際のキー配置に近い配置に
テンキーにある記号は実際のキーに近づけつつ、分かりやすい配列に。INS も割り当て
メモリキーは fn で入力できる割り当てキーで良い場所がありました
CONST・ANS はファンクションキーに割り当て
最新のキーボードでは num lock とテンキー割り当てがなくなっているので、
関数キーは入力できませんが、仮でテンキー割り当てにします。
通常関数入力は文字入力するかソフトウェアキーで代用となります。
イメージを読み込んだ状態で普通に g800 を実行すれば
メモリリセットの画面になります。
OFF 動作をするとファイル保存されるため、BASIC の RUN MODE で動作します。
(設定でウインドウを閉じた時に OFF 動作する事もできます。Q&A 参照)
イメージを入れない場合でも最新版では互換 BASIC インタプリターが動作します。
マシン語モニタが起動する時はバージョンが古くなっています。
ファイルの読み書きを行う方法は3種類あります。
BASIC・C言語・アセンブラソースなどは SIO、
直接マシン語を転送する場合は HEX です。
転送の前に通信の設定をしておきます。
PC-G850 シリーズだと TEXT - Sio - Format です。
実機へ転送するのと同じ設定と手順で構いません。
これでファイルをエミュレータに転送するようになります。
ここまで記載すれば、あとは実機同様にエミュレータを操作できるでしょう。
PC-G815 以外の PC-G801~PC-G830 は PC-E200 で設定してみて下さい。
イメージ取り込みは copye200.hex で行えるかと思います。
g800config の machine は machine e200 に設定します。
設定ファイル g800config が存在していません。
ユーザーフォルダ直下に置いて下さい。
.g800config でも認識しますが、macOS では隠しファイル扱いになります。
g800 の実行ファイルと同じところに g800config を置いても認識するかもしれません。
BASIC 等を動作する場合ポケコン本体の ROM イメージが必要です。
このページの「ポケコン本体からイメージを取り込む」を行った後、
g800config の rom_dir にイメージを入れたフォルダの場所を入れます。
g800config の rom_dir に指定してある場所に本体の ROM イメージがありせん。
BASIC 等を動作する場合ポケコン本体の ROM イメージが必要です。
マシン語だけ動作させたい場合は rom_dir の頭に # を付けます。
ROM
イメージを用意している場合は場所が正しいか確認して下さい。
Windows の場合、区切りを / から \ にしなければいけないかもしれません。
BASIC からワークエリアを使用している場合、
機種によってワークエリアが異なるために問題が発生する場合があります。
g800config の machine(エミュレートされるマシン)を
存在していればその機種に、なければ他の機種に変えて下さい。
どの機種に変えても改善しない場合は作者レベルで対応を要すると思われますので、
作者の まるひろ さんにその旨問い合わせを行って下さい。
RAM が 8KB の機種で発生しているかもしれません。
g800 が対応している E200・G815・G850 はいずれも 32KB の機種です。
OFF ボタン操作を行うと g800config の ram_path に記載しているファイルに
メモリ情報を保存するようになります。
タイトルバーの閉じるボタンなどを使用している場合は
設定の変更で OFF ボタン同様に動作します。
下記「ram_path に設定しているファイル名が生成・変更されません。」
を参照して下さい。
また、ram_path に指定しているファイル名が誤っていないか確認して下さい。
タイトルバーにある閉じるボタン等を使用している場合は
保存されない状態になります。
OFF ボタンを押すと生成・変更が行われます。
閉じるを多用する場合は g800config の close_as_off n を
close_as_off y(「閉じる」をOFFキーとして扱う)にすると、
ウインドウを閉じる時でも OFF ボタンと同様に動作し、生成・変更されます。
PC-G850 シリーズでは = の物理キーが存在しますが、
PC-E200 や PC-G801~PC-G830 では = の物理キーが存在しません。
= キーの場所(. キーの右、+ キーの左)には Exp キーが存在しています
そのため = を入力して E が表示されてしまいます。
PC-E200 や PC-G801~PC-G830 では、
SHIFT+L または 2ndF ⇢ L で = を入力できます。
PC-G850 シリーズでも SHIFT+L または 2ndF ⇢ L で = が割当られています。
@ [ ] 等のキーが正常に動作しない場合は、
g800config の keymod_jis n を keymod_jis y にしてみて下さい。
macOS では fn+F9~F12 が OS で優先されてしまいますので、
そのキーは外して下さい。
キー割り当ては変更可能ですので、g800config を編集してみて下さい。
テンキーがないキーボードではデフォルト状態で数字が入力できませんので、
このページで含めている g800config をご利用下さい。
関数キーの割り当てが問題であれば、
g800config で software_key y(ソフトウェアキーを使う)にすると
関数キー部分が画面の右に表示され、マウス操作で代用できるようになります。
また g800config で info_image (ファイル名).bmp として
画面の上に任意の画像を表示させる事もできます。
g800config で buzzer y(ブザーを使う)に設定している時に生じます。
音を出さなくて良いのであれば、
buzzer n(ブザーを使わない)に変更する事で解決できます。