Version : 0.26.07.11 TEST バージョン : 0.26.07.11 TEST
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 つでも誰かの役に立つことがあれば公開する意味があると思っています。
This is a test version. New features may be substantially changed or removed in the future. これはテスト版です。 新しい機能は今後大幅に変更されるか廃止される可能性があります。
Fixed an issue where an ArrayIndexOutOfBoundsException could occur in the contrast control. コントラストコントロールで ArrayIndexOutOfBoundsException が出ることがある不具合を修正しました。
Added the malfunction screen (experimental). 故障画面 (実験中)を追加しました。


Clinking the malfunction screen (experimental) button in the display menu opens the malfunctin screen (experimental) window. In the malfunction screen (experimental) window, selecting the VRAM chip to fault and the method of data corruption causes noise to appear on the screen. 画面メニューの故障画面 (実験中) ボタンをクリックすると故障画面 (実験中) ウインドウが開きます。 故障画面 (実験中) ウインドウで故障させる VRAM チップとデータの壊し方を選択すると画面にノイズが現れます。
Due to insufficient information, the noise may not be displayed in the correct position. If you notice any screen errors, please report them. 情報不足のためノイズが正しい位置に表示されない可能性があります。 表示が間違っていることに気づいた方はご報告をお願いいたします。
Select the VRAM chips to cause to fail. You can select multiple chips, but the method used to corrupt the data will be the same for all of them. 故障させる VRAM チップを選択します。 複数選択できますがデータの壊し方は共通になります。
I assume that the arrangement of VRAM chips on the schematic and the configuration of the connected signal lines are identical across all models. However, since IC designations vary by model, the display updates to reflect the correct designations when a model is selected. If you happen to have a schematic for a model not listed in the options, I would appreciate it if you could share the sequence of IC designations. 回路図上の VRAM チップの並び順とそこに接続されている信号線の組み合わせは、すべての機種で共通であると推測しています。 しかし IC 番号は機種によって異なるので、機種を選択すると IC 番号の表示が変化するようにしてあります。 選択肢にない機種の回路図をお持ちの方がいらっしゃいましたら、IC 番号の並び順を教えていただけると助かります。
The settings of models and VRAM chips are stored in parameters mlfmodel and mlfchip. 機種と VRAM チップの設定はパラメータmlfmodelとmlfchipに保存されます。
Select the address of the cell to be faulted on a bit-by-bit basis from the following options: either 0 or 1, 0, and 1. This may provide clues not only when specific cells are faulty but also when there is an issue with the address bus. 故障させるセルのアドレスをビット毎に、0 または 1、0、1 から選択します。 一部のセルだけが故障している場合のほか、アドレスバスに問題がある場合もヒントが得られるかも知れません。
The settings of the address within chip are stored in parameters mlfzero and mlfone. チップ内アドレスの設定はパラメータmlfzeroとmlfoneに保存されます。
Select the method for corrupting data on a bit-by-bit basis from the following options: normal, stuck at low, stuck at high, frozen noise, and dynamic noise. データの壊し方をビット毎に、正常、常に 0、常に 1、静的ノイズ、動的ノイズから選択します。
The settings of the data corruption are stored in parameters mlflow, mlfhigh, mlffrozen and mlfdynamic. データ破壊の設定はパラメータmlflow、mlfhigh、mlffrozenおよびmlfdynamicに保存されます。
The issue where the set clock button was unresponsive has been fixed. 時計合わせボタンが反応しない不具合を修正しました。
The default setting for the on-chip FPU has been changed from full specification to MC68060, and the default setting for the FE function instruction has been changed from ON to OFF. オンチップ FPU のデフォルトをフルスペックから MC68060 に、FE ファンクション命令のデフォルトを ON から OFF に、それぞれ変更しました。
When a motherboard coprocessor is present in X68030 mode, this feature simulates coprocessor mid-instruction interrupts and coprocessor protocol violations. X68030 モードでマザーボードコプロセッサがあるとき、コプロセッサ命令途中割り込みとコプロセッサプロトコル違反を擬似的に再現します。
Human68k uses the Timer-D interrupt to perform context switches, but it does not account for the coprocessor mid-instruction interrupt. As a result, on an X68030 equipped with a floating-point coprocessor, running a program that uses floating-point instructions alongside a program running in the background may cause a coprocessor protocol violation. This results in the message "Error ($000D) occurred" being displayed, forcing the program to terminate. This issue can be avoided by using @yunkya2's bgenabler.x instead of specifying PROCESS= in CONFIG.SYS. Human68k は Timer-D 割り込みを使用してコンテキストスイッチを行いますが、コプロセッサ命令途中割り込みの存在が考慮されていません。 そのため、浮動小数点コプロセッサを載せた X68030 で、浮動小数点命令を使用するプログラムとバックグラウンドで動作するプログラムを共存させると、コプロセッサプロトコル違反が発生し、「エラー ($000D) が発生しました」と表示されて、プログラムの中止を余儀なくされることがあります。 この問題は、CONFIG.SYS に PROCESS= を書く代わりに、@yunkya2 さんの bgenabler.x を使用することで回避できます。

