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/

Table of contents目次

  1. Introductionはじめに
  2. Recent changes 最近の更新
  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.26.07.11 TEST

This is a test version. New features may be substantially changed or removed in the future. これはテスト版です。 新しい機能は今後大幅に変更されるか廃止される可能性があります。

Contrast control コントラストコントロール

Fixed an issue where an ArrayIndexOutOfBoundsException could occur in the contrast control. コントラストコントロールで ArrayIndexOutOfBoundsException が出ることがある不具合を修正しました。

Malfunction screen (experimental) 故障画面 (実験中)

Added the malfunction screen (experimental). 故障画面 (実験中)を追加しました。

mlf1.png

mlf2.png

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 チップとデータの壊し方を選択すると画面にノイズが現れます。

Caution 警告

Due to insufficient information, the noise may not be displayed in the correct position. If you notice any screen errors, please report them. 情報不足のためノイズが正しい位置に表示されない可能性があります。 表示が間違っていることに気づいた方はご報告をお願いいたします。

Multiport RAM chip section マルチポート RAM チップセクション

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 チップの設定はパラメータmlfmodelmlfchipに保存されます。

Address within chip section チップ内アドレスセクション

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. チップ内アドレスの設定はパラメータmlfzeromlfoneに保存されます。

Data corruption section データ破壊セクション

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. データ破壊の設定はパラメータmlflowmlfhighmlffrozenおよびmlfdynamicに保存されます。

0.26.07.08

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

The issue where the set clock button was unresponsive has been fixed. 時計合わせボタンが反応しない不具合を修正しました。

Floating-point instruction 浮動小数点命令

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 に、それぞれ変更しました。

Coprocessor mid-instruction interrupt and coprocessor protocol violation コプロセッサ命令途中割り込みとコプロセッサプロトコル違反

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 を使用することで回避できます。

  1. GitHub - yunkya2/bgenabler: Background Task Enabler for X680x0 · GitHub

cpv.x

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

cpv.png

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 キーで中止してください。

Mercury-Unit V4

The issue where an ArrayIndexOutOfBoundsException might occur while Mercury-Unit V4 is running has been fixed. Mercury-Unit V4 の動作中に ArrayIndexOutOfBoundsException が出ることがある不具合を修正しました。

0.26.06.08

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

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 に変更しました。

SCC menu SCC メニュー

The SCC menu has been added to the config menu. 設定メニューSCC メニューを追加しました。

5 MHz radio button and 7.3728 MHz radio button 5MHz ラジオボタンと 7.3728MHz ラジオボタン

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. ホストマシンのシリアルポートが対応していない転送速度では通信できません。

Nominal vs. theoretical baud rate ボーレートの公称値と理論値の比較
mode モード SCC set value SCC 設定値 at 5MHz 5MHz のとき at 7.3728MHz 7.3728MHz のとき
nominal 公称値 theoretical 理論値 error 誤差 nominal 公称値 theoretical 理論値 error 誤差
0208175.00075.012+0.000112.500110.610-0.017
11040150.000149.952-0.000225.000221.113-0.017
2519300.000299.904-0.000450.000442.226-0.017
3258600.000600.962+0.002900.000886.154-0.015
41281200.0001201.923+0.0021800.0001772.308-0.015
5632400.0002403.846+0.0023600.0003544.615-0.015
6314800.0004734.848-0.0147200.0006981.818-0.030
7149600.0009765.625+0.01714400.00014400.0000.000
8619200.00019531.250+0.01728800.00028800.0000.000
9238400.00039062.500+0.01757600.00057600.0000.000
10076800.00078125.000+0.017115200.000115200.0000.000

Configuration file 設定ファイル

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 を実行したターミナルに進捗を表示します。

Cache mode at startup 起動時のキャッシュモード

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に保存されます。

Startup sound 起動音

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. 起動直後は負荷が嵩むため、起動音が綺麗に聞こえないことがあります。

Cleanup 終了処理

Sections that relied on the interrupt status flag during the cleanup process have been removed. (Thanks tantan) 終了処理の過程で割り込みステータスフラグに依存していた箇所を排除しました。(Thanks tantan)

sprdbl.x

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

sprdbl.png

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>

Java version Java のバージョン

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)

Source code page ソースコードのページ

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/* の説明のページからソースコードを参照できます。

3. Past changes 過去の更新

4. Download ダウンロード

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

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 メール

E-mail