Version : TEST バージョン : TEST

Author : Makoto Kamada 作者 : Makoto Kamada

Website : ウェブサイト :

Table of contents目次

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

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

Execution environment 実行環境

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


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


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


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


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 によって変わります。

3. Past changes 過去の更新

4. Functions and features 機能と特徴

5. Execution environment 実行環境

6. Download ダウンロード

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

7. How to start 起動方法

8. Execution examples 実行サンプル

9. Try to run the NetBSD/x68k NetBSD/x68k を動かしてみる

10. Explanation of menu メニューの説明

11. Configuration file 設定ファイル

12. Parameters パラメータ

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

14. Source code ソースコード

15. Steps to compile コンパイル手順

16. About IPLROM 1.6 IPLROM 1.6 について

17. Explanation of misc/* misc/* の説明

18. Reference materials 参考資料

19. Link collection リンク集

20. 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 の基本的なソフトウェアの無償公開に尽力された権利各社およびシャープ・プロダクツ・ユーザーズ・フォーラムの方々、美しいフォントを公開されている平木敬太郎さん、門真なむさん、実行サンプルとして使わせていただいたフリーソフトウェアの作者の方々、動作報告と応援のメッセージを寄せてくださった皆さん、ありがとうございます。

21. Contact information 連絡先

Makoto Kamada

Twitter ツイッター


E-mail メール