Table of contents目次

  1. Address translation caches monitorアドレス変換キャッシュモニタ
  2. Branch log分岐ログ
  3. CD-ROM
  4. Data break pointデータブレークポイント
    1. Mechanism of the data break pointデータブレークポイントの仕組み
  5. Debug consoleデバッグコンソール
  6. Disassemble list逆アセンブルリスト
  7. Edge acceleration縁部加速
  8. Exclusive mouse modeエクスクルーシブマウスモード
  9. Extended graphics screen拡張グラフィックス画面
  10. FC2 pinFC2 ピン
  11. FE function instructionsFE ファンクション命令
    1. Example: Integrate atan(x) from 0 to 1 by rectangle method in X-BASIC例: X-BASIC で atan(x) を 0 から 1 まで長方形近似で数値積分する
  12. Fixed frequency mode周波数固定モード
  13. Fixed load factor mode負荷率固定モード
  14. Floating point coprocessor board浮動小数点プロセッサボード
  15. FLOATn.X rejectionFLOATn.X の抑制
  16. Font editorフォントエディタ
  17. Full specification FPUフルスペック FPU
  18. High memoryハイメモリ
  19. Host file systemホストファイルシステム
  20. Intermittent drawing mode間欠描画モード
  21. Instruction break point命令ブレークポイント
  22. Java languageJava 言語
  23. Local memoryローカルメモリ
  24. Logical space monitor論理空間モニタ
  25. MEGA DRIVE 3 button padメガドラ 3 ボタンパッド
  26. MEGA DRIVE 6 button padメガドラ 6 ボタンパッド
  27. Memory dump listメモリダンプリスト
  28. Model機種
    1. X68000 EXPERT
    2. X68000 SUPER
    3. X68000 XVI
    4. X68000 Compact
    5. X68000 Hybrid
    6. X68030
    7. 060turbo
  29. Mother board coprocessorマザーボードコプロセッサ
  30. Normal 2 button padノーマル 2 ボタンパッド
  31. Paste貼り付け
  32. PCM interpolation algorithmPCM 補間アルゴリズム
  33. Physical space monitor物理空間モニタ
  34. Printerプリンタ
  35. Program flow visualizerプログラムフロービジュアライザ
  36. Raster break pointラスタブレークポイント
  37. Register listレジスタリスト
  38. Root pointer listルートポインタリスト
  39. Screen mode test表示モードテスト
    1. Pattern testパターンテスト
  40. SCSI ROM
  41. Seamless mouse modeシームレスマウスモード
    1. How to make the seamless mouse modeシームレスマウスモードの作り方
    2. How to click by the multi-touch trackpad on MacbookMacbook のマルチタッチトラックパッドでクリックする方法
  42. Shiromadokun白窓君
  43. Sound interpolation algorithm音声補間アルゴリズム
  44. Sound monitor音声モニタ
  45. Source oscillator frequency原発振周波数
  46. Sprite pattern viewerスプライトパターンビュア
  47. Terminalターミナル
  48. Triple precision floating point number三倍精度浮動小数点数
    1. Example: Check the internal representation of the circular constant例: 円周率の内部表現を確認する

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

atcmonitor.pngAddress 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 回までメモリ上の分岐ログに保存しています。分岐ログウインドウを開くとプログラムカウンタの変化を遡って逆アセンブルすることができます。

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. 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 を停止させます。「プログラムの誤動作の直接的な原因がコードやデータが破壊されているためであることは分かったけれど、いつ誰が壊したのか分からない」というときにデータブレークポイントが威力を発揮します。データブレークポイントを使えばコードやデータを破壊した命令を直接捉えることができます。その命令が正しく記述されたものではなく暴走していると思われる場合は 分岐ログ を使って 逆アセンブルリスト で近くにデバイス名または実行ファイル名が表示されるところまで遡ります。別の場所からコピーされたデータが壊れていたときはコピー元にデータブレークポイントを仕掛けます。効率よく問題の大元を見つけることができるでしょう。

4.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 上のコードやデータは物理アドレスが固定されていないので監視できないことです。

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

6. 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 で作成した逆アセンブルリストと容易に照合できるので、デバッグしたい場所に先回りしてブレークポイントを仕掛けるといった作業がやりやすいと思います。

7. 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 の実画面モードでマウスカーソルを画面の端に押し付けて画面をスクロールさせることができます。

