/* 全画面退避・復帰サブルーチン */
/* '92/06/30 : TGUSEMD()によるテキストプレーン２／３利用の印付加 */

#include "defines.h"
#include "aigs.h"

void text_all_sub(int no,int adrs,int mode)
/* no : width 96=0 , 64=0,1 , 32=0-7 */
/* mode : 0 = get , 1 = put */
{
unint c,wx,wy;
	c=curmode(0); /* cursor off */
	
	/* plane 0 : 転送先算出 */
	wx=TWIDTH(&wy);
	switch (wx) {
		case 32:
			if (no<0 || no>1) no=0;
			adrs+=(no*0x4000);
			break;
		case 64:
			if (no<0 || no>7) no=0;
			adrs+=(no*0x8000);
			break;
	}
	
	if (mode) { /* put */
		_txcopy2(adrs,TPLANE0,wx,wy);
		if (adrs>=TPLANE2) TGUSEMD(1,3); /* テキスト２／３利用して壊れているの印 */
	} else { /* get */
		_txcopy2(TPLANE0,adrs,wx,wy);
		if (adrs>=TPLANE2) TGUSEMD(1,2); /* テキスト２／３利用中の印 */
	}
	
	curmode(c); /* cursor on */
}
