Past changes 過去の更新- XEiJ - STUDIO KAMADA

### Table of contents 目次

1. Past changes 過去の更新
   - 0.26.02.08
   - 0.26.01.08
   - 0.25.12.08
   - 0.25.11.08
   - 0.25.10.08
   - 0.25.09.08
   - 0.25.08.08
   - 0.25.07.08
   - 0.25.06.08
   - 0.25.05.08
   - 0.25.04.08
   - 0.25.03.08
   - 0.25.02.08
   - 0.25.01.08
   - 0.24.12.08
   - 0.24.11.08
   - 0.24.10.08
   - 0.24.09.08
   - 0.24.08.08
   - 0.24.07.08
   - 0.24.06.08
   - 0.24.05.08
   - 0.24.04.08
   - 0.24.03.08
   - 0.24.02.08
   - 0.23.12.08
   - 0.23.11.08
   - 0.23.10.08
   - 0.23.08.08
   - 0.23.05.14
   - 0.23.05.03
   - 0.23.05.01
   - 0.23.04.10
   - 0.23.03.11
   - 0.23.01.21
   - 0.23.01.19
   - 0.23.01.01
   - 0.22.10.18
   - 0.22.09.01
   - 0.22.08.25
   - 0.22.06.08
   - 0.22.02.21
   - 0.22.02.10
   - 0.22.02.06
   - 0.22.02.03
   - 0.22.02.01
   - 0.22.01.30
   - 0.21.01.11
   - 0.21.01.03
   - 0.20.12.31
   - 0.19.12.15
   - 0.19.01.24
   - 0.17.06.17
   - 0.17.01.30
   - 0.17.01.28
   - 0.17.01.24
   - 0.16.11.17
   - 0.16.08.17
   - 0.16.07.17
   - 0.16.05.12
   - 0.16.05.07
   - 0.16.04.30
   - 0.16.04.26
   - 0.16.04.22
   - 0.16.04.21
   - 0.16.04.12
   - 0.15.08.31
   - 0.15.08.12
   - 0.15.08.09
   - 0.15.07.19
   - 0.15.07.15
   - 0.15.07.01
   - 0.15.06.08
   - 0.15.04.22
   - 0.15.04.15
   - 0.15.03.30
   - 0.15.01.29
   - 0.15.01.25
   - 0.14.12.26
   - 0.14.11.23
   - 0.14.11.11
   - 0.14.11.07
   - 0.14.11.03
   - 0.14.10.29
   - 0.14.10.21
   - 0.14.10.20
   - 0.14.10.18
   - 0.14.10.15
   - 0.14.10.14
   - 0.14.09.23
   - 0.14.09.22
   - 0.14.09.08
   - 0.14.09.04
   - 0.14.08.29
   - 0.14.08.22
   - 0.14.08.21
   - 0.14.08.20
   - 0.14.08.19
   - 0.14.07.17
   - 0.14.05.06
   - 0.14.05.05
   - 0.14.05.01
   - 0.14.04.30
   - 0.14.04.29
   - 0.14.04.28
   - 0.14.04.27
   - 0.14.04.26
   - 0.14.04.23
   - 0.14.04.21
   - 0.14.04.19

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

## 1. Past changes 過去の更新

### 0.26.02.08

#### Mercury-Unit V4

Fixed an issue where the Mercury-Unit V4 would become unstable at 10MHz. 10MHz のとき Mercury-Unit V4 の動作が安定しない問題を修正しました。

The 768x512 dot 256-color mode of the Mercury-Unit V4 does not function on the first model. This is because only the first model has negative logic for the HSYNC and VSYNC signals on the expansion slot. Mercury-Unit V4 の 768x512 ドット 256 色モードは初代だけ動作しません。 これは初代だけ拡張スロットの HSYNC と VSYNC が負論理であるためです。

#### DMAC

Fixed the processing of external transfer requests. (Thanks スズ ロウ) 外部転送要求の処理を修正しました。(Thanks スズ ロウ)

Fixed the behavior of PCT. PCT の挙動を修正しました。

#### mu4sim.pl and mu4sim.c mu4sim.pl と mu4sim.c

Added mu4sim.pl and mu4sim.c. mu4sim.pl と mu4sim.cを追加しました。

mu4sim.pl and mu4sim.c are programs for obtaining the EXPCL and EXREQ timing information necessary for emulating the Mercury-Unit V4. mu4sim.pl converts ABEL source code into C language, while mu4sim.c acts as a simple circuit simulator to observe signals. This was included as an answer to the question:“How did the author, who doesn't own a Mercury-Unit V4, create its emulator?” mu4sim.pl と mu4sim.c は、Mercury-Unit V4 のエミュレーションに必要な EXPCL と EXREQ のタイミングの情報を得るためのプログラムです。mu4sim.pl が ABEL ソースコードを C 言語に変換し、mu4sim.c が簡易的な回路シミュレータとなって信号を観測します。 「Mercury-Unit V4 を持っていない作者がどうやってそのエミュレータを作ったのか」という疑問に対する回答として収録しました。

I have the ABEL source code for the ispLSI on the Mercury-Unit V4, but I couldn't directly decipher the list of circuits described there. So, I devised and implemented a method:“Create a simple circuit simulator and observe the signals it outputs.”Someone familiar with HDL might think,“Even for a simple one, that's a terrible circuit simulator.”However, since the goal of enabling PCM output and 768x512 dot 256-color mode was achieved, I hope you'll overlook its shortcomings. Mercury-Unit V4 に載っている ispLSI の ABEL ソースコードがあるのですが、私にはそこに書かれている回路の羅列を直接読み解くことができませんでした。 そこで、「簡易的な回路シミュレータを作り、それが出す信号を観測する」という方法を考え、実行しました。HDL に慣れた人が見たら「簡易的だとしても酷い回路シミュレータだ」と思われてしまうかも知れません。PCM 出力と 768x512 ドット 256 色モードが使えるようにするという目的は達成されたということで、大目に見ていただきたいと思います。

#### Full pattern memory フルパターンメモリ

Full pattern memory has been added. フルパターンメモリを追加しました。

Enabling the full pattern memory checkbox in the sprite screen menu of the modification menu activates full pattern memory. This setting is saved in the parameter sprfpm. 改造メニューのスプライト画面メニューのフルパターンメモリチェックボックスを ON にすると、フルパターンメモリが有効になります。 この設定はパラメータ sprfpmに保存されます。

The X68000 could handle 256 patterns for sprites and backgrounds, but it was highly anticipated that CYNTHIA could handle 512 patterns. In February 2026, Koucha Yokan confirmed this fact by modifying an actual X68030 unit and verifying its operation. X68000 のスプライトとバックグラウンドで使えるパターンは 256 個ですが、CYNTHIA は 512 個のパターンを扱えることが高い確度で予想されていました。2026 年 2 月、紅茶羊羹さんが実際に X68030 実機を改造して動作を確認したことで、CYNTHIA が 512 個のパターンを扱えるのは事実であると確認されました。

While the sprite scroll registers are located inside CYNTHIA, the pattern memory is outside CYNTHIA. CYNTHIA has two sets of chip select signals for accessing pattern memory: XPC0/PCS0 and XPC1/PCS1. Connecting the pattern memory to the latter set, which is normally unconnected, enables handling of 512 patterns. スプライトスクロールレジスタが CYNTHIA の内側にあるのに対して、パターンメモリは CYNTHIA の外側にあります。CYNTHIA がパターンメモリにアクセスするためのチップセレクト信号は XPC0/PCS0 と XPC1/PCS1 の 2 組あり、非接続になっている後者にパターンメモリを接続すると 512 個のパターンを扱えるようになります。

The chip select bit selects which pattern memory to use: either the one connected to XPC0/PCS0 or the one connected to XPC1/PCS1. When the full pattern memory is disabled, setting the chip select bit to 1 causes the sprite to display as a solid block, and whatever is written to the pattern memory from the MPU will be read as 0xffff. チップセレクトビットで、XPC0/PCS0 と XPC1/PCS1 のどちらに接続されているパターンメモリを使うか選択します。 フルパターンメモリが無効のときチップセレクトビットを 1 にすると、スプライトは豆腐になり、MPU からパターンメモリに何を書き込んでも 0xffff が読み出されます。

chip select bit チップセレクトビット
address アドレス | bit ビット | label ラベル | content 内容
--- | --- | --- | ---
$00EB0000+8*n+6 | bit2 | SPCS | chip select for pattern used by sprite スプライトが使うパターンのチップセレクト
$00EB0808 | bit10 | MPUCS | chip select for pattern and text visible to MPU MPU から見えるパターンとテキストのチップセレクト
bit5 | B1CS | chip select for text used by BG1 BG1 が使うテキストのチップセレクト
bit2 | B0CS | chip select for text used by BG0 BG0 が使うテキストのチップセレクト

#### bgcstest.x

Added bgcstest.x. bgcstest.xを追加しました。

Tests the operation of the chip select in the text used by the BG. BG が使うテキストのチップセレクトの動作をテストします。

### 0.26.01.08

#### DMAC DMAC

Fixed an issue where PCL and REQ were connected even on channels other than Channel 3. チャンネル 3 以外でも PCL と REQ が接続されていた問題を修正しました。

#### System property システムプロパティ

Added the system property -Dsun.java2d.d3d=false. When using the canvas setting with cubic interpolation as the interpolation algorithm, changing the fixed scaling to 200% and then back to 100% caused menus and window borders to disappear. This appears to have been fixed. システムプロパティ -Dsun.java2d.d3d=false を追加しました。 キャンバスを使う設定になっていて補間アルゴリズムが三次補間のとき、固定倍率の選択を 200% に変更してから 100% に戻すとメニューやウインドウの枠が消えてしまう症状がありましたが、それが改善するようです。

#### Aspect ratio アスペクト比

Added 1:1 to the 256x256 and 512x512 options in the aspect ratio menu. While this may differ from the aspect ratio the creator intended when the work is displayed on screen, a 256x256 dot screen becomes dot-by-dot at a fixed magnification of 50% and an aspect ratio of 1:1, and a 512x512 dot screen becomes dot-by-dot at a fixed magnification of 100% and an aspect ratio of 1:1. This makes text as easy to read as on a 768x512 dot screen. アスペクト比メニューの 256x256 と 512x512 に 1:1 を追加しました。 画面に表示されている作品があるときその作者が期待するアスペクト比とは違ってしまいますが、256x256 ドットの画面は固定倍率が 50% でアスペクト比が 1:1 のとき、512x512 ドットの画面は固定倍率が 100% でアスペクト比が 1:1 のとき、それぞれドットバイドットになり、768x512 ドットの画面と同様に文字が読みやすくなります。

#### Mercury-Unit V4 (MK-MU1)

Added Mercury-Unit V4 (MK-MU1). Supports PCM output and 768x512 dot 256-color mode. Mercury-Unit V4 (MK-MU1) を追加しました。PCM 出力と 768x512 ドット 256 色モードに対応しています。

Check the Mercury-Unit V4 (MK-MU1) checkbox in the sound menu and reset to integrate the Mercury-Unit. Uncheck the MU4 output checkbox to mute only the Mercury-Unit's output. 音声メニューの Mercury-Unit V4 (MK-MU1) チェックボックスを ON にしてリセットすると、Mercury-Unit が組み込まれた状態になります。MU4 出力チェックボックスを OFF にすることで、Mercury-Unit の出力だけミュートできます。

#### m256test.x

Added m256test.x. m256test.xを追加しました。

### 0.25.12.08

#### Palette viewer window パレットビュアウインドウ

Added the Palette viewer window. パレットビュアウインドウを追加しました。

Clicking the palette viewer button in the display menu opens the palette viewer window. 画面メニューのパレットビュアボタンをクリックするとパレットビュアウインドウが開きます。

##### Arrgt drop-down list 配置ドロップダウンリスト

Use the Arrgt drop-down list to select the page from G, TS, H or V. G displays the graphic palette, TS displays the text and sprite palette, H displays both in horizontal alignment, and V displays both in vertical alignment. The default is H. This setting is saved in the parameter plvarrgt. 配置ドロップダウンリストを用いて表示するページを G、TS、H または V から選択します。G はグラフィックパレット、TS はテキストおよびスプライトパレット、H は両方を横並びで、V は両方を縦並びで表示します。 デフォルトは H です。 この設定はパラメータ plvarrgtに保存されます。

##### Scale drop-down list 倍率ドロップダウンリスト

Use the Scale drop-down list to select the display scale from 1/2 to 16. The default is 1. This setting is saved in the parameter plvscale. 倍率ドロップダウンリストを用いて表示倍率を 1/2～16 から選択します。 デフォルトは 1 です。 この設定はパラメータ plvscaleに保存されます。

##### Hex checkbox Hex チェックボックス

When the Hex checkbox is ON, the header numbers are displayed in hexadecimal. The default is OFF. This setting is saved in the parameter plvhex. Hex チェックボックスが ON のときヘッダの数字が 16 進数で表示されます。 デフォルトは OFF です。 この設定はパラメータ plvhexに保存されます。

##### Text field テキストフィールド

The text field displays the page, number, palette code, and color code of the palette pointed to by the mouse pointer. テキストフィールドにはマウスポインタが指しているパレットのページ、番号、パレットコードおよびカラーコードが表示されます。

##### Stop checkbox 停止チェックボックス

When the Stop checkbox is turned ON, the system copies the information at that point and transitions to the stopped state. In the stopped state, the system is decoupled from the X68000's operation, allowing you to observe the palette at the moment it was stopped. 停止チェックボックスを ON にするとその時点の情報を複製して停止状態に移行します。 停止状態では X68000 の動作と切り離され、停止した時点のパレットを観察できます。

##### Mouse operation マウスによる操作

Use the wheel to change the display scale. ホイールで表示倍率を変更できます。

Drag to change the display position. ドラッグで表示位置を変更できます。

Left-click stops updating the text field. Left-click again to resume. 左クリックでテキストフィールドの更新が停止します。 もう一度左クリックで再開します。

Right-click displays a pop-up menu. Selecting Copy as hexadecimal copies one line of palette data as a hexadecimal string to the clipboard. 右クリックでポップアップメニューが表示されます。16 進数でコピーを選択すると 1 行分のパレットのデータが 16 進数の文字列でクリップボードにコピーされます。

#### Sprite pattern viewer window スプライトパターンビュアウインドウ

The sprite pattern viewer window has been updated. スプライトパターンビュアウインドウを更新しました。

Display settings have been adjusted. 表示を調整しました。

The scale range has been changed. 倍率の範囲を変更しました。

Bank setting is saved in the parameter spvbank. バンクの設定がパラメータ spvbankに保存されます。

Size setting is saved in the parameter spvsize. サイズの設定がパラメータ spvsizeに保存されます。

Block setting is saved in the parameter spvblock. ブロックの設定がパラメータ spvblockに保存されます。

Flip setting is saved in the parameter spvflip. 反転の設定がパラメータ spvflipに保存されます。

Scale setting is saved in the parameter spvscale. 倍率の設定がパラメータ spvscaleに保存されます。

Added Hex checkbox. Hex チェックボックスを追加しました。

##### Hex checkbox Hex チェックボックス

When the Hex checkbox is ON, the header numbers are displayed in hexadecimal. The default is OFF. This setting is saved in the parameter spvhex. Hex チェックボックスが ON のときヘッダの数字が 16 進数で表示されます。 デフォルトは OFF です。 この設定はパラメータ spvhexに保存されます。

#### RS-232C and terminal RS-232C とターミナル

Fixed an issue where attempting to read the RTS of a terminal connected to the CTS of the AUX port via software returned a value of 0. AUX の CTS に接続されたターミナルの RTS をソフトウェアで読み出そうとすると 0 が返る問題を修正しました。

#### Troubleshooting XRender issues XRender の不具合対策

The occasional crash when displaying sub-windows in a Linux environment appears to be caused by XRender issues. To work around this problem, code has been added to set the system property `sun.java2d.xrender` to false at startup. If this proves ineffective (i.e., changing it at startup is too late), please specify it as a Java option as follows: Linux 環境でサブウインドウの表示がクラッシュすることがあるのは、XRender の不具合が原因のようです。 この問題を回避するため、起動時にシステムプロパティ sun.java2d.xrender を false にするコードを追加しました。 効果がない (起動時に変更しても間に合わない) 場合は、以下のように java のオプションとして記述してください。

    ~$ java -Dsun.java2d.xrender=false -jar XEiJ.jar ...

#### Keyboard キーボード

When converting key events to X68000 key inputs on macOS, if the extendedKeyCode is 0 and does not match any key, a re-search is performed using the keyCode instead of the extendedKeyCode. (Thanks Hiroyuki Iwatsuki) macOS で、キーイベントを X68000 のキー入力に変換するとき、extendedKeyCode が 0 かつどのキーともマッチしなければ、extendedKeyCode の代わりに keyCode を用いて再検索します。(Thanks Hiroyuki Iwatsuki)

Notation for mouse button status in the miscellaneous menu has been changed to print key and mouse button events. その他メニューのマウスのボタンの状態の表記をキーとマウスのボタンのイベントを表示に変更しました。

### 0.25.11.08

#### OpenJDK 25.0.1

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

#### jSerialComm-2.11.4

The jSerialComm library included with XEiJ has been updated to the latest version 2.11.4 at the time of writing. XEiJ に添付しているjSerialCommを、これを書いている時点で最新の 2.11.4 に更新しました。

jSerialComm-2.11.2 contained a bug that caused jSerialComm.dll to fail to generate on Windows, which could prevent XEiJ from launching. This bug has been fixed in the newly released jSerialComm-2.11.3. jSerialComm-2.11.2 に Windows で jSerialComm.dll の生成に失敗する不具合があり、XEiJ を起動できない場合がありました。 この不具合は新たに公開された jSerialComm-2.11.3 で修正されました。

- On Java 25 on Windows, the dll fails to load with an error · Issue #608 · Fazecast/jSerialComm

jSerialComm handles cached dll files carelessly, which can cause problems. Therefore, when XEiJ starts up, it deletes the cache directory and forces the dll files to be rebuilt each time. I believe it will also be somewhat effective in reducing security risks. jSerialComm はキャッシュされた dll ファイルの扱いが雑で問題を引き起こすことがあるので、XEiJ の起動時にキャッシュディレクトリを削除して毎回 dll ファイルを作り直させるようにしました。

#### FE function instructions FE ファンクション命令

Fixed an issue where specifying -1 for the number of decimal places in __USING did not omit the decimal point. (Thanks スズ ロウ) __USING で、小数部の桁数に -1 を指定したとき、小数点が省略されない問題を修正しました。(Thanks スズ ロウ)

Fixed an issue where the integer part was one digit short when using __USING with settings that prevent exponential notation and display the sign on the left side. __USING で、指数形式にしないかつ左側に符号を書く設定のとき、整数部の桁数が 1 桁不足する問題を修正しました。

#### Text and sprite palette テキストスプライトパレット

Fixed a bug where ArrayIndexOutOfBoundsException could occur when manipulating the text and sprite palette. (Thanks saku39) テキストスプライトパレットの操作で ArrayIndexOutOfBoundsException が出ることがあるバグを修正しました。(Thanks saku39)

#### Sprite pattern viewer window スプライトパターンビュアウインドウ

The sprite pattern viewer window has been updated. スプライトパターンビュアウインドウを更新しました。

##### Bank drop-down list バンクドロップダウンリスト

Use the Bank drop-down list to select the pattern bank from 0 to 15, 0-3 to 12-15, or 0-15. The default is 0. Banks 1 to 15 are available when 4096 patterns are enabled. バンクドロップダウンリストを用いて表示するパターンのバンクを 0～15、0-3～12-15 または 0-15 から選択します。 デフォルトは 0 です。 バンク 1～15 は4096 個のパターンを有効にしたとき使用できます。

##### Size drop-down list サイズドロップダウンリスト

Use the Size drop-down list to select the pattern size from Auto, 8x8, or 16x16. The default is Auto, and the initial value is 16x16. When set to Auto, the information associated with the pattern is used when the pattern is displayed on the X68000 screen. Since the information is not updated until the pattern is displayed on the X68000 screen, the display may differ from expectations. The sprite pattern size is 16x16. The background pattern size is also 16x16 when the display screen size is 512x512. The background pattern size is 8x8 when the display screen size is 256x256. サイズドロップダウンリストを用いてパターンのサイズを自動、8x8 または 16x16 から選択します。 デフォルトは自動で初期値は 16x16 です。 自動のときはパターンが X68000 の画面に表示されたときにパターンに紐づけられた情報が使用されます。 パターンが X68000 の画面に表示されるまで情報が更新されないので、期待と異なる表示になることがあります。 スプライトのパターンのサイズは 16x16、表示画面サイズが 512x512 のときのバックグラウンドのパターンのサイズも 16x16、表示画面サイズが 256x256 のときのバックグラウンドパターンのサイズは 8x8 です。

##### Block drop-down list ブロックドロップダウンリスト

Use the Block drop-down list to select the palette block from Auto, or 0 to 15. The default is Auto, and the initial value is 1. When set to Auto, the information associated with the pattern is used when the pattern is displayed on the X68000 screen. Since the information is not updated until the pattern is displayed on the X68000 screen, the display may differ from expectations. ブロックドロップダウンリストを用いてパレットブロックを自動または 0～15 から選択します。 デフォルトは自動で初期値は 1 です。 自動のときはパターンが X68000 の画面に表示されたときにパターンに紐づけられた情報が使用されます。 パターンが X68000 の画面に表示されるまで情報が更新されないので、期待と異なる表示になることがあります。

##### Flip drop-down list 反転ドロップダウンリスト

Use the Flip drop-down list to select the flip method from Auto, -, H, V or H&V. The default is Auto. When set to Auto, the information associated with the pattern is used when the pattern is displayed on the X68000 screen. Since the information is not updated until the pattern is displayed on the X68000 screen, the display may differ from expectations. A gray line and dots representing palette blocks are displayed on the left side of the pattern. When the pattern inverts, the line and dots invert together, allowing you to see the pattern's original orientation. 反転ドロップダウンリストを用いて反転を自動、なし、左右、上下または上下左右から選択します。 デフォルトは自動です。 自動のときはパターンが X68000 の画面に表示されたときにパターンに紐づけられた情報が使用されます。 パターンが X68000 の画面に表示されるまで情報が更新されないので、期待と異なる表示になることがあります。 パターンの左側に灰色の線とパレットブロックを表す点が表示されており、パターンが反転するとき線と点も一緒に反転することで、パターンの本来の向きが分かるようになっています。

##### Text field テキストフィールド

The text field displays the size, number, coordinates, palette code, and color code of the pattern pointed to by the mouse pointer. テキストフィールドにはマウスポインタが指しているパターンのサイズ、番号、座標、パレットコードおよびカラーコードが表示されます。

##### Stop checkbox 停止チェックボックス

When the Stop checkbox is turned ON, the system copies the information at that point and transitions to the stopped state. In the stopped state, the system is decoupled from the X68000's operation, allowing you to observe the pattern at the moment it was stopped. 停止チェックボックスを ON にするとその時点の情報を複製して停止状態に移行します。 停止状態では X68000 の動作と切り離され、停止した時点のパターンを観察できます。

##### Scale drop-down list 倍率ドロップダウンリスト

Use the Scale drop-down list to select the display scale from 1/4 to 32. The default is 2. 倍率ドロップダウンリストを用いて表示倍率を 1/4～32 から選択します。 デフォルトは 2 です。

##### Mouse operation マウスによる操作

Use the wheel to change the display scale. ホイールで表示倍率を変更できます。

Drag to change the display position. ドラッグで表示位置を変更できます。

Left-click stops updating the text field. Left-click again to resume. 左クリックでテキストフィールドの更新が停止します。 もう一度左クリックで再開します。

Right-click displays a pop-up menu. Selecting Copy as hexadecimal copies the pattern data as a hexadecimal string to the clipboard. 右クリックでポップアップメニューが表示されます。16 進数でコピーを選択するとパターンのデータが 16 進数の文字列でクリップボードにコピーされます。

#### Branch log 分岐ログ

The values of registers D0-D7/A0-A7 at the branch point are saved in the branch record. When the R checkbox in the branch log window is selected, the register values are displayed at the beginning of the record. 分岐時のレジスタ D0-D7/A0-A7 の値が分岐レコードに保存されます。 分岐ログウィンドウの R チェックボックスを ON にすると、レコードの先頭にレジスタの値が表示されます。

#### misc/060tsys/060turbo.sys

Added processing to work around the bug in 9SCDRV.X 3.14+2 (where the upper word of d2 is undefined when executing divu.w L00072A(pc),d2 at L002568). 9SCDRV.X 3.14+2 のバグ (L002568 にある divu.w L00072A(pc),d2 を実行するとき d2 の上位ワードが不定) を回避する処理を加えました。

### 0.25.10.08

#### Execution environment 実行環境

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

#### RS-232C and terminal RS-232C とターミナル

Fixed a bug in the queue. キューのバグを修正しました。

#### Disassemble list 逆アセンブルリスト

The buttons are now arranged in two rows. ボタンの並びを 2 行にしました。

When the size of the immediate operand is a byte and the value is negative, write it with the sign reversed and the sign included. イミディエイトオペランドのサイズがバイトで値が負のとき、符号反転して符号を付けて書きます。

#### Rapid clear 高速クリア

Fixed a bug where an IllegalArgumentException occurred when performing a rapid clear while the X-axis scroll position was 512 or higher. X 方向のスクロール位置が 512 以上のとき高速クリアを行うと IllegalArgumentException が出るバグを修正しました。

Fixed the timing at which values read from the action port change during rapid clearing. 高速クリアを行うとき動作ポートから読み出される値が変化するタイミングを修正しました。

Ensured that rapid clearing always starts on an even frame during interlacing. インターレースのとき高速クリアが必ず偶数フレームから始まるようにしました。

#### rapidcleartest.x

Added rapidcleartest.x. rapidcleartest.xを追加しました。