8. 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 に依存しない独自のマウスドライバを使用するソフトウェアも操作できますが、ホストマシンのマウスカーソルを占有してしまうので、ホストマシンの他のアプリケーションを操作する度にマウスモードを切り替えなければならないという不便さがあります。

The exclusive mouse mode is available only if you started XEiJ from the command line. You can change the mode from the seamless mouse mode to the exclusive mouse mode by one of F12 key, wheel click or Alt-right click. エクスクルーシブマウスモードはコマンドラインから起動したときだけ使えます。シームレスマウスモード のとき F12 キーを押すか、ホイールクリックするか、Alt キーを押しながら右ボタンをクリックするとエクスクルーシブマウスモードに切り替わります。

9. Extended graphics screen 拡張グラフィックス画面

Extended graphics screens are graphics 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

10. 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 が動きます。

11. 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 で差し替えることはできません。

11.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…

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

You can set operation 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 のときは負荷率 90%、音声出力が OFF のときは負荷率 100% を上限としてそれ以上動作周波数が上がらないようになっています。

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

In the fixed load factor mode, operation 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. 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 MC68882 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 は MC68882 と命令互換のコプロセッサです。FLOAT3.X を利用できます。GCC(真里子版) または GCC2 でコンパイルして libc をリンクしたプログラムは FLOAT3.X を経由せずコプロセッサを直接操作します。

15. 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 が書かれていても組み込まれないようにします。

16. Font editor フォントエディタ

Font editor shows contents of CGROM. You can read and write font files, generate bitmap fonts by using fonts of host machine, and so on. CGROM の内容を表示します。直接編集はドット打ちしかできませんが、フォントファイルの読み書きやホストマシンのフォントを使ってビットマップフォントを生成することができます。

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

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

18. High memory ハイメモリ

High memory $01000000-$01FFFFFF (16MB), which is equivalent to TSUKUMO's TS-6BE16, is available on X68030 mode. Contents of high memory are saved to the configuration file. X68030 モードのとき九十九電気 (ツクモ) の TS-6BE16 相当のハイメモリ $01000000-$01FFFFFF (16MB) を利用できます。設定ファイルにハイメモリの内容を保存することができます。

19. 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 の環境を構築するのがとても面倒なことに思えてきます。

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

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

21. 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 にも仕掛けられます。

22. 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 モードは廃止されました。

23. Local memory ローカルメモリ

Local memory $10000000-$1FFFFFFF (16MB-256MB) is available on 060turbo mode. Contents of local memory are saved to the configuration file. 060turbo モードのときローカルメモリ $10000000-$1FFFFFFF (16MB-256MB) を利用できます。設定ファイルにローカルメモリの内容を保存することができます。

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

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

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

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

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

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

28. Model 機種

The type of X68000. When the model is specified by a menu or a parameter, the version of IPLROM, the type of the built-in hard disk interface, the type of MPU and the operation frequency are set according to the model. You do not need preparing IPLROM*.DAT files separately because they are read from XEiJ.jar. IPLROM data is modified after it has been read. ROM data of real 060turbo is not necessary too. X68000 の種類。メニューまたはパラメータで機種が指定されると、機種に応じた IPLROM のバージョン、内蔵ハードディスクインターフェイスの種類、MPU の種類と動作周波数が設定されます。IPLROM*.DAT ファイルは XEiJ.jar から読み込まれるので別途用意する必要はありません。IPLROM データは読み込まれた後に修正されます。060turbo の実機の ROM データも不要です。

28.1. X68000 EXPERT

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

28.2. X68000 SUPER

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

28.3. X68000 XVI

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

28.4. X68000 Compact

The type of MPU is MC68000 and the operation frequency is 25MHz. The version of IPLROM is 1.2. The type of the built-in hard disk interface is SCSI. MPU の種類は MC68000、動作周波数は 25MHz。IPLROM のバージョンは 1.2。内蔵ハードディスクインターフェイスの種類は SCSI。

28.5. X68000 Hybrid

X68000 Hybrid is a virtual model that has the ROM of X68030 on the body of X68000 and it is the default model of XEiJ. The type of MPU is MC68000 and the operation frequency is 33.3MHz. The version of IPLROM is 1.3. The type of the built-in hard disk interface is SCSI. X68000 Hybrid は X68000 に X68030 の ROM を載せた架空の機種で、XEiJ のデフォルトの機種です。MPU の種類は MC68000、動作周波数は 33.3MHz。IPLROM のバージョンは 1.3。内蔵ハードディスクインターフェイスの種類は SCSI。

