プログラムの自動実行(オートスタート)について

→  DOWNLOAD
→  E-mail















Yahoo!ジオシティーズ
→ Home    → Emulator    → AutoStart    → Software    → ゲーム改造    → Link

 

目次

 

1.プログラムの自動実行(オートスタート)について

2.ランチャの導入

3.起動後のコマンド入力の自動化

4.ディスクイメージからの起動

5.p80makeとDash-80を使うためのツール

 

   

プログラムの自動実行(オートスタート)について

 

エミュレータは、当時の操作通りに使うことができます。

 

1.各エミュレータをWindows上で起動する

  (PC-8001の電源を入れることに相当) 

  →N-BASICが立ちあがります。

2.エミュレータのメニューから、cmtファイル、または、t88ファイルを選択する

  (→カセットテープをデータレコーダ(もしくはラジカセ)にセットすることに相当)

3.BASICプログラムをロードする。

  例:CLOAD"PUCK"(RET)

4.マシン語プログラムをロードする。

  例:MON(RET) → L

5.BASICに戻ってRUN。

  例:CTRL-B → (F5)

 

まずは、当時をなつかしんで、操作して下さい。

ただ、せっかく、Windows上で実行しているので、ダブルクリック一発で起動することを考えます。

   

ランチャ

 

上記1&2の自動実行を考えます。

 

 エミュレータ用に各種起動用のプログラム(ランチャ)が開発されていますので、お好きなものを使ってください。

ゲームの数が少ないうちは、個々のバッチファイルを作っても良いのですが、数が多くなると、ランチャを使ったほうが楽ですし、ゲーム画面イメージを見ながら選ぶことができます。

 

 ちなみに、自分は、K-Launcher Lightというものを使っています。エミュレータプログラムを20個まで登録することができ、ゲーム画面イメージ(スナップショット)を見ながら、リストから起動したいプログラムを選ぶことができます。単機能ですが、その分、軽くて使いやすいです。

 ・画面イメージは自分で用意する必要があります。

   →自分で好きなサイズのイメージを用意できます。

 ・エミュレータプログラムごとに特別な処理はしてくれません。

   →新しいエミュレータが出てもランチャ側の対応を待つ必要がありません。

 

K-Launcher Lightは、「Hiper Tension!」さんの所からダウンロードできます。「K-Launcher light」からどうぞ。

KLLIGHT.TXTに従って、設定をしてください。 

 kllight.jpg ゲームのスナップショットを見ながら、ゲームを選ぶことが可能です。

(jpegの表示にはSusieプラグインライブラリが必要です)

 

K-Launcher lightから、エミュレータに選択されたファイル(テープイメージファイル)が引数として渡されるのですが、実は、エミュレータによってはうまく動作しません。

 

X88000

 うまく動きます。自動的にテープイメージにセットされて起動します。

 

M88

 基本的にテープには対応してないようです。起動してから「Tool」→「Tape」で選択しなおす必要があります。

 また、M88では、設定で「ロングファイル名有効」のチェックははずして下さい。

 

j80 

 引数はコンフィグファイルの指定になります。基本的にコンフィグファイルを書き変えてから起動する必要があります。(引数にテープイメージファイルを指定しても意味がありません。)

 K-Launcher lightの「エミュレータ設定」でバッチファイルを起動するようにして、その中で設定ファイルを書き変えてからj80を起動するようにすることで対応可能です。

例:こんな感じです。

 

[auto.bat]

----------------------------------------------------

type j80.cfg  > auto.cfg

if /i %~x1 == .CMT (

    echo(tab)-CMT:1(tab)%~d1%~p1%~n1%~x1>> auto.cfg

)

if /i %~x1 == .T88 (

    echo(tab)-CMT:1(tab)%~d1%~p1%~n1%~x1>> auto.cfg

)

java -jar j80.jar auto.cfg

pause

----------------------------------------------------

 

javaのPATHなどは、適当に変えてください。

これで、テープイメージファイルがセットされた状態で立ちあがります。 

 kllight_setup.jpg

j80のセットアップです。プログラムパスには、バッチファイルを指定して下さい。

 

M88では、「ロングファイル名有効」のチェックをはずして下さい。

起動後のコマンド入力の自動化

 

次に、上記の3〜5(起動後のロードしてからRUNまで)を自動実行することを考えます。

いろいろな方法があります。

 

