Table of contents目次

  1. Past changes 過去の更新

Back to recent changes 最近の更新に戻る

1. Past changes 過去の更新

Extended graphic screen 拡張グラフィック画面

Fixed a bug that caused IOCS _G_CLR_ON to fail to erase graphic screens even in standard screen mode when extended graphic screen was enabled; CRTC storage mode operation was causing memory map inconsistencies. 拡張グラフィック画面を有効にすると標準の画面モードでも IOCS _G_CLR_ON がグラフィック画面の消去に失敗するようになるバグを修正しました。CRTC のストレージモードの操作でメモリマップに不整合が生じていました。

Supplement 1. IOCS _G_GLR_ON does not work as expected in memory mode 5,7. 補足 1。IOCS _G_GLR_ON はメモリモード 5,7 では期待通りに動作しません。

Supplement 2. 512KB GVRAM in memory modes 0,1,3,4 and 2MB GVRAM in memory modes 5 and 7 are different entities. Clearing all 2MB of GVRAM in memory mode 7 does not clear the 512KB of GVRAM in memory mode 3. 補足 2。メモリモード 0,1,3,4 の 512KB の GVRAM とメモリモード 5,7 の 2MB の GVRAM は実体が異なります。メモリモード 7 で 2MB の GVRAM をすべてクリアしてもメモリモード 3 の 512KB の GVRAM はクリアされません。

File menu ファイルメニュー

To make it easier to see long disk image file names, the file chooser does not open when a disk image file is already inserted, even if you click on the text field of the disk image file name. 長いディスクイメージファイル名を確認しやすくするために、ディスクイメージファイルが既に挿入されているときは、ディスクイメージファイル名のテキストフィールドをクリックしてもファイルチューザーが開かないようにしました。

When replacing an inserted disk image file, click the open icon to the left of the disk image file name text field, not the disk image file name text field. 挿入されているディスクイメージファイルを交換するときは、ディスクイメージファイル名のテキストフィールドではなく、その左側にある open アイコンをクリックしてください。


We changed some of the model codes written at the end of IPLROM 1.6. Some of ACE/EXPERT(II)/PRO(II) models whose CZ name ends with -GY, the colors of those models were similar to those of the first generation, so we had set their color codes to 0 (office gray), the same as the first generation. Since we received a suggestion that the color code should match the catalog description, we have changed those color codes to 1 (gray), the same as Compact. IPLROM 1.6 の末尾に書き込まれる 機種コード の一部を変更しました。ACE/EXPERT(II)/PRO(II) のうち CZ 名が -GY で終わる機種の色は初代に近いので、それらの色コードを初代と同じ 0(オフィスグレー) にしていました。色コードをカタログの表記に合わせるべきとのご意見をいただいたので、それらの色コードを Compact と同じ 1(グレー) に変更しました。

Key assignments キー割り当て

The design of the key assignments window has been changed. The input area, which was previously arranged in key code order, is now arranged in the shape of the X68000 keyboard, making it easier to understand the key correspondence. キー割り当てウインドウ のデザインを変更しました。キーコード順に並べていた入力エリアを X68000 のキーボードの形に並べることで、キーの対応を分かりやすくしました。

US layout can be selected when restoring key assignments to their default values; a parameter keymapus has been added to select US layout. キー割り当てを初期値に戻すとき、US レイアウトを選択できます。US レイアウトを選択する パラメータ keymapus を追加しました。

The US layout for macOS was created by tantan. The following is a comment written by tantan. macOS の US レイアウトは tantan さんに作成していただきました。以下は tantan さんに書いていただいたコメントです。

    macOS + USキーボード 用 XEiJ デフォルトキーマッピング

  macOS + USキーボード で XEiJ を使用する場合、KBD_DEFAULT_MAP_MAC のマッピングでは
  主要記号を含む一部の文字が入力できません。これは一部のキーが KeyEvent#getExtendedKeyCode() で


  また、M.Kamadaさん作 KeyWitch.X を使用して Human68K 側をUS(ASCII)配列にすると、

  KeyWitch.X を組み込まない場合は、XEiJ上でほぼJISキーボードの配列になります。


  KeyWitch.X は CONFIG.SYS に以下のように追加してください。
  DEVICE=\path\to\KeyWitch.x -e \path\to\ascii.env

Fixed a bug that the keycode with the largest keycode disappears every time XEiJ is started up when key assignments are changed. キー割り当てを変更したとき、XEiJ を起動する度にキーコードが一番大きいキー割り当てが消えてゆくバグを修正しました。

Fixed a bug that 8 on the numeric keypad could not be input when NumLock was ON in Windows. Windows で NumLock ON のとき、テンキーの 8 が入力できないバグを修正しました。


Fixed a bug that caused the output to be sent to joystick port 2 instead of joystick port 1 when writing $0C to $0F to $00E9A007. No actual harm was done since no device using this feature was connected. $00E9A007 に $0C~$0F を書き込んだとき、ジョイスティックポート 1 ではなくジョイスティックボート 2 に出力されていたバグを修正しました。この機能を使うデバイスが接続されていないので実害はありませんでした。


When the model is changed, adjust the ROM boot handle so that errors do not occur due to a change in the presence or absence of SCSI or a change in the presence or absence of HFS. 機種を変更したとき、SCSI の有無の変化または HFS の有無の変化でエラーが発生しないように、ROM 起動ハンドルを調整します。

When the ROM boot handle points to internal SCSI but there is no internal SCSI, the ROM boot handle is changed to extended SCSI if there is extended SCSI, otherwise the ROM boot handle is erased and changed to STD boot. ROM 起動ハンドルが内蔵 SCSI を指しているのに内蔵 SCSI がないときは、拡張 SCSI があれば ROM 起動ハンドルを拡張 SCSI に変更し、なければ ROM 起動ハンドルが消去して STD 起動に変更します。

When the ROM boot handle points to extended SCSI but there is no extended SCSI, the ROM boot handle is changed to internal SCSI if there is internal SCSI, otherwise the ROM boot handle is erased and changed to STD boot. ROM 起動ハンドルが拡張 SCSI を指しているのに拡張 SCSI がないときは、内蔵 SCSI があれば ROM 起動ハンドルを内蔵 SCSI に変更し、なければ ROM 起動ハンドルを消去して STD 起動に変更します。

If the ROM boot handle points to HFS but the HFS directory is not set, erase the ROM boot handle and change to STD boot. ROM 起動ハンドルが HFS を指しているのに HFS のディレクトリが設定されていないときは、ROM 起動ハンドルを消去して STD 起動に変更します。

Execution Environment実行環境

As of this writing, the latest OpenJDK is 19 2022-09-20. Older versions of JDK may not work. Use the latest version of OpenJDK if possible. これを書いている時点で最新の OpenJDK は 19 2022-09-20 です。 これより古いバージョンの JDK では動作しないかも知れません。 可能な限り最新の OpenJDK を使用してください。

File menuファイルメニュー

In the File menu, when the path name of a disk image is long, the hidden part is displayed by tracing the letter. ファイルメニュー で、ディスクイメージのパス名が長いとき、文字をなぞると隠れている部分が表示されるようにしました。

Host File Systemホストファイルシステム

When setting the host directory name as the volume name of a drive in the host file system, if it does not fit in 21 bytes, assign a string consisting of the first 5 bytes and the last 15 bytes joined by "_". ホストファイルシステム のドライブのボリューム名としてホストのディレクトリ名を設定するとき、21 バイトに収まらなければ、先頭 5 バイトと末尾 15 バイトを「_」で繋いだ文字列を割り当てます。

When UTF-8 warning in the HFS menu or the parameter utf8warning is on, it is reported that the character encoding of the file you try to open in the host file system is UTF-8. HFS メニューUTF-8 警告 またはパラメータ utf8warning が on のとき、ホストファイルシステムで開こうとしたファイルの文字コードが UTF-8 であることが報告されます。


When the MPU is a 68040 or 68060, IPLROM 1.6 does not turn on the data cache even if it is configured to boot with the data cache ON. 060turbo.sys turns on the data cache after the MMU is enabled. Note that as of this writing, there is no way to enable the MMU with the combination of 040turbo and IPLROM 1.6, so the combination of 040turbo and IPLROM 1.6 is not recommended. MPU が 68040 または 68060 のとき、データキャッシュ ON で起動するように設定されていても、IPLROM 1.6 はデータキャッシュを ON にしません。060turbo.sys が、MMU を有効にした後にデータキャッシュを ON にします。 なお、これを書いている時点で 040turbo と IPLROM 1.6 の組み合わせで MMU を有効にする手立てがありませんので、040turbo と IPLROM 1.6 の組み合わせは推奨できません。


If you paste a large amount of text by mistake, you can stop pasting by clicking the Stop paste button in the Paste settings menu. 間違って大量のテキストを 貼り付け てしまったとき、貼り付け設定メニュー貼り付け中止ボタン で貼り付けを中止できます。

On Windows, when the Paste pipe checkbox in the Paste settings menu or the parameter pastepipe is on, you can paste text from other processes via the Paste pipe "\\.\pipe\XEiJPaste". Put xeijwin.dll in the current directory or in a directory in your path. Windows で、貼り付け設定メニュー貼り付けパイプチェックボックス またはパラメータ pastepipe が on のとき、貼り付けパイプ 「\\.\pipe\XEiJPaste」を介して他のプロセスからテキストを貼り付けられます。xeijwin.dll をカレントディレクトリまたはパスの通っているディレクトリに置いてください。

echo memfree > \\.\pipe\XEiJPaste


You can choose between Mincho and Gothic typefaces for the printer. The typeface selection at reset is stored in the parameter prndipsw. プリンタ の書体を明朝体とゴシック体から選択できます。 リセット時の書体の選択はパラメータ prndipsw に保存されます。

The paper size is stored in the parameter prnsize and the paper orientation in the parameter prnorientation. 用紙のサイズはパラメータ prnsize に、用紙の方向はパラメータ prnorientation に保存されます。

The paper margins are stored in the parameters prntopmargin, prnleftmargin, prnrightmargin and prnbottommargin. 用紙の余白はパラメータ prntopmarginprnleftmarginprnrightmargin および prnbottommargin に保存されます。

The paper can be rotated in 90°increments. Vertical writing mode should be rotated to the right, and SX-Window hardcopy should be rotated to the left for better viewing. The paper rotation is stored in the parameter prnrotation. 用紙を 90°単位で回転させることができます。 縦書きモードは右に、また、SX-Window のハードコピーは左に回転させると見やすいでしょう。 用紙の回転はパラメータ prnrotation に保存されます。

Dark mode can be selected. When dark mode is selected, black and white are switched. The other colors remain unchanged. The dark mode is stored in the parameter prndarkmode. ダークモードを選択できます。 ダークモードを選択すると白と黒が入れ替わります。 他の色は変わりません。 ダークモードはパラメータ prndarkmode に保存されます。

The printer can be taken offline. The choice between offline and online is stored in the parameter prnonline. プリンタをオフラインにできます。 オフラインとオンラインの選択はパラメータ prnonline に保存されます。

The color of the single-color ink ribbon is stored in the parameter prnsinglecolor. 単色インクリボンの色はパラメータ prnsinglecolor に保存されます。

The display scale factor is stored in the parameter prnscalefactor. 表示倍率はパラメータ prnscalefactor に保存されます。

Adjusted the position and orientation of punctuation, long vowels and wave dashes, and small hiragana and katakana in vertical writing mode. 縦書きモードのときの句読点、長音と波ダッシュ、小さいひらがな・カタカナの位置と向きを調整しました。

If SJIS code is used in Kanji mode, it is converted to JIS code and printed. Kanji mode ON and Kanji mode OFF are necessary even when SJIS code is used. 漢字モードのとき SJIS コードが使用されたら JIS コードに変換して印字します。SJIS コードを使用する場合も漢字モード ON と漢字モード OFF は必要です。

Display 画面

The 384x256 dot and its left and right sides shaved 256x256 dot screens with square pixels have been changed to 8:9 portrait pixels by default. You can select conventional square pixels in the menu and parameters. Added HRL square pixels to the display menu. Added parameter hrlsquare. 384x256 ドットおよびその左右を削った 256x256 ドットの画面を正方形ピクセルにしていましたが、デフォルトを 8:9 の縦長ピクセルに変更しました。 メニューとパラメータで従来の正方形ピクセルを選択できます。 画面メニューHRL 正方形ピクセル を追加しました。 パラメータ hrlsquare を追加しました。

Host File System ホストファイルシステム

