プチコン4 まとめWiki

投稿プログラム : PC8001mk2_エミュ for プチコン4号

パンくずリスト

2020年10月12日投稿 / 投稿者 : つかさ / タグ : 投稿プログラム エミュレータ Z80 PC8001mk2

概要

このプログラムは,Z80エミュレータに,CRTCやキーボードなどを付加して,日本電気殿が発売していたパソコン,PC8001mk2っぽいような感じの動きをするプログラムです。実行には,N80-BASIC等のROMデータが必要ですが,同梱されておりません。各自で用意して下さい。また,このプログラムはプチコン4号専用となっており,プチコン3号やBIGでは動作いたしません。

PC8001mk2_emu.jpg
  • 2020.08.24 初公開(S137V)
  • 2020.10.12 PC8801mk2SR対応(S143V)

動作環境

プチコン4号専用です。USBキーボードでの入力も対応しています。ゲームプレイにもそこそ使用できます。プログラムのロードや、ちょっとした操作には便利に使えると思います。カーソルキーもバッチリです。

遊び方

  • 同梱のREADMEに従って,プロジェクト内にROMデータを置きます。
  • ROMデータの吸出し方法などは、"N80_2.rom" "PC8001mk2" あたりをキーワードに検索を行うと、エミュレータ関連のページが多数見つかるので、参照しながらご用意ください。
    N80_2.ROMN80-Basic ROM(32k)
    N80_3.ROMN80SR-Basic ROM(40k)
    N88SUB.ROMディスクサブシステムROM(2k) (オプション)

