Version : 0.25.10.08 バージョン : 0.25.10.08
Author : Makoto Kamada 作者 : Makoto Kamada
Website : https://stdkmd.net/xeij/ ウェブサイト : https://stdkmd.net/xeij/
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 つでも誰かの役に立つことがあれば公開する意味があると思っています。
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 を使用してください。
Fixed a bug in the queue. キューのバグを修正しました。
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. イミディエイトオペランドのサイズがバイトで値が負のとき、符号反転して符号を付けて書きます。
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. インターレースのとき高速クリアが必ず偶数フレームから始まるようにしました。
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 の変化が正しいか調べます。
The buttons are now arranged in two rows. ボタンの並びを 2 行にしました。
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に保存されます。
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 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 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 個のパターンに対応しました。 スピナーでバンクを選択します。 パレットが自動のとき、スプライトまたはバックグラウンドとして表示されているパターンについて、表示に使用されたパレットブロックを用います。 パレットが固定のとき、スピナーで選択されたパレットブロックを用います。
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 を使用してください。
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 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
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に保存されます。
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に保存されます。
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 にブートセクタの番号を入れます。
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 の有無と種類を選択します。 変更はリセット後に反映されます。
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に保存されます。
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に保存されます。
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に保存されます。
Used when executing floating point instructions with MC68060. The default is full specification. This setting is saved in the parameter onchipfpu. MC68060 で浮動小数点命令を実行するとき使います。 デフォルトはフルスペックです。 この設定はパラメータ onchipfpuに保存されます。
No coprocessor or on-chip FPU is installed. The parameter value is 0. コプロセッサまたはオンチップ FPU を載せません。 パラメータの値は 0 です。
The floating point instructions of MC68881 can be used. The parameter value is 1. MC68881 の浮動小数点命令が使えます。 パラメータの値は 1 です。
The floating point instructions of MC68882 can be used. The parameter value is 2. MC68882 の浮動小数点命令が使えます。 パラメータの値は 2 です。
The floating point instructions of MC68060 can be used. The parameter value is 6. MC68060 の浮動小数点命令が使えます。 パラメータの値は 6 です。
All floating point instructions of MC68881, MC68882, and MC68060 can be used. The parameter value is 7. MC68881、MC68882、MC68060 のすべての浮動小数点命令が使えます。 パラメータの値は 7 です。
Calculations are performed with extended precision floating point number (64-bit mantissa, 19 digits). Add 0 to the parameter value. 拡張精度浮動小数点数 (仮数部 64 ビット、19 桁) で計算します。 パラメータの値に 0 を加えます。
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 で未実装命令を含むすべての浮動小数点命令を三倍精度で実行するには、フルスペックを選択する必要があります。
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. マウスホイールでスクロールできます。
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. 分岐ログウインドウも、マウスホイールでスクロールできます。
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 に更新しました。
Made corrections mainly to the behavior when a page fault occurs. ページフォルトが発生したときの動作を中心に修正を加えました。
NetBSD-10.1 booted successfully, so try to run the NetBSD/x68k has been updated. NetBSD-10.1 を起動できたのでNetBSD/x68k を動かしてみるを更新しました。
――Read more―――― 続きを読む ―― ――Hide more―――― 続きを隠す ――
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 の基本的なソフトウェアの無償公開に尽力された権利各社およびシャープ・プロダクツ・ユーザーズ・フォーラムの方々、美しいフォントを公開されている平木敬太郎さん、門真なむさん、実行サンプルとして使わせていただいたフリーソフトウェアの作者の方々、動作報告と応援のメッセージを寄せてくださった皆さん、ありがとうございます。