Fixed a bug that caused the volume name length limit to be 22 characters instead of 21 when setting the host directory name as the volume name for a drive in the host file system. ホストファイルシステムのドライブのボリューム名としてホストのディレクトリ名を設定するときのボリューム名の長さの上限が 21 文字ではなく 22 文字になっていたバグを修正しました。

Configuration File 設定ファイル

When creating a configuration file, the use of StringBuilder, which has a capacity limitation, could cause the creation of the configuration file to fail if the contents of local memory were saved. 設定ファイルを作成するとき容量制限のある StringBuilder を使用していたため、ローカルメモリの内容を保存すると設定ファイルを作成に失敗することがありました。

The method has been changed to one that does not use StringBuilder. StringBuilder を使用しない方法に変更しました。

Copyright 著作権

The copyright notice has been changed since YM2151 was moved to the YMFM-derived code. YM2151 を ymfm 由来のコードへ移行したので著作権の表示を変更しました。

The license terms have not changed. 使用許諾条件は変わっていません。

Creating ROM Files ROM ファイルの作成

Added Create EVENPRO.BIN and Create ODDPRO.BIN to the Create ROM File menu. ROM ファイルの作成メニューに EVENPRO.BIN の作成と ODDPRO.BIN の作成を追加しました。

Address range and file size were written in the menu for creating ROM files. ROM ファイルの作成メニューにアドレスの範囲とファイルサイズを書きました。


If an address of $01000000 or more is written to MAR/DAR/BAR of DMAC at 68030 or more, this is reported. 68030 以上のとき DMAC の MAR/DAR/BAR に $01000000 以上のアドレスが書き込まれたらそのことを報告します。

Execution Environment 実行環境

As of this writing, the latest OpenJDK is 2022-08-18. これを書いている時点で最新の OpenJDK は 2022-08-18 です。

Older versions of JDK may not work. これより古いバージョンの JDK では動作しないかも知れません。

Use the latest version of OpenJDK if possible. 可能な限り最新の OpenJDK を使用してください。

Host File System ホストファイルシステム

The readonly attribute can now be set for files in the host file system. ホストファイルシステムにあるファイルに readonly 属性を設定できるようにしました。

Indicator インジケータ

The model name display has been moved from the indicator to the title bar. 機種名の表示をインジケータからタイトルバーへ移しました。

Indicator text has been enlarged. インジケータの文字を大きくしました。


Fixed a bug that caused the startup screen to display 2MB when the size of main memory was 1MB on the X68000 Shodai/ACE/PRO/PROII. X68000 初代 /ACE/PRO/PROII でメインメモリのサイズが 1MB のとき起動画面に 2MB と表示されるバグを修正しました。

Added a workaround for the problem that IOCS _B_VERIFY in IPLROM 1.2-derived SASI BIOS does not work correctly when the supervisor stack is in an area where DMA transfer is not possible. IPLROM 1.2 由来の SASI BIOS の IOCS _B_VERIFY がスーパーバイザスタックが DMA 転送できない領域にあると正常に動作しない問題の対策を追加しました。

The model name and model code are placed at the end of IPLROM 1.6. IPLROM 1.6 の末尾に 機種名と機種コード が入ります。

The model name is displayed on the startup screen. The model name displayed is not the model name determined at startup, but the model name written when XEiJ created the ROM data. 起動画面に機種名を表示します。表示されるのは起動時に判別された機種名ではなく XEiJ が ROM のデータを作成したときに書き込まれた機種名です。

The judgment of the machine with built-in SASI is now compatible with X68000_MiSTer. SASI 内蔵機の判定を X68000_MiSTer に対応しました。

The screen mode when starting up with the T key held down has been changed to CRT screen mode 3 (256x240 non-interlaced). T キーを押しながら起動したときの画面モードを CRT 向け画面モード 3(256x240 ノンインターレース) に変更しました。

I wrote How to use IPLROM 1.6 on real machines. 実機で IPLROM 1.6 を使う方法 を書きました。

Updated ROM Debugger 3.60. Fixed several bugs in DB.X 3.00. ROM Debugger 3.60 を更新しました。DB.X 3.00 の不具合を幾つか修正しました。

Joystick Port ジョイスティックポート

When XEiJ was started, the joystick port setting screen always showed port 1. XEiJ を起動したときジョイスティックポートの設定画面にはいつもポート 1 が表示されていました。

Now it shows port 2 when only port 2 is connected or only port 2 has a Shiromadokun. ポート 2 だけ接続されているまたはポート 2 だけ白窓君のときはポート 2 を表示するように変更しました。

Main Memory メインメモリ

When the size of main memory is 1MB on X68000 Shodai/ACE/PRO/PROII, access to $00100000-$001FFFFF does not cause bus error. X68000 初代 /ACE/PRO/PROII でメインメモリのサイズが 1MB のとき $00100000-$001FFFFF へのアクセスでバスエラーが発生しないようにしました。

Model 機種

The accelerator name 060turboPRO can be specified. 060turboPRO is a fictitious model combining X68000 PRO and MC68060. アクセラレータ名 060turboPRO を指定できます。060turboPRO は X68000 PRO と MC68060 を組み合わせた架空の機種です。

You can specify the CZ name in addition to the common name and the accelerator name in the parameter model. パラメータ model に通称とアクレラレータ名に加えて CZ 名を指定できます。

OPM Log OPM ログ

OPM log has been added. OPM ログ を追加しました。

Writes to YM2151 registers during operation can be recorded with the elapsed time in units of 1 μ s and the performance can be replayed. 動作中の YM2151 のレジスタへの書き込みを 1 μ s 単位の経過時間とともに記録して演奏を再生できます。

You can check the emulation of YM2151 and the operation of the sound source driver. YM2151 のエミュレーションや音源ドライバの動作を確認できます。

Shiromadokun 白窓君

Fixed a bug in which the Clear Display command of Shiromadokun was filling the screen with 0x00 when it should have been filled with 0x20. 白窓君の Clear Display コマンドは画面を 0x20 で埋めなければならないのに 0x00 で埋めていたバグを修正しました。

YM2151 YM2151

YM2151 has been migrated from the old MAME-derived code to the new YMFM-derived code. YM2151 を旧 MAME 由来のコードから新しい ymfm 由来のコードへ移行しました。

The code for the other parts of XEiJ except for YM2151 was originally developed by me, Makoto Kamada, and does not use any other emulator's code. なお、XEiJ の YM2151 以外の部分のコードは私 Makoto Kamada が独自に開発したものであり、他のエミュレータのコードは使用していません。

Stereoscopic viewing 立体視

Stereoscopic viewing using the STEREOSCOPIC connector on the back of the X68000 is now supported. X68000 の背面にある STEREOSCOPIC コネクタを用いる 立体視 に対応しました。

The stereoscopic viewing method can be selected from naked-eye crossing, naked-eye parallel, side-by-side, and top-and-bottom. Side-by-side and top-and-bottom are intended to be projected on a 3D monitor, but the operation has not been actually connected and confirmed. 立体視の方法を、裸眼交差法、裸眼平行法、サイドバイサイド、トップアンドボトムから選択できます。 サイドバイサイドとトップアンドボトムは 3D モニタに映すことを想定していますが、実際に接続して動作を確認していません。

The menu bar and keyboard will not be displayed when side-by-side or top-and-bottom is selected in full-screen mode and stereoscopic view is selected. You can exit full-screen mode with the F11 key. The Alt+Shift+T keys can be used to start or end stereoscopic viewing. 全画面表示かつ立体視のとき、サイドバイサイドまたはトップアンドボトムを選択すると、メニューバーとキーボードが表示されなくなります。F11 キーで全画面表示を終了できます。Alt+Shift+T キーで立体視を開始または終了できます。

The stereoscopic viewing item has been added to the display menu. 画面メニュー立体視の項目 を追加しました。

Added parameters stereoscopic and stereoscopicmethod. パラメータ stereoscopic および stereoscopicmethod を追加しました。

GIF animation recording GIF アニメーション録画

Added GIF animation recording feature. The X68000 screen can be captured frame by frame and saved as a GIF animation. GIF アニメーション録画機能 を追加しました。X68000 の画面をフレーム毎に取り込んで GIF アニメーションとして保存できます。

You can select the waiting time, recording time, magnification factor, and interpolation algorithm in the GIF animation recording settings menu in the display menu. The waiting time is the number of seconds between when you press start recording button and when the recording starts, from 0 to 10 seconds. If you want to record a shooter's battlefield and you are reaching for the start recording button, you might get hit. By setting a wait time, you can pause the game and press the start recording button before entering the fight. The recording time is the number of seconds between the start and end of the recording, from 1 to 30 seconds. Recording for 30 seconds may not be possible in some environments because it consumes a lot of memory. Magnification is the magnification of the screen, from 10% to 200% with 100% being 1x. Interpolation algorithm is the algorithm used to scale the screen. You can choose between nearest neighbor interpolation, linear interpolation, and bicubic interpolation. 画面メニュー の中の GIF アニメーション録画設定メニュー で待ち時間、録画時間、倍率および補間アルゴリズムを選択できます。 待ち時間は録画開始ボタンを押してから録画が始まるまでの秒数です。0 秒から 10 秒まで指定できます。シューティングゲームの修羅場を録画したいときに録画開始ボタンに手を伸ばしていたらやられてしまうかも知れません。待ち時間を設定すれば修羅場に入る前にゲームを一時停止させて録画開始ボタンを押しておけます。 録画時間は録画が始まってから終わるまでの秒数です。1 秒から 30 秒まで指定できます。大量のメモリを消費するので環境によっては 30 秒間録画することはできないかも知れません。 倍率は画面の拡大率です。100% が 1 倍で 10% から 200% まで指定できます。 補間アルゴリズムは画面を拡大縮小するときのアルゴリズムです。最近傍補間、線形補間および三次補間から選択できます。

Start recording with the start recording button in the display menu. If you select GIF animation recording in the F11 key menu in the input menu, you can start recording with the F11 key. Recording will automatically end at the specified time. Recording cannot be stopped. Do not change the screen mode or exit the emulator while recording. 画面メニュー の中の録画開始ボタンで録画を開始します。 入力メニュー の中の F11 キーメニュー で GIF アニメーション録画を選択すると F11 キーで録画を開始できます。 録画は指定された時間で自動的に終了します。 録画を中止することはできません。録画中に画面モードを変更したりエミュレータを終了させたりしないでください。

GIF files are saved in the same capture directory as screenshots. GIF ファイルはスクリーンショットと同じ capture ディレクトリに保存されます。

Added parameters gifwaitingtime, gifrecordingtime, gifmagnification and gifinterpolation. パラメータ gifwaitingtimegifrecordingtimegifmagnification および gifinterpolation を追加しました。

Model name 機種名

Shodai, ACE, PRO and 030Compact can be specified as model names. The model name is written at the end of IPLROM 1.6 ($00FFFFE4-). 機種名に Shodai、ACE、PRO および 030Compact を指定できます。 機種名は IPLROM 1.6 の末尾 ($00FFFFE4-) に書き込まれます。


HLT is now supported. a_stop and a_cont will work. HLT に対応しました。a_stop と a_cont が機能します。

The number of cycles required for DMAC to transfer one word from SRAM to SRAM is 12 for PRO, 9 for Compact, and 10 for others. DMAC が SRAM から SRAM へ 1 ワード転送するときの所要サイクル数が、PRO は 12、Compact は 9、その他は 10 になります。


