Version : 0.25.04.08 バージョン : 0.25.04.08

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.25.04.08

Key assignments キー割り当て

Fixed a bug that prevented restoring key assignments from CSV files containing 13- to 16-bit keyCodes (especially F13-F24) when using Windows. Windows のとき 13~16 ビットの keyCode(特に F13~F24) を含む CSV ファイルからキー割り当てを復元できないバグを修正しました。

MC68010 checkbox MC68010 チェックボックス

The behavior of the MC68010 checkbox in the change the model and reset menu has been changed. It selects whether to use 68000 or 68010 when reset, not only when using the change the model and reset menu. This setting is saved in parameter mpu010. 機種を変更してリセットメニューMC68010 チェックボックスの動作を変更しました。機種を変更してリセットメニューを使う場合に限らず、リセットしたとき 68000 と 68010 のどちらを使うか選択します。この設定はパラメータ mpu010に保存されます。

IPLROM 1.6 (2025-03-23)

Fixed a bug that address errors were not displayed correctly in the error display at startup when in 68060 mode. 68060 モードのとき起動時のエラー表示でアドレスエラーが正しく表示されないバグを修正しました。

Errors 4-11 are now displayed as words such as Illegal instruction instead of numbers in the error display at startup. 起動時のエラー表示でエラー 4~11 が番号ではなく Illegal instruction などの言葉で表示されるようにしました。

IOCS _CRTMOD had added a process to set dummy values in the sprite control registers when the lower 5 bits of R20 of CRTC are %1xx1x, but this process was removed because it interferes when sprites displayed at 768x512. IOCS _CRTMOD に CRTC の R20 の下位 5bit が %1xx1x のときスプライト制御レジスタにダミーの値を設定する処理が追加されていましたが、768x512 でスプライトを表示するとき邪魔なので削除しました。

Moved the position of the cache flush patch in the SASI BIOS before the start of the DMA transfer from just before the start of the DMA transfer to just before the last byte of the command is sent. SASI BIOS の DMA 転送開始前のキャッシュフラッシュのパッチの位置を、DMA 転送開始の直前から、コマンドの最後の 1 バイトを送信する直前に移動させました。

Added a process to IOCS _CRTMOD to write $60 when the content of $00ED0095 is not $6x. This is to reduce the possibility that the startup screen is not displayed or LCD mode is unexpectedly enabled because $00ED0095 is not initialized when IPLROM 1.6 is installed in an actual X68000 device for the first time. When you install IPLROM 1.6 on an actual X68000 machine for the first time, please boot the machine while pressing the N key (CRT mode) or the L key (LCD mode) to check the startup screen. IOCS _CRTMOD に $00ED0095 の内容が $6x でないとき $60 を書き込む処理を加えました。X68000 実機に IPLROM 1.6 を初めて載せたときに、$00ED0095 が初期化されていないために起動画面非表示や LCD モードが予期せず有効になってしまう可能性を下げるためです。X68000 実機に IPLROM 1.6 を初めて載せたときは、N キー (CRT モード) または L キー (LCD モード) を押しながら起動して、起動画面を確認するようにしてください。

crtmod16.x/crtmrb16.x (2025-03-23)

Same changes as IPLROM 1.6 (2025-03-23). IPLROM 1.6 (2025-03-23) と同じ変更を加えました。

ROM image file parameters ROM イメージファイルのパラメータ

When IPLROM 1.6 is deployed in a 256KB configuration, parameters that overwrite only a portion of it instead of the whole of it are disabled. IPLROM 1.6 が 256KB の構成で配置されているとき、その全体ではなく一部分だけを上書きするようなパラメータは無効になります。

The following specification is valid because it overwrites the entire IPLROM 1.6. 以下の指定は IPLROM 1.6 の全体を上書きするので有効です。

Disassemble list 逆アセンブルリスト

Corrected display of base displacement for full-format PC indirect addressing. フルフォーマット PC 間接アドレッシングのベースディスプレースメントの表示を修正しました。

ROM Debugger 3.60 (2025-03-23) ROM デバッガ 3.60 (2025-03-23)

Updated ROM Debugger 3.60 included in IPLROM 1.6. IPLROM 1.6に含まれるROM デバッガ 3.60を更新しました。

