/* テキスト画面圧縮記録２ */
// コードカウントを別に行っている場合版

#include "defines.h"
#include "getput3.h"

void gettext3s(int sx,int sy,int ex,int ey,unint count[CMAX],unchar *buff,unchar *cbuff)
/* sx,sy,ex,ey : テキスト座標で与えること */
{
unsint i,cur;
	/* 幅計算 */
	*(unsint *)buff    =(ex-sx+1);
	*(unsint *)(buff+2)=(ey-sy+1);
	/* 上位コード表書き込み */
	for (i=0;i<JOUI;i++) buff[SFIX+i]=(unchar)count[i];
	/* カーソルoff */
	cur=curmode(0);
	/* 圧縮取り込み */
	_gettext3(TPLANE0+sx+sy*16*128,buff,cbuff);
	/* カーソル復帰 */
	curmode(cur);
}

#if 0

#include <stdlib.h>

main()
{
unint	count[CMAX];
int sx=0,sy=0,ex=95,ey=31;
int bsize,csize;
unchar *bbuff,*cbuff;
	{
	counttext3s(sx,sy,ex,ey,count);
	calctext3(sx,sy,ex,ey,count,&bsize,&csize);
	bbuff=malloc(bsize);
	if (bbuff==NULL) {
		printf("error bbuff\n");
		exit(1);
	}
	cbuff=malloc(csize);
	if (cbuff==NULL) {
		printf("error cbuff\n");
		exit(2);
	}
	gettext3s(sx,sy,ex,ey,count,bbuff,cbuff);
	} // この間で画面を変更してはいけない
	printf("calc bsize=%d,csize=%d\n",bsize,csize);
	bsize=*(int *)&bbuff[4];
	csize=*(int *)&bbuff[8];
	printf("実   bsize=%d,csize=%d\n",bsize,csize);
	getch();
	cls();
	puttext3(sx,sy,bbuff,cbuff);
	free(bbuff);
	free(cbuff);
	exit(0);
}
#endif