方法1

 エミュレータですから、当時の自動実行(入力作業の省力化)をそのまま使えます。

当時、ファンクションキーバッファに入力したいコマンドを登録しておき、ファンクションキーフラグを立てた状態で、バッファとフラグの領域をモニタのWコマンドでテープに書きこむという手法が使われていました。起動後、MON(RET)+L(RET)とキー入力するだけで、以降は、読みこんだキーバッファの内容に従って、BASICのロード→マシン語のロード→BASICのRUN、と自動で進みます。

 

方法2

 j80の場合には、CAS(JOB) ファイルで、自動実行したいコマンド列を直接指定しまうことが可能です。ただし、この場合でも、起動後、MON(RET)+L(RET)とキー入力する必要があります。

 

[pcjanB.cas]

----------------------------------------------------

*IPL(tab)\x02CLOAD"MAJAN"\x0dMON\x0dL\x0d\x02RUN\x0d

pcjanB.cmt

----------------------------------------------------

 autostart.jpg 方法1、2、どちらでも、最初に「mon」「L」のキー入力が必要です。

以降は自動入力されます。

   

方法3

 これも、j80の場合にしか使えませんが、キー入力ファイル(*.inp)に、コマンドを書いておけば、自動的に入力することが可能です。さらに、設定ファイルに、キー入力ファイル名を書いておけば、起動直後から、キー入力が開始されます。

注意としては、キー入力のほうが早すぎると捨てられてしまうので、スペースなどを入れてタイミングを合わせる必要があります。また、BASICに戻るCTRL-B(0x02)は、バイナリ対応のエディタじゃないと入力できません。その場合、モニタから、そのまま、BASICのRUN実行アドレス:3DF4に飛ばすのでも良いです。(モニタからG3DF4)

 入力ファイル(*.inp)も自動で設定するように修正したバッチファイルです。

 

[auto.bat]

----------------------------------------------------

type j80.cfg  > auto.cfg

if /i %~x1 == .CMT (

    echo(tab)-CMT:1(tab)%~d1%~p1%~n1%~x1>> auto.cfg

    echo(tab)-INP(tab)%~d1%~p1%~n1.inp>> auto.cfg

)

if /i %~x1 == .T88 (

    echo(tab)-CMT:1(tab)%~d1%~p1%~n1%~x1>> auto.cfg

    echo(tab)-INP(tab)%~d1%~p1%~n1.inp>> auto.cfg

)

if /i %~x1 == .CAS (

    echo(tab)-CMT:1(tab)%~d1%~p1%~n1%~x1>> auto.cfg

)

java -jar j80.jar auto.cfg

pause

----------------------------------------------------

 

ついでに、inpファイルの例(途中で止まってしまう場合、空白の数を調整して下さい)

[pcjanB.inp]

----------------------------------------------------

  CLOAD"MAJAN"

                                  MON

L

G3DF4

----------------------------------------------------

 autostart2.jpg inpファイルを作っておけば、完全自動化ができます。
   

ディスクイメージからの起動

 

j80ならば、完全自動実行が可能になりました。

ただし、M88とX88000ではカセットからの自動実行は難しいです。もともと、両方とも、PC-8801エミュレータなので、ディスク使用がメインになります。

 

 M88、X88000でも共通で使えるように、テープイメージからディスクイメージに変換してしまうことを考えます。ディスクから立ち上げることで、j80、M88、X88000のどれでも、自動実行が可能になります。

 

方法1

 当時、DISKドライブユニットとDISK-BASICを持っていた人は少なかったと思いますが、エミュレータならエミュレータ作者さんのおかげで、DISKドライブユニットは無料で手に入ります。DISK-BASICを持っている人はそれをディスクイメージに変換することで、当時と同じように自動実行(オートスタート)が可能になります(Set up info sectorプログラムを実行:RUN"setinfo")。

 

方法2

 DISK-BASICを持ってない人は、DISK-BASIC以外のものを使うことになります。ディスクイメージを作成するツールとして、p80makeというものがあります。このツールは、BASICのファイルをとマシン語のファイルを入力すると、自動的に、オートスタート対応のディスクイメージを作成してくれます。本当に便利です。

 「かじゃぽんのお部屋」さんから、「自作ツールのお部屋」→「p80make...98/06/02版」と進んでください。

 