CON mode has been added. The ROM debugger is operated from a terminal connected via RS-232C in the conventional AUX mode, but in CON mode, the ROM debugger is operated from the X68000 screen and keyboard. CON モードを追加しました。従来の AUX モードのときは RS-232C 経由で接続されたターミナルから ROM デバッガを操作しますが、CON モードのときは X68000 の画面とキーボードで ROM デバッガを操作します。V コマンドで AUX モードと CON モードを切り替えられます。

The ROM debugger start flag ($00ED0058) in SRAM is set to $00 for OFF, $FF for AUX, and $01 for CON. switch d=off sets the flag to OFF, switch d=on sets the flag to AUX. SRAM にある ROM デバッガ起動フラグ ($00ED0058) の設定値は、$00 が OFF、$FF が AUX、$01 が CON です。switch d=off でフラグが OFF に、switch d=on でフラグが AUX になります。

If the OPT.2 key is pressed at startup, the flag changes to AUX if the flag was OFF or CON, and the flag changes to OFF if the flag was AUX. If the D key is pressed at startup, the flag changes to CON if the flag was OFF or AUX, and the flag changes to OFF if the flag was CON. Note that the effect of the OPT.2 key has changed from temporary to permanent. 起動時に OPT.2 キーが押されていると、フラグが OFF または CON だったときはフラグが AUX に、フラグが AUX だったときはフラグが OFF に変化します。起動時に D キーが押されていると、フラグが OFF または AUX だったときはフラグが CON に、フラグが CON だったときはフラグが OFF に変化します。OPT.2 キーの効果が一時的なものから永続的なものに変更されていることに注意してください。

ROM debugger 2.32 and DB.X 3.00/3.02 defects listed here have been largely fixed in db350.x and ROM Debugger 3.60. こちらに記載されている ROM デバッガ 2.32 と DB.X 3.00/3.02 の不具合は db350.x と ROM デバッガ 3.60 では概ね修正されています。

ROM debugger start flag menu ROM デバッガ起動フラグメニュー

The ROM debugger start flag checkbox in the debug menu has been changed to the ROM debugger start flag menu. デバッグメニューの ROM デバッガ起動フラグチェックボックスをROM デバッガ起動フラグメニューに変更しました。

Select which mode to overwrite the ROM debugger start flag in SRAM when reset. リセットしたとき SRAM にある ROM デバッガ起動フラグにどのモードを上書きするか選択します。

This setting is stored in the parameter romdb. この設定はパラメータ romdbに保存されます。

Follow settings in SWITCH.X radio button SWITCH.X の設定に従うラジオボタン

No overwrite. 上書きしません。

OFF radio button OFF ラジオボタン

Overwrite OFF. OFF を上書きします。

AUX radio button AUX ラジオボタン

Overwrite AUX. AUX を上書きします。

CON (when using IPLROM 1.6) radio button CON (IPLROM 1.6 使用時) ラジオボタン

Overwrite CON when IPLROM 1.6, otherwise AUX. IPLROM 1.6 のときは CON を、さもなくば AUX を上書きします。

db350.bfd

Added db350.bfd. db350.bfdを追加しました。

db350.bfd is a binary diff file to make db350.x from DB.X. Run bup db350.bfd in the directory where you put DB.X 3.00 to make db350.x. db350.bfd は DB.X 3.00 から db350.x を作るバイナリ差分ファイルです。DB.X 3.00 を置いたディレクトリで bup db350.bfd を実行すると db350.x ができます。

bup.x can be found here. bup.x はこちらにあります。

db350.x is a byproduct of ROM Debugger 3.60, a sort of child between DB.X 3.00 and ROM Debugger 3.60. db350.x は ROM デバッガ 3.60 の副産物で、DB.X 3.00 と ROM デバッガ 3.60 の間の子のようなものです。

ROM debugger 2.32 and DB.X 3.00/3.02 defects listed here have been largely fixed in db350.x and ROM Debugger 3.60. こちらに記載されている ROM デバッガ 2.32 と DB.X 3.00/3.02 の不具合は db350.x と ROM デバッガ 3.60 では概ね修正されています。

Sprite screen スプライト画面

Bit 2 of the 4th word (priority) of the sprite scroll register, which had not been implemented, is now implemented. Pattern data is ignored and a square (tofu) filled with palette code 15 is displayed. 未実装だったスプライトスクロールレジスタの 4 ワード目 (プライオリティ) のビット 2 を実装しました。パターンデータが無視されてパレットコード 15 で埋め尽くされた四角形 (豆腐) が表示されます。

prwbit2.x

prwbit2.png

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

Check the operation of bit 2 of the 4th word (priority) of the sprite scroll register. スプライトスクロールレジスタの 4 ワード目 (プライオリティ) のビット 2 の動作を確認します。

Modification menu 改造メニュー

Fixed a problem that sprites displayed in 768x512 does not appear in the modification menu. (Thanks みゆ🌹ฅ^•ω•^ฅ) 改造メニューに 768x512 でスプライトを表示が表示されない問題を修正しました。(Thanks みゆ🌹ฅ^•ω•^ฅ)

Seamless mouse mode シームレスマウスモード

Fixed a problem in which the apparent Y-coordinate of the mouse cursor on the X68000 was doubled when the CRTC reads the raster twice. On Windows, the host mouse cursor disappears, so the X68000 can be operated without any problem even if it is doubled, but on macOS, there was a problem when the host mouse cursor did not disappear. (Thanks megazone-mc21) CRTC がラスタを 2 度読むとき X68000 のマウスカーソルの見かけの Y 座標が 2 倍になる問題を修正しました。Windows ではホストのマウスカーソルが消えるので 2 倍になっていても問題なく操作できましたが、macOS でホストのマウスカーソルが消えないとき支障がありました。(Thanks megazone-mc21)

crtmodtest.x (2025-04-01)

Fixed a problem that caused screen distortion when running in environments other than IPLROM 1.6/CRTMOD16.X. IPLROM 1.6/CRTMOD16.X 以外の環境で動かすと画面が乱れる問題を修正しました。

Number of sprites スプライトの枚数

The number of sprites can be selected from 128, 256, 504, and 1016 in the number of sprites menu in the modification menu. Changes will take effect after the reset. This setting is saved in the parameter numspr. 改造メニュースプライトの枚数メニュースプライトの枚数を 128、256、504、1016 から選べます。 変更はリセット後に反映されます。 この設定はパラメータ numsprに保存されます。

There are 1024 sprites numbered from 0 to 1023, but 8 sprites numbered from 256 to 263 are missing. In terms of the sprite scroll register addresses, $00EB0000 to $00EB1FFF, of which $00EB0800 to $00EB083F are in the range of missing numbers. Since there are control registers in the missing range, be careful not to write to them as if they were sprite scroll registers. スプライトの番号は 0 番から 1023 番までの 1024 個ですが、256 番から 263 番までの 8 個は欠番です。 スプライトスクロールレジスタのアドレスで言うと、$00EB0000~$00EB1FFF のうち $00EB0800~$00EB083F が欠番の範囲です。 欠番の範囲には制御レジスタがあるので、スプライトスクロールレジスタのつもりで書き込まないように注意してください。

The 256 sprites checkbox in the modification menu has been eliminated. The parameter dblspr has been eliminated. 改造メニューにあった 256 枚のスプライトチェックボックスを廃止しました。 パラメータ dblspr を廃止しました。

sprdrv.x (2025-04-07)

Added extended sprite and background driver sprdrv.x. 拡張スプライト・バックグラウンドドライバ sprdrv.x を追加しました。

Enables XEiJ extensions to be used with sprite and background related IOCS calls. Processes that have enabled extensions with _SP_INIT will disable them when they exit. See sprdrv.s for details. スプライト・バックグラウンド関連の IOCS コールで XEiJ の拡張機能を使用できるようにします。_SP_INIT で拡張機能を有効にしたプロセスが終了するとき拡張機能を無効にします。 詳細は sprdrv.s を参照してください。

Insufficient specification review or behavior check. Please let me know when you think the specification or behavior is not appropriate. 仕様の検討や動作の確認が不十分です。 仕様や動作が適切でないと思われるときはご指摘ください。

spr1016test.x

spr1016test.png

