日立MB-S1に関する情報

メモリ空間2
ルーチン番号1

機能

画面に直線または四角形を描きます(LINE)。

解説

グラフィック・アクセス用インターフェイス・バッファ内に格納されているグラフィック座標2点を結ぶ直線、その2点を対角線とする四角形を描きます。
その他の処理に必要なパラメータもすべて、グラフィック・アクセス用インターフェイス・バッファに格納します。
グラフィック・アクセス用インターフェイス・バッファの先頭アドレスはシステム・ワークのPIFBUF($F010)に格納されています。

入力情報

LINEMAのグラフィック・アクセス用インターフェイス・バッファの構成
0123456789ABCDE
ERRCMDCLPOLSX1Y1X2Y2BF
コード・フィールドパラメータ・フィールド
  • ERR:エラーコード(出力)*1
  • CMD:コマンド・コード*2
  • CL:グラフィックのパレット・コード(0〜7)
  • PO:プロット・オプションおよびライン・スタイル・フラグ(↓下記参照)
  • LS:ライン・スタイル $0000〜$FFFF
  • X1:始点の水平方向座標値 スクリーン座標値
  • Y1:始点の垂直方向座標値 スクリーン座標値
  • X2:終点の水平方向座標値 スクリーン座標値
  • Y2:終点の垂直方向座標値 スクリーン座標値
  • BF:ボックス・フラグ
    • 0:直線を描く
    • 1:四角形を描く(,B)
    • 2:四角形を塗りつぶす(,BF)

プロット・オプションおよびライン・スタイル・フラグ

LS---OP
LSライン・スタイル・フラグ
0ライン・スタイル指定なし
1ライン・スタイル指定あり
ライン・スタイルは線の型を設定するパラメータで、16ビットのデータ($0000〜$FFFF)を最小単位とし、そのデータの各ビットと画面のドットが対応し、1にセットされているビットに対応するドットを表示させ、0にリセットされているビットに対応するドットは表示しません。
OPプロット・オプション
0無指定
1NOT
2PSET
3PRESET
4AND
5OR
6XOR

サンプル・プログラム

内容

座標上の(0,0)と(639,199)を対角線とする四角形を描きます。
 0           C000   LINEMA  EQU  *          --SAMPLE OF "LINEMA" ROUTINE--
 1 C000   20 0F             BRA  EXEC
 2           F010   PIFBUF  EQU  $F010      POINT ADDR. OF
 3                  *                                   GRAPHIC I/F BUFFER
 4 C002      00     PARM    FCB  $00        ERROR CODE
 5 C003      00             FCB  $00        COMMAND CODE
 6 C004      02             FCB  $02        PALETTE CODE
 7 C005      02             FCB  $02        PLOT OPTION
 8 C006      0000           FDB  $0000      LINE STYLE
 9 C008      0000           FDB  $0000      HORIZONTAL POSITION 1
10 C00A      0000           FDB  $0000      VERTICAL POSITION 1
11 C00C      027F           FDB  $027F      HORIZONTAL POSITION 2
12 C00E      00C7           FDB  $00C7      VERTICAL POSITION 2
13 C010      01             FCB  $01        BOX FLAG
14           C011   EXEC    EQU  *          ----- PROGRAM START -----
15 C011   BE F010           LDX  PIFBUF     X:GRAPHIC I/F BUFFER ADDR SET.
16 C014   31 8CEB           LEAY PARM,PCR   Y:PARM. START ADDR SET
17 C017   C6 0F             LDB  #$0F       B:PARM. START COUNT SET
18 C019   A6 A0     LOOP    LDA  ,Y+
19 C01B   A7 80             STA  ,X+
20 C01D   5A                DECB            PARM. SET END ?
21 C01E   26 F9             BNE  LOOP
22 C020 103F                SWI2            CALL "LINEMA" ROUTINE
23 C022      42             FCB  $42
24 C023      01             FCB  $01
25 C024   39                RTS

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます