X1/X1turbo (1986.9) |
MZ-2000/MZ-2200 (1986.9) |
MZ-2500 (1986.9) |
PC-8801 (1986.9) |
MZ-1500 (1987.2) |
SMC-777 (1987.2) |
MZ-80B/MZ-80B2 (1987.4) |
X68000 (1991.5 , 1991.9) |
データ | バイト数 | 内容 | データ | バイト数 | 内容 | データ | バイト数 | 内容 |
00h : LINE (連続した直線を描く) |
05h : CIRCLE FULL (円を塗りつぶす) |
0Bh : SET 3D PARAMETER (3D→2D変換用のパラメータを設定する) |
||||||
00h | 1 | コマンド | 05h | 1 | コマンド | 0Bh | 1 | コマンド |
n | 1 | 座標総数 | TILE | 4 | タイルパターン | Pnum | 1 | パラメータナンバー |
X1 | 2 | 座標1 | X | 2 | 中心座標 | DATA | 2 | 設定データ |
Y1 | 2 | Y | 2 | パラメータナンバー | ||||
… | … | … | R | 2 | 半径 | 0:CX | 物体の位置 (オフセット) |
|
Xn | 2 | 座標n | 06h : SET WINDOW (ウィンドウを設定する) |
1:CY | ||||
Yn | 2 | 2:CZ | ||||||
01h : SPLINE (3点を結ぶスプライン曲線を描く) |
06h | 1 | コマンド | 3:DX | 回転の中心座標 | |||
X1 | 2 | 左上座標 | 4:DY | |||||
01h | 1 | コマンド | Y1 | 2 | 5:DZ | |||
X1 | 2 | 座標1 | X2 | 2 | 右下座標 | 6:HEAD | 回転角(度) | |
Y1 | 2 | Y2 | 2 | 7:PITCH | ||||
X2 | 2 | 座標2 | ※起動後必ず設定する必要がある | 8:BANK | ||||
Y2 | 2 | 07h : SET MODE (グラフィックモードを設定する) |
※物体の位置は、MAGIC内部では次のSET 3D DATAで指定した座標に加算して処理される | |||||
X3 | 2 | 座標3 | ||||||
Y4 | 2 | 07h | 1 | コマンド | ||||
02h : BOX (2点を対角とする長方形を描く) |
MODE | 1 | ラインモード | 0Ch : SET 3D DATA (物体の3Dデータを設定する) |
||||
PLANE | 1 | プレーン | ||||||
02h | 1 | コマンド | ラインモード:描画するときの書き込みモード 0:RESET 1:XOR 2:OR 3:NOP プレーン:描画をするグラフィックプレーン 0:BLUE 1:RED 2:GREEN ※起動後必ず設定する必要がある |
0Ch | 1 | コマンド | ||
X1 | 2 | 座標1 | PCT | 1 | 頂点の数(n+1) | |||
Y1 | 2 | X0 | 2 | 頂点0 | ||||
X2 | 2 | 座標2 | Y0 | 2 | ||||
Y2 | 2 | Z0 | 2 | |||||
03h : TRIANGLE (三角形を塗りつぶす) |
… | … | … | |||||
08h : POINT (指定座標の色を調べる) |
Xn | 2 | 頂点n | |||||
03h | 1 | コマンド | Yn | 2 | ||||
X1 | 2 | 座標1 | 08h | 1 | コマンド | Zn | 2 | |
Y1 | 2 | X | 2 | 座標 | LCT | 1 | 線分の数(m) | |
X2 | 2 | 座標2 | Y | 2 | LS1 | 1 | 線分1 | |
Y2 | 2 | ※カラーコードがC202h番地に格納される ※座標が規定外ならカラーコードはFFhになる |
LE1 | 1 | ||||
X3 | 2 | 座標3 | … | … | … | |||
Y4 | 2 | LSm | 1 | 線分m | ||||
04h : BOX FULL (2点を対角とする長方形を塗りつぶす) |
09h : CLS (ウィンドウ内をクリアする) |
LEm | 1 | |||||
※ひとつの線分は2つの頂点ナンバーで指定する | ||||||||
09h | 1 | コマンド | ||||||
04h | 1 | コマンド | 0Ah : PALET (パレットを設定する) |
0Dh : TRANSLATE 3D→2D (3Dデータを3Dパラメータに従って2Dに変換し、ワークエリアに格納する) |
||||
TILE | 4 | タイルパターン | ||||||
X1 | 2 | 座標1 | 0Ah | 1 | コマンド | |||
Y1 | 2 | P0 | 1 | パレットカラー | 0Dh | 1 | コマンド | |
X2 | 2 | 座標2 | P1 | 1 | 0Eh : DISPLAY 2D (TRANSLATE 3D→2Dで変換したデータに従ってワイヤーフレーム表示する) |
|||
Y2 | 2 | P2 | 1 | |||||
P3 | 1 | 0Eh | 1 | コマンド | ||||
P4 | 1 | ※0Bh,0Ch,0Dhコマンドの実行後に行う必要があるが、ワークエリアの内容が破壊されていなければこの限りではない | ||||||
P5 | 1 | |||||||
P6 | 1 | |||||||
P7 | 1 | 0Fh : DONE (MAGICを終了し呼び出したシステムに戻る) |
||||||
0Fh | 1 | コマンド |
SMC-777 | プレーン2に対する描画は無視される |
MZ-80B/MZ-80B2 | GRAMが1ページのみの実装だった場合、プレーン0以外への描画が全てプレーン0に対して行われる |
MZ-2000/MZ-2200 | ハードとしてパレット機能がないため P1:青 P2:赤 P4:緑 に0以外の値を設定するとそのプレーンを表示、0で非表示という機能に変更 それ以外のパラメータは無効だが、一応8バイト分必要 |
SMC-777 | 色を正しく表示するためには4096色カラーパレットボードが必要、ただし使用している色は他機種と同じ8色のみ 同時表示は4色まで |
MZ-80B/MZ-80B2 | ハードとしてパレット機能がないため、P1とP2に0以外の値を設定するとそのプレーンを表示、0で非表示という機能に変更 それ以外のパラメータは無効だが、一応8バイト分必要 |