spr1016test.x is added. spr1016test.x を追加しました。

This is a test program to display 1016 sprites using only IOCS calls with sprdrv.x. Run it with the following settings. sprdrv.x を使って IOCS コールだけで 1016 枚のスプライトを表示するテストプログラムです。 以下の設定で実行してください。

0.25.03.08

Data break point データブレークポイント

Added read and write conditions to data break points. データブレークポイントにリードとライトの条件を追加しました。

Fixed a bug in the process of resetting the overhead to zero on pages where data break points no longer exist due to data break points being disabled. データブレークポイントが無効化されたことでデータブレークポイントが存在しなくなったページのオーバーヘッドをゼロに戻す処理のバグを修正しました。

4096 patterns 4096 個のパターン

Added 4096 patterns. 4096 個のパターンを追加しました。

If the 4096 patterns checkbox in the modification menu is checked and reset, 4096 patterns can be defined. 改造メニュー4096 個のパターンチェックボックスを ON にしてリセットすると、4096 個のパターンを定義できるようになります。

This setting is stored in the parameter sprbank. この設定はパラメータ sprbankに保存されます。

Text area shift テキストエリアの移動

Shift the text area from $00EBC000-$00EBFFFF to $00EB4000-$00EB7FFF so that you can define 256 patterns even if you use 2 planes of text area. テキストエリアを $00EBC000~$00EBFFFF から $00EB4000~$00EB7FFF へ移動させて、テキストエリアを 2 面使っていてもパターンを 256 個定義できるようにします。

Memory map of sprite screenスプライト画面のメモリマップ
AddressアドレスBefore text area shiftテキストエリアの移動前After text area shiftテキストエリアの移動後
256x256/512x512768x512256x256/512x512768x512
$00EB0000
:
$00EB03FF
Sprite 0 to 127スプライト 0~127Bus errorバスエラーSprite 0 to 127スプライト 0~127Bus errorバスエラー
$00EB0400
:
$00EB07FF
Sprite 128 to 255 (extended)スプライト 128~255(拡張)Sprite 128 to 255 (extended)スプライト 128~255(拡張)
$00EB0800
:
$00EB0815
Control registers制御レジスタ
$00EB0816
:
$00EB3FFF
Unused未使用
$00EB4000
:
$00EB5FFF
Unused未使用Text area 0テキストエリア 0Bus errorバスエラー
$00EB6000
:
$00EB7FFF
Text area 0テキストエリア 1
$00EB8000
:
$00EBBFFF
Pattern 0 to 127パターン 0~127Bus errorバスエラーPattern 0 to 255パターン 0~255
$00EBC000
:
$00EBDFFF
Pattern 128 to 191パターン 128~191Text area 0テキストエリア 0
$00EBE000
:
$00EBFFFF
Pattern 192 to 255パターン 192~255Text area 1テキストエリア 1Text area 1テキストエリア 1
Referencing patterns from sprite and text areas スプライトエリアとテキストエリアからのパターンの参照

Increase the number of patterns that can be referenced from 256 to 1024 or 4096 by changing the sprite and text areas as follows

スプライトエリアとテキストエリアを以下のように変更することで、参照できるパターンの数を 256 個から 1024 個または 4096 個に増やします。

Sprite area (256 patterns)スプライトエリア (256 個のパターン)
1514131211109876543210
+0X 座標
+2Y 座標
+4Up/Down上下Left/Right左右Palette blockパレットブロックPattern numberパターン番号
+6Priorityプライオリティ
:
Sprite area (1024 patterns)スプライトエリア (1024 個のパターン)
1514131211109876543210
+0X 座標
+2Y 座標
+4Up/Down上下Left/Right左右Bank numberバンク番号Palette blockパレットブロックPattern numberパターン番号
+6Priorityプライオリティ
:
Sprite area (4096 patterns without inversion)スプライトエリア (4096 個のパターン、反転なし)
1514131211109876543210
+0X 座標
+2Y 座標
+4Bank numberバンク番号Palette blockパレットブロックPattern numberパターン番号
+6Priorityプライオリティ
:
Sprite area (4096 patterns with inversion)スプライトエリア (4096 個のパターン、反転あり)
1514131211109876543210
+0X 座標
+2Y 座標
+4Bank numberバンク番号Palette blockパレットブロックPattern numberパターン番号
+6Up/Down上下Left/Right左右Priorityプライオリティ
:
Text area (256 patterns)テキストエリア (256 個のパターン)
1514131211109876543210
Up/Down上下Left/Right左右Palette blockパレットブロックPattern numberパターン番号
:
Text area (1024 patterns)テキストエリア (1024 個のパターン)
1514131211109876543210
Up/Down上下Left/Right左右Bank numberバンク番号Palette blockパレットブロックPattern numberパターン番号
:
Text area (4096 patterns)テキストエリア (4096 個のパターン)
1514131211109876543210
Bank numberバンク番号Palette blockパレットブロックPattern numberパターン番号
:

