/* > cmdwind.h < */

#define max(a,b) ((a) > (b) ? (a) : (b))
#define min(a,b) ((a) < (b) ? (a) : (b))

#define Rand 0
#define TWEE 2
#define VIER 4
#define INDIRECT           0X00000100

typedef struct
        {
          int flag;
          wimp_box box;
        } change_box;

typedef struct
        {
           sprite_area *area;
           sprite_id id;
        } sprite_defines;

typedef struct {
   int wind_handle;
   int x0,y0,x1,y1;
   int scx, scy;
   int gx0,gy0,gx1,gy1;
} ForceRedrawBlock;


typedef struct {
   int x0, y0, x1, y1;    
   int scx, scy;               
   int wind_behind;            
   int flags;
   char colours[7];
   char reservedb;
   int exx0, exy0, exx1, exy1;
   int title_icon, work_icon;
   int reservedw[2];
   char title[12];
   int initial_icons;
} CreateWindowBlock;


extern int max_row,max_col;
extern wimp_wstate cmd_st;
extern BOOL cmdwind_is_open;
extern int OSx, OSy, OSbpp;
extern wimp_caretstr block;
extern int grey_level;

int WprintfHeight; 
int WprintfWidth;  
int WprintfMode;   
int WprintfSize;
BOOL formfeed;

void wvdu(char ch);
void reinit_wprintf(int wimp_mode, BOOL init, BOOL display);
sprite_defines wsprite;
sprite_factors factors;
sprite_pixtrans pixtrans[256];

ForceRedrawBlock wblk;
wimp_winfo w;
wimp_wstate state;
static int x0,y0;

static int save0,save1,save2;
char *outf="ASM>";
char *outr="\rASM>";
char *outl="\nASM>";
char *colours="\x11\x80\x11\x07";
int bytecnt=4;

os_regset reg;
os_error *err;
change_box * sprite;

int wprintf_window;
sprite_area *wprintf_sprite_area;
char wprintf_sprite_name[20];
sprite_ptr wprintf_sprite_ptr;
int wprintf_vdu_save[1000];


