Table of contents目次

  1. Address translation caches monitorアドレス変換キャッシュモニタ
  2. Branch log分岐ログ
  3. CD-ROM
  4. Core control buttons コア制御ボタン
    1. Checkbox to consider ORI.B #$00,D0 as an illegal instruction ORI.B #$00,D0を不当命令とみなすチェックボックス
    2. Checkbox to stop on error エラーで停止させるチェックボックス
    3. Checkbox to stop at execution start position 実行開始位置で停止させるチェックボックス
    4. Break button 停止ボタン
    5. Trace button トレースボタン
    6. Trace 10 times button トレース10回ボタン
    7. Trace 100 times button トレース100回ボタン
    8. Step button ステップボタン
    9. Step 10 times button ステップ10回ボタン
    10. Step 100 times button ステップ100回ボタン
    11. Step until return button ステップアンティルリターンボタン
    12. Run button 実行ボタン
  5. Data break pointデータブレークポイント
    1. Mechanism of the data break pointデータブレークポイントの仕組み
  6. Debug consoleデバッグコンソール
  7. Disassemble list逆アセンブルリスト
  8. Edge acceleration縁部加速
  9. Exclusive mouse modeエクスクルーシブマウスモード
  10. Extended graphic screen 拡張グラフィック画面
  11. FC2 pinFC2 ピン
  12. FE function instructionsFE ファンクション命令
    1. Example: Integrate atan(x) from 0 to 1 by rectangle method in X-BASIC例: X-BASIC で atan(x) を 0 から 1 まで長方形近似で数値積分する
  13. Fixed frequency mode周波数固定モード
  14. Fixed load factor mode負荷率固定モード
    1. Control pipe制御パイプ
  15. Floating point coprocessor board浮動小数点プロセッサボード
  16. FLOATn.X rejectionFLOATn.X の抑制
  17. Full specification FPUフルスペック FPU
  18. GIF animation recording GIFアニメーション録画
  19. High memory on 060turbo 060turboのハイメモリ
  20. High memory on X68030/Xellent30 X68030/Xellent30のハイメモリ
  21. Host file systemホストファイルシステム
  22. Intermittent drawing mode間欠描画モード
  23. Instruction break point命令ブレークポイント
  24. IPLROM 1.6
  25. Java languageJava 言語
  26. JoyPortUkun support じょいぽーとU君対応
    1. Mode モード
    2. Wait ウェイト
    3. jSerialComm jSerialComm
    4. Output interval adjustment 出力間隔調整
  27. Key assignments window キー割り当てウインドウ
    1. Input area 入力エリア
    2. Blank button 白紙ボタン
    3. US layout checkbox 英語配列チェックボックス
    4. Default button 初期値ボタン
    5. Save button 保存ボタン
    6. Restore button 復元ボタン
    7. Undo button 取り消しボタン
    8. Redo Button やり直しボタン
  28. Logical space monitor論理空間モニタ
  29. MEGA DRIVE 3 button padメガドラ 3 ボタンパッド
  30. MEGA DRIVE 6 button padメガドラ 6 ボタンパッド
  31. Memory dump listメモリダンプリスト
  32. Model 機種
    1. X68000 / X68000 ACE / X68000 EXPERT
    2. X68000 PRO
    3. X68000 SUPER
    4. X68000 XVI
    5. Xellent30
    6. X68000 Compact
    7. X68000 Hybrid
    8. X68030 / 030Compact
    9. 060turbo
    10. 060turboPRO
  33. Mother board coprocessorマザーボードコプロセッサ
  34. Normal 2 button padノーマル 2 ボタンパッド
  35. OPM logOPMログ
  36. Paste貼り付け
    1. Paste pipe貼り付けパイプ
  37. PCM interpolation algorithmPCM 補間アルゴリズム
  38. Physical space monitor物理空間モニタ
  39. Printerプリンタ
  40. Program flow visualizerプログラムフロービジュアライザ
  41. Raster break pointラスタブレークポイント
  42. Register list レジスタリスト
  43. Root pointer listルートポインタリスト
  44. RS-232C and terminal RS-232Cとターミナル
    1. Connect terminal and RS-232C ターミナルとRS-232Cを接続する
    2. Connect serial port and RS-232C シリアルポートとRS-232Cを接続する
    3. Connect serial port and terminal シリアルポートとターミナルを接続する
    4. Modification 改造
  45. Scanline effect 走査線エフェクト
  46. Screen mode test表示モードテスト
    1. Pattern testパターンテスト
  47. Seamless mouse modeシームレスマウスモード
    1. How to make the seamless mouse modeシームレスマウスモードの作り方
    2. How to click by the multi-touch trackpad on MacbookMacbook のマルチタッチトラックパッドでクリックする方法
  48. Shiromadokun白窓君
  49. Sound interpolation algorithm音声補間アルゴリズム
  50. Sound monitor音声モニタ
  51. Source oscillator frequency原発振周波数
  52. Sprite pattern viewerスプライトパターンビュア
  53. Stereoscopic viewing 立体視
  54. Triple precision floating point number三倍精度浮動小数点数
    1. Example: Check the internal representation of the circular constant例: 円周率の内部表現を確認する
  55. CYBER STICK サイバースティック
  56. XInput support XInput対応
  57. Z keyboard support Zキーボード対応
    1. Input from the Z keyboard Zキーボードからの入力
    2. Control of LEDs on the Z keyboard ZキーボードのLEDの制御

1. Address translation caches monitor アドレス変換キャッシュモニタ

atcmonitor.png

Address translation caches monitor displays contents of the address translation caches of MMU. The address translation caches of XEiJ are an original specification different from MC68060. アドレス変換キャッシュモニタは MMU のアドレス変換キャッシュの内容を表示します。XEiJ のアドレス変換キャッシュは MC68060 と異なる独自仕様です。

2. Branch log 分岐ログ

XEiJ saves the branch target address and the branch source address of the latest 65536 branches in the branch log. Branches mentioned here include all non-incremental changes of program counter such as interrupts. You can trace back changes of program counter and disassemble codes at the branch source address. XEiJ はプログラムカウンタのインクリメント以外の変化すなわち割り込みを含むすべての分岐の分岐元と分岐先のアドレスを直近の 65535 回までメモリ上の分岐ログに保存しています。分岐ログウインドウを開くとプログラムカウンタの変化を遡って逆アセンブルすることができます。

Core control buttons are located. コア制御ボタンが配置されています。

3. CD-ROM

ISO files are accessed as if they are SCSI CD-ROM drives. In X68000 Hybrid, X68030 and 060turbo mode, you can boot the system from an ISO file by clicking "Reboot from it" button if a boot sector exists. Files in CD-ROM are accessed via susie.x in Human68k environment. *.ISO ファイルを SCSI CD-ROM とみなします。ブートセクタがあるときは「ここから再起動」で CD-ROM から直接起動できます。Human68k からは susie.x でアクセスできます。

4. Core control buttons コア制御ボタン

Common core control buttons are located in the branch log, disassemble list, and register list. 分岐ログ逆アセンブルリストレジスタリストに共通のコア制御ボタンが配置されています。

4.1. Checkbox to consider ORI.B #$00,D0 as an illegal instruction ORI.B #$00,D0 を不当命令とみなすチェックボックス

ori illegal

Consider ORI.B #$00,D0 as an illegal instruction. The instruction code for ORI.B #$00,D0 is $0000,$0000. This instruction is rarely written intentionally, but is often executed when a runaway condition occurs with a jump to an unintended address. By treating this as an illegal instruction, it makes it easier for the debugger to catch the runaway. If the runaway is caught at an early stage, it is expected to reduce the time and effort required to find the cause of the problem. ORI.B #$00,D0 を不当命令とみなします。ORI.B #$00,D0 の命令コードは $0000,$0000 です。 この命令は意図して書かれることはほとんどありませんが、意図しないアドレスにジャンプして暴走したときにしばしば実行されます。 これを不当命令とみなすことで、デバッガで暴走を捕捉しやすくします。 暴走を早い段階で捉えられれば、原因を探る手間が減ることが期待できます。

4.2. Checkbox to stop on error エラーで停止させるチェックボックス

stop on error

The core is stopped when a bus error, address error, illegal instruction, divide by zero, CHK instruction, TRAPV instruction, or privilege violation occurs. If an abnormality is caught at an early stage, it is expected to reduce the time and effort required to find the cause. A bus error intentionally generated to check for the presence of an expansion board will also stop the system. バスエラー、アドレスエラー、不当命令、ゼロ除算、CHK 命令、TRAPV 命令、特権違反などが発生したらコアを停止させます。 異常を早い段階で捉えられれば、原因を探る手間が減ることが期待できます。 拡張ボードの有無を確認するために意図的に発生させられたバスエラーでも停止します。

4.3. Checkbox to stop at execution start position 実行開始位置で停止させるチェックボックス

stop at start

Stops the core at the start of program execution. It is used when you want to set a breakpoint in a program before executing it. The disassemble list shows the name of the program and the offset from the beginning, so you can easily find the place to set a breakpoint by comparing it with the assembly list generated by HAS060.X and the disassembly list generated by dis.x. This feature is only available when Human68k 3.02 is running. プログラムの実行開始位置でコアを停止させます。 プログラムにブレークポイントを仕掛けてから実行したいときに使います。 逆アセンブルリストにはプログラムの名前と先頭からのオフセットが表示されるので、HAS060.Xが生成したアセンブルリストやdis.xが生成した逆アセンブルリストと照合することで、ブレークポイントを仕掛ける場所を簡単に見つけられます。 この機能は Human68k 3.02 が動作しているときだけ有効です。

4.4. Break button 停止ボタン

break

Stops the core. All peripheral circuits as well as the MPU will stop. The cursor will also stop blinking, but this is not abnormal. Note that the RTC is based on the platform time and does not stop. In programs that use the RTC to measure time, the time the core was stopped is included in the elapsed time. コアを停止させます。MPU だけでなく周辺回路もすべて止まります。 カーソルの点滅も止まりますが異常ではありません。RTC はプラットフォームの時刻を基準にしているので止まらないことに注意してください。RTC を使って時間を計るプログラムではコアが止まっていた時間も経過時間に含まれます。

4.5. Trace button トレースボタン

trace

Trace execution is performed. Trace execution executes the instruction pointed to by the program counter. It can trace areas that cannot be traced by the DB.X trace command, such as inside raster interrupt routines. トレース実行を行います。 トレース実行は、プログラムカウンタが指す命令を実行します。 ラスタ割り込みルーチンの中などの DB.X のトレースコマンドではトレースできない領域もトレースできます。

4.6. Trace 10 times button トレース 10 回ボタン

trace 10

Repeat trace execution 10 times. トレース実行を 10 回繰り返します。

4.7. Trace 100 times button トレース 100 回ボタン

trace 100

Repeat trace execution 100 times. トレース実行を 100 回繰り返します。

4.8. Step button ステップボタン

step

Step execution is performed. Step execution executes the instruction pointed to by the program counter if it is a branch instruction, or else it places a temporary breakpoint immediately after the instruction and executes up to that point. Subroutine calls, DOS calls, IOCS calls, etc. do not stop until they return. ステップ実行を行います。 ステップ実行は、プログラムカウンタが指す命令が分岐命令ならばそれを実行し、さもなくばその命令の直後に臨時のブレークポイントを置いてそこまで実行します。 サブルーチン呼び出し、DOS コール、IOCS コールなどは復帰するまで止まりません。

4.9. Step 10 times button ステップ 10 回ボタン

step 10

Repeat step execution 10 times. ステップ実行を 10 回繰り返します。

4.10. Step 100 times button ステップ 100 回ボタン

step 100

Repeat step execution 100 times. ステップ実行を 100 回繰り返します。