When the number of patterns is increased to 4096, the up/down and left/right inversions are eliminated. However, if there is no need to save patterns, it is considered sufficient to define inverted patterns as needed. 4096 個にしたとき上下左右の反転がなくなりますが、パターンを節約する必要がなければ、必要に応じて反転したパターンを定義すればよいと考えられます。

Replacing the inversion instructions with a bank selection allows you to define the result of the inversion. For example, shadows of patterns that used to be done by inversion can be adjusted simply by changing the definition process. 反転の指示をバンク選択に置き換えることで、反転の結果を定義できるようになります。例えば、反転で済ませていたパターンの影の調整が、定義の処理の変更だけで行えます。

Expansion of pattern area パターンエリアの拡張

The pattern area ($00EB8000-$00EBFFFF) is expanded 16 times using bank switching, increasing the number of patterns that can be defined from 256 to 4096. パターンエリア ($00EB8000~$00EBFFFF) をバンク切り替えを用いて 16 倍に拡張することで、定義できるパターンの数を 256 個から 4096 個に増やします。

The weakness of bank switching is random access, but since a pattern is 16 or 64 words, even if writes increase by one word per pattern, the impact is expected to be limited. バンク切り替えの弱点はランダムアクセスですが、1 パターンが 16 または 64 ワードなので、書き込みが 1 パターンあたり 1 ワード増えたとしても影響は限定的と考えられます。

Adding registers レジスタの追加

Added bank control register ($00EB0812) and bank select register ($00EB0814). バンク制御レジスタ ($00EB0812) とバンク選択レジスタ ($00EB0814) を追加します。

Bank control register ($00EB0812)バンク制御レジスタ ($00EB0812)
1514131211109876543210
ModeモードShift移動
Modeモード
ModeモードNumber of patternsパターンの数Sprite inversionスプライトの反転Text inversionテキストの反転
0256Availableできる
11024
24096Not availableできない
3AvailableできるNot availableできない
Shift移動
Shift移動Text area shiftテキストエリアの移動Range of the text areaテキストエリアの範囲
0Not doしない$00EBC000-$00EBFFFF$00EBC000~$00EBFFFF
1Doする$00EB4000-$00E7FFFF$00EB4000~$00EB7FFF
Bank select register ($00EB0814)バンク選択レジスタ ($00EB0814)
1514131211109876543210
Bank numberバンク番号
Bank numberバンク番号
Bank numberバンク番号Range of pattern numbers accessible in $00EB8000-$00EBFFFF$00EB8000~$00EBFFFF でアクセスできるパターン番号の範囲
00 to 255†0~255†
1256 to 511256~511
2512 to 767512~767
3768 to 1023768~1023
41024 to 12791024~1279
51280 to 15351280~1535
61536 to 17911536~1791
71792 to 20471792~2047
82048 to 23032048~2303
92304 to 25592304~2559
102560 to 28152560~2815
112816 to 30712816~3071
123072 to 33273072~3327
133328 to 35833328~3583
143584 to 38393584~3839
153840 to 40953840~4095

†The number of patterns that can be accessed in bank 0 is 256, but if one plane is used without text area shift, the number is reduced to 192, and if two planes are used, the number is reduced to 128. †バンク 0 でアクセスできるパターンは 256 個ですが、テキストエリアを移動せず 1 面使うと 192 個に、同じく 2 面使うと 128 個に減ります。

