Version : 0.25.01.08 バージョン : 0.25.01.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 つでも誰かの役に立つことがあれば公開する意味があると思っています。
You can change the X68000 logo on the IPLROM 1.6 startup screen. Specify the file name of the TEXTPUT format data or the ROM image file name in the parameter x68000logo. The logo height is 16 dots, the standard width is 112 dots, and the upper limit is 208 dots. If the logo width is larger than the standard, the string "SERIES" will not be displayed. To use the 060turbo logo, the ROM of the actual 060turbo machine is required. IPLROM 1.6 の起動画面の X68000 ロゴを変更できます。TEXTPUT 形式のデータのファイル名または ROM イメージファイル名を、パラメータ x68000logoに指定します。 ロゴの高さは 16 ドット、幅は標準が 112 ドット、上限が 208 ドットです。 ロゴの幅が標準より大きいとき、文字列「SERIES」は表示されません。060turbo のロゴにするには 060turbo 実機の ROM が必要です。
You can change the style of the IPLROM 1.6 startup screen. The proportional pitch is 1, centered is 2, with gaps is 4, and the sum of these is specified in the parameter iplrom16style. The default is 7. IPLROM 1.6 の起動画面のスタイルを変更できます。 プロポーショナルピッチを 1、中央寄せを 2、隙間ありを 4 として、それらの合計をパラメータ iplrom16styleに指定します。 デフォルトは 7 です。
Fixed the behavior of the escape sequence "ESC = r c" in ppcon.x. ppcon.xのエスケープシーケンス「ESC = r c」の動作を修正しました。
RS-232C transmit buffer empty interrupt is implemented. The transmit interrupt output mode of bsio.x 0.21 is available. RS-232C の送信バッファ空割り込みを実装しました。bsio.x 0.21 の送信割り込み出力モードを使用できます。
;'0'~'9'を200個と$0D,$0A、最後に$1Aを送信する ;bsio.x -iのとき直ちに終了することを確認する .include doscall.mac .include iocscall.mac @@: IOCS _OSNS232C tst.l d0 beq @b moveq.l #'0',d6 moveq.l #10-1,d5 5: move.w #200-1,d4 4: move.l d6,d1 IOCS _OUT232C dbra d4,4b moveq.l #$0D,d1 IOCS _OUT232C moveq.l #$0A,d1 IOCS _OUT232C addq.w #1,d6 dbra d5,5b moveq.l #$1A,d1 IOCS _OUT232C DOS _EXIT
Added text screen copy. テキスト画面コピーを追加しました。
Text screen copy is a function that reverses the character displayed as a bitmap image on the text screen to the character code and copies it to the clipboard. 8x8, 8x16, and 16x16 fonts in CGROM can be reverse-converted. Fonts loaded by "COPY XXX.FON @IOCS" etc. cannot be reverse-converted. Some characters are indistinguishable in principle, such as half-width space and full-width space. Light blue, yellow, bold, and reversal can be reverse-converted. Character attributes are not reflected in the result. Follows hardware scrolling. The coordinates of the character to be converted must be a multiple of 8x16. Characters that cannot be converted will be converted to "?". テキスト画面コピーはテキスト画面にビットマップ画像として表示されている文字を文字コードに逆変換してクリップボードにコピーする機能です。CGROM にある 8x8、8x16、16x16 のフォントを逆変換できます。 「COPY XXX.FON @IOCS」などで読み込まれたフォントは逆変換できません。 半角スペースと全角スペースのように原理上区別できない文字があります。 水色、黄色、太字、反転を逆変換できます。 文字属性は結果に反映されません。 ハードウェアスクロールに追従します。 変換する文字の座標は 8x16 の倍数に限ります。 変換できなかった文字は「?」になります。
Clicking text screen copy in the input menu or pressing Alt+Shift+C copies the text displayed in the set range to the clipboard. The range to be copied can be selected using the display area radio button, C_WIDTH radio button, entire VRAM radio button, and last enclosed area radio button in the text screen copy setting menu. This setting is saved in the parameter textcopyarea. 入力メニューのテキスト画面コピーをクリックするか、Alt+Shift+C を押すと、設定された範囲に表示されているテキストがクリップボードにコピーされます。 テキスト画面コピー設定メニューにある表示領域ラジオボタン、C_WIDTH ラジオボタン、VRAM 全体ラジオボタン、最後に囲んだ範囲ラジオボタンでコピーする範囲を選択できます。 この設定はパラメータ textcopyareaに保存されます。
When the enclose each time with mouse check box in the text screen copy setting menu is ON, pressing and dragging the left mouse button on the text screen will display a red frame, and releasing the button will copy the text inside the frame to the clipboard. This setting is saved in the parameter textcopy. テキスト画面コピー設定メニューにあるマウスで都度囲むチェックボックスが ON のとき、テキスト画面でマウスの左ボタンを押してドラッグすると赤い枠が表示され、ボタンを離すと枠の内側のテキストがクリップボードにコピーされます。 この設定はパラメータ textcopyに保存されます。
The mnemonic of the config menu has been changed from C to G, following the assignment of text screen copy to the keyboard accelerator Alt+Shift+C. キーボードアクセラレータ Alt+Shift+C にテキスト画面コピーを割り当てたことに伴い、設定メニューのニモニックを C から G に変更しました。
Added button function assignments window. ボタン機能割り当てウインドウを追加しました。
Clicking button function assignments in the input menu opens the button function assignments window. In the button function assignments window, you can assign functions to the F11 key, F12 key, wheel button, wheel scroll up, wheel scroll down, button 4, and button 5. You can select one of Shift, Ctrl, or Alt as a modifier key. 入力メニューのボタン機能割り当てをクリックするとボタン機能割り当てウインドウが開きます。 ボタン機能割り当てウインドウで、F11 キー、F12 キー、ホイールボタン、ホイールスクロールアップ、ホイールスクロールダウン、ボタン 4、ボタン 5 に機能を割り当てることができます。 修飾キーとして Shift、Ctrl、Alt から 1 個を選択できます。
The functions that can be assigned to each button are as follows. 各ボタンに割り当てられる機能は以下の通りです。
These settings are stored in parameter f11key, etc. The parameter keys are strings consisting of shift, ctrl, alt, which represent modifier keys, and f11key, f12key, wheel, wheelup, wheeldown, button4, button5, which represent buttons. The parameter values represent the corresponding functions. これらの設定はパラメータ f11key などに保存されます。 パラメータのキーは修飾キーを表す shift、ctrl、alt と、ボタンを表す f11key、f12key、wheel、wheelup、wheeldown、button4、button5 を連結した文字列です。 パラメータの値は対応する機能を表します。
The F11 and F12 keys can only be entered with the keys assigned in the key assignments window when the no function is selected in the button function assignments window. F11 キーと F12 キーはボタン機能割り当てウインドウで機能なしを選択したときだけキー割り当てウインドウで割り当てたキーを入力できます。
The F11 key menu has been eliminated. The F11 key, when in full screen mode, can be pressed to cancel full screen mode regardless of the F11 key assignment, but this function has also been eliminated. When the F11 key is not assigned to full screen switching, pressing the F11 key does not cancel the full screen display. F11 キーメニューを廃止しました。 全画面表示のとき F11 キーを押すと F11 キーの割り当てと関係なく全画面表示が解除される機能がありましたが、これも廃止しました。F11 キーに全画面表示の切り替えが割り当てられていないときは、F11 キーを押しても全画面表示は解除されません。
The mouse wheel menu has been eliminated. The parameter mousewheel can be specified but is not saved as parameter mousewheel. -mousewheel=trace is interpreted as -wheelup=trace1 -shiftwheelup=trace10 -ctrlwheelup=trace100 -wheeldown=step1 -shiftwheeldown=step10 -ctrlwheeldown=step100 -altwheeldown=return. -mousewheel=click is interpreted as -wheelup=leftclick -wheeldown=rightclick. マウスホイールメニューを廃止しました。 パラメータ mousewheel は指定できますがパラメータ mousewheel としては保存されません。-mousewheel=trace は -wheelup=trace1 -shiftwheelup=trace10 -ctrlwheelup=trace100 -wheeldown=step1 -shiftwheeldown=step10 -ctrlwheeldown=step100 -altwheeldown=return として解釈されます。-mousewheel=click は -wheelup=leftclick -wheeldown=rightclick として解釈されます。
Supported Synchronize Cache command. Supported Request Sense command for non-existent LUNs. Do not report that it is confirmed that XOR commands cannot be used. Synchronize Cache コマンドに対応。 存在しない LUN に対する Request Sense コマンドに対応。XOR 系のコマンドが使えないことを確認されたことを報告しない。
Rebuild command d, f. Added commands ll, me, ms, tx, txf. コマンド d、f を再構築。 コマンド ll、me、ms、tx、txf を追加。
Added restore windows that were open checkbox to the configuration file menu. Select whether or not to restore windows that were open at exit time at startup. This setting is saved in parameter xxxopen. (Thanks megazone-mc21) 設定ファイルメニューに開いていたウインドウを復元するチェックボックスを追加しました。 終了時に開いていたウインドウを、起動時に復元するかどうか選択します。 この設定はパラメータ xxxopenに保存されます。(Thanks megazone-mc21)
Fixed a problem in which the program may not stop when going back and forth between user mode and supervisor mode when performing Instruction breakpoint, Run to here, and Step. 命令ブレークポイント、ここまで実行、ステップを行うとき、ユーザモードとスーパーバイザモードを行き来すると停止しないことがある不具合を修正しました。
It is now compatible with the SCSI Ukun Kai. There is the SCSI Ukun Kai (experimental) menu in the SCSI menu in the File menu. When the connection checkbox is turned on and reset, the built-in SCSI port switches to the SCSI Ukun Kai. This setting is stored in the parameter suk. すかじー U 君改に対応しました。 ファイルメニューの中の SCSI メニューの中にすかじー U 君改 (実験中) メニューがあります。 接続チェックボックスを ON にしてリセットすると内蔵 SCSI ポートがすかじー U 君改に切り替わります。 この設定はパラメータ sukに保存されます。
Corrected the behavior of the MC68EC030 F-line instruction. When trying to execute cpSAVE or cpRESTORE in user mode, a privilege violation exception occurs. When attempting to execute cpRESTORE in supervisor mode, it would read the effective address. The latter corresponds to an unexpected memory access which is the reason why some DOS call numbers had to be moved when Human68k was adapted to the X68030. If there was nothing in the accessed location, a bus error would occur. This fix may cause programs that do not support X68030 and do not work on the actual X68030 machine, but work in XEiJ's X68030 mode, to not work in XEiJ's X68030 mode either. MC68EC030 の F ライン命令の動作を修正しました。 ユーザモードで cpSAVE または cpRESTORE を実行しようとしたとき特権違反例外が発生します。 スーパーバイザモードで cpRESTORE を実行しようとしたとき実効アドレスをリードします。 後者は Human68k が X68030 に対応するとき一部の DOS コール番号を移動しなければならなくなった理由である予期しないメモリアクセスに相当します。 アクセスした場所に何もなければバスエラーが発生します。 この修正により、X68030 に対応しておらず X68030 実機では動かないのに XEiJ の X68030 モードでは動いてしまっていたプログラムが、XEiJ の X68030 モードでも動かなくなる可能性があります。
Added misc/flinebuserror.x. This is an experiment to call the DOS call _GETENV with the old number $FF53 on the MC68030 to generate a bus error. misc/flinebuserror.xを追加しました。MC68030 で DOS コールの _GETENV を古い番号 $FF53 で呼び出してバスエラーを発生させる実験です。
Added misc/flineprivilege.x. Check which of $FE00 to $FFFF raises a privilege violation exception when the MC68030 is in user mode. misc/flineprivilege.xを追加しました。MC68030 でユーザモードのとき $FE00~$FFFF のどれで特権違反例外が発生するか調べます。
The MPU does not stop on a privilege violation generated by a DOS call, even if the Stop on error ("!" check box in disassembly list, etc.) is enabled. エラーで停止する (逆アセンブルリストなどにある「!」チェックボックス) が有効になっていても、DOS コールで発生した特権違反では MPU が停止しないようにしました。
-fe can no longer be specified except for 68060. Privilege violation exceptions are now merged with F-line exceptions. -fe を 68060 以外で指定できないようにしました。 特権違反例外を F ライン例外に合流させるようにしました。
As of this writing, the latest OpenJDK is 23.0.1. Older versions of JDK may not work. Please use the latest OpenJDK if possible. これを書いている時点で最新の OpenJDK は 23.0.1 です。 これより古いバージョンの JDK では動作しないかも知れません。 可能な限り最新の OpenJDK を使用してください。
Fixed behavior of undefined flag V in NBCD/SBCD of MC68000. (Thanks みゆ🌹ฅ^•ω•^ฅ) MC68000 の NBCD/SBCD の未定義フラグ V の挙動を修正しました。(Thanks みゆ🌹ฅ^•ω•^ฅ)
Fixed expected of hard for ABCD/NBCD/SBCD of MC68000 in instructiontest.x. (Thanks みゆ🌹ฅ^•ω•^ฅ) instructiontest.xの MC68000 の ABCD/NBCD/SBCD の hard の expected を修正しました。(Thanks みゆ🌹ฅ^•ω•^ฅ)
High memory on 060turbo is also available on X68000. This setting can be changed using the Available on X68000 checkbox in the High memory on 060turbo menu. This setting is stored in the parameter himem68000. Note that the mere presence of high memory can cause the program to malfunction. X68000 でも 060turbo のハイメモリが使えます。 この設定は060turbo のハイメモリメニューの X68000 でも有効チェックボックスで変更できます。 この設定はパラメータ himem68000に保存されます。 ハイメモリは存在するだけでプログラムを誤動作させることがあるので注意してください。
The Use high memory on 060turbo checkbox that was in the High memory on X68030/Xellent30 menu has been moved to the Available on X68030/Xellent30 checkbox in the High memory on 060turbo menu. X68030/Xellent30 のハイメモリメニューにあった 060turbo のハイメモリを使うチェックボックスは060turbo のハイメモリメニューの X68030/Xellent30 でも有効チェックボックスに移動しました。
When started in X68000 mode, it also detects high memory and displays the range and capacity. X68000 モードで起動したときもハイメモリを検出して範囲と容量を表示します。
Fixed problem with not switching to full screen at startup. (Thanks megazone-mc21) 起動時に全画面表示に切り替わらない問題を修正しました。(Thanks megazone-mc21)
The number of wait cycles now follows changes in operating frequency. ウェイトサイクル数が動作周波数の変化に追従するようにしました。
XEiJ development environment has been updated from Windows 10 Pro to Windows 11 Pro. XEiJ の開発環境を Windows 10 Pro から Windows 11 Pro へアップデートしました。
Changed taskbar icon size from 16x16 to 48x48. タスクバーのアイコンのサイズを 16x16 から 48x48 へ変更しました。
Fixed a bug that prevented CSRs from being cleared bit by bit. Fixed a bug that CER was not cleared after writing 1 to the ERR bit of CSR. CSR をビット単位でクリアできないバグを修正しました。CSR の ERR ビットに 1 を書き込んでも CER がクリアされないバグを修正しました。
――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 の基本的なソフトウェアの無償公開に尽力された権利各社およびシャープ・プロダクツ・ユーザーズ・フォーラムの方々、美しいフォントを公開されている平木敬太郎さん、門真なむさん、実行サンプルとして使わせていただいたフリーソフトウェアの作者の方々、動作報告と応援のメッセージを寄せてくださった皆さん、ありがとうございます。