Tests rapid clearing of the graphics screen. Performs area testing and port testing simultaneously. Area testing verifies the correctness of the cleared VRAM range. Port testing verifies the correctness of changes in CRTC port bit 1. グラフィック画面の高速クリアをテストします。 エリアテストとポートテストを同時に行います。 エリアテストは VRAM のクリアされた範囲が正しいか調べます。 ポートテストは CRTC の動作ポート bit1 の変化が正しいか調べます。

### 0.25.09.08

#### Branch log window 分岐ログウインドウ

The buttons are now arranged in two rows. ボタンの並びを 2 行にしました。

#### Host CD-ROM ホスト CD-ROM

Added host CD-ROM. ホスト CD-ROMを追加しました。

When using Windows, the host machine's DVD/CD-ROM drive is used as an SCSI CD-ROM drive for the X68000. What it can do: Read regular files, play audio tracks, read CDDA, etc. What it cannot do: Auto-eject, read CDXA, etc. Windows のとき、ホストマシンの DVD/CD-ROM ドライブを X68000 の SCSI CD-ROM ドライブとして使用します。 できることは、通常のファイルを読む、オーディオトラックを再生する、CDDA を読む、など。 できないことは、オートイジェクトする、CDXA を読む、など。

Check the connect on next execution check box in file menu → SCSI menu → host CD-ROM menu. This setting is saved in the parameter hcdconnect. ファイルメニュー→SCSI メニュー→ホスト CD-ROM メニューにある次回の実行時に接続するチェックボックスを ON にします。 この設定はパラメータ hcdconnectに保存されます。

Select the SCSI ID using the SCSI ID spinner in the host CD-ROM menu. The range is 0 to 15, with a default of 6. Changes take effect on the next execution. This setting is saved in the parameter hcdscsiid. You cannot assign an image file to the same SCSI ID as the host CD-ROM. ホスト CD-ROM メニューにある SCSI ID スピナーで SCSI ID を選択します。 範囲は 0 から 15 でデフォルトは 6 です。 変更は次回の実行時に反映されます。 この設定はパラメータ hcdscsiidに保存されます。 ホスト CD-ROM と同じ SCSI ID にイメージファイルを割り当てることはできません。

Adjust the volume using the volume slider in the host CD-ROM menu. The range is 0 to 100, with a default of 25. Changes take effect immediately. This setting is saved in the parameter hcdvolume. ホスト CD-ROM メニューにある音量スライダーで音量を調整します。 範囲は 0 から 100 でデフォルトは 25 です。 変更は直ちに反映されます。 この設定はパラメータ hcdvolumeに保存されます。

Enabling the debug info checkbox in the host CD-ROM menu will output debug information to the terminal. This setting is saved in the parameter hcddebug. ホスト CD-ROM メニューにあるデバッグ情報チェックボックスを ON にするとターミナルにデバッグ情報が出力されます。 この設定はパラメータ hcddebugに保存されます。

#### Keyboard キーボード

To prevent the hiragana key from remaining stuck on Windows PCs, the behavior when the Windows key is pressed has been changed from "Press the assigned key" to "Press and release the assigned key." (Thanks カタ) Pressing the Windows key will still open the start menu, so please press the Windows key again to close the start menu. Windows PC でひらがなキーが押されたままになってしまう現象を回避するため、Windows キーが押されたときの動作を「割り当てたキーを押す」から「割り当てたキーを押して離す」に変更しました。(Thanks カタ) Windows キーを押すとスタートメニューが開いてしまうことに変わりないので、Windows キーをもう一度押してスタートメニューを閉じてください。

#### Pattern test パターンテスト

Pattern test in the screen mode test window has been updated. Supports 4096 patterns. The test palette now includes palette block 0, so colors change not only on the sprite screen but also on the text screen. When the sprite number checkbox is ON, sprites display their sprite number instead of their pattern number. 表示モードテストウインドウのパターンテストを更新しました。4096 個のパターンに対応しました。 テスト用のパレットにパレットブロック 0 を含めるようにしたので、スプライト画面だけでなくテキスト画面の色も変化します。 スプライト番号チェックボックスが ON のとき、スプライトにはパターン番号ではなくスプライト番号が表示されます。

#### Sprite pattern viewer window スプライトパターンビュアウインドウ

Sprite pattern viewer window has been updated. It now supports 4096 patterns. Select a bank using the spinner. When the palette is set to auto, it uses the palette block used for display for patterns shown as sprites or backgrounds. When the palette is set to fixed, it uses the palette block selected via the spinner. スプライトパターンビュアウインドウを更新しました。4096 個のパターンに対応しました。 スピナーでバンクを選択します。 パレットが自動のとき、スプライトまたはバックグラウンドとして表示されているパターンについて、表示に使用されたパレットブロックを用います。 パレットが固定のとき、スピナーで選択されたパレットブロックを用います。

### 0.25.08.08

#### Execution environment 実行環境

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

#### Obsolete xeijwin.dll xeijwin.dll の廃止

The transition from the Java Native Interface (JNI) to the Foreign Function and Memory (FFM) API is complete. This has eliminated the xeijwin.dll, which is no longer needed. The Makefile has also been shortened. Enter "make" for compilation and "make test" for test execution. Java Native Interface (JNI) から外部関数およびメモリー (FFM) API への移行が完了しました。 これにより不要になった xeijwin.dll を廃止しました。Makefile も短くなりました。 コンパイルは「make」、テスト実行は「make test」と入力します。

#### Paste and control pipe 貼り付けおよび制御パイプ

Paste pipe and control pipe can be used not only on Windows but also on WSL (Ubuntu). If mkfifo works the same way, it may be usable on other UNIX-based operating systems. Windows だけでなく WSL (Ubuntu) でも貼り付けパイプと制御パイプが使えます。mkfifo の動作が同じであれば、他の UNIX 系 OS でも使えるかも知れません。

    ~$ echo memfree > /tmp/XEiJPaste
    ~$ echo interrupt > /tmp/XEiJControl

Name of pipes パイプの名前
| Windows | WSL (Ubuntu)
Paste pipe 貼り付けパイプ | \\.\pipe\XEiJPaste | /tmp/XEiJPaste
Control pipe 制御パイプ | \\.\pipe\XEiJControl | /tmp/XEiJControl

You can select the character encoding for the pipe using the SJIS radio button and UTF-8 radio button in the pipe settings menu. The default is SJIS. The change takes effect immediately. This setting is saved in the parameter pipeencoding. パイプ設定メニューの SJIS ラジオボタンと UTF-8 ラジオボタンでパイプの文字コードを選択できます。 デフォルトは SJIS です。 変更は直ちに反映されます。 この設定はパラメータ pipeencodingに保存されます。

#### Screen rotation 画面の回転

You can choose a screen rotation from no rotation (landscape), 90-degree rotation (portrait), 180-degree rotation, or 270-degree rotation in the rotation menu in the display menu. This setting is saved in the parameter rotation. 画面メニューにある回転メニューで画面の回転を回転なし (横画面)、90 度回転 (縦画面)、180 度回転、270 度回転から選べます。 この設定はパラメータ rotationに保存されます。

#### IPLROM 1.6

Fixed a bug where the startup screen displayed MC68882 even when the coprocessor type was identified as MC68881. (Thanks GIMONS) コプロセッサの種類を MC68881 と判別したときも起動画面に MC68882 と表示されるバグを修正しました。(Thanks GIMONS)

To avoid malfunction of NetBSD's boot_ufs, enter the boot sector number in D2.L when calling disk IPL. NetBSD の boot_ufs の誤動作を避けるため、ディスク IPL を呼び出すとき D2.L にブートセクタの番号を入れます。

#### Coprocessor and on-chip FPU コプロセッサとオンチップ FPU

The presence and type of coprocessors and on-chip FPU can be set individually. コプロセッサとオンチップ FPU の有無と種類を個別に設定できるようにしました。

The parameter fpumode and parameter fullspecfpu have been removed. パラメータ fpumode とパラメータ fullspecfpu を廃止をました。

Select the presence and type of coprocessors and on-chip FPU in the coprocessor and on-chip FPU menu in the MPU menu. Changes will be reflected after a reset. MPU メニューのコプロセッサとオンチップ FPU メニューでコプロセッサとオンチップ FPU の有無と種類を選択します。 変更はリセット後に反映されます。

##### Motherboard coprocessor マザーボードコプロセッサ

This is a coprocessor mounted on the main board of the X68030. The default is MC68882. It is used when executing floating point instructions with the MC68EC030. With the MC68060, it can be accessed via CPU space addresses $00022000-$0002201F. This setting is saved in the parameter copro0. X68030 のメイン基板に載せるコプロセッサです。 デフォルトは MC68882 です。MC68EC030 で浮動小数点命令を実行するとき使います。MC68060 では CPU 空間アドレス $00022000-$0002201F でアクセスできます。 この設定はパラメータ copro0に保存されます。

##### Extension coprocessor #1 拡張コプロセッサ #1

This is a coprocessor mounted on a numerical processing processor board attached to the expansion slot. In the case of XVI, it is mounted on the internal memory board, and in the case of Compact, it is mounted on the main board. The default is MC68882. It can be accessed via I/O port addresses $00E9E000-$00E9E01F. This setting is saved in parameter copro1. 拡張スロットに取り付ける数値演算プロセッサボードに載っているコプロセッサです。XVI の場合は内蔵メモリボードに、Compact の場合はメイン基板に載せます。 デフォルトは MC68882 です。I/O ポートアドレス $00E9E000-$00E9E01F でアクセスできます。 この設定はパラメータ copro1に保存されます。

##### Extension coprocessor #2 拡張コプロセッサ #2

This is a numerical processing processor board that attaches to the expansion slot, with the address SW switched to 2. The default is MC68882. It can be accessed via I/O port addresses $00E9E080-$00E9E09F. This setting is saved in the parameter copro2. 拡張スロットに取り付ける数値演算プロセッサボードで、アドレス SW を 2 に切り替えたものです。 デフォルトは MC68882 です。I/O ポートアドレス $00E9E080-$00E9E09F でアクセスできます。 この設定はパラメータ copro2に保存されます。

##### On-chip FPU オンチップ FPU

Used when executing floating point instructions with MC68060. The default is full specification. This setting is saved in the parameter onchipfpu. MC68060 で浮動小数点命令を実行するとき使います。 デフォルトはフルスペックです。 この設定はパラメータ onchipfpuに保存されます。

##### Not installed なし

No coprocessor or on-chip FPU is installed. The parameter value is 0. コプロセッサまたはオンチップ FPU を載せません。 パラメータの値は 0 です。

##### MC68881

The floating point instructions of MC68881 can be used. The parameter value is 1. MC68881 の浮動小数点命令が使えます。 パラメータの値は 1 です。

##### MC68882

The floating point instructions of MC68882 can be used. The parameter value is 2. MC68882 の浮動小数点命令が使えます。 パラメータの値は 2 です。

##### MC68060

The floating point instructions of MC68060 can be used. The parameter value is 6. MC68060 の浮動小数点命令が使えます。 パラメータの値は 6 です。

##### Full specification フルスペック

All floating point instructions of MC68881, MC68882, and MC68060 can be used. The parameter value is 7. MC68881、MC68882、MC68060 のすべての浮動小数点命令が使えます。 パラメータの値は 7 です。

##### Extended precision (19 digits) 拡張精度 (19 桁)

Calculations are performed with extended precision floating point number (64-bit mantissa, 19 digits). Add 0 to the parameter value. 拡張精度浮動小数点数 (仮数部 64 ビット、19 桁) で計算します。 パラメータの値に 0 を加えます。

##### Triple precision (24 digits) 三倍精度 (24 桁)

Calculations are performed with triple precision floating point number (80-bit mantissa, 24 digits). Add 8 to the parameter value. 三倍精度浮動小数点数(仮数部 80 ビット、24 桁) で計算します。 パラメータの値に 8 を加えます。

Even if you select triple precision, the software package included in 060turbo.sys will not become triple precision. To execute all floating point instructions, including those not implemented in MC68060, in triple precision, you must select full spec. 三倍精度を選択しても、060turbo.sys に含まれるソフトウェアパッケージは三倍精度になりません。MC68060 で未実装命令を含むすべての浮動小数点命令を三倍精度で実行するには、フルスペックを選択する必要があります。

#### Memory dump list メモリダンプリスト

The user/supervisor check box has been removed and replaced with a function code spinner. The default function code 5 is a logical address, so it is affected by address translation. Selecting function code 4 allows you to dump physical addresses. ユーザ / スーパーバイザチェックボックスを廃止し、代わりにファンクションコードスピナーを追加しました。 デフォルトのファンクションコード 5 は論理アドレスなのでアドレス変換の影響を受けます。 ファンクションコード 4 を選択すると物理アドレスでダンプできます。

You can scroll with the mouse wheel. マウスホイールでスクロールできます。

#### Branch log 分岐ログ

A 1-bit flag has been added to the branch record to distinguish between normal and interrupt. When branching, if the interrupt service register is 0, a normal branch record is created, and if it is not 0, an interrupt branch record is created. Note that when the interrupt handling routine lowers the interrupt mask level, a normal branch record may be created before returning from the interrupt handling routine. 分岐レコードに、ノーマルとインタラプトを区別する 1 ビットのフラグを追加しました。 分岐したとき、インタラプトサービスレジスタが 0 ならばノーマル、0 以外ならばインタラプトの分岐レコードが作成されます。 なお、割り込み処理ルーチンが割り込みマスクレベルを下げたとき、割り込み処理ルーチンから復帰する前にノーマルの分岐レコードが作成される場合があります。

In the branch log window, the marks [UN], [SN], and [SI] are displayed after the branch record number. U stands for user, S stands for supervisor, N stands for normal, and I stands for interrupt. By turning off the U, S, N, and I checkboxes, you can suppress the display of unnecessary disassembly lists. 分岐ログウインドウで、分岐レコード番号の後ろに [UN]、[SN]、[SI] のマークが表示されます。U はユーザ、S はスーパーバイザ、N はノーマル、I はインタラプトを意味します。U、S、N、I の各チェックボックスを OFF にすることで、不要な逆アセンブルリストの表示を抑制できます。

The branch log window can also be scrolled using the mouse wheel. 分岐ログウインドウも、マウスホイールでスクロールできます。

#### RS-232C and terminal window RS-232C とターミナルウインドウ

Fixed a bug where pressing the Send button without selecting a file in the file selector caused a NullPointerException. ファイル送信のファイルチューザーでファイルを選択せずに送信ボタンを押すと NullPointerException が発生するバグを修正しました。

Fixed a bug where operations on the flow control combo box were not reflected when the serial port was connected to the terminal. シリアルポートとターミナルを接続しているときフロー制御コンボボックスの操作が反映されないバグを修正しました。

Updated jSerialComm to 2.11.2. jSerialComm を 2.11.2 に更新しました。

#### MC68060

Made corrections mainly to the behavior when a page fault occurs. ページフォルトが発生したときの動作を中心に修正を加えました。

#### NetBSD/x68k

NetBSD-10.1 booted successfully, so try to run the NetBSD/x68k has been updated. NetBSD-10.1 を起動できたのでNetBSD/x68k を動かしてみるを更新しました。

### 0.25.07.08

#### Seamless mouse mode シームレスマウスモード

When the follow scroll checkbox in the input menu is ON in seamless mouse mode, the mouse cursor position follows the hardware scroll of the text screen even outside of SX-Window. This setting is stored in the parameter followscroll. シームレスマウスモードで入力メニューのスクロールに追従するチェックボックスが ON のとき、SX-Window 以外でもマウスカーソルの位置がテキスト画面のハードウェアスクロールに追従します。 この設定はパラメータ followscrollに保存されます。

#### Interlace インターレース

Fixed a problem that caused display confusion when interlaced. When the process was changed to display screens at regular intervals, interlacing was not adequately handled. インターレースのとき表示が乱れる問題を修正しました。 一定の間隔で画面を表示するように処理を変更したとき、インターレースへの対応が不十分でした。

#### IPLROM 1.6 and crtmod16.x IPLROM 1.6 と crtmod16.x

CRTMOD and G_CLR_ON in IPLROM 1.6 and crtmod16.x are now compatible with the extended graphics screen. Added screen modes 48-73. List of screen modes is here. Returns $16000000+(maximum screen mode) when $76FF is specified. Returns -1 when a screen mode out of range is specified. Returns -2 when a screen mode is specified that requires an extended graphic screen when there is no extended graphic screen. IPLROM 1.6 とcrtmod16.xの CRTMOD と G_CLR_ON を拡張グラフィック画面に対応させました。 画面モード 48～73 を追加しました。画面モードの一覧はこちら。$76FF が指定されたとき $16000000+(画面モードの最大値) を返します。 範囲外の画面モードが指定されたとき -1 を返します。 拡張グラフィック画面がないのに拡張グラフィック画面が必要な画面モードが指定されたとき -2 を返します。

#### crtmodtest.x

crtmodtest.x now supports screen modes 48-73. Sprite screen extensions are reflected when the sprite screen is extended and sprdrv.x is installed. crtmodtest.xを画面モード 48～73 に対応させました。 スプライト画面が拡張されていてsprdrv.xが組み込まれているときスプライト画面の拡張が反映されます。

#### crtmod.fnc

Added crtmod.fnc that is an external function file for X-BASIC 2.02. When combined with IPLROM 1.6 or crtmod16.x, additional screen modes such as 384x256 dots and the extended graphic screen can be easily used with X-BASIC. In screen modes that use the extended graphic screen, conventional drawing functions can be used without modification. X-BASIC 2.02 用の外部関数ファイルcrtmod.fncを追加しました。IPLROM 1.6 または crtmod16.x と組み合わせることで、384x256 ドットなどの追加された画面モードや、拡張グラフィック画面を、X-BASIC で手軽に使えるようになります。 拡張グラフィック画面を使う画面モードでは従来の描画関数がそのまま使えます。

#### Row and column scroll 行スクロールと列スクロール

Added row and column scroll. When the row and column scroll checkbox in the modification menu is turned on, background screen can be scrolled row by row and column by column. This setting is stored in the この設定はparameter sprrcscroll. 行スクロールと列スクロールを追加しました。 改造メニューの行スクロールと列スクロールチェックボックスが ON のとき、バックグラウンド画面を行毎および列毎にスクロールできます。 この設定はパラメータ sprrcscrollに保存されます。

64 words from $00EB2000 are BG0 row scroll registers, 64 words from $00EB2080 are BG1 row scroll registers, 64 words from $00EB2200 are BG0 column scroll registers, and 64 words from $00EB2280 are BG1 column scroll registers. $00EB2000 から 64 ワードが BG0 の行スクロールレジスタ、$00EB2080 から 64 ワードが BG1 の行スクロールレジスタ、$00EB2200 から 64 ワードが BG0 の列スクロールレジスタ、$00EB2280 から 64 ワードが BG1 の列スクロールレジスタです。

#### sprdrv.x

Updated sprdrv.x. SP_INIT can now be used to confirm that sprdrv.x is resident. Added the ability to set and get row and column scroll to BGSCRLST and BGSCRLGT. Fixed a bug that SP_INIT sometimes did not return 0 even though it completed successfully. sprdrv.xを更新しました。SP_INIT で sprdrv.x の常駐確認ができるようにしました。BGSCRLST と BGSCRLGT に行スクロールと列スクロールの設定と取得の機能を追加しました。SP_INIT が正常終了したのに 0 を返さないことがある不具合を修正しました。

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

The process to set the lower limit of the frame interval to 20 ms was missing. Adjust to host refresh rate function was not reflected. フレームの間隔の下限を 20ms とする処理が抜けていたので修正しました。 ホストのリフレッシュレートに合わせるが反映されていなかったので修正しました。

#### TCP/IP port TCP/IP ポート

RS-232C and terminal window now allow selection of TCP/IP ports as well as serial ports. (Thanks yunk) RS-232C とターミナルウインドウで、シリアルポートと同様に TCP/IP ポートを選択できるようにしました。(Thanks yunk)

You can select a port number with the TCP/IP port spinner. This setting is stored in the parameter tcpipport. The default port number is 54321. You can confirm the connection by typing "telnet localhost 54321" in another terminal on the same machine. TCP/IP ポートスピナーでポート番号を選択できます。 この設定はパラメータ tcpipportに保存されます。 デフォルトのポート番号は 54321 です。 同じマシンの別のターミナルで「telnet localhost 54321」と入力すると接続を確認できます。

When the UTF-8 checkbox is ON, the character encoding is converted by assuming SJIS on the AUX side and UTF-8 on the TCP/IP side. This setting is stored in the parameter tcpiputf8. UTF-8 チェックボックスが ON のとき、AUX 側を SJIS、TCP/IP 側を UTF-8 と見なして文字コードを変換します。 この設定はパラメータ tcpiputf8に保存されます。

### 0.25.06.08

#### Restore window ウインドウの復元

When restoring a window, the process of finding the screen where the window fits was missing. (Thanks ついっこー (Kotaro Horie)) ウインドウを復元するときウインドウが収まる画面を探す処理が抜け落ちていました。(Thanks ついっこー (Kotaro Horie))

#### RS-232C and terminal RS-232C とターミナル

Added 230400bps to the baud rate options when connecting a serial port to a terminal in the RS-232C and terminal window. RS-232C とターミナルウインドウで、シリアルポートとターミナルを接続するときのボーレートの選択肢に、230400bps を追加しました。

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

GVRAM in the extended graphic screen has been integrated with GVRAM in the standard graphic screen. Clearing GVRAM in memory mode 7 also clears GVRAM in memory modes 0, 1, 3, 4, and 5. 拡張グラフィック画面の GVRAM を標準のグラフィック画面の GVRAM と統合しました。 メモリモード 7 の GVRAM をクリアするとメモリモード 0,1,3,4,5 の GVRAM もクリアされます。

#### Rapid clear 高速クリア

Corrected the range of rapid clearing on the graphic screen. グラフィック画面の高速クリアの範囲を修正しました。

#### Data break point データブレークポイント

Fixed a bug that forgot to delete read and write checkboxes when deleting data breakpoints. (Thanks ついっこー (Kotaro Horie)) データブレークポイントを削除するときリードチェックボックスとライトチェックボックスを削除し忘れるバグを修正しました。(Thanks ついっこー (Kotaro Horie))

#### Disassemble list 逆アセンブルリスト

The address and/or offset button have been added. At the beginning of a line in the disassembly list, at the relative branch instruction, and at the program counter relative addressing and absolute long addressing locations, the address is normally displayed, but you can choose whether to display the address or the offset there. When the address and/or offset button is "$", the address is displayed; when it is "L", the offset is displayed; and when it is "$L", both the address and offset are displayed. アドレスとオフセットボタンを追加しました。 逆アセンブルリストの行頭、相対分岐命令、プログラムカウンタ相対アドレッシングおよび絶対ロングアドレッシングの場所には、通常はアドレスが表示されますが、そこにアドレスとオフセットのどちらを表示するか選択できます。 アドレスとオフセットボタンが「$」のときはアドレスが、「L」のときはオフセットが、「$L」のときはアドレスとオフセットの両方が表示されます。

The program name combo box has been added. By selecting device drivers, resident programs, or running programs, you can enter the offset from the top of the program instead of the address in the address spinner. プログラム名コンボボックスを追加しました。デバイスドライバ、常駐プログラム、実行中のプログラムを選択することで、アドレススピナーでアドレスの代わりにプログラムの先頭からのオフセットを入力できます。

When a program name is duplicated, a serial number is added to the end of the program name. プログラム名が重複しているときプログラム名の末尾に通し番号が付きます。

You can scroll with the mouse wheel. マウスホイールでスクロールできます。

### 0.25.05.08

#### Execution environment 実行環境

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

#### Manifest file マニフェストファイル

The following line has been added to the manifest file to suppress warning messages about the use of JNI. JNI の使用に対する警告メッセージを抑制するため、マニフェストファイルに以下の 1 行を追加しました。

    Enable-Native-Access: ALL-UNNAMED

#### Disassembler 逆アセンブラ

Adjusted the number of spaces on the right side of st.b/sf.b. st.b/sf.b の右側の空白の数を調整しました。

#### sprdrv.x (2025-04-10)

Changed the numbering of sprites in the argument of IOCS _SP_REGST/_SP_REGGT to a form with packed missing numbers. Modified IOCS _BGTEXTST. IOCS _SP_REGST/_SP_REGGT の引数のスプライトの番号を、欠番を詰めた形式に変更しました。IOCS _BGTEXTST を修正しました。

#### spr1016test.x

Followed changes in sprdrv.x. sprdrv.x の変更に追従しました。

#### Keyboard キーボード

The use of threads for keystrokes has been changed. キー入力時のスレッドの使い方を変更しました。

Fixed a problem in which changing the keyboard availability while in full-screen mode would cause the keyboard availability to revert to the state before the change when the full-screen mode was exited. 全画面表示中にキーボードの有無を変更すると、全画面表示を終了したときに、キーボードの有無が変更する前の状態に戻ってしまう問題を修正しました。

Keys have been removed from the full screen radio button in the display menu and the seamless mouse checkbox in the input menu. The function of the F11 and F12 keys can be changed using the F11/F12 and button function assignments window. 画面メニューの全画面表示ラジオボタンと入力メニューのシームレスマウスチェックボックスからキーの表示を削除しました。F11 キーと F12 キーの機能はF11/F12 およびボタン機能割り当てウインドウで変更できます。

#### crtmod16.s/crtmodtest.s/stupsnd.s

Corrected stou. (Thanks TcbnErik) stou を修正しました。(Thanks TcbnErik)

#### XInput

The technology used to process XInput has been changed from JNI to a standard API derived from Project Panama. XInput の処理に使用する技術を JNI から Project Panama 由来の標準 API に変更しました。

#### Sprite controller スプライトコントローラ

Fixed a problem in which bits 6, 7, and 8 of $00EB0808 were not fixed to 0. $00EB0808 の bit6,7,8 が 0 に固定されていなかった問題を修正しました。

Bit 10 of $00EB0808 is implemented. When this bit is 1, writing to the pattern/text area is ignored and reading it returns $FFFF. $00EB0808 の bit10 を実装しました。 このビットが 1 のとき、パターン / テキストエリアへ書き込むと無視され、読み出すと $FFFF が返ります。

Although there is no proof, bit 10 of $00EB0808 and bit 2 of the priority word in the sprite scroll register are both considered to be bits for selecting the chip select signal output from the sprite controller CYNTHIA. A 32 KB SRAM is connected to the XPC0/PCS0 pin of the CYNTHIA, but the XPC1/PCS1 pin is unconnected. Since no memory is connected to XPC1/PCS1, it is believed that writing to the pattern/text area is ignored and reading back returns $FFFF, resulting in the sprite appearing tofu. 確証はありませんが、$00EB0808 の bit10 とスプライトスクロールレジスタのプライオリティワードの bit2 はいずれも、スプライトコントローラ CYNTHIA から出力されるチップセレクト信号を選択するためのビットであると考えられます。CYNTHIA の XPC0/PCS0 ピンには 32KB の SRAM が接続されていますが、XPC1/PCS1 ピンは非接続です。XPC1/PCS1 ピンにメモリが接続されていないため、パターン / テキストエリアへ書き込むと無視され、読み出すと $FFFF が返り、その結果スプライトが豆腐に見えるのだと考えられます。

#### Wait cycle ウェイトサイクル

Added wait cycles to the sprite scroll register and pattern area. スプライトスクロールレジスタとパターンエリアにウェイトサイクルを追加しました。

#### Minimum screen width 画面の最小幅

The minimum screen width was changed from 256 dots to 64 dots. 画面の最小幅を 256 ドットから 64 ドットに変更しました。

#### MFP

Fixed timer behavior. タイマーの動作を修正しました。

#### Modification menu 改造メニュー

Organized modification menu. 改造メニューを整理しました。

#### Drawing improvements 描画の改善

##### Draw screen at regular intervals 一定の間隔で画面を描画する

The drawing method has been changed from a virtual time vertical cycle to a real time vertical cycle. 仮想時間の垂直周期で行っていた描画を実時間の垂直周期で行う方法に変更しました。

##### Use canvas キャンバスを使う

The canvas is used by default to lighten the drawing process. 描画の処理を軽くするためデフォルトでキャンバスを使います。

The use canvas checkbox in the display menu allows you to choose whether to use the canvas. This setting is saved in the parameter usecanvas. You need to re-launch XEiJ for the changes to take effect. 画面メニューのキャンバスを使うチェックボックスでキャンバスを使うか選択できます。 この設定はパラメータ usecanvasに保存されます。 変更を反映させるには XEiJ を起動し直す必要があります。

##### Adjust to host refresh rate ホストのリフレッシュレートに合わせる

Added adjust to host refresh rate. ホストのリフレッシュレートに合わせるを追加しました。

Adjust VSYNC frequency to the host refresh rate. When the adjust to host refresh rate checkbox in the modification menu is ON, the dot clock frequency is adjusted so that they match if the host refresh rate is 0.75 to 1.25 times the vertical sync frequency. Changes will take effect immediately. This setting is saved in the parameter adjustvsync. 垂直同期周波数をホストのリフレッシュレートに合わせます。 改造メニューのホストのリフレッシュレートに合わせるチェックボックスが ON のとき、ホストのリフレッシュレートが垂直同期周波数の 0.75～1.25 倍ならばそれらが一致するようにドットクロック周波数を調整します。 変更は直ちに反映されます。 この設定はパラメータ adjustvsyncに保存されます。

The host refresh rate text field in the modification menu allows you to specify the host refresh rate. If not specified, DisplayMode.getRefreshRate() is used to try to get the refresh rate. If it is not specified and cannot be obtained, 59.94 Hz is used. Changes will take effect immediately. This setting is saved in the parameter refreshrate. 改造メニューのホストのリフレッシュレートテキストフィールドでホストのリフレッシュレートを指定できます。 指定がないときは DisplayMode.getRefreshRate() を用いてリフレッシュレートの取得を試みます。 指定がなく取得もできなかったときは 59.94Hz を使用します。 変更は直ちに反映されます。 この設定はパラメータ refreshrateに保存されます。

The current vertical sync frequency can be checked with the screen mode test window. 現在の垂直同期周波数は表示モードテストウィンドウで確認できます。