This is a program designed to intentionally trigger a coprocessor protocol violation on an X68030 equipped with a floating-point coprocessor. A message stating "Error ($000D) has occurred" will appear; please press the A key to abort the program. 浮動小数点コプロセッサを載せた X68030 で、コプロセッサプロトコル違反を意図的に発生させるプログラムです。 「エラー ($000D) が発生しました」と表示されるので、A キーで中止してください。
The issue where an ArrayIndexOutOfBoundsException might occur while Mercury-Unit V4 is running has been fixed. Mercury-Unit V4 の動作中に ArrayIndexOutOfBoundsException が出ることがある不具合を修正しました。
Dragging the dotted line (divider) at the top of the communication settings pane upward will narrow the connection pane and widen the terminal pane. You can view the hidden portion of the connection pane by using the scroll bar. 通信設定の枠の上側にある凹凸線 (ディバイダ) を上にドラッグすると、接続の枠が狭くなり、ターミナルの枠が広くなります。 接続の枠の隠れた部分はスクロールバーを操作すると見えます。
The modification section has been removed. The 7.3728 MHz checkbox has been moved to the SCC menu. 改造の枠を廃止しました。7.3728MHz チェックボックスはSCC メニューへ移動しました。
The transfer section has been changed to the command section. 転送の枠をコマンドの枠に変更しました。
The set clock button has been added to the command section. When the date and time on a real X68000 machine are incorrect -- for example, due to a dead SRAM battery -- this button allows you to set the date and time using the DATE and TIME commands with a single click. コマンドの枠に時計合わせボタンを追加しました。SRAM の電池切れなどで X68000 実機の日時が合っていないとき、DATE コマンド TIME コマンドで日時を合わせる作業をボタン 1 つで済ませます。
The default communication setting has been changed from 38400 bps to 19200 bps. 通信設定のデフォルトを 38400bps から 19200bps に変更しました。
The SCC menu has been added to the config menu. 設定メニューにSCC メニューを追加しました。
These are the same as the 7.3728 MHz checkbox found in the RS-232C and terminal window. Select the SCC oscillator frequency from 5 MHz or 7.3728 MHz. The default is 5 MHz. This setting is saved in the parameter sccfreq. これらはRS-232C とターミナルウインドウにあった 7.3728MHz チェックボックスと同じものです。SCC のオシレータの周波数を 5MHz と 7.3728MHz から選びます。 デフォルトは 5MHz です。 この設定はパラメータ sccfreqに保存されます。
Communication is not possible at transfer speeds that are not supported by the host machine's serial port. ホストマシンのシリアルポートが対応していない転送速度では通信できません。
| mode モード | SCC set value SCC 設定値 | at 5MHz 5MHz のとき | at 7.3728MHz 7.3728MHz のとき | ||||
| nominal 公称値 | theoretical 理論値 | error 誤差 | nominal 公称値 | theoretical 理論値 | error 誤差 | ||
| 0 | 2081 | 75.000 | 75.012 | +0.000 | 112.500 | 110.610 | -0.017 |
| 1 | 1040 | 150.000 | 149.952 | -0.000 | 225.000 | 221.113 | -0.017 |
| 2 | 519 | 300.000 | 299.904 | -0.000 | 450.000 | 442.226 | -0.017 |
| 3 | 258 | 600.000 | 600.962 | +0.002 | 900.000 | 886.154 | -0.015 |
| 4 | 128 | 1200.000 | 1201.923 | +0.002 | 1800.000 | 1772.308 | -0.015 |
| 5 | 63 | 2400.000 | 2403.846 | +0.002 | 3600.000 | 3544.615 | -0.015 |
| 6 | 31 | 4800.000 | 4734.848 | -0.014 | 7200.000 | 6981.818 | -0.030 |
| 7 | 14 | 9600.000 | 9765.625 | +0.017 | 14400.000 | 14400.000 | 0.000 |
| 8 | 6 | 19200.000 | 19531.250 | +0.017 | 28800.000 | 28800.000 | 0.000 |
| 9 | 2 | 38400.000 | 39062.500 | +0.017 | 57600.000 | 57600.000 | 0.000 |
| 10 | 0 | 76800.000 | 78125.000 | +0.017 | 115200.000 | 115200.000 | 0.000 |
If more than 10 MB of data from main memory or high memory needs to be restored or saved at startup or shutdown, the progress will be displayed in the terminal where Java is running. 開始時と終了時にメインメモリやハイメモリの内容を 10MB 以上復元または保存するとき、Java を実行したターミナルに進捗を表示します。
Added the cache mode at startup menu to the MPU menu. MPU メニューに起動時のキャッシュモードメニューを追加しました。
This option rewrites the cache mode stored in SRAM at boot time. Although XEiJ does not have these caches physically, this setting affects the operating speed of models equipped with caches because it changes the cache miss penalty time. 起動時に SRAM にあるキャッシュモードを書き換えます。XEiJ にこれらのキャッシュの実体はありませんが、キャッシュミスペナルティの時間が変化するため、キャッシュのある機種の動作速度に影響します。
This setting is saved in the parameter cache. この設定はパラメータ cacheに保存されます。
Added the startup sound menu to the sound menu. 音声メニューに起動音メニューを追加しました。
This option rewrites the startup sound settings stored in SRAM at boot time. The feature to play a startup sound is available in IPLROM 1.3 for the X68030 and IPLROM 1.6. The feature to change the keycode for the startup sound is available in IPLROM 1.6. 起動時に SRAM にある起動音の設定を書き換えます。 起動音を鳴らす機能は X68030 の IPLROM 1.3 と IPLROM 1.6 にあります。 起動音のキーコードを変更する機能は IPLROM 1.6 にあります。
This setting is saved in the parameter stupsnd. この設定はパラメータ stupsndに保存されます。
Immediately after startup, the system may be under heavy load, so the startup sound may not play clearly. 起動直後は負荷が嵩むため、起動音が綺麗に聞こえないことがあります。
Sections that relied on the interrupt status flag during the cleanup process have been removed. (Thanks tantan) 終了処理の過程で割り込みステータスフラグに依存していた箇所を排除しました。(Thanks tantan)
Added sprdbl.x. sprdbl.xを追加しました。