When ABCD/NBCD/SBCD was executed, the undefined V flag was cleared. This was changed so that the V flag is set when overflow occurs due to addition or subtraction of correction values, otherwise the V flag is cleared. (Reference: K.i's tweet) ABCD/NBCD/SBCD が実行されたとき、未定義の V フラグをクリアしていました。 これを、補正値の加算または減算でオーバーフローしたとき V フラグをセット、さもなくば V フラグをクリアするように変更しました。(参考 : K.i さんのツイート)


The undefined V flag change for ABCD/NBCD/SBCD are now the same as in MC68000. ABCD/NBCD/SBCD の未定義の V フラグの変化を MC68000 と同じにしました。

The number of MULU/MULS cycles is now the same as on the MC68000. MULU/MULS のサイクル数を MC68000 と同じにしました。


When MOVE16 (Ar)+,(Ar)+ was executed, Ar was increased by 32. This has been corrected to increase Ar by 16. MOVE16 (Ar)+,(Ar)+ が実行されたとき、Ar を 32 増やしていました。 これを、Ar を 16 増やすように修正しました。

Screen mode test 表示モードテスト

Fixed a bug that prevented the screen from updating correctly when operating the screen mode test with the MPU stopped in low-resolution mode. 低解像度モードのとき MPU を停止させて表示モードテストを操作すると画面が正しく更新されないバグを修正しました。


Added startup device as a display item on the startup screen. 起動画面の表示項目に起動デバイスを追加しました。

The display position of the startup screen is no longer shifted to the right when starting up in VGA mode. VGA モードで起動したとき起動画面の表示位置が右にずれないようにしました。

When the T key is held down during startup, the startup screen mode is set to CRTMOD(1), i.e., 512x480 dots, 15.980 kHz horizontal, 61.463 Hz vertical (interlaced). When a CRT capable of displaying only 15 kHz is connected, you can perform the necessary operations to start up a game that supports 15 kHz, such as moving the current directory. T キーを押しながら起動すると、起動時の画面モードが CRTMOD(1)、すなわち、512x480 ドット、水平 15.980kHz、垂直 61.463Hz(インターレース)に設定されます。15kHz だけ表示できる CRT が接続されているとき、カレントディレクトリを移動することなどの、15kHz に対応しているゲームを起動するために必要な操作ができます。

IPLROM 1.6 has a function to automatically modify HD_MAX in SRAM to allow booting from both SASI- and SCSI-embedded machines. This has been changed to be done only when initializing SRAM. As with IPLROM 1.0, HD_MAX is set to 1 when SRAM is initialized on a machine with built-in SASI. If ID0 is SxSI, boot from a floppy disk or other device and use SWITCH HD_MAX=0 to reset HD_MAX to 0. IPLROM 1.6 には SASI 内蔵機と SCSI 内蔵機のどちらでも起動できるようにするために SRAM にある HD_MAX を自動修正する機能があります。 これを SRAM を初期化するときにだけ行うように変更しました。IPLROM 1.0 と同様に SASI 内蔵機で SRAM を初期化すると HD_MAX が 1 になります。ID0 が SxSI の場合はフロッピーディスクなどから起動して SWITCH HD_MAX=0 で HD_MAX を 0 に戻してください。


Displays help messages separated by pages. However, when condrv.sys is present, it is displayed normally. ヘルプメッセージをページ毎に区切って表示します。 ただし、condrv.sys があるときは普通に表示します。


Added misc/ppcon.x. A character display routine that supports proportional-pitch and right-justification used in the IPLROM 1.6 startup screen can be incorporated as a device driver or resident program. misc/ppcon.x を追加しました。IPLROM 1.6 の起動画面で使われているプロポーショナルピッチや右寄せに対応した文字表示ルーチンをデバイスドライバまたは常駐プログラムとして組み込めるようにしたものです。

Mouse マウス

No longer switches to seamless mouse mode when losing focus in exclusive mouse mode. When in exclusive mouse mode, clicking the wheel (or right-clicking while holding down the Alt key on a two-button mouse) or pressing the F12 key will switch to seamless mouse mode. エクスクルーシブマウスモード でフォーカスを失ったとき、シームレスマウスモード に切り替わらないようにしました。 エクスクルーシブマウスモードのとき、ホイールをクリックする (2 ボタンマウスのときは Alt キーを押しながら右クリックする) か F12 キーを押すとシームレスマウスモードに切り替わります。

Printer プリンタ

Fixed the generation of pica, elite, small, and script fonts for use with printer. プリンタ で使うパイカ、エリート、縮小、スクリプトのフォントの生成を修正しました。


Timer-B can now be controlled. You can use the keyboard only when TBCR is $01 and TBDR is $0D. Timer-B を操作できるようにしました。TBCR が $01 かつ TBDR が $0D のときだけキーボードが使えます。


When a machine with built-in SCSI also has an expansion SCSI, the internal SCSI is not initialized before branching to the boot device process. When there is an expansion SCSI, the SCSI bus reset for the internal SCSI is not performed, so the time the startup message is displayed is shortened. If you want to check the boot message, press the reset button while holding down the L, N, or V key. SCSI 内蔵機で拡張 SCSI もあるとき、起動デバイスの処理に分岐する前に内蔵 SCSI を初期化しないようにしました。 拡張 SCSI があるとき、内蔵 SCSI の SCSI バスリセットが行われないため、起動メッセージが表示されている時間が短くなります。 起動メッセージを確認したいときは、L キー、N キー、V キーのいずれかを押しながらリセットボタンを押してください。

When the startup message is finished, if any of the L, N, or V keys is pressed, wait until those keys are released, empty the key buffer, and then wait until a key is pressed. The L key is for switching to LCD mode, the N key is for switching to CRT mode, and the V key is for switching to VGA mode. The screen mode switching is over before the startup message is displayed. 起動メッセージの表示が終わったとき、L キー、N キー、V キーのいずれかが押されていたら、それらのキーが離されるまで待って、キーバッファを空にしてから、キーが押されるまで待ちます。L キーは LCD モード、N キーは CRT モード、V キーは VGA モードに切り替えるキーです。 起動メッセージが表示される前に画面モードの切り替えは終わっています。

The display of the DMAC operating frequency at startup has been changed to show the performance when the performance of the X68000 is 100%. X68030 and PRO will be displayed as 125% and 83%, respectively. 起動時の DMAC の動作周波数の表示を X68000 の性能を 100% としたときの性能の表示に変更しました。X68030 は 125%、PRO は 83% と表示されます。

Changed the height of CRTMOD modes 1, 5, 9, and 13 for LCD from 512 dots to 480 dots, and the height of modes 3, 7, 11, and 15 from 256 dots to 240 dots. CRTMOD の LCD 向けのモード 1、5、9、13 の縦を 512 ドットから 480 ドットに、モード 3、7、11、15 の縦を 256 ドットから 240 ドットに変更しました。

When an undefined screen mode is specified in CRTMOD, it only returns the current screen mode instead of switching to the screen mode at startup. However, when $43xx or $4Cxx is specified, it will set the switch for CRT and LCD. CRTMOD で未定義の画面モードが指定されたとき、起動時の画面モードに切り替えるのではなく、現在の画面モードを返すだけにしました。 ただし、$43xx または $4Cxx が指定されたときは、CRT 向けと LCD 向けのスイッチを設定します。


Changed the condition for initialization from when the vector of _SCSIDRV did not point to itself to when the vector of _SCSIDRV did not point to itself or the SCSI initialized flag was not set. 初期化を行う条件を、_SCSIDRV のベクタが自分を指していなかったときから、_SCSIDRV のベクタが自分を指していなかったまたは SCSI 初期化済みフラグがセットされていないときに変更しました。

Fixed processing when Service Required interrupt occurs in _S_DATAINI. _S_DATAINI で Service Required 割り込みが発生したときの処理を修正しました。


Added crtmod16.x and crtmodtest.x to misc/*. misc/* に crtmod16.xcrtmodtest.x を追加しました。


Fixed a bug that caused an out of bounds error when the parameter -cgrom specified CGROM.DAT without ANK 6x12. パラメータ -cgrom で ANK 6x12 が入っていない CGROM.DAT を指定したとき out of bounds エラーが発生するバグを修正しました。


Fixed the operating frequency of the X68000 DMAC displayed at startup. 起動時に表示される X68000 の DMAC の動作周波数を修正しました。


The number of wait cycles when accessing SRAM has been adjusted. SRAM にアクセスするときのウェイトサイクル数を調整しました。


The number of cycles required for access by DMAC has been adjusted. DMAC によるアクセスの所要サイクル数を調整しました。

System port システムポート

Fixed a bug that when writing a word-size value with a lower byte of $31 to $00E8E00C, writing to SRAM was not allowed unless the upper byte of the value was $00. $00E8E00C に下位バイトが $31 の値をワードサイズで書き込んだとき、その上位バイトが $00 でなければ SRAM への書き込みが許可されないバグを修正しました。

Keyboard キーボード

The key assignment of the numeric keypad when NumLock is enabled was missing. Also, the assignment of the ROLL UP key and the ROLL DOWN key was reversed. The key assignments are saved, so even if you upgrade XEiJ, the old assignments will be inherited. Open the key assignments window by clicking Key assignments in the Input menu, and click "Reset to default" to apply the default values of the new version. NumLock されているときのテンキーの数字のキー割り当てが欠落していました。 また、ROLL UP キーと ROLL DOWN キーの割り当てが逆でした。 キー割り当ては保存されているので、XEiJ をバージョンアップしても古い割り当てが引き継がれます。 入力メニューキー割り当て でキー割り当てウインドウを開き、「初期値に戻す」をクリックすると、新しいバージョンの初期値が適用されます。


You can select whether to ignore or make a bus error when writing to SRAM in a write-protected state. Added the parameter -srambuserror. Added "Bus error when writing to SRAM" to the SRAM menu. 書き込みが禁止されている状態の SRAM への書き込みを無視するかバスエラーにするか選択できます。 パラメータ -srambuserror を追加しました。 SRAM メニュー に「SRAM への書き込み時のバスエラー」を追加しました。


At boot time, when the SRAM is initialized and the memory size setting in the SRAM does not match the actual memory size, IPLROM 1.6 asks if the setting should be corrected. There was a problem with this process and it sometimes failed to boot. On XEiJ, the emulator corrects the memory size setting in the SRAM, so this problem did not occur. 起動時、SRAM が初期化されていて SRAM にあるメモリサイズの設定値が実際のメモリサイズと合っていないとき、IPLROM 1.6 は設定値を修正するか問い合わせます。 この処理に不具合があって起動できないことがありました。XEiJ 上ではエミュレータが SRAM にあるメモリサイズの設定値を修正してしまうのでこの不具合は発生しませんでした。

At startup, IPLROM 1.6 displays an error message and stops if there is a SCSIINROM for a machine with SASI, or if there is no SCSIINROM 16 for a machine with SCSI. There was a problem with this process and it sometimes failed to boot. This problem did not occur on XEiJ because the wrong combination never occurs. 起動時、SASI 内蔵機なのに SCSIINROM があるときまたは SCSI 内蔵機なのに SCSIINROM 16 がないとき、IPLROM 1.6 はエラーメッセージを表示して停止します。 この処理に不具合があって起動できないことがありました。XEiJ 上では間違った組み合わせになることはないのでこの不具合は発生しませんでした。

Memory size メモリサイズ

When resetting, if the memory size setting in the SRAM is different from the actual memory size, you can now choose whether to correct the setting or not. Added parameter -modifymemorysize. Added "Modify the memory size in SRAM" to the main memory menu. リセットするとき、SRAM にあるメモリサイズの設定値が実際のメモリサイズと違っていたら、設定値を修正するかどうか選択できるようにしました。 パラメータ -modifymemorysize を追加しました。 メインメモリメニュー に「SRAM にあるメモリサイズを修正する」を追加しました。

ROM debugger startup flag ROM デバッガ起動フラグ

On X68030, when IPLROM 1.6 is not used and ROM30.DAT is not specified, i.e., when there is only the second half of IPLROM 1.3 but no ROM debugger that should be in the first half, the ROM debugger startup flag in SRAM is not turned on. X68030 で IPLROM 1.6 を使わず ROM30.DAT も指定しなかったとき、すなわち、IPLROM 1.3 の後半だけあって前半にあるはずの ROM デバッガがないとき、SRAM にある ROM デバッガ起動フラグを ON にしないようにしました。

IBM Super Floppy format IBM スーパーフロッピー形式

An image file in IBM Super Floppy format is considered a SCSI MO. It is not a boot disk, but you can use susie.x to access the files. It can be formatted with fim.x. IBM スーパーフロッピー形式のイメージファイルを SCSI MO とみなします。 起動ディスクにはなりませんが、susie.x を使ってファイルにアクセスできます。fim.x でフォーマットできます。


IPLROM 1.5 is obsolete and has been replaced by IPLROM 1.6. IPLROM modifications are now integrated into IPLROM 1.6, and no patch is applied when using IPLROM 1.0-1.3. Added parameter -iplrom16 to enable IPLROM 1.6 except for Hybrid and 060turbo, and parameter -iplrom256k to change the configuration of IPLROM 1.6. IPLROM 1.5 を廃止し、IPLROM 1.6 に移行しました。IPLROM の改造を IPLROM 1.6 に集約し、IPLROM 1.0~1.3 を使用する場合はパッチを当てないことにしました。Hybrid と 060turbo 以外で IPLROM 1.6 を有効にするパラメータ -iplrom16 と、IPLROM 1.6 の構成を変更するパラメータ -iplrom256k を追加しました。

Create ROM file ROM ファイルの作成

Added "Create XEIJROM30.DAT", "Create XEIJIPLROM30.DAT", "Create XEIJSCSIINROM.DAT" and "Create XEIJSCSIEXROM.DAT" to the menu Create ROM File. You may be able to use IPLROM 1.6 with other emulators. メニュー ROM ファイルの作成 に「XEIJROM30.DAT の作成」、「XEIJIPLROM30.DAT の作成」、「XEIJSCSIINROM.DAT の作成」および「XEIJSCSIEXROM.DAT の作成」を追加しました。IPLROM 1.6 を他のエミュレータで使えるかも知れません。

Keyboard キーボード

The initial value of the key assignment and the method of key identification are divided between Mac and Windows. (Thanks yuduki) キー割り当ての初期値とキーの判別方法を Mac のときと Windows のときで分けました。(Thanks yuduki)

The parameter keymap has been changed to reflect the change in the key identification method. キーの判別方法の変更に伴い、パラメータ keymap の内容が変更されました。

In Windows, NumLock becomes the CLR key, and although NumLock is switched when the CLR key is pressed, numbers on the numeric keypad can be input as numbers even if NumLock is off. Windows のとき NumLock が CLR キーになります。CLR キーを押すと NumLock が切り替わってしまいますが、NumLock が OFF でもテンキーの数字は数字のまま入力できます。

The F11 and F12 keys can be assigned. These key assignments take precedence over full screen display and exclusive mode switching. F11 キーと F12 キーを割り当てることができます。これらのキー割り当ては全画面表示やエクスクルーシブモードの切り替えよりも優先します。

Added "blank" and "reset to default" buttons to the key assignment window. キー割り当てウインドウに「白紙にする」ボタンと「初期値に戻す」ボタンを追加しました。

The parameter accessrawcode has been removed. パラメータ accessrawcode を廃止しました。

When the keyboard is disconnected, the key jack status in bit 3 of system port $00E8E007 will be set to 0. キーボードを切り離すとシステムポート $00E8E007 の ビット 3 のキージャックステータスが 0 になります。

Xellent30 mode Xellent30 モード

Added Xellent30 mode. Xellent30 モードを追加しました。


Added 384x256, 512x512 (square), and 256x256 (square) modes to CRTMOD in IPLROM 1.6. This feature may be substantially changed or eliminated in a future release. IPLROM 1.6 の CRTMOD に 384x256、512x512 (正方形)、256x256 (正方形) モードを加えました。この機能は今後のリリースで大幅に変更されるか廃止される可能性があります。

screen mode画面モードscreen size画面サイズreal screen size実画面サイズnumber of colors色数number of pagesページ数
32512x512 (square正方形)1024x1024161
36256x256 (square正方形)1024x1024161

Clipboard クリップボード

Added IllegalStateException workaround to the clipboard flavor listener. Reference : Tweet by kata68k クリップボードのフレーバーリスナーに IllegalStateException のワークアラウンドを加えました。参考 : カタさんのツイート

CON device control CON デバイス制御

You can paste an escape sequence into the console. コンソールにエスケープシーケンスを貼り付けることができます。


The MPU will not execute instructions while the DMAC is transferring at the auto-request maximum rate. DMAC がオートリクエスト最大速度で転送している間 MPU が命令を実行しないようにしました。


When $FFFFFFFF is written to FPCR and FPSR and then read immediately, $0000FFF0 and $0FFFFFF8 are now read out. FPCR と FPSR に $FFFFFFFF を書き込んでそれをすぐに読み出したとき、$0000FFF0 と $0FFFFFF8 が読み出されるようにしました。

The condition code byte of FPSR is no longer cleared by FMOVE.* FPn,<ea>. FMOVE.* FPn,<ea> で FPSR のコンディションコードバイトがクリアされないようにしました。

Human68k patch Human68k のパッチ

Added Human68k patch for MC68010. When executing the MOVE from SR instruction in user mode, it works fine on the MC68000, but causes a privilege violation exception on the MC68EC030. This difference is one of the reasons why programs made for the X68000 do not work on the X68030. Therefore, the Human68k has a mechanism to rewrite the MOVE from SR instruction to MOVE from CCR instruction, clear the instruction cache, and re-execute the program when a privilege violation exception occurs. Since the instruction cache is cleared by directly manipulating CACR, there is a problem that it does not work as expected except for MC68EC030. In MC68010, there is no CACR, so an illegal instruction exception occurs. It is patched to use IOCS _SYS_STAT instead of directly manipulating CACR. MC68010 のための Human68k のパッチを追加しました。MOVE from SR 命令をユーザモードで実行したとき MC68000 では問題なく動きますが MC68EC030 では特権違反例外が発生します。この違いは X68000 用に作られたプログラムが X68030 で動かない原因のひとつになります。そのため Human68k には特権違反例外が発生したとき MOVE from SR 命令を MOVE from CCR 命令に書き換えて命令キャッシュをクリアして再実行する仕組みがあります。CACR を直接操作して命令キャッシュをクリアしているので MC68EC030 以外で期待通りに動作しないという問題があります。MC68010 では CACR がないので不当命令例外が発生してしまいます。CACR を直接操作せず IOCS _SYS_STAT を使うようにパッチが当たります。


When accessing SRAM on the X68000, a wait of one cycle is applied. X68000 で SRAM にアクセスするときウェイトが 1 サイクル入ります。

Text storage and graphic storage テキストストレージとグラフィックストレージ

The CRTC's text storage and graphic storage (bits 12 and 11 of R20) can now be manipulated. This mode uses VRAM as storage when screen display is not needed. When text storage is turned on, nothing changes. When graphic storage is turned on, the memory mode is fixed to 3 (7 when the extended graphic screen is enabled). The display on the emulator does not change, but on the actual device, the screen will be distorted. It is recommended to turn off the screen display by operating the video controller before turning on the storage. CRTC のテキストストレージとグラフィックストレージ (R20 のビット 12 と 11) を操作できるようにしました。画面表示が不要なとき、VRAM をストレージとして用いるモードです。テキストストレージを ON にしても何も変わりません。グラフィックストレージを ON にするとメモリモードが 3 (拡張グラフィック画面が有効なときは 7) に固定されます。エミュレータの表示は変わりませんが、実機では画面が乱れます。ビデオコントローラを操作して画面表示を OFF にしてからストレージを ON にした方がよいでしょう。

Obsolete features 廃止された機能

Font editor and profiling have been discontinued. フォントエディタとプロファイリングを廃止しました。


SCSI _S_DATAINI in ROM 1.5 was not being relocated correctly when automatically generating SCSIINROM and SCSIEXROM. SCSIINROM と SCSIEXROM を自動生成するとき ROM 1.5 の SCSI _S_DATAINI が正しくリロケートされていませんでした。


When D1.W=$43xx is given, the sync frequency for CRT is selected, and when D1.W=$4Cxx is given, the sync frequency for LCD is selected. D1.W=$43xx を与えると CRT 向けの同期周波数が選択され、D1.W=$4Cxx を与えると LCD 向けの同期周波数が選択されます。

The screen sizes for screen modes 17/21/25 and 18/22/26 are as follows. 画面モード 17/21/25 と 18/22/26 の画面サイズは以下の通りです。

screen mode画面モードfor CRTCRT 向けfor LCDLCD 向けnote備考


When I switched the order of the code, I forgot to move the labels, so the sprites could not be displayed. コードの順序を入れ替えたときラベルを動かすのを忘れたためスプライトが表示できなくなっていました。


Fixed a bug that fast clearing did not start when writing to the operating port with word size or long word size. 動作ポートにワードサイズまたはロングワードサイズで書き込むと高速クリアが始まらなかったバグを修正しました。

Fixed a bug that allowed the scrolling position in the Y direction of the text and graphic screens to be changed anywhere on the screen. テキスト画面とグラフィック画面の Y 方向のスクロール位置を画面のどこでも変更できたバグを修正しました。

Sprite screen スプライト画面

When writing to the Sprite Scroll Register, Sprite PCG, and Text Area in byte size, the same value is now written to the upper and lower bytes in word size. スプライトスクロールレジスタとスプライト PCG およびテキストエリアにバイトサイズで書き込んだとき、ワードサイズで上位バイトと下位バイトに同じ値が書き込まれるようにしました。

ROM 1.5 : Initialize the area set port ROM 1.5 : エリアセットポートの初期化

The IPLROM 1.3 of X68030 initializes the area set port with the CLR instruction. If you try to use this on the X68000 as is, you will get a bus error. This is because the area set port is write-only, and the MC68000's CLR instruction reads the effective address. This bug has been fixed. Reference : futtyt's series of thoughts X68030 の IPLROM 1.3 はエリアセットポートの初期化を CLR 命令で行います。 これをそのまま X68000 で使おうとするとバスエラーが発生してしまいます。 なぜなら、エリアセットポートはライトオンリーで、MC68000 の CLR 命令は実効アドレスをリードするからです。 このバグを修正しました。 参考 : ふってぃさんの一連の考察


If you try to operate a non-existent internal SPC on a machine with built-in SASI, it will dump meaningless data to the SASI port. For machines with built-in SASI, IOCS _SCSIDRV does nothing and returns the error code -1. SASI 内蔵機で存在しない内蔵 SPC を操作しようとすると SASI ポートに無意味なデータを垂れ流すことになります。SASI 内蔵機のとき IOCS _SCSIDRV は何もせずエラーコード -1 を返すようにしました。


SCSI _S_DATAINI writes data to memory in longword size when receiving more than 8 bytes, so when used with MC68000, an address error occurs when the address is an odd number. It has been modified to write data to memory in byte size when used with the MC68000. The same transfer routines are used in the following SCSI calls : _S_INQUIRY _S_MODESENSE _S_READ _S_READEXT _S_READCAP _S_REQUEST SCSI _S_DATAINI は 8 バイト以上受信するときデータをロングワードサイズでメモリに書き込むので、MC68000 で使うとアドレスが奇数のときにアドレスエラーが発生してしまいます。MC68000 のときはデータをバイトサイズでメモリに書き込むように、修正しました。 同じ転送ルーチンが以下の SCSI コールでも使われています : _S_INQUIRY _S_MODESENSE _S_READ _S_READEXT _S_READCAP _S_REQUEST

It seems that some hard disks do not wait for the ACK to become False when transitioning from the data-in phase to the status phase. If such a hard disk is connected, a Service Required interrupt may occur due to a phase mismatch. If a Service Required interrupt occurs in SCSI _S_DATAINI, the transfer will be interrupted and the data remaining in the FIFO will not be received. As a countermeasure, even if a Service Required interrupt occurs during transfer, the transfer will be continued if the FIFO is not empty. In addition, even if a Service Required interrupt occurs when the transfer is completed, it is not considered an error. Reference : Tweet by 52429 データインフェーズからステータスフェーズに移行するとき ACK が False になるのを待たないハードディスクがあるようです。 そのようなハードディスクを接続するとフェーズの不一致のために Service Required 割り込みが発生する可能性があります。SCSI _S_DATAINI で Service Required 割り込みが発生すると転送が中断して FIFO に残っていたデータを受け取り損ねてしまいます。 対策として、転送中に Service Required 割り込みが発生しても FIFO が空でなければ転送を継続するように変更しました。 また、転送が終了したときに Service Required 割り込みが発生していてもエラーとみなさないようにしました。 参考 : 52429 さんのツイート


The X68030 screen is normally output at the CRT sync frequency, but the LCD sync frequency can also be selected. When bit 0 of $00ED0095 in SRAM is set to 0, the output is for CRT, and when it is set to 1, the output is for LCD. This bit is set when the L or V key is pressed while booting, and cleared when the N key is pressed while booting. By using the ROM with this patch applied on the actual device, you may be able to avoid the sad situation where the boot screen is stretched vertically and the bottom edge protrudes when the X68030 is connected to an ordinary LCD monitor. When you select the sync frequency for LCD, games that use sync signals may not run or may run at a speed different from the original speed. X68030 の画面は通常は CRT 向けの同期周波数で出力されますが、LCD 向けの同期周波数も選べるようにしました。SRAM の $00ED0095 のビット 0 が 0 のときは CRT 向け、1 のときは LCD 向けになります。 このビットは L または V キーを押しながら起動するとセットされ、N キーを押しながら起動するとクリアされます。 このパッチを当てた ROM を実機で使用することで、X68030 を一般的な液晶モニタに接続したときに起動画面が縦に伸びて下端がはみ出すという悲しい状況を回避できるかも知れません。LCD 向けの同期周波数を選んだとき、同期信号を使うゲームが動作しなかったり、本来の速度と異なる速度で動作する可能性があります。

screen mode画面モードfor CRTCRT 向けfor LCDLCD 向け
horizontal sync frequency水平同期周波数vertical sync frequency垂直同期周波数horizontal sync frequency水平同期周波数vertical sync frequency垂直同期周波数
768x512high resolution高解像度31.500kHz55.458Hz35.056kHz56.090Hz
512x512high resolution高解像度31.500kHz55.458Hz35.341kHz56.546Hz
low resolution低解像度15.980kHz61.462Hz
256x256high resolution高解像度31.500kHz55.458Hz34.500kHz55.200Hz
low resolution低解像度15.980kHz61.462Hz47.250kHz75.600Hz
SVGA 800x600 for reference参考値35.156kHz56.250Hz


In screen mode 16 (768x512), the sprite cannot be displayed, so IOCS _SP_INIT returns the error code -1. In screen mode 19 (640x480), the sprite cannot be displayed either, but IOCS _SP_INIT stops with a bus error. This is because IOCS _SP_INIT does not correctly identify the screen mode in which the sprite can be displayed. This bug has been fixed. The same identification routine is used in the following IOCS calls : _SP_ON _SP_CGCLR _SP_DEFCG _SP_GTPCG _SP_REGST _SP_REGGT _BGSCRLST _BGSCRLGT _BGCTRLST _BGCTRLGT _BGTEXTCL _ BGTEXTST _BGTEXTGT 画面モード 16 (768x512) のときはスプライトを表示できないので IOCS _SP_INIT はエラーコード -1 を返します。 画面モード 19 (640x480) のときもスプライトを表示できませんが IOCS _SP_INIT はバスエラーで止まってしまいます。 これは IOCS _SP_INIT がスプライトを表示できる画面モードを正しく判別していないためです。 このバグを修正しました。 同じ判別ルーチンが 以下の IOCS コールでも使われています : _SP_ON _SP_CGCLR _SP_DEFCG _SP_GTPCG _SP_REGST _SP_REGGT _BGSCRLST _BGSCRLGT _BGCTRLST _BGCTRLGT _BGTEXTCL _BGTEXTST _BGTEXTGT

ROM 1.5 : 6x12 ANK font ROM 1.5 : 6x12 ANK フォント

The 6x12 ANK font is located in IPLROM on the X68000 and in CGROM on the X68030. Therefore, if you combine the CGROM of X68000 with the IPLROM of X68030, the 6x12 ANK font is not displayed in SX-WINDOW and so on. If you are using an emulator, you can solve this problem by simply replacing CGROM.DAT with CGROM30.DAT, but if the CGROM and IPLROM of the actual machine are not integrated, you cannot easily replace the CGROM. To solve this problem, we placed 6x12 ANK fonts at $00FEF400~$00FEFFFF of IPLROM and adjusted IOCS _FNTADR to display 6x12 ANK fonts without using CGROM. 6x12 ANK フォントは X68000 では IPLROM にあり X68030 では CGROM にあります。 そのため、X68000 の CGROM と X68030 の IPLROM を組み合わせると SX-WINDOW などで 6x12 ANK フォントが表示されません。 エミュレータならば CGROM.DAT を CGROM30.DAT に差し替えるだけで解決しますが、実機の CGROM と IPLROM が一体になっていない機種では CGROM を簡単に差し替えることができません。 そこで、6x12 ANK フォントを IPLROM の $00FEF400~$00FEFFFF に配置した上で IOCS _FNTADR を調整することで、CGROM を使わずに 6x12 ANK フォントを表示できるようにしました。

Create ROM file ROM ファイルの作成

Added Create ROM file to the Config menu. XEiJ uses ROM 1.5 by applying a patch to X68030 ROM 1.3. When you want to use this patched ROM with other emulators or actual devices, you need to create the necessary files. If you read the contents of the ROM from the X68030, have XEiJ patch it, and then return it to the X68030, you will have a ROM that can boot the 060turbo. 設定メニューROM ファイルの作成 を追加しました。XEiJ は X68030 の ROM 1.3 にパッチを当てて ROM 1.5 として使います。 このパッチが当たった ROM を他のエミュレータまたは実機で使いたいとき必要になるファイルを作ります。X68030 実機から ROM の内容を読み出してそれに XEiJ にパッチをあてさせてそれを再び X68030 実機に戻すと、060turbo を起動できる ROM ができます。


Extra reads of the following instructions are executed. 以下の命令の余分なリードを実行します。

Sprite screen スプライト画面

Accessing the sprite scroll register and sprite PCG and text area causes a bus error when the lower 5 bits of the R20 register in the CRTC are %1??1?. CRTC の R20 レジスタの下位 5 ビットが %1??1? のとき、スプライトスクロールレジスタとスプライト PCG およびテキストエリアにアクセスするとバスエラーが発生します。


The lengths of the horizontal back porch and horizontal front porch were corrected. 水平バックポーチと水平フロントポーチの長さを修正しました。


When resetting the system, the boot sequence could be stopped because the CB was not cleared. システムをリセットするとき CB をクリアしていなかったため起動シーケンスが止まることがありました。

ROM 1.0

IPLROM 1.0 ($10870318) taken from the first X68000 (Shodai) is recognized. X68000 初代から吸い出された IPLROM 1.0 ($10870318) が認識されます。

Execution environment 実行環境

Use JDK 13.0.1 GA Release to complile and run XEiJ. XEiJ のコンパイルと実行に JDK 13.0.1 GA Release を使います。


TOMO confirmed that the ROM patched by XEiJ can be used with real 060turbo machines. XEiJ がパッチを当てた ROM が 060turbo の実機で使えることを TOMO さんに確認していただきました。

The operating frequency of real 040turbo machines will be displayed correctly on the startup screen. But the ROM patched by XEiJ is not able to be used with 040turbo because the patches collide. Use not-patched ROM of X68030 for 040turbo. 040turbo の実機で起動画面に動作周波数が正しく表示されます。しかし、XEiJ がパッチを当てた ROM はパッチが衝突するので 040turbo では使用できません。040turbo ではパッチを当てていない X68030 の ROM を使用してください。


"Try to run the NetBSD/x68k" was updated to try NetBSD-8.1. NetBSD/x68k を動かしてみる」を NetBSD-8.1 に更新しました。

Menu メニュー

Mouse speed could not be changed. マウスカーソルの速度 が変更できなくなっていました。

Parameter パラメータ

When the parameter boot was specified with a hard disk image file, an out-of-memory error had occurred. パラメータ boot にハードディスクのイメージファイルを指定したときメモリ不足のエラーが出ることがありました。

The parameter clock could not accept a decimal number. パラメータ clock が 10 進数を受け付けなくなっていました。

When the parameter rom was specified, font data that was saved in the configuration file was wrongly restored. パラメータ rom が指定されたとき設定ファイルに保存されたフォントデータが誤って復元されていました。


In MC68060, if the branch destination address is odd, Bcc/DBcc/FBcc cause an address error even if a branch is not taken. MC68060 の Bcc/DBcc/FBcc は分岐先のアドレスが奇数のとき分岐しなくてもアドレスエラーになります。

Displacement of FDBcc had been read from not the code space but the data space. FDBcc のディスプレースメントをコード空間ではなくデータ空間から読んでいました。


The number of clock cycles of ADDA.L, SUBA.L, MULU.W and MULS.W were corrected. ADDA.L、SUBA.L、MULU.W および MULS.W のクロックサイクル数を修正しました。

Website ウェブサイト

The website of XEiJ had been moved to Remove from the Exception Site List in the Java control panel, if any. XEiJ のウェブサイトは に引っ越しました。Java コントロールパネルの例外サイトリストに があれば取り除いてください。

Execution environment 実行環境

Use JDK 11.0.2 GA Release to complile and run XEiJ. XEiJ のコンパイルと実行に JDK 11.0.2 GA Release を使います。

How to start 起動方法

The Java applet mode to launch XEiJ on web browsers and the JNLP mode to launch XEiJ via Java Web Start had been abolished. XEiJ only works in the command line mode from now on. ウェブブラウザ上で XEiJ を起動する Java アプレットモードと Java Web Start を介して XEiJ を起動する JNLP モードを廃止しました。今後、XEiJ はコマンドラインモードでのみ動作します。

Log messages ログメッセージ

Output destination of log messages was changed from the terminal to standard output. ログメッセージの出力先を ターミナル から標準出力に変更しました。

Key assignments キー割り当て

You can change key assignments as to which key of X68000 is to be pressed when a key of the host machine is pressed. The assignment of the escape key can not be changed because the escape key is used to cancel assignments. ホストマシンのキーを押したとき X68000 のどのキーが押されたことにするか、キー割り当てを変更できます。エスケープキーは割り当てを取り消すときに使うので割り当てを変更できません。

Key assignments are stored in the parameter keymap. キー割り当てはパラメータ keymap に保存されます。

Key input キー入力

To distinguish between IntlYen to the left of Backspace and IntlRo to the left of ShiftRight on Japanese 106 keyboard accurately, access to KeyEvent.rawCode is attempted. Therefore, the following warning message will appear on the console at startup. 日本語 106 キーボードで Backspace の左隣にある IntlYen と ShiftRight の左隣にある IntlRo を正確に見分けるために、KeyEvent.rawCode にアクセスを試みます。そのため、起動時にコンソールに以下の警告メッセージが表示されます。

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by xeij.Keyboard (.../XEiJ.jar) to field java.awt.event.KeyEvent.rawCode
WARNING: Please consider reporting this to the maintainers of xeij.Keyboard
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

If the parameter accessrawcode is off, KeyEvent.rawCode is not accessed. When KeyEvent.rawCode can not be accessed, rawCode= is extracted from the result of KeyEvent.toString (). パラメータ accessrawcode が off のときは KeyEvent.rawCode にアクセスしません。KeyEvent.rawCode にアクセスできないときは KeyEvent.toString () の結果から rawCode=~ の部分を切り出します。

The key code attribute values such as IntlYen are written at UI Events KeyboardEvent code Values . IntlYen などの key code attribute value は UI Events KeyboardEvent code Values に書かれています。

MC68010 MC68010

In X68000 Hybrid mode, you can select MC68010 with the parameter mpu or the MPU menu. Differences between MC68000 and MC68010 of XEiJ are as follows. X68000 Hybrid モードのとき、パラメータ mpu または MPU メニュー で MC68010 を選択できます。XEiJ の MC68000 と MC68010 の違いは以下の通りです。

Operation execution time is the same as MC68000. Loop mode has not been implemented. 命令の所要時間は MC68000 と同じです。ループモードは実装されていません。

060turbo mode 060turbo モード

Default operation frequency of 060turbo mode was reduced to 33.3MHz. 060turbo モードのデフォルトの動作周波数を 33.3MHz に下げました。

Trace machine instructions with mouse マウスによる機械語命令のトレース

You can stop and resume emulation by clicking button 4 on a 5 button mouse. When emulation is stopped, you can trace an instruction by forward rotating the mouse wheel and step an instruction by backward rotating the mouse wheel. Usually one instruction is executed per one notch. 10 instructions are executed if you hold down the Shift key. 100 instructions are executed if you hold down the Ctrl key. You can execute step-until-return by backward rotating the mouse wheel with holding down the Alt key. 5 ボタンマウスのボタン 4 でエミュレーションの停止と再開ができます。エミュレーションが停止しているとき、マウスホイールの正回転でトレース実行、負回転でステップ実行できます。通常は 1 ノッチにつき 1 命令、Shift キーを押しているときは 10 命令、Ctrl キーを押しているときは 100 命令が実行されます。Alt キーを押しながらマウスホイールを負回転させるとステップアンティルリターンが実行されます。

Extended click 延長クリック

The state that the button is pressed will be kept until the port B of SCC is read to detect mouse clicks without missing when a mouse button is pressed. Normally, the state of the mouse of X68000 is scanned at 1/100 second intervals, so clicks manipulated by humans are rarely missed. However, there was a possibility that clicks could be lost when the scan interval was longer than 1/100 second due to the heavy operation of the emulator or when the mechanically generated click was extremely short. マウスのボタンが押されてから SCC のポート B が読み出されるまでボタンが押されたままの状態にしておくことで、クリックを取りこぼさないようにしました。通常、X68000 のマウスの状態は 1/100 秒間隔でスキャンされるので、人間が操作したクリックが取りこぼされることはほとんどありません。しかし、エミュレータの動作が重くてスキャンの間隔が 1/100 秒よりも長くなったり、機械的に生成されたクリックが極端に短いと、クリックを取りこぼす可能性がありました。

Joystick port ジョイスティックポート

You can select devices connected to the joystick ports on the joystick port window. Corresponding parameter is joystickN. ジョイスティックポートウインドウでジョイスティックポートに接続するデバイスを選択できます。対応するパラメータは joystickN です。

Normal 2 button pad ノーマル 2 ボタンパッド

You can connect normal 2 button pads to joystick ports. It is a normal joy pad. No special joystick driver is required to use them. ジョイスティックポートに ノーマル 2 ボタンパッド を接続できます。普通のジョイパッドです。特別なジョイスティックドライバは不要です。

Settings of normal 2 button pads are stored in the parameter normal2buttonN. ノーマル 2 ボタンパッドの設定はパラメータ normal2buttonN に保存されます。

MEGA DRIVE 3 button pad メガドラ 3 ボタンパッド

You can connect MEGA DRIVE 3 button pads to joystick ports. Joystick driver that supports the Chelnov adapter is required to use them. ジョイスティックポートに メガドラ 3 ボタンパッド を接続できます。メガドラパッド変換アダプタに対応しているジョイスティックドライバが必要です。

Settings of MEGA DRIVE 3 button pads are stored in the parameter megadrive3buttonN. メガドラ 3 ボタンパッドの設定はパラメータ megadrive3buttonN に保存されます。

MEGA DRIVE 6 button pad メガドラ 6 ボタンパッド

You can connect MEGA DRIVE 6 button pads to joystick ports. Joystick driver that supports the Chelnov adapter is required to use them. ジョイスティックポートに メガドラ 6 ボタンパッド を接続できます。メガドラパッド変換アダプタに対応しているジョイスティックドライバが必要です。

Settings of MEGA DRIVE 6 button pads are stored in the parameter megadrive6buttonN. メガドラ 6 ボタンパッドの設定はパラメータ megadrive6buttonN に保存されます。

Shiromadokun 白窓君

You can connect the LCD device Shiromadokun to joystick ports. Shiromadokun device driver JLCDDRV.x is included in Gekikou Dennou Club Volume 3 and Gekkan Dennou Club Volume 147. LCD デバイス 白窓君 をジョイスティックポートに接続できます。白窓君デバイスドライバ JLCDDRV.x は激光電脳倶楽部 3 号と月刊電脳倶楽部 147 号に収録されています。

You can select Japanese specification or European specification with the parameter shiromadokunN. パラメータ shiromadokunN で日本仕様と欧州仕様を選択できます。

Font data フォントデータ

Font data is stored in the parameter f___data. フォントデータがパラメータ f___data に保存されます。

Font files フォントファイル

You can specify font files with the parameter f___. パラメータ f___ でフォントファイルを指定できます。

Execution environment 実行環境

Required version of Java SE has been updated to 8u131 (1.8.0_131) or later. 要求する Java SE のバージョンを 8u131 (1.8.0_131) 以上に更新しました。

*.DIM files *.DIM ファイル

*.DIM files are floppy disk image files converted by DIFC.X developed by GUN. XEiJ supports them now on not only reading but also writing and formatting. There are five acceptable media types: 2HD, 2HS, 2HC, 2HDE and 2HQ. The over track mode is not supported. On reading, unsaved tracks are filled by 0xe5. On writing and formatting, all tracks that include data other than 0xe5 are saved regardless of FAT. You can change the media type of *.DIM files by formatting with FORMAT.X or other tools. Note that formatting in an unsupported media type makes data unable to be written back to image files. *.DIM は GUN さんの DIFC.X で変換されたフロッピーディスクのイメージファイルです。XEiJ では読み込みだけ対応していましたが、書き出しと新規作成もできるようにしました。対応しているメディアタイプは 2HD、2HS、2HC、2HDE、2HQ の 5 種類です。オーバートラックには対応していません。読み込むときは保存されていないトラックを 0xe5 で充填し、書き出すときと新規作成するときは FAT に関係なく 0xe5 以外のデータを含むトラックをすべて保存します。*.DIM から読み込んだディスクを FORMAT.X などでフォーマットするとメディアタイプを変更できますが、対応していないメディアタイプに変更すると書き出せなくなるので注意してください。

Mouse マウス

Menu "Ctrl-key + left-button = right-button" and parameter ctrlright were added. Operations of left-button are treated as operations of right-button while Ctrl-key is pressed. 入力メニューの Ctrl キー+左ボタン=右ボタン とパラメータの ctrlright を追加しました。ON にすると Ctrl (control) キーが押されている間マウスの左ボタンの操作を右ボタンの操作とみなします。

Usually, right-button of mouse is assigned to the button 3 of a commonplace three button mouse. When a two button mouse is connected, right-button of mouse is assigned to the button 2. ありふれた 3 ボタンマウスが接続されていることを想定して右ボタンをボタン 3 に割り当てていましたが、2 ボタンマウスのときは右ボタンをボタン 2 に割り当てるようにしました。

When a two button mouse is connected, you can change the mouse mode by Alt-right click. Use conventional wheel click in case of a three button mouse. 2 ボタンマウスのときは Alt (option) + 右クリック でシームレス / エクスクルーシブを切り替えられるようにしました。3 ボタンマウスのときは従来通り中ボタンで切り替わります。

To check what kind of event occurs when mouse button is operated, menu item "Mouse button status" was added to the menu "Miscellaneous". When a mouse button is pressed or released, a message such as "mouse button 1/5 was pressed (0x00000010, 0x00000400)" appears on the terminal. マウスのボタンが操作されたときどのようなイベントが発生しているか確認するために、メニュー『その他』にメニューアイテム『マウスのボタンの状態』を追加しました。マウスのボタンを押したときまたは離したとき「mouse button 1/5 was pressed (0x00000010, 0x00000400)」のようなメッセージが ターミナル に表示されます。


When XEiJ generates CGROM automatically with fonts of the host machine, characters defined in Shift_JIS-2004 (JIS X 0213) are drawn at unused blank codes. " か゚き゚く゚け゚こ゚" seems not drawn beautifully with MS Gothic and MS Mincho. ホストマシンのフォントを使って CGROM を自動生成するとき、使われていない空白のコードに Shift_JIS-2004 (JIS X 0213) で定義されている文字を展開します。MS ゴシックや MS 明朝は「か゚き゚く゚け゚こ゚」が綺麗に書けないようです。

Character code table is available. 文字コード表 を作りました。


RTC was corrected to avoid ArrayIndexOutOfBoundsException. RTC の操作で ArrayIndexOutOfBoundsException が発生することがありました。

TEST register of RTC was implemented. winner2.x that was developed by jinson runs. RTC の TEST レジスタを実装しました。じんそんさんの winner2.x が動きます。

References 参考

Menu "RTC" was added. When the clock of the X68000 is not on time with the clock of the host machine, use menu item "Adjust clock to host". RTC メニュー を追加しました。X68000 の時計とホストの時計がずれてしまったとき「時計をホストマシンに合わせる」で元に戻せます。

Floating point instructions 浮動小数点命令

Set UNFL in FDIV, FMUL and FSCALE when a result changed from a denormalized number to a normalized number, FDIV、FMUL、FSCALE で拡張精度の結果が切り上げられて非正規化数から正規化数になったとき、UNFL がセットされていませんでした。

Clear OPERR in FMOVE.P FPn,<ea> when FPn is±0 or±Inf or NaN and k-factor is 18 or upper. FMOVE.P FPn,<ea> で FPn が ±0 または ±Inf または NaN で k-factor が 18 以上のとき OPERR がセットされていました。

References 参考


fputest.x was updated. fputest.x を更新しました。


FSGLDIV、FSGLMUL の変則的な動作が他の命令の動作に影響を与えていました。

FCOSH、FSINH で FPCR の丸めモードがゼロへの丸めまたは負の無限大への丸めでオーバーフローしたとき、結果が正規化数の最大値ではなく無限大になってしまうことがありました。

FTENTOX で ArrayIndexOutOfBoundsException が発生することがありました。


fputest.x を更新しました。およそ 29MB のデータを 7MB 弱に圧縮して抱えており、テスト毎に展開して比較する仕組みになっています。実行するにはフリーエリアが 10MB くらい必要です。


要求する Java SE のバージョンを 8u121 (1.8.0_121) 以上に更新しました。


垂直映像期間のすべてのラスタについて、水平映像期間の開始時から終了時までの間に、全画面再描画に相当する画面およびプレーンの表示の有無、重ね合わせの順序、半透明または特殊プライオリティ、パレット、スクロール位置などの変更があったとき、水平映像期間の終了時にデータの後半 (右半分) を再描画します。グラフィック画面で 768×512 ドット 256 色表示 (テキスト画面と混ぜて 4096 色表示) を行う画像ローダー (Arimac さんの BMPL.X/LPICL.X、CUL. さんの COPIX.r など) の画面を再現できます。



FATAN の引数が大きすぎて ±π /2 を返すとき、丸め処理が行われていませんでした。

FCOSH で FPCR の丸めモードがゼロへの丸めまたは負の無限大への丸めでオーバーフローしたとき、結果が正規化数の最大値ではなく無限大になっていました。

FDBcc、FScc、FTRAPcc で FPSR の BSUN をセットするとき、IOP をセットしていませんでした。

MC68060 の FDBcc で未実装浮動小数点命令例外が発生したとき、スタックに積まれた PC が次の命令ではなくディスプレースメントを指していました。

FMOVE.B FPn,<ea>、FMOVE.W FPn,<ea>、FMOVE.L FPn,<ea> が NaN を -1 ではなく 0 に変換していました。

FMOVE.L FPn,<ea> で FPCR の丸め桁数がシングルのとき、シングルで表現できないがロングで表現できる値の変換に失敗していました。ロングに変換する前に誤ってシングルに丸めていました。

FMOVE.S FPn,<ea> と FMOVE.D FPn,<ea> で FPCR の丸めモードがゼロへの丸めでオーバーフローしたとき、結果が正規化数の最大値ではなく無限大になっていました。

FSGLDIV、FSGLMUL の動作を実機に近付けました。MC68882 のバグは再現していません。

FSUB で 2127 から 264-1 を引いたとき、FPSR の INEX2 と INEX がセットされていませんでした。指数をずらした組み合わせや FADD で符号が異なる場合も同様でした。

演算結果の仮数部に誤差がない状態で指数部がオーバーフローして無限大または正規化数の最大値を返すとき、FPSR の INEX2 と INEX がセットされていませんでした。

演算結果が丸め処理で切り上げられて非正規化数から正規化数になったとき、FPSR の UNFL がセットされていました。


実験的に FLGAMMA と FTGAMMA を追加しました。

1110000FLGAMMA.[BWLSDXP] <ea>,FPnログガンマ関数
1110001FTGAMMA.[BWLSDXP] <ea>,FPnガンマ関数


CHK2、CMP2 の未定義のビットを含むコンディションコードの作り方を U - D、L - D、D - L のいずれかに帰着させる方法に変更しました。引数をすべて 32 ビットに符号拡張してから符号なし比較で以下のように分岐させます。

if (L < D && L ≤ U || D == U) {
  U - D
} else if (D < U && U < L) {
  L - D
} else {
  D - L


DIVS、DIVSL、DIVU、DIVUL でゼロ除算が発生したときコンディションコードの未定義のビットで引数以外の要因で変化する Z と V のうち、V を作るコードを加えました。



SRAM メニューsramsize パラメータ で SRAM の容量を 16KB/32KB/64KB から選べるようにしました。メモリマップはリセットしたときに変更されます。なお、XEiJ は SRAM の内容を設定ファイルに保存するので通常は SRAM.DAT ファイルを使いません。他のエミュレータで作成した SRAM.DAT ファイルをインポートするときは SRAM メニュー で SRAM の容量を指定してから読み込ませてください。


24 ドットビットイメージの改行ピッチを修正しました。


ホストファイルシステム でファイルをオープンした直後に先頭から 16KB 未満の位置をシークしてすぐに書き込むと先頭からシークした位置までのデータが消えてしまうバグを修正しました。また、シークコマンドで負のオフセットを指定するとエラーになるバグを修正しました。


fputest.x を作り直しました。


instructiontest.x を更新しました。easy モードで CHK 命令のコンディションコードの未定義の Z、V、C がテストされていました。また、兼用になっていたコンディションコードの X と例外発生フラグを分けました。


要求する Java SE のバージョンを 8u111 (1.8.0_111) 以上に、推奨する Java SE のバージョンを 8u112 (1.8.0_112) 以上に更新しました。


プリンタ を追加しました。


CRTC の未公開のメモリモード 2 の処理を追加しました。060turbo と 060turbo 以外で動作が少し違います。


crtcmmtest.x を追加しました。


逆アセンブルリスト などにボタンを追加しました。


instructiontest.x を更新しました。コマンドラインに空白で区切って複数の命令を書けるようにしました。また、デフォルトでコンディションコードの未定義のビットを無視するようにしました。コンディションコードの未定義のビットもテストするときは hard と書いてから命令を書きます。

B:\>instructiontest easy all hard all

と書くとすべてのテストが実行されます。所要時間は 060turbo (実機) で 15 分、X68030 (実機) で 102 分でした。テストデータを増やしたので時間が長くなりましたが、以前は見逃されていたエラーが見つかることがあります。なお、ほとんどの命令は未定義のビットがないので、all を 2 回書いても 1 回しかテストされません。


DIVS.L <ea>,Dh:Dl でオーバーフローしたときのコンディションコードの未定義の N の変化を実機に近付けました。

ゼロ除算、CHK 命令、TRAPV 命令の例外スタックフレームのフォーマットを修正しました。


CAS.W Dc,Du,<ea> (misaligned <ea>)、CAS.L Dc,Du,<ea> (misaligned <ea>)、DIVS.L Dr,Dh:Dl、DIVU.L Dr,Dh:Dl、MULS.L Dr,Dh:Dl、MULU.L Dr,Dh:Dl で未実装整数命令例外が発生するようにしました。



MC68882 の restore CIR にはフォーマットワード書き込んだらそれを必ず (must) 読み出さなければならないという決まりがありますが、この決まりを守らなくてもコプロセッサプロトコル違反にならないようにしました。libc の __fpuinit がこの決まりを守っていませんでした。


拡張グラフィック画面 をメニューとパラメータで ON/OFF できるようにしました。デフォルトは OFF です。変更はリセットしたとき反映されます。


FDC は工事中です。NetBSD/x68k でフロッピーディスクをマウントしようとしないでください。ハングアップしてしまいます。


vcntest.x で 512 X 65536 X 1 を選択したとき CRTC とビデオコントローラに設定されるメモリモードを修正しました。


FDC は工事中です。NetBSD/x68k でフロッピーディスクをマウントしようとしないでください。ハングアップしてしまいます。


要求する Java SE のバージョンを 8u101 (1.8.0_101) 以上に、推奨する Java SE のバージョンを 8u102 (1.8.0_102) 以上に更新しました。


アドレス変換キャッシュモニタ を追加しました。MMU のアドレス変換キャッシュの内容を表示します。


ABCD と NBCD と SBCD で引数が BCD の範囲外のときの演算結果と未定義の N と V の変化を実機に近付けました。

ABCD と NBCD と SBCD のコンディションコード
N未定義 (結果の最上位ビット)未定義 (変化しない)
Z結果が 0 でないときクリア、さもなくば変化しない
V未定義 (クリア)未定義 (変化しない)

ASR.W <mem> と ROXR.W <mem> で X をクリアしなければならないときにクリアしていませんでした。

BFxxx のビットフィールドのオフセットがデータレジスタで指定されたとき、オフセットが 0 未満または 32 以上のときの動作が間違っていました。

CAS.B と CAS.W と CAS2.W でオーバーフローしたときの動作が間違っていました。

CHK.W と CHK.L で例外が発生しなかったときコンディションコードが設定されていませんでした。また、未定義の Z と V と C の変化を実機に近付けました。

CHK.* <ea>,Dq のコンディションコード
NDq の最上位ビット
Z未定義 (Dq が 0 のときセット、さもなくばクリア)未定義 (変化しない)
V未定義 (<ea>-Dq がオーバーフローしたときセット、さもなくばクリア)
C未定義 (<ea>-Dq でキャリーがあるときセット、さもなくばクリア)

CHK2 と CMP2 の未定義の N と V の変化を実機に近付けました。

DIVS/DIVSL/DIVU/DIVUL でゼロ除算のとき未定義の N と Z と V およびオーバーフローしたとき未定義の N と Z の変化を実機に近付けました。

DIVU.L Dr,Dh:Dl で $8000000000000000/$FFFFFFFE などの計算が間違っていました。

NEG.B <mem> と NEG.W <mem> でオーバーフローしたとき (引数が $80 と $8000 のとき) のコンディションコードが間違っていました。


IOCS _SCSIDRV で D5 レジスタに 3 以上が指定されたとき 2048 バイト / ブロックとみなすパッチを追加しました。


misc/* の説明 を書きました。

instructiontest.x を追加しました。MPU のユーザモードで使用できる整数命令の動作をテストするプログラムです。

vcntest2.x を追加しました。ビデオコントローラの注釈に書いた例を実際に試すプログラムです。

旧版 をダウンロードできるようにしました。


FDC は工事中です。NetBSD/x68k でフロッピーディスクをマウントしようとしないでください。ハングアップしてしまいます。


ビデオコントローラのスプライト画面とテキスト画面とグラフィック画面を重ね合わせるコードを大幅に増やしました (手作業 2.3 万行 → 自動生成 48 万行)。


実画面サイズが 1024×1024 ドットのグラフィック画面に実機にない 256 色モードと 65536 色モードを追加しました。

メモリモード実画面サイズ色数ページ数GVRAM サイズ
0512×512 ドット16 色4 ページ512KB
1256 色2 ページ
365536 色1 ページ
41024×1024 ドット16 色
5256 色1MB
765536 色2MB

実画面サイズが 1024×1024 ドットのグラフィック画面を 512×512 ドットずつ 4 分割して組み換えられるようにしました。


表示モードテスト に画面の解像度、ラスタ 2 度読みとインターレースの有無、オシレータと水平同期信号と垂直同期信号の周波数などの表示を追加しました。

PCM8A.X のパッチ

PCM8A.X v1.02 がローカルメモリを 256MB 積んだ 060turbo で動かない問題を回避するパッチを追加しました。I/O ポートのアドレスの上位 8 ビットが $FF になっているところを $00 に修正します。なお、LZX 圧縮されたデバイスドライバや実行ファイルには対応していません。


音声出力速度制御 を廃止しました。代わりに音声出力が ON のとき負荷率 90% を上限としてそれ以上動作周波数が上がらないようにしました。


バイトサイズまたはワードサイズの データブレークポイント が仕掛けられたアドレスをそれより大きいワードサイズまたはロングワードサイズでアクセスしたときも停止するようにしました。


スプライトプレーンとバックグラウンドプレーンのパレットの下位 4 ビットがすべて 0 でバックグラウンドプレーン 1 のパレットブロックが 0 のときバックグラウンドプレーン 0 のパレットブロックが出力されなくなっていたバグを修正しました。




フォントエディタ でズームアウトすると表示が乱れるようになっていたバグを修正しました。


動作確認環境を Windows 7 Professional (64 ビット) から Windows 10 Pro (64 ビット) に更新しました。

フロッピーディスク、SASI ハードディスク、SCSI ハードディスクと CD-ROM

レスポンスの遅い FD メディアを挿入するとメディアの判別が終わる前に FDC が READ DATA コマンドを受け付けてしまい NullPointerException が発生することがあるバグを修正しました (Thanks: 星型ピノ @delikea さん)。メディアの判別が終わるまでメディアが挿入されていないように見えるようにしました。SASI ハードディスク と SCSI ハードディスクと CD-ROM も同様の調整を行いました。


スプライト画面を作り直しました。スプライトは表示ラスタの 2 ラスタ手前で、バックグラウンドは 1 ラスタ手前で並べて、表示ラスタで重ね合わせます。変化していないラスタの描画を省く処理は行わず、スプライトを表示できる画面モードのときは常にすべてのラスタを描画します。そのため、768×512 ドット以外の画面モードのときの動作が重くなっています。


スプライトパターンビュア を追加しました。


IPLROM 1.3 のとき IOCS _DEFCHR が X68030 の ハイメモリ や 060turbo の ローカルメモリ を ROM と誤認してフォントパターンの設定に失敗する問題を修正するパッチを追加しました。


IOCS だけでなく SX-WINDOW (FSX.X version 3.10) も シームレスマウスモード で操作できるようにしました。縁部加速 を ON にすると実画面モードもシームレスのまま操作できます。


エクスクルーシブマウスモード に入るときと出るときに X68000 のマウスカーソルが動かないようにしました。


XEiJ は画面の描画処理を水平映像期間の先頭で 1 ラスタ分まとめて行いますが、このときスプライトを並べる処理も同時に行っていました。スプライトを並べる処理だけ 1 ラスタ手前にずらしました。スプライトダブラ (画面を上下に分割するラスタに走査線が差し掛かったとき上で使われたスプライトを定義し直して下で再び使うことで 1 画面あたりのスプライトの表示可能枚数を増やす技術) を用いているゲームなどで横線ノイズが表示される症状が改善される場合があります。


X68000 EXPERT/SUPER/XVI/Compact モードのとき IPLROM30.DAT から自動生成した SCSI ROM がうまく動かないバグを修正しました。060turbo モード用に追加した IPLROM 1.3 のパッチと衝突していました。


CPUSHL/CPUSHP/CPUSHA 命令を逆アセンブルすると CINVL/CINVP/CINVA 命令が表示されるバグを修正しました。


65536 色モードのときパレットコードの上位バイトをバイトサイズでリードすると 0 に見えるバグを修正しました。


X68000 モードのとき MOVEM 命令でメインメモリを読み書きすると データブレークポイント で検出されないバグを修正しました。


060turbo モードのとき CTRL+OPT.1+DEL や kt reset などでソフトウェアリセットをかけようとすると「バスエラーが発生しました」という白帯が表示されて結局リセットボタンを押さなければならなくなるバグを修正しました。MC68060 の MOVES 命令でファンクションコードに 3 が指定されたときユーザモードのメモリマップが選択されてスーパーバイザ領域のアクセスに失敗していました。




要求する Java SE のバージョンを 8u91 (1.8.0_91) 以上に、推奨する Java SE のバージョンを 8u92 (1.8.0_92) 以上に更新しました。


ホストファイルシステム でホストマシンのファイルを操作するスレッドをコアから分離しました。また、先読み・遅延書き込みバッファを介してファイルにアクセスするようにしました。ファイルアクセスが軽くなり、バッファの充填や排出を待っている間も割り込み処理を続けることができます。例 : CD-ROM 版の電脳倶楽部を起動する に書いたように XEiJ は DVD スーパーマルチドライブ (以下は E: の場合) などに CD-ROM 版の電脳倶楽部 (月刊電脳倶楽部 140 号以降や激光電脳倶楽部など) を入れて

>java -jar XEiJ.jar -boot=E:


SCSI ハードディスク

XEiJ は SCSI ハードディスクのイメージファイルの新規作成で必ず装置初期化を行い、正しく装置初期化されていないファイルを SCSI ハードディスクのイメージファイルと認識しない仕様になっています。この条件が厳しすぎて、装置初期化を行わない他のエミュレータで FORMAT.X を使って装置初期化されたファイルは FORMAT.X のバグでファイルサイズと容量が一致していないため XEiJ で使用することができませんでした (Thanks: TANE さん)。ファイルサイズに対して容量が 1 セクタ少ないファイルも SCSI ハードディスクのイメージファイルとみなすようにしました。

FORMAT.X の動作に合わせて SCSI ハードディスクの Read Capacity コマンドが最終論理ブロックアドレスの代わりに論理ブロック数を返していました。これを常に最終論理ブロックアドレスを返すように変更してしまうと XEiJ でも FORMAT.X で正しく装置初期化することができなくなってしまうので、Read Capacity コマンドが FORMAT.X から呼び出されたときだけ従来通り論理ブロック数を返し、それ以外は最終論理ブロックアドレスを返すようにしました。

060turbo.sys の SCSI コールでバスエラーが出ることがあるバグを修正するパッチを追加しました。


MC68882 の浮動小数点コンディションコード OR、NE、GLE、SNE の動作を修正しました。



ハイメモリが存在するだけで正常に動作しなくなるプログラムがあるので X68030 のハイメモリのデフォルトを OFF にしました。


要求する Java SE のバージョンを 8u77 (1.8.0_77) 以上に、推奨する Java SE のバージョンを 8u77 (1.8.0_77) 以上に更新しました。

Google Chrome はバージョン 45 から Java アプレットに対応しなくなりました。実行サンプルJava Web Start で起動できます。


機種に 060turbo を追加しました。

MPU は MC68060 と命令互換のプロセッサです。命令キャッシュ、データキャッシュ、分岐キャッシュ、ストアバッファおよびスーパースカラはありません。CACR や PCR の該当ビットを 1 にしても何も変わりません。0 サイクルの命令はありません。

FPU は未実装浮動小数点命令を FPSP に任せる通常版と MC68882 と MC68060 のすべての浮動小数点命令を実行できるフルスペック版を選択できます。

MMU のアドレス変換キャッシュは独自仕様です。1-way にする代わりにハッシュ関数を工夫してアドレス変換のオーバーヘッドを減らしています。

FC2 ピンをカットできます。NetBSD/x68k で X Window System が動きます。NetBSD/x68k を動かしてみる を書きました。

ローカルメモリ $10000000-$1FFFFFFF (16MB~256MB) を利用できます。設定ファイルにローカルメモリの内容を保存することができます。

リソースから読み込んだ IPLROM30.DAT に新しく作ったパッチを当てて使います。060turbo の実機の ROM は不要です。


X68030 モードのとき九十九電気 (ツクモ) の TS-6BE16 相当のハイメモリ $01000000-$01FFFFFF (16MB) を利用できます。設定ファイルにハイメモリの内容を保存することができます。


浮動小数点プロセッサボード CZ-6BP1 を 2 枚挿してあります。FPCP は MC68882 と命令互換のコプロセッサです。FLOAT3.X を利用できます。GCC(真里子版) または GCC2 でコンパイルして libc をリンクしたプログラムは FLOAT3.X を経由せずコプロセッサを直接操作します。


ドーターボードにある MC68060 から見てマザーボードにある MC68882 をマザーボードコプロセッサと呼んでいます。実機と同様に MC68060 から MC68882 にアクセスできます。起動メッセージなどでマザーボードコプロセッサの有無と種類が表示されます。


SCSI 機器の種類に CD-ROM を追加しました。*.ISO ファイルを SCSI CD-ROM とみなします。ブートセクタがあるときは「ここから再起動」で CD-ROM から直接起動できます。Human68k からは susie.x でアクセスできます。


IPLROM 1.3 を 1.5 に更新するパッチを追加しました。MC68000、MC68EC030 および MC68060 のいずれでも起動できます。SCSI CD-ROM から起動できます。起動メッセージにマザーボードコプロセッサや浮動小数点プロセッサボードの有無と種類を表示します。

IOCS _CRTMOD が指定された画面モードと異なる色数でグラフィックパレットを初期化するバグを修正するパッチを追加しました。










レジスタリスト に浮動小数点レジスタを追加しました。


逆アセンブルリスト でスーパーバイザモードとユーザモードを切り替えられるようにしました。


メモリダンプリスト でスーパーバイザモードとユーザモードを切り替えられるようにしました。


周波数固定モード のときも負荷率が 100% を超えると動作周波数を抑えて負荷率を 100% まで下げます。


音声出力速度制御 のデフォルトを ON にしました。


LHA.x の誤動作を避けるため、DOS _DSKFRE が返す HFS の空き容量の上限を 2GB にしました。

DOS _FILES が属性の条件にボリューム名が含まれているときファイル名の条件を無視してボリューム名を返していました。これが原因で FORMAT.X が領域確保後のシステム転送に失敗していました。HFS の DOS _FILES がボリューム名を返すのはファイル名の条件が *.* のときだけにしました。


フロッピーディスク、SASI ハードディスク、SCSI ハードディスクのイメージファイルを新規作成するとき、適切な拡張子が指定されていなければ拡張子を追加するようにしました。




「80 ビット拡張精度」と「96 ビット拡張精度」の呼び方を「拡張精度」と「三倍精度」に変更しました。

例外発生時に FPIAR またはスタックフレームの実効アドレスが正しく設定されていない場合がありました。

FTST がソースオペランドではなくデスティネーションオペランドをテストしていました。これが原因で xeyes の目玉が崩れていました。

FBGE と FBLE で FPSR の Z と NAN が同時にセットされていた場合 (通常は起こらない) の動作が実機と違いました。


BFINS Dn,<mem>{offset:width} で 5 バイトに跨るとき 1 バイト目の範囲外のビットが破壊されていました。

BFFFO <mem>{offset:width},Dn で オフセットが 8 以上のときの計算が間違っていました。


ソースコード を分割しました。

推奨する Java SE のバージョンを 8u60 (1.8.0_60) 以上に更新しました。

MOVEM.wl <list>,-(Ar) で <list> に Ar が含まれているときの動作を再修正しました。

MOVEM.wl <list>,-(Ar) で <list> に Ar が含まれているときの動作を修正しました。

ビデオコントローラの 0x00e82500 の上位バイト (スプライト画面・テキスト画面・グラフィック画面間の優先順位) に不正な値が設定されたときの動作を X68030 の実機に合わせました。参考 : GIMONS さん

逆アセンブラ を更新しました。

要求する Java SE のバージョンを 8u51 (1.8.0_51) 以上に更新しました。

機能と特徴 の文章を更新しました。また、メニューパラメータ設定ファイル の説明を書きました。

コマンドラインから起動したとき「メインメモリの内容を保存する」が ON になっていると終了時にメインメモリの内容が 設定ファイル に保存されます。RAM ディスクで作業中にうっかりエミュレータを終了してしまっても大丈夫です。

メモリ上の Human68k にもパッチを当てます。といっても大したものは入っていません。

FE ファンクション命令 を更新しました。「FLOATn.X を組み込まない」を ON にすると CONFIG.SYS に FLOATn.X が書かれていても組み込まれなくなります。

FPCR (Floating Point Control Register) と FPSR (Floating Point Status Register) の処理を更新しました。


MPU が MC68EC030 のとき DIVS.L <ea>,Dq 命令で -231/-1 の計算を間違えるバグを修正しました。

MPU が MC68EC030 のとき上位 8 ビットが 0 でない奇数アドレスにワードサイズでアクセスしようとするとコアが止まるバグを修正しました。

推奨ブラウザ から Google Chrome を外し、代わりに Mozilla Firefox と Waterfox を復活させました。

9SCDRV.X を組み込むと Human68k と FDDEVICE.X の 2HD/2HC/2DD8/2DD9/2HQ に加えて 2DD10/2HDE/2HS のフロッピーディスクのイメージファイルにアクセスできます。2HD/2HC/2HDE/2HS のイメージから起動できます。

DIFC.X で変換された 2HD/2HC/2HQ/2HDE/2HS の DIM ファイル (オーバートラックなし) にリードオンリーでアクセスできます。2HD/2HC/2HDE/2HS の DIM ファイルから起動できます。

ROM デバッガの実効アドレスの計算に関係する不具合を修正するパッチを追加しました。


ファンクションキーの表示がなくてカーソルが最下行にあるとき OPT.1+OPT.2 を押すと電卓が画面の外に表示されて見えない問題を修正するパッチを加えました。060turbo と同様にカーソルが最下行にあるときは電卓がカーソルの上の行に表示されます。

LEA.L 4.W,A0;MOVEM.L D0-D1,-(A0) を実行すると ArrayIndexOutOfBoundsException が出てコアが止まるバグを修正しました。

音声出力速度制御 をデフォルトで OFF にしました。

ROM デバッガ 2.32 で FSINCOS.X FPm,FPc:FPs をアセンブルしようとすると bus error in debugger が発生するバグを修正するパッチを加えました。

要求する Java SE のバージョンを 8u45 (1.8.0_45) 以上に更新しました。Java™ SE Development Kit 8, Update 45 Release Notes


FFT を更新しました。

推奨する Java SE のバージョンを 8u40 (1.8.0_40) 以上に更新しました。Java™ SE Development Kit 8, Update 40 Release Notes に引っ越しました。Java コントロールパネルのセキュリティタブの例外サイトリストに を登録されている場合は への変更をお願いします。

ウインドウの位置、ディスクのイメージファイルの名前、SRAM の内容などを終了時に設定ファイルに保存して次回の起動時に復元します。コマンドラインから起動したときの設定ファイルは、Windows のとき %APPDATA%/XEiJ/XEiJ.ini、それ以外は ~/XEiJ.ini または ./XEiJ.ini です。Java アプレットのときは Web Storage を、Java Web Start のときは PersistenceService を使用して設定をローカルファイルに保存します。

表示モードテスト のパターンテストを更新しました。背景に敷き詰められると邪魔な 0 番の番号を省き、反転を示す印は小さく、手前のスプライトを明るく、奥のスプライトとバックグラウンドを暗く表示します。

デバッガ db.x とソースコードデバッガ scd.x にある「リモートコンソールモードのとき受信バッファに溜まった入力が 1 文字置きに欠落する」というバグを回避して、入力を 1 行ずつ転送するターミナルとの相性を改善しました。

音声出力速度制御 を OFF にできるようにしました。音程が不安定になるのは音が途切れるよりも気持ち悪いという人は OFF にしてください。

要求する Java SE のバージョンを 8u31 (1.8.0_31) 以上に更新しました。Java™ SE Development Kit 8, Update 31 Release Notes

CRTC のステージを再構築しました。CRTC IRQ と V-DISP は水平フロントポーチで遷移します。ラスタブレークも一緒で H-SYNC はブレーク後数命令ないし数十命令後に遷移します。


表示モードテスト を追加しました。CRTC やビデオコントローラなどの表示モードの確認と、任意のテストデータで動作テストを行えます。

音声モニタ の出力波形は左クリックと右クリックで時間方向、Shift キーを押しながらだと振幅方向に拡大縮小します。

OPM モニタ改め 音声モニタ に、出力波形、周波数分布、キーオンとリリースを示す鍵盤、音色定義データおよび ADPCM の状態を表示します。

ADPCM の出力が ON または OFF されたとき、-1 または 0 のマスクの代わりに滑らかな曲線を掛けることでプチノイズを除去します。

ADPCM で 0x00 または 0x88 が出力されたとき、変位の符号によって 0x08 または 0x80 に読み替えることで変位の偏りを抑制します。

ADPCM の原発振周波数を通常の 8MHz/4MHz と改造された 8MHz/16MHz から選べます。8MHz/16MHz のとき PCM8A.X -M1 -F2 とすると ADPCM のサンプリング周波数が 31.3kHz になります。

ADPCM の予測指標が 45 以上のとき波形が乱れる不具合を修正しました。

IPLROM 1.3 を使用していて ROM デバッガがないのに ROM デバッガを組み込もうとしたとき、エラーが出ないようにダミーのコードを走らせてそのまま起動できるようにしました。


DMA を更新しました。

データブレークポイント を追加しました。指定されたアドレスとサイズで指定された範囲のデータの読み書きがあると停止します。

HFS の _CREATE の不具合を修正しました。また、MFP の割り込み要求が 1 命令遅れて受け付けられるようにしてみました。

SASI ハードディスクのイメージファイルの書き出しと SCSI ハードディスクのイメージファイルの新規作成の不具合を修正しました。

マウスモード (エクスクルーシブ) のときマウスカーソルの移動速度を調節できるようにしました。

ラスタブレークポイント を追加しました。垂直帰線割り込み、水平帰線割り込み、ラスタ割り込みをトレースしたいときに使います。

要求する Java SE 実行環境のバージョンを Java™ SE Development Kit 8, Update 25 Release Notes (8u25, 1.8.0_25) 以上に更新しました。

パラメータ -model=(EXPERT|SUPER|XVI|Compact|Hybrid|X68030) またはメニューで機種を選択できます。IPLROM*.DAT は機種に対応するものがリソースから読み込まれるので別途用意する必要はありません。

SCSI ハードディスクのイメージファイル (*.HDS) に対応しました。SCSIINROM.DAT と SCSIEXROM.DAT はリソースにある IPLROM30.DAT を使って内部で生成されるので別途用意する必要はありません。

FMOVE.D FPn,(Ar)+/-(Ar) を修正しました。

ieeerem/rem のアルゴリズムを変更しました。sin(210000) を計算できるようにしました。

atanh のアルゴリズムを変更しました。また、JRE 7 への対応を廃止しました。

atan/exp2/tan のアルゴリズムを変更しました。



拡張精度浮動小数点数 (19 桁) または三倍精度浮動小数点数 (24 桁) のどちらかを選択できるようにしました。

FETOXM1 の誤差を減らしました。

X68030 モードのとき浮動小数点命令の一部 (演算命令と分岐命令) を実行できるようにしました。例外処理は未実装です。

要求する Java SE のバージョンを更新しました。


分岐ログ を更新して プログラムフロービジュアライザ を追加しました。プログラムカウンタが通った跡をリアルタイムに可視化します。

デバッグウインドウが開いているときは F11 キーが全画面表示ではなく停止ボタンとして機能します。


キー入力の処理を TimerTask を使わない方法に変更しました。

FDC を更新しました。FDDEVICE.X を組み込むと 2DD (640KB)、2DD (720KB)、2HQ のイメージファイルを操作できます。


FDC を動かしてみるテスト。FORMAT /5 B: で 2HC モードでフォーマットできます。

HUMAN.SYS が入っていないディレクトリでも起動できるようにしました。COMMAND.X は入れておいてください。

実行サンプルの Human68k version 3.02 のシステムディスクの設定を 10MHz、最近傍補間、音声なしに変更しました。

Firefox と Opera でも全画面表示が使えるようになりました。