4.11. Step until return button ステップアンティルリターンボタン

step until return

Step execution is repeated until an attempt is made to execute a return instruction with the stack pointer not decremented. スタックポインタが減っていない状態で復帰命令を実行しようとするまで、ステップ実行を繰り返します。

4.12. Run button 実行ボタン

run

Unstops the core. コアの停止を解除します。

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

MPU stops just after it reads or writes data in the specified range at the specified physical address. Data break point shows its power in the following case: "You know that the direct cause of malfunction of the program is broken code or data. But you do not know when and who broke them." You can catch directly the instruction that destroyed code or data by placing a data break point. When you think that the instruction is not written with the intention and the program runs away, trace the branch-log back to an instruction that has additional information such as a device name or an executable file name. If a copied data was broken, put a data break point at the copy source. You will efficiently find the root of the problem. 特定の物理アドレスで特定の範囲のデータの読み書きを行った命令の直後で MPU を停止させます。「プログラムの誤動作の直接的な原因がコードやデータが破壊されているためであることは分かったけれど、いつ誰が壊したのか分からない」というときにデータブレークポイントが威力を発揮します。データブレークポイントを使えばコードやデータを破壊した命令を直接捉えることができます。その命令が正しく記述されたものではなく暴走していると思われる場合は 分岐ログ を使って 逆アセンブルリスト で近くにデバイス名または実行ファイル名が表示されるところまで遡ります。別の場所からコピーされたデータが壊れていたときはコピー元にデータブレークポイントを仕掛けます。効率よく問題の大元を見つけることができるでしょう。

5.1. Mechanism of the data break point データブレークポイントの仕組み

Memory map of XEiJ is an array of memory mapped devices. Each page size is 8KB. Data break point device, which is an indirect memory mapped device, is assigned to the page that has data break points. When MPU reads or writes the page, data break point device invokes previous memory mapped device and stops MPU if the stop conditions are satisfied. An advantage of this method is its lightness. If a data break point starts monitoring all bus access, overall performance will significantly decrease. However, by using an indirect memory mapped device, overhead at a page that has no data break point becomes always zero even if you put several hundred data break points on other pages. There are some defects of this method. Misaligned accesses are not able to be detected because MPU splits them before bus access. In multi-task environment, code and data on RAM that physical address is not fixed are not able to be monitored. XEiJ のメモリマップはメモリマップトデバイスの配列です。データブレークポイントが設定されたページには間接メモリマップトデバイスであるデータブレークポイントデバイスが割り当てられ、データブレークポイントデバイスが元のメモリマップトデバイスを呼び出して停止条件が成立していたら MPU を止めます。この方法の利点は軽量であることです。データブレークポイントを 1 個設定しただけですべてのバスアクセスの監視が始まったのでは全体のパフォーマンスが大幅に低下してしまいますが、この方法ならばデータブレークポイントを何百個設定しようと設定されていないページのオーバーヘッドは常にゼロです。欠点はアラインメントの合っていないアクセスは分割されていて直接検出できないことと、マルチタスク環境の RAM 上のコードやデータは物理アドレスが固定されていないので監視できないことです。

6. Debug console デバッグコンソール

You can stop, run, disassemble and dump by command input. コマンド入力で停止、実行、逆アセンブル、ダンプなどの処理を行います。

[enter h to display usage]
> h
  Command
        d<size> <start-address>,<end-address¹>  dump
        f<size> <start-address>,<end-address¹>,<data>,…        fill
        g <start-address>       run
        h                       help
        i                       stop
        l <start-address>,<end-address¹>        disassemble
        p <expression>,…       calculate and print
        r                       step until return
        s <number-of-times>     step
        t <number-of-times>     trace
        x                       list registers
        xf                      list floating point registers
        <expression>            calculate
        <command>;…            sequential execution
    ¹The end address is within the range.
-- more -- [y/n] y
  Size
        b                       byte (8bit)
        w                       word (16bit)
        l                       long (32bit)
        q                       quad (64bit)
        s                       single (32bit)
        d                       double (64bit)
        x                       extended (80bit)
        t                       triple (96bit)
        p                       packed decimal (96bit)
-- more -- [y/n] y
  Floating point number
        1.0e+2                  decimal number
        0b1.1001p+6             binary number
        0o1.44p+6               octal number
        0x1.9p+6 $64            hexadecimal number
        Infinity NaN            infinity,not a number
    Mathematical constant
        Apery Catalan E Eular Pi
    Character code
        'A'
  String
        "ABC"
-- more -- [y/n] y
  Register
    General register
        d0 … d7 r0 … r7       data register
        a0 … a7 r8 … r15 sp   address register
        fp0 … fp7              floating point register
    Control register
        pc sr ccr sfc dfc cacr tc itt0 itt1 dtt0 dtt1 buscr
        usp vbr caar ssp msp isp urp srp pcr fpiar fpsr fpcr
  Variable
        foo                     floating point variable
        foo$                    string variable
-- more -- [y/n] y
  Address
        <address>               current address space
        <physical-address>@0    physical address space
        <logical-address>@1     user data space
        <logical-address>@2     user code space
        <logical-address>@5     supervisor data space
        <logical-address>@6     supervisor code space
-- more -- [y/n] y
  Operator
        <general-register>.<size>       general register access
        <variable>.<size>       variable access
        [<address>].<size>      memory access
        x.<size>                cast
        x(y)                    function call
        x++ ++x x-- --x         increment,decrement
        +x -x ~x !x             signum,bitwise NOT,logical NOT
        x**y x*y x/y x%y        exponentiation,multiplication,division
        x+y x-y                 addition,subtraction,concatenation
        x<<y x>>y x>>>y         shift
        x<y x<=y x>y x>=y       comparison
        x==y x!=y               equality
        x&y x^y x|y x&&y x||y   bitwise AND,XOR,OR,logical AND,OR
        x?y:z                   conditional
        x=y x**=y x*=y x/=y x%=y x+=y x-=y
        x<<=y x>>=y x>>>=y x&=y x^=y x|=y       assignment
        x,y                     sequential evaluation
-- more -- [y/n] y
  Function
        abs acos acosh acot acoth acsc acsch agi agm
        asc asec asech asin asinh atan atan2 atanh
        bin$ cbrt ceil chr$ cmp cmp0 cmp1 cmp1abs cmpabs
        cos cosh cot coth csc csch cub dec deg div2 div3 divpi divrz
        exp exp10 exp2 exp2m1 expm1 floor frac getexp getman
        hex$ ieeerem inc iseven isinf isint isnan isodd isone iszero
        lgamma log log10 log1p log2 max min mul2 mul3 mulpi
        oct$ pow quo rad random rcp rint rmode round rprec
        sec sech sgn sin sinh sqrt squ str$ tan tanh tgamma trunc ulp val
> 
[ h で使用法を表示]
> h
  コマンド
        d<サイズ> <開始アドレス>,<終了アドレス¹>        ダンプ
        f<サイズ> <開始アドレス>,<終了アドレス¹>,<データ>,…    フィル
        g <開始アドレス>        実行
        h                       ヘルプ
        i                       停止
        l <開始アドレス>,<終了アドレス¹>        逆アセンブル
        p <式>,…               計算結果表示
        r                       ステップアンティルリターン
        s <回数>                ステップ
        t <回数>                トレース
        x                       レジスタ一覧
        xf                      浮動小数点レジスタ一覧
        <式>                    計算
        <コマンド>;…           逐次実行
    ¹終了アドレスは範囲に含まれる
-- more -- [y/n] y
  サイズ
        b                       バイト (8bit)
        w                       ワード (16bit)
        l                       ロング (32bit)
        q                       クワッド (64bit)
        s                       シングル (32bit)
        d                       ダブル (64bit)
        x                       エクステンデッド (80bit)
        t                       トリプル (96bit)
        p                       パックトデシマル (96bit)
-- more -- [y/n] y
  浮動小数点数
        1.0e+2                  10進数
        0b1.1001p+6             2進数
        0o1.44p+6               8進数
        0x1.9p+6 $64            16進数
        Infinity NaN            無限大,非数
    数学定数
        Apery Catalan E Eular Pi
    文字コード
        'A'
  文字列
        "ABC"
-- more -- [y/n] y
  レジスタ
    汎用レジスタ
        d0 … d7 r0 … r7       データレジスタ
        a0 … a7 r8 … r15 sp   アドレスレジスタ
        fp0 … fp7              浮動小数点レジスタ
    制御レジスタ
        pc sr ccr sfc dfc cacr tc itt0 itt1 dtt0 dtt1 buscr
        usp vbr caar ssp msp isp urp srp pcr fpiar fpsr fpcr
  変数
        foo                     浮動小数点変数
        foo$                    文字列変数
-- more -- [y/n] y
  アドレス
        <アドレス>              現在のアドレス空間
        <物理アドレス>@0        物理アドレス空間
        <論理アドレス>@1        ユーザデータ空間
        <論理アドレス>@2        ユーザコード空間
        <論理アドレス>@5        スーパーバイザデータ空間
        <論理アドレス>@6        スーパーバイザコード空間
-- more -- [y/n] y
  演算子
        <汎用レジスタ>.<サイズ> 汎用レジスタアクセス
        <変数>.<サイズ>         変数アクセス
        [<アドレス>].<サイズ>   メモリアクセス
        x.<サイズ>              キャスト
        x(y)                    関数呼び出し
        x++ ++x x-- --x         インクリメント,デクリメント
        +x -x ~x !x             符号,ビットNOT,論理NOT
        x**y x*y x/y x%y        累乗,乗除算
        x+y x-y                 加減算,連結
        x<<y x>>y x>>>y         シフト
        x<y x<=y x>y x>=y       比較
        x==y x!=y               等価
        x&y x^y x|y x&&y x||y   ビットAND,XOR,OR,論理AND,OR
        x?y:z                   条件
        x=y x**=y x*=y x/=y x%=y x+=y x-=y
        x<<=y x>>=y x>>>=y x&=y x^=y x|=y       代入
        x,y                     逐次評価
-- more -- [y/n] y
  関数
        abs acos acosh acot acoth acsc acsch agi agm
        asc asec asech asin asinh atan atan2 atanh
        bin$ cbrt ceil chr$ cmp cmp0 cmp1 cmp1abs cmpabs
        cos cosh cot coth csc csch cub dec deg div2 div3 divpi divrz
        exp exp10 exp2 exp2m1 expm1 floor frac getexp getman
        hex$ ieeerem inc iseven isinf isint isnan isodd isone iszero
        lgamma log log10 log1p log2 max min mul2 mul3 mulpi
        oct$ pow quo rad random rcp rint rmode round rprec
        sec sech sgn sin sinh sqrt squ str$ tan tanh tgamma trunc ulp val
> 

7. Disassemble list 逆アセンブルリスト

The disassembler used in the disassemble list and the branch log disassembles programs in instruction units. Some information are inserted at break positions such as immediately after unconditional branch instructions in disassemble lists. If the address is in the exception vector table, the type of the exception is displayed at the beginning of the exception handler. In loaded device drivers and executable files, the file name and the offset from the top of the program are displayed. You can easily compare them with assemble lists made by HAS.X or HAS060.X and disassemble lists made by dis.x. So you can anticipate where break points should be set. 逆アセンブルリストや 分岐ログ で使用されているのは普通の命令単位の逆アセンブラですが、無条件分岐命令の直後などの区切りの位置にいくつかの情報が表示されます。例外ベクタが指しているアドレスにはその例外の種類が、また、Human68k が読み込まれているときはデバイス名または実行ファイル名とその先頭からのオフセットが表示されます。HAS.XHAS060.X で -p を指定して作成したアセンブルリストや dis.x で作成した逆アセンブルリストと容易に照合できるので、デバッグしたい場所に先回りしてブレークポイントを仕掛けるといった作業がやりやすいと思います。

