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

int ShiftDownPrints(_FNTBUF fnt[],int no,int wt,int tm,int mode)
/* 複数フォント下シフト表示 */
/* 各フォント大きさは全て同じであること（そうでないとtm分配ができないから）*/
/* 元のフォントは破壊される（fnt[].buffer）*/
{
int x,y,i,l,wx,xl,yl,sz,xy,j,szz;
time_t t;
	/* フォントサイズ（一定）*/
	xl=fnt[0].xl;
	yl=fnt[0].yl;
	wx=(xl+7)/8;	/* 横バイト数 */
	sz=wx*yl;	/* １フォント総バイト数 */
	szz=sz-wx*tm;
	if (tm<=0||tm>=8||(xl%tm)!=0) tm=1; /* tm補正 */
	
	cursor(&x,&y);	/* 表示開始座標記録 */
	for (i=0;i<=yl/tm;i++) { /* 縦全部（最後のクリアも含む）*/
		t=clock();
		B_LOCATE(x,y);
		for (l=0;l<no;l++) {
			for (j=0;j<szz;j++) fnt[l].buffer[sz-1-j]=fnt[l].buffer[szz-1-j];
			/* 上部クリア */
			memset(&fnt[l].buffer,0,wx*tm);
			/* １段表示 */
			xy=PutCGFonts(&fnt[l],0,mode);
			B_LOCATE_SC(xy,yl,mode); /* ｽｸﾛｰﾙｱｯﾌﾟ対応ｶｰｿﾙ移動 */
		}
		if ((xy&0xffff)!=y) y=(xy&0xffff); /* スクロール対応 */
		while (clock()-t<wt); /* ウエイト */
	}
	return(poslin());
}