sprdbl.x is a sample program for a sprite doubler written in C. sprdbl30.x is a version of that program compiled for the X68030. sprdblen.x and sprdblen30.x are English versions. You can compile it using the elf2x68k environment. sprdbl.x は C 言語で書かれたスプライトダブラーのサンプルプログラムです。sprdbl30.x はそれを X68030 用にコンパイルしたものです。sprdblen.x と sprdblen30.x は英語版です。elf2x68k の環境で make できます。
Since it supports CYNTHIA64, please run it with full pattern memory enabled. By default, it uses the sprite doubler function to increase the number of sprites from 128 to 512, and assigns and moves 512 patterns. CYNTHIA64 に対応していますので、フルパターンメモリを ON にして実行してください。 デフォルトで 128 枚のスプライトをスプライトダブラーの機能で 512 枚に増やし、512 個のパターンを割り当てて動かします。
B:\sprdbl>sprdbl.x -?
スプライトダブラーのサンプルプログラム(CYNTHIA64対応)
>sprdbl.x [オプション]
-a {動円の角度}/{定円の角度}
どちらの数も-100から100までの整数(0を除く)、省略すると17/5
-b {バンドの色}
0から65535までの整数、省略すると0
-d {スプライトの間隔の分割数}
1から1000までの整数、省略すると20
-o {定円の開始角度}
0から359までの整数、省略すると90
-p {パターンの数}
1から512までの整数、省略すると512、257以上は要CYNTHIA64
-r {動円の半径}/{定円の半径}
どちらの数も1から100までの整数、省略すると3/2
-s {実スプライトの数}
2から128までの偶数、省略すると128
-v {仮想スプライトの数}
実スプライトの数から2048まで、実スプライトの数の半分の倍数、省略すると512
B:\sprdbl>The minimum Java version requirement is displayed in the Java runtime environment information dialog. As of this writing, the latest version of OpenJDK is 26.0.1, and the minimum requirement for Homebrew compatibility is 26. (Thanks tantan) Java 実行環境の情報ダイアログに、Java のバージョンの最低要件が表示されます。 これを書いている時点で OpenJDK の最新版は 26.0.1、Homebrew に配慮した最低要件は 26 です。(Thanks tantan)
On the source code page, you can now view not only the source code for the XEiJ core but also the source code for the software in the misc directory. You can access the source code from the explanation of misc/* page. ソースコードのページで、XEiJ の本体のソースコードだけでなく、misc ディレクトリにあるソフトウェアのソースコードも閲覧できるようにしました。 misc/* の説明のページからソースコードを参照できます。
――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 の基本的なソフトウェアの無償公開に尽力された権利各社およびシャープ・プロダクツ・ユーザーズ・フォーラムの方々、美しいフォントを公開されている平木敬太郎さん、門真なむさん、実行サンプルとして使わせていただいたフリーソフトウェアの作者の方々、動作報告と応援のメッセージを寄せてくださった皆さん、ありがとうございます。