日立MB-S1に関する情報

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

機能

メモリ上にグラフィックを転送します(GET)。

解説

グラフィック・アクセス用インターフェイス・バッファに格納されているパラメータに従って、画面上のグラフィック座標上の2点を対角線とした4角形内のグラフィック・パターンをメモリに転送します。

入力情報

グラフィック・アクセス用インターフェイス・バッファの構成
01234567891011121314151617181920212223...
ERRCMD--MSN-SX1SY1SX2SY2VARPNTPGVLEN----GETCLNCL1...CLn
  • MSN:転送先のメモリ空間番号
  • SX1:転送元の第1座標の水平方向値(スクリーン座標値)
  • SY1:転送元の第1座標の垂直方向値(スクリーン座標値)
  • SX2:転送元の第2座標の水平方向値(スクリーン座標値)
  • SY2:転送元の第2座標の垂直方向値(スクリーン座標値)
  • VARPNT:転送先のメモリ空間上での先頭アドレス
  • PGVLEN:転送するパターン・データの長さ
  • GETCLN:転送色フラグ
    $FF…画面上のカラーグラフィック・パターンをメモリに転送
    01〜08…指定した色のドット・パターンをメモリに転送
    00…現在のデフォルト色のドット・パターンをメモリに転送
  • CL1〜CLn:グラフィックのパレット番号 0〜7

転送先のメモリ

書式1書式2
1.機能概要画面上のカラーグラフィック・パターンをメモリに読み込む指定した色のドット・パターンをメモリに読み込む
2.座標系スクリーン座標スクリーン座標
3.メモリ内のデータ形式横のドット数(=X):2バイト
縦のドット数(=Y):2バイト
Blue:((X+7)\8)*Yバイト
Red:((X+7)\8)*Yバイト
Green:((X+7)\8)*Yバイト
横のドット数:2バイト
縦のドット数:2バイト
ドット・パターン:((X+7)\8)*Yバイト
指定色で塗られたドットを1、その他を0として読み込む

サンプル・プログラム

内容

画面上のグラフィック座標(0,0)、(200,64)の2点を対角線としたグラフィック・パターンを、メモリ空間上$Eのアドレス$B000へ転送します。
100 DEF MAP=0
110 CLEAR ,$A000
120 LOADM"GET"
130 LINE(50,5)-(170,5),PSET,3:LINE-(170,55),PSET,3
140 LINE-(50,55),PSET,3:LINE-(50,5),PSET,3
150 LINE(120,20)-(250,20),PSET,3:LINE-(250,100),PSET,3
160 LINE-(120,100),PSET,3:LINE-(120,20),PSET,3
170 PAINT(140,40),2,3
180 LINE(0,0)-(200,64),PSET,6,B
190 EXEC &HC000
200 END
 0           C000   GET     EQU  *          --SAMPLE OF "GET" ROUTINE--
 1 C000   20 19             BRA  STEP1
 2           F010   PIFBUF  EQU  $F010      POINT ADDR
 3                  *                       OF GRAPHIC I/F BUF.
 4 C002      00     PARM    FCB  $00        ERROR CODE
 5 C003      00             FCB  $00        COMMAND CODE
 6 C004      0000           FCD  $0000      NOT USE(2Bytes)
 7 C006      0F             FCB  $0F        TRANSFER MAP NO
 8 C007      00             FCB  $00        NOT USE(1Byte)
 9 C008      0000           FDB  0          HORIZONTAL POSITION1
10 C00A      0000           FDB  0          VERTICAL   POSITION1
11 C00C      00C8           FDB  200        HORIZONTAL POSITION2
12 C00E      0040           FDB  64         VERTICAL   POSITION2
13 C010      A000           FDB  $A000      VARIABLE POINT ADDR
14 C012      5074           FDB  $5074      DATA LENGTH
15 C014      0004           RMB  $04        NOT USE(4Bytes)
16 C018      FF             FCB  $FF        COLOR COUNT $FF:ALL COLOR
17 C019      00             FCB  $00        COLOR CODE 1
18 C01A      00             FCB  $00        COLOR CODE 2
19           C01B   PARME   EQU  *
20           C01B   STEP1   EQU  *          --- SET PARM. TO BUF. ---
21 C01B 103F                SWI2            GRAPHIC I/F BUF. INIT.
22 C01D      41             FCB  $41
23 C01E      69             FCB  $69
24 C01F   BE F010           LDX  PIFBUF     X:GRAPHIC I/F BUF. ADDR
25 C022   31 8CDD           LEAY PARM,PCR   Y:TOP ADDR. OF PARM.
26 C025   C6 19             LDB  #PARME-PARM B:PARM. COUNTER
27 C027   A6 A0     LOOP    LDA  ,Y+        A:PARM. DATA
28 C029   A7 80             STA  ,X+        GRAPHIC I/F BUF. <-- A
29 C02B   5A                DECB            PARM. DATA END ?
30 C02C   26 F9             BNE  LOOP
31 C02E 103F                SWI2            CALL "GET" ROUTINE
32 C030      42             FCB  $42        MAP NO=2
33 C031      08             FCB  $08        ROUTINE NO=8
34 C032   39                RTS

コメントをかく


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

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

どなたでも編集できます