#include
#include
#include
#define BELL cprintf("\a");
int far *vb = (int far *)0xB8000000;
typedef struct{
unsigned int ch_attr : 8;
unsigned int foreGround : 3;
unsigned int intensity : 1;
unsigned int backGround : 3;
unsigned int blink : 1;
} ATTR;
typedef union{
struct{
unsigned char character;
unsigned char attribute;
} c;
ATTR a;
} CHR;
CHR ch;
void ss(int t, int l, int b, int r, int *aPtr);
void rs(int t, int l, int b, int r, int *aPtr);
unsigned char gac(int row, int col);
int blen(char *string);
int bcen(int num, char *string);
void bbox(int t,int l,int b,int r,int fg,int bg, int bl,int in, int fi
, int sh );
CLIPPER b_errmsg()
{
int row = _parni(1);
char *msg = _parc(2);
int fg = _parni(3);
int bg = _parni(4);
int *tmp, *ptr, ml, col, j;
if( !ISNUM(1) && !ISCHAR(2) && !ISNUM(3) && !ISNUM(4) ){
_ret();
return;
}
if( (ptr = _xalloc(480)) == NULL ){
_ret();
return;
}
ss( (row-2), 0, (row+3), 79, ptr );
ml = blen(msg);
bbox((row-1),(bcen(80,msg)-2),(row+1),+(bcen(80,msg)+ml+1)
,fg
,bg
,0
,1
,1
,1 );
ch.a.foreGround = fg;
ch.a.backGround = bg;
ch.a.intensity = 1;
for(j=0,col = bcen(80,msg); col