方法3

 もう1つ、DISK-BASICの代わりになるものに、Dash-80というものがあります。機能はファイルのロードなどに限定されていますが、起動後はフリーエリアを全く使わないというすごいものです。DISK-BASICを使った場合には、DISK-BASIC自体がメモリを消費してしまうので、フリーエリア不足でプログラムが動かなくなってしまったり、マシン語のロード場所の変更が必要だったりと、いろいろ面倒なのですが、Dash-80だと、N-BASIC(ROM-BASIC)で動いたプログラムをそのまま実行することが可能です。

 「Retro Computer People」さんから入り、「展示場:レトロプログラムのフロア」→「ツール:Dash-80 Version 1.0b1」から入手することが可能です。

 

ちなみに、M88とX88000は、ランチャからプログラム名(ディスクイメージ)を与えられると、自動的にそのディスクから起動します。

j80は例によって、起動用バッチを修正して対応します。

(-fdd → フロッピーディスクからの起動を指定)

 

 [auto.bat(最終版:ダウンロードはこちら)]

(2016/2/20追記、j80_r6_91に合わせて変更しました)] 

----------------------------------------------------

type j80.cfg  > auto.cfg

if /i %~x1 == .CMT (

    echo(tab)-CMT:1(tab)%~d1%~p1%~n1%~x1>> auto.cfg

    echo(tab)-INP(tab)%~d1%~p1%~n1.inp>> auto.cfg

)

if /i %~x1 == .T88 (

    echo(tab)-CMT:1(tab)%~d1%~p1%~n1%~x1>> auto.cfg

    echo(tab)-INP(tab)%~d1%~p1%~n1.inp>> auto.cfg

)

if /i %~x1 == .CAS (

    echo(tab)-CMT:1(tab)%~d1%~p1%~n1%~x1>> auto.cfg

)

if /i %~x1 == .D88 (

    echo(tab)-FDD:1(tab)%~d1%~p1%~n1%~x1>> auto.cfg

    echo(tab)OPTION(tab)-power(tab)-smooth=1(tab)-fdd>> auto.cfg

)

java -jar j80.jar auto.cfg

pause

----------------------------------------------------

 

 

p80makeとDash-80を使うためのツール

 

Dash-80はセーブに対応していないので、起動ディスクを作るには他のソフトの助けが必要です(Disk-Basicとか、2D Toolsとか)。

いろいろ面倒なので、カセットイメージ(cmtファイル or t88ファイル)から、ディスクイメージ(d88ファイル)を自動的に作成するツール(t88tool)を作りました。

 

ツールの概略

1.カセットイメージファイルからBASICプログラムとマシン語プログラムを抽出します。

  (ver0.81からは、メモリイメージ(N80ファイル)にも対応しました)

2.抽出したプログラムを使って、ディスクイメージファイルを作成します。

  2つのやり方に対応しています。

   (1)抽出したプログラムをp80makeを使って、ディスクイメージに変換します。

   (2)抽出したプログラムをDash-80のシステムファイルに登録して、オートスタートも設定します。

 

Downloadのページに置いておきますので、使い方はReadme.txtをご覧ください。

 

p80makeを使った場合のメリット

 ・できたd88ファイルのサイズが小さい(31KB)

 

Dash-80を使った場合のメリット

 ・DISK-BASICコンパチのディスクフォーマットなので後でファイル単位で取り出せる

 ・起動が高速

 

 klight_d88.jpg 今風太さんのゲームも全部ディスク起動になりました。
 klight_fs.jpg t88tool ver0.81から、メモリイメージ(N80ファイル)に対応しました。

Foresightさんのページで公開されているN80イメージもディスク起動になりました。

(一部、実行中にテープから読みこむプログラムについては、そのままでは動きません。プログラム自体の修正が必要です。)

fs26_uru.jpg

 

fs26_uru2_d.jpg

「通巻26号の表紙」は、プログラム実行後、テープから次のプログラムを読み込むので、DISKイメージでは途中で止まってしまいます。

7分待ってもでてきません。

 

 

BASICプログラムの2番目と、マシン語の2番目だけを-#オプションで指定して変換して下さい(-# 4,5)。

 

t88tool.exe ウルボシ1.CMT -# 4,5

 

(1番目のBASICプログラムを改造して、上記2つのファイルをディスク上から読み込むことでも対応可能です。「LOAD "machin001"」「RUN "ウルボシ2"」を使って下さい。)