To quickly check the effect, use "echo ^[[?4h" (for ^[, press the ESC key twice) to put the console in 8-dot smooth scroll mode and then display a long text file. If you do not match the refresh rate of the host, the scrolling will rattle, but if you do, the scrolling will be smooth. If you set "mew d0a 1" in db.x to 4-dot smooth scroll mode, the smoothness will increase. 手っ取り早く効果を確認するには、「echo ^[[?4h」(^[は ESC キーを 2 回押す) でコンソールを 8 ドットスムーススクロールモードにしてから長いテキストファイルを表示するとよいでしょう。 ホストのリフレッシュレートに合わせないとガタガタとスクロールしますが、合わせるとスムースにスクロールします。db.x で「mew d0a 1」として 4 ドットスムーススクロールモードにするとヌルヌル感が増します。

With these changes, the intermittent drawing mode has been discontinued. Intermittent drawing mode was a product of the days when it was not possible to draw every frame. It may now be difficult to run XEiJ in environments that are so unpowered that intermittent drawing mode is necessary. これらの変更に伴い、間欠描画モードを廃止しました。 間欠描画モードはすべてのフレームを描画することができなかった時代の産物です。 間欠描画モードが必要なほど非力な環境で XEiJ を動かすことは難しくなったかも知れません。

#### Full screen and maximized 全画面表示と最大化

Since I could not find a way to have the menu bar and canvas coexist in full screen, I have added and modified functions in the direction of using full screen when you want to immerse yourself in the X68000 screen and maximized when you want to make the window wider. 全画面表示の状態でメニューバーとキャンバスを共存させる方法を見つけられなかったので、全画面表示は X68000 の画面に没入したいときに使い、ウインドウを広くしたいときは最大化を使う方向で、機能の追加と修正を行いました。

The F11/F12 and button function assignments window allows you to assign a key or button to toggle full screen and maximized. By default, the F11 key is assigned to toggle full screen and the Shift+F11 key is assigned to toggle maximized. Either key or button can be used to exit both full screen and maximized. F11/F12 およびボタン機能割り当てウィンドウで、キーまたはボタンに全画面表示の切り替えと最大化の切り替えを割り当てることができます。 デフォルトで F11 キーに全画面表示の切り替えが、Shift+F11 キーに最大化の切り替えが割り当てられています。 全画面表示の切り替えと最大化の切り替えのどちらのキーまたはボタンでも、全画面表示と最大化の両方を終了させることができます。

Selecting full screen radio button in the display menu will bring the window into full screen, while selecting maximized radio button will maximize the window. The menu bar is not displayed while in full screen, so it is not possible to exit full screen via the menu. It is not possible to switch to full screen without a key or button assigned to exit full screen. 画面メニューの全画面表示ラジオボタンを選択するとウインドウが全画面表示になり、最大化ラジオボタンを選択するとウインドウが最大化します。 全画面表示の間はメニューバーが表示されないので、メニューで全画面表示を終了させることはできません。 全画面表示を終了させるキーまたはボタンが割り当てられていない状態で全画面表示に切り替えることはできないようにしてあります。

A bubble will appear for 5 seconds after switching to full screen, indicating the key or button to exit full screen. 全画面表示に切り替えてから 5 秒間、全画面表示を終了させるキーまたはボタンを知らせるバブルが表示されます。

When the hide keyboard in full screen checkbox in the input menu is ON, the keyboard is turned off when going to full screen and turned back on when exiting full screen. If the keyboard is changed by pressing Alt+Shift+K while in full screen, it will not be restored. This setting is saved in the parameter hidekeyboard. 入力メニューの全画面表示のときキーボードを隠すチェックボックスが ON のとき、全画面表示へ移行するときキーボードが消え、全画面表示を終了するとき元に戻ります。 全画面表示中に Alt+Shift+K でキーボードの有無を変更した場合は元に戻りません。 この設定はパラメータ hidekeyboardに保存されます。

There was a function to hide the keyboard when stereoscopic viewing and full screen were used together, but it has been eliminated because it was redundant. 立体視と全画面表示を併用したときキーボードを非表示にする機能がありましたが、重複するので廃止しました。

#### RS-232C and terminal RS-232C とターミナル

Added 50000bps to the baud rate options when connecting a serial port to a terminal in the RS-232C and terminal window. When the USB-RS232C converter supports 50000bps, setting X680x0 to asynchronous 51200bps (theoretical value 52083bps) seems to be able to connect just barely, although there is a 4% error margin. RS-232C とターミナルウインドウで、シリアルポートとターミナルを接続するときのボーレートの選択肢に、50000bps を追加しました。USB-RS232C 変換器が 50000bps に対応しているとき、X680x0 を非同期 51200bps(理論値 52083bps) に設定すると、誤差が 4% あるものの、ぎりぎり接続できるようです。

#### 38400bps.x/51200bps.x

Added 38400bps.x and 51200bps.x. 38400bps.xと51200bps.xを追加しました。

### 0.25.04.08

#### Key assignments キー割り当て

Fixed a bug that prevented restoring key assignments from CSV files containing 13- to 16-bit keyCodes (especially F13-F24) when using Windows. Windows のとき 13～16 ビットの keyCode(特に F13～F24) を含む CSV ファイルからキー割り当てを復元できないバグを修正しました。

#### MC68010 checkbox MC68010 チェックボックス

The behavior of the MC68010 checkbox in the change the model and reset menu has been changed. It selects whether to use 68000 or 68010 when reset, not only when using the change the model and reset menu. This setting is saved in parameter mpu010. 機種を変更してリセットメニューのMC68010 チェックボックスの動作を変更しました。機種を変更してリセットメニューを使う場合に限らず、リセットしたとき 68000 と 68010 のどちらを使うか選択します。この設定はパラメータ mpu010に保存されます。

#### IPLROM 1.6 (2025-03-23)

Fixed a bug that address errors were not displayed correctly in the error display at startup when in 68060 mode. 68060 モードのとき起動時のエラー表示でアドレスエラーが正しく表示されないバグを修正しました。

Errors 4-11 are now displayed as words such as Illegal instruction instead of numbers in the error display at startup. 起動時のエラー表示でエラー 4～11 が番号ではなく Illegal instruction などの言葉で表示されるようにしました。

IOCS _CRTMOD had added a process to set dummy values in the sprite control registers when the lower 5 bits of R20 of CRTC are %1xx1x, but this process was removed because it interferes when sprites displayed at 768x512. IOCS _CRTMOD に CRTC の R20 の下位 5bit が %1xx1x のときスプライト制御レジスタにダミーの値を設定する処理が追加されていましたが、768x512 でスプライトを表示するとき邪魔なので削除しました。

Moved the position of the cache flush patch in the SASI BIOS before the start of the DMA transfer from just before the start of the DMA transfer to just before the last byte of the command is sent. SASI BIOS の DMA 転送開始前のキャッシュフラッシュのパッチの位置を、DMA 転送開始の直前から、コマンドの最後の 1 バイトを送信する直前に移動させました。

Added a process to IOCS _CRTMOD to write $60 when the content of $00ED0095 is not $6x. This is to reduce the possibility that the startup screen is not displayed or LCD mode is unexpectedly enabled because $00ED0095 is not initialized when IPLROM 1.6 is installed in an actual X68000 device for the first time. When you install IPLROM 1.6 on an actual X68000 machine for the first time, please boot the machine while pressing the N key (CRT mode) or the L key (LCD mode) to check the startup screen. IOCS _CRTMOD に $00ED0095 の内容が $6x でないとき $60 を書き込む処理を加えました。X68000 実機に IPLROM 1.6 を初めて載せたときに、$00ED0095 が初期化されていないために起動画面非表示や LCD モードが予期せず有効になってしまう可能性を下げるためです。X68000 実機に IPLROM 1.6 を初めて載せたときは、N キー (CRT モード) または L キー (LCD モード) を押しながら起動して、起動画面を確認するようにしてください。

#### crtmod16.x/crtmrb16.x (2025-03-23)

Same changes as IPLROM 1.6 (2025-03-23). IPLROM 1.6 (2025-03-23) と同じ変更を加えました。

#### ROM image file parameters ROM イメージファイルのパラメータ

When IPLROM 1.6 is deployed in a 256KB configuration, parameters that overwrite only a portion of it instead of the whole of it are disabled. IPLROM 1.6 が 256KB の構成で配置されているとき、その全体ではなく一部分だけを上書きするようなパラメータは無効になります。

- When -scsiinrom is specified -scsiinrom を指定したとき
- When a 128KB file is specified for -rom30 and -iplrom is not specified -rom30 に 128KB のファイルを指定して -iplrom を指定しなかったとき
- When -iplrom is specified without -rom30 -rom30 を指定せず -iplrom を指定したとき

The following specification is valid because it overwrites the entire IPLROM 1.6. 以下の指定は IPLROM 1.6 の全体を上書きするので有効です。

- When a 256KB file is specified for -rom30 -rom30 に 256KB のファイルを指定したとき
- When a 128KB file is specified for -rom30 and -iplrom is specified -rom30 に 128KB のファイルを指定して -iplrom を指定したとき

#### Disassemble list 逆アセンブルリスト

Corrected display of base displacement for full-format PC indirect addressing. フルフォーマット PC 間接アドレッシングのベースディスプレースメントの表示を修正しました。

#### ROM Debugger 3.60 (2025-03-23) ROM デバッガ 3.60 (2025-03-23)

Updated ROM Debugger 3.60 included in IPLROM 1.6. IPLROM 1.6に含まれるROM デバッガ 3.60を更新しました。

CON mode has been added. The ROM debugger is operated from a terminal connected via RS-232C in the conventional AUX mode, but in CON mode, the ROM debugger is operated from the X68000 screen and keyboard. CON モードを追加しました。従来の AUX モードのときは RS-232C 経由で接続されたターミナルから ROM デバッガを操作しますが、CON モードのときは X68000 の画面とキーボードで ROM デバッガを操作します。V コマンドで AUX モードと CON モードを切り替えられます。

The ROM debugger start flag ($00ED0058) in SRAM is set to $00 for OFF, $FF for AUX, and $01 for CON. switch d=off sets the flag to OFF, switch d=on sets the flag to AUX. SRAM にある ROM デバッガ起動フラグ ($00ED0058) の設定値は、$00 が OFF、$FF が AUX、$01 が CON です。switch d=off でフラグが OFF に、switch d=on でフラグが AUX になります。

If the OPT.2 key is pressed at startup, the flag changes to AUX if the flag was OFF or CON, and the flag changes to OFF if the flag was AUX. If the D key is pressed at startup, the flag changes to CON if the flag was OFF or AUX, and the flag changes to OFF if the flag was CON. Note that the effect of the OPT.2 key has changed from temporary to permanent. 起動時に OPT.2 キーが押されていると、フラグが OFF または CON だったときはフラグが AUX に、フラグが AUX だったときはフラグが OFF に変化します。起動時に D キーが押されていると、フラグが OFF または AUX だったときはフラグが CON に、フラグが CON だったときはフラグが OFF に変化します。OPT.2 キーの効果が一時的なものから永続的なものに変更されていることに注意してください。

ROM debugger 2.32 and DB.X 3.00/3.02 defects listed here have been largely fixed in db350.x and ROM Debugger 3.60. こちらに記載されている ROM デバッガ 2.32 と DB.X 3.00/3.02 の不具合は db350.x と ROM デバッガ 3.60 では概ね修正されています。

#### ROM debugger start flag menu ROM デバッガ起動フラグメニュー

The ROM debugger start flag checkbox in the debug menu has been changed to the ROM debugger start flag menu. デバッグメニューの ROM デバッガ起動フラグチェックボックスをROM デバッガ起動フラグメニューに変更しました。

Select which mode to overwrite the ROM debugger start flag in SRAM when reset. リセットしたとき SRAM にある ROM デバッガ起動フラグにどのモードを上書きするか選択します。

This setting is stored in the parameter romdb. この設定はパラメータ romdbに保存されます。

##### Follow settings in SWITCH.X radio button SWITCH.X の設定に従うラジオボタン

No overwrite. 上書きしません。

##### OFF radio button OFF ラジオボタン

Overwrite OFF. OFF を上書きします。

##### AUX radio button AUX ラジオボタン

Overwrite AUX. AUX を上書きします。

##### CON (when using IPLROM 1.6) radio button CON (IPLROM 1.6 使用時) ラジオボタン

Overwrite CON when IPLROM 1.6, otherwise AUX. IPLROM 1.6 のときは CON を、さもなくば AUX を上書きします。

#### db350.bfd

Added db350.bfd. db350.bfdを追加しました。

db350.bfd is a binary diff file to make db350.x from DB.X. Run bup db350.bfd in the directory where you put DB.X 3.00 to make db350.x. db350.bfd は DB.X 3.00 から db350.x を作るバイナリ差分ファイルです。DB.X 3.00 を置いたディレクトリで bup db350.bfd を実行すると db350.x ができます。

bup.x can be found here. bup.x はこちらにあります。

db350.x is a byproduct of ROM Debugger 3.60, a sort of child between DB.X 3.00 and ROM Debugger 3.60. db350.x は ROM デバッガ 3.60 の副産物で、DB.X 3.00 と ROM デバッガ 3.60 の間の子のようなものです。

ROM debugger 2.32 and DB.X 3.00/3.02 defects listed here have been largely fixed in db350.x and ROM Debugger 3.60. こちらに記載されている ROM デバッガ 2.32 と DB.X 3.00/3.02 の不具合は db350.x と ROM デバッガ 3.60 では概ね修正されています。

#### Sprite screen スプライト画面

Bit 2 of the 4th word (priority) of the sprite scroll register, which had not been implemented, is now implemented. Pattern data is ignored and a square (tofu) filled with palette code 15 is displayed. 未実装だったスプライトスクロールレジスタの 4 ワード目 (プライオリティ) のビット 2 を実装しました。パターンデータが無視されてパレットコード 15 で埋め尽くされた四角形 (豆腐) が表示されます。

#### prwbit2.x

Added prwbit2.x. prwbit2.xを追加しました。

Check the operation of bit 2 of the 4th word (priority) of the sprite scroll register. スプライトスクロールレジスタの 4 ワード目 (プライオリティ) のビット 2 の動作を確認します。

#### Modification menu 改造メニュー

Fixed a problem that sprites displayed in 768x512 does not appear in the modification menu. (Thanks みゆ🌹ฅ^•ω•^ฅ) 改造メニューに 768x512 でスプライトを表示が表示されない問題を修正しました。(Thanks みゆ🌹ฅ^•ω•^ฅ)

#### Seamless mouse mode シームレスマウスモード

Fixed a problem in which the apparent Y-coordinate of the mouse cursor on the X68000 was doubled when the CRTC reads the raster twice. On Windows, the host mouse cursor disappears, so the X68000 can be operated without any problem even if it is doubled, but on macOS, there was a problem when the host mouse cursor did not disappear. (Thanks megazone-mc21) CRTC がラスタを 2 度読むとき X68000 のマウスカーソルの見かけの Y 座標が 2 倍になる問題を修正しました。Windows ではホストのマウスカーソルが消えるので 2 倍になっていても問題なく操作できましたが、macOS でホストのマウスカーソルが消えないとき支障がありました。(Thanks megazone-mc21)

#### crtmodtest.x (2025-04-01)

Fixed a problem that caused screen distortion when running in environments other than IPLROM 1.6/CRTMOD16.X. IPLROM 1.6/CRTMOD16.X 以外の環境で動かすと画面が乱れる問題を修正しました。

#### Number of sprites スプライトの枚数

The number of sprites can be selected from 128, 256, 504, and 1016 in the number of sprites menu in the modification menu. Changes will take effect after the reset. This setting is saved in the parameter numspr. 改造メニューのスプライトの枚数メニューでスプライトの枚数を 128、256、504、1016 から選べます。 変更はリセット後に反映されます。 この設定はパラメータ numsprに保存されます。

There are 1024 sprites numbered from 0 to 1023, but 8 sprites numbered from 256 to 263 are missing. In terms of the sprite scroll register addresses, $00EB0000 to $00EB1FFF, of which $00EB0800 to $00EB083F are in the range of missing numbers. Since there are control registers in the missing range, be careful not to write to them as if they were sprite scroll registers. スプライトの番号は 0 番から 1023 番までの 1024 個ですが、256 番から 263 番までの 8 個は欠番です。 スプライトスクロールレジスタのアドレスで言うと、$00EB0000～$00EB1FFF のうち $00EB0800～$00EB083F が欠番の範囲です。 欠番の範囲には制御レジスタがあるので、スプライトスクロールレジスタのつもりで書き込まないように注意してください。

The 256 sprites checkbox in the modification menu has been eliminated. The parameter dblspr has been eliminated. 改造メニューにあった 256 枚のスプライトチェックボックスを廃止しました。 パラメータ dblspr を廃止しました。

#### sprdrv.x (2025-04-07)

Added extended sprite and background driver sprdrv.x. 拡張スプライト・バックグラウンドドライバ sprdrv.x を追加しました。

Enables XEiJ extensions to be used with sprite and background related IOCS calls. Processes that have enabled extensions with _SP_INIT will disable them when they exit. See sprdrv.s for details. スプライト・バックグラウンド関連の IOCS コールで XEiJ の拡張機能を使用できるようにします。_SP_INIT で拡張機能を有効にしたプロセスが終了するとき拡張機能を無効にします。 詳細は sprdrv.s を参照してください。

Insufficient specification review or behavior check. Please let me know when you think the specification or behavior is not appropriate. 仕様の検討や動作の確認が不十分です。 仕様や動作が適切でないと思われるときはご指摘ください。

#### spr1016test.x

spr1016test.x is added. spr1016test.x を追加しました。

This is a test program to display 1016 sprites using only IOCS calls with sprdrv.x. Run it with the following settings. sprdrv.x を使って IOCS コールだけで 1016 枚のスプライトを表示するテストプログラムです。 以下の設定で実行してください。

- Number of sprites is 1016 スプライトの枚数は 1016
- 4096 patterns 4096 個のパターン
- Display sprites at 768x512 768x512 でスプライトを表示
- Number of sprites per raster is 1016 ラスタあたりのスプライトの枚数は 1016
- Resident sprdrv.x sprdrv.x を常駐させる

### 0.25.03.08

#### Data break point データブレークポイント

Added read and write conditions to data break points. データブレークポイントにリードとライトの条件を追加しました。

Fixed a bug in the process of resetting the overhead to zero on pages where data break points no longer exist due to data break points being disabled. データブレークポイントが無効化されたことでデータブレークポイントが存在しなくなったページのオーバーヘッドをゼロに戻す処理のバグを修正しました。

#### 4096 patterns 4096 個のパターン

Added 4096 patterns. 4096 個のパターンを追加しました。

If the 4096 patterns checkbox in the modification menu is checked and reset, 4096 patterns can be defined. 改造メニューの4096 個のパターンチェックボックスを ON にしてリセットすると、4096 個のパターンを定義できるようになります。

This setting is stored in the parameter sprbank. この設定はパラメータ sprbankに保存されます。

##### Text area shift テキストエリアの移動

Shift the text area from $00EBC000-$00EBFFFF to $00EB4000-$00EB7FFF so that you can define 256 patterns even if you use 2 planes of text area. テキストエリアを $00EBC000～$00EBFFFF から $00EB4000～$00EB7FFF へ移動させて、テキストエリアを 2 面使っていてもパターンを 256 個定義できるようにします。

Memory map of sprite screen スプライト画面のメモリマップ
Address アドレス | Before text area shift テキストエリアの移動前 | After text area shift テキストエリアの移動後
--- | --- | ---
256x256/512x512 | 768x512 | 256x256/512x512 | 768x512
$00EB0000 : $00EB03FF | Sprite 0 to 127 スプライト 0～127 | Bus error バスエラー | Sprite 0 to 127 スプライト 0～127 | Bus error バスエラー
$00EB0400 : $00EB07FF | Sprite 128 to 255 (extended)スプライト 128～255(拡張) | Sprite 128 to 255 (extended)スプライト 128～255(拡張)
$00EB0800 : $00EB0815 | Control registers 制御レジスタ
$00EB0816 : $00EB3FFF | Unused 未使用
$00EB4000 : $00EB5FFF | Unused 未使用 | Text area 0 テキストエリア 0 | Bus error バスエラー
$00EB6000 : $00EB7FFF | Text area 0 テキストエリア 1
$00EB8000 : $00EBBFFF | Pattern 0 to 127 パターン 0～127 | Bus error バスエラー | Pattern 0 to 255 パターン 0～255
$00EBC000 : $00EBDFFF | Pattern 128 to 191 パターン 128～191 | Text area 0 テキストエリア 0
$00EBE000 : $00EBFFFF | Pattern 192 to 255 パターン 192～255 | Text area 1 テキストエリア 1 | Text area 1 テキストエリア 1

##### Referencing patterns from sprite and text areas スプライトエリアとテキストエリアからのパターンの参照

Increase the number of patterns that can be referenced from 256 to 1024 or 4096 by changing the sprite and text areas as follows

スプライトエリアとテキストエリアを以下のように変更することで、参照できるパターンの数を 256 個から 1024 個または 4096 個に増やします。

Sprite area (256 patterns)スプライトエリア (256 個のパターン)
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
+0 |  | X 座標
+2 | Y 座標
+4 | Up/Down 上下 | Left/Right 左右 |  | Palette block パレットブロック | Pattern number パターン番号
+6 |  | Priority プライオリティ
:

Sprite area (1024 patterns)スプライトエリア (1024 個のパターン)
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
+0 |  | X 座標
+2 | Y 座標
+4 | Up/Down 上下 | Left/Right 左右 | Bank number バンク番号 | Palette block パレットブロック | Pattern number パターン番号
+6 |  | Priority プライオリティ
:

Sprite area (4096 patterns without inversion)スプライトエリア (4096 個のパターン、反転なし)
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
+0 |  | X 座標
+2 | Y 座標
+4 | Bank number バンク番号 | Palette block パレットブロック | Pattern number パターン番号
+6 |  | Priority プライオリティ
:

Sprite area (4096 patterns with inversion)スプライトエリア (4096 個のパターン、反転あり)
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
+0 |  | X 座標
+2 | Y 座標
+4 | Bank number バンク番号 | Palette block パレットブロック | Pattern number パターン番号
+6 | Up/Down 上下 | Left/Right 左右 |  | Priority プライオリティ
:

Text area (256 patterns)テキストエリア (256 個のパターン)
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Up/Down 上下 | Left/Right 左右 |  | Palette block パレットブロック | Pattern number パターン番号
:

Text area (1024 patterns)テキストエリア (1024 個のパターン)
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Up/Down 上下 | Left/Right 左右 | Bank number バンク番号 | Palette block パレットブロック | Pattern number パターン番号
:

Text area (4096 patterns)テキストエリア (4096 個のパターン)
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Bank number バンク番号 | Palette block パレットブロック | Pattern number パターン番号
:

When the number of patterns is increased to 4096, the up/down and left/right inversions are eliminated. However, if there is no need to save patterns, it is considered sufficient to define inverted patterns as needed. 4096 個にしたとき上下左右の反転がなくなりますが、パターンを節約する必要がなければ、必要に応じて反転したパターンを定義すればよいと考えられます。

Replacing the inversion instructions with a bank selection allows you to define the result of the inversion. For example, shadows of patterns that used to be done by inversion can be adjusted simply by changing the definition process. 反転の指示をバンク選択に置き換えることで、反転の結果を定義できるようになります。例えば、反転で済ませていたパターンの影の調整が、定義の処理の変更だけで行えます。

##### Expansion of pattern area パターンエリアの拡張

The pattern area ($00EB8000-$00EBFFFF) is expanded 16 times using bank switching, increasing the number of patterns that can be defined from 256 to 4096. パターンエリア ($00EB8000～$00EBFFFF) をバンク切り替えを用いて 16 倍に拡張することで、定義できるパターンの数を 256 個から 4096 個に増やします。

The weakness of bank switching is random access, but since a pattern is 16 or 64 words, even if writes increase by one word per pattern, the impact is expected to be limited. バンク切り替えの弱点はランダムアクセスですが、1 パターンが 16 または 64 ワードなので、書き込みが 1 パターンあたり 1 ワード増えたとしても影響は限定的と考えられます。

##### Adding registers レジスタの追加

Added bank control register ($00EB0812) and bank select register ($00EB0814). バンク制御レジスタ ($00EB0812) とバンク選択レジスタ ($00EB0814) を追加します。

Bank control register ($00EB0812)バンク制御レジスタ ($00EB0812)
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
| Mode モード | Shift 移動

Mode モード
Mode モード | Number of patterns パターンの数 | Sprite inversion スプライトの反転 | Text inversion テキストの反転
--- | --- | --- | ---
0 | 256 | Available できる
1 | 1024
2 | 4096 | Not available できない
3 | Available できる | Not available できない

Shift 移動
Shift 移動 | Text area shift テキストエリアの移動 | Range of the text area テキストエリアの範囲
--- | --- | ---
0 | Not do しない | $00EBC000-$00EBFFFF$00EBC000～$00EBFFFF
1 | Do する | $00EB4000-$00E7FFFF$00EB4000～$00EB7FFF

Bank select register ($00EB0814)バンク選択レジスタ ($00EB0814)
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
| Bank number バンク番号 |

Bank number バンク番号
Bank number バンク番号 | Range of pattern numbers accessible in $00EB8000-$00EBFFFF$00EB8000～$00EBFFFF でアクセスできるパターン番号の範囲
--- | ---
0 | 0 to 255†0～255†
1 | 256 to 511 256～511
2 | 512 to 767 512～767
3 | 768 to 1023 768～1023
4 | 1024 to 1279 1024～1279
5 | 1280 to 1535 1280～1535
6 | 1536 to 1791 1536～1791
7 | 1792 to 2047 1792～2047
8 | 2048 to 2303 2048～2303
9 | 2304 to 2559 2304～2559
10 | 2560 to 2815 2560～2815
11 | 2816 to 3071 2816～3071
12 | 3072 to 3327 3072～3327
13 | 3328 to 3583 3328～3583
14 | 3584 to 3839 3584～3839
15 | 3840 to 4095 3840～4095

†The number of patterns that can be accessed in bank 0 is 256, but if one plane is used without text area shift, the number is reduced to 192, and if two planes are used, the number is reduced to 128. †バンク 0 でアクセスできるパターンは 256 個ですが、テキストエリアを移動せず 1 面使うと 192 個に、同じく 2 面使うと 128 個に減ります。

Pattern numbers from 0 to 4095 can be written to the bank select register without shifting. 0～4095 のパターン番号をシフトせずにバンク選択レジスタへ書き込めます。

To prevent later programs from malfunctioning, set both back to 0 when you are finished using them. 後のプログラムが誤動作しないように、どちらも使い終わったら 0 に戻してください。

##### Pseudo graphic screen 疑似グラフィック画面

By laying each of the 4096 patterns in the background one by one, it can be used as a third 1024x1024 dot 16-color graphic screen. バックグラウンドに 4096 個のパターンを 1 個ずつ敷き詰めることで、3 枚目の 1024x1024 ドット 16 色のグラフィック画面として使うことができます。

##### Supplemental information on text area テキストエリアに関する補足

The text area before shift and the second half of bank 0 in the pattern area have the same address but different entities. Data written to the text area before shift is written to both the text area and the second half of bank 0. Data read from the text area before shift is read from the second half of bank 0. Data written to the text area after shift cannot be read from the text area before shift because it has not been written to the second half of bank 0. 移動前のテキストエリアと、パターンエリアのバンク 0 の後半は、アドレスが同じですが実体が違います。移動前のテキストエリアへ書き込んだデータは、テキストエリアと、バンク 0 の後半の両方へ書き込まれます。移動前のテキストエリアから読み出したデータは、バンク 0 の後半から読み出されます。移動後のテキストエリアへ書き込んだデータは、バンク 0 の後半へ書き込まれていないので、移動前のテキストエリアから読み出せません。

When bank 1 or higher is selected, the text area before shift will not be visible. バンク 1 以上を選択すると、移動前のテキストエリアは見えなくなります。

##### Other その他

Standard IOCS calls do not support 4096 patterns. 標準の IOCS コールは 4096 個のパターンに対応していません。

#### pat4096test.x

Added pat4096test.x. pat4096test.xを追加しました。

Test 256 sprites and 4096 patterns. 256 枚のスプライトと4096 個のパターンをテストします。

Turn on the 256 sprites checkbox and the 4096 patterns checkbox in the modification menu, and reset before executing. 改造メニューの256 枚のスプライトチェックボックスと4096 個のパターンチェックボックスを ON にしてリセットしてから実行します。

Press any key to exit. 何かキーを押すと終了します。

It does not work on the actual X68000 machine. X68000 実機では動きません。

#### Sprites displayed in 768x512 768x512 でスプライトを表示

Added sprites displayed in 768x512. 768x512 でスプライトを表示を追加しました。

If the sprites displayed in 768x512 checkbox in the modification menu is checked and reset, the sprite screen can be displayed in 768x512. 改造メニューの768x512 でスプライトを表示チェックボックスを ON にしてリセットすると、768x512 でスプライト画面を表示できるようになります。

This setting is stored in the parameter spr768x512. この設定はパラメータ spr768x512に保存されます。

The restriction that the sprite screen cannot be displayed when the lower 5 bits of R20 of CRTC are %1xx1x is removed. CRTC の R20 の下位 5 ビットが %1xx1x のときスプライト画面を表示できないという制限を解除します。

Bits 4, 1, and 0 of R20 of CRTC select the dot clock (oscillator and frequency divider ratio). For %1xx1x, the dot clock is 25 MHz or higher, which corresponds to 768x512, 1024x424, 1024x848, and 640x480 in CRTMOD 16 to 19 in standard screen mode. CRTC の R20 のビット 4,1,0 はドットクロック (オシレータと分周比) を選択します。%1xx1x はドットクロックが 25MHz 以上で、標準の画面モードでは CRTMOD 16～19 の 768x512、1024x424、1024x848、640x480 が該当します。

This limitation is so strong that even if one wanted to display a sprite screen at 768x512, just accessing the sprite area, pattern area, or text area would cause a bus error and there is no way to solve the problem. この制限は強く、768x512 でスプライト画面を表示したくてもスプライトエリア、パターンエリア、テキストエリアにアクセスしただけでバスエラーが発生してしまい、取り付く島もありません。

By removing this limitation, the sprite screen can be displayed even in 768x512. この制限を解除することで、768x512 でもスプライト画面を表示できるようになります。

#### spr768x512.x

Added spr768x512.x. spr768x512.xを追加しました。

Test 256 sprites, 4096 patterns and sprites displayed in 768x512. 256 枚のスプライトと4096 個のパターンと768x512 でスプライトを表示をテストします。

Turn on the 256 sprites checkbox, the 4096 patterns checkbox, and the sprites displayed in 768x512 checkbox in the modification menu, and reset before executing. 改造メニューの256 枚のスプライトチェックボックスと4096 個のパターンチェックボックスと768x512 でスプライトを表示チェックボックスを ON にしてリセットしてから実行します。

Press any key to exit. 何かキーを押すと終了します。

It does not work on the actual X68000 machine. X68000 実機では動きません。

#### Text screen テキスト画面

When the real screen size is 1024x1024 and the text screen and the graphic screen are displayed and the scroll position in the X direction of either is not a multiple of 8, the scroll position in the X direction of the text screen shifts by 1 to 7 dots at the position where the real screen coordinates in the X direction of the graphic screen cross a multiple of 512. This bug has been fixed. 実画面サイズが 1024x1024 で、テキスト画面とグラフィック画面が表示されていて、どちらかの X 方向のスクロール位置が 8 の倍数ではないとき、グラフィック画面の X 方向の実画面座標が 512 の倍数を跨ぐ位置で、テキスト画面の X 方向のスクロール位置が 1～7 ドットずれるバグを修正しました。

#### BG1 displayed in 512x512 512x512 で BG1 を表示

Added BG1 displayed in 512x512. 512x512 で BG1 を表示を追加しました。

If the BG1 displayed in 512x512 checkbox in the modification menu is checked and reset, the BG1 can be displayed in 512x512. 改造メニューの512x512 で BG1 を表示チェックボックスを ON にしてリセットすると、512x512 で BG1 を表示できるようになります。

This setting is stored in the parameter spr512bg1. この設定はパラメータ spr512bg1に保存されます。

Remove the limitation that only one background plane can be displayed in 512x512. It is possible to display two planes of background in 512x512 as well as in 256x256. 512x512 のときはバックグラウンドを 1 面しか表示できないという制限を解除します。256x256 のときと同様に 512x512 のときもバックグラウンドを 2 面表示できるようになります。

#### hypotrochoid.x

Added hypotrochoid.x. hypotrochoid.xを追加しました。

Draw a hypotrochoid on the pseudo graphic screen (background with 4096 patterns laid out). Blue (S) and purple (S) are sprite screens (BG0 and BG1), red (T) is a text screen, and green (G) is a graphic screen. 疑似グラフィック画面 (4096 個のパターンを敷き詰めたバックグラウンド) にハイポトロコイドを描きます。青 (S) と紫 (S) はスプライト画面 (BG0 と BG1)、赤 (T) はテキスト画面、緑 (G) はグラフィック画面です。

Turn on the the 4096 patterns checkbox, the sprites displayed in 768x512 checkbox, and the BG1 displayed in 512x512 checkbox in the modification menu, and reset before executing. 改造メニューの4096 個のパターンチェックボックスと768x512 でスプライトを表示チェックボックスと512x512 で BG1 を表示チェックボックスを ON にしてリセットしてから実行します。

Press BREAK/CTRL+C/ESC key to exit, other keys to stop during operation. While stopped, press ENTER key to resume and other keys to advance frame. BREAK/CTRL+C/ESC キーで終了、動作中はその他のキーで停止。停止中は ENTER キーで再開、その他のキーでコマ送りします。

It does not work on the actual X68000 machine. X68000 実機では動きません。

### 0.25.02.08

#### Execution environment 実行環境

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

#### DMAC

Removed the process of clearing the PCT when a 1 is written to the PCT of the CSR. CSR の PCT に 1 が書き込まれたとき PCT をクリアする処理を外しました。

#### OPM log OPM ログ

Fixed a bug that could cause a crash if the start playback button was pressed during playback. 再生中に再生開始ボタンを押すとクラッシュすることがあるバグを修正しました。

#### Key repeat キーリピート

Fixed a bug that caused extra key repeats when reading the UDR more than once in the key-input interrupt routine. The method of processing key repeats has been changed from being done in MFP to using TimerTask. キー入力割り込みルーチンで UDR を 2 回以上読むと余計なキーリピートが発生するバグを修正しました。 キーリピートの処理を MFP の中で済ませる方法から TimerTask を使う方法に変更しました。

### 0.25.01.08

#### IPLROM 1.6 (2024-12-09)

You can change the X68000 logo on the IPLROM 1.6 startup screen. Specify the file name of the TEXTPUT format data or the ROM image file name in the parameter x68000logo. The logo height is 16 dots, the standard width is 112 dots, and the upper limit is 208 dots. If the logo width is larger than the standard, the string "SERIES" will not be displayed. To use the 060turbo logo, the ROM of the actual 060turbo machine is required. IPLROM 1.6 の起動画面の X68000 ロゴを変更できます。TEXTPUT 形式のデータのファイル名または ROM イメージファイル名を、パラメータ x68000logoに指定します。 ロゴの高さは 16 ドット、幅は標準が 112 ドット、上限が 208 ドットです。 ロゴの幅が標準より大きいとき、文字列「SERIES」は表示されません。060turbo のロゴにするには 060turbo 実機の ROM が必要です。

You can change the style of the IPLROM 1.6 startup screen. The proportional pitch is 1, centered is 2, with gaps is 4, and the sum of these is specified in the parameter iplrom16style. The default is 7. IPLROM 1.6 の起動画面のスタイルを変更できます。 プロポーショナルピッチを 1、中央寄せを 2、隙間ありを 4 として、それらの合計をパラメータ iplrom16styleに指定します。 デフォルトは 7 です。

#### ppcon.x 0.11

Fixed the behavior of the escape sequence "ESC = r c" in ppcon.x. ppcon.xのエスケープシーケンス「ESC = r c」の動作を修正しました。

#### RS-232C transmit buffer empty interrupt RS-232C の送信バッファ空割り込み

RS-232C transmit buffer empty interrupt is implemented. The transmit interrupt output mode of bsio.x 0.21 is available. RS-232C の送信バッファ空割り込みを実装しました。bsio.x 0.21 の送信割り込み出力モードを使用できます。

    ;'0'～'9'を200個と$0D,$0A、最後に$1Aを送信する
    ;bsio.x -iのとき直ちに終了することを確認する
            .include        doscall.mac
            .include        iocscall.mac
    @@:     IOCS    _OSNS232C
            tst.l   d0
            beq     @b
            moveq.l #'0',d6
            moveq.l #10-1,d5
    5:      move.w  #200-1,d4
    4:      move.l  d6,d1
            IOCS    _OUT232C
            dbra    d4,4b
            moveq.l #$0D,d1
            IOCS    _OUT232C
            moveq.l #$0A,d1
            IOCS    _OUT232C
            addq.w  #1,d6
            dbra    d5,5b
            moveq.l #$1A,d1
            IOCS    _OUT232C
            DOS     _EXIT

#### Text screen copy テキスト画面コピー

Added text screen copy. テキスト画面コピーを追加しました。

Text screen copy is a function that reverses the character displayed as a bitmap image on the text screen to the character code and copies it to the clipboard. 8x8, 8x16, and 16x16 fonts in CGROM can be reverse-converted. Fonts loaded by "COPY XXX.FON @IOCS" etc. cannot be reverse-converted. Some characters are indistinguishable in principle, such as half-width space and full-width space. Light blue, yellow, bold, and reversal can be reverse-converted. Character attributes are not reflected in the result. Follows hardware scrolling. The coordinates of the character to be converted must be a multiple of 8x16. Characters that cannot be converted will be converted to "?". テキスト画面コピーはテキスト画面にビットマップ画像として表示されている文字を文字コードに逆変換してクリップボードにコピーする機能です。CGROM にある 8x8、8x16、16x16 のフォントを逆変換できます。 「COPY XXX.FON @IOCS」などで読み込まれたフォントは逆変換できません。 半角スペースと全角スペースのように原理上区別できない文字があります。 水色、黄色、太字、反転を逆変換できます。 文字属性は結果に反映されません。 ハードウェアスクロールに追従します。 変換する文字の座標は 8x16 の倍数に限ります。 変換できなかった文字は「?」になります。

Clicking text screen copy in the input menu or pressing Alt+Shift+C copies the text displayed in the set range to the clipboard. The range to be copied can be selected using the display area radio button, C_WIDTH radio button, entire VRAM radio button, and last enclosed area radio button in the text screen copy setting menu. This setting is saved in the parameter textcopyarea. 入力メニューのテキスト画面コピーをクリックするか、Alt+Shift+C を押すと、設定された範囲に表示されているテキストがクリップボードにコピーされます。 テキスト画面コピー設定メニューにある表示領域ラジオボタン、C_WIDTH ラジオボタン、VRAM 全体ラジオボタン、最後に囲んだ範囲ラジオボタンでコピーする範囲を選択できます。 この設定はパラメータ textcopyareaに保存されます。

When the enclose each time with mouse check box in the text screen copy setting menu is ON, pressing and dragging the left mouse button on the text screen will display a red frame, and releasing the button will copy the text inside the frame to the clipboard. This setting is saved in the parameter textcopy. テキスト画面コピー設定メニューにあるマウスで都度囲むチェックボックスが ON のとき、テキスト画面でマウスの左ボタンを押してドラッグすると赤い枠が表示され、ボタンを離すと枠の内側のテキストがクリップボードにコピーされます。 この設定はパラメータ textcopyに保存されます。

The mnemonic of the config menu has been changed from C to G, following the assignment of text screen copy to the keyboard accelerator Alt+Shift+C. キーボードアクセラレータ Alt+Shift+C にテキスト画面コピーを割り当てたことに伴い、設定メニューのニモニックを C から G に変更しました。

#### Button function assignments window ボタン機能割り当てウインドウ

Added button function assignments window. ボタン機能割り当てウインドウを追加しました。

Clicking button function assignments in the input menu opens the button function assignments window. In the button function assignments window, you can assign functions to the F11 key, F12 key, wheel button, wheel scroll up, wheel scroll down, button 4, and button 5. You can select one of Shift, Ctrl, or Alt as a modifier key. 入力メニューのボタン機能割り当てをクリックするとボタン機能割り当てウインドウが開きます。 ボタン機能割り当てウインドウで、F11 キー、F12 キー、ホイールボタン、ホイールスクロールアップ、ホイールスクロールダウン、ボタン 4、ボタン 5 に機能を割り当てることができます。 修飾キーとして Shift、Ctrl、Alt から 1 個を選択できます。

The functions that can be assigned to each button are as follows. 各ボタンに割り当てられる機能は以下の通りです。

1. Toggle fullscreen 全画面表示の切り替え
2. Toggle seamless mouse シームレスマウスの切り替え
3. Take a screenshot スクリーンショットを撮る
4. Text screen copy テキスト画面コピー
5. Start recording GIF animation GIF アニメーション録画開始
6. Stop and start 停止と再開
7. 1 trace トレース 1 回
8. 10 traces トレース 10 回
9. 100 traces トレース 100 回
10. 1 step ステップ 1 回
11. 10 steps ステップ 10 回
12. 100 steps ステップ 100 回
13. Step until return ステップアンティルリターン
14. Left click 左クリック
15. Right click 右クリック
16. No function 機能なし

These settings are stored in parameter f11key, etc. The parameter keys are strings consisting of shift, ctrl, alt, which represent modifier keys, and f11key, f12key, wheel, wheelup, wheeldown, button4, button5, which represent buttons. The parameter values represent the corresponding functions. これらの設定はパラメータ f11key などに保存されます。 パラメータのキーは修飾キーを表す shift、ctrl、alt と、ボタンを表す f11key、f12key、wheel、wheelup、wheeldown、button4、button5 を連結した文字列です。 パラメータの値は対応する機能を表します。

The F11 and F12 keys can only be entered with the keys assigned in the key assignments window when the no function is selected in the button function assignments window. F11 キーと F12 キーはボタン機能割り当てウインドウで機能なしを選択したときだけキー割り当てウインドウで割り当てたキーを入力できます。

The F11 key menu has been eliminated. The F11 key, when in full screen mode, can be pressed to cancel full screen mode regardless of the F11 key assignment, but this function has also been eliminated. When the F11 key is not assigned to full screen switching, pressing the F11 key does not cancel the full screen display. F11 キーメニューを廃止しました。 全画面表示のとき F11 キーを押すと F11 キーの割り当てと関係なく全画面表示が解除される機能がありましたが、これも廃止しました。F11 キーに全画面表示の切り替えが割り当てられていないときは、F11 キーを押しても全画面表示は解除されません。

The mouse wheel menu has been eliminated. The parameter mousewheel can be specified but is not saved as parameter mousewheel. -mousewheel=trace is interpreted as -wheelup=trace1 -shiftwheelup=trace10 -ctrlwheelup=trace100 -wheeldown=step1 -shiftwheeldown=step10 -ctrlwheeldown=step100 -altwheeldown=return. -mousewheel=click is interpreted as -wheelup=leftclick -wheeldown=rightclick. マウスホイールメニューを廃止しました。 パラメータ mousewheel は指定できますがパラメータ mousewheel としては保存されません。-mousewheel=trace は -wheelup=trace1 -shiftwheelup=trace10 -ctrlwheelup=trace100 -wheeldown=step1 -shiftwheeldown=step10 -ctrlwheeldown=step100 -altwheeldown=return として解釈されます。-mousewheel=click は -wheelup=leftclick -wheeldown=rightclick として解釈されます。

#### SPC

Supported Synchronize Cache command. Supported Request Sense command for non-existent LUNs. Do not report that it is confirmed that XOR commands cannot be used. Synchronize Cache コマンドに対応。 存在しない LUN に対する Request Sense コマンドに対応。XOR 系のコマンドが使えないことを確認されたことを報告しない。

#### Debug console デバッグコンソール

Rebuild command d, f. Added commands ll, me, ms, tx, txf. コマンド d、f を再構築。 コマンド ll、me、ms、tx、txf を追加。

### 0.24.12.08

#### Restore windows that were open 開いていたウインドウを復元する

Added restore windows that were open checkbox to the configuration file menu. Select whether or not to restore windows that were open at exit time at startup. This setting is saved in parameter xxxopen. (Thanks megazone-mc21) 設定ファイルメニューに開いていたウインドウを復元するチェックボックスを追加しました。 終了時に開いていたウインドウを、起動時に復元するかどうか選択します。 この設定はパラメータ xxxopenに保存されます。(Thanks megazone-mc21)

#### Instruction break point 命令ブレークポイント

Fixed a problem in which the program may not stop when going back and forth between user mode and supervisor mode when performing Instruction breakpoint, Run to here, and Step. 命令ブレークポイント、ここまで実行、ステップを行うとき、ユーザモードとスーパーバイザモードを行き来すると停止しないことがある不具合を修正しました。

#### SCSI Ukun Kai support すかじー U 君改対応

It is now compatible with the SCSI Ukun Kai. There is the SCSI Ukun Kai (experimental) menu in the SCSI menu in the File menu. When the connection checkbox is turned on and reset, the built-in SCSI port switches to the SCSI Ukun Kai. This setting is stored in the parameter suk. すかじー U 君改に対応しました。 ファイルメニューの中の SCSI メニューの中にすかじー U 君改 (実験中) メニューがあります。 接続チェックボックスを ON にしてリセットすると内蔵 SCSI ポートがすかじー U 君改に切り替わります。 この設定はパラメータ sukに保存されます。

#### MC68EC030

Corrected the behavior of the MC68EC030 F-line instruction. When trying to execute cpSAVE or cpRESTORE in user mode, a privilege violation exception occurs. When attempting to execute cpRESTORE in supervisor mode, it would read the effective address. The latter corresponds to an unexpected memory access which is the reason why some DOS call numbers had to be moved when Human68k was adapted to the X68030. If there was nothing in the accessed location, a bus error would occur. This fix may cause programs that do not support X68030 and do not work on the actual X68030 machine, but work in XEiJ's X68030 mode, to not work in XEiJ's X68030 mode either. MC68EC030 の F ライン命令の動作を修正しました。 ユーザモードで cpSAVE または cpRESTORE を実行しようとしたとき特権違反例外が発生します。 スーパーバイザモードで cpRESTORE を実行しようとしたとき実効アドレスをリードします。 後者は Human68k が X68030 に対応するとき一部の DOS コール番号を移動しなければならなくなった理由である予期しないメモリアクセスに相当します。 アクセスした場所に何もなければバスエラーが発生します。 この修正により、X68030 に対応しておらず X68030 実機では動かないのに XEiJ の X68030 モードでは動いてしまっていたプログラムが、XEiJ の X68030 モードでも動かなくなる可能性があります。

#### flinebuserror.x

Added misc/flinebuserror.x. This is an experiment to call the DOS call _GETENV with the old number $FF53 on the MC68030 to generate a bus error. misc/flinebuserror.xを追加しました。MC68030 で DOS コールの _GETENV を古い番号 $FF53 で呼び出してバスエラーを発生させる実験です。

#### flineprivilege.x

Added misc/flineprivilege.x. Check which of $FE00 to $FFFF raises a privilege violation exception when the MC68030 is in user mode. misc/flineprivilege.xを追加しました。MC68030 でユーザモードのとき $FE00～$FFFF のどれで特権違反例外が発生するか調べます。

#### Stop on error エラーで停止する

The MPU does not stop on a privilege violation generated by a DOS call, even if the Stop on error ("!" check box in disassembly list, etc.) is enabled. エラーで停止する (逆アセンブルリストなどにある「!」チェックボックス) が有効になっていても、DOS コールで発生した特権違反では MPU が停止しないようにしました。

#### 060turbo.sys 0.60

-fe can no longer be specified except for 68060. Privilege violation exceptions are now merged with F-line exceptions. -fe を 68060 以外で指定できないようにしました。 特権違反例外を F ライン例外に合流させるようにしました。

### 0.24.11.08

#### Execution environment 実行環境

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

#### MC68000

Fixed behavior of undefined flag V in NBCD/SBCD of MC68000. (Thanks みゆ🌹ฅ^•ω•^ฅ) MC68000 の NBCD/SBCD の未定義フラグ V の挙動を修正しました。(Thanks みゆ🌹ฅ^•ω•^ฅ)

#### instructiontest.x

Fixed expected of hard for ABCD/NBCD/SBCD of MC68000 in instructiontest.x. (Thanks みゆ🌹ฅ^•ω•^ฅ) instructiontest.xの MC68000 の ABCD/NBCD/SBCD の hard の expected を修正しました。(Thanks みゆ🌹ฅ^•ω•^ฅ)

#### High memory on 060turbo 060turbo のハイメモリ

High memory on 060turbo is also available on X68000. This setting can be changed using the Available on X68000 checkbox in the High memory on 060turbo menu. This setting is stored in the parameter himem68000. Note that the mere presence of high memory can cause the program to malfunction. X68000 でも 060turbo のハイメモリが使えます。 この設定は060turbo のハイメモリメニューの X68000 でも有効チェックボックスで変更できます。 この設定はパラメータ himem68000に保存されます。 ハイメモリは存在するだけでプログラムを誤動作させることがあるので注意してください。

The Use high memory on 060turbo checkbox that was in the High memory on X68030/Xellent30 menu has been moved to the Available on X68030/Xellent30 checkbox in the High memory on 060turbo menu. X68030/Xellent30 のハイメモリメニューにあった 060turbo のハイメモリを使うチェックボックスは060turbo のハイメモリメニューの X68030/Xellent30 でも有効チェックボックスに移動しました。

#### IPLROM 1.6 (2024-10-23)

When started in X68000 mode, it also detects high memory and displays the range and capacity. X68000 モードで起動したときもハイメモリを検出して範囲と容量を表示します。

#### Full screen 全画面表示

Fixed problem with not switching to full screen at startup. (Thanks megazone-mc21) 起動時に全画面表示に切り替わらない問題を修正しました。(Thanks megazone-mc21)

#### Wait cycles ウェイトサイクル

The number of wait cycles now follows changes in operating frequency. ウェイトサイクル数が動作周波数の変化に追従するようにしました。

#### XEiJ development environment XEiJ の開発環境

XEiJ development environment has been updated from Windows 10 Pro to Windows 11 Pro. XEiJ の開発環境を Windows 10 Pro から Windows 11 Pro へアップデートしました。

#### Icon アイコン

Changed taskbar icon size from 16x16 to 48x48. タスクバーのアイコンのサイズを 16x16 から 48x48 へ変更しました。

#### DMAC

Fixed a bug that prevented CSRs from being cleared bit by bit. Fixed a bug that CER was not cleared after writing 1 to the ERR bit of CSR. CSR をビット単位でクリアできないバグを修正しました。CSR の ERR ビットに 1 を書き込んでも CER がクリアされないバグを修正しました。

### 0.24.10.08

#### Execution environment 実行環境

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

#### Full screen 全画面表示

Exit full screen before opening subwindows. On macOS, it also exits full screen before opening dialogs. (Thanks megazone-mc21) サブウインドウを開く前に全画面表示を終了します。macOS のときはダイアログを開く前にも全画面表示を終了します。(Thanks megazone-mc21)

### 0.24.09.08

#### CRTC

When the text and graphic screens are 512x256 dots, the sprite screen can be set to 512x512 dots. (Thanks megazone-mc21) テキスト画面とグラフィック画面が 512x256 ドットのとき、スプライト画面を 512x512 ドットに設定できます。(Thanks megazone-mc21)

#### IPLROM 1.6/crtmod16.x

Screen modes 40-47 have been added to IOCS _CRTMOD for IPLROM 1.6 and crtmod16.x. Screen modes 40-43 are 512x256 dots for all screens, and screen modes 44-47 are 512x256 dots for the text and graphic screens and 512x512 dots for the sprite screen. IPLROM 1.6とcrtmod16.xの IOCS _CRTMOD に、画面モード 40～47 を追加しました。 画面モード 40～43 はすべての画面が 512x256 ドット、画面モード 44～47 はテキスト画面とグラフィック画面が 512x256 ドットでスプライト画面が 512x512 ドットです。

#### crtmodtest.x

Screen modes 40-47 can be specified in crtmodtest.x. crtmodtest.xで画面モード 40～47 を指定できます。

Avoid stepping on the IOCS _SP_INIT bug in IPLROM 1.0 to 1.3. IPLROM 1.0～1.3 の IOCS _SP_INIT のバグを踏まないようにしました。

When exiting with the ESC key, hides sprites and graphics, erases text, and restores the text palette. ESC キーで終了したとき、スプライトとグラフィックを非表示に、テキストを消去、テキストパレットを復元します。

### 0.24.08.08

#### Execution environment 実行環境

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

#### RS-232C and terminal RS-232C とターミナル

The additional port text field has been added to the RS-232C and terminal. When the port you want to connect to is not displayed after pressing the refresh button, enter the descriptor of the port you want to connect to in the additional port text field and press the refresh button. Typically, the descriptor is a string such as "COM[*]" on Windows or "/dev/tty[*]" on Linux and macOS. You can add ports that can be connected to with SerialPort.getCommPort(portDescriptor) but do not appear in the list of SerialPort.getCommPorts(). Be careful not to enter a descriptor for a port that does not exist or is already on the list. The contents of the additional port text field are stored in the parameter additionalport. (Thanks くにちこ) RS-232C とターミナルに追加ポートテキストフィールドを追加しました。 更新ボタンを押しても接続したいポートが表示されないとき、追加ポートテキストフィールドに接続したいポートのデスクリプタを入力して更新ボタンを押します。 通常、デスクリプタは Windows では「COM[*]」、Linux および macOS では「/dev/tty[*]」のような文字列です。SerialPort.getCommPort(portDescriptor) で接続できるが SerialPort.getCommPorts() のリストに出てこないポートを追加できます。 存在しないポートや既にリストにあるポートのデスクリプタを入力しないように注意してください。 追加ポートテキストフィールドの内容はパラメータ additionalportに保存されます。(Thanks くにちこ)

#### Modification menu 改造メニュー

The display position of "Number of sprites per raster" in the modification menu has been corrected. 改造メニューの「ラスタあたりのスプライトの枚数」の表示位置を修正しました。

#### MFP

To solve a phenomenon in which a program that keeps sending data to the keyboard runs extremely fast compared to the actual device, the time required for transmission is calculated from the Timer-B and UCR configurations and reflected in the BE bit of the TSR. (Thanks くにちこ) キーボードへデータを送信し続けるプログラムが実機と比較して極端に速く動作する現象を解消するため、Timer-B と UCR の構成から送信にかかる時間を計算して TSR の BE ビットに反映させるようにしました。(Thanks くにちこ)

#### isHFS.x and isXEiJ.x isHFS.x と isXEiJ.x

isHFS.x and isXEiJ.x are added. isHFS.xとisXEiJ.xを追加しました。

### 0.24.07.08

#### FE function instructions FE ファンクション命令

Fixed a bug in __LDIV where -2147483648/-1 did not result in an error. __LDIV で -2147483648/-1 がエラーにならないバグを修正しました。

The Z and V flags for the __LMUL/__LDIV/__LMOD results are not written in the CZ-6BP1 manual, but X-BASIC uses them so they should be set. __LMUL/__LDIV/__LMOD の結果の Z フラグと V フラグは、CZ-6BP1 のマニュアルに書かれていませんが、X-BASIC が使っているので設定するようにしました。

#### smktest.x

Added smktest.x. The program simply displays "XEiJ meets ShiroMadoKun" on ShiroMadoKun. smktest.xを追加しました。 白窓君に「XEiJ meets ShiroMadoKun」と表示するだけのプログラムです。

#### Joystick port settings ジョイスティックポート設定

JoyPortUkun's items were placed side by side. じょいぽーと U 君の項目を横に並べました。

#### Register list レジスタリスト

Changed threads in register list to prevent VM hangs. VM がハングアップしないようにレジスタリストのスレッドを変更しました。

#### SCSIINROM/SCSIEXROM 16 (2024-07-02)

The _B_DSKINI bug that was present in level 0 (SUPER), level 3 (XVI) and level 4 (FORMAT.X) remains and has been corrected. レベル 0(SUPER)、レベル 3(XVI) およびレベル 4(FORMAT.X) にあった _B_DSKINI のバグが残っていたので修正しました。

By setting the SASI flag, you can access SASI HDs connected to the SCSI bus. For example, when ID 0 is SCSI HD and ID 1 is SASI HD, if you perform the following operations before booting, A: will be SCSI HD, B: and C: will be FD, and D: will be SASI HD. 00000010 indicates the ID of the SASI HD. Can also be $02. SASI フラグを設定することで SCSI バスに接続された SASI HD にアクセスできます。 例えば ID 0 が SCSI HD、ID 1 が SASI HD のとき、以下の操作をしてから起動すると A: は SCSI HD、B: と C: は FD、そして D: が SASI HD になります。00000010 は SASI HD の ID を示します。$02 でも可。

    A>switch b=scsi0
    A>switch ^=00000010

FORMAT.X can be used to initialize a device and allocate space for a SASI HD connected to the SCSI bus. The device name is the hard disk, the device number is twice the SASI ID, and the capacity is the capacity of the image file. FORMAT.X で SCSI バスに接続された SASI HD の装置初期化や領域確保ができます。 装置名はハードディスク、装置番号は SASI ID の 2 倍、容量はイメージファイルの容量を選択します。

#### IPLROM 1.6 (2024-07-02)

The version was changed to match SCSIINROM 16. SCSIINROM 16 に合わせてバージョンを変更しました。

#### SPC

Added 0x06 Format Block (SASI). It zero-clears the specified range. 0x06 Format Block(SASI) を追加しました。 指定された範囲をゼロクリアします。

Added 0xc2 Assign Drive (SASI). It only accepts drive parameters and does nothing. 0xc2 Assign Drive(SASI) を追加しました。 ドライブパラメータを受け取るだけで何もしません。

#### SRAM

The SASI flag in SRAM is used to automatically correct the maximum number of SASI hard disks. SRAM にある SASI ハードディスクの最大数を自動修正するとき SASI フラグを使います。

#### jSerialComm

As of this writing, the latest version of jSerialComm is 2.11.0. これを書いている時点で jSerialComm の最新版は 2.11.0 です。

- Release jSerialComm v2.11.0 · Fazecast/jSerialComm · GitHub

### 0.24.06.08

#### IPLROM 1.6

Added nop instruction as a countermeasure to the problem of not being able to boot on the actual 040turbo device. (Thanks fujitech pro-68k and GIMONS) 040turbo 実機で起動できない問題の対策として nop 命令を追加しました。(Thanks fujitech pro-68k and GIMONS)

#### RS-232C and terminal RS-232C とターミナル

At the terminal, press the Pause key or select "Send ^C" from the pop-up menu to send 0x03. ターミナルで、Pause キーを押すか、ポップアップメニューの「^C 送信」を選択すると、0x03 が送信されます。

#### SCSIEXROM.DAT

The size of SCSIEXROM.DAT that could be specified for the parameter scsiexrom was 8192 bytes only, but now it is possible to specify a file of 8160 bytes with the first 32 bytes missing. Note that the size of XEIJSCSIEXROM.DAT created in the create ROM file menu is always 8192 bytes. パラメータ scsiexromに指定できる SCSIEXROM.DAT のサイズは 8192 バイトのみでしたが、先頭 32 バイトが欠落した 8160 バイトのファイルも指定できるようにしました。 なお、ROM ファイルの作成メニューで作られる XEIJSCSIEXROM.DAT のサイズは常に 8192 バイトです。

### 0.24.05.08

#### Execution environment 実行環境

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

#### SCC

The operating frequency of the SCC when modified was changed from 7.5 MHz to 7.3728 MHz. The notation in set232c.x was also changed from 7.5 MHz to 7.3728 MHz. 改造したときの SCC の動作周波数を 7.5MHz から 7.3728MHz に変更しました。 set232c.xの表記も 7.5MHz から 7.3728MHz に変更しました。

### 0.24.04.08

#### crtmrb16.x

crtmrb16.x is added. crtmrb16.x is a modification of crtmod16.x to reproduce the IPLROM 1.0 to 1.3 bug. crtmrb16.xを追加しました。crtmrb16.x はcrtmod16.xに IPLROM 1.0～1.3 のバグを再現させる改造を施したものです。

IPLROM 1.0 to 1.3 has a bug in which IOCS _CRTMOD initializes the graphics palette with a different number of colors than the specified screen mode. Specifically, IOCS _CRTMOD ignores the number of colors specified by the screen mode specified in the _CRTMOD argument and initializes the graphics palette as 16 colors for 256x256, 256 colors for 512x512, and 65536 colors for 768x512, which is a nonsense behavior. If you call _G_CLR_ON after _CRTMOD according to the manner in which the graphics screen is displayed, there is no problem because _G_CLR_ON will re-initialize the graphics palette with the correct number of colors. If you display the graphics screen without calling _G_CLR_ON after _CRTMOD, the bug in _CRTMOD will be exposed. IPLROM 1.0～1.3 には、IOCS _CRTMOD がグラフィックパレットを指定された画面モードと異なる色数で初期化するというバグがあります。 具体的には、_CRTMOD の引数で指定された画面モードで定められた色数を無視して、256x256 は 16 色、512x512 は 256 色、768x512 は 65536 色とみなしてグラフィックパレットを初期化するという、ナンセンスな動きをします。 グラフィック画面を表示するときの作法に従って _CRTMOD の後に _G_CLR_ON を呼び出せば、_G_CLR_ON が正しい色数でグラフィックパレットを初期化し直すので問題ありません。_CRTMOD の後に _G_CLR_ON を呼び出さずにグラフィック画面を表示すると、_CRTMOD のバグが露見します。

Trouble is, it seems that some software is painting over the bug by initializing the graphics palette in a way that depends on this bug. Such software appears to work correctly with IPLROM 1.0 to 1.3, but when run under IPLROM 1.6/crtmod16.x, where the bug has been fixed, the bug is exposed and the display is corrupted. If you have software whose graphics palette is not correct only with IPLROM 1.6, you may be able to get the expected display by running it after "crtmrb16.x -e -m 16". 困ったことに、一部のソフトウェアがこのバグに依存した方法でグラフィックパレットを初期化するというバグの上塗りをしているようです。そのようなソフトウェアは IPLROM 1.0～1.3 では正しく動作しているように見えますが、バグが修正された IPLROM 1.6/crtmod16.x の環境で動かすとバグの上塗りが露見して表示が乱れます。IPLROM 1.6 のときだけグラフィックパレットがおかしくなるソフトウェアがあるとき、「crtmrb16.x -e -m 16」としてから動かすと期待通りの表示になるかも知れません。

When a bug is fixed and another bug is found that hides it, the correct course of action is not to restore the fixed bug, but to fix the newly found bug. Do not use crtmrb16.x on a regular basis, as it is intended to temporarily restore a bug that has been fixed when it is not possible to fix the newly found bug. あるバグを修正したらそれを隠していた別のバグが見つかったときの正しい対処方法は、修正したバグを復元することではなく、新たに見つかったバグを修正することです。crtmrb16.x は、新たに見つかったバグを修正できない場合に、一時的に、修正したバグを復元するためのものなので、常用しないでください。

#### Font size menu フォントサイズメニュー

A font size menu has been added to the language menu. You can choose from very small, small, medium, large, and very large font sizes for menus, buttons, disassembly lists, etc. The change is reflected at the next startup. Added parameter fontsize. Changed default font size from small to medium. 言語メニューの中にフォントサイズメニューを追加しました。 メニュー、ボタン、逆アセンブルリストなどの文字の大きさを極小、小、中、大、極大から選べます。 変更は次回の起動時に反映されます。 パラメータ fontsizeを追加しました。 デフォルトの文字の大きさを小から中に変更しました。

#### Color menu 色メニュー

The color menu has been added to the language menu. You can change the color of the window frame, keyboard, menus, buttons, disassembly list, etc. Changes are reflected at the next startup. Parameter hhssbb has been removed and parameter hsb has been added. The interpolation method has been changed from linear interpolation, which uses the minimum and maximum values, to quadratic interpolation, which also uses the center value. The units of HSB were changed from 1/1000, 1/1000, and 1/1000 to 1/360, 1/100, and 1/100. 言語メニューの中に色メニューを追加しました。 ウインドウの枠、キーボード、メニュー、ボタン、逆アセンブルリストなどの色を変更できます。 変更は次回の起動時に反映されます。 パラメータ hhssbb を廃止し、パラメータ hsbを追加しました。 補間方法を最小の値と最大の値を用いる線形補間から中央の値も用いる 2 次補間に変更しました。HSB の単位を 1/1000,1/1000,1/1000 から 1/360,1/100,1/100 に変更しました。

### 0.24.03.08

#### CRTC

Cannot write 0 to bit 0 of CRTC R00. When creating a 384x256, some software programs, in an attempt to make the synchronization frequency the same as that of a 768x512, write 0 to bit 0 of CRTC R00, which is not allowed to write 0. When such software is executed, the actual device does not have the synchronization frequency expected by the software author, but the emulator, which can write 0 to bit 0 of CRTC R00, has the synchronization frequency expected by the software author, resulting in a discrepancy between the operation of the actual device and the emulator. CRTC R00 のビット 0 に 0 を書き込めないようにしました。384x256 を作るとき、768x512 と同じ同期周波数にしようとして、0 を書き込んではいけない CRTC R00 のビット 0 に 0 を書き込んでいるソフトウェアがあります。 そのようなソフトウェアを実行したとき、実機ではソフトウェアの作者が期待した同期周波数になりませんが、CRTC R00 のビット 0 に 0 を書き込めるエミュレータではソフトウェアの作者が期待した同期周波数になってしまい、実機とエミュレータの動作にずれが生じます。

Added "Can write 0 to bit 0 of CRTC R00" checkbox to the modification menu. The change will take effect from the next write to CRTC R00. 改造メニューに「CRTC R00 のビット 0 に 0 を書き込める」チェックボックスを追加しました。 変更は次の CRTC R00 への書き込みから反映されます。

Added parameter r00bit0zero. パラメータ r00bit0zeroを追加しました。

#### r00bit0test.x

Added r00bit0test.x. Verify that bit 0 of CRTC R00 is fixed to 1. r00bit0test.xを追加しました。CRTC R00 の bit0 が 1 に固定されていることを確認します。

#### vperiod.x

Added vperiod.x. Measure the vertical period (vertical synchronous signal period). vperiod.xを追加しました。 垂直周期 (垂直同期信号の周期) を計測します。

#### IPLROM 1.6 (2024-03-04)

The startup screen can now display an operating frequency higher than 65535*12/1000=786.42MHz. Placed [$0CB8].w and [$0CBA].w as longwords in [$0D20].l and [$0D24].l. 起動画面で 65535*12/1000=786.42MHz より高い動作周波数を表示できるようにしました。[$0CB8].w と [$0CBA].w をロングワードにしたものを [$0D20].l と [$0D24].l に配置しました。

You can use stupsnd.x to change the height of the startup sound. stupsnd.xを使って起動音の高さを変更できます。

Changed the timing of displaying "Hit any key" when the L/N/V key is pressed at startup from before to after SCSI bus reset. This eliminates the unnatural appearance that a key is pressed but the device does not start moving immediately. It is not necessary to hold down the L/N/V key until "Hit any key" is displayed. When SCSIINROM displays a message, "Hit any key" is displayed afterwards. 起動時に L/N/V キーが押されていたとき「Hit any key」を表示するタイミングを SCSI バスリセットの前から後に変更しました。 キーを押したのにすぐに動き出さないように見える不自然さを解消しました。 「Hit any key」が表示されるまで L/N/V キーを押し続けている必要はありません。SCSIINROM がメッセージを表示したときはその後に「Hit any key」が表示されます。

#### stupsnd.x (2024-03-04)

In addition to turning the startup sound on and off with stupsnd.x, the startup sound height can be changed. The startup sound height is specified by a number representing a key code or a string such as o5c. stupsnd.xで起動音の on/off に加えて起動音の高さを変更できます。 起動音の高さは、キーコードを表す数字または o5c などの文字列で指定します。

#### How to use IPLROM 1.6 on real machines or other X68000 emulators 実機または他の X68000 エミュレータで IPLROM 1.6 を使う方法

Updated how to use IPLROM 1.6 on real machines or other X68000 emulators. SRAM initialization data now reflects the size of main memory. The procedure has been modified so that it does not affect the XEiJ environment in use. Added instructions for creating CGROM30.DAT. 実機または他の X68000 エミュレータで IPLROM 1.6 を使う方法を更新しました。SRAM 初期化データにメインメモリのサイズが反映されるようにしました。 使用中の XEiJ の環境に影響を及ぼさないように手順を改めました。CGROM30.DAT の作り方を追記しました。

#### Host file system ホストファイルシステム

The interpretation of the argument OFFSET of DOS _SEEK depends on MODE. DOS _SEEK の引数の OFFSET の解釈が MODE によって変わります。

- When MODE is 0, OFFSET is zero-extended. The seekable range is from "first position" to "first position + 4GB - 1". MODE が 0 のとき、OFFSET はゼロ拡張されます。 シーク可能範囲は「先頭位置」から「先頭位置 +4GB-1」までです。
- When MODE is 1, OFFSET is sign-extended. The seekable range is from "current position - 2GB" to "current position + 2GB - 1". MODE が 1 のとき、OFFSET は符号拡張されます。 シーク可能範囲は「現在位置 -2GB」から「現在位置 +2GB-1」までです。
- When MODE is 2, OFFSET is zero-extended for 0 and one-extended for non-zero. The seekable range is from "end position - 4GB + 1" to "end position". MODE が 2 のとき、OFFSET は 0 はゼロ拡張、0 以外はイチ拡張されます。 シーク可能範囲は「終端位置 -4GB+1」から「終端位置」までです。

### 0.24.02.08

#### Execution environment 実行環境

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

#### File menu ファイルメニュー

Fixed a bug that prevented the parameters scappreboot, hfreadonly, and hfappreboot from being saved. パラメータ scappreboot、hfreadonly、hfappreboot が保存されないバグを修正しました。

#### RS-232C, terminal, and serial port RS-232C とターミナル

When interconnecting RS-232C, terminal and serial ports, data is now routed through a queue. RS-232C とターミナルとシリアルポートを相互に接続するとき、データがキューを経由するようにしました。

Added 57600, 76800, and 115200 baud rate options in RS-232C and terminal. RS-232C とターミナルのボーレートの選択肢に 57600、76800、115200 を追加しました。

Added 7.5MHz checkbox. Changes the SCC operating frequency from 5MHz to 7.5MHz. The connection must be initialized using misc/set232c.x or similar to reflect the changes. 7.5MHz チェックボックスを追加しました。SCC の動作周波数を 5MHz から 7.5MHz に変更します。 変更を反映させるにはmisc/set232c.xなどを使って接続を初期化する必要があります。

#### SCC

The SCC operating frequency can be specified with the parameter sccfreq. The possible values are either 5000000 or 7500000. パラメータ sccfreqで SCC の動作周波数を指定できます。 指定できる値は 5000000 または 7500000 のいずれかです。

#### IPLROM 1.6 (2024-02-02)

Measure the transfer rate of the DMAC displayed on the startup screen with the instruction cache disabled. 起動画面に表示する DMAC の転送速度の計測を命令キャッシュを無効にした状態で行います。

Added patch for IOCS _SET232C. IOCS _SET232C のパッチを追加しました。

- Enabled to use baud rate 8=19200bps. IPLROM 1.3's IOCS _SET232C can select baud rate 8=19200bps, but the values of SCC WR13:WR12 are wrong, and even if the start bit is synchronized, the stop bit will be off by about 1 bit, so it could not be used. ボーレート 8=19200bps を使えるようにしました。IPLROM 1.3 の IOCS _SET232C はボーレート 8=19200bps を選択できますが、SCC WR13:WR12 の値が間違っており、スタートビットが同期されてもストップビットまでにおよそ 1 ビットずれてしまうので使えませんでした。
- Baud rate 9=38400bps and 10=76800bps can be selected. It doesn't necessarily mean it can be used. Since it does not support RTS/CTS, its practicality is unknown. When the operating frequency of SCC is 7.5MHz, 9=57600bps and 10=115200bps. ボーレート 9=38400bps と 10=76800bps を選択できるようにしました。 使えるとは限りません。RTS/CTS に対応していないので実用性は不明です。SCC の動作周波数が 7.5MHz のとき 9=57600bps と 10=115200bps になります。
- Reliably ignores RTS/CTS selection. Although it does not support RTS/CTS, there was a problem where the baud rate would become 4=1200bps just by selecting it. RTS/CTS の選択を確実に無視します。RTS/CTS には対応していませんが、選択されているだけでボーレートが 4=1200bps になってしまう問題がありました。

#### RSDRV.SYS patches RSDRV.SYS のパッチ

When RSDRV.SYS 2.02 is built in, it will be patched in memory. RSDRV.SYS 2.02 が組み込まれたときメモリ上でパッチをあてます。

- The receive buffer size is changed from 64 bytes to 1024 bytes. 受信バッファサイズが 64 バイトから 1024 バイトに変更されます。
- The maximum baud rate that can be specified in IOCS _SET232C was 38400bps and the maximum baud rate that can be stored in SRAM was 19200bps, but both will be 76800bps. 38400bps and 76800bps can be specified in misc/set232c.x. Note that using SPEED.X or SWITCH.X will restore the original settings. IOCS _SET232C で指定できるボーレートの上限は 38400bps、SRAM に保存できるボーレートの上限は 19200bps でしたが、いずれも 76800bps になります。38400bps と 76800bps はmisc/set232c.xで指定できます。SPEED.X や SWITCH.X を使うと元に戻ってしまうので注意してください。

#### misc/set232c.x

misc/set232c.x added. Change the current or startup RS-232C settings. 38400bps and 76800bps can be specified. Note that using SPEED.X or SWITCH.X will restore the original settings. misc/set232c.xを追加しました。 現在または起動時の RS-232C の設定を変更します。38400bps と 76800bps を指定できます。SPEED.X や SWITCH.X を使うと元に戻ってしまうので注意してください。

#### misc/stupsnd.x

misc/stupsnd.x added. Turn on/off startup sound switch of X68030 or higher and IPLROM 1.6. misc/stupsnd.xを追加しました。X68030 以上と IPLROM 1.6 の起動音のスイッチを ON/OFF します。

### 0.23.12.08

#### IPLROM 1.6/crtmod16.x

Calling IOCS _CRTMOD with D1.W=$16FF returns D0.L=$16xxxxxxx when the sync frequency for CRT is selected and D0.L=$96xxxxxxx when the sync frequency for LCD is selected. The difference from the call with D1.W=$56FF is that the flags for CRT and LCD are added to bit 31 of the result. IOCS _CRTMOD を D1.W=$16FF で呼び出すと、CRT 向けの同期周波数が選択されているときは D0.L=$16xxxxxx が、LCD 向けの同期周波数が選択されているときは D0.L=$96xxxxxx が返ります。D1.W=$56FF で呼び出したときとの違いは、結果のビット 31 に CRT 向けと LCD 向けのフラグが追加されていることです。

#### crtmodtest.x

When the synchronization frequency for CRT and LCD is selected with option -l, the synchronization frequency is restored before exiting. When option -s is specified, the synchronization frequency is not restored but saved in SRAM. オプション -l で CRT 向けと LCD 向けの同期周波数を選択したとき、同期周波数を元に戻してから終了するようにしました。 オプション -s を指定すると同期周波数を元に戻さず SRAM に保存します。

#### RS-232C and terminal RS-232C とターミナル

Fixed a bug that prevented the Communication Settings and Transfer buttons from being enabled or disabled when changing connections. 接続を変更したとき通信設定と転送のボタンが有効または無効にならないバグを修正しました。

#### CRTC

Fixed a bug that prevented full-screen redrawing when the scroll position in the Y direction on the text and graphics screens was changed. テキスト画面とグラフィック画面の Y 方向のスクロール位置が変更されたとき全画面再描画が行われないことがあるバグを修正しました。

Fixed behavior when the scroll position in the X direction of the text screen is outside the range of cylindrical scrolling. テキスト画面の X 方向のスクロール位置が円筒スクロールの範囲外のときの動作を修正しました。

#### cylindertest.x

Test the cylindrical scrolling of the text screen. Use the cursor keys to move, the CTRL key to move fast, and the ESC key to exit. テキスト画面の円筒スクロールをテストします。 カーソルキーで移動、CTRL キーで高速移動、ESC キーで終了します。

#### Aspect ratio アスペクト比

For the 256x256, 384x256, 512x512, and 768x512 resolutions, the screen aspect ratio can be selected from 4:3 (1.333), 7:5 (1.400), 13:9 (1.444), and 3:2 (1.500), respectively. The default screen aspect ratios are 4:3 (1.333) for 256x256, 384x256, and 512x512, and 3:2 (1.500) for 768x512. 解像度 256x256、384x256、512x512、768x512 について、それぞれ画面アスペクト比を 4:3 (1.333)、7:5 (1.400)、13:9 (1.444)、3:2 (1.500) から選べます。 デフォルトの画面アスペクト比は、256x256、384x256、512x512 が 4:3 (1.333)、768x512 が 3:2 (1.500) です。

HRL square pixel checkbox in the display menu has been eliminated and an aspect ratio menu has been added. Selecting 384x256 3:2 (1.500) @ 1:1 (1.000) will give the same aspect ratio as HRL square pixel. Changes take effect immediately. 画面メニューの HRL 正方形ピクセルチェックボックスを廃止し、アスペクト比メニューを追加しました。384x256 3:2 (1.500) @ 1:1 (1.000) を選択すると HRL 正方形ピクセルと同じアスペクト比になります。 変更は直ちに反映されます。

The parameter hrlsquare was removed and the parameter aspectratioNxN was added. Specifying aspectratio384x384=3:2 will give the same aspect ratio as hrlsquare=on. パラメータ hrlsquare を廃止し、パラメータ aspectratioNxNを追加しました。aspectratio384x384=3:2 を指定すると hrlsquare=on と同じアスペクト比になります。

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

Corrected 1111MXYZ to 1CB1MXYZ. 1SA100DU immediately following 1CB1MXYZ was corrected to 1SA1111. 1111MXYZ を 1CB1MXYZ に修正しました。1CB1MXYZ の直後の 1SA100DU を 1SA11111 に修正しました。

### 0.23.11.08

#### Execution environment 実行環境

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

#### IPLROM 1.6/CRTMOD16.X IPLROM 1.6/CRTMOD16.X

Calling IOCS _CRTMOD with D1.W=$56FF returns D0.L=$16xxxxxx. IOCS _CRTMOD を D1.W=$56FF で呼び出すと D0.L=$16xxxxxx が返ります。

#### CRTC CRTC

Mimics the phenomenon that the text screen collapses when the scroll position in the x-direction of the text screen is outside the range of cylindrical scrolling. Turning on spherical scrolling of text screen checkbox in the modification menu will prevent the text screen from collapsing. This setting is saved in the parameter sphericalscrolling. Changes will take effect immediately. テキスト画面の X 方向のスクロール位置が円筒スクロールの範囲外のときテキスト画面が崩れる現象を模倣します。 改造メニューのテキスト画面の球面スクロールチェックボックスを ON にするとテキスト画面が崩れなくなります。 この設定はパラメータ sphericalscrollingに保存されます。 変更は直ちに反映されます。

### 0.23.10.08

#### Execution environment 実行環境

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

#### Host file system ホストファイルシステム

To stabilize music playback during read/write, data transfer between buffer and memory is divided every 128 bytes. 読み書き中の音楽再生を安定させるために、バッファ・メモリ間のデータ転送を 128 バイト毎に分割するようにしました。

To reduce wait cycles, data transfer between buffer and memory has been changed from byte units to longword units. ウェイトサイクルを減らすために、バッファ・メモリ間のデータ転送をバイト単位からロングワード単位に変更しました。

#### Dialog to open image files and directories イメージファイルとディレクトリを開くダイアログ

The state of the Read-only checkbox is stored in the parameter fdreadonly for FD, the parameter sareadonly for SASI, the parameter screadonly for SCSI and the parameter hfreadonly for HFS. The Read-only checkbox in the dialog is valid for the image files and directories selected in the dialog. Image files specified without ":R" in the parameters or dropped into the window will always open with write permission. 書き込み禁止チェックボックスの状態が、FD はパラメータ fdreadonlyに、SASI はパラメータ sareadonlyに、SCSI はパラメータ screadonlyに、そして HFS はパラメータ hfreadonlyに保存されます。 ダイアログにある書き込み禁止チェックボックスは、ダイアログで選択したイメージファイルとディレクトリに対して有効です。 パラメータで「:R」を付けずに指定したイメージファイルやウインドウにドロップしたイメージファイルは、常に書き込みが許可された状態で開きます。

Radio buttons have been added to the left of the "Reboot from it" button and the left of the "Open" button so that you can choose which button is pressed when you double-click on a file name. Default behavior when double-clicking on a file name has been changed from "Reboot from it" to "Open". This setting is stored in the parameter fdappreboot for FD, the parameter saappreboot for SASI, the parameter scappreboot for SCSI and the parameter hfappreboot for HFS. 「ここから再起動」ボタンと「開く」ボタンの左側にラジオボタンを追加し、ファイル名をダブルクリックしたときどちらのボタンが押されたことにするか選べるようにしました。 ファイル名をダブルクリックしたときのデフォルトの動作を「ここから再起動」から「開く」に変更しました。 この設定が、FD はパラメータ fdapprebootに、SASI HD はパラメータ saapprebootに、SCSI はパラメータ scapprebootに、そして HFS はパラメータ hfapprebootに保存されます。

A history of the selected image files and directories is stored in the parameter fdhistoryN for FD, the parameter sahistoryN for SASI, the parameter schistoryN for SCSI and the parameter hfhistoryN for HFS. Selecting "Clear history" at the bottom of the history will display a dialog asking if you want to clear the history. 選択したイメージファイルとディレクトリの履歴が、FD はパラメータ fdhistoryNに、SASI HD はパラメータ sahistoryNに、SCSI はパラメータ schistoryNに、そして HFS はパラメータ hfhistoryNに保存されます。 履歴の一番下の「履歴を消去する」を選択すると、履歴を消去するか問い合わせるダイアログが表示されます。

The behavior when a disk image file is dropped onto a window has been changed from "Reboot from it" to "Open". ディスクイメージファイルをウインドウにドロップしたときの動作を、「ここから再起動」から「開く」に変更しました。

#### Memory dump list メモリダンプリスト

A second bridge checkbox has been added. When a 2-byte character that straddles a 16-byte boundary is written at the end of a line, you can select whether the same character is also written at the beginning of the next line. セカンドブリッジチェックボックスを追加しました。16 バイト境界を跨ぐ 2 バイトの文字を行末に書いたとき、同じ文字を次の行の行頭にも書くか選択できます。

When writing a character that straddles a 16-byte boundary both at the end of a line and at the beginning of the next line, draw a line on either side of the character area to darken the overflow of the character. 16 バイト境界を跨ぐ文字を行末と次の行の行頭の両方に書くとき、キャラクタエリアの左右に線を描いて文字のはみ出した部分を暗くします。

#### RS-232C and terminal RS-232C とターミナル

Only the terminal will expand and contract when the window size is changed. ウインドウの大きさを変更したときターミナルだけ伸び縮みするようにしました。

#### FE function instructions FE ファンクション命令

Fixed a bug that caused an ArrayIndexOutOfBoundsException when executing print gcvt(1e+18,19) in X-BASIC when the FE function instruction is enabled. (Thanks TcbnErik) FE ファンクション命令を有効にしているとき X-BASIC で print gcvt(1e+18,19) を実行すると ArrayIndexOutOfBoundsException が出るバグを修正しました。(Thanks TcbnErik)

Fixed a bug that caused an ArrayIndexOutOfBoundsException when executing print gcvt(1,0) in X-BASIC when the FE function instruction is enabled. FE ファンクション命令を有効にしているとき X-BASIC で print gcvt(1,0) を実行すると ArrayIndexOutOfBoundsException が出るバグを修正しました。

#### Keyboard display キーボードの表示

When the brightness specified by the parameter hhssbb is in descending order, the color scheme of the keyboard is switched so that the keys do not appear concave. パラメータ hhssbb で指定された輝度が降順のときキーボードの配色を入れ替えてキーが凹んで見えないようにしました。

#### misc/060tsys/060turbo.sys misc/060tsys/060turbo.sys

060turbo.sys 0.59 is now included. The changes from 0.58 are as follows. 060turbo.sys 0.59 を同梱しました。0.58 からの変更点は以下の通りです。

- Fixed a bug that tried to use move16 at 68030. 68030 のとき move16 を使おうとするバグを修正しました。

#### IPLROM 1.6 IPLROM 1.6

Starting up while holding down the Q key will enter a mode in which the startup screen is not displayed. This mode is released by starting up while holding down the L, N, or V key. This mode is stored in bit 1 of $00ED0095 in the battery-backed SRAM. Q キーを押しながら起動すると起動画面を表示しないモードになります。 このモードは L キー、N キー、V キーのいずれかを押しながら起動すると解除されます。 このモードはバッテリバックアップ SRAM の $00ED0095 のビット 1 に保存されます。

#### misc/optime.x misc/optime.x

Fixed a bug that caused a bus error if "..." written in the command line was not closed. コマンドラインに書かれた "…" が閉じていないとバスエラーが出るバグを修正しました。

#### Z keyboard support Z キーボード対応

Changed device path search criteria from "paths containing the first vid_33dd&pid_0011&mi_01&col05 found" to "paths containing the last vid_33dd&pid_0011&mi_01&col05 found". デバイスパスの検索条件を「最初に見つかった vid_33dd&pid_0011&mi_01&col05 を含むパス」から「最後に見つかった vid_33dd&pid_0011&mi_01&col05 を含むパス」へ変更しました。

The debug flag checkbox has been added to the Z keyboard menu. If it is turned on before connecting, information will be output when connecting. Z キーボードメニューにデバッグフラグチェックボックスを追加しました。 接続する前に ON にしておくと接続するとき情報が出力されます。

Fixed a problem in which the CLR key was sometimes entered when the Z keyboard connection was terminated. Z キーボードの接続を終了したとき CLR キーが入力されることがある不具合を修正しました。

### 0.23.08.08

#### Execution environment 実行環境

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

#### Boot device menu 起動デバイスメニュー

"Default" in the boot device menu has been changed to "Follow settings in SWITCH.X". 起動デバイスメニューの「既定」の表記を「SWITCH.X の設定に従う」に変更しました。

#### File menu ファイルメニュー

Changed the color scheme of the icons of unconnected units in the file menu. ファイルメニューの未接続のユニットのアイコンの配色を変更しました。

#### FDC

The interval between motor ON, rising READY and state transition interrupt requests has been changed to avoid the problem of IOCS _B_DRVSNS hanging up. IOCS _B_DRVSNS がハングアップする不具合を回避するため、モータ ON と READY 立ち上がりと状態遷移割り込み要求の間隔を変更しました。

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

The maximum waiting time for GIF animation recording was changed from 10 to 30 seconds. GIF アニメーション録画の待ち時間の最大値を 10 秒から 30 秒に変更しました。

#### High memory ハイメモリ

Added use high memory on 060turbo checkbox to the high memory on X68030/Xellent30 menu. X68030 and Xellent30 can use large amount of high memory starting from address $10000000. If enabled, the previous high memory starting at $01000000 will no longer be available. This setting is stored in the parameter highmemory060turbo. X68030/Xellent30 のハイメモリメニューに 060turbo のハイメモリを使うチェックボックスを追加しました。X68030 と Xellent30 でアドレス $10000000 から始まる大容量のハイメモリが使えます。 これを有効にすると従来の $01000000 から始まるハイメモリは使えなくなります。 この設定はパラメータ highmemory060turboに保存されます。

Added 384 MB, 512 MB, and 768 MB to the capacity of high memory on 060turbo. You can select them in the high memory on 060turbo menu and parameter localmemory. While increasing the capacity of high memory increases what can be done, software that does not support high memory is more likely to malfunction. It is recommended to set it to 128 MB or less, the same as the actual device, when not needed. Also note that saving the contents of a large amount of high memory will cause the configuration file to become huge and take longer to start up and close. 060turbo のハイメモリの容量に 384MB、512MB、768MB を追加しました。 060turbo のハイメモリメニューとパラメータ localmemoryで選択できます。 ハイメモリの容量を増やすことでできることが増える一方、ハイメモリに対応していないソフトウェアは誤動作しやすくなります。 必要でないときは実機と同じ 128MB 以下に設定しておくことをお勧めします。 また、大容量のハイメモリの内容を保存すると設定ファイルが巨大化して起動と終了に時間がかかるので注意してください。

#### IPLROM 1.6 IPLROM 1.6

The RTC date and time are displayed on the IPLROM 1.6 startup screen. The date and time will be strikethrough if there is an incorrect BCD, a non-existent date and time, an obviously past date, or an incorrect day of the week. IPLROM 1.6 の起動画面に RTC の日時が表示されます。 不正な BCD、存在しない日時、明らかに過去の日付、または曜日の誤りがあるとき、日時に取り消し線が表示されます。

Changed unimplemented exception handling routines in IPLROM 1.6. When a bus error or address error occurred on the 68000, the exception stack frame is no longer dug up. The exception stack frame for bus errors and address errors on the 68000 is deeper than the status register with additional information such as the direction of transfer and the address that was attempted to be accessed. The previous unimplemented exception handling routines would dig up the exception stack frame to the location of the status register, so the TRAP#14 (error display) routine could not reference the additional information. IPLROM 1.6の未実装例外処理ルーチンを変更しました。68000 でバスエラーまたはアドレスエラーが発生したとき、例外スタックフレームを掘り起こさないようにしました。68000 のバスエラーとアドレスエラーの例外スタックフレームは、転送方向やアクセスしようとしたアドレスなどの追加情報がステータスレジスタよりも深い場所にあります。 従来の未実装例外処理ルーチンはステータスレジスタの位置まで例外スタックフレームを掘り起こしてしまうため、TRAP#14(エラー表示) ルーチンが追加情報を参照することができませんでした。

A simple TRAP#14 (error display) routine has been added to IPLROM 1.6. When an error occurs during startup, the error code and program counter are displayed. When a bus error or address error occurs, it also displays the transfer direction and the address that was attempted to be accessed. When nothing is displayed and the unit hangs up, the program counter may be checked by pressing the INTERRUPT switch. Conventionally, when an error occurs during startup, the message "An error has occurred. Please reset." but it was not clear where or what kind of error had occurred. IPLROM 1.6に簡易的な TRAP#14(エラー表示) ルーチンを追加しました。 起動中にエラーが発生したとき、エラーコードとプログラムカウンタを表示します。 バスエラーまたはアドレスエラーが発生したときは、転送方向とアクセスしようとしたアドレスも表示します。 何も表示されずハングアップしたとき、INTERRUPT スイッチを押すとプログラムカウンタを確認できるかも知れません。 従来は、起動中にエラーが発生したとき「エラーが発生しました。リセットしてください。」と表示されるだけで、どこでどのようなエラーが発生したのか分かりませんでした。

#### JoyPortUkun じょいぽーと U 君

jSerialComm is used for connecting to the JoyPortUkun except Windows. You may be able to use the JoyPortUkun on macOS and Linux. On Windows, the conventional native code is used for connecting to the JoyPortUkun, but jSerialComm can also be selected. Added parameter ukunjsc. Windows 以外のとき、じょいぽーと U 君との接続にjSerialCommを使用します。macOS や Linux でもじょいぽーと U 君が使えるかも知れません。Windows のときはじょいぽーと U 君との接続に従来の native コードを使用しますが、jSerialComm も選択できます。 パラメータ ukunjscを追加しました。

Added output interval adjustment to stabilize the initialization sequence of Shiromadokun. The interval between writes to PPI is measured in virtual time and real time, respectively. If the virtual time interval is shorter, a wait cycle is added. If the real time interval is shorter, an empty loop is added with an upper limit of 500 us to reduce the gap between the virtual time interval and the real time interval. The load factor increases when adding an empty loop. This feature is enabled by parameter ukuninterval. 白窓君の初期化シーケンスを安定させるため、出力間隔調整を追加しました。PPI への書き込みの間隔を仮想時間と実時間でそれぞれ計測します。 仮想時間の間隔の方が短ければウェイトサイクルを、実時間の間隔の方が短ければ空ループを、500us を上限として追加することで、仮想時間の間隔と実時間の間隔のずれを軽減します。 空ループを追加するとき負荷率が高くなります。 この機能はパラメータ ukunintervalで有効になります。

#### Keyboard display キーボードの表示

Keyboard display now reflects LED brightness (bright, slightly bright, slightly dark, dark). The following is an example of using KeyWitch to make LEDs blink. キーボードの表示に LED の明るさ (明るい、やや明るい、やや暗い、暗い) を反映させるようにしました。 以下は KeyWitch を用いて LED を明滅させる例です。

    A:\>echo &unlockblink $19 0 0 1 2 3 3 2 1 > blink.env
    A:\>KeyWitch blink.env

#### Mouse wheel マウスホイール

The functions performed when the mouse wheel is rotated on the screen were Trace and Step, but now you can choose to left-click, right-click, or do nothing. When left and right click are selected, left click is performed when the mouse wheel is rotated down and right click is performed when the mouse wheel is rotated up. The buttons are pressed for 100 ms. Added the mouse wheel menu. Added parameter mousewheel. 画面上でマウスホイールを回転させたとき実行される機能はトレースとステップでしたが、左クリックと右クリックおよび何もしないを選択できるようにしました。 左クリックと右クリックを選択すると、マウスホイールを下へ回転させたとき左クリック、上へ回転させたとき右クリックになります。 ボタンが押されている時間は 100ms です。 マウスホイールメニューを追加しました。 パラメータ mousewheelを追加しました。

#### RS-232C and terminal RS-232C とターミナル

- RS-232C on X680x0 on XEiJ XEiJ 上の X680x0 の RS-232C
- Terminal on XEiJ XEiJ のターミナル
- Host machine serial port ホストマシンのシリアルポート

From the above three, you can choose two to connect. In the following, they are written as RS-232C, terminal, and serial port, respectively. 以上の 3 つから、2 つを選んで接続できるようにしました。 以下ではそれぞれ RS-232C、ターミナル、シリアルポートと書きます。

For example, small file exchanges can be made between the emulator and the actual machine. 例えば、エミュレータと実機の間で小規模なファイル交換ができます。

1. Prepare a serial port on the host machine and connect it directly to the actual X680x0 machine with an RS-232C crossover cable. ホストマシンにシリアルポートを用意して RS-232C クロスケーブルで X680x0 実機と直結します。
2. Connect the terminal to the serial port and send ZM.X (and RSDRV.SYS if necessary) to the actual X680x0 device with the terminal function. ターミナルとシリアルポートを接続し、ターミナルの機能で X680x0 実機に ZM.X(と必要ならば RSDRV.SYS) を送信します。
3. Connecting the RS-232C and serial port creates a file exchange environment using ZM.X between the emulator and the actual device. RS-232C とシリアルポートを接続すると、エミュレータと実機の間で ZM.X によるファイル交換環境が出来上がります。

The sxmr.bas and TeraTerm written in file exchange with Windows are no longer needed and only XEiJ and ZM.X are needed for file exchange. RSDRV.SYS is on the Human68k 3.0 system disk and is used to set flow control to RTS. Windows とのファイル交換に書いた sxmr.bas と TeraTerm は不要になり、XEiJ と ZM.X だけでファイル交換ができます。RSDRV.SYS は Human68k 3.0 のシステムディスクに入っていてフロー制御を RTS にするとき使います。

Select RS-232C and terminal from the config menu to open the RS232C and terminal window. The RS-232C and terminal window is divided into connection, communication settings, transfer, and terminal. 「設定」メニューの「RS-232C とターミナル」を選択すると「RS232C とターミナル」ウインドウが開きます。 「RS232C とターミナル」ウインドウは「接続」、「通信設定」、「転送」、「ターミナル」に分かれています。

In the "Connection" section of the "RS232C and terminal" window, you can select whether to connect to a terminal (Terminal), RS-232C (AUX), or serial port (COM3, etc.). This setting is stored in the parameter rs232cconnection. Pressing the "Refresh" button will re-search the serial port. 「RS232C とターミナル」ウインドウの「接続」では、ターミナル (Terminal)、RS-232C(AUX)、シリアルポート (COM3 など) のどれとどれを接続するか選択します。 この設定はパラメータ rs232cconnectionに保存されます。 「更新」ボタンを押すとシリアルポートが再検索されます。

When a terminal (Terminal) and RS-232C (AUX) are connected, the ROM debugger can be operated with the terminal as before. Also, when you want to copy a string of characters displayed on the screen by a command, you can easily copy it by using "CTTY AUX" to move the command prompt to the terminal and execute the command. ターミナル (Terminal) と RS-232C(AUX) を接続すると、従来通りターミナルで ROM デバッガを操作できます。 また、コマンドが画面に表示した文字列をコピーしたいとき、「CTTY AUX」でコマンドプロンプトをターミナルに移してコマンドを実行すると簡単にコピーできます。

By connecting a serial port (e.g. COM3) and RS-232C (AUX), serial communication between X680x0 on XEiJ and a device outside the host machine is possible. You may be able to exchange files with the actual X680x0 machine and even play communication games. シリアルポート (COM3 など) と RS-232C(AUX) を接続すると、XEiJ 上の X680x0 とホストマシンの外にある機器の間でシリアル通信ができます。X680x0 実機とファイルのやり取りをしたり、通信対戦もできるかも知れません。

If you connect a serial port (COM3, etc.) to a terminal (Terminal), you can move the command prompt of the actual X680x0 device to the terminal. In the "Communication settings" section, match the settings with those of the actual device and enter "CTTY AUX" on the actual device. シリアルポート (COM3 など) とターミナル (Terminal) を接続すると、X680x0 実機のコマンドプロンプトをターミナルに移すことができます。 「通信設定」で実機と設定を合わせて実機で「CTTY AUX」と入力します。

"Communication settings" in the "RS232C and terminal" window is used when a serial port (e.g. COM3) is connected to a terminal (Terminal). It selects baud rate, data bits, parity, stop bit, and flow control. These settings are stored in the parameter terminalsettings. 「RS232C とターミナル」ウインドウの「通信設定」は、シリアルポート (COM3 など) とターミナル (Terminal) を接続しているときに使います。 ボーレート、データビット、パリティ、ストップビット、フロー制御を選択します。 この設定はパラメータ terminalsettingsに保存されます。

The "Send file" button under "Transfer" in the "RS232C and terminal" window is used to transfer a small file from the host to the actual X680x0 device when the serial port (COM3, etc.) is connected to the terminal (Terminal). Type "CTTY AUX" on the actual device to move the command prompt of the actual device to the terminal, press the "Send file" button, select a file, and press the "Send" button. The selected file is converted into a self-restoring file named a.r that does not contain any control code, and is sent in the following order: string "copy aux a.r", new line, contents of a.r, string "a.r", new line. As long as COMMAND.X is running on the actual device, the process of converting a binary file into a file that does not contain control codes, sending it, and restoring it is done automatically. 「RS232C とターミナル」ウインドウの「転送」の「ファイル送信」ボタンは、シリアルポート (COM3 など) とターミナル (Terminal) を接続しているとき、ホストから X680x0 実機に小さいファイルを転送したいときに使います。 実機で「CTTY AUX」と入力して実機のコマンドプロンプトをターミナルに移し、「ファイル送信」ボタンを押してファイルを選択して、「送信」ボタンを押します。 選択されたファイルが、制御コードを含まない a.r という自己復元ファイルに変換され、文字列「copy aux a.r」、改行、a.r の内容、文字列「a.r」、改行の順に送信されます。 実機で COMMAND.X さえ動いていれば、バイナリファイルを制御コードを含まないファイルに変換して送信して復元する作業が自動で行われます。

This transfer function is a simple one that uses the COMMAND.X copy command. The file to be transferred must fit into the memory of the actual device, including the area needed for decompression. Once the transfer is started, it cannot be stopped. The transfer may not be stopped due to communication errors. If the decoder is corrupted, a white window may appear. If the file is corrupted, a CRC error will be displayed. If the transfer fails, check the flow control, lower the baud rate, and try again. Data bits must be 8 bits. この転送機能は COMMAND.X の copy コマンドを用いる簡易的なものです。 転送するファイルは解凍に必要な領域を含めて実機のメモリに収まらなければなりません。 転送を始めたら途中で止められません。 通信エラーで転送が止まらなくなることがあるかも知れません。 デコーダが破損したときは白窓が表示されるかも知れません。 ファイルが破損したときは CRC エラーが表示されます。 転送に失敗するときはフロー制御を確認してボーレートを下げてやり直してください。 データビットは 8 ビットに限ります。

#### SCSI menu SCSI メニュー

Fixed a bug that prevented opening hard disk image files initialized with SCSIFORMAT.X included with SxSI. (Thanks りっきーさん) SxSI に付属している SCSIFORMAT.X で初期化されたハードディスクのイメージファイルを開くことができないバグを修正しました。(Thanks りっきーさん)

#### SPC SPC

Write and Verify(10) is implemented with the same behavior as Write(10). Write and Verify(10) を Write(10) と同じ動作で実装しました。

#### misc/060tsys/060turbo.sys misc/060tsys/060turbo.sys

060turbo.sys 0.58 is now included. The changes from 0.56 are as follows. 060turbo.sys 0.58 を同梱しました。0.56 からの変更点は以下の通りです。

- The logical address space has been changed from 29 bits to 30 bits. 論理アドレス空間を 29 ビットから 30 ビットに変更しました。
- The upper limit of high memory capacity was changed from 256 MB to 768 MB. ハイメモリの容量の上限を 256MB から 768MB に変更しました。
- The upper limit of RAMDISK capacity was changed from 512MB to 768MB. RAMDISK の容量の上限を 512MB から 768MB に変更しました。
- Fixed a bug that caused a hang-up when creating a RAMDISK ending in the end of the logical address space. 論理アドレス空間の末尾で終わる RAMDISK を作るとハングアップするバグを修正しました。
- The -ts limit was changed from 1024 to 4096. -ts の上限を 1024 から 4096 に変更しました。
- Added parameter -nt to disable use of MMU. Do not specify on the actual machine and on emulators that fill the cache using the same procedure as the actual machine. MMU を使わないようにするパラメータ -nt を追加しました。 実機および実機と同じ手順でキャッシュを充填するエミュレータでは指定しないでください。
- Can also be incorporated in 68030. MMU of 68030 is not supported. 68030 でも組み込めます。68030 の MMU は非対応です。
- SASI machines can be incorporated if they are 68030 or higher. SCSI BIOS installed after 060turbo.sys will not be wrapped. 68030 以上であれば SASI 機でも組み込めます。060turbo.sys より後に組み込まれた SCSI BIOS はラップされません。
- COMMAND.X 2.03 patch added. COMMAND.X 2.03 のパッチを追加しました。
- PCM8A.X 1.02 patch added. PCM8A.X 1.02 のパッチを追加しました。
- Fixed where btst was bset (no real damage due to SRAM). btst が bset になっていたところ (SRAM のため実害なし) を修正しました。

### 0.23.05.14

#### CYBER STICK サイバースティック

A cyber stick has been added to the devices that can be connected to the joystick port. The analog mode can be operated with an XInput gamepad, and the digital mode can be operated with an XInput gamepad or keyboard. Cyberstick button assignments can be set in the joystick port settings window or with the parameters cyberstickanalogN and cyberstickdigitalN. ジョイスティックポートに接続できるデバイスにサイバースティックを追加しました。 アナログモードは XInput 方式のゲームパッドで、また、デジタルモードは XInput 方式のゲームパッドまたはキーボードで操作できます。 サイバースティックのボタンの割り当てはジョイスティックポート設定ウインドウまたはパラメータcyberstickanalogNおよびcyberstickdigitalNで設定できます。

#### XInput support XInput 対応

When using Windows, the normal 2 button pad, the MEGA DRIVE 3 button pad, the MEGA DRIVE 6 button pad, and the cyber stick can be operated with an XInput gamepad. This functionality can be configured in the joystick port settings window or with the parameter xinput. Place the included xeijwin.dll in the current directory or in a directory in your path. Windows のとき、ノーマル 2 ボタンパッド、メガドラ 3 ボタンパッド、メガドラ 6 ボタンパッドおよびサイバースティックを XInput 方式のゲームパッドで操作できます。 この機能はジョイスティックポート設定ウインドウまたはパラメータ xinputで設定できます。 付属の xeijwin.dll をカレントディレクトリまたはパスの通っているディレクトリに置いてください。

### 0.23.05.03

#### Sprite screen スプライト画面

Fixed a bug that caused transparent lines to appear on the sprite screen when palette or scroll position was changed during the horizontal data display period. 水平データ表示期間中にパレットやスクロール位置を変更するとスプライト画面に透明な線ができるバグを修正しました。

### 0.23.05.01

#### Execution environment 実行環境

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

#### F11 key F11 キー

Shift+F11 key toggles between seamless mouse mode and exclusive mouse mode as well as the F12 key. Use this key when the F12 key is not assigned on the Z keyboard. Shift+F11 キーで F12 キーと同様にシームレスマウスモードとエクスクルーシブマウスモードを切り替えられます。Z キーボードで F12 キーが割り当てられていないときに使います。

Added "Do nothing" to the F11 key menu. When the right Ctrl key on the Z keyboard is used as the F11 key, you can usually select "Do nothing" and nothing will happen if you accidentally press it. F11 キーメニューに「何もしない」を追加しました。Z キーボードの右 Ctrl キーを F11 キーにしているとき普段は「何もしない」を選択しておけば間違って押しても何も起こりません。

#### File menu ファイルメニュー

The frame of the connection icon is no longer darkened when the unit is not connected. ユニットが接続されていないとき接続アイコンの枠の部分を暗くしないようにしました。

#### Host file system ホストファイルシステム

Fixed a bug that caused file timestamps to be set incorrectly if _CLOSE was performed immediately after _CREATE/_NEWFILE. _CREATE/_NEWFILE してすぐに _CLOSE するとファイルのタイムスタンプが正しく設定されないバグを修正しました。

#### IPLROM 1.6 IPLROM 1.6

When the MPU is 68060, for exceptions and IOCS calls where bit 4 of the number is 1, the undefined vectors will not contain vector numbers. When there is high memory at address $01xxxxxxxx, such undefined exceptions or IOCS calls will not run out of control and the appropriate white window will be displayed. MPU が 68060 のとき、番号のビット 4 が 1 である例外および IOCS コールについて、未定義のベクタにベクタ番号を入れないようにしました。 アドレス $01xxxxxx にハイメモリがあるときそのような未定義の例外または IOCS コールを呼び出しても暴走せず適切な白窓が表示されるようになります。

For the following interrupt-related IOCS calls, the condition for determining that an interrupt is unused has been changed from "the vector is $01000000 or more" to "the vector contains a vector number". When the vector of an interrupt in use points to high memory, the interrupt is no longer misidentified as unused. 以下の割り込み関係の IOCS コールについて、割り込みが未使用であると判断する条件を「ベクタが $01000000 以上」から「ベクタにベクタ番号が入っている」に変更しました。 使用中の割り込みのベクタがハイメモリを指しているとき割り込みが未使用と誤認されなくなります。

- _OPMINTST
- _TIMERDST
- _VDISPST
- _CRTCRAS
- _HSYNCST
- _PRNINTST

#### JoyPortUkun support (experimental) じょいぽーと U 君対応 (実験中)

When using Windows, TNB Seisakusho's JoyPortUkun is supported. Input/output devices connected to the joystick port of the actual X68000 may be used with XEiJ. See JoyPortUkun support (experimental) for details. Windows のとき、TNB 製作所さんのじょいぽーと U 君に対応しました。X68000 実機のジョイスティックポートに繋いでいた入出力デバイスが XEiJ で使えるかも知れません。 詳しくはじょいぽーと U 君対応 (実験中)を参照してください。

#### Key assignments キー割り当て

The width of keyCode that can be used for key assignment when using Windows has been changed from 12 bits to 16 bits. The F13 to F24 keys used on the Z keyboard can be assigned. Windows のときキー割り当てに使える keyCode の幅を 12 ビットから 16 ビットに変更しました。Z キーボードで使う F13～F24 キーを割り当てられます。

#### Operation frequency 動作周波数

Changed the operating frequency of 060turbo and 060turboPRO from 33.3MHz to 50MHz. 060turbo と 060turboPRO の動作周波数を 33.3MHz から 50MHz に変更しました。

Added 66.7MHz, 75MHz, and 100MHz radio buttons to the MPU menu. MPU メニューに 66.7MHz、75MHz、100MHz のラジオボタンを追加しました。

The default value of the arbitrary frequency spinner in the MPU menu was changed to 200MHz. MPU メニューの任意の周波数スピナーの初期値を 200MHz に変更しました。

#### SCSI menu SCSI メニュー

The tooltip for the hard disk icon is no longer displayed when the unit is not connected. ユニットが接続されていないときハードディスクアイコンのツールチップを表示しないようにしました。

#### SPC SPC

Selection phase is no longer omitted when the unit is not connected. ユニットが接続されていないときセレクションフェーズを省略しないようにしました。

#### Z Keyboard support (experimental) Z キーボード対応 (実験中)

In a Windows 10 and Microsoft IME or Google Japanese Input environment, all keys on the X68000 Z keyboard can be entered, with some limitations, by remapping the special keys to the F13-F24 keys using Microsoft PowerToys Keyboard Manager. You can control the 7 LEDs on the X68000 Z keyboard. See Z keyboard support (experimental) for details. Windows 10 と Microsoft IME または Google 日本語入力の環境で、Microsoft PowerToys Keyboard Manager を用いて特殊キーを F13～F24 キーへ再マップすることで、いくつかの制約はありますが、X68000 Z のキーボードのすべてのキーを入力できます。X68000 Z のキーボードの 7 個の LED を制御できます。 詳しくはZ キーボード対応 (実験中)を参照してください。

### 0.23.04.10

#### 8-bit port 8 ビットポート

When accessing an even address of an 8-bit port with byte size, a bus error is now generated unless the Xellent30 is in 68030 mode. 8 ビットポートの偶数アドレスにバイトサイズでアクセスしたとき Xellent30 の 68030 モードでなければバスエラーが発生するようにしました。

#### Change the model and reset 機種を変更してリセット

Fixed a bug that prevented X68000 Compact (16.7MHz) from responding in the menu. メニューの X68000 Compact (16.7MHz) が反応しないバグを修正しました。

#### Controll pipe 制御パイプ

Added control pipe. When in Windows, the named pipe "\\.\pipe\XEiJControl&#34, you can send control commands, such as pressing an interrupt switch, from other processes via this pipe. Place the supplied xeijwin.dll in the current directory or in a directory that is in your path. Activating the paste pipe via the paste settings menu or the parameter pastepipe also activates the control pipe. 制御パイプを追加しました。Windows のとき、名前付きパイプ「\\.\pipe\XEiJControl」を介して他のプロセスからインタラプトスイッチを押すなどの制御コマンドを送信できます。 付属の xeijwin.dll をカレントディレクトリまたはパスの通っているディレクトリに置いてください。 貼り付け設定メニューまたはパラメータ pastepipeで貼り付けパイプを有効にすると制御パイプも有効になります。

    echo interrupt > \\.\pipe\XEiJControl

#### DMAC DMAC

Fixed a bug where DMAC would not read the source operand if it knew an address error would occur when writing to the destination operand. DMAC がデスティネーションオペランドへライトするときアドレスエラーが発生することが分かっているとソースオペランドをリードしないバグを修正しました。

Fixed an enbug in array chain mode and linked array chain mode that attempted to determine address and count errors before the first MAR and MTC were loaded. アレイチェーンモードとリンクアレイチェーンモードのとき最初の MAR と MTC がロードされる前にアドレスエラーとカウントエラーを判別しようとするエンバグを修正しました。

#### Host file system ホストファイルシステム

Fixed an error code when a file was not found in files. files でファイルが見つからなかったときのエラーコードを修正しました。

Remnants of _FILES buffers are now erased on reset. リセット時、_FILES のバッファの残骸を消すようにしました。

#### IPLROM 1.6 IPLROM 1.6

When the MPU is other than 68000 and the program counter is $02xxxxxx to $0Fxxxxxx, the vector number is obtained from the program counter instead of the vector offset. With this change, when an undefined F line instruction is executed on X68030, the message "A strange instruction was executed" will be displayed instead of "An error ($000B) occurred". MPU が 68000 以外かつプログラムカウンタが $02xxxxxx～$0Fxxxxxx のとき、ベクタオフセットの代わりにプログラムカウンタからベクタ番号を取得します。 この変更により、X68030 で未定義の F ライン命令を実行したとき、「エラー ($000B) が発生しました」ではなく「おかしな命令を実行しました」と表示されるようになります。

#### Parameters hdN and saN パラメータ hdN と saN

The parameter for specifying the SASI HD image file name has been changed from parameter hdN to parameter saN. SASI HD のイメージファイル名を指定するパラメータをパラメータ hdNからパラメータ saNに変更しました。

hdN can now be specified as either a SASI HD or SCSI HD/CD image file name. The file specified by hdN is considered to be a SASI HD image file name if the file extension is HDF or the file size is 10441728, 20748288, or 41496576. To be considered a SCSI HD/CD image file name, the file specified by hdN must have the HDS or ISO extension or have a file size that is not 10441728, 20748288, or 41496576. hdN には SASI HD と SCSI HD/CD のどちらのイメージファイル名でも指定できるようにしました。hdN で指定されたファイルが SASI HD のイメージファイル名とみなされる条件は、拡張子が HDF であるか、ファイルサイズが 10441728、20748288、41496576 のいずれかであることです。hdN で指定されたファイルが SCSI HD/CD のイメージファイル名とみなされる条件は、拡張子が HDS または ISO であるか、ファイルサイズが 10441728、20748288、41496576 のいずれでもないことです。

The image file name specified in hdN will be stored in saN if it is a SASI HD or in scN if it is a SCSI HD or CD-ROM. It is not stored in hdN. hdN で指定されたイメージファイル名は SASI HD であれば saN に、SCSI HD または CD-ROM であれば scN に保存されます。hdN には保存されません。

When deleting an image file name, use saN=none or scN=none. You cannot delete with hdN=none. イメージファイル名を削除するときは saN=none または scN=none としてください。hdN=none では削除できません。

#### RTC RTC

A slight discrepancy between the host machine's time and the X68000's time could affect the file modification date and time settings in the host file system. The unit of time difference between the host machine and the X68000 was changed from milliseconds to seconds, and the slight discrepancy was rounded to zero. ホストマシンの時刻と X68000 の時刻のわずかなずれが、ホストファイルシステムのファイルの更新日時の設定に影響することがありました。 ホストマシンと X68000 の時差の単位をミリ秒から秒に変更し、わずかなずれが丸め処理でゼロになるようにしました。

### 0.23.03.11

#### Core control buttons コア制御ボタン

A checkbox has been added to core control buttons to stop the core at the program execution start position. It is used when you want to set a breakpoint in a program before executing it. The disassemble list shows the name of the program and the offset from the beginning, so you can easily find the place to set a breakpoint by comparing it with the assembly list generated by HAS060.X and the disassembly list generated by dis.x. This feature is only available when Human68k 3.02 is running. コア制御ボタンにプログラムの実行開始位置でコアを停止させるチェックボックス を追加しました。 プログラムにブレークポイントを仕掛けてから実行したいときに使います。 逆アセンブルリストにはプログラムの名前と先頭からのオフセットが表示されるので、HAS060.Xが生成したアセンブルリストやdis.xが生成した逆アセンブルリストと照合することで、ブレークポイントを仕掛ける場所を簡単に見つけられます。 この機能は Human68k 3.02 が動作しているときだけ有効です。

#### DMAC DMAC

Fixed a bug that caused incorrect transfers when the device port size was 8 bits and the operand size was a word or longword. デバイスポートサイズが 8 ビットでオペランドサイズがワードまたはロングワードのとき正しく転送されないバグを修正しました。

Fixed a bug that did not result in a configuration error when the device port size was 16 bits and the operand size was 8 bits without pack. デバイスポートサイズが 16 ビットでオペランドサイズがパックなし 8 ビットのときコンフィギュレーションエラーにならないバグを修正しました。

Fixed a bug that prevented COC from being set when a channel stopped in error. チャンネルがエラーで停止したとき COC がセットされないバグを修正しました。

The formula for burst time and interval at auto request limited speed has been corrected. オートリクエスト限定速度のときのバースト時間と間隔の計算式を修正しました。

The number of cycles per operand has been corrected. The following table shows the number of cycles per operand for each setting on the actual X68030. You can see that the HD63450 operates with a minimum of 9 cycles, but the X68030 operates with 10 cycles with a wait cycle inserted. The X68000 also has many 10-cycle units, but some of the XVI and Compact units have 9 cycles. Furthermore, it appears that only the main memory is 9-cycle and the battery-backed SRAM is also 9-cycle. The PRO has 12 cycles, so DMA transfers are slower than other models. XEiJ uses 12 cycles for PRO, 9 cycles for Compact including Hybrid, and 10 cycles for the other models. オペランドあたりのサイクル数を修正しました。 以下の表は、X68030 実機の設定毎のオペランドあたりのサイクル数を示しています。HD63450 は最短 9 サイクルで動作しますが、X68030 ではウェイトサイクルが挿入されて 10 サイクルで動作していることが分かります。X68000 も 10 サイクルの個体が多いですが、XVI と Compact の一部に 9 サイクルの個体が存在します。 更に、メインメモリだけが 9 サイクルの個体と、バッテリバックアップ SRAM も 9 サイクルの個体があるようです。PRO は 12 サイクルなので、他の機種よりも DMA 転送が遅いです。XEiJ では、PRO を 12 サイクルに、Hybrid を含む Compact を 9 サイクルに、その他の機種を 10 サイクルにしています。

#### Dot clock oscillator ドットクロックオシレータ

In the modification menu or parameter dotclock, you can change the frequency of the three dot clock oscillators: one for low resolution, one for high resolution, and one for VGA. Changes made in the menu are reflected after a reset. See also: Oh!X June 1994, "The Road to Mega Displays" 改造メニューまたはパラメータ dotclockで、低解像度用、高解像度用、VGA 用の 3 つのドットクロックオシレータの周波数を変更できます。 メニューでの変更はリセット後に反映されます。 関連 : Oh!X 1994 年 6 月号『メガディスプレイへの道』

#### Host file system ホストファイルシステム

"..." or "...." etc. cannot be used as file names. "..." や "...." などをファイル名として使えないようにしました。

The size of the read-ahead and delayed write buffer per file handle has been changed from 16KB to 64KB. ファイルハンドルあたりの先読み・遅延書き込みバッファのサイズを 16KB から 64KB に変更しました。

When transferring data, address conversion is now performed one page at a time instead of one byte at a time. データを転送するときアドレス変換を 1 バイトずつ行っていたところを 1 ページずつ行うように変更しました。

#### Human68k patches Human68k のパッチ

Fixed a problem in which "PCM8A.X 1.02 is available" was sometimes displayed after PCM8A.X was deactivated. PCM8A.X を解除した後に「PCM8A.X 1.02 があります」と表示されることがある不具合を修正しました。

#### IPLROM 1.6 IPLROM 1.6

The IPLROM 1.6 startup screen used to display the DMAC transfer rate measured in battery-backed SRAM, but now it displays two times, once when measured in main memory and once when measured in battery-backed SRAM. When measured in main memory, the transfer rate is slightly lower due to the effect of DRAM refresh. It seems that some XVI and Compact models have different number of wait cycles between main memory and battery-backed SRAM. IPLROM 1.6の起動画面にバッテリバックアップ SRAM で計測した DMAC の転送速度を表示していましたが、メインメモリで計測したときとバッテリバックアップ SRAM で計測したときの 2 つ表示するようにしました。 メインメモリで計測すると DRAM リフレッシュの影響を受けて転送速度が若干低下します。XVI と Compact の一部にメインメモリとバッテリバックアップ SRAM でウェイトサイクルの数が異なる個体が存在するようです。

#### Key assignments キー割り当て

On Linux, the key assignments for Windows were not useful and all keys had to be reassigned. saku39 provided us with the data of key assignments created on Linux. He said that it is incomplete as a whole because it was created on a laptop, but I think it will be of great help. Thank you, saku39. Linux では、Windows 用のキー割り当てが役に立たず、すべてのキーを割り当て直さなければなりませんでした。saku39 さんに Linux で作成されたキー割り当てのデータを提供していただきました。 ノート PC で作成されたため全体的に不完全とのことですが、大いに参考になると思います。saku39 さん、ありがとうございます。

Added Save and Restore buttons to the Key assignments window. Key assignments can be saved to a file in CSV format. Since XEiJ saves key assignments in a settings file, when XEiJ settings are initialized, the key assignments are also initialized together. By saving key assignments to a file, key assignments can be restored after XEiJ settings are initialized. キー割り当てウインドウに保存ボタンと復元ボタンを追加しました。 キー割り当てを CSV 形式でファイルに保存できます。XEiJ ではキー割り当てを設定ファイルに保存しているので、XEiJ の設定を初期化するとキー割り当ても一緒に初期化されてしまいます。 キー割り当てをファイルに保存しておくことで、XEiJ の設定を初期化した後にキー割り当てを復元できます。

Added Undo and Redo buttons to the Key assignments window. You can undo changes to key assignments. If a key assigned to another key is pressed by mistake when changing the key assignment, the two keys will be in the wrong state, but they can be undone together. Operations of the blank button, default button, and restore button can also be undone. You can undo up to 1000 previous changes until you exit XEiJ. To undo a key assignment change after exiting XEiJ, take the keymap= line from the XEiJ.ini.bak file, write it to a file named keymap.txt, and restore it. キー割り当てウインドウに取り消しボタンとやり直しボタンを追加しました。 キー割り当ての変更を取り消すことができます。 キー割り当てを変更するとき他のキーに割り当てられているキーを間違って押してしまうと、2 つのキーが間違った状態になってしまいますが、まとめて取り消せます。 白紙ボタン、初期値ボタン、復元ボタンの操作も取り消せます。XEiJ を終了するまで、1000 回前の変更まで取り消せます。XEiJ を終了した後にキー割り当ての変更を取り消すには、XEiJ.ini.bak ファイルから keymap= の行を取り出して keymap.txt というファイルに書き込み、それを復元してください。

#### Number of sprites per raster ラスタあたりのスプライトの枚数

The number of sprites per raster can be changed from 32 to any number in the modification menu or in the parameter sprras. Changes made in the menu will take effect immediately. 改造メニューまたはパラメータ sprrasで、ラスタあたりのスプライトの枚数を 32 枚から任意の枚数に変更できます。 メニューでの変更は直ちに反映されます。

#### Scanline effect 走査線エフェクト

In the Scanline effect menu or parameter scanline, the scanline effect in low-resolution mode can be selected from five options: none, weak, medium, strong, and black. The default value is medium. Previously, only strong was available. 走査線エフェクトメニューまたはパラメータ scanlineで、低解像度モードのときの走査線エフェクトを、なし、弱、中、強、黒の 5 つから選択できるようにしました。 初期値は中です。 以前は強のみでした。

If the vertical magnification of the screen is not an integer multiple and not large enough, the scanline effect will not look good. Use Fixed scale to set the screen's vertical magnification to an integer multiple. 画面の縦方向の倍率が整数倍でなくかつ十分に大きくないとき、走査線エフェクトは綺麗に見えません。 固定倍率を用いて画面の縦方向の倍率を整数倍にしてください。

#### 256 sprites スプライト 256 枚

The number of sprites can be doubled from 128 to 256 in the modification menu or parameter dblspr. Changes made in the menu are reflected after a reset. 改造メニューまたはパラメータ dblsprで、スプライトの枚数を 128 枚から 256 枚に倍増させることができます。 メニューでの変更はリセット後に反映されます。

The X68000 has 128 sprite scroll registers at addresses $00EB0000 to $00EB03FF. Addresses $00EB00400 to $00EB07FF immediately after that are free, so they are used as sprite scroll registers for an additional 128 sprites. X68000 はアドレス $00EB0000～$00EB03FF に 128 枚分のスプライトスクロールレジスタがあります。 その直後のアドレス $00EB00400～$00EB07FF が空いているのでそこを追加の 128 枚分のスプライトスクロールレジスタとして使用します。

Added program misc/spr256test.x to test the simultaneous display of 256 sprites. スプライト 256 枚同時表示をテストするプログラムmisc/spr256test.xを追加しました。

#### 1024-dot non-interlaced 1024 ドットノンインターレース

In the modification menu or parameter eleventhbit, the width of R04/R05/R06/R07/R09 of CRTC can be extended from 10 bits to 11 bits. This modification enables 1024-dot vertical non-interlaced display. Changes made in the menu will be reflected after reset. 改造メニューまたはパラメータ eleventhbitで、CRTC の R04/R05/R06/R07/R09 の幅を 10 ビットから 11 ビットに拡張できます。 この改造で縦 1024 ドットノンインターレース表示が可能になります。 メニューでの変更はリセット後に反映されます。

#### Wait cycles ウェイトサイクル

Wait cycles are inserted for main memory and I/O port accesses. The number of wait cycles is not finely enough controlled and can be too many or too few. The wait cycles can be disabled in the MPU menu or with the parameter waitcycles. Even if wait cycles are disabled, wait cycles are still inserted for battely-backed SRAM and ROM accesses as before. メインメモリと I/O ポートのアクセスにウェイトサイクルが挿入されます。 ウェイトサイクルの数は十分に細かく制御されておらず、多すぎたり少なすぎたりすることがあります。 ウェイトサイクルはMPU メニューまたはパラメータ waitcyclesで無効にできます。 ウェイトサイクルを無効にしてもバッテリバックアップ SRAM と ROM のアクセスには従来どおりウェイトサイクルが挿入されます。

When the cache is OFF on the X68030, wait cycles can be added to main memory and ROM accesses using system port $00E8E009. X68030 でキャッシュ OFF のとき、システムポート $00E8E009 を使ってメインメモリと ROM のアクセスにウェイトサイクルを追加できます。

The XEiJ 68030 and 68060 do not have an instruction cache and data cache entity, and wait cycles are inserted into main memory and ROM accesses only when both caches are OFF. XEiJ の 68030 と 68060 には命令キャッシュとデータキャッシュの実体がなく、両方のキャッシュが OFF のときだけメインメモリと ROM のアクセスにウェイトサイクルが挿入される仕組みになっています。

#### Xellent30 Xellent30

Fixed a bug that caused main memory in the range $00BCxxxx-$00BFFFFFFF to become the supervisor area when it was returned to main memory from the Xellent30's onboard SRAM. $00BCxxxx～$00BFFFFF を Xellent30 のオンボード SRAM からメインメモリに戻したときその範囲のメインメモリがスーパーバイザ領域になってしまうバグを修正しました。

You can select the Xellent30 I/O port address from $00EC0000/$00EC4000/$00EC8000/$00ECC000 in the Xellent30 menu or parameter xt3dipsw. The default value is $00ECC000. Xellent30 メニューまたはパラメータ xt3dipswで Xellent30 の I/O ポートのアドレスを $00EC0000/$00EC4000/$00EC8000/$00ECC000 から選べます。 初期値は $00ECC000 です。

In the Xellent30 menu or parameter xt3memorykb, you can choose between 256KB and 1MB for the size of Xellent30's onboard SRAM. The default value is 256KB. If you choose 1MB, not only IPLROM but also CGROM will be replaced by onboard SRAM. Note that if you replace the onboard SRAM with an empty one, the text will be unreadable. Xellent30 メニューまたはパラメータ xt3memorykbで Xellent30 のオンボード SRAM のサイズを 256KB と 1MB から選べます。 初期値は 256KB です。1MB にすると IPLROM だけでなく CGROM もオンボード SRAM に置き換わります。 オンボード SRAM が空のまま置き換えると文字が読めなくなってしまうので注意してください。

In the Xellent30 menu or parameter xt3memorysave, you can choose whether to save the contents of the onboard SRAM of the Xellent30 at exit. The default value is off. The contents of the onboard SRAM are converted to text using gzip+base64 and saved in the parameter xt3memorydata. Xellent30 メニューまたはパラメータ xt3memorysaveで Xellent30 のオンボード SRAM の内容を終了時に保存するかどうか選べます。 初期値は off です。 オンボード SRAM の内容は gzip+base64 でテキストに変換されてパラメータ xt3memorydataに保存されます。

### 0.23.01.21

#### Execution environment 実行環境

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

#### MC68000 and MC68010 MC68000 と MC68010

The execution time of the following instructions has been corrected. 以下の命令の実行時間を修正しました。

- ASR.L Dq,Dr
- CHK.W <ea>,Dq
- DIVS.W <ea>,Dq
- DIVU.W <ea>,Dq
- LSR.L Dq,Dr
- MOVEM.L <ea>,<list>
- ROR.L Dq,Dr
- ROXR.L Dq,Dr
- TAS.B <mem>

#### Video controller ビデオコントローラ

The zero-priority case between the sprite screen and the text screen, where the text screen is in the foreground, was not handled correctly. One variable name was misspelled in drawingmode.pl, a program that automatically generates DrawingMode.java, a program that overlays screens. スプライト画面とテキスト画面の間で発生するゼロプライオリティのうち、テキスト画面が手前にある場合が正しく処理されていませんでした。 画面の重ね合わせを行うプログラム DrawingMode.java を自動生成するプログラム drawingmode.pl に 1 箇所変数名の書き間違いがありました。

### 0.23.01.19

#### MC68000 and MC68010 MC68000 と MC68010

The execution time of the following instructions has been corrected. 以下の命令の実行時間を修正しました。

- ASR.L #<data>,Dr
- DIVS.W #<ea>,Dq
- DIVU.W #<ea>,Dq
- ROL.B #8,Dr
- ROR.B #8,Dr
- LSR.L #<data>,Dr
- MOVEM.L <list>,<mem>
- ROXR.L #<data>,Dr
- ROR.L #<data>,Dr

#### misc/* misc/*

Added optime.s, optime.x and optitest.bat. optime.s、 optime.x および optitest.bat を追加しました。

### 0.23.01.01

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

#### IPLROM 1.6 IPLROM 1.6

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 さんに書いていただいたコメントです。

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

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

      このマッピングを使うことでUSキーボードでもすべての記号文字が入力可能となります。
      逆にこのマッピングを使うとJISキーボードでは正しく入力できなくなるので注意してください。

      また、M.Kamadaさん作 KeyWitch.X を使用して Human68K 側をUS(ASCII)配列にすると、
      SHIFTキーと組み合わせた記号入力も含め、XEiJ上で完全なUS配列となります。(推奨)

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

      KeyWitch.Xと68エミュレータについては以下を参考にさせて頂きました。
      https://yatte-mita.hateblo.jp/entry/2019/06/15/130053

      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 が入力できないバグを修正しました。

#### PPI PPI

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 に出力されていたバグを修正しました。この機能を使うデバイスが接続されていないので実害はありませんでした。

#### SRAM SRAM

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 起動に変更します。

### 0.22.10.18

#### 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 であることが報告されます。

#### IPLROM 1.6

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 の組み合わせは推奨できません。

#### Paste 貼り付け

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

#### Printer プリンタ

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. 用紙の余白はパラメータ prntopmargin、prnleftmargin、prnrightmargin および 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 は必要です。

### 0.22.09.01

#### 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 pixelsto 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 文字になっていたバグを修正しました。

### 0.22.08.25

#### 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 ファイルの作成メニューにアドレスの範囲とファイルサイズを書きました。

#### DMAC DMAC

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 18.0.2.1 2022-08-18. これを書いている時点で最新の OpenJDK は 18.0.2.1 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. インジケータの文字を大きくしました。

#### IPLROM 1.6 IPLROM 1.6

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 が独自に開発したものであり、他のエミュレータのコードは使用していません。

### 0.22.06.08

#### 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. パラメータ gifwaitingtime、gifrecordingtime、gifmagnification および 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-) に書き込まれます。

#### DMAC

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 になります。

#### MC68000

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 さんのツイート)

#### MC68010

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 と同じにしました。

#### MC68060

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 を停止させて表示モードテストを操作すると画面が正しく更新されないバグを修正しました。

#### IPLROM 1.6

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 に戻してください。

#### misc/crtmodtest.x

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

#### misc/ppcon.x

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 の起動画面で使われているプロポーショナルピッチや右寄せに対応した文字表示ルーチンをデバイスドライバまたは常駐プログラムとして組み込めるようにしたものです。

### 0.22.02.21

#### 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. プリンタ で使うパイカ、エリート、縮小、スクリプトのフォントの生成を修正しました。

#### MFP

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 のときだけキーボードが使えます。

#### IPLROM 1.6

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 向けのスイッチを設定します。

#### SCSIINROM 16 and SCSIEXROM 16 SCSIINROM 16 と SCSIEXROM 16

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 割り込みが発生したときの処理を修正しました。

#### misc/*

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

### 0.22.02.10

#### CGROM

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 エラーが発生するバグを修正しました。

### 0.22.02.06

#### IPLROM 1.6

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

#### SRAM

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

#### DMAC

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 への書き込みが許可されないバグを修正しました。

### 0.22.02.03

#### 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 をバージョンアップしても古い割り当てが引き継がれます。 入力メニュー の キー割り当て でキー割り当てウインドウを開き、「初期値に戻す」をクリックすると、新しいバージョンの初期値が適用されます。

#### SRAM

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 への書き込み時のバスエラー」を追加しました。

### 0.22.02.01

#### IPLROM 1.6

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 でフォーマットできます。

### 0.22.01.30

#### IPLROM 1.6

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 モードを追加しました。

#### CRTMOD CRTMOD

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 ページ数
--- | --- | --- | --- | ---
28 | 384x256 | 1024x1024 | 16 | 1
29 | 512x512 | 4
30 | 256 | 2
31 | 65536 | 1
32 | 512x512 (square 正方形) | 1024x1024 | 16 | 1
33 | 512x512 | 4
34 | 256 | 2
35 | 65536 | 1
36 | 256x256 (square 正方形) | 1024x1024 | 16 | 1
37 | 512x512 | 4
38 | 256 | 2
39 | 65536 | 1

#### 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. コンソールにエスケープシーケンスを貼り付けることができます。

#### DMAC DMAC

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

#### FPCP and FPU FPCP と FPU

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 を使うようにパッチが当たります。

#### SRAM SRAM

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. フォントエディタとプロファイリングを廃止しました。

### 0.21.01.11

#### SCSIINROM / SCSIEXROM

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 が正しくリロケートされていませんでした。

#### ROM 1.5 : IOCS _CRTMOD

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 CRT CRT 向け | for LCD LCD 向け | note 備考
--- | --- | --- | ---
17/21/25 | 1024x424 | 768x600 |
18/22/26 | 1024x848 | 768x1024 | interlace インターレース

### 0.21.01.03

#### ROM 1.5 : IOCS _SP_INIT

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

#### CRTC

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 およびテキストエリアにバイトサイズで書き込んだとき、ワードサイズで上位バイトと下位バイトに同じ値が書き込まれるようにしました。

### 0.20.12.31

#### 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 命令は実効アドレスをリードするからです。 このバグを修正しました。 参考 : ふってぃさんの一連の考察

- IPL tries to read from a write-only port (ROM 1.3) ライトオンリーのポートをリードしようとする (ROM 1.3)

#### ROM 1.5 : IOCS _SCSIDRV

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 を返すようにしました。

#### ROM 1.5 : SCSI _S_DATAINI

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 さんのツイート

#### ROM 1.5 : IOCS _CRTMOD

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 CRT CRT 向け | for LCD LCD 向け
--- | --- | ---
horizontal sync frequency 水平同期周波数 | vertical sync frequency 垂直同期周波数 | horizontal sync frequency 水平同期周波数 | vertical sync frequency 垂直同期周波数
768x512 | high resolution 高解像度 | 31.500kHz | 55.458Hz | 35.056kHz | 56.090Hz
512x512 | high resolution 高解像度 | 31.500kHz | 55.458Hz | 35.341kHz | 56.546Hz
low resolution 低解像度 | 15.980kHz | 61.462Hz
256x256 | high resolution 高解像度 | 31.500kHz | 55.458Hz | 34.500kHz | 55.200Hz
low resolution 低解像度 | 15.980kHz | 61.462Hz | 47.250kHz | 75.600Hz
SVGA 800x600 for reference 参考値 | 35.156kHz | 56.250Hz
46.875kHz | 75.000Hz

#### ROM 1.5 : IOCS _SP_INIT

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

- Bus error occurs in _SP_INIT (ROM 1.0/1.1/1.2/1.3) _SP_INIT でバスエラーが発生する (ROM 1.0/1.1/1.2/1.3)

#### 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 ができます。

- Create XEIJROM.DAT…Outputs the XEiJ ROM $00F00000～$00FFFFFF (1MB) to a file. XEIJROM.DAT の作成 …XEiJ の ROM $00F00000～$00FFFFFF (1MB) をファイルに出力します。
- Create EVEN030.BIN…Create a binary file of the ROM to be installed in the socket marked EVEN on the X68030. The size is 256Kbit x 16 = 4Mbit = 512KB. Output in little-endian format. EVEN030.BIN の作成 …X68030 の EVEN と書かれたソケットに取り付ける ROM のバイナリファイルを作成します。サイズは 256Kbit x 16 = 4Mbit = 512KB です。リトルエンディアンで出力します。
- Create ODD030.BIN…Create a binary file of the ROM to be installed in the socket marked ODD on the X68030. The size is 256Kbit x 16 = 4Mbit = 512KB. Output in little-endian format. ODD030.BIN の作成 …X68030 の ODD と書かれたソケットに取り付ける ROM のバイナリファイルを作成します。サイズは 256Kbit x 16 = 4Mbit = 512KB です。リトルエンディアンで出力します。
- Create EVENXVI.BIN…Create a binary file of the ROM to be installed in the socket marked EVEN on the X68000 XVI expansion RAM board CZ-6BE2A. The size is 128Kbit x 8 = 1Mbit = 128KB. EVENXVI.BIN の作成 …X68000 XVI の増設 RAM ボード CZ-6BE2A の EVEN と書かれたソケットに取り付ける ROM のバイナリファイルを作成します。サイズは 128Kbit x 8 = 1Mbit = 128KB です。
- Create ODDXVI.BIN…Create a binary file of the ROM to be installed in the socket marked ODD on the X68000 XVI expansion RAM board CZ-6BE2A. The size is 128Kbit x 8 = 1Mbit = 128KB. ODDXVI.BIN の作成 …X68000 XVI 用の増設 RAM ボード CZ-6BE2A の ODD と書かれたソケットに取り付ける ROM のバイナリファイルを作成します。サイズは 128Kbit x 8 = 1Mbit = 128KB です。

#### MC68000

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

- BRA.S <label>
- BSR.S <label>
- Bcc.S <label>
- CLR.B <mem>
- CLR.W <mem>
- CLR.L <mem>
- MOVE SR,<mem>
- MOVEM.W <mem>,<list>
- MOVEM.L <mem>,<list>
- Scc.B <mem>

#### 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 およびテキストエリアにアクセスするとバスエラーが発生します。

#### CRTC

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

#### FDC

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) が認識されます。

### 0.19.12.15

#### Execution environment 実行環境

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

#### ROM

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

- 060turbo 用 ROM の作成 (XEiJ フルパッチ)

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 を使用してください。

#### NetBSD/x68k

"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 が指定されたとき設定ファイルに保存されたフォントデータが誤って復元されていました。

#### MC68060

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 のディスプレースメントをコード空間ではなくデータ空間から読んでいました。

#### MC68000

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 のクロックサイクル数を修正しました。

### 0.19.01.24

#### Website ウェブサイト

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

#### 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 の違いは以下の通りです。

- BKPT, MOVE from CCR, MOVEC, MOVES and RTD were added. BKPT、MOVE from CCR、MOVEC、MOVES、RTD が追加されました。
- MOVE from SR was changed to a privilege instruction. MOVE from SR が特権命令になりました。
- A format and a vector offset were added to exception stack frames. 例外スタックフレームにフォーマットとベクタオフセットが追加されました。

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___ でフォントファイルを指定できます。

### 0.17.06.17

#### 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) 以上に更新しました。

- Java™ SE Development Kit 8, Update 131 Release Notes (Oracle)

#### *.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)」のようなメッセージが ターミナル に表示されます。

#### CGROM

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

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 参考

- GIMONS さんのツイート : " メモ：X68K の RTC(RP5C15) のテストレジスタ仕様 ・内部に秒、分、日、年の４つのカウンタがある（推測） ・$e8a01d の TEST レジスタは TEST0～３のビットがある ・それぞれのビットは上の４つのカウンタに影響する つづく・・・"
- jinson さんのツイート : "winner2.x はこちら https://t.co/zbiKPeappn"

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 の時計とホストの時計がずれてしまったとき「時計をホストマシンに合わせる」で元に戻せます。

### 0.17.01.30

#### 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 参考

- isaki さんのツイート : "@kamadox X68030 実機でログ取ってみましたがどうでしょうか。https://t.co/aen0feckst"

#### fputest.x

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

### 0.17.01.28

#### FPU、MC68882

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

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

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

#### fputest.x

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

### 0.17.01.24

#### 実行環境

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

- Java™ SE Development Kit 8, Update 121 Release Notes (Oracle)

#### CRTC

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

参考

- GIMONS さんのツイート : "@kamadox 昔の TypeG は 16 ドット単位合成で分割して表示してましたが L31 からは H-DISP の開始でラスター合成を行ったあと更に H-DISP の終了で VC の更新をチェックしてラスター二分割した後半を再描画するという方法で表示してます。性能落としたくなかったんで・・・"
- Arimac さんの BMPL.X/LPICL.X の添付ドキュメント X256.DOC

#### FPU、MC68882

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 を追加しました。

実験的に追加された浮動小数点命令
OPMODE | 文法 | 機能
--- | --- | ---
1110000 | FLGAMMA.[BWLSDXP] <ea>,FPn | ログガンマ関数
1110001 | FTGAMMA.[BWLSDXP] <ea>,FPn | ガンマ関数

#### MC68EC030

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
    }

参考

- Y.Sugahara さんのツイート : "cmp2 についてコード公開前に。 まず L,U,Dst は全部 32bit 符号拡張する。cmp L,U if (C) { cmp D,U if (Z) { } else if (C) { cmp L,D } else { cmp D,L } } else {"
- Y.Sugahara さんのツイート : "cmp L,D if (Z) { } else if (C) { } else { cmp D,U } }"
- Y.Sugahara さんのツイート : "cmp L,U が NC のときだけ早期終了があるのが落とし穴。"

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

参考

- Y.Sugahara さんのツイート : "68030 の DIV 命令の div/0 が起きたときの V フラグは、前回 div または mul が正常終了してから div0 が起きるまでに実行した dbcc 命令の回数が奇数か偶数かに依存する。 何を言っているかわからないと思うが (ry"
- isaki さんのツイート : " 内部 V フラグ (仮称) が、正常な DIV,MUL でクリア。DBcc 命令ごとに反転 (DBT だけでも反転)。DIV 0 でその内部 V が V にコピーされる、みたいな感じ。> さっきの "

#### SRAM

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

#### プリンタ

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

#### ホストファイルシステム

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

#### fputest.x

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

#### instructiontest.x

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

### 0.16.11.17

#### 実行環境

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

- Java™ SE Development Kit 8, Update 112 Release Notes (Oracle)

#### プリンタ

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

#### CRTC

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

#### crtcmmtest.x

crtcmmtest.x を追加しました。

#### デバッガ

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

- トレース 10 回ボタン … トレース実行を 10 回繰り返します。
- トレース 100 回ボタン … トレース実行を 100 回繰り返します。
- ステップ 10 回ボタン … ステップ実行を 10 回繰り返します。
- ステップ 100 回ボタン … ステップ実行を 100 回繰り返します。
- ステップアンティルリターンボタン … 現在のサブルーチンまたは割り込みルーチンから復帰する RTD、RTE、RTR、RTS までステップ実行を繰り返します。ソースコードデバッガ SCD.X で言うところの Step until Return です。

#### instructiontest.x

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

    B:\>instructiontest easy all hard all

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

#### MC68030

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

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

#### MC68060

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

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

#### 拡張グラフィック画面

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

#### フロッピーディスク

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

#### vcntest.x

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

### 0.16.08.17

#### 重要

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

#### 実行環境

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

- Java™ SE Development Kit 8, Update 102 Release Notes (Oracle)

#### アドレス変換キャッシュモニタ

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

#### MPU

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

ABCD と NBCD と SBCD のコンディションコード
コンディションコード | MC68030 | MC68060
--- | --- | ---
X | キャリーまたはボローがあるときセット、さもなくばクリア
N | 未定義 (結果の最上位ビット) | 未定義 (変化しない)
Z | 結果が 0 でないときクリア、さもなくば変化しない
V | 未定義 (クリア) | 未定義 (変化しない)
C | キャリーまたはボローがあるときセット、さもなくばクリア

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 のコンディションコード
コンディションコード | MC68030 | MC68060
--- | --- | ---
X | 変化しない
N | Dq の最上位ビット
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 のとき) のコンディションコードが間違っていました。

