#include <stdio.h>
#include "defines.h"
#include "oscrn.h"

int SCdisplay(unchar *work,int mode)
/* オフスクリーン：画面表示 */
{
SC_BUFF *scwork;
short x,y,wx,wy;
unchar col,col0=-1;
unsint c;
	if (SCcheck(work)) return(SCERR1);
	scwork=(SC_BUFF *)work;
	wx=scwork->wx;
	wy=scwork->wy;
	work+=sizeof(SC_BUFF);
	/* ２バイト文字の自動改行があるので前の行末からの折り返しがない。
	   そのため楽に処理出来る */
	for (y=0;y<wy;y++){
		for (x=0;x<wx;x++){
			c=*work++;
			col=*work++;
			if ((col&0x3f)!=col0) {
				col0=col&0x3f;
				B_COLOR(col0); /* 色は画面だけ */
			}
			if (col&BIT7) { /* 漢字 */
				c=(c<<8)|(*work++);
				work++;
				x++;
			}
			if (mode) { /* 24dot */
				print24c(c);
			} else printc2(c);
		}
		if (mode) { /* 24dot */
			print24c('\n');
		} else fputc('\n',stdout); /* crlf() */
	}
	B_COLOR(3); /* 白に戻しておく */
	return(SCOK);
}