Pattern numbers from 0 to 4095 can be written to the bank select register without shifting. 0~4095 のパターン番号をシフトせずにバンク選択レジスタへ書き込めます。

To prevent later programs from malfunctioning, set both back to 0 when you are finished using them. 後のプログラムが誤動作しないように、どちらも使い終わったら 0 に戻してください。

Pseudo graphic screen 疑似グラフィック画面

By laying each of the 4096 patterns in the background one by one, it can be used as a third 1024x1024 dot 16-color graphic screen. バックグラウンドに 4096 個のパターンを 1 個ずつ敷き詰めることで、3 枚目の 1024x1024 ドット 16 色のグラフィック画面として使うことができます。

Supplemental information on text area テキストエリアに関する補足

The text area before shift and the second half of bank 0 in the pattern area have the same address but different entities. Data written to the text area before shift is written to both the text area and the second half of bank 0. Data read from the text area before shift is read from the second half of bank 0. Data written to the text area after shift cannot be read from the text area before shift because it has not been written to the second half of bank 0. 移動前のテキストエリアと、パターンエリアのバンク 0 の後半は、アドレスが同じですが実体が違います。移動前のテキストエリアへ書き込んだデータは、テキストエリアと、バンク 0 の後半の両方へ書き込まれます。移動前のテキストエリアから読み出したデータは、バンク 0 の後半から読み出されます。移動後のテキストエリアへ書き込んだデータは、バンク 0 の後半へ書き込まれていないので、移動前のテキストエリアから読み出せません。

When bank 1 or higher is selected, the text area before shift will not be visible. バンク 1 以上を選択すると、移動前のテキストエリアは見えなくなります。

Other その他

Standard IOCS calls do not support 4096 patterns. 標準の IOCS コールは 4096 個のパターンに対応していません。

pat4096test.x

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

pat4096test.png

Test 256 sprites and 4096 patterns. 256 枚のスプライト4096 個のパターンをテストします。

Turn on the 256 sprites checkbox and the 4096 patterns checkbox in the modification menu, and reset before executing. 改造メニュー256 枚のスプライトチェックボックス4096 個のパターンチェックボックスを ON にしてリセットしてから実行します。

Press any key to exit. 何かキーを押すと終了します。

It does not work on the actual X68000 machine. X68000 実機では動きません。

Sprites displayed in 768x512 768x512 でスプライトを表示

Added sprites displayed in 768x512. 768x512 でスプライトを表示を追加しました。

If the sprites displayed in 768x512 checkbox in the modification menu is checked and reset, the sprite screen can be displayed in 768x512. 改造メニュー768x512 でスプライトを表示チェックボックスを ON にしてリセットすると、768x512 でスプライト画面を表示できるようになります。

This setting is stored in the parameter spr768x512. この設定はパラメータ spr768x512に保存されます。

The restriction that the sprite screen cannot be displayed when the lower 5 bits of R20 of CRTC are %1xx1x is removed. CRTC の R20 の下位 5 ビットが %1xx1x のときスプライト画面を表示できないという制限を解除します。

Bits 4, 1, and 0 of R20 of CRTC select the dot clock (oscillator and frequency divider ratio). For %1xx1x, the dot clock is 25 MHz or higher, which corresponds to 768x512, 1024x424, 1024x848, and 640x480 in CRTMOD 16 to 19 in standard screen mode. CRTC の R20 のビット 4,1,0 はドットクロック (オシレータと分周比) を選択します。%1xx1x はドットクロックが 25MHz 以上で、標準の画面モードでは CRTMOD 16~19 の 768x512、1024x424、1024x848、640x480 が該当します。

This limitation is so strong that even if one wanted to display a sprite screen at 768x512, just accessing the sprite area, pattern area, or text area would cause a bus error and there is no way to solve the problem. この制限は強く、768x512 でスプライト画面を表示したくてもスプライトエリア、パターンエリア、テキストエリアにアクセスしただけでバスエラーが発生してしまい、取り付く島もありません。

By removing this limitation, the sprite screen can be displayed even in 768x512. この制限を解除することで、768x512 でもスプライト画面を表示できるようになります。

spr768x512.x

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

spr768x512.png

