Execute "make" in both environments of the host machine and X68000 in the directory "misc" by using the host file system. ホストファイルシステム を使い、同じ misc ディレクトリでホストマシンと X68000 の両方で make します。
Makefile to be used on the host machine. It generates fputest.s from efp.gp. ホストマシンで使う Makefile です。efp.gp を使って fputest.s を作ります。
$ make -f Makefile.host
Makefile.x68k is used to create the following files on the X68000. Makefile.x68k は X68000 で以下のファイルを作るときに使います。
B:\>make -f Makefile.x68k
Used for the "Send file" button under "Transfer" in the "RS232C and terminal" window. 「RS232C とターミナル」ウインドウの「転送」の「ファイル送信」ボタンで使います。
A Perl script that generates DrawingMode.java automatically. It does everything from making Japanese comments to formatting the Java code. DrawingMode.java を自動生成する Perl スクリプトです。日本語の注釈を作るところから Java のコードを整形するところまで全部やっています。
A GP script that calculates constant data for the floating point arithmetic routines and generates fputest.s automatically. 浮動小数点演算ルーチンの定数データと fputest.s を自動生成する GP スクリプトです。
A Perl script that generates favicon data of the Look and Feel automatically. ルックアンドフィールのファビコンのデータを自動生成する Perl スクリプトです。
A Perl script that converts binary files into strings. バイナリファイルを文字列に変換する Perl スクリプトです。
A Perl subroutine that draws graphs for comments of floating point arithmetic routines. 浮動小数点演算ルーチンの注釈の関数のグラフを描くライブラリです。
A GP script that generates code of the Hermite interpolation for ADPCM automatically. ADPCM のエルミート補間のコードを自動生成する GP スクリプトです。
The source code of hu260pat.x. hu260pat.x のソースコードです。
This is a patch to change Human 3.02 to ROM Human 2.60. It is not an executable program. Human 3.02 を ROM Human 2.60 にするパッチです。実行プログラムではありません。
These include files are used in Makefile.x68k. これらのインクルードファイルは Makefile.x68k で使います。
This is a Perl script that converts an array of byte's into a string to avoid the initialization code from becoming too large to compile. 初期化コードが巨大化してコンパイルできなくなるのを避けるために byte の配列を文字列に変換する Perl スクリプトです。
This is a Perl script that converts an array of char's into a string to avoid the initialization code from becoming too large to compile. 初期化コードが巨大化してコンパイルできなくなるのを避けるために char の配列を文字列に変換する Perl スクリプトです。
This is a tool that collects KeyEvent data when a key assigned to an X68000 key is pressed. X68000 のキーに割り当てるキーを押したときの KeyEvent のデータを収集するツールです。
Omusubi font which was created to characterize screenshots of XEiJ. O, the first letter of Omusubi, is wrapped in seaweed to be distinguished from 0. XEiJ のスクリーンショットに特徴を付けるために作ったおむすびフォントです。Omusubi の O に海苔を巻いて 0 と見分けられるようにしました。
This is the source code for the Omusubi font. おむすびフォントのソースコードです。
A Perl script that makes a list of instructions of M68000 family. It also outputs switch ~ case
in the core and the disassembler. M68000 ファミリの命令の一覧表を作る Perl スクリプトです。コアや逆アセンブラの switch~case も出力します。
A Perl script that displays a method to replace an integer division with a multiplication and a shift operation. It is used to make the program faster. 整数除算を乗算とシフトに変換する方法を表示する Perl スクリプトです。高速化のために多用しています。
$ perl misc/optdiv.pl 99999999 10000 x/10000==x*109951163>>>40 (0<=x<=494389998) [99999999*109951163==10995116190048837]
It means that x/10000
and x*109951163>>>40
are identical in the range of 0≤x≤494389998. You have to write the latter expression like (int)(x*109951163L>>>40)
because 99999999*109951163
is not in the range of int
in the Java language. これは 0≤x≤494389998 の範囲で整数除算の x/10000 と乗算とシフトの x*109951163>>>40 の結果が一致するという意味です。99999999/10000 は 32 ビット整数で計算できますが 99999999*109951163>>>40 は 64 ビット整数で計算する必要があるので Java のコードでは (int)(x*109951163L>>>40) のような書き方になります。
Perl script to convert patch data for making ROM Human 2.60 and patch data for making IPL/BIOS 1.6 into character strings. ROM Human 2.60 を作るためのパッチデータと IPL/BIOS 1.6 を作るためのパッチデータを文字列に変換するための Perl スクリプトです。
This is the source code for the patch data to make IPL/BIOS 1.6. IPL/BIOS 1.6 を作るためのパッチデータのソースコードです。
This is the patch data for making IPL/BIOS 1.6. IPL/BIOS 1.6 を作るためのパッチデータです。
Source code for SCSIEXROM 16 and SCSIINROM 16. SCSIEXROM 16 と SCSIINROM 16 のソースコードです。
SCSIEXROM 16. SCSIEXROM 16 です。
SCSIINROM 16. SCSIINROM 16 です。
A Perl script that dumps contents of specified files. It can output data as a Java source code. It is used to insert binary data into codes. 指定されたファイルの内容をダンプする Perl スクリプトです。Java のソースの形で出力できます。コードにバイナリデータを埋め込むときに使います。
A Perl script that calculate multiple precision 2/ π automatically for using in floating point arithmetic routines. This script uses the GMP. 浮動小数点演算ルーチンで使う 2/ π のデータを自動生成する Perl スクリプトです。GMP を使います。sin 関数は実数全体で定義されます。sin(x) を計算するとき通常は x を π /2 で割った余りを - π /4~+ π /4 の範囲で求めて多項式近似を行います。2n を π /2 で割った余りを正確に求めるにはおよそ n ビットの π の値が必要です。浮動小数点数で指数部の範囲は限られているので必要な桁数の 2/ π の値を定数として抱えておきます。使うときは n ビットの多倍長計算を行う必要はなくて 2/ π のデータの一部分だけを使います。
The source code of cir.x. cir.x のソースです。
A program that reads and writes the CIR of the mother board coprocessor in 060turbo mode. To check the emulator is working correctly or not, execute this program in both environment of a real machine and an emulator. There are some examples of this program as comments in the source code of the coprocessor. 060turbo モードのとき マザーボードコプロセッサ の CIR を読み書きするプログラムです。実機とエミュレータの両方で動かしてエミュレータのコプロセッサの動作を確認します。コプロセッサの注釈に実行例があります。
The source code of crtcmmtest.x. crtcmmtest.x のソースです。
A program that tests memory modes of CRTC (R20 bit10-8). Memory mode 2 (undocumented) and memory mode 5-7 (same as 4) are also tested. The extended graphic screen should be turned off before the test. CRTC のメモリモード (R20 のビット 10-8) の動作を確認するプログラムです。未公開のメモリモード 2 と、メモリモード 4 と同じ 5、6、7 もテストします。拡張グラフィック画面 が ON のときは OFF にしてリセットしてからテストしてください。
The source code of crtmodtest.x. crtmodtest.x のソースコードです。
This program is used to test the screen mode of IOCS _CRTMOD in IPLROM 1.6. IPLROM 1.6 の IOCS _CRTMOD の画面モードをテストするためのプログラムです。
B:\>crtmodtest CRTMODTEST for IPLROM 1.6 (2024-08-25) オプション -l 0-1 0=CRT,1=LCD -m 0-47 画面モード -s CRT/LCDをSRAMに保存する ┌───┬───────────┬───────────────────────────┐ │CRTMOD│実画面サイズ 色 ページ│ 水平同期 垂直同期 画面サイズ 備考 │ ├───┼───────────┼───────────────────────────┤ │ 0 │ 1024x1024 16 1 │ │ │ 4 │ 512x512 16 4 │ CRT 31.500kHz 55.458Hz 512x512 │ │ 8 │ 512x512 256 2 │ LCD 35.341kHz 56.546Hz 512x512 │ │ 12 │ 512x512 65536 1 │ │ ├───┼───────────┼───────────────────────────┤ │ 1 │ 1024x1024 16 1 │ │ │ 5 │ 512x512 16 4 │ CRT 15.980kHz 61.463Hz 512x480 インターレース │ │ 9 │ 512x512 256 2 │ LCD 35.341kHz 56.546Hz 512x480 │ │ 13 │ 512x512 65536 1 │ │ ├───┼───────────┼───────────────────────────┤ │ 2 │ 1024x1024 16 1 │ │ │ 6 │ 512x512 16 4 │ CRT 31.500kHz 55.458Hz 256x256 ラスタ二度読み │ │ 10 │ 512x512 256 2 │ LCD 34.500kHz 55.200Hz 256x256 ラスタ二度読み │ │ 14 │ 512x512 65536 1 │ │ ├───┼───────────┼───────────────────────────┤ │ 3 │ 1024x1024 16 1 │ │ │ 7 │ 512x512 16 4 │ CRT 15.980kHz 61.463Hz 256x240 │ │ 11 │ 512x512 256 2 │ LCD 34.500kHz 55.200Hz 256x240 ラスタ二度読み │ │ 15 │ 512x512 65536 1 │ │ ├───┼───────────┼───────────────────────────┤ │ 16 │ 1024x1024 16 1 │ CRT 31.500kHz 55.458Hz 768x512 │ │ 20 │ 512x512 256 2 │ LCD 35.056kHz 56.090Hz 768x512 │ │ 24 │ 512x512 65536 1 │ │ ├───┼───────────┼───────────────────────────┤ │ 17 │ 1024x1024 16 1 │ CRT 24.699kHz 53.116Hz 1024x424 │ │ 21 │ 512x512 256 2 │ LCD 35.056kHz 56.090Hz 768x600 │ │ 25 │ 512x512 65536 1 │ 変形 │ ├───┼───────────┼───────────────────────────┤ │ 18 │ 1024x1024 16 1 │ CRT 24.699kHz 53.116Hz 1024x848 インターレース │ │ 22 │ 512x512 256 2 │ LCD 35.056kHz 56.090Hz 768x1024 インターレース │ │ 26 │ 512x512 65536 1 │ 変形 │ ├───┼───────────┼───────────────────────────┤ │ 19 │ 1024x1024 16 1 │ CRT 31.500kHz 55.458Hz 640x480 VGAではない │ │ 23 │ 512x512 256 2 │ LCD 31.469kHz 59.940Hz 640x480 VGA │ │ 27 │ 512x512 65536 1 │ │ ├───┼───────────┼───────────────────────────┤ │ 28 │ 1024x1024 16 1 │ │ │ 29 │ 512x512 16 4 │ CRT 31.963kHz 56.273Hz 384x256 ラスタ二度読み │ │ 30 │ 512x512 256 2 │ LCD 31.963kHz 51.141Hz 384x256 ラスタ二度読み │ │ 31 │ 512x512 65536 1 │ │ ├───┼───────────┼───────────────────────────┤ │ 32 │ 1024x1024 16 1 │ │ │ 33 │ 512x512 16 4 │ CRT 31.500kHz 55.458Hz 512x512 │ │ 34 │ 512x512 256 2 │ LCD 35.056kHz 56.090Hz 512x512 │ │ 35 │ 512x512 65536 1 │ 正方形 │ ├───┼───────────┼───────────────────────────┤ │ 36 │ 1024x1024 16 1 │ │ │ 37 │ 512x512 16 4 │ CRT 31.963kHz 56.273Hz 256x256 ラスタ二度読み │ │ 38 │ 512x512 256 2 │ LCD 31.963kHz 51.141Hz 256x256 ラスタ二度読み │ │ 39 │ 512x512 65536 1 │ 正方形 │ ├───┼───────────┼───────────────────────────┤ │ 40 │ 1024x1024 16 1 │ │ │ 41 │ 512x512 16 4 │ CRT 31.500kHz 55.458Hz 512x256 ラスタ二度読み │ │ 42 │ 512x512 256 2 │ LCD 35.341kHz 56.546Hz 512x256 ラスタ二度読み │ │ 43 │ 512x512 65536 1 │ │ ├───┼───────────┼───────────────────────────┤ │ 44 │ 1024x1024 16 1 │ │ │ 45 │ 512x512 16 4 │ CRT 31.500kHz 55.458Hz 512x256 ラスタ二度読み │ │ 46 │ 512x512 256 2 │ LCD 35.341kHz 56.546Hz 512x256 ラスタ二度読み │ │ 47 │ 512x512 65536 1 │ スプライトは512x512 │ └───┴───────────┴───────────────────────────┘ B:\>
The source code of cylindertest.x. cylindertest.x のソースコードです。
Test the cylindrical scrolling of the text screen. Use the cursor keys to move, the CTRL key to move fast, and the ESC key to exit. テキスト画面の円筒スクロールをテストします。 カーソルキーで移動、CTRL キーで高速移動、ESC キーで終了します。
A sample program of the FE function instruction. FE ファンクション命令 のサンプルプログラムです。
The source code of fputest.x that was automatically generated by efp.gp. efp.gp で自動生成された fputest.x のソースです。
$ make -f Makefile.host fputest.s
A program that tests operations of floating point instructions except privilege instructions. It compares the actual results with the expected results. The expected results are not equivalent to the results of real machines. 特権命令を除く浮動小数点命令の動作を確認するテストプログラムです。演算結果を期待された結果 (実機の結果ではない) と比較します。
About 10MB of free area is required. 実行するにはフリーエリアが 10MB くらい必要です。
Specify an empty command line to read how to use. コマンドラインに何も書かないと使い方が表示されます。
B:\>fputest.x usage: fputest.x <mnemonic or option> ... FABS FACOS FADD ... -- Run tests selected by the first few letters of a mnemonic. all -- Run all tests. destination=0..[1] -- Check the destination operand. easy -- It's the same as margin=1 nans=0. failed=0..[1] -- Output the results of failed tests. fpsp=[0]..1 -- Test the instructions processed by the software package. hard -- It's the same as margin=0 nans=1. logging=0..[1] -- Output the results to "fputest.log". margin=0..[1]..11 -- The acceptable margin of error in transcendental functions. maximum=0..[100]..1000000 -- The maximum number of results outputted for each test. nans=[0]..1 -- Check the mantissa of NaNs. status=0..[1] -- Check the status register. stdout=0..[1] -- Output the results to the standard output. successful=[0]..1 -- Output the results of successful tests.
Specify all
to run all tests. Results are outputted to both of the standard output and the log file fputest.log. すべてのテストを実行するときは all
を指定します。結果は標準出力とログファイル fputest.log の両方に出力されます。
B:\>fputest.x all
begin: 2017-01-30T04:39:15+09:00
fpu: MC68882
option: destination easy failed fpsp=0 margin=1 maximum=100 nans=0 status successful=0
test: FABS.X FPm,FPn
score: tested=38136 failed=0(0.00%) successful=38136(100.00%)
―― Omission ――
―― 中略 ――
test: FTWOTOX.X FPm,FPn
score: tested=39576 failed=0(0.00%) successful=39576(100.00%)
total: tested=3028872 failed=0(0.00%) successful=3028872(100.00%)
end: 2017-01-30T04:40:11+09:00
For transcendental functions, differences from the expected results are allowed up to the least significant bit (1ulp). When you do not allow any errors, specify hard
or margin=0
. 超越関数は期待された結果と比較して末尾の 1 ビット (1ulp) までの誤差が許容されます。1 ビットの誤差も許さないときは hard
または margin=0
を指定します。
B:\>fputest.x hard all
begin: 2017-01-30T04:40:12+09:00
fpu: MC68882
option: destination failed fpsp=0 hard margin=0 maximum=100 nans status successful=0
test: FABS.X FPm,FPn
score: tested=38136 failed=0(0.00%) successful=38136(100.00%)
―― Omission ――
―― 中略 ――
test: FTWOTOX.X FPm,FPn
score: tested=39576 failed=0(0.00%) successful=39576(100.00%)
total: tested=3028872 failed=368(0.02%) successful=3028504(99.98%)
end: 2017-01-30T04:41:13+09:00
If you want to test a certain instruction, write the first few letters of a mnemonic instead of 'all'. For example, FSIN, FSINCOS and FSINH will be tested if you specify 'fsin'. 特定の命令だけテストするときは all の代わりにニモニックの先頭の数文字を書きます。例えば fsin を指定すると FSIN、FSINCOS、FSINH がテストされます。
B:\>fputest.x fsin begin: 2017-01-30T04:41:15+09:00 fpu: MC68882 option: destination easy failed fpsp=0 margin=1 maximum=100 nans=0 status successful=0 test: FSIN.X FPm,FPn score: tested=46872 failed=0(0.00%) successful=46872(100.00%) test: FSINCOS.X FPm,FPc:FPs score: tested=46872 failed=0(0.00%) successful=46872(100.00%) test: FSINH.X FPm,FPn score: tested=39576 failed=0(0.00%) successful=39576(100.00%) total: tested=133320 failed=0(0.00%) successful=133320(100.00%) end: 2017-01-30T04:41:22+09:00
Write until the dot of the operation size to test FSIN only. FSIN だけテストしたいときはオペレーションサイズのドットまで書きます。
B:\>fputest.x fsin. begin: 2017-01-30T04:41:24+09:00 fpu: MC68882 option: destination easy failed fpsp=0 margin=1 maximum=100 nans=0 status successful=0 test: FSIN.X FPm,FPn score: tested=46872 failed=0(0.00%) successful=46872(100.00%) total: tested=46872 failed=0(0.00%) successful=46872(100.00%) end: 2017-01-30T04:41:30+09:00
XEiJ の浮動小数点数の内部表現は MC68882 と異なり、拡張精度で言うところの「指数部が 0 でない非正規化数」や「小数部が 1 の並びでない NaN」をそのままの状態でレジスタに格納することができません。そのため、FMOVECR の一部がエラーになります。
MC68882 (実機) の FCOS、FSIN、FSINCOS、FTAN は引数の絶対値が大きくなるにつれて結果が意味をなさなくなります。このことはマニュアルに書かれていて開発当時の制約では諦めるしかなかったのだと思いますが、期待された結果ではないのでエラーになります。
MC68882 (実機) の FMOVECR で読み出される ROM の値はあちこち間違っているように見えますが、実機と同じ値を返さないとエラーになります。
MC68882 (実機) の FSGLDIV、FSGLMUL はアンダーフローしたとき、不正確な結果なのに FPSR の INEX2 と INEX をセットしなかったり、0 から遠ざかる方向に丸めなければならないのに切り捨てて 0 にしてしまうことがあります。これらは期待された結果ではないのでエラーになります。
instructiontest.x のソースです。HAS060.X version 3.09+89 以上でアセンブルできます。
A program that tests integer instructions except for privilege instructions. It compares operand registers, memories, condition codes and the presence of an exception occurrence with real X68030 and 060turbo, and outputs OK or ERROR according to the result. The comparison is performed not for every value of operands but for every format of operands. So this program does not show which value brings wrong results. OK does not mean the implementation of the instruction is always exact. Because not all combination of operands are tested. MPU の特権命令を除く整数命令の動作をテストします。オペランドに書かれたレジスタまたはメモリとコンディションコードの変化およびゼロ除算などの例外発生の有無が実機 (X68030 または 060turbo) と一致しているときは OK、異なるときは ERROR と表示されます。比較は引数の形式毎に行われます。内容毎ではないので、どの引数を与えたときに実機と異なる結果になったのかこのプログラムではわかりません。もちろん、あらゆる引数の組み合わせをテストしているわけではないので、OK と表示されたからといって命令の動作が間違っていないとは限りません。
Write the first few letters of a mnemonic to be tested on the command line. You can specify multiple instructions separated by commas. Write all
to run all tests. Change the level of the test by inserting easy
or hard
before a mnemonic. Undefined bits in condition codes are ignored on easy
and compared on hard
. The default is easy
. In addition, when a divide-by-zero occurs, Z and V are always ignored because these undefined condition codes are modified by causes other than operands in X68030. テストする命令のニモニックの先頭の文字をコマンドラインで指定します。命令は空白で区切って複数指定できます。all
を指定するとすべてのテストが実行されます。ニモニックの手前に easy
または hard
と書くことでテストのレベルを選択できます。easy
はコンディションコードの未定義のビットを無視します。hard
はコンディションコードの未定義のビットまで一致していなければエラーになります。デフォルトは easy
です。なお、ゼロ除算が発生したときの Z と V は MC68030 で引数以外の要因で変化することがあるので hard
でも無視されます。
B:\>instructiontest easy all hard all processor:MC68060, level:easy instruction expected actual abcd.b Dr,Dq $59d7dfd3 $59d7dfd3 OK 1.72s abcd.b -(Ar),-(Aq) $d4e484fa $d4e484fa OK 3.81s add.b Dr,Dq $ba2388e4 $ba2388e4 OK 5.31s add.w Dr,Dq $e7fbc8a3 $e7fbc8a3 OK 2.76s ―― Omission ―― ―― 中略 ―― tst.l #<data> $80995333 $80995333 OK 0.00s unlk Ar $0b6076c4 $0b6076c4 OK 0.35s unpk Dr,Dq,#<data> $4359d714 $4359d714 OK 0.67s unpk -(Ar),-(Aq),#<data> $5316c1a7 $5316c1a7 OK 1.18s processor:MC68060, level:hard instruction expected actual abcd.b Dr,Dq $fddca661 $fddca661 OK 1.99s abcd.b -(Ar),-(Aq) $116c5546 $116c5546 OK 3.49s chk.w (Ar),Dq $18ad244c $18ad244c OK 3.17s chk.l (Ar),Dq $10d41b6b $10d41b6b OK 3.50s ―― Omission ―― ―― 中略 ―― nbcd.b Dr $60ea153e $60ea153e OK 0.06s nbcd.b (Ar) $3d33357d $3d33357d OK 0.06s sbcd.b Dr,Dq $acce4f74 $acce4f74 OK 1.83s sbcd.b -(Ar),-(Aq) $d290f440 $d290f440 OK 3.55s tested:542, passed:542(100.00%), failed:0(0.00%) 1005.15s B:\>
The source code of optime.x. optime.x のソースコードです。
Measure the execution time of instructions. 命令の実行時間を計ります。
B:\>optime.x optime.x (2023-09-17) Measure the execution time of instructions -a has060 Assembler -f nop.s File containing instructions -i "nop" Semicolon-delimited instructions -s Measure in SRAM. Ask when SRAM in use -sn Same as -s but not measure when SRAM in use -sy Same as -s but measure even when SRAM in use -t %temp% Temporary directory -v Output verbose messages B:\>optime.x -i "nop" "nop" 0.412 us B:\>
A batch file that measures instruction execution time using optime.x and outputs the results to optitest.log. It is recommended to copy HAS060.X, optime.x and optitest.bat to the RAM disk and run them on the RAM disk. optime.x を使って命令の実行時間を計測し、結果を optitest.log へ出力するバッチファイルです。HAS060.X と optime.x と optitest.bat を RAM ディスクにコピーして、RAM ディスクで実行することをお勧めします。
The source code of r00bit0test.x. r00bit0test.xのソースコードです。
Verify that bit 0 of CRTC R00 is fixed to 1. Create 384x256 screens with horizontal totals of 68, 69, and 70, and measure the vertical cycle for each. When measured on the actual X68030, the vertical period for a horizontal total of 69 is the same as the vertical period for a horizontal total of 70. On an emulator where bit 0 of CRTC R00 is not fixed to 1, the vertical period when the horizontal total is 69 is halfway between the vertical period when the horizontal total is 68 and the vertical period when the horizontal total is 70. CRTC R00 の bit0 が 1 に固定されていることを確認します。384x256 の画面を水平トータルが 68、69、70 の場合について作り、それぞれ垂直周期を計測します。X68030 実機で計測すると、水平トータルが 69 の場合の垂直周期が 70 の場合の垂直周期と同じになります。CRTC R00 の bit0 が 1 に固定されていないエミュレータでは、水平トータルが 69 の場合の垂直周期が 68 の場合の垂直周期と 70 の場合の垂直周期の中間になります。
B:\>r00bit0test.x r00bit0test.x (2024-02-17) TEST 1: HTin=68 exp_HTout=68 exp_VP=17770 obs_VP=17770 obs_HTout=68 OK TEST 2: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 3: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 4: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 5: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 6: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 7: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 8: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 9: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 10: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 11: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18291 obs_HTout=70 OK TEST 12: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18293 obs_HTout=70 OK TEST 13: HTin=69 exp_HTout=70 exp_VP=18293 obs_VP=18293 obs_HTout=70 OK TEST 14: HTin=70 exp_HTout=70 exp_VP=18293 obs_VP=18293 obs_HTout=70 OK B:\>
The source code of smktest.x. smktest.xのソースコードです。
The program simply displays "XEiJ meets ShiroMadoKun" on ShiroMadoKun. XEiJ has a built-in Shiromadokun emulator and is also compatible with JoyPortUkun, so messages can be displayed on the actual Shiromadokun device. 白窓君に「XEiJ meets ShiroMadoKun」と表示するだけのプログラムです。XEiJ は白窓君エミュレータを内蔵しており、じょいぽーと U 君にも対応しているので白窓君実機にメッセージを表示することもできます。
The source code of spr256test.x. spr256test.xのソースコードです。
Test the simultaneous display of 256 sprites. スプライト 256 枚同時表示をテストします。
The source code of vcntest.x. vcntest.x のソースです。
A tool to check the action of the video controller. Operate it with a mouse. ビデオコントローラの動作を確認するためのツールです。マウスで操作します。
Command コマンド
Priority of sprite, text and graphic スプライトとテキストとグラフィックの優先順位
Priority of graphic planes グラフィックプレーンの優先順位
Turn screens on and off 画面の ON/OFF
Memory mode メモリモード
Zero translucence ゼロ半透明
Special priority and trancelucence 特殊プライオリティと半透明
Region designation 領域指定
Translucence 半透明
Text pallet テキストのパレット
Pallet and priority of sprites スプライトのパレットと優先順位
Pallet of background planes バックグラウンドのパレット
Color of text pallets テキストパレットのカラー
Color of sprite pallets スプライトパレットのカラー
Turn background planes on and off バックグラウンドの ON/OFF
Pallet of graphic planes グラフィックプレーンのパレット
Color of graphic pallets グラフィックパレットのカラー
The source code of vcntest2.x vcntest2.x のソースコードです。
A program that actually tests examples written as comments in the source code of the video controller. The kanji " 黄 ", which means yellow, should be painted yellow. The kanji " 赤 ", which means red, should be painted red. All kanji should be painted by the color of its meaning. Hit a key to go to the next test. ビデオコントローラのソースコードの注釈に書いた例を実際に試すプログラムです。『黄』は黄色で、『赤』は赤で、すべての漢字はその意味の色で塗られなければなりません。キーを押すと次のテストに進みます。
Below, the verb "evenize" denotes "clear the least significant bit" and the verb "oddize" denotes "set the least significant bit". These bit operations are equivalent to x&-2 and x|1. 以下では、偶数化は最下位ビットをクリアすることを意味し、奇数化は最下位ビットをセットすることを意味します。これらのビット演算は x&-2 および x|1 と等価です。
Three screens are displayed. The order of screens from the near side are the sprite screen, the graphic screen and the text screen. The pallet code of the sprite screen is $10 and its color is yellow. The color of the graphic screen is red. The pallet code of the text screen is $0 and its color is black. Because all 4bit pallet code of the sprite screen and the text screen is zero and the 8bit pallet code of the sprite screen is not zero, the sprite screen is retained and the text screen is removed. The color of the nearest non-zero color code is yellow, which is the color of the sprite screen. 3 枚の画面が表示されます。画面の順序は手前からスプライト画面、グラフィック画面、テキスト画面です。スプライト画面のパレットコードは $10、色は黄色です。グラフィック画面の色は赤です。テキスト画面のパレットコードは $0、色は黒です。スプライト画面とテキスト画面の 4bit パレットコードがすべて 0 でスプライト画面の 8bit パレットコードが 0 ではないので、スプライト画面を残してテキスト画面を取り除きます。一番手前の 0 でないカラーコードの色はスプライト画面の黄色です。
Three screens are displayed. The order of screens from the near side are the sprite screen, the graphic screen and the text screen. The pallet code of the sprite screen is $10 and its color is yellow. The color of the graphic screen is red. The pallet code of the text screen is $1 and its color is gray. Because the 4bit pallet code of the sprite screen is zero and the 4bit pallet code of the text screen is not zero, the text screen is retained and the sprite screen is removed. The color of the nearest non-zero color code is red, which is the color of the graphic screen. 3 枚の画面が表示されます。画面の順序は手前からスプライト画面、グラフィック画面、テキスト画面です。スプライト画面のパレットコードは $10、色は黄色です。グラフィック画面の色は赤です。テキスト画面のパレットコードは $1、色は灰色です。スプライト画面の 4bit パレットコードが 0 でテキスト画面の 4bit パレットコードが 0 ではないので、テキスト画面を残してスプライト画面を取り除きます。一番手前の 0 でないカラーコードの色はグラフィック画面の赤です。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2 and it is red. The pallet code of the second graphic plane is 2 and it is red. The first graphic plane and the second graphic plane are not blended because the pallet code of the first graphic plane is an even number. Red, which is the color of the first graphic plane, is outputted because the pallet code of the first graphic plane is not zero. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤です。2 番目のグラフィックプレーンのパレットコードは 2、色は赤です。1 番目のグラフィックプレーンのパレットコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。1 番目のグラフィックプレーンのパレットコードが 0 ではないので 1 番目のグラフィックプレーンの色の赤が出力されます。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2 and it is red. The pallet code of the second graphic plane is 3 and it is blue. The first graphic plane and the second graphic plane are not blended because the pallet code of the first graphic plane is an even number. Red, which is the color of the first graphic plane, is outputted because the pallet code of the first graphic plane is not zero. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤です。2 番目のグラフィックプレーンのパレットコードは 3、色は青です。1 番目のグラフィックプレーンのパレットコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。1 番目のグラフィックプレーンのパレットコードが 0 ではないので 1 番目のグラフィックプレーンの色の赤が出力されます。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 2 and it is red. The first graphic plane and the second graphic plane are blended because the pallet code of the first graphic plane is an odd number. The evenized pallet code of the first graphic plane is 2 and it is red. The oddized pallet code of the second graphic plane is 3 and it is blue. Red, which is the color of the evenized pallet code of the first graphic plane, and blue, which is the color of the oddized pallet code of the second graphic plane, are blended and become fuchsia. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 2、色は赤です。1 番目のグラフィックプレーンのパレットコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤です。2 番目のグラフィックプレーンの奇数化したパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の青が混ざって赤紫になります。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 3 and it is blue. The first graphic plane and the second graphic plane are blended because the pallet code of the first graphic plane is an odd number. The evenized pallet code of the first graphic plane is 2 and it is red. The oddized pallet code of the second graphic plane is 3 and it is blue. Red, which is the color of the evenized pallet code of the first graphic plane, and blue, which is the color of the oddized pallet code of the second graphic plane, are blended and become fuchsia. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 3、色は青です。1 番目のグラフィックプレーンのパレットコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤です。2 番目のグラフィックプレーンの奇数化したパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の青が混ざって赤紫になります。
In the following tests, the color of the pallet code 2 is red, its color code is an even number, the color of the pallet code 3 is blue, the color of the pallet code 4 is fuchsia and the color of the pallet code 5 is aqua. 以下のテストでは、パレットコード 2 の色は赤、カラーコードは偶数、パレットコード 3 の色は青、パレットコード 4 の色は赤紫、パレットコード 5 の色は水色です。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2, it is red and its color code is an even number. The pallet code of the second graphic plane is 2 and it is red. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an even number. The first graphic plane and the second graphic plane are not blended because the color code of the evenized pallet code of the first graphic plane is an even number. Red, which is the color of the first graphic plane, is outputted because the pallet code of the first graphic plane is an even number. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤、カラーコードは偶数です。2 番目のグラフィックプレーンのパレットコードは 2、色は赤です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは偶数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。1 番目のグラフィックプレーンのパレットコードが偶数なので 1 番目のグラフィックプレーンの色の赤が出力されます。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2, it is red and its color code is an even number. The pallet code of the second graphic plane is 3 and it is blue. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an even number. The first graphic plane and the second graphic plane are not blended because the color code of the evenized pallet code of the first graphic plane is an even number. Red, which is the color of the first graphic plane, is outputted because the pallet code of the first graphic plane is an even number. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤、カラーコードは偶数です。2 番目のグラフィックプレーンのパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは偶数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。1 番目のグラフィックプレーンのパレットコードが偶数なので 1 番目のグラフィックプレーンの色の赤が出力されます。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2, it is red and its color code is an even number. The pallet code of the second graphic plane is 4 and it is fuchsia. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an even number. The first graphic plane and the second graphic plane are not blended because the color code of the evenized pallet code of the first graphic plane is an even number. Red, which is the color of the first graphic plane, is outputted because the pallet code of the first graphic plane is an even number. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤、カラーコードは偶数です。2 番目のグラフィックプレーンのパレットコードは 4、色は赤紫です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは偶数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。1 番目のグラフィックプレーンのパレットコードが偶数なので 1 番目のグラフィックプレーンの色の赤が出力されます。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2, it is red and its color code is an even number. The pallet code of the second graphic plane is 5 and it is aqua. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an even number. The first graphic plane and the second graphic plane are not blended because the color code of the evenized pallet code of the first graphic plane is an even number. Red, which is the color of the first graphic plane, is outputted because the pallet code of the first graphic plane is an even number. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤、カラーコードは偶数です。2 番目のグラフィックプレーンのパレットコードは 5、色は水色です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは偶数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。1 番目のグラフィックプレーンのパレットコードが偶数なので 1 番目のグラフィックプレーンの色の赤が出力されます。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 2 and it is red. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an even number. The first graphic plane and the second graphic plane are not blended because the color code of the evenized pallet code of the first graphic plane is an even number. The oddized pallet code of the second graphic plane is 3 and it is blue. Blue, which is the color of the oddized pallet code of the second graphic plane, is outputted because the pallet code of the first graphic plane is an odd number. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 2、色は赤です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは偶数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。2 番目のグラフィックプレーンの奇数化したパレットコードは 3、色は青です。1 番目のグラフィックプレーンのパレットコードが奇数なので 2 番目のグラフィックプレーンの奇数化したパレットコードの色の青が出力されます。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 3 and it is blue. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an even number. The first graphic plane and the second graphic plane are not blended because the color code of the evenized pallet code of the first graphic plane is an even number. The oddized pallet code of the second graphic plane is 3 and it is blue. Blue, which is the color of the oddized pallet code of the second graphic plane, is outputted because the pallet code of the first graphic plane is an odd number. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは偶数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。2 番目のグラフィックプレーンの奇数化したパレットコードは 3、色は青です。1 番目のグラフィックプレーンのパレットコードが奇数なので 2 番目のグラフィックプレーンの奇数化したパレットコードの色の青が出力されます。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 4 and it is fuchsia. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an even number. The first graphic plane and the second graphic plane are not blended because the color code of the evenized pallet code of the first graphic plane is an even number. The oddized pallet code of the second graphic plane is 5 and it is aqua. Aqua, which is the color of the oddized pallet code of the second graphic plane, is outputted because the pallet code of the first graphic plane is an odd number. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 4、色は赤紫です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは偶数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。2 番目のグラフィックプレーンの奇数化したパレットコードは 5、色は水色です。1 番目のグラフィックプレーンのパレットコードが奇数なので 2 番目のグラフィックプレーンの奇数化したパレットコードの色の水色が出力されます。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 5 and it is aqua. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an even number. The first graphic plane and the second graphic plane are not blended because the color code of the evenized pallet code of the first graphic plane is an even number. The oddized pallet code of the second graphic plane is 5 and it is aqua. Aqua, which is the color of the oddized pallet code of the second graphic plane, is outputted because the pallet code of the first graphic plane is an odd number. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 5、色は水色です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは偶数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが偶数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンは混ざりません。2 番目のグラフィックプレーンの奇数化したパレットコードは 5、色は水色です。1 番目のグラフィックプレーンのパレットコードが奇数なので 2 番目のグラフィックプレーンの奇数化したパレットコードの色の水色が出力されます。
In the following tests, the color of the pallet code 2 is red, its color code is an odd number, the color of the pallet code 3 is blue, the color of the pallet code 4 is fuchsia and the color of the pallet code 5 is aqua. 以下のテストでは、パレットコード 2 の色は赤、カラーコードは奇数、パレットコード 3 の色は青、パレットコード 4 の色は赤紫、パレットコード 5 の色は水色です。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The pallet code of the second graphic plane is 2 and it is red. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The first graphic plane and the second graphic plane are blended because the color code of the evenized pallet code of the first graphic plane is an odd number. The oddized pallet code of the second graphic plane is 3 and it is blue. Red, which is the color of the evenized pallet code of the first graphic plane, and blue, which is the color of the oddized pallet code of the second graphic plane, are blended and become fuchsia. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤、カラーコードは奇数です。2 番目のグラフィックプレーンのパレットコードは 2、色は赤です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは奇数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。2 番目のグラフィックプレーンの奇数化したパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の青が混ざって赤紫になります。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The pallet code of the second graphic plane is 3 and it is blue. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The first graphic plane and the second graphic plane are blended because the color code of the evenized pallet code of the first graphic plane is an odd number. The oddized pallet code of the second graphic plane is 3 and it is blue. Red, which is the color of the evenized pallet code of the first graphic plane, and blue, which is the color of the oddized pallet code of the second graphic plane, are blended and become fuchsia. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤、カラーコードは奇数です。2 番目のグラフィックプレーンのパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは奇数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。2 番目のグラフィックプレーンの奇数化したパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の青が混ざって赤紫になります。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The pallet code of the second graphic plane is 4 and it is fuchsia. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The first graphic plane and the second graphic plane are blended because the color code of the evenized pallet code of the first graphic plane is an odd number. The oddized pallet code of the second graphic plane is 5 and it is aqua. Red, which is the color of the evenized pallet code of the first graphic plane, and aqua, which is the color of the oddized pallet code of the second graphic plane, are blended and become gray. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤、カラーコードは奇数です。2 番目のグラフィックプレーンのパレットコードは 4、色は赤紫です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは奇数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。2 番目のグラフィックプレーンの奇数化したパレットコードは 5、色は水色です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の水色が混ざって灰色になります。
Two graphic planes are displayed. The pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The pallet code of the second graphic plane is 5 and it is aqua. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The first graphic plane and the second graphic plane are blended because the color code of the evenized pallet code of the first graphic plane is an odd number. The oddized pallet code of the second graphic plane is 5 and it is aqua. Red, which is the color of the evenized pallet code of the first graphic plane, and aqua, which is the color of the oddized pallet code of the second graphic plane, are blended and become gray. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 2、色は赤、カラーコードは奇数です。2 番目のグラフィックプレーンのパレットコードは 5、色は水色です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは奇数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。2 番目のグラフィックプレーンの奇数化したパレットコードは 5、色は水色です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の水色が混ざって灰色になります。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 2 and it is red. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The first graphic plane and the second graphic plane are blended because the color code of the evenized pallet code of the first graphic plane is an odd number. The oddized pallet code of the second graphic plane is 3 and it is blue. Red, which is the color of the evenized pallet code of the first graphic plane, and blue, which is the color of the oddized pallet code of the second graphic plane, are blended and become fuchsia. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 2、色は赤です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは奇数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。2 番目のグラフィックプレーンの奇数化したパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の青が混ざって赤紫になります。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 3 and it is blue. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The first graphic plane and the second graphic plane are blended because the color code of the evenized pallet code of the first graphic plane is an odd number. The oddized pallet code of the second graphic plane is 3 and it is blue. Red, which is the color of the evenized pallet code of the first graphic plane, and blue, which is the color of the oddized pallet code of the second graphic plane, are blended and become fuchsia. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは奇数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。2 番目のグラフィックプレーンの奇数化したパレットコードは 3、色は青です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の青が混ざって赤紫になります。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 4 and it is fuchsia. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The first graphic plane and the second graphic plane are blended because the color code of the evenized pallet code of the first graphic plane is an odd number. The oddized pallet code of the second graphic plane is 5 and it is aqua. Red, which is the color of the evenized pallet code of the first graphic plane, and aqua, which is the color of the oddized pallet code of the second graphic plane, are blended and become gray. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 4、色は赤紫です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは奇数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。2 番目のグラフィックプレーンの奇数化したパレットコードは 5、色は水色です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の水色が混ざって灰色になります。
Two graphic planes are displayed. The pallet code of the first graphic plane is 3 and it is blue. The pallet code of the second graphic plane is 5 and it is aqua. The evenized pallet code of the first graphic plane is 2, it is red and its color code is an odd number. The first graphic plane and the second graphic plane are blended because the color code of the evenized pallet code of the first graphic plane is an odd number. The oddized pallet code of the second graphic plane is 5 and it is aqua. Red, which is the color of the evenized pallet code of the first graphic plane, and aqua, which is the color of the oddized pallet code of the second graphic plane, are blended and become gray. 2 枚のグラフィックプレーンが表示されます。1 番目のグラフィックプレーンのパレットコードは 3、色は青です。2 番目のグラフィックプレーンのパレットコードは 5、色は水色です。1 番目のグラフィックプレーンの偶数化したパレットコードは 2、色は赤、カラーコードは奇数です。1 番目のグラフィックプレーンの偶数化したパレットコードのカラーコードが奇数なので 1 番目のグラフィックプレーンと 2 番目のグラフィックプレーンが混ざります。2 番目のグラフィックプレーンの奇数化したパレットコードは 5、色は水色です。1 番目のグラフィックプレーンの偶数化したパレットコードの色の赤と 2 番目のグラフィックプレーンの奇数化したパレットコードの色の水色が混ざって灰色になります。
zkeytest.s is the source code of zkeytest.x. zkeytest.s はzkeytest.xのソースコードです。
zkeytest.x tests the Z keyboard LED control. zkeytest.x は Z キーボード LED 制御をテストします。
The latest version of 060turbo.sys. 060turbo.sys の最新版です。
The source code of crtmod16.x and crtmrb16.x. crtmod16.x と crtmrb16.x のソースコードです。
This is a resident program of IOCS _CRTMOD and IOCS _G_CLR_ON included in IPLROM 1.6. IPLROM 1.6 に含まれる IOCS _CRTMOD と IOCS _G_CLR_ON を常駐プログラムにしたものです。
B:\>crtmod16 crtmod16.x (2024-08-25) オプション -e CRTMODを拡張する -l 0-1 0=CRT,1=LCD -m 0-47 画面モード -r CRTMODの拡張を解除する B:\>crtmod16 -e -m16 crtmod16.x (2024-08-25) CRTMODを拡張しました B:\>db X68k Debugger version 3.00 Copyright 1987-1993 SHARP/Hudson Micro Processor Unit:16bit MC68000 Floating Point Co Processor:Softwere emulation. -d e82000 00E82000 0000 5294 0020 003E 0400 07C0 0420 07FE ..R[94]. .>...タ. .. 00E82010 8000 F800 8020 F83E 8400 FFC0 AD6A FFFE [80]...[80] .>[84]..タュj.. 00E82020 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00E82030 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00E82040 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00E82050 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00E82060 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00E82070 0000 0000 0000 0000 0000 0000 0000 0000 ................ -q B:\>crtmod16 -r CRTMODの拡張を解除しました B:\>
crtmrb16.x is a modification of crtmod16.x to reproduce the IPLROM 1.0 to 1.3 bug. crtmrb16.x は crtmod16.x に IPLROM 1.0~1.3 のバグを再現させる改造を施したものです。
IPLROM 1.0 to 1.3 has a bug in which IOCS _CRTMOD initializes the graphics palette with a different number of colors than the specified screen mode. Specifically, IOCS _CRTMOD ignores the number of colors specified by the screen mode specified in the _CRTMOD argument and initializes the graphics palette as 16 colors for 256x256, 256 colors for 512x512, and 65536 colors for 768x512, which is a nonsense behavior. If you call _G_CLR_ON after _CRTMOD according to the manner in which the graphics screen is displayed, there is no problem because _G_CLR_ON will re-initialize the graphics palette with the correct number of colors. If you display the graphics screen without calling _G_CLR_ON after _CRTMOD, the bug in _CRTMOD will be exposed. IPLROM 1.0~1.3 には、IOCS _CRTMOD がグラフィックパレットを指定された画面モードと異なる色数で初期化するというバグがあります。 具体的には、_CRTMOD の引数で指定された画面モードで定められた色数を無視して、256x256 は 16 色、512x512 は 256 色、768x512 は 65536 色とみなしてグラフィックパレットを初期化するという、ナンセンスな動きをします。 グラフィック画面を表示するときの作法に従って _CRTMOD の後に _G_CLR_ON を呼び出せば、_G_CLR_ON が正しい色数でグラフィックパレットを初期化し直すので問題ありません。_CRTMOD の後に _G_CLR_ON を呼び出さずにグラフィック画面を表示すると、_CRTMOD のバグが露見します。
Trouble is, it seems that some software is painting over the bug by initializing the graphics palette in a way that depends on this bug. Such software appears to work correctly with IPLROM 1.0 to 1.3, but when run under IPLROM 1.6/crtmod16.x, where the bug has been fixed, the bug is exposed and the display is corrupted. If you have software whose graphics palette is not correct only with IPLROM 1.6, you may be able to get the expected display by running it after "crtmrb16.x -e -m16". 困ったことに、一部のソフトウェアがこのバグに依存した方法でグラフィックパレットを初期化するというバグの上塗りをしているようです。そのようなソフトウェアは IPLROM 1.0~1.3 では正しく動作しているように見えますが、バグが修正された IPLROM 1.6/crtmod16.x の環境で動かすとバグの上塗りが露見して表示が乱れます。IPLROM 1.6 のときだけグラフィックパレットがおかしくなるソフトウェアがあるとき、「crtmrb16.x -e -m16」としてから動かすと期待通りの表示になるかも知れません。
When a bug is fixed and another bug is found that hides it, the correct course of action is not to restore the fixed bug, but to fix the newly found bug. Do not use crtmrb16.x on a regular basis, as it is intended to temporarily restore a bug that has been fixed when it is not possible to fix the newly found bug. あるバグを修正したらそれを隠していた別のバグが見つかったときの正しい対処方法は、修正したバグを復元することではなく、新たに見つかったバグを修正することです。crtmrb16.x は、新たに見つかったバグを修正できない場合に、一時的に、修正したバグを復元するためのものなので、常用しないでください。
B:\>crtmrb16 crtmrb16.x (2024-08-25) オプション -e CRTMODを拡張する -l 0-1 0=CRT,1=LCD -m 0-47 画面モード -r CRTMODの拡張を解除する B:\>crtmrb16 -e -m16 crtmrb16.x (2024-08-25) CRTMODを拡張しました B:\>db X68k Debugger version 3.00 Copyright 1987-1993 SHARP/Hudson Micro Processor Unit:16bit MC68000 Floating Point Co Processor:Softwere emulation. -d e82000 00E82000 0001 0001 0203 0203 0405 0405 0607 0607 ................ 00E82010 0809 0809 0A0B 0A0B 0C0D 0C0D 0E0F 0E0F ................ 00E82020 1011 1011 1213 1213 1415 1415 1617 1617 ................ 00E82030 1819 1819 1A1B 1A1B 1C1D 1C1D 1E1F 1E1F ................ 00E82040 2021 2021 2223 2223 2425 2425 2627 2627 ! !"#"#$%$%&'&' 00E82050 2829 2829 2A2B 2A2B 2C2D 2C2D 2E2F 2E2F ()()*+*+,-,-././ 00E82060 3031 3031 3233 3233 3435 3435 3637 3637 0101232345456767 00E82070 3839 3839 3A3B 3A3B 3C3D 3C3D 3E3F 3E3F 8989:;:;<=<=>?>? -q B:\>crtmrb16 -r CRTMODの拡張を解除しました B:\>
The source code of isHFS.x. isHFS.xのソースコードです。
Checks if the current drive or the specified drive is HFS. カレントドライブまたは指定されたドライブが HFS か調べます。
B:\>isHFS.x ドライブB:はHFSです B:\>isHFS.x d: ドライブD:はHFSではありません B:\>isHFS.x -h isHFS.x ドライブがHFSか調べます 使用法: isHFS [ドライブ名] 終了コード: 0=HFSではない 1=HFS
The source code of isXEiJ.x. isXEiJ.xのソースコードです。
Check if it is running on XEiJ. XEiJ 上で動作しているか調べます。
B:\>isXEiJ.x XEiJです B:\>isXEiJ -h isXEiJ.x XEiJか調べます 使用法: isXEiJ 終了コード: 0=XEiJではない 1=XEiJ
The source code of ppcon.x. ppcon.x のソースコードです。
A character display routine that supports proportional-pitch and right-justification used in the IPLROM 1.6 startup screen can be incorporated as a device driver or resident program. IPLROM 1.6 の起動画面で使われているプロポーショナルピッチや右寄せに対応した文字表示ルーチンをデバイスドライバまたは常駐プログラムとして組み込めるようにしたものです。
B:\>ppcon.x Proportional-Pitch CONsole version 0.10 オプション -f 固定ピッチに切り替える -k 常駐する -p プロポーショナルピッチに切り替える -q 表示を減らす -r 解除する -s サンプルを表示する -v 表示を増やす 制御文字 ^G $07 BL ベルを鳴らす ^H $08 BS カーソルを1桁左へ。左端では1行上の右端へ。上端では何もしない ^I $09 HT カーソルを次のタブ桁へ。なければ1行下の左端へ。下端ではスクロールアップして左端へ ^J $0A LF カーソルを1行下へ。下端ではスクロールアップ ^K $0B VT カーソルを1行上へ。上端では何もしない ^L $0C FF カーソルを1桁右へ。右端では1行下の左端へ。下端ではスクロールアップして左端へ ^M $0D CR カーソルを左端へ ^Z $1A SB 左上から右下まで消去。カーソルを左上へ ^[ $1B EC エスケープシーケンス開始 ^^ $1E RS カーソルを左上へ エスケープシーケンス ^[* 左上から右下まで消去。カーソルを左上へ ^[=rc カーソルをr-$20行,c-$20桁へ。rとcは文字 ^[D カーソルを1行下へ。下端ではスクロールアップ ^[E カーソルを1行下の左端へ。下端ではスクロールアップ ^[M カーソルを1行上へ。上端ではスクロールダウン ^[[>5l カーソルON ^[[>5h カーソルOFF ^[[?4l ジャンプスクロール ^[[?4h 8ドットスムーススクロール ^[[n@ カーソルから右にn桁挿入 ^[[nA カーソルをn行上へ。上端を超えるときは動かない ^[[nB カーソルをn行下へ。下端で止まる ^[[nC カーソルをn桁右へ。右端で止まる ^[[nD カーソルをn桁左へ。左端で止まる ^[[r;cH カーソルをr-1行,c-1桁へ。下端で止まる。右端で止まる ^[[r;cf カーソルをr-1行,c-1桁へ。下端で止まる。右端で止まる ^[[0J カーソルから右下まで消去する ^[[1J 左上からカーソルまで消去する ^[[2J 左上から右下まで消去する。カーソルを左上へ ^[[0K カーソルから右端まで消去する ^[[1K 左端からカーソルまで消去する ^[[2K 左端から右端まで消去する ^[[nL カーソルから下にn行挿入。カーソルを左端へ ^[[nM カーソルから下をn行削除。カーソルを左端へ ^[[nP カーソルから右をn桁削除 ^[[nX カーソルから右をn桁消去 ^[[nc 中央寄せ ^[[nl 左寄せ ^[[0m リセット ^[[1m 太字 ^[[2m 細字 ^[[3m 斜体 ^[[4m 下線 ^[[7m 反転 ^[[9m 取り消し線 ^[[21m 波線 ^[[22m 太字、細字解除 ^[[23m 斜体解除 ^[[24m 下線、波線解除 ^[[26m プロポーショナル ^[[27m 反転解除 ^[[29m 取り消し線解除 ^[[30m 黒 ^[[31m 水色 ^[[32m 黄色 ^[[33m 白 ^[[34m 太字、黒 ^[[35m 太字、水色 ^[[36m 太字、黄色 ^[[37m 太字、白 ^[[40m 反転、黒 ^[[41m 反転、水色 ^[[42m 反転、黄色 ^[[43m 反転、白 ^[[44m 反転、太字、黒 ^[[45m 反転、太字、水色 ^[[46m 反転、太字、黄色 ^[[47m 反転、太字、白 ^[[50m プロポーショナル解除 ^[[51m 四角囲み ^[[52m 丸囲み ^[[53m 上線 ^[[54m 四角囲み、丸囲み解除 ^[[55m 上線解除 ^[[73m 上付き ^[[74m 下付き ^[[75m 上付き、下付き解除 ^[[6n カーソル位置報告。^[[r;cRを入力 ^[[nr 右寄せ ^[[s カーソルの座標と文字属性を保存する ^[[u カーソルの座標と文字属性を復元する B:\>
The source code of set232c.x. set232c.x のソースコードです。
Change the current or startup RS-232C settings. 現在または起動時の RS-232C の設定を変更します。
B:\>set232c.x -h set232c.x (2024-05-04) Change current or startup RS-232C settings -5 Display baud rate at 5 MHz (default) -7 Display baud rate at 7.3728 MHz -c Change current RS-232C settings as in SPEED.X (default) -i Use initial setting value $4E07 9600 b8 pn s1 xon -q Do not display settings -s Change startup RS-232C settings as in SWITCH.X $xxxx Specify setting value by 4-digit hexadecimal number Baud rate at 5 MHz 75 150 300 600 1200 2400 4800 9600 19200 38400 76800 Baud rate at 7.3728 MHz 112.5 225 450 900 1800 3600 7200 14400 28800 57600 115200 Data b5 5-bit b6 6-bit b7 7-bit b7s 7-bit with SI/SO b8 8-bit Parity pn Non-parity po Odd parity pe Even parity Stop bit s1 Stop 1-bit s1.5 Stop 1.5-bit s2 Stop 2-bit Flow control none No flow control xon XON/XOFF flow control rts RTS/CTS flow control B:\>set232c.x 38400 Current RS-232C settings at 5 MHz are: $4C89 38400 b8 pn s1 rts B:\>
The source code of stupsnd.x. stupsnd.xのソースコードです。
Turn on/off startup sound switch of X68030 or higher and IPLROM 1.6. X68030 以上と IPLROM 1.6 の起動音のスイッチを on/off します。
B:\>stupsnd.x -? stupsnd.x (2024-03-04) turn on/off startup sound switch of X68030 or higher and IPLROM 1.6 options off turn off startup sound switch on turn on startup sound switch with key code 76 (o5c) 2..127 $02..$7F o5c etc. turn on startup sound switch with specified key code play play startup sound right now FM sound driver must be removed tone parameters kc,kf,tm,va[0],...,va[54] specify tone parameters kc -- key code kf -- key fraction tm -- time from key-on to key-off (unit is 1/10,000 of a second) va -- tone parameters common to OPMDRV.X save save register data to stupsnd.dat to reflect in the startup sound, inserting data into IPLROM 1.6 is required B:\>
The source code of vperiod.x. vperiod.xのソースコードです。
Measure the vertical period (vertical synchronous signal period). 垂直周期 (垂直同期信号の周期) を計測します。
B:\>vperiod.x vperiod.x (2024-02-17) obs_VP=18031 B:\>