#include <iocslib.h>
#include <time.h>
#include <string.h>
#include "defines.h"
#include "amacro.h"
#include "aexprint.h"

int ShiftUpPrint(_FNTBUF *fnt,int wt,int tm,int mode)
/* １フォント上シフト表示 */
/* フォント大きさは最大２４＊２４まで */
{
_FNTBUF fnt2;
int x,y,i,wx,sz,wxtm,xy,xy1;
time_t t;
	fnt2.xl=fnt->xl;	/* xlコピー */
	fnt2.yl=fnt->yl;	/* ylコピー */
	wx=(fnt2.xl+7)/8;	/* 横バイト数 */
	sz=wx*fnt2.yl;		/* フォント総バイト数 */
	wxtm=wx*tm;		/* １回の転送バイト数 */
	if (tm<=0||tm>=8||(fnt2.yl%tm)!=0) tm=1;	/* 補正 */
	
	/* バッファークリア */
	memset(fnt2.buffer,0,sz);
	
	cursor(&x,&y);	/* 表示開始座標記録 */
	for (i=1;i<=fnt2.yl/tm;i++) { /* 縦全部 */
		t=clock();
		/*memcpy(fnt2.buffer,fnt->buffer,i*wxtm);*//* すだれ表示 */
		memcpy(&fnt2.buffer[sz-i*wxtm],fnt->buffer,i*wxtm);
		/* １段表示 */
		B_LOCATE(x,y);
		xy1=PutCGFonts(&fnt2,i-1,mode);
		if (i==1) {
			xy=xy1;
			if ((xy&0xffff)!=y) y=(xy&0xffff); /* スクロール対応 */
		}
		while (clock()-t<wt); /* ウエイト */
	}
	return(B_LOCATE_SC(xy,fnt2.yl,mode)); /* ｽｸﾛｰﾙｱｯﾌﾟ対応ｶｰｿﾙ移動 */
}