Core control buttons are located. コア制御ボタンが配置されています。

8. Edge acceleration 縁部加速

In the seamless mouse mode, mouse data that shows mouse cursor moves outwardly of the screen is generated when mouse cursor is in the edge of the screen. In the real screen mode of SX-WINDOW, you can scroll the screen by pressing mouse cursor against the edge of the screen. シームレスマウスモード でマウスカーソルが画面の端にあるとき、マウスカーソルが画面の外方向に動いているように見えるデータを作ります。SX-WINDOW の実画面モードでマウスカーソルを画面の端に押し付けて画面をスクロールさせることができます。

9. Exclusive mouse mode エクスクルーシブマウスモード

The exclusive mouse mode is the mode that XEiJ monopolizes the mouse cursor of the host machine. It is sometimes called simply a mouse mode in other X68000 emulators. You can operate software that uses its own mouse driver that does not depend on IOCS. But there is an inconvenience that you have to change the mouse mode every time you operate other software of the host machine because the mouse cursor of the host machine is occupied. エクスクルーシブマウスモードは XEiJ がホストマシンのマウスカーソルを占有するモードです。他の X68000 エミュレータでは単にマウスモードと呼ばれることがあります。IOCS に依存しない独自のマウスドライバを使用するソフトウェアも操作できますが、ホストマシンのマウスカーソルを占有してしまうので、ホストマシンの他のアプリケーションを操作する度にマウスモードを切り替えなければならないという不便さがあります。

When in seamless mouse mode, clicking the wheel (or right-clicking while holding down the Alt key on a two-button mouse) or pressing the F12 key will switch to exclusive mouse mode. シームレスマウスモード のとき、ホイールをクリックする (2 ボタンマウスのときは Alt キーを押しながら右クリックする) か F12 キーを押すとエクスクルーシブマウスモードに切り替わります。

10. Extended graphic screen 拡張グラフィック画面

Extended graphic screens are graphic screens that consist of 1024×1024 dots real screen and 256 or 65536 colors. They are not available on real machines. 拡張グラフィック画面は実画面サイズが 1024×1024 ドットで色数が 256 色または 65536 色のグラフィック画面です。実機では使えません。

memory mode メモリモードreal screen size 実画面サイズnumber of colors 色数number of pages ページ数GVRAM size GVRAM サイズ
0512×512164512KB
12562
3655361
41024×102416
52561MB
7655362MB

IOCS _G_GLR_ON does not work as expected in memory mode 5,7. IOCS _G_GLR_ON はメモリモード 5,7 では期待通りに動作しません。

512KB GVRAM in memory modes 0,1,3,4 and 2MB GVRAM in memory modes 5 and 7 are different entities. Clearing all 2MB of GVRAM in memory mode 7 does not clear the 512KB of GVRAM in memory mode 3. メモリモード 0,1,3,4 の 512KB の GVRAM とメモリモード 5,7 の 2MB の GVRAM は実体が異なります。メモリモード 7 で 2MB の GVRAM をすべてクリアしてもメモリモード 3 の 512KB の GVRAM はクリアされません。

Tools for utilizing the extended graphic screen are available on tantan's website. tantan さんのサイトで拡張グラフィック画面を活用するツールが公開されています。

11. FC2 pin FC2 ピン

In 060turbo mode, you can cut FC2 pin. The whole physical address space becomes accessible in user mode and X Window System runs on NetBSD/x68k. 060turbo モードのとき FC2 ピンをカットできます。物理空間全体がユーザモードでアクセスできるようになり、NetBSD/x68k で X Window System が動きます。

12. FE function instructions FE ファンクション命令

FE function calls are service calls to perform floating point arithmetic and number-string conversion in environment of Human68k. They are registered to the system by FLOAT2.X, FLOAT3.X or FLOAT4.X and called via F-line exception by placing undefined instruction code $FExx like $FFxx of DOS call. They are usually used in programs written in X-BASIC and C language. FE ファンクションコールは Human68k の環境で浮動小数点演算や数値と文字列の変換を行うサービスコールです。通常は FLOAT2.X、FLOAT3.X、FLOAT4.X のいずれかを用いてシステムに登録し、DOS コールの $FFxx と同様に $FExx という形の未実装命令コードを配置することで F ライン例外を経由して呼び出します。X-BASIC や C 言語で書かれたプログラムで使われています。

MPU of XEiJ can handle opcodes of the form $FExx as not "unimplemented instructions that generate F-line exceptions" but "FE function instructions that perform floating point arithmetic". This feature eliminates exception processing time of FE function calls. Moreover, floating point arithmetic is performed fast by Java operators and APIs. X-BASIC and other software that use a lot of floating point arithmetic run faster. XEiJ の MPU は $FExx という命令コードを「F ライン例外を発生させる未実装命令」ではなく「浮動小数点演算を行う実装済みの FE ファンクション命令」として処理することができます。FE ファンクションコールで発生する例外処理のオーバーヘッドがなくなり、浮動小数点演算も Java の演算子や API を用いて計算するので高速です。X-BASIC や浮動小数点演算を多用するソフトウェアの動作が軽くなます。

FE function calls not implemented in genuine FLOATn.X and __FEVECS which is an FE function call to replace processing routines of FE function calls generate F-line exceptions as usual. You can assign new FE function calls to unused unimplemented instruction codes by using FLOATn.X together but you can not change FE function instructions already implemented by using __FEVECS. 純正の FLOATn.X に実装されていない FE ファンクションコールおよび FE ファンクションコールの処理ルーチンを変更する __FEVECS を呼び出したときは従来通り F ライン例外が発生します。FLOATn.X を併用することで、空いている未実装命令コードに FE ファンクションコールを追加することはできますが、実装済みの FE ファンクション命令の処理を __FEVECS で差し替えることはできません。

12.1. Example: Integrate atan(x) from 0 to 1 by rectangle method in X-BASIC 例 : X-BASIC で atan(x) を 0 から 1 まで長方形近似で数値積分する