Test 256 sprites, 4096 patterns and sprites displayed in 768x512. 256 枚のスプライト4096 個のパターン768x512 でスプライトを表示をテストします。

Turn on the 256 sprites checkbox, the 4096 patterns checkbox, and the sprites displayed in 768x512 checkbox in the modification menu, and reset before executing. 改造メニュー256 枚のスプライトチェックボックス4096 個のパターンチェックボックス768x512 でスプライトを表示チェックボックスを ON にしてリセットしてから実行します。

Press any key to exit. 何かキーを押すと終了します。

It does not work on the actual X68000 machine. X68000 実機では動きません。

Text screen テキスト画面

When the real screen size is 1024x1024 and the text screen and the graphic screen are displayed and the scroll position in the X direction of either is not a multiple of 8, the scroll position in the X direction of the text screen shifts by 1 to 7 dots at the position where the real screen coordinates in the X direction of the graphic screen cross a multiple of 512. This bug has been fixed. 実画面サイズが 1024x1024 で、テキスト画面とグラフィック画面が表示されていて、どちらかの X 方向のスクロール位置が 8 の倍数ではないとき、グラフィック画面の X 方向の実画面座標が 512 の倍数を跨ぐ位置で、テキスト画面の X 方向のスクロール位置が 1~7 ドットずれるバグを修正しました。

BG1 displayed in 512x512 512x512 で BG1 を表示

Added BG1 displayed in 512x512. 512x512 で BG1 を表示を追加しました。

If the BG1 displayed in 512x512 checkbox in the modification menu is checked and reset, the BG1 can be displayed in 512x512. 改造メニュー512x512 で BG1 を表示チェックボックスを ON にしてリセットすると、512x512 で BG1 を表示できるようになります。

This setting is stored in the parameter spr512bg1. この設定はパラメータ spr512bg1に保存されます。

Remove the limitation that only one background plane can be displayed in 512x512. It is possible to display two planes of background in 512x512 as well as in 256x256. 512x512 のときはバックグラウンドを 1 面しか表示できないという制限を解除します。256x256 のときと同様に 512x512 のときもバックグラウンドを 2 面表示できるようになります。

hypotrochoid.x

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

hypotrochoid.png

Draw a hypotrochoid on the pseudo graphic screen (background with 4096 patterns laid out). Blue (S) and purple (S) are sprite screens (BG0 and BG1), red (T) is a text screen, and green (G) is a graphic screen. 疑似グラフィック画面 (4096 個のパターンを敷き詰めたバックグラウンド) にハイポトロコイドを描きます。青 (S) と紫 (S) はスプライト画面 (BG0 と BG1)、赤 (T) はテキスト画面、緑 (G) はグラフィック画面です。

Turn on the the 4096 patterns checkbox, the sprites displayed in 768x512 checkbox, and the BG1 displayed in 512x512 checkbox in the modification menu, and reset before executing. 改造メニュー4096 個のパターンチェックボックス768x512 でスプライトを表示チェックボックス512x512 で BG1 を表示チェックボックスを ON にしてリセットしてから実行します。

Press BREAK/CTRL+C/ESC key to exit, other keys to stop during operation. While stopped, press ENTER key to resume and other keys to advance frame. BREAK/CTRL+C/ESC キーで終了、動作中はその他のキーで停止。停止中は ENTER キーで再開、その他のキーでコマ送りします。

It does not work on the actual X68000 machine. X68000 実機では動きません。

0.25.02.08

Execution environment 実行環境

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

DMAC

Removed the process of clearing the PCT when a 1 is written to the PCT of the CSR. CSR の PCT に 1 が書き込まれたとき PCT をクリアする処理を外しました。

OPM log OPM ログ

Fixed a bug that could cause a crash if the start playback button was pressed during playback. 再生中に再生開始ボタンを押すとクラッシュすることがあるバグを修正しました。

Key repeat キーリピート

Fixed a bug that caused extra key repeats when reading the UDR more than once in the key-input interrupt routine. The method of processing key repeats has been changed from being done in MFP to using TimerTask. キー入力割り込みルーチンで UDR を 2 回以上読むと余計なキーリピートが発生するバグを修正しました。 キーリピートの処理を MFP の中で済ませる方法から TimerTask を使う方法に変更しました。

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