Subject: Re: PMAG-CA data structures
To: Andy Doran <ad@psn.ie>
From: None <drochner@zel459.zel.kfa-juelich.de>
List: port-pmax
Date: 02/17/1999 17:15:15
ad@psn.ie said:
> The opcode for rectangle is 1041, scroll is 1029 (it's pleasing to be
> able to say that after so long ;). It can only scroll 255 rows at a
> time. 

On my Ultrix box there is a header file (/usr/include/io/ws/stamp.h)
which contains the definition for the command word:

typedef struct _stamp_cmd {
    unsigned opcode : 4;                /* <3:0> */
#define STAMP_CMD_POINTS        0
#define STAMP_CMD_LINES         1
#define STAMP_CMD_TRIANGLES     2
#define STAMP_CMD_COPYSPANS     5
#define STAMP_CMD_READSPANS     6
#define STAMP_CMD_WRITESPANS    7
#define STAMP_CMD_VIDEO         8
    unsigned rgb_format : 2;            /* <5:4> */
#define STAMP_RGB_NONE          0
#define STAMP_RGB_CONST         1
#define STAMP_RGB_FLAT          2
#define STAMP_RGB_SMOOTH        3
    unsigned z_format : 2;              /* <7:6> */
#define STAMP_Z_NONE            0
#define STAMP_Z_CONST           1
#define STAMP_Z_FLAT            2
#define STAMP_Z_SMOOTH          3
    unsigned xymask_format : 2;         /* <9:8> */
#define STAMP_XY_NONE           0
#define STAMP_XY_PERPACKET      1
#define STAMP_XY_PERPRIMITIVE   2
    unsigned linewidth_format : 2;      /* <11:10> */
#define STAMP_LW_NONE           0
#define STAMP_LW_PERPACKET      1
#define STAMP_LW_PERPRIMITIVE   2
#define STAMP_LW_MASK           0x3fff  /* 14 bits */
    unsigned : 7;                       /* <18:12> */
    unsigned cliprect : 1;              /* <19> */
    unsigned : 1;                       /* <20> */
    unsigned mesh : 1;                  /* <21> */
    unsigned : 1;                       /* <22> */
    unsigned aa_line : 1;               /* <23> */
    unsigned : 7;                       /* <30:24> */
    unsigned hs_equals : 1;             /* <31> */
} stampCmd;

So a rectangle is made of lines, and scrolling is done by copying...
Sorry if I only repeat the obvious.

best regards
Matthias