list
   10 int n=100000,k,t
   20 float a=0#,b=1#,d,s
   30 t=time():d=(b-a)/n:a=a-d*0.5#:s=0#:for k=1 to n:s=s+atan(a+d*k):next:s=d*s:t=time()-t
   40 print s,t;"sec"
   50 end
   60 func time()
   70   str c$,d$,s$,t$
   80   int y,m,d
   90   d$=date$:t$=time$
  100   repeat
  110     c$=d$:s$=t$
  120     d$=date$:t$=time$
  130   until c$=d$ and s$=t$
  140   y=((atoi(left$(d$,2))+50) mod 100)+1950:m=atoi(mid$(d$,4,2)):d=atoi(right$(d$,2))
  150   if m<3 then { y=y-1:m=m+12 }
  160   c=floor(365.25#*y)+floor(30.59#*(m-2))+d-719501
  170   if -141417<=c then c=c+floor(y/400)-floor(y/100)+2
  180   return(c*86400+(atoi(left$(t$,2))-9)*3600+atoi(mid$(t$,4,2))*60+atoi(right$(t$,2)))
  190 endfunc
  200 func floor(x;float)
  210   int y
  220   y=fix(x):if x<y then y=y-1
  230   return(y)
  240 endfunc
Ok

X68000 Hybrid, load factor 50% (about 200MHz), FE function instructions OFF (FLOAT2.X) X68000 Hybrid、負荷率 50% (約 200MHz)、FE ファンクション命令 OFF (FLOAT2.X) で実行したとき

run
 0.43882457311956        18 sec
Ok

X68000 Hybrid, load factor 50% (about 200MHz), FE function instructions ON X68000 Hybrid、負荷率 50% (約 200MHz)、FE ファンクション命令 ON で実行したとき

run
 0.43882457311956        12 sec
Ok

π /4-log(2)/2 = 0.4388245731174756549…

13. Fixed frequency mode 周波数固定モード

You can set operating frequency of MPU from 1MHz to 1000MHz in units of 1MHz. Maximum load factor is 90 percent if the sound output is enabled. MPU の動作周波数を 1MHz から 1MHz 刻みで 1000MHz まで設定できます。音声出力が ON のときは負荷率 80%、音声出力が OFF のときは負荷率 100% を上限としてそれ以上動作周波数が上がらないようになっています。

14. Fixed load factor mode 負荷率固定モード

In the fixed load factor mode, operating frequency of MPU is automatically controlled to keep the load factor. You can set the load factor from 1% to 100% in units of 1%. MPU の動作周波数を自動的に変化させて負荷率を一定に保ちます。負荷率を 1% から 1% 刻みで 100% まで設定できます。

14.1. Control pipe制御パイプ

When in Windows, the named pipe "\\.\pipe\XEiJControl&#34, you can send control commands, such as pressing an interrupt switch, from other processes via this pipe. Place the supplied xeijwin.dll in the current directory or in a directory that is in your path. Activating the paste pipe via the paste settings menu or the parameter pastepipe also activates the control pipe. Windows のとき、名前付きパイプ「\\.\pipe\XEiJControl」を介して他のプロセスからインタラプトスイッチを押すなどの制御コマンドを送信できます。 付属の xeijwin.dll をカレントディレクトリまたはパスの通っているディレクトリに置いてください。 貼り付け設定メニューまたはパラメータ pastepipe貼り付けパイプを有効にすると制御パイプも有効になります。

control command制御コマンド
control command制御コマンドfunction機能
interruptpress the interrupt switchインタラプトスイッチを押す
presskey keyname ...press keysキーを押す
releasekey keyname ...release keysキーを離す
resetpress the reset switchリセットスイッチを押す
typekey keyname ...type keysキーを押して離す
key nameキーの名前
key nameキーの名前scan codeスキャンコードnote備考
ESC1
12
23
34
45
56
67
78
89
910
011
MINUS12-
CARET13
YEN14\
BS15
TAB16
Q17
W18
E19
R20
T21
Y22
U23
I24
O25
P26
AT27@
LEFTBRACKET28[
RETURN29
A30
S31
D32
F33
G34
H35
J36
K37
L38
SEMICOLON39;
COLON40:
RIGHTBRACKET41]
Z42
X43
C44
V45
B46
N47
M48
COMMA49,
PERIOD50
SLASH51
UNDERLINE52
SPACE53
HOME54
DEL55
ROLLUP56
ROLLDOWN57
UNDO58
LEFT59
UP60
RIGHT61
DOWN62
CLR63
TENKEYSLASH64テンキー /
TENKEYASTERISK65テンキー *
TENKEYMINUS66テンキー -
TENKEY767
TENKEY868
TENKEY969
TENKEYPLUS70テンキー +
TENKEY471
TENKEY572
TENKEY673
TENKEYEQUAL74テンキー =
TENKEY175
TENKEY276
TENKEY377
ENTER78
TENKEY079
TENKEYCOMMA80テンキー ,
TENKEYPERIOD81テンキー .
KIGOU82記号入力
TOUROKU83登録
HELP84
XF185
XF286
XF387
XF488
XF589
KANA90かな
ROMA91ローマ字
CODE92コード入力
CAPS93
INS94
HIRAGANA95ひらがな
ZENKAKU96全角
BREAK97
COPY98
F199
F2100
F3101
F4102
F5103
F6104
F7105
F8106
F9107
F10108
SHIFT112
CTRL113
OPT1114OPT.1
OPT2115OPT.2
NUM116

15. Floating point coprocessor board 浮動小数点プロセッサボード

XEiJ is equipped with two floating point coprocessor boards (CZ-6BP1), which is commonly called copro board. Their coprocessors are compatible with MC68881 at instruction level. FLOAT3.X is available. Programs that were compiled by GCC (Mariko version) or GCC2 and linked with libc bypass FLOAT3.X and access the coprocessor directly. 浮動小数点プロセッサボード CZ-6BP1 (通称、コプロボード) を 2 枚挿してあります。FPCP は MC68881 と命令互換のコプロセッサです。FLOAT3.X を利用できます。GCC(真里子版) または GCC2 でコンパイルして libc をリンクしたプログラムは FLOAT3.X を経由せずコプロセッサを直接操作します。

16. FLOATn.X rejection FLOATn.X の抑制

When the FE function instructions are enabled, to reduce overheads of DOS calls, unnecessary FLOATn.X is rejected even if FLOATn.X is written in CONFIG.SYS. FE ファンクション命令 が有効なとき、DOS コールのオーバーヘッドを減らすために、CONFIG.SYS に 不要な FLOATn.X が書かれていても組み込まれないようにします。

17. Full specification FPU フルスペック FPU

Full specification FPU can perform all floating point instructions of MC68882 and MC68060. フルスペック FPU は MC68882 と MC68060 のすべての浮動小数点命令を実行できます。

18. GIF animation recording GIF アニメーション録画

The X68000 screen can be captured frame by frame and saved as a GIF animation. X68000 の画面をフレーム毎に取り込んで GIF アニメーションとして保存できます。

GIF images can only use up to 256 colors, so screens with many colors cannot be saved well. GIF 画像では 256 色までしか使えないので色数が多い画面はうまく保存できません。

19. High memory on 060turbo 060turbo のハイメモリ

High memory starting at address $10000000 is available for 060turbo. High memory size is 0MB, 16MB, 32MB, 64MB, 128MB, 256MB, 384MB, 512MB, or 768MB. The contents of the high memory can be saved in a configuration file. These settings can be changed in the high memory on 060turbo menu, parameter localmemory and parameter localmemorysave. 060turbo でアドレス $10000000 から始まるハイメモリを使用できます。 ハイメモリの容量は 0MB、16MB、32MB、64MB、128MB、256MB、384MB、512MB、768MB のいずれかです。 ハイメモリの内容を設定ファイルに保存できます。 これらの設定は060turbo のハイメモリメニューパラメータ localmemoryおよびパラメータ localmemorysaveで変更できます。

20. High memory on X68030/Xellent30 X68030/Xellent30 のハイメモリ

High memory equivalent to TS-6BE16 starting at address $01000000 is available for X68030 and Xellent30. High memory size is 0MB or 16MB. The contents of the high memory can be saved in a configuration file. Large amount of high memory starting from address $10000000 can also be used with the X68030 and Xellent30. These settings can be changed in the high memory on X68030/Xellent30 menu, parameter highmemory, parameter highmemorysave and parameter highmemory060turbo. X68030 と Xellent30 でアドレス $01000000 から始まる TS-6BE16 相当のハイメモリを使用できます。 ハイメモリの容量は 0MB、16MB のいずれかです。 ハイメモリの内容を設定ファイルに保存できます。X68030 と Xellent30 でアドレス $10000000 から始まる大容量のハイメモリを使うこともできます。 これらの設定はX68030/Xellent30 のハイメモリメニューパラメータ highmemoryパラメータ highmemorysaveおよびパラメータ highmemory060turboで変更できます。

21. Host file system ホストファイルシステム

XEiJ has a virtual expansion board to boot from a remote device and can treat any directory of the host machine as a boot drive of Human68k. Image files of floppy disks and hard disks have a weak point that it is generally troublesome to manipulate its data from the host machine. However, you do not have to make image files to configure a Human68k environment on XEiJ because all files including files required in the starting sequence such as CONFIG.SYS, device driver and so on are searched in directories of the host machine. You will start to think that making a Human68k environment in image files is very tiresome after getting used to X68000 that has been released from miniature gardens of image files. XEiJ はリモートデバイスから ROM 起動するための仮想拡張ボードを搭載しており、ホストマシンの任意のディレクトリを Human68k の起動ドライブにすることができます。CONFIG.SYS やデバイスドライバなどの起動シーケンスに必要なファイルがすべてホストマシンのディレクトリで検索されるので、Human68k の環境を構築するためにホストマシン側から内容を操作しにくいフロッピーディスクやハードディスクのイメージファイルを作る必要がありません。イメージファイルという箱庭から開放された X68000 に慣れると、イメージファイルの中に Human68k の環境を構築するのがとても面倒なことに思えてきます。

To boot from a floppy disk or hard disk image file and access the host file system, write the following in config.sys. フロッピーディスクやハードディスクのイメージファイルから起動してホストファイルシステムにアクセスするには config.sys に以下のように書きます。

device=[rom$00e9f020]

22. Intermittent drawing mode 間欠描画モード

Draw changed pictures intermittently. Reducing frequency of drawing makes the look awkward, but the emulation load is lightened. 変化した画像を断続的に描きます。 描画の頻度を減らすと見た目がぎこちなくなりますが、エミュレーションの負荷は軽くなります。

23. Instruction break point 命令ブレークポイント

Instruction break point stops MPU just before the instruction at specified physical address. Like data break point, instruction break point is an indirect memory mapped device. So it is light. You can put an instruction break point in ROM because it does not change opcodes. 特定の物理アドレスの命令の直前で MPU を停止させます。データブレークポイント と同様に間接メモリマップトデバイスを使用しているので軽量です。コードを変更しないので ROM にも仕掛けられます。

24. IPLROM 1.6

See About IPLROM 1.6. IPLROM 1.6 について を参照。

25. Java language Java 言語

XEiJ is written in the Java language. It will run on any operating system if the Java SE runtime environment has been installed. XEiJ は Java 言語で記述されています。最新の Java SE 実行環境がインストールされていれば OS に関係なく動作します。

The Java applet mode to run XEiJ on web browsers and the JNLP mode to run XEiJ via the Java Web Start had been removed. ウェブブラウザ上で XEiJ を起動する Java アプレットモードおよび Java Web Start を介して XEiJ を起動する JNLP モードは廃止されました。

26. JoyPortUkun support じょいぽーと U 君対応

TNB Seisakusho's JoyPortUkun is supported. Input/output devices connected to the joystick port of the actual X68000 may be used with XEiJ. You can select whether to connect to JoyPortUkun or not in the joystick port setting window or parameter joyportukun. TNB 製作所さんのじょいぽーと U 君に対応しました。X68000 実機のジョイスティックポートに繋いでいた入出力デバイスが XEiJ で使えるかも知れません。 じょいぽーと U 君に接続するかどうかをジョイスティックポート設定ウインドウまたはパラメータ joyportukunで選択できます。

26.1. Mode モード

JoyPortUkun has two modes: the Notify mode in which notifications are sent when the status changes, and the Command mode in which the status is queried when the I/O port is read. When an I/O port is written in the Notify mode, the Notify(A) mode confirms the status change before proceeding to the next instruction, while the Notify(B) mode proceeds to the next instruction without confirmation and confirms when the I/O port is accessed next. You can select which mode to use in the joystick port settings window or in the parameter ukunmode. The default is the Notify(A) mode. じょいぽーと U 君には、I/O ポートの状態が変化したとき通知が届く Notify モードと、I/O ポートがリードされたとき状態を問い合わせる Command モードがあります。Notify モードで I/O ポートがライトされたとき、状態の変化を確認してから次の命令に進むのが Notify(A) モード、確認せず次の命令に進み次に I/O ポートがアクセスされたとき確認するのが Notify(B) モードです。 どのモードを使用するかをジョイスティックポート設定ウインドウまたはパラメータ ukunmodeで選択できます。 デフォルトは Notify(A) モードです。

26.2. Wait ウェイト

Since it takes time to communicate with the physical device, a wait of 100 us, or 1000 cycles at 10 MHz, is added to each PPI access when JoyPortUkun is connected. There may be some software that may malfunction or slow down when JoyPortUkun is connected. 物理デバイスとの通信に時間がかかるので、じょいぽーと U 君が接続されているとき PPI のアクセスに 1 回あたり 100us すなわち 10MHz に換算して 1000 サイクルのウェイトを追加しています。 じょいぽーと U 君を接続すると動作がもたついたり誤動作するソフトウェアがあるかも知れません。

26.3. jSerialComm jSerialComm

jSerialComm is used for connecting to the JoyPortUkun except Windows. You may be able to use the JoyPortUkun on macOS and Linux. On Windows, the conventional native code is used for connecting to the JoyPortUkun, but jSerialComm can also be selected. Added parameter ukunjsc. Windows 以外のとき、じょいぽーと U 君との接続にjSerialCommを使用します。macOS や Linux でもじょいぽーと U 君が使えるかも知れません。Windows のときはじょいぽーと U 君との接続に従来の native コードを使用しますが、jSerialComm も選択できます。 パラメータ ukunjscを追加しました。

26.4. Output interval adjustment 出力間隔調整

Added output interval adjustment to stabilize the initialization sequence of Shiromadokun. The interval between writes to PPI is measured in virtual time and real time, respectively. If the virtual time interval is shorter, a wait cycle is added. If the real time interval is shorter, an empty loop is added with an upper limit of 500 us to reduce the gap between the virtual time interval and the real time interval. The load factor increases when adding an empty loop. This feature is enabled by parameter ukuninterval. 白窓君の初期化シーケンスを安定させるため、出力間隔調整を追加しました。PPI への書き込みの間隔を仮想時間と実時間でそれぞれ計測します。 仮想時間の間隔の方が短ければウェイトサイクルを、実時間の間隔の方が短ければ空ループを、500us を上限として追加することで、仮想時間の間隔と実時間の間隔のずれを軽減します。 空ループを追加するとき負荷率が高くなります。 この機能はパラメータ ukunintervalで有効になります。

27. Key assignments window キー割り当てウインドウ

keyassignments.png

The Key assignments window allows you to set the correspondence between the keys on the X68000 and the keys on the host machine. キー割り当てウインドウで X68000 のキーとホストマシンのキーの対応を設定できます。

27.1. Input area 入力エリア

The Key assignments window has input areas arranged in the shape of a standard X68000 keyboard. Click on the input area of the X68000 key you want to assign, and then press the key on the host machine you want to assign. キー割り当てウインドウには入力エリアが X68000 の標準キーボードの形に並んでいます。 割り当てたい X68000 のキーの入力エリアをクリックしてから、割り当てたいホストマシンのキーを押してください。

You can assign up to three keys of the host machine's key to one key on the X68000. Pressing an unassigned key will add a key. Pressing the fourth key will unassign the first key and reduce the number of keys to three. Pressing a key that has already been assigned to a key will unlock the other key and reduce the number of keys to one. X68000 の 1 個のキーにホストマシンのキーのキーを 3 個まで割り当てられます。 割り当てられていないキーを押すとキーが追加されます。4 個目を押すと 1 個目が解除されて 3 個になります。 既に割り当てられているキーを押すと他のキーが解除されて 1 個になります。

Pressing the Esc key on the host machine other than the ESC key on the X68000 will cancel all assignments for that key and set it to 0. It is not possible to assign the Esc key to any key other than the ESC key. Also, the ESC key cannot be unassigned. X68000 の ESC キー以外でホストマシンの Esc キーを押すとそのキーの割り当てがすべて解除されて 0 個になります。ESC キー以外に Esc キーを割り当てることはできません。 また、ESC キーの割り当てを解除することはできません。

Pressing the Tab key on the host machine other than the TAB key on the X68000 will shift the focus to the next key. The Tab key cannot be assigned to any key other than the TAB key. X68000 の TAB キー以外でホストマシンの Tab キーを押すとフォーカスが次のキーに移ります。TAB キー以外に Tab キーを割り当てることはできません。

27.2. Blank button 白紙ボタン

Unassigns all keys. すべてのキーの割り当てを解除します。

27.3. US layout checkbox 英語配列チェックボックス

Selects whether or not to use the US layout when resetting to the initial value with the Default button. 初期値ボタンで初期値に戻すとき英語配列にするかどうか選択します。

27.4. Default button 初期値ボタン

Resets all key assignments to their default values. The default values are different for Windows, macOS, and Linux. すべてのキーの割り当てを初期値に戻します。Windows と macOS と Linux で初期値が異なります。

27.5. Save button 保存ボタン

Saves key assignments to a file in CSV format. Since XEiJ saves key assignments in a configuration file, when you initialize XEiJ settings, the key assignments are also initialized together. By saving key assignments to a file, you can restore key assignments after initializing XEiJ settings. キー割り当てを CSV 形式でファイルに保存します。XEiJ ではキー割り当てを設定ファイルに保存しているので、XEiJ の設定を初期化するとキー割り当ても一緒に初期化されてしまいます。 キー割り当てをファイルに保存しておくことで、XEiJ の設定を初期化した後にキー割り当てを復元できます。

27.6. Restore button 復元ボタン

Restores key assignments saved in a file in CSV format. CSV 形式でファイルに保存されたキー割り当てを復元します。

27.7. Undo button 取り消しボタン

Undo changes to key assignments. If a key assigned to another key is pressed by mistake when changing a key assignment, the two keys will be in the wrong state, but they can be undone together. Operations of the blank button, initial value button, and restore button can also be undone. You can undo up to 1000 previous changes until you exit XEiJ. To undo a key assignment change after exiting XEiJ, extract the keymap= line from the XEiJ.ini.bak file, write it to a file named keymap.txt, and restore it. キー割り当ての変更を取り消します。 キー割り当てを変更するとき他のキーに割り当てられているキーを間違って押してしまうと、2 つのキーが間違った状態になってしまいますが、まとめて取り消せます。 白紙ボタン、初期値ボタン、復元ボタンの操作も取り消せます。XEiJ を終了するまで、1000 回前の変更まで取り消せます。XEiJ を終了した後にキー割り当ての変更を取り消すには、XEiJ.ini.bak ファイルから keymap= の行を取り出して keymap.txt というファイルに書き込み、それを復元してください。

27.8. Redo Button やり直しボタン

Redo the undone operation. 取り消した操作をやり直します。

28. Logical space monitor 論理空間モニタ

Logical space monitor shows physical address assigned to logical address. 論理アドレスに割り当てられている物理アドレスを表示します。

29. MEGA DRIVE 3 button pad メガドラ 3 ボタンパッド

You can connect MEGA DRIVE 3 button pads to joystick ports. Joystick driver that supports the Chelnov adapter is required to use them. ジョイスティックポートにメガドラ 3 ボタンパッドを接続できます。メガドラパッド変換アダプタに対応しているジョイスティックドライバが必要です。

Settings of MEGA DRIVE 3 button pads are stored in the parameter megadrive3buttonN. メガドラ 3 ボタンパッドの設定はパラメータ megadrive3buttonN に保存されます。

30. MEGA DRIVE 6 button pad メガドラ 6 ボタンパッド

You can connect MEGA DRIVE 6 button pads to joystick ports. Joystick driver that supports the Chelnov adapter is required to use them. ジョイスティックポートにメガドラ 6 ボタンパッドを接続できます。メガドラパッド変換アダプタに対応しているジョイスティックドライバが必要です。

Settings of MEGA DRIVE 6 button pads are stored in the parameter megadrive6buttonN. メガドラ 6 ボタンパッドの設定はパラメータ megadrive6buttonN に保存されます。

31. Memory dump list メモリダンプリスト

Contents of memory are shown. メモリの内容を表示します。

32. Model 機種

The MPU type and operating frequency, IPLROM version, built-in hard disk interface type, etc. are automatically set according to the model selected in the change the model and reset menu or parameter model. 機種を変更してリセットメニューまたはパラメータ modelで選択された機種に応じて、MPU の種類と動作周波数、IPLROM のバージョン、内蔵ハードディスクインターフェイスの種類などが自動的に設定されます。

32.1. X68000 / X68000 ACE / X68000 EXPERT

The MPU type is MC68000 and the operating frequency is 10 MHz. The IPLROM version is 1.0. Internal hard disk interface type is SASI. MPU の種類は MC68000、動作周波数は 10MHz です。IPLROM のバージョンは 1.0 です。 内蔵ハードディスクインターフェイスの種類は SASI です。

32.2. X68000 PRO

PRO has one more DMAC wait cycle than EXPERT, so DMA transfers are slightly slower. PRO は EXPERT よりも DMAC のウェイトサイクルが 1 個多いので、DMA 転送が少し遅くなります。

32.3. X68000 SUPER

The MPU type is MC68000 and the operating frequency is 10 MHz. The IPLROM version is 1.0. Internal hard disk interface type is SCSI. MPU の種類は MC68000、動作周波数は 10MHz です。IPLROM のバージョンは 1.0 です。 内蔵ハードディスクインターフェイスの種類は SCSI です。

32.4. X68000 XVI

The MPU type is MC68000 and the operating frequency is 16.7 MHz. The IPLROM version is 1.1. Internal hard disk interface type is SCSI. MPU の種類は MC68000、動作周波数は 16.7MHz です。IPLROM のバージョンは 1.1 です。 内蔵ハードディスクインターフェイスの種類は SCSI です。

32.5. Xellent30

Xellent30 on X68000 XVI. The MC68EC030 operates at twice the frequency of the MC68000. You can switch between MC68EC030 and MC68000 without resetting. X68000 XVI に Xellent30 を載せます。MC68EC030 は MC68000 の 2 倍の周波数で動作します。MC68EC030 と MC68000 をリセットせずに切り替えることができます。

32.6. X68000 Compact

MPU の種類は MC68000、動作周波数は 16.7MHz です。IPLROM のバージョンは 1.2 です。 内蔵ハードディスクインターフェイスの種類は SCSI です。 MPU の種類は MC68000、動作周波数は 16.7MHz です。IPLROM のバージョンは 1.2 です。 内蔵ハードディスクインターフェイスの種類は SCSI です。

32.7. X68000 Hybrid

The X68000 Hybrid is XEiJ's default model, a fictional X68000 Compact with an X68030 IPLROM. The MPU type is MC68000 and the operating frequency is 33.3 MHz. The version of IPLROM is IPLROM 1.6. The type of internal hard disk interface is SCSI. X68000 Hybrid は XEiJ のデフォルトの機種で、X68000 Compact に X68030 の IPLROM を載せた架空の機種です。MPU の種類は MC68000、動作周波数は 33.3MHz です。IPLROM のバージョンはIPLROM 1.6です。 内蔵ハードディスクインターフェイスの種類は SCSI です。

32.8. X68030 / 030Compact

The MPU type is MC68EC030 and the operating frequency is 25 MHz. The version of IPLROM is IPLROM 1.3. The type of internal hard disk interface is SCSI. MPU の種類は MC68EC030、動作周波数は 25MHz です。IPLROM のバージョンは 1.3 です。 内蔵ハードディスクインターフェイスの種類は SCSI です。

32.9. 060turbo

060turbo on X68030. The MPU type is MC68060 and the operating frequency is 50 MHz. The version of IPLROM is IPLROM 1.6. The type of internal hard disk interface is SCSI. X68030 に 060turbo を載せます。MPU の種類は MC68060、動作周波数は 50MHz です。IPLROM のバージョンはIPLROM 1.6です。 内蔵ハードディスクインターフェイスの種類は SCSI です。

32.10. 060turboPRO

060turboPRO is a fictional model of X68000 PRO with 060turbo. The MPU type is MC68060 and the operating frequency is 50 MHz. The version of IPLROM is IPLROM 1.6. The type of internal hard disk interface is SCSI. 060turboPRO は X68000 PRO に 060turbo を載せた架空の機種です。MPU の種類は MC68060、動作周波数は 50MHz です。IPLROM のバージョンはIPLROM 1.6です。 内蔵ハードディスクインターフェイスの種類は SASI です。

33. Mother board coprocessor マザーボードコプロセッサ

From a comparative view point between the mother board and daughter board, I call MC68882 on mother board of X68030 a mother board coprocessor. Mother board coprocessor is used when MC68EC030 performs floating point instructions. MC68060 on daughter board can access mother board coprocessor via CPU space. Presence and type of mother board coprocessor are displayed in the starting messages in 060turbo mode. ドーターボードにある MC68060 から見てマザーボードにある MC68882 をマザーボードコプロセッサと呼んでいます。X68030 (実機) で MC68EC030 が浮動小数点命令を実行するときに使用するコプロセッサに、060turbo (実機) と同様に MC68060 からアクセスできます。起動メッセージなどでマザーボードコプロセッサの有無と種類が表示されます。

34. Normal 2 button pad ノーマル 2 ボタンパッド

You can connect normal 2 button pads to joystick ports. It is a normal joy pad. No special joystick driver is required to use them. ジョイスティックポートにノーマル 2 ボタンパッドを接続できます。普通のジョイパッドです。特別なジョイスティックドライバは不要です。

Settings of normal 2 button pads are stored in the parameter normal2buttonN. ノーマル 2 ボタンパッドの設定はパラメータ normal2buttonN に保存されます。

35. OPM log OPM ログ

Writes to YM2151 registers during operation can be recorded with the elapsed time in units of 1 μ s and the performance can be replayed. 動作中の YM2151 のレジスタへの書き込みを 1 μ s 単位の経過時間とともに記録して演奏を再生できます。

You can check the emulation of YM2151 and the operation of the sound source driver. YM2151 のエミュレーションや音源ドライバの動作を確認できます。

36. Paste貼り付け

Transfers the text on the host machine's clipboard to the input buffer of the X68000's CON device (ASK68K.SYS). ホストマシンのクリップボードにあるテキストを X68000 の CON デバイス (ASK68K.SYS) の入力バッファに転送します。

36.1. Paste pipe貼り付けパイプ

On Windows, you can paste text from other processes via the named pipe "\\.\pipe\XEiJPaste". Put xeijwin.dll in the current directory or in a directory in your path. Windows のとき、名前付きパイプ「\\.\pipe\XEiJPaste」を介して他のプロセスからテキストを貼り付けられます。xeijwin.dll をカレントディレクトリまたはパスの通っているディレクトリに置いてください。

echo memfree > \\.\pipe\XEiJPaste

37. PCM interpolation algorithm PCM 補間アルゴリズム

PCM interpolation algorithms for converting the ADPCM sampling frequency (3.9kHz-31.3kHz) to the internal sampling frequency (62.5kHz) are : ADPCM のサンプリング周波数 (3.9kHz-31.3kHz) を内部サンプリング周波数 (62.5kHz) に変換するための PCM 補間アルゴリズムは以下の通りです :

38. Physical space monitor 物理空間モニタ

Physical space monitor shows devices assigned to each physical address. 物理アドレスに割り当てられているデバイスを表示します。

39. Printer プリンタ

Data that you output to printer port are converted into image files by each page. Fonts of host machine are used. For example, you can print a text file by doing : プリンタポートに出力されたデータを 1 ページずつ画像に変換してイメージファイルに出力します。ホストマシンのフォントを使います。例えば、テキストファイルは以下のようにすれば“印刷”できます。

B:\>type xxx.txt > prn

You can get a hard copy of screen by COPY key. Control code of the printer is "SHARP CZ 48-pin". Use PRNDRV.SYS (SHARP CZ 24-pin), which is the default printer driver, in Human68k environment. In case of SX-WINDOW, choose printer "SHARP CZ 48-pin" and color conversion system "Error diffusion (Floyd Steinberg) method" to get a fine color print. また、COPY キーで画面のハードコピーをとることができます。制御コードは「SHARP CZ 48 ピン」です。Human68k のプリンタドライバは標準の PRNDRV.SYS (SHARP CZ 24 ピン) を使います。SX-WINDOW ではプリンタを標準の「SHARP CZ 24 ピン」から「SHARP CZ 48 ピン」に変更してデフォルトの色変換方式を「誤差分散 (Floyd Steinberg) 方式」にすると綺麗に“カラー印刷”できます。

40. Program flow visualizer プログラムフロービジュアライザ

flowvisualizer.png

Program flow visualizer is a tool to visualize the branch log in real time. It shows where the program counter is walking in 4GB address space. By clicking a bright spot to disassemble code, you can tell what is done there. You will understand large structure of the program easily than tracing each instruction. プログラムフロービジュアライザは 分岐ログ をリアルタイムに可視化するツールです。プログラムカウンタが 4GB のアドレス空間のどこを巡回しているのかがひと目でわかり、クリックで逆アセンブルさせればそこで何をやっているのかもすぐにわかります。1 命令ずつトレースするよりもプログラムの大きな構造を把握しやすいと思います。

41. Raster break point ラスタブレークポイント

MPU stops at the beginning of the horizontal front porch of a specified fixed raster or the current IRQ raster. You can easily trace V-DISP, H-SYNC and CRTC IRQ interrupt routines because the MPU and the synchronous signal of CRTC stop simultaneously. That is difficult to do on real machines. 指定された固定ラスタまたは IRQ ラスタの水平フロントポーチの先頭で MPU を停止させます。MPU が止まると CRTC の同期信号も止まるので、実機では困難な V-DISP、H-SYNC、CRTC IRQ の割り込みルーチンのトレースが簡単にできます。

42. Register list レジスタリスト

Contents of program counter, status register, general registers and floating point registers are displayed on register window. Situation of the establishment of condition is shown too. プログラムカウンタ、ステータスレジスタ、汎用レジスタ、浮動小数点レジスタなどの内容を表示します。 条件の成立状況が表示されます。

Core control buttons are located. コア制御ボタンが配置されています。

43. Root pointer list ルートポインタリスト

You can choose a task that you want to stop in multi-task environment. マルチタスク環境で停止させるタスクを選択できます。

44. RS-232C and terminal RS-232C とターミナル

From the above three, you can choose two to connect. In the following, they are written as RS-232C, terminal, and serial port, respectively. 以上の 3 つから、2 つを選んで接続できるようにしました。 以下ではそれぞれ RS-232C、ターミナル、シリアルポートと書きます。

For example, small file exchanges can be made between the emulator and the actual machine. 例えば、エミュレータと実機の間で小規模なファイル交換ができます。

  1. Prepare a serial port on the host machine and connect it directly to the actual X680x0 machine with an RS-232C crossover cable. ホストマシンにシリアルポートを用意して RS-232C クロスケーブルで X680x0 実機と直結します。
  2. Connect the terminal to the serial port and send ZM.X (and RSDRV.SYS if necessary) to the actual X680x0 device with the terminal function. ターミナルとシリアルポートを接続し、ターミナルの機能で X680x0 実機に ZM.X(と必要ならば RSDRV.SYS) を送信します。
  3. Connecting the RS-232C and serial port creates a file exchange environment using ZM.X between the emulator and the actual device. RS-232C とシリアルポートを接続すると、エミュレータと実機の間で ZM.X によるファイル交換環境が出来上がります。

The sxmr.bas and TeraTerm written in file exchange with Windows are no longer needed and only XEiJ and ZM.X are needed for file exchange. RSDRV.SYS is on the Human68k 3.0 system disk and is used to set flow control to RTS. Windows とのファイル交換に書いた sxmr.bas と TeraTerm は不要になり、XEiJ と ZM.X だけでファイル交換ができます。RSDRV.SYS は Human68k 3.0 のシステムディスクに入っていてフロー制御を RTS にするとき使います。

Select RS-232C and terminal from the config menu to open the RS232C and terminal window. The RS-232C and terminal window is divided into connection, communication settings, transfer, and terminal. 「設定」メニューの「RS-232C とターミナル」を選択すると「RS232C とターミナル」ウインドウが開きます。 「RS232C とターミナル」ウインドウは「接続」、「通信設定」、「転送」、「ターミナル」に分かれています。

In the "Connection" section of the "RS232C and terminal" window, you can select whether to connect to a terminal (Terminal), RS-232C (AUX), or serial port (COM3, etc.). This setting is stored in the parameter rs232cconnection. Pressing the "Refresh" button will re-search the serial port. 「RS232C とターミナル」ウインドウの「接続」では、ターミナル (Terminal)、RS-232C(AUX)、シリアルポート (COM3 など) のどれとどれを接続するか選択します。 この設定はパラメータ rs232cconnectionに保存されます。 「更新」ボタンを押すとシリアルポートが再検索されます。

44.1. Connect terminal and RS-232C ターミナルと RS-232C を接続する

When a terminal (Terminal) and RS-232C (AUX) are connected, the ROM debugger can be operated with the terminal as before. Also, when you want to copy a string of characters displayed on the screen by a command, you can easily copy it by using "CTTY AUX" to move the command prompt to the terminal and execute the command. ターミナル (Terminal) と RS-232C(AUX) を接続すると、従来通りターミナルで ROM デバッガを操作できます。 また、コマンドが画面に表示した文字列をコピーしたいとき、「CTTY AUX」でコマンドプロンプトをターミナルに移してコマンドを実行すると簡単にコピーできます。

44.2. Connect serial port and RS-232C シリアルポートと RS-232C を接続する

By connecting a serial port (e.g. COM3) and RS-232C (AUX), serial communication between X680x0 on XEiJ and a device outside the host machine is possible. You may be able to exchange files with the actual X680x0 machine and even play communication games. シリアルポート (COM3 など) と RS-232C(AUX) を接続すると、XEiJ 上の X680x0 とホストマシンの外にある機器の間でシリアル通信ができます。X680x0 実機とファイルのやり取りをしたり、通信対戦もできるかも知れません。

44.3. Connect serial port and terminal シリアルポートとターミナルを接続する

If you connect a serial port (COM3, etc.) to a terminal (Terminal), you can move the command prompt of the actual X680x0 device to the terminal. In the "Communication settings" section, match the settings with those of the actual device and enter "CTTY AUX" on the actual device. シリアルポート (COM3 など) とターミナル (Terminal) を接続すると、X680x0 実機のコマンドプロンプトをターミナルに移すことができます。 「通信設定」で実機と設定を合わせて実機で「CTTY AUX」と入力します。

"Communication settings" in the "RS232C and terminal" window is used when a serial port (e.g. COM3) is connected to a terminal (Terminal). It selects baud rate, data bits, parity, stop bit, and flow control. These settings are stored in the parameter terminalsettings. 「RS232C とターミナル」ウインドウの「通信設定」は、シリアルポート (COM3 など) とターミナル (Terminal) を接続しているときに使います。 ボーレート、データビット、パリティ、ストップビット、フロー制御を選択します。 この設定はパラメータ terminalsettingsに保存されます。

The "Send file" button under "Transfer" in the "RS232C and terminal" window is used to transfer a small file from the host to the actual X680x0 device when the serial port (COM3, etc.) is connected to the terminal (Terminal). Type "CTTY AUX" on the actual device to move the command prompt of the actual device to the terminal, press the "Send file" button, select a file, and press the "Send" button. The selected file is converted into a self-restoring file named a.r that does not contain any control code, and is sent in the following order: string "copy aux a.r", new line, contents of a.r, string "a.r", new line. As long as COMMAND.X is running on the actual device, the process of converting a binary file into a file that does not contain control codes, sending it, and restoring it is done automatically. 「RS232C とターミナル」ウインドウの「転送」の「ファイル送信」ボタンは、シリアルポート (COM3 など) とターミナル (Terminal) を接続しているとき、ホストから X680x0 実機に小さいファイルを転送したいときに使います。 実機で「CTTY AUX」と入力して実機のコマンドプロンプトをターミナルに移し、「ファイル送信」ボタンを押してファイルを選択して、「送信」ボタンを押します。 選択されたファイルが、制御コードを含まない a.r という自己復元ファイルに変換され、文字列「copy aux a.r」、改行、a.r の内容、文字列「a.r」、改行の順に送信されます。 実機で COMMAND.X さえ動いていれば、バイナリファイルを制御コードを含まないファイルに変換して送信して復元する作業が自動で行われます。

This transfer function is a simple one that uses the COMMAND.X copy command. The file to be transferred must fit into the memory of the actual device, including the area needed for decompression. Once the transfer is started, it cannot be stopped. The transfer may not be stopped due to communication errors. If the decoder is corrupted, a white window may appear. If the file is corrupted, a CRC error will be displayed. If the transfer fails, check the flow control, lower the baud rate, and try again. Data bits must be 8 bits. この転送機能は COMMAND.X の copy コマンドを用いる簡易的なものです。 転送するファイルは解凍に必要な領域を含めて実機のメモリに収まらなければなりません。 転送を始めたら途中で止められません。 通信エラーで転送が止まらなくなることがあるかも知れません。 デコーダが破損したときは白窓が表示されるかも知れません。 ファイルが破損したときは CRC エラーが表示されます。 転送に失敗するときはフロー制御を確認してボーレートを下げてやり直してください。 データビットは 8 ビットに限ります。

44.4. Modification 改造

Turning on the 7.5MHz checkbox changes the SCC operating frequency from 5MHz to 7.5MHz. 7.5MHz チェックボックスを ON にすると SCC の動作周波数が 5MHz から 7.5MHz に変更されます。

Nominal vs. theoretical baud rateボーレートの公称値と理論値の比較
modeモードSCC set valueSCC 設定値at 5MHz5MHz のときat 7.5MHz7.5MHz のとき
nominal公称値theoretical理論値error誤差nominal公称値theoretical理論値error誤差
0208175.00075.012+0.000112.500112.518+0.000
11040150.000149.952-0.000225.000224.928-0.000
2519300.000299.904-0.000450.000449.856-0.000
3258600.000600.962+0.002900.000901.442+0.002
41281200.0001201.923+0.0021800.0001802.885+0.002
5632400.0002403.846+0.0023600.0003605.769+0.002
6314800.0004734.848-0.0147200.0007102.273-0.014
7149600.0009765.625+0.01714400.00014648.438+0.017
8619200.00019531.250+0.01728800.00029296.875+0.017
9238400.00039062.500+0.01757600.00058593.750+0.017
10076800.00078125.000+0.017115200.000117187.500+0.017

45. Scanline effect 走査線エフェクト

In low-resolution mode, you can choose how to represent gaps between scanning lines. This is a feature designed to give the atmosphere of a CRT in a non-powerful execution environment. It is well known that two vertical dots on an LCD monitor cannot represent one vertical dot on a CRT. 低解像度モードのとき走査線の隙間を表現する方法を選択できます。 これは非力な実行環境でブラウン管の雰囲気を出そうとして作られた機能です。 液晶モニタの縦 2 ドットでブラウン管の縦 1 ドットを表現できないことは百も承知です。

If the vertical magnification of the screen is not an integer multiple and not large enough, the scanline effect will not look good. Use Fixed scale to set the screen's vertical magnification to an integer multiple. 画面の縦方向の倍率が整数倍でなくかつ十分に大きくないとき、走査線エフェクトは綺麗に見えません。 固定倍率を用いて画面の縦方向の倍率を整数倍にしてください。

Off なし

Copies the displayed raster as is. 表示したラスタをそのままコピーします。

Weak

Copies the displayed raster with brightness multiplied by 7/8. 表示したラスタを明るさを 7/8 倍してコピーします。

Medium

Copies the displayed raster with brightness multiplied by 3/4. 表示したラスタを明るさを 3/4 倍してコピーします。

Strong

Copies the displayed raster with brightness multiplied by 1/2. 表示したラスタを明るさを 1/2 倍してコピーします。

Black

Draw a black line. 黒線を描きます。

46. Screen mode test 表示モードテスト

Screen mode test assists debugging of emulator by overwriting registers of CRTC, video controller and sprite controller with arbitrary value. CRTC、ビデオコントローラ、スプライトコントローラのレジスタに任意の値を上書きすることで、エミュレータ自身のデバッグを補助します。

46.1. Pattern test パターンテスト

Sprite patterns are overwritten by test patterns that show the pattern number in hexadecimal. Near sprites are displayed brighter and distant sprites are displayed darker. You can play games that you get used to play while the test patterns are displayed. スプライトパターンにパターン番号を 16 進数で書いたパターンを上書きすることで、表示されているスプライトのパターン番号がわかるようにします。手前のスプライトのパターン番号は明るく、奥のスプライトとバックグラウンドのパターン番号は暗く表示されるようになっており、遊び慣れたゲームならばパターン番号を表示した状態でプレイできます。

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

The seamless mouse mode is default mouse mode of XEiJ. Mouse cursor of host machine turns into mouse cursor of X68000 and acts as mouse cursor of IOCS or SX-WINDOW when it moves over the screen of X68000. You can operate software of X68000 that uses a mouse with the feeling of applications of host machine without monopolizing mouse cursor of host machine. Jong helps to understand effect of the seamless mouse mode. You can also easily operate DSHELL that is a special browser for the Dennou Club. In the case of SX-WINDOW (FSX.X version 3.10), you can also use the actual screen mode under the seamless mouse mode if edge acceleration is enabled. シームレスマウスモードは XEiJ のデフォルトのマウスモードです。ホストマシンのマウスカーソルが X68000 の画面に差し掛かった瞬間に X68000 のマウスカーソルに化け、X68000 の画面から出た瞬間にホストマシンのマウスカーソルに戻ります。ホストマシンのマウスカーソルは X68000 のマウスカーソルに化けている間だけ X68000 の IOCS または SX-WINDOW のマウスカーソルとして振る舞います。X68000 用のマウスを使うソフトウェアをマウスカーソルを占有せずにホストマシンのアプリケーションに近い感覚で操作することができます。シームレスマウスモードの効果は じょんぐ を見ていただくとわかりやすいと思います。電脳倶楽部 の DSHELL もらくらく操作できます。SX-WINDOW (FSX.X version 3.10) の場合は 縁部加速 を ON にすると実画面モードもシームレスのまま操作できます。

You can return the mode from the exclusive mouse mode to the seamless mouse mode by one of F12 key, wheel click or Alt-right click. エクスクルーシブマウスモード のとき F12 キーを押すか、ホイールクリックするか、Alt キーを押しながら右ボタンをクリックするとシームレスマウスモードに切り替わります。

47.1. How to make the seamless mouse mode シームレスマウスモードの作り方

To stick mouse cursor of X68000 on mouse cursor of host machine, perform reverse accelerating calculation by relative position of them. Make transparent mouse cursor of host machine while it moves over the screen of X68000 and mouse cursor of X68000 is displayed. If you know current position of mouse cursor and the formula of reverse accelerating calculation, you will be able to perform the same method on other emulators. X68000 のマウスカーソルとホストマシンのマウスカーソルの相対位置を元に逆アクセラレーション計算を行ってマウスデータを作り、X68000 のマウスカーソルをホストマシンのマウスカーソルの真下に貼り付けます。さらに、X68000 のマウスカーソルが表示されていてホストマシンのマウスカーソルが X68000 の画面の上にある間だけホストマシンのマウスカーソルを透明にします。これでホストマシンのマウスカーソルが X68000 の画面の上にある間だけ X68000 のマウスカーソルに化けたように見えます。マウスカーソルの座標とアクセラレーションの計算式が分かれば IOCS でなくても、あるいは X68000 のエミュレータでなくても、同じことができると思います。

47.2. How to click by the multi-touch trackpad on Macbook Macbook のマルチタッチトラックパッドでクリックする方法

Left click…Apple menu→System Preferences→Trackpad→Enable "Tap to click". Tap with one finger. 左クリック…「リンゴ」→「システム環境設定」→「トラックパッド」の「タップでクリック」を ON にしておいて、1 本指でタップします。

Right click…Apple menu→System Preferences→Trackpad→Enable "Secondary click" and choose "Click or tap with two fingers". Tap with two fingers. 右クリック…「リンゴ」→「システム環境設定」→「トラックパッド」の「副ボタンのクリック」を ON にして「2 本指でクリックまたはタップ」を選択しておいて、2 本指でタップします。

48. Shiromadokun 白窓君

You can connect the LCD device Shiromadokun to joystick ports. Shiromadokun device driver JLCDDRV.x is included in Gekikou Dennou Club Volume 3 and Gekkan Dennou Club Volume 147. LCD デバイス白窓君をジョイスティックポートに接続できます。白窓君デバイスドライバ JLCDDRV.x は激光電脳倶楽部 3 号と月刊電脳倶楽部 147 号に収録されています。

You can select Japanese specification or European specification with the parameter shiromadokunN. パラメータ shiromadokunN で日本仕様と欧州仕様を選択できます。

49. Sound interpolation algorithm 音声補間アルゴリズム

Sound interpolation algorithms for converting the internal sampling frequency (62.5kHz) to the output sampling frequency (48kHz) are : 内部サンプリング周波数 (62.5kHz) を出力サンプリング周波数 (48kHz) に変換するための音声補間アルゴリズムは以下の通りです :

50. Sound monitor 音声モニタ

soundmonitor.png

Waveforms, frequency distribution (spectrum analyzer), keyboards, tone data and ADPCM status are shown in the sound monitor of XEiJ. XEiJ の音声モニタには、波形、周波数分布 (スペクトラムアナライザ)、鍵盤、音色データおよび ADPCM の状態が表示されます。

Waveforms are waveforms before mixing OPM and ADPCM. You can zoom the graph in the direction of time axis by left-click or right-click. And you can zoom the graph in the direction of amplitude axis by Shift-left click or Shift-right click. Click the button in the bottom right corner to stop the graph before zooming a particular place. 波形は OPM と ADPCM の合成前の波形です。左クリックまたは右クリックで時間方向を拡大縮小、Shift キーを押しながら左クリックまたは右クリックで振幅方向を拡大縮小できます。波形の狙ったところを拡大縮小させたいときは右下のボタンで更新を停止させてから行います。

Frequency axis of the spectrum analyzer (FFT analyzer) are divided into five ranges to achieve both high resolution in lower range and high speed in upper range. Frequency axis is adjusted to the keyboard below instead of writing numerals. Emission lines of simple tones appear just above the center of corresponding key regardless of its color. スペクトラムアナライザ (FFT アナライザ) は低音域の分解能と高音域の反応速度を両立させるために周波数の範囲を 5 分割しています。また、どこが何 Hz か数字で書く代わりに周波数を下の鍵盤に合わせてあり、単純な音色ならば白鍵でも黒鍵でも鍵の中央の真上に輝線が現れます。

The keyboard shows which key is pressed. The nearest key to the frequency that consists of KC (KEY CODE) and KF (KEY FRACTION) in equal temperament reacts. 鍵盤はキーオンとリリースの様子を示しています。平均律で KC (KEY CODE) と KF (KEY FRACTION) を合わせた周波数に近い鍵が反応します。

The tone data are transformed contents of YM2151 registers in the format of MML tone definition data. It may be easier to read than raw data of registers. Displayed tone data do not always express the played sound because there are items that can not be perfectly recovered by only contents of YM2151 registers of a certain moment in MML tone definition data. 音色データは YM2151 のレジスタの内容を MML の音色定義データのフォーマットに変換したものです。レジスタの内容をそのまま表示するよりも読みやすいかも知れません。MML の音色定義データにはある瞬間の YM2151 のレジスタの内容だけでは復元できない項目もあるので、表示されたデータをそのまま用いても同じ音が出るとは限りません。

In the ADPCM status section, source oscillator frequency (4MHz | 8MHz | 16MHz), frequency division ratio (1/1024 | 1/768 | 1/512), sampling frequency (3.9kHz | 5.2kHz | 7.8kHz | 10.4kHz | 15.6kHz | 20.8kHz | 31.3kHz), playing (PLAY), data exists (DATA), left output (LEFT) and right output (RIGHT) are displayed. ADPCM の状態は、原発振周波数 (4MHz | 8MHz | 16MHz)、分周比 (1/1024 | 1/768 | 1/512)、サンプリング周波数 (3.9kHz | 5.2kHz | 7.8kHz | 10.4kHz | 15.6kHz | 20.8kHz | 31.3kHz)、再生中 (PLAY)、データあり (DATA)、左側出力 (LEFT)、右側出力 (RIGHT) が表示されます。

51. Source oscillator frequency 原発振周波数

The source oscillator frequency is the source of the sampling frequency of the ADPCM sound source. In case of an unmodified X68000, you can choose the source oscillator frequency from 8MHz and 4MHz. And you can choose the frequency division ratio from 1/1024, 1/768 and 1/512. Therefore, available sampling frequencies are 3.9kHz, 5.2kHz, 7.8kHz, 10.4kHz and 15.6kHz. ここで言う原発振周波数とは ADPCM 音源のサンプリング周波数の元となるオシレータ (水晶振動子) の発振周波数のことです。X68000 の ADPCM 音源は原発振周波数を 8MHz と 4MHz から、分周比を 1/1024、1/768、1/512 からそれぞれ選択できるので、サンプリング周波数は 3.9kHz、5.2kHz、7.8kHz、10.4kHz、15.6kHz の 5 種類となっています。

Method to replace the 4MHz oscillator with the 16MHz oscillator was published by Taki Yasushi in the article "project to improve sound quality of built-in ADPCM" in the fourth edition of "low-tech workshop" in the August 1994 issue of "Oh!X" magazine. Like the article, you can change the source oscillator frequency of XEiJ to 16MHz. The sampling frequencies after modification are 7.8kHz, 10.4kHz, 15.6kHz, 20.8kHz and 31.3kHz. PCM data will be reproduced in sampling frequency 31.3kHz by keeping PCM8A.X with switch "-M1 -F2". Oh!X 1994 年 8 月号の「ローテク工作実験室 第 4 回 内蔵 AD PCM 高音質化計画」(瀧康史さん) で 4MHz のオシレータを 16MHz のものに換装する方法が紹介されており、XEiJ はこの方法で ADPCM 音源を改造できます。改造後のサンプリング周波数は 7.8kHz、10.4kHz、15.6kHz、20.8kHz、31.3kHz の 5 種類になり、PCM8A.X に -M1 -F2 というスイッチを指定して常駐させることで PCM データがサンプリング周波数 31.3kHz で再生されるようになります。

You can confirm current source oscillator frequency, frequency division ratio and sampling frequency by the sound monitor. 現在の原発振周波数、分周比およびサンプリング周波数は 音声モニタ で確認することができます。

frequency division ratio 分周比
1/10241/7681/512
source oscillator frequency 原発振周波数4MHz3.9kHz5.2kHz7.8kHz
8MHz7.8kHz10.4kHz15.6kHz
16MHz15.6kHz20.8kHz31.3kHz

52. Sprite pattern viewer スプライトパターンビュア

All defined sprite patterns are displayed. 定義されているスプライトパターンをすべて表示します。

53. Stereoscopic viewing 立体視

It supports stereoscopic viewing using the STEREOSCOPIC connector on the back of the X68000. X68000 の背面にある STEREOSCOPIC コネクタを用いる立体視に対応しています。

The stereoscopic viewing method can be selected from naked-eye crossing method, naked-eye parallel method, side-by-side method, and top-and-bottom method. 立体視の方法を、裸眼交差法、裸眼平行法、サイドバイサイド、トップアンドボトムから選択できます。

54. Triple precision floating point number 三倍精度浮動小数点数

In X68030 mode and 060turbo mode, XEiJ performs floating point arithmetic in higher precision than MC68882. Parameters and results can be read and written as 96-bit triple precision that is 16-bit longer than 80-bit extended precision. MC68882 stores an extended precision floating point number to memory with inserting 16-bit reserved area between exponent and mantissa. So an extended precision floating point number consumes a 96-bit area. XEiJ stores the least 16-bit of mantissa of a triple precision floating point number to the reserved area. Be careful when you use binary data that has non-zero reserved area in other environment. XEiJ は X68030 および 060turbo モードのとき浮動小数点演算を MC68882 よりも高い精度で行い、その引数や結果を MC68882 の拡張精度 (80 ビット) よりも 16 ビット多い三倍精度 (96 ビット) で読み書きすることができます。MC68882 は拡張精度浮動小数点数を 16 ビットの予約領域を挟んで 96 ビットを消費する形でメモリに書き込みますが、XEiJ はその予約領域に三倍精度浮動小数点数の仮数部の末尾の 16 ビットを格納します。予約領域が $0000 になっていないのでバイナリデータを他所の環境で利用する場合は注意してください。

54.1. Example: Check the internal representation of the circular constant 例 : 円周率の内部表現を確認する

π = 3.141592653589793238462643383...

-l200000 20000d
  00200000      fmovecr.x       #$00,FP0
  00200004      fmove.x FP0,$00200010
  0020000C      _EXIT

In the case of extended precision 拡張精度のとき

0xc90fdaa22168c235/262 = 3.1415926535897932385128... (19 digit) (19 桁)

-g=200000
program terminated normally
-d200010 20001b
00200010  4000 0000 C90F DAA2 2168 C235                     @...ノ.レ「!hツ5

In the case of triple precision 三倍精度のとき

0xc90fdaa22168c234c4c6/278 = 3.141592653589793238462642109... (24 digit) (24 桁)

-g=200000
program terminated normally
-d200010 20001b
00200010  4000 C4C6 C90F DAA2 2168 C234                     @.トニノ.レ「!hツ4

55. CYBER STICK サイバースティック

A cyber stick can be connected to the joystick port. The analog mode can be operated with an XInput gamepad, and the digital mode can be operated with an XInput gamepad or keyboard. Cyberstick button assignments can be set in the joystick port settings window or with the parameters cyberstickanalogN and cyberstickdigitalN. ジョイスティックポートにサイバースティックを接続できます。 アナログモードは XInput 方式のゲームパッドで、また、デジタルモードは XInput 方式のゲームパッドまたはキーボードで操作できます。 サイバースティックのボタンの割り当てはジョイスティックポート設定ウインドウまたはパラメータcyberstickanalogNおよびcyberstickdigitalNで設定できます。

56. XInput support XInput 対応

When using Windows, the normal 2 button pad, the MEGA DRIVE 3 button pad, the MEGA DRIVE 6 button pad, and the cyber stick can be operated with an XInput gamepad. This functionality can be configured in the joystick port settings window or with the parameter xinput. Place the included xeijwin.dll in the current directory or in a directory in your path. Windows のとき、ノーマル 2 ボタンパッド、メガドラ 3 ボタンパッド、メガドラ 6 ボタンパッドおよびサイバースティックを XInput 方式のゲームパッドで操作できます。 この機能はジョイスティックポート設定ウインドウまたはパラメータ xinputで設定できます。 付属の xeijwin.dll をカレントディレクトリまたはパスの通っているディレクトリに置いてください。

57. Z keyboard support Z キーボード対応

In a Windows 10 and Microsoft IME or Google Japanese Input environment, all keys on the X68000 Z keyboard can be entered, with some limitations, by remapping the special keys to the F13-F24 keys using Microsoft PowerToys Keyboard Manager. You can control the 7 LEDs on the X68000 Z keyboard. Windows 10 と Microsoft IME または Google 日本語入力の環境で、Microsoft PowerToys Keyboard Manager を用いて特殊キーを F13~F24 キーへ再マップすることで、いくつかの制約はありますが、X68000 Z のキーボードのすべてのキーを入力できます。X68000 Z のキーボードの 7 個の LED を制御できます。

This function can be selected in the Z keyboard menu or with the parameter zkeyboard. Place the included xeijwin.dll in the current directory or in a directory in your path. この機能はZ キーボードメニューまたはパラメータ zkeyboardで選択できます。 付属の xeijwin.dll をカレントディレクトリまたはパスの通っているディレクトリに置いてください。

57.1. Input from the Z keyboard Z キーボードからの入力

Operating environment 動作環境

Input from the Z keyboard was adjusted using the X68000 Z EARLY ACCESS KIT keyboard and Windows 10 with Microsoft IME and Google Japanese Input. Z キーボードからの入力は X68000 Z EARLY ACCESS KIT のキーボードと Windows 10 と Microsoft IME および Google 日本語入力の環境で調整しました。

Restrictions 制約

Most keys can be operated in the same way as on the X68000, but there are still restrictions on the operation of some keys. In Microsoft IME or Google Japanese Input, it seems that AWT key events are not fired when the BREAK (Halfwidth/Fullwidth) key, CAPS (CapsLock i.e. alphanumeric) key and XF4 (Katakana/Hiragana) key are released. XEiJ uses AWT key events to know when keys are pressed or released, so the current method does not know when these keys are released. Therefore, the behavior of these three keys was changed as follows. 大部分のキーを X68000 と同じように操作できますが、一部のキーの動作に制約が残っています。Microsoft IME または Google 日本語入力の場合、BREAK(半角 / 全角) キーと CAPS(CapsLock すなわち英数字) キーと XF4(カタカナ / ひらがな) キーを離したときに AWT のキーイベントが発火しないようです。XEiJ はキーが押されたまたは離されたことを AWT のキーイベントで把握しているので、現在の方法ではこれらのキーがいつ離されたのか分かりません。 そこで、この 3 個のキーの動作を以下のように変更しました。

Preparation 準備

The switch on the back of the Z keyboard is set to X68. The reason is that the CTRL and CAPS keys cannot be distinguished when set to WIN. The default key assignment is set to X68. Z キーボードの裏面のスイッチを X68 にします。 理由は、WIN になっていると CTRL キーと CAPS キーを区別できないからです。 キー割り当ての初期値は X68 に合わせてあります。

Install Microsoft PowerToys from the Microsoft Store and use Keyboard Manager to remap the following keys. Microsoft Store から Microsoft PowerToys をインストールして Keyboard Manager を使って以下のキーを再マップします。

keys to be remapped再マップするキー
key on Z keyboardZ キーボードのキーbefore remapping再マップ前after remapping再マップ後
CTRL (Right)CTRL (右)Ctrl (Right)F11
OPT.1F11F13
XF2IME Non-ConvertF14
XF3IME ConvertF15
XF4VK 242F16
CAPSVK 240F17
kanaかなPrint ScreenF18
romajiローマ字Scroll LockF19
hiraganaひらがなWin (Left)F20
fullwidth全角Win (Right)F21
symbol input記号入力Volume MuteF22
registration登録Volume DownF23
HELPVolume UpF24

Remove F13 for direct input in the key settings of the properties of Google Japanese Input. If you do not remove it, you will not be able to input OPT.1 which is remapped to F13. Google 日本語入力のプロパティのキー設定で直接入力の F13 を削除します。 これを削除しないと F13 に再マップされている OPT.1 が入力できません。

Key settings to be deleted削除するキー設定
モード入力キーコマンド
直接入力F13IME を有効化

Key assignments キー割り当て

Select Connect in the Z keyboard menu to switch to key assignments for the Z keyboard. You can change key assignments for the Z keyboard in the Key assignments window. Key assignments for the Z keyboard are stored in the parameter zkeymap. Z キーボードメニューで接続を選択すると、Z キーボード用のキー割り当てに切り替わります。 キー割り当てウインドウで Z キーボード用のキー割り当てを変更できます。Z キーボード用のキー割り当てはパラメータ zkeymapに保存されます。

57.2. Control of LEDs on the Z keyboard Z キーボードの LED の制御

You can control the 7 LEDs on the keyboard of the X68000 Z. Thanks to yunk for disclosing the control method. X68000 Z のキーボードにある 7 個の LED を制御できます。 制御方法を公開してくださったyunk さんに感謝します。

Z keyboard LED control I/O port Z キーボード LED 制御 I/O ポート

The LEDs on the Z keyboard are over-specified for an X68000 keyboard, and each of the seven LEDs can be independently specified with 256 levels of brightness. It would be a waste not to take advantage of this, so XEiJ provides a programmable mode that allows direct specification of LED brightness via the Z keyboard LED control I/O port in addition to the normal mode. Z キーボードの LED は X68000 のキーボードとしてはオーバースペックで、7 個の LED に独立してそれぞれ 256 段階の輝度を指定できます。 これを活用しないのはもったいないので、XEiJ ではノーマルモードの他に Z キーボード LED 制御 I/O ポートを介して LED の輝度を直接指定できるプログラマブルモードを用意しました。

The Z keyboard LED control I/O ports are temporarily located at addresses $00E9F040 to $00E9F04F. Changing bit 0 of address $00E9F048 from 0 to 1 switches from normal mode to programmable mode. In programmable mode, setting the LED brightness to addresses $00E9F040 to $00E9F046 and writing 1 to bit 1 of address $00E9F048 will send the set brightness to the keyboard. The brightness is 0 for off and 255 for on. In normal mode, dark corresponds to 32, slightly dark to 64, slightly bright to 128, and bright to 255. Z キーボード LED 制御 I/O ポートはアドレス $00E9F040~$00E9F04F に仮に配置されています。 アドレス $00E9F048 の bit0 を 0 から 1 に変更するとノーマルモードからプログラマブルモードに切り替わります。 プログラマブルモードのときアドレス $00E9F040~$00E9F046 に LED の輝度を設定してアドレス $00E9F048 の bit1 に 1 を書き込むと設定された輝度がキーボードに送信されます。 輝度は 0 が消灯、255 が点灯です。 ノーマルモードの暗いは 32、やや暗いは 64、やや明るいは 128、明るいは 255 に相当します。

Z keyboard LED control I/O portZ キーボード LED 制御 I/O ポート
I/O port address (temporary)I/O ポートアドレス (仮)contents内容
$00E9F040kanaかなbrightness of LED in programmable mode プログラマブルモードでの LED の輝度
$00E9F041romajiローマ字
$00E9F042code inputコード入力
$00E9F043CAPSCAPS
$00E9F044INSINS
$00E9F045hiraganaひらがな
$00E9F046fullwidth全角
$00E9F0470
$00E9F048bit00=normal modeノーマルモード, 1=programmable modeプログラマブルモード
bit11=send送信
bit2-70
$00E9F049-$00E9F04F0

LED operation chedk LED の動作確認

Check the LED operation check box in the Z keyboard menu to confirm that the LEDs are controlled. Z キーボードメニューの LED の動作確認チェックボックスを ON にすると LED を制御できているか確認できます。

zkeytest.x zkeytest.x

zkeytest.x tests the Z keyboard LED control I/O port. zkeytest.xは Z キーボード LED 制御 I/O ポートをテストします。