8ビットホビーパソコン時代の名作「地底最大の作戦」

PasocomMini に地底最大の作成が付属

MZ-80Cのミニチュアフィギュア、PasocomMini に、名作ゲーム「地底最大の作戦」が付属するとのこと!

「地底最大の作戦」のプログラムは、BASICで作られていると思うのですが、「SP-5030」等のシャープ製BASICは、権利関係で付属させるのは無理だったはず。どうやって動かしているのかが気になるところです。その辺の(エミュレータ動作まわりの)情報が、まだあんまり出てきてないんですよね。9/3現在、あまり追加情報は出てきてないみたいなので、実機が出回るまでこのままかもしれないですね。

(追記)
AKIBA PC Hotline!に、開発者インタビュー記事が出ました!

開発秘話も飛び出した「PasocomMini発売記念イベント」が開催、気になる今後の展開も
https://akiba-pc.watch.impress.co.jp/docs/news/news/1087888.html

『収録されている「地底最大の作戦」はBASICで作られていたため、郡司氏がマシン語に書き直して3日で移植したとのこと。』

すごい…!


僕自身は、PC上でMZ-80CをWindows上でエミュレーションする環境は整えてある状態です。そして「いつの日か、地底最大の作戦を動かしてみたいなー」と、常々思っていました。とはいえ、思っているだけで、そこまで積極的に行動してなかったのです。(実家の奥底の本棚に、プログラムが掲載されている「I/O」誌がきっとあるはずなので、帰省するたびにちょこちょこ探してはいたのですが)


国会図書館で手に入りそう!

何か、簡単に手に入る方法はないものか考えていたところ、国会図書館を思いつきました!国会図書館には過去の雑誌の多くが保存されていて、コピーで取り寄せ可能なのです。

国立国会図書館
http://www.ndl.go.jp/

「I/O」を検索してみたら…ありました!

遠隔複写サービスを使うと、直接行かなくても郵送もしてくれます。(登録利用者IDの申請が必要です。)

遠隔複写サービス
http://www.ndl.go.jp/jp/service/copy3.html

遠隔でコピーしてもらうには、対象のページがわからないといけないのですが
掲載ページをまとめてくれているサイトがありました!これはメチャ助かる…!

PC-8001 発掘隊
http://www.geocities.jp/upd780c1/n80/list1/io/index_1980.html

地底最大の作戦は、1980年7月号 P143~P148でした!

(追記)
「月刊I/O」40周年記念で、40年分の目次が公開されていました!これでどの記事がどこにあるか、確認可能です!

「40×40」I/O40年分の目次
http://io40th.kohgakusha.co.jp/2017/09/3440io40.html


お値段は、4ページ96円 / 発送事務手数料150円 / 送料220円、合計485円。

7/18に依頼して、7/24に到着しましたー。

プログラムは2ページ。あとは、これを地道に打ち込んでいけばよいだけです!


プログラム打ち込み

MZ-80Cのエミュレータ上でプログラムを打ち込むとなると、コピー&ペーストも、画面スクロールも使えない、非力なフルスクリーンエディタで作業する必要があります。たった2ページとはいえ、すでに便利な環境を知ってしまっているこの現代において、なかなかツライ…。

しかし!今回、使用するエミュレータ「EmuZ-80K」には、テキストペースト機能があります!ホストPC側でクリップボードにコピーしたテキストを、エミュレータ内にペーストできるのです!これはすごい!

“EmuZ-80K” – SHARP MZ-80K/C emulator for Win32
http://takeda-toshiya.my.coocan.jp/mz80k/index.html

つまり、PCで高性能テキストエディタでプログラムを入力することが可能!であればわずか2ページのBASICなどちょろいもの…!
ちょろいもの…!ちょろい…。やっぱり、結構しんどい。


そこは根性で、打ち込み完了!しんどいことには変わりありませんが、エミュレータ内で打ち込むよりはかなり楽でした。


PCで入力できない、MZ-80C独自の記号は、とりあえず適当な文字を入れておいて、ここだけはエミュレータ内で修正することにしました。

そしていったん印刷。目視での確認…!アナログな方法ですけども、こういう場合には机上チェックかなり有効です。

いくつか打ち間違いを発見して修正。いよいよ、エミュレータへの入力!

エミュレータを起動して、テキストをコピー。ペーストすると…

あらららー?記号が化けて、SYNTAX ERRORが出てしまった。

どうやら、ペースト機能は、「文字列をペーストする」というよりは「文字列に該当するキーボードのキーを押す」という動きをするみたいですね。

MZ-80Cエミュレータでは、PCのキーボードで「:」の位置を押して出てくるのは「┼(罫線記号)」、「=」は「+」…。などなど、微妙にずれが出てしまいます。さらに、記号が混じることにより、SYNTAX ERROR発生。これだとプログラム自体が入力されてないので、とりあえず入力しておいて、後で修正という方法も使えないです。


引用元:http://akiba-pc.watch.impress.co.jp/docs/wakiba/retro/546280.html

キーボードを見比べると、なんとなく、「+」「*」「;」あたりの対応がわかる気がする。

うーん、コピペ作戦は失敗か…と、思ったのですが、MZ-700なら、キー配列がちょっと違ってるから、EmuZ-80Kと同じ型が作成された MZ-700エミュレータ、EmuZ-700を使うと、違う結果になるかも!
MZ-80KとMZ-700の間あれば、セーブデータも互換性あるはずです。

“EmuZ-700” – SHARP MZ-700 emulator for Win32
http://takeda-toshiya.my.coocan.jp/mz700/index.html

ちなみに、MZ-700のキー配列はこういう感じ。

引用元:http://akiba-pc.watch.impress.co.jp/docs/wakiba/retro/627538.html

MZ-80Kと記号のレイアウトが一部異なっていますね。「:」がアルファベットキーから分離されているのが、今回やりたいこと的には大変大きなメリットです。

では、あらためて、MZ-700エミュレータを起動して、コピー&ペースト!

さっきより、かなりいい!変な記号が混じらなくなって、エラーも出ていない!

これは、コピペ作業をする前に、もともとのPC側で作成するプログラムを入力に合うように変更しておいてあげればよさそうです。

こういう感じ。PC側「^」でエミュレータ側「+」が入力される、みたいな感じですね。

「=」だけは、エミュレータ上で「F9」での入力にマッピングされてて、文字での入力ができなかったので、ここだけはあきらめました。後で修正することにします。

だいたいいけた!いい感じ!エラーが出ずにプログラム入力さえできれば、後はなんとでもできる!


ということで、あとは一気にコピペして、エミュレータ上で細かい修正です。上記「=」の変更と、MZ側にしか存在しない記号の入力。半角カタカナも。

プログラム修正時にも、EmuZ-80Kではなく、EmuZ-700を使う方が、利点がありました。
MZ-80C/Kだと、カーソルキーが「上下」「左右」の2つしかなくて、SHIFT併用でコントロールする感じなんですが、エミュレータもこれを忠実に再現しているんですよね。「←」が「SHIFT」+「→」で、「↑」が「SHIFT」+「↓」
これが地味に辛い。

MZ-700はカーソルキーが上下左右の4つ、全部あるので、エミュレータでもカーソルキーが普通に使えます。

プログラム入力一段落したら、セーブしますが、セーブ失敗が怖いので、エミュレータ側のステートセーブ機能でメモリ状態も保存しておきましょう。


そして、起動!

プログラム入力完了です!やはりMZ-80K/Cとして起動したいので、プログラムデータをセーブして、EmuZ-80Kから読み込み。RUN !

きたー!これが見たかったのだ!