#### SCSI ROM

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

#### その他

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

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

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

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

### 0.16.07.17

#### 重要

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

#### ビデオコントローラ

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

#### グラフィック画面

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

メモリモード | 実画面サイズ | 色数 | ページ数 | GVRAM サイズ
--- | --- | --- | --- | ---
0 | 512×512 ドット | 16 色 | 4 ページ | 512KB
1 | 256 色 | 2 ページ
3 | 65536 色 | 1 ページ
4 | 1024×1024 ドット | 16 色
5 | 256 色 | 1MB
7 | 65536 色 | 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 のパレットブロックが出力されなくなっていたバグを修正しました。

#### CRTC

インターレースのとき画面に縞模様ができるようになっていたバグを修正しました。

#### フォントエディタ

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

#### その他

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

### 0.16.05.12

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

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

### 0.16.05.07

#### スプライト画面

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

#### スプライトパターンビュア

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

#### IOCS _DEFCHR

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

### 0.16.04.30

#### シームレスマウスモード

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

#### エクスクルーシブマウスモード

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

#### スプライト画面

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

#### SCSI ROM

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

#### 逆アセンブルリスト

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

### 0.16.04.26

#### グラフィック画面

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

#### データブレークポイント

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

### 0.16.04.22

#### MC68060

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