28.6. X68030

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

28.7. 060turbo

The type of MPU is MC68060 and the operation frequency is 33.3MHz. The version of IPLROM is 1.5. The type of the built-in hard disk interface is SCSI. MPU の種類は MC68060、動作周波数は 33.3MHz。IPLROM のバージョンは 1.5。内蔵ハードディスクインターフェイスの種類は SCSI。

29. 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 からアクセスできます。起動メッセージなどでマザーボードコプロセッサの有無と種類が表示されます。

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

31. Paste 貼り付け

When XEiJ started from a command line, you can transfer texts from clip board of host machine to input buffer of CON device (ASK68K.SYS) of X68000 by using "Paste" (Shift+Alt+V). For example, you can copy and paste texts from a text file to command line of X68000. XEiJ はコマンドラインから起動したとき「貼り付け」(Shift+Alt+V) でホストマシンのクリップボードにあるテキストを X68000 の CON デバイス (ASK68K.SYS) の入力バッファに転送することができます。テキストファイルの中に書いてある文字列をコピーして X68000 のコマンドラインに貼り付けたいときなどに使います。

32. 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 補間アルゴリズムは以下の通りです :

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

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

34. 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) 方式」にすると綺麗に“カラー印刷”できます。

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

flowvisualizer.pngProgram 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 命令ずつトレースするよりもプログラムの大きな構造を把握しやすいと思います。

36. 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 の割り込みルーチンのトレースが簡単にできます。

37. 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. プログラムカウンタ、ステータスレジスタ、汎用レジスタ、浮動小数点レジスタなどの内容を表示します。条件の成立状況が表示されます。

You can control the operation of MPU by buttons. ボタンで MPU の動作を制御できます。

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

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

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

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

39.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 進数で書いたパターンを上書きすることで、表示されているスプライトのパターン番号がわかるようにします。手前のスプライトのパターン番号は明るく、奥のスプライトとバックグラウンドのパターン番号は暗く表示されるようになっており、遊び慣れたゲームならばパターン番号を表示した状態でプレイできます。

40. SCSI ROM

XEiJ automatically generates built-in SCSI ROM ($00FC0000-$00FC1FFF, 8KB) and expansion SCSI ROM ($00EA0000-$00EA1FFF, 8KB) from the resource file IPLROM30.DAT. SCSIINROM.DAT and SCSIEXROM.DAT are not required. XEiJ はリソースファイルの IPLROM30.DAT を元にして内蔵 SCSI ROM ($00FC0000-$00FC1FFF, 8KB) と拡張 SCSI ROM ($00EA0000-$00EA1FFF, 8KB) を自動生成します。SCSIINROM.DAT と SCSIEXROM.DAT は不要です。

41. 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. The exclusive mouse mode is available only if XEiJ has the keyboard focus. In Windows environment, if you press Windows key or Ctrl+Esc key to pop up the start menu, the keyboard focus is removed from XEiJ and the mode is forcibly returned to the seamless mouse mode. エクスクルーシブマウスモード のとき F12 キーを押すか、ホイールクリックするか、Alt キーを押しながら右ボタンをクリックするとシームレスマウスモードに切り替わります。なお、エクスクルーシブマウスモードは XEiJ がフォーカスを持っていることが前提なので、Windows のときは Windows キー (なければ Ctrl+Esc キー) を押してスタートメニューを出すと XEiJ からフォーカスが奪われて強制的にシームレスマウスモードに戻すことができます。

41.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 のエミュレータでなくても、同じことができると思います。

41.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 本指でタップします。

42. 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 で日本仕様と欧州仕様を選択できます。

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

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

44. Sound monitor 音声モニタ

soundmonitor.pngWaveforms, 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) が表示されます。

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

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

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

47. Terminal ターミナル

Terminal of RS-232C. It becomes the interface of ROM debugger. If you enter the command CTTY AUX to switch the console of Human68k to the terminal, you can easily copy output of commands of X68000 to the clip board of the host machine. RS-232C の端末です。ROM デバッガのインターフェイスになります。コマンド CTTY AUX で Human68k のコンソールをターミナルに移せば、X68000 のコマンドの出力をホストマシンのクリップボードに簡単にコピーすることができます。

48. 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 になっていないのでバイナリデータを他所の環境で利用する場合は注意してください。

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