#define EGB_GETBLOCK(wk,buf,x,y,width,height) {							\
  char para[20];														\
  DWORD(para) = (unsigned int)(buf); WORD(para+4) = getds();			\
  WORD(para+6) = (x);                WORD(para+8) = (y);				\
  WORD(para+10) = (x)+(width)-1;     WORD(para+12) = (y)+(height)-1;	\
  EGB_getBlock(wk, para); }

#define EGB_PUTBLOCK(wk,buf,x,y,width,height,clip) {					\
  char para[20];														\
  DWORD(para) = (unsigned int)(buf); WORD(para+4) = getds();			\
  WORD(para+6) = (x);                WORD(para+8) = (y);				\
  WORD(para+10) = (x)+(width)-1;     WORD(para+12) = (y)+(height)-1;	\
  EGB_putBlock(wk, (clip), para); }

#define EGB_PUTBLOCKCOLOR(wk,buf,x,y,width,height) {						\
  char para[20];														\
  DWORD(para) = (unsigned int)(buf); WORD(para+4) = getds();			\
  WORD(para+6) = (x);                WORD(para+8) = (y);				\
  WORD(para+10) = (x)+(width)-1;     WORD(para+12) = (y)+(height)-1;	\
  EGB_putBlockColor(wk, 0, para); }

#define EGB_GETBLOCKCOLOR(wk,buf,x,y,width,height,col) {				\
  char para[30];														\
  DWORD(para) = (unsigned int)(buf); WORD(para+4) = getds();			\
  WORD(para+6) = (x);                WORD(para+8) = (y);				\
  WORD(para+10) = (x)+(width)-1;     WORD(para+12) = (y)+(height)-1;	\
  WORD(para+14) = 1;  DWORD(para+16) = (col);                           \
  EGB_getBlockColor(wk, para); }

#define	EGB_LINE(wk,x1,y1,x2,y2,col,mode) {								\
  char para[20];														\
  EGB_color(wk,0,col); EGB_writeMode(wk,mode); EGB_paintMode(wk,0x002);	\
  WORD(para  ) = 2;														\
  WORD(para+2) = (x1);  WORD(para+4) = (y1);							\
  WORD(para+6) = (x2);  WORD(para+8) = (y2);							\
  EGB_connect(wk,para); EGB_writeMode(wk,0);  }

#define	EGB_BOXLINE(wk,x1,y1,x2,y2,col,mode) {							\
  char para[20];														\
  EGB_color(wk,0,col);  EGB_writeMode(wk,mode);							\
  EGB_paintMode(wk,0x002);												\
  WORD(para  ) = (x1);  WORD(para+2) = (y1);							\
  WORD(para+4) = (x2);  WORD(para+6) = (y2);							\
  EGB_rectangle(wk,para); EGB_writeMode(wk,0);  }

#define	EGB_RBOXLINE(wk,x1,y1,wid,ht,col,mode) {						\
  char para[20];														\
  EGB_color(wk,0,col);  EGB_writeMode(wk,mode);							\
  EGB_paintMode(wk,0x002);												\
  WORD(para  ) = (x1);          WORD(para+2) = (y1);					\
  WORD(para+4) = (x1)+(wid)-1;  WORD(para+6) = (y1)+(ht)-1;				\
  EGB_rectangle(wk,para); EGB_writeMode(wk,0);  }

#define	EGB_BOXFILL(wk,x1,y1,x2,y2,col,mode) {							\
  char para[20];														\
  EGB_color(wk,0,col);  EGB_color(wk,2,col);  EGB_writeMode(wk,mode);	\
  EGB_paintMode(wk,0x022);												\
  WORD(para  ) = (x1);  WORD(para+2) = (y1);							\
  WORD(para+4) = (x2);  WORD(para+6) = (y2);							\
  EGB_rectangle(wk,para); EGB_writeMode(wk,0);  }

#define	EGB_RBOXFILL(wk,x1,y1,wid,ht,col,mode) {						\
  char para[20];														\
  EGB_color(wk,0,col);  EGB_color(wk,2,col);  EGB_writeMode(wk,mode);	\
  EGB_paintMode(wk,0x022);												\
  WORD(para  ) = (x1);  WORD(para+2) = (y1);							\
  WORD(para+4) = (x1)+(wid)-1; WORD(para+6) = (y1)+(ht)-1;				\
  EGB_rectangle(wk,para); EGB_writeMode(wk,0);  }

#define	EGB_ELLIPSEFILL(wk,x,y,rx,ry,col,mode) {						\
  char para[20];														\
  EGB_color(wk,0,col);  EGB_color(wk,2,col);  EGB_writeMode(wk,mode);	\
  EGB_paintMode(wk,0x022);												\
  WORD(para  ) = (x);   WORD(para+2) = (y); 							\
  WORD(para+4) = (rx);  WORD(para+6) = (ry);							\
  EGB_ellipse(wk,para); EGB_writeMode(wk,0);  }

#define	EGB_PSET(wk,x,y,col,mode) {										\
  char para[20];														\
  EGB_color(wk,0,col);  EGB_writeMode(wk,mode);							\
  EGB_paintMode(wk,0x002);												\
  WORD(para  ) = 1;     WORD(para+2) = (x); 							\
  WORD(para+4) = (y);													\
  EGB_pset(wk,para); EGB_writeMode(wk,0);  }

#define	EGB_STRING(wk,x,y,str,col,mode) {								\
  char para[500];														\
  EGB_color(wk,0,col);  EGB_writeMode(wk,mode);							\
  EGB_paintMode(wk,0x002);												\
  WORD(para) = (x);  WORD(para+2) = (y);								\
  WORD(para+4) = strlen((str));  strcpy(para+6,(str));					\
  EGB_sjisString(wk,para); }