#### メインメモリ

設定メニューでメインメモリのサイズを変更したとき直後のリセットで反映されない不具合を修正しました。

### 0.16.04.21

#### 実行環境

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

- Java™ SE Development Kit 8, Update 92 (JDK 8u92) (Oracle)

#### ホストファイルシステム

ホストファイルシステム でホストマシンのファイルを操作するスレッドをコアから分離しました。また、先読み・遅延書き込みバッファを介してファイルにアクセスするようにしました。ファイルアクセスが軽くなり、バッファの充填や排出を待っている間も割り込み処理を続けることができます。例 : 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

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

cc | MC68882 | MC68060
--- | --- | ---
OR / GLE | Z|~NAN | ~NAN
NE / SNE | NAN|~Z | ~Z

#### ハイメモリ

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

### 0.16.04.12

#### 実行環境

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

- Java™ SE Development Kit 8, Update 77 Release Notes (Oracle)

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

#### 060turbo

機種に 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

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

#### IPLROM

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 ハードディスクのイメージファイルを新規作成するとき、適切な拡張子が指定されていなければ拡張子を追加するようにしました。

#### ラスタコピー

ラスタコピーを実機と同様に水平フロントポーチで行います。

#### FPU

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

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

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

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

#### MC68EC030

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

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

#### ソースコード

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

### 0.15.08.31

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

- Java™ SE Development Kit 8, Update 60 Release Notes (Oracle)

### 0.15.08.12

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

### 0.15.08.09

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

### 0.15.07.19

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

### 0.15.07.15

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

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

- Java™ SE Development Kit 8, Update 51 Release Notes (Oracle)

### 0.15.07.01

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

コマンドラインから起動したとき「メインメモリの内容を保存する」が 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 でない奇数アドレスにワードサイズでアクセスしようとするとコアが止まるバグを修正しました。

### 0.15.06.08

推奨ブラウザから 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 ファイルから起動できます。

### 0.15.04.22

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

キーボードをマウスで操作したときマウス受信データのボタンの状態が変化しないようにしました。

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

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

### 0.15.04.15

音声出力速度制御 をデフォルトで 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

### 0.15.03.30

スタイルシートをサイトに合わせました。

FFT を更新しました。

推奨する Java SE のバージョンを 8u40 (1.8.0_40) 以上に更新しました。Java™ SE Development Kit 8, Update 40 Release Notes

### 0.15.01.29

http://stdkmd.com/xeij/ に引っ越しました。Java コントロールパネルのセキュリティタブの例外サイトリストに http://mada.la.coocan.jp/ を登録されている場合は http://stdkmd.com/ への変更をお願いします。

### 0.15.01.25

ウインドウの位置、ディスクのイメージファイルの名前、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

### 0.14.12.26

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

ビデオコントローラの重ね合わせの処理を変更しました。スプライト画面とテキスト画面のどちらか代表する画面を選んでからグラフィック画面と重ね合わせます。

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

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

### 0.14.11.23

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 以上のとき波形が乱れる不具合を修正しました。

### 0.14.11.11

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

### 0.14.11.07

コアのバグを修正しました。また、ゼロプライオリティといくつかの特殊プライオリティ／半透明モードを追加・修正しました。

### 0.14.11.03

DMA を更新しました。

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

### 0.14.10.29

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

### 0.14.10.21

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

### 0.14.10.20

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

### 0.14.10.18

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

### 0.14.10.15

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

### 0.14.10.14

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

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

### 0.14.09.23

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

### 0.14.09.22

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

### 0.14.09.08

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

### 0.14.09.04

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

### 0.14.08.29

浮動小数点命令の処理を更新しました。

### 0.14.08.22

デバッガで浮動小数点命令を逆アセンブルできるようにしました。

### 0.14.08.21

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

### 0.14.08.20

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

### 0.14.08.19

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

### 0.14.07.17

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

### 0.14.05.06

割り込み禁止の状態で暴走したときもインタラプトスイッチが効くようにしました。

### 0.14.05.05

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

### 0.14.05.01

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

### 0.14.04.30

コアのバグを修正しました。

### 0.14.04.29

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

### 0.14.04.28

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

### 0.14.04.27

描画するフレームの間隔を空けることで描画の負荷を軽くすることができます。

### 0.14.04.26

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

### 0.14.04.23

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

### 0.14.04.21

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

### 0.14.04.19

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

STUDIO KAMADA
Copyright © 1999-2026 Makoto Kamada