XEiJ (X68000 Emulator in Java)- XEiJ - STUDIO KAMADA

Version : 0.25.08.08 バージョン : 0.25.08.08

Author : Makoto Kamada 作者 : Makoto Kamada

Website : https://stdkmd.net/xeij/ ウェブサイト : https://stdkmd.net/xeij/

### Table of contents 目次

1. Introduction はじめに
2. Recent changes 最近の更新
   - 0.25.08.08
   - 0.25.07.08
   - 0.25.06.08
3. Past changes 過去の更新 ▶
4. Download ダウンロード
5. Install インストール ▶
6. Explanation of menu メニューの説明 ▶
7. Configuration file 設定ファイル ▶
8. Parameters パラメータ ▶
9. Source code ソースコード ▶
10. Functions and features 機能と特徴 ▶
11. About IPLROM 1.6 IPLROM 1.6について ▶
12. Explanation of misc/* misc/*の説明 ▶
13. Execution examples 実行サンプル ▶
14. Try to run the NetBSD/x68k NetBSD/x68kを動かしてみる ▶
15. Reference materials 参考資料 ▶
16. Link collection リンク集 ▶
17. License / Copyright / Disclaimer 使用許諾条件/著作権/免責事項 ▶
18. Acknowledgement 謝辞
19. Contact information 連絡先

## 1. Introduction はじめに

XEiJ (X68000 Emulator in Java) is an experimental X68000 emulator written in the Java language. Although XEiJ is an emulator, the sameness to real machines over the details of peripheral circuits is not necessarily top priority. I enjoy thinking new form of X68000 rather than copying old form. When I hit on an idea of an implementation method or a new function, I begin to write a program first of all even if I can not see its entire structure. If the idea goes nowhere, I put it aside until another idea occurs to me. I repeat such things. As a result, many unfinished parts are seen here and there. But I believe that it is meaningful to release XEiJ to the public if any comment in the source code helps someone. XEiJ (X68000 Emulator in Java) は Java 言語で記述された実験的な X68000 エミュレータです。エミュレータといっても周辺回路の隅々まで実機とまったく同じものを作ろうとしているわけではなく、どちらかと言えば X68000 の新しい形を考えることを楽しんでいます。実装方法のアイデアや新しい機能を思い付いたら全体像など見えなくてもとりあえずプログラムを書き始め、詰まったらまた何か湧いてくるまで脇に置いておく、そんなことを繰り返しているので ソースコード は作りかけのところばかりですが、注釈のどれか 1 つでも誰かの役に立つことがあれば公開する意味があると思っています。

## 2. Recent changes 最近の更新

### 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. マウスホイールでスクロールできます。

## 3. Past changes 過去の更新 ▶

## 4. Download ダウンロード

- XEiJ_0250808.zip (40489KB)…XEiJ (X68000 Emulator in Java) version 0.25.08.08

――Read more―――― 続きを読む ―― ――Hide more―――― 続きを隠す ――

- XEiJ_0250708.zip (38737KB)…XEiJ (X68000 Emulator in Java) version 0.25.07.08
- XEiJ_0250608.zip (38034KB)…XEiJ (X68000 Emulator in Java) version 0.25.06.08

## 5. Install インストール ▶

## 6. Explanation of menu メニューの説明 ▶

## 7. Configuration file 設定ファイル ▶

## 8. Parameters パラメータ ▶

## 9. Source code ソースコード ▶

## 10. Functions and features 機能と特徴 ▶

## 11. About IPLROM 1.6 IPLROM 1.6 について ▶

## 12. Explanation of misc/* misc/* の説明 ▶

## 13. Execution examples 実行サンプル ▶

## 14. Try to run the NetBSD/x68k NetBSD/x68k を動かしてみる ▶

## 15. Reference materials 参考資料 ▶

## 16. Link collection リンク集 ▶

## 17. License / Copyright / Disclaimer 使用許諾条件 / 著作権 / 免責事項 ▶

## 18. Acknowledgement 謝辞

I would like to thank: Right-holder companies and staffs of the SHARP PRODUCTS USERS FORUM who made efforts to distribute the basic software products of X68000 for free to the public. Keitarou Hiraki and Num Kadoma, they distribute beautiful fonts. Authors of free software that are used as execution examples of XEiJ. Everyone who reported problems and supported XEiJ by warm messages. X68000 の基本的なソフトウェアの無償公開に尽力された権利各社およびシャープ・プロダクツ・ユーザーズ・フォーラムの方々、美しいフォントを公開されている平木敬太郎さん、門真なむさん、実行サンプルとして使わせていただいたフリーソフトウェアの作者の方々、動作報告と応援のメッセージを寄せてくださった皆さん、ありがとうございます。

## 19. Contact information 連絡先

### Makoto Kamada

#### X

@kamadox

#### Discord

kamadox68k

#### E-mail メール

STUDIO KAMADA
Copyright © 1999-2025 Makoto Kamada