Petit4Send(http://rei.to/petit4send.html)等でPCからSwitchにファイルを転送できます。

  • Petit4Sendには、接続ケーブルを作成するためのちょっとした電子工作がひつようですが、難しくありません。以下の動画が参考になります。
  1. プロジェクトを選択すると、PC8001MK2_S143V.PRGが実行されます。
  2. ROMデータがない場合は、データ転送用のPetit4Sendが起動します。

操作方法

  • X 簡易ローダ呼び出し (F12)
  • ZL+X ディスク操作画面表示 (F6)
  • A リターンキー
  • B スペースキー
  • Y デリートキー
  • L,R1 SHIFTキー
  • L+X モニタ機能呼び出し(デフォルトではディスエーブル)
  • L+Y コンフィグ画面表示 (F7)
  • R+X ボタン設定変更機能
  • ZR リターンキー(FANFANでのゲームスタートに利用することを想定)
  • ZL Graphキー。(Luna City SOSでバリアを張り直すことを想定)
  • ZL+Y サウンド方式切り替え (F8)
  • ZL+右スティック押込 リセット (Home + End)
  • L+右スティック押込 画面のズーム機能のON/OFF

タッチキーボード

SHIFTキー、カナ、CAPS, GRAPHは一度タップするとロックし、もう一度タップするとロック 解除されます。CTRLキーは、キーが押されるまではロックされ,キーが押されるとロックが解除されます。

モード変更

PC8001mk2SRには,BASICの種類によって,N,N80,N80SRの3つのモードがあります。 モード間の変更は以下の4つの手順のうちの1つで行えます。

L1+(Y)ボタンを押し,[SIM設定]を呼出す。
  • 十字ボタンでN80モードに→を移動し,N/N80/N80SRを十字ボタンの左右もしくはで選択。
  • (B) ボタンで設定終了。
(X)ボタンで[簡易ローダ]を呼びだす。
  • 十字ボタンでモードに→を移動し,N/N80/N80SRを十字ボタンの左右もしくは(A)で選択。
  • 一番下のボックスで,D88イメージ(.D88),tapeイメージ(.CMT/.T88),→上で選択したモードにしたがって起動します
  • PC80mk2イメージ(.I80)を選択し,(A)ボタンで確定。→.I80ファイル内のモード情報に従って自動的にモードが変わります。
  • IMGファイル及びN80ファイルを選択し、(A)ボタンで確定→自動的にNモードになります。
      ※(B)ボタンで選択をキャンセルした場合は,モードは変更されません。
      モードのみを変更したい場合は,(1),(3)を御利用下さい。
L2+(X)ボタンを押し,[Diskシステム]を呼び出す。
  • 十字ボタンでモードに→を移動し,N/N80/N80SRを十字ボタンの左右もしくは(A)で選択。
  • 一番上の[リセット]に→を十字ボタンで移動。
  • (A)ボタンでリセット実行。
      ※(B)ボタンで選択をキャンセルした場合は,モードは変更されません。
      モードのみを変更したい場合は,(1)のSIM設定機能を御利用下さい。
HOME+END同時押リセット時に特定のキーを押すと、モードの移行が可能です。
SHIFT押下N80SR→N(ROM内のコードによる)
SHIFT押下後即離し,CTRL押下N80SR→N80(ROM内のコードによる,タイミング難しい)
CTRL押下N80→N(ROM内のコードによる)
WIN押下→N80SR(エミュレータ機能による)
ALT押下→N80(エミュレータ機能による)

ソフトウエアの読み込み

 簡易ローダーで(X)で .D88 ファイルを選択する

  • 簡易ローダーを使って D88ファイルを選択すると、ドライブ1にディスクが挿入され、リセットがかかります。ゲームが自動起動するように .D88 フォーマットにコンバートされたファイルを実行する際には,ディスクの取り出し操作無しに利用可能なこの手順が便利です。
  • N/N80/N80SRから適切なモードを選んでから、.D88 ファイルを選択してください。

DISK選択メニュー(ZL+X)で.D88ファイルを選択。

  • 選択するとドライブ1から順にディスクが挿入されます。ドライブにディスクが挿入されると、ライトプロテクトされているディスクイメージは、 「🔑」のマークが前につきます。
  • (X)ボタンもしくは,キーボードの["Scroll Lock"]をディスクが挿入されているドライブで押すと,挿入中のディスクイメージのプロテクト状態を変更できます。物理的には、5インチフロッピーでは銀色のシールを貼ったり剥がしたりすることに相当します。
  • 既にディスクが挿入されているドライブで(A)ボタンを押すと、ディスクが取り出されます。その際に,ディスクに書き込みが行われていた場合,イメージ ファイルを保存するか尋ねられます。保存しない場合,変更は捨て去れれます。
  • ブランクディスクは,FDDドライブが空の状態で(A)ボタンを押すと作成できます。作成終了時にファイルに保存するかの確認がでますが,保存しないとディスク作成が無かった事になります。作成されたディスクは,N88-BASICのデータディスクとしてフォーマットされています。
  • リセットを選択すると、リセットがかかります。
  • ディスクサブシステムが有効な場合、キーボードのエンブレムの左側にFDDのアクセスランプが表示されます。
  • アクセスランプの色は,通常は緑色ですがディスクへの書き込みが行われると,以降は赤で表示されます。書き込み結果を残すには、明示的にDISK選択メニューから[取出]を選択し,変更の保存を行って下さい。
  • (+)ボタンでエミュレータを終了させた場合、内容が変更されているディスクがあると、保存するかどうか尋ねてきます。
  • ディスクサブシステムが無効な場合、FDDランプは表示されません。また、簡易ファイル選択に.D88ファイルが現れず、DISK選択メニューも利用できません。
  • ディスクサブシステムを有効にするためには、サブシステムROMデータがプロジェクト内に"N88SUB.ROM"という名前で保存しておく必要があります。pbiosの代用"DISK.ROM"を同梱しているため、単純な読込み&起動は動きますが、EMMYなどは、動作しませんでした。

CPUタイミング

  • cpuタイミングは、FDDサブシステムでメインCPU処理に戻るまでに実行する命令数。大きい程動作が早くなるが、動かなくなるソフトも増える。0の時は、従来と同じ動作を行ないます。通常は0のまま使用します。起動しないディスクがあったばあい、まずは cpuタイミング=3を試してみてください。それでも上手くいかない場合は、値を少しずつ変えながら動作する値を探ってください。0〜6までの値が設定できます。

簡易ローダ詳細

1枚のディスクで構成されたゲームを起動するときや,テープイメージ(T88,CMT)、ステートファイルの 作成・読み込みを行うメニューです。

  • (X)ボタンを単体で押すと,簡易ローダが呼びだされ,ファイルの読み込み,生成のメニューが出てきます。
  • .D88, CMT,T88ファイルでは,N/N80/N80SRから適切なモードを選んでから、ファイルを選択してください。
  • .I80ファイルでは、モード情報も含まれているので、モードの選択の必要はありません。
  • .IMGファイルやN80ファイルを選択すると、自動的にNモードに切り替わります。
  • (B)ボタンを押すと,簡易ローダから抜けます。(B)ボタンで抜けた場合は,モードは変更されません。
  • サポートしているファイルは以下のとおり。
N80ファイル (読み込みのみ)
T88ファイル (読み込みのみ)
D88フォーマット(読み書き可能,要サブシステムROM)
  • D88フロッピーイメージファイルが使用できます。内部的には、複数イメージを含むファイルもサポートしているのですが、GUIができていません。もっとも, PC8001で複数イメージを含んだ D88 ファイルは見たことないです。
  • https://github.com/jpzm/wii88/blob/master/document/FORMAT.TXT
CMTファイル (読み書き可)
  • テープのセーブデータをそのまま保存する形式。 CLOADやMONコマンドのLで読み込む。 CMTファイルを選択した場合、ファイルに含まれるプログラムの頭出しが可能。CMTファイルを指定するだけでは読み込みは行われません。プログラムの読み込みは,CLOAD や MONコマンドのLなどで自分で行う必要があります。
  • また,CSAVEやMONのWコマンドでファイルを追記することができます。デフォルトでは,00MY_TAPE.CMT というファイルに追記されます。 いったんCMTファイルを読み込み指定すると,次からそのファイルの後ろに追記されます。セーブするCMTファイルを変えたい場合は、簡易ローダから追記したいCMTファイルを指定してください。新たなCMTファイルに保存したい場合は「新規テープの作成」を選んで下さい。
  • セーブ時は,必ず追記の形で保存されます。
独自のIMGファイル (読み込み) Nモードの時のみ。
  • &H8000〜&HFFFFのMEM[]のデータの後ろに,レジスタの値を格納した形式。簡易ローダを呼び出した時点での状態を、新規イメージの作成」で保存することができます。
  • PCGによって変更されたフォント情報がある場合、最後に1028byteのPCGデータが付加されるようになりました。
  • Nモード時のステート保存も.I80で行うようにしたため、PC8001エミュレータとの互換性のため、デフォルトでは読み込みのみです。
独自のステートファイル(.I80) (読み込み・生成)
  • エミュレータの全ステートをセーブします。起動に時間のかかるソフトの一発起動や、簡易的なセーブ機能としてお使いいただけます。
  • セーブ機能として使う場合は、Sim設定 から、イメージ上書可を設定しておくと、同じイメージ名で保存できるようになるので、便利です。
  • N80/N80SRモードも保存されるステートに含まれているので、現在のモードにかかわらず、Nモード,N80モード,N80SRモードのステートを読み込めます。
  • PCGの状態も保存されるので、PCGで定義された文字も崩れません。

独自のステートファイル(.I80)仕様

  • 内部のステートをまるっと保存したファイル形式。Nモード時にも、無駄になるステートは多いですが、利用出来ます。
  • .I88とは互換性はありません。
  • 背景が黄色の部分は、PC8001mk2で新たに加わったステート
  • 背景が灰色になっている部分は、保存されない領域、もしくはシステム中で参照されない変数
  • long int配列なので、左側の番地を4倍すると、バイト単位番地に。0x0000〜0x153FFは、MEM[] の中身と同じ順番です。
  • PCG_USAGEが非ゼロの時のみ、17E00以降のPCG_FONT[]の内容をPCG-8200に読み込む。
  • 所々に値が設定されていない部分は、拡張用。
    PC80mk2_state_format3.png

USBキーボード

PC8001mk2とUSBキーボードでは違いがあります。

カナカタカナひらがな, ALTキー
GraphWindowsキー
StopPause Breakキー
CLSNumロックキー
Ins・DelDeleteキー

モニタ

モニタ機能は、Simコンフィグでイネーブルにしておく必要があります。X+L を押し,離すとモニタに入れます。モニタは,メモリのダンプ,逆アセンブル,メモリの書き換えができます。

モニタから抜け、エミュレータに戻る
Dnnnn逆アセンブル (B)で抜ける
Mnnnnメモリダンプ (B)で抜ける
Ennnnメモリのエディット
16進以外の入力で抜ける
R    レジスタの値を表示
  • プレイ画面

公開キー

プチコン4用の公開キーです。トップメニューの「作品を見る」から公開キーを入力すると、作品をダウンロードできます。

プチコン4 公開キー
4EKSKY3EF

メニュー 【4】

過去シリーズWiki

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 3 人がこのサイトを見ています
  • このページはこれまでに 1355 回、本日は 1 回、昨日は 1 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.063 秒 | このページの最終更新 : 2020/10/13 (火) 10:20:36 (411d) | ログイン
Copyright(C) 2011-2019 プチコンまとめWiki