/*************************************************************************
	module		:[サブアドレスBOX蓄積原稿の横区切り罫線作成]
	function	:[サブアドレスBOX蓄積原稿の横区切り罫線を作成する。]
	common		:[]
	condition	:[
		罫線種類
			case	0:
			 ┌──┬────┬──────────┐

			case	1:
			 │ No.│ボックス名 │		原稿No		   │

			case	2:
			 ├──┼────┼──────────┤ 

			case	3:
			 │	   │		 │		  			   │

			case	4:
			 └──┴────┴──────────┘
	]
	commment	:[]
	return		:[なし]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[97/04/15]
	author		:[桑原美紀]
*************************************************************************/
void				Print_F_CodeDoc_List_Line( 
						 UBYTE Category,				 /*罫線種類*/
						 register UBYTE *AscString,		 /*印刷文字列*/
						 register UBYTE *AttString)		 /*修飾文字列*/
{
	Prn_Att_Str_Clear( AscString, AttString );
	switch ( Category ) {
		case 0 :
			/* ┌─┬────┬──┬────────┐  サブアドレス蓄積原稿リスト */
			AscString[1-1] = LST_KLINE7;
			CMN_MemorySet( &AscString[2-1], 78, LST_KLINE_);
			AscString[5-1] = LST_KLINE8;
			AscString[22-1] = LST_KLINE8;
			AscString[30-1] = LST_KLINE8;
			AscString[80-1] = LST_KLINE9;
			break;
		case 1 :
			/* │Box│ボックス名│種別│		原稿No.    │*/
			AscString[1-1] = LST_KLINEI;
			AttributeSet( &AscString[2-1], &AttString[2-1]
					,PWRD_Box, LST_NOT );
			AscString[5-1] = LST_KLINEI;
			AttributeSet( &AscString[9-1], &AttString[9-1]
					,PWRD_BoxName, LST_NOT );
			AscString[22-1] = LST_KLINEI;
			AttributeSet( &AscString[24-1], &AttString[24-1]
					,PWRD_Kind, LST_NOT );
			AscString[30-1] = LST_KLINEI;
			AttributeSet( &AscString[46-1], &AttString[46-1]
					,PWRD_DocumentsNo, LST_NOT );
			AscString[80-1] = LST_KLINEI;
			break;
		case 2 :
			/* ├─┼────┼──┼────────┤ */
			AscString[1-1] = LST_KLINE4;
			CMN_MemorySet( &AscString[2-1], 78, LST_KLINE_);
			AscString[5-1] = LST_KLINE5;
			AscString[22-1] = LST_KLINE5;
			AscString[30-1] = LST_KLINE5;
			AscString[80-1] = LST_KLINE6;
			break;
		case 3 :
			/* │  │		 │		 │		          │ */
			AscString[1-1] = LST_KLINEI;
			AscString[5-1] = LST_KLINEI;
			AscString[22-1] = LST_KLINEI;
			AscString[30-1] = LST_KLINEI;
			AscString[80-1] = LST_KLINEI;
			break;
		case 4:
			/* └─┴────┴──┴────────┘	 */
			AscString[1-1] = LST_KLINE1;
			CMN_MemorySet( &AscString[2-1], 78, LST_KLINE_);
			AscString[5-1] = LST_KLINE2;
			AscString[22-1] = LST_KLINE2;
			AscString[30-1] = LST_KLINE2;
			AscString[80-1] = LST_KLINE3;
			break;
	}
}
/*************************************************************************
	module		:[料金表の横区切り罫線作成]
	functiom	:[料金表の横区切り罫線を作成する。]
	common		:[]
	condition	:[
		罫線種類
		,	0 = �ョ�「�「�ホ�「�「�「─┬────┬───�「�イ
		,	1 = �、 NO.�、  昼間	�、	夜間  │  深夜	│
		,	2 = �セ�「�「�゙�「───┼────┼─�「�「�「�ニ
		,	3 = �、	  �、		�、		  │		│
		,	4 = �カ�「�「�ヨ�「───┴────┴─�「�「�「�コ
	]
	commment	:[]
	return		:[なし]
	machine		:[V53]
	language	:[MS-C]
	keyword		:[LST]
	date		:[94/ 3/ 9]
	author		:[豊田浩子]
*************************************************************************/
void				Print_CostTable_List_Line(
						 UBYTE Category,			/*罫線種類*/
						 register UBYTE *AscString,	/*印刷文字列*/
						 register UBYTE *AttString )/*修飾文字列*/
{
	Prn_Att_Str_Clear( (UBYTE *)AscString, (UBYTE *)AttString );
	switch ( Category ) {
		case 0:
			/*�ョ�「�ホ�「�「�「┬───┬─�「�「�イ*/
			AscString[11-1] = LST_KLINE7;
			CMN_MemorySet( (UBYTE *)&AscString[12-1], 59, LST_KLINE_ );
			AscString[20-1] = LST_KLINE8;
			AscString[37-1] = LST_KLINE8;
			AscString[54-1] = LST_KLINE8;
			AscString[71-1] = LST_KLINE9;
			break;
		case 1:
			/*�、局番�、昼間(秒/10円)�、夜間(秒/10円)│深夜(秒/10円)│ */
			AscString[11-1] = LST_KLINEI;
			AttributeSet( (UBYTE *)&AscString[12-1], (UBYTE *)&AttString[12-1], PWRD_DialingCode,
			  LST_NOT );
			AscString[20-1] = LST_KLINEI;
			AttributeSet( (UBYTE *)&AscString[21-1], (UBYTE *)&AttString[22-1], PWRD_Daytime,
			  LST_NOT );
			AscString[37-1] = LST_KLINEI;
			AttributeSet( (UBYTE *)&AscString[38-1], (UBYTE *)&AttString[39-1], PWRD_Night,
			  LST_NOT );
			AscString[54-1] = LST_KLINEI;
			AttributeSet( (UBYTE *)&AscString[55-1], (UBYTE *)&AttString[56-1], PWRD_Midnight,
			  LST_NOT );
			AscString[71-1] = LST_KLINEI;
			break;
		case 2:
			/*�セ�「�「�゙�「─�「┼�「──┼───�ニ*/
			AscString[11-1] = LST_KLINE4;
			CMN_MemorySet( (UBYTE *)&AscString[12-1], 59, LST_KLINE_ );
			AscString[20-1] = LST_KLINE5;
			AscString[37-1] = LST_KLINE5;
			AscString[54-1] = LST_KLINE5;
			AscString[71-1] = LST_KLINE6;
			break;
		case 3:
			/*�、	�、		�、		 │		 │*/
			AscString[11-1] = LST_KLINEI;
			AscString[20-1] = LST_KLINEI;
			AscString[37-1] = LST_KLINEI;
			AscString[54-1] = LST_KLINEI;
			AscString[71-1] = LST_KLINEI;
			break;
		case 4:
			/*�カ�「�「�ヨ�「�「�「┴───┴──�「�コ*/
			AscString[11-1] = LST_KLINE1;
			CMN_MemorySet( (UBYTE *)&AscString[12-1], 59, LST_KLINE_ );
			AscString[20-1] = LST_KLINE2;
			AscString[37-1] = LST_KLINE2;
			AscString[54-1] = LST_KLINE2;
			AscString[71-1] = LST_KLINE3;
			break;
	}
}
TEST_F(UsesAnalysisTests,
hasNoUseOnlyInOneFuncTest) {
	// Testing if analysis recognizes uses of global variables in more than one
	// function.
	//
	// @glob0 = global i32 0
	// define void @func1() {
	// bbFunc1:
	//   %x = load i32, i32* @glob0
	// }
	// define void @func2() {
	// bbFunc2:
	//   %z = load i32, i32* @glob0
	// }
	//

	// Creating the main part of test is in constructor of this test class.
	Constant *func2Constant(module->getOrInsertFunction(
		"func2", Type::getVoidTy(context), AttributeSet(), nullptr));
	BasicBlock *bbInFunc2(BasicBlock::Create(context, "bbFunc2",
		cast<Function>(func2Constant)));
	new LoadInst(glob, "x", bbInFunc1);
	new LoadInst(glob, "z", bbInFunc2);

	EXPECT_FALSE(UsesAnalysis::hasUsesOnlyInOneFunc(*glob)) <<
		"expected that global variable doesn't have use only in one"
		" function. \n";
}
/*************************************************************************
	module		:[料金表の1明細印刷]
	functiom	:[料金表の1明細を印刷する。]
	common		:[
		List				:
		SYS_CostTable		:
		SYS_NTT_AccessFile	:
	]
	condition	:[
	]
	commment	:[]
	return		:[印刷結果]
	machine		:[V53]
	language	:[MS-C]
	keyword		:[LST]
	date		:[94/06/30]
	author		:[豊田浩子]
*************************************************************************/
WORD				Print_CostTable_List_Specifi(
						 UBYTE Page,				/*ページ*/
						 UBYTE Line,				/*現在明細数*/
						 UWORD CostCnt  )			/*データ番号*/
{
	register WORD	ret;				/*実行結果*/
	UBYTE	i;					/*文字列長*/

	i = 0;

	if ( SYB_NTT_AccessFile[ CostCnt ].Number[0] != 0xff ) {
		if ( Page > 1 && Line == 0 ) {
			/*�ョ�「�ホ�「�「�ホ�「�「�「�ホ�「─�「�イ*/
			Print_CostTable_List_Line( 0, List.S.Print, List.S.Attribute );
			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
				return ( ret );
			}
		}
		else {
			/*�セ�「�「�゙�「─�「┼�「──┼───�ニ*/
			Print_CostTable_List_Line( 2, List.S.Print, List.S.Attribute );
			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
				return ( ret );
			}
		}
		/*�、999999�、Z99.9 �、Z99.9  │Z99.9│*/
		Print_CostTable_List_Line( 3, List.S.Print, List.S.Attribute );
		if ( CostCnt == 0 ) {
			AttributeSet( (UBYTE *)&List.S.Print[12-1], (UBYTE *)&List.S.Attribute[12-1], PWRD_WithinArea,
			 LST_NOT );	/* 料金表番号00の時は市内 */
		}
		else {
			CMN_StringCopy( (UBYTE *)&List.S.Print[13-1], (UBYTE *)SYB_NTT_AccessFile[ CostCnt ].Number );
		}
		/* 昼 */
		CMN_UnsignedIntToASC_NULL( (UBYTE *)List.S.Work,
		 (UWORD)SYB_CostTable[ SYB_NTT_AccessFile[ CostCnt ].CostTable].Daytime,
		  4, ' ');
		Print_Cost_Keta( List.S.Work );
		CMN_StringCopy( (UBYTE *)&List.S.Print[26-1], ( UBYTE *)List.S.Work );

		/* 夜 */
		CMN_UnsignedIntToASC_NULL( (UBYTE *)List.S.Work,
		 (UWORD)SYB_CostTable[ SYB_NTT_AccessFile[ CostCnt ].CostTable].Night,
		  4, ' ');
		Print_Cost_Keta( List.S.Work );
		CMN_StringCopy( (UBYTE *)&List.S.Print[43-1], (UBYTE *)List.S.Work );

		/* 深夜 */
		CMN_UnsignedIntToASC_NULL( (UBYTE *)List.S.Work,
		 (UWORD)SYB_CostTable[ SYB_NTT_AccessFile[ CostCnt ].CostTable].Midnight,
		  4, ' ');
		Print_Cost_Keta( List.S.Work );
		CMN_StringCopy( (UBYTE *)&List.S.Print[60-1], (UBYTE *)List.S.Work );
		if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
			return ( ret );
		}
	}
	return ( OK );
}
	/**
	* @brief Constructs a uses analysis test.
	*/
	UsesAnalysisTests() {
		module = new Module("test", context);
		Constant *funcConstant(module->getOrInsertFunction("func1",
			Type::getVoidTy(context), AttributeSet(), nullptr));
		Constant *globConstant(module->getOrInsertGlobal("glob0",
			Type::getInt32Ty(context)));
		glob = cast<GlobalVariable>(globConstant);
		bbInFunc1 = BasicBlock::Create(context, "bb",
			cast<Function>(funcConstant));
		func1 = nullptr;
	}
/*************************************************************************
	module		:[キーマクロタイトルリストの横区切り罫線作成]
	function	:[キーマクロタイトルリストの横区切り罫線を作成する。
	common		:[]
	condition	:[]
	commment	:[]
	return		:[印刷結果]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[98/05/19]
	author		:[桑原美紀]
*************************************************************************/
void			Print_KeyMacroList_Line(
						 UBYTE Category,			/*罫線種類*/
						 register UBYTE *AscString,	/*印刷文字列*/
						 register UBYTE *AttString )/*修飾文字列*/
{
	Prn_Att_Str_Clear( AscString, AttString );
	switch ( Category ) {
		case 0:
			/*�ョ�「�ホ�「�「�「�「�「�イ*/
			AscString[19-1] = LST_KLINE7;
			CMN_MemorySet( &AscString[20-1], 43, LST_KLINE_ );
			AscString[24-1] = LST_KLINE8;
			AscString[62-1] = LST_KLINE9;
			break;
		case 1:
			/*�、No.�、  タイトル  �、*/
			AscString[19-1] = LST_KLINEI;
			AttributeSet( &AscString[21-1], &AttString[21-1], PWRD_No, LST_NOT );
			AscString[24-1] = LST_KLINEI;
			AttributeSet( &AscString[40-1], &AttString[40-1], PWRD_Title, LST_NOT );
			AscString[62-1] = LST_KLINEI;
			break;
		case 2:
			/*�セ�「�「�゙�「�「�「�ニ*/
			AscString[19-1] = LST_KLINE4;
			CMN_MemorySet( &AscString[20-1], 43, LST_KLINE_ );
			AscString[24-1] = LST_KLINE5;
			AscString[62-1] = LST_KLINE6;
			break;
		case 3:
			/*�カ�「�「�ヨ�「�「�「�「�コ*/
			AscString[19-1] = LST_KLINE1;
			CMN_MemorySet( &AscString[20-1], 43, LST_KLINE_ );
			AscString[24-1] = LST_KLINE2;
			AscString[62-1] = LST_KLINE3;
			break;
	}
}
TEST_F(UsesAnalysisTests,
hasUseOnlyInOneFuncTest) {
	// Testing if analysis recognizes only one use in function.
	//
	// @glob0 = global i32 0
	// define void @func1() {
	// bbInFunc1:
	//   %x = load i32, i32* @glob0
	// }
	// define void @func2() {
	// }
	//

	// Creating the main part of test is in constructor of this test class.
	module->getOrInsertFunction("func2", Type::getVoidTy(context),
		AttributeSet(), nullptr);
	new LoadInst(glob, "x", bbInFunc1);

	EXPECT_TRUE(UsesAnalysis::hasUsesOnlyInOneFunc(*glob)) <<
		"expected that global variable has use only in one function. \n";
}
Exemple #8
0
void CPlayer::updateEquipAttr()
{
   std::string machineName = this->getMachineName();
   size_t idx = machineName.find("Server");
   if(idx != std::string::npos) {
      // Server端處理

	   std::map<EquipSlot , int>::iterator pi = m_mEquip.begin();
	   AdvancedAttribute advAttr;
	   AttributeSet(advAttr);
	   ObscureAttribute obsAttr;
	   AttributeClear(obsAttr);
	   BasicAttributeSet(getLevel(), getBasAttr(), advAttr, obsAttr);		//取得角色初始素質
	   while (m_mEquip.end() != pi)
	   {
		   CWeaponInfo* wp = (CWeaponInfo*) CItem::getInfo(pi->second);
		   if(NULL == wp)
		   {
			   break;
		   }
		   AttributeAdd (advAttr, wp->getBaseAttr());
		   AttributeAdd (advAttr, wp->getExtendAttr());
   		
		   pi++;
	   }
	   advAttr.iHP = getHP();
	   advAttr.iMP = getMP();
	   setAdvAttr(advAttr);
	   updateSkillAvailable();
   }
   else {
      // Client端處理

      updateSkillAvailable();
   }
}
/*************************************************************************
	module		:[Fコード中継データの1明細印刷]
	functiom	:[Fコード中継データの1明細を印刷する。]
	common		:[
		List				:
		SYB_SubAddressBoxTable		:
	]
	condition	:[
	]
	commment	:[]
	return		:[印刷結果]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[98/09/16]
	author		:[桑原美紀]
*************************************************************************/
#if (PRO_FCODE_RELAY == ENABLE) /* 1998/09/16 Add By M.Kuwahara */
WORD			Print_BoxExecData_Specifi( 
					 UBYTE	*Line, 
					 UBYTE	*LineCnt, 
					 UBYTE	*Item, 
					 UBYTE	BoxCnt ) 	/*1明細印刷*/
{
	UBYTE	i;
	struct SYS_DialData_t	*dial;
	register WORD	ret;					/*実行結果*/

	if (*LineCnt == (PaperSizeLen() - 5)) {	/* 2ページ目以降の先頭行の時 */
		/* ┌─┬────┬───────────────┐ */
		Print_F_CodeBox_List_Line( 9, List.S.Print, List.S.Attribute );
		if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
			return ( ret );
		}
		(*LineCnt)--;
	}
	else {
		if ((*Item == 1) &&	/* 配信先の1行目 */
			(*Line == 0)) {
			/* |   |          ├────┴────┴──┴──┤ */
			Print_F_CodeBox_List_Line( 5, List.S.Print, List.S.Attribute );
			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
				return ( ret );
			}
			(*LineCnt)--;
		}
	}

	for (i = 0; i < SYS_ONETOUCH_BIT_FIELD_MAX; i++) {
		dial->Onetouch[i] = SYB_SubAddressBoxTable[BoxCnt].Onetouch[i];
	}
	for (i = 0; i < SYS_SPEED_BIT_FIELD_MAX; i++) {
		dial->Speed[i] = SYB_SubAddressBoxTable[BoxCnt].Speed[i];
	}
	dial->Group = SYB_SubAddressBoxTable[BoxCnt].Group;

	while( *LineCnt != 0 ){
		Print_F_CodeBox_List_Line( 6, List.S.Print, List.S.Attribute );
		switch (*Item) {		/* 出力項目番号 */
		case	1:	/* 配信先出力 */
			if (*Line == 0) {
				List.S.Print[6-1] = '(';
				AttributeSet( &List.S.Print[7-1], &List.S.Attribute[7-1], PWRD_RelayName, LST_NOT );
				List.S.Print[13-1] = ')';
			}
			/** ダイヤル番号の文字列変換 */
			ret = ProgramDataDialToString( dial, SYS_PRG_DIAL_MAX, List.S.Work, *Line );
			CMN_StringCopy( &List.S.Print[23-1], List.S.Work );
			if (DialCheckPointer == SYS_EMPTY_DIAL) {	/* 全明細内容出力 */
				(*Item) = 2;
			}
			else {
				(*Line)++;
			}
			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
				return ( ret );
			}
			(*LineCnt)--;
			break;
		case	2:	/* 発信元付属出力 */
			/*�、(発信元)�、XXXXXXXXX�、*/
			List.S.Print[6-1] = '(';
			AttributeSet( &List.S.Print[7-1], &List.S.Attribute[7-1], PWRD_PutSubscriber, LST_NOT );
			List.S.Print[13-1] = ')';
			if (SYB_SubAddressBoxTable[BoxCnt].Option & SUB_ADDRESS_OPTION_TTI_INSIDE) { /** 上書きとなっている場合 */
				AttributeSet( &List.S.Print[23-1], &List.S.Attribute[23-1], PWRD_Replace, LST_NOT );
			}
			else if (SYB_SubAddressBoxTable[BoxCnt].Option & SUB_ADDRESS_OPTION_TTI_AVAIL) { /** 外付けとなっている場合 */
				AttributeSet( &List.S.Print[23-1], &List.S.Attribute[23-1], PWRD_Avail, LST_NOT );
			}
			else {
				AttributeSet( &List.S.Print[23-1], &List.S.Attribute[23-1], PWRD_NoTTI, LST_NOT );
			}
			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
				return ( ret );
			}
			(*LineCnt)--;
			(*Item) = 3;
			break;
		case	3:	/* 同時プリント */
			/*�、(同時プリント)�、XXX                �、*/
			List.S.Print[6-1] = '(';
			AttributeSet( &List.S.Print[7-1], &List.S.Attribute[7-1], PWRD_RxPrint, LST_NOT );
			List.S.Print[17-1] = ')';
			if (SYB_SubAddressBoxTable[BoxCnt].Option & SUB_ADDRESS_OPTION_PRINT) {
				AttributeSet( &List.S.Print[23-1], &List.S.Attribute[23-1], PWRD_On, LST_NOT );
			}
			else {
				AttributeSet( &List.S.Print[23-1], &List.S.Attribute[23-1], PWRD_Off, LST_NOT );
			}
			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
				return ( ret );
			}
			(*LineCnt)--;
			(*Item) = 0;
			return( OK );
			break;
		default:
			break;
		}
	}
	return( OK );
}
/*************************************************************************
	module		:[サブアドレス/BOXリストの横区切り罫線作成]
	function	:[サブアドレス/BOXリストの横区切り罫線を作成する。]
	common		:[]
	condition	:[
		罫線種類
			case	0:
			┌──┬────┬──────┬────────┬──┬───┐

			case	1:
			│Box │ボックス名 │SUBアドレス番号│通信パスワード番号 │種類│オプション│

			case	2:
			├──┼────┼──────┼────────┼──┼───┤ 

			case	3:
			│	  │		│			  │				│    │	  │ 

			case	4:
			└──┴────┴──────┴────────┴──┴───┘

			case	5:
			|    |        ├──────┴────────┴──┴───┤

			case	6:
			│    │	    │	      		            				  │

			case	7:
			├──┼────┼──────┬────────┬──┬───┤

			case	8:
			└──┴────┴──────────────────────┘

			case	9:
			┌──┬────┬──────────────────────┐
	]
	commment	:[]
	return		:[なし]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[97/04/14]
	author		:[桑原美紀]
*************************************************************************/
void				Print_F_CodeBox_List_Line( 
						UBYTE Category,				 /*罫線種類*/
						register UBYTE *AscString,	 /*印刷文字列*/
						register UBYTE *AttString)	 /*修飾文字列*/
{
	Prn_Att_Str_Clear( AscString, AttString );
	switch ( Category ) {
		case 0 :
			/* ┌─┬────┬────┬────┬──┬──┐  サブアドレスBOXリスト */
			AscString[1-1] = LST_KLINE7;
			CMN_MemorySet( &AscString[2-1], 79, LST_KLINE_);
			AscString[5-1] = LST_KLINE8;
			AscString[22-1] = LST_KLINE8;
			AscString[43-1] = LST_KLINE8;
			AscString[64-1] = LST_KLINE8;
			AscString[72-1] = LST_KLINE8;
			AscString[80-1] = LST_KLINE9;
			break;
		case 1 :
			/* │Box│ボックス名│SUBアドレス番号│通信パスワード番号│種別│オプション│ */
			AscString[1-1] = LST_KLINEI;
			AttributeSet( &AscString[2-1], &AttString[2-1], PWRD_Box, LST_NOT );
			AscString[5-1] = LST_KLINEI;
			AttributeSet( &AscString[9-1], &AttString[9-1],PWRD_BoxName, LST_NOT );
			AscString[22-1] = LST_KLINEI;
			AttributeSet( &AscString[26-1], &AttString[26-1],PWRD_SubAddress, LST_NOT );
			AscString[43-1] = LST_KLINEI;
			AttributeSet( &AscString[45-1], &AttString[45-1],PWRD_CommPasscode, LST_NOT );
			AscString[64-1] = LST_KLINEI;
			AttributeSet( &AscString[66-1], &AttString[66-1],PWRD_Kind, LST_NOT );
			AscString[72-1] = LST_KLINEI;
			AttributeSet( &AscString[73-1], &AttString[73-1],PWRD_Note, LST_NOT );
			AscString[80-1] = LST_KLINEI;
			break;
		case 2 :
			/* ├─┼────┼────┼────┼──┼──┤ */
			AscString[1-1] = LST_KLINE4;
			CMN_MemorySet( &AscString[2-1], 78, LST_KLINE_);
			AscString[5-1] = LST_KLINE5;
			AscString[22-1] = LST_KLINE5;
			AscString[43-1] = LST_KLINE5;
			AscString[64-1] = LST_KLINE5;
			AscString[72-1] = LST_KLINE5;
			AscString[80-1] = LST_KLINE6;
			break;
		case 3 :
			/* │  │		 │		   │		 │    │    │ */
			AscString[1-1] = LST_KLINEI;
			AscString[5-1] = LST_KLINEI;
			AscString[22-1] = LST_KLINEI;
			AscString[43-1] = LST_KLINEI;
			AscString[64-1] = LST_KLINEI;
			AscString[72-1] = LST_KLINEI;
			AscString[80-1] = LST_KLINEI;
			break;
		case 4:
			/* └─┴────┴────┴────┴──┴──┘	 */
			AscString[1-1] = LST_KLINE1;
			CMN_MemorySet( &AscString[2-1], 79, LST_KLINE_);
			AscString[5-1] = LST_KLINE2;
			AscString[22-1] = LST_KLINE2;
			AscString[43-1] = LST_KLINE2;
			AscString[64-1] = LST_KLINE2;
			AscString[72-1] = LST_KLINE2;
			AscString[80-1] = LST_KLINE3;
			break;
#if (PRO_FCODE_RELAY == ENABLE) /* 1998/09/16 Add By M.Kuwahara */
		case 5:
			/* |   |          ├────┴────┴──┴──┤ */
			AscString[1-1] = LST_KLINEI;
			AscString[5-1] = LST_KLINEI;
			AscString[22-1] = LST_KLINE4;
			CMN_MemorySet( &AscString[23-1], 57, LST_KLINE_);
			AscString[43-1] = LST_KLINE2;
			AscString[64-1] = LST_KLINE2;
			AscString[72-1] = LST_KLINE2;
			AscString[80-1] = LST_KLINE6;
			break;
		case 6 :
			/* │  │		 │		     		              │ */
			AscString[1-1] = LST_KLINEI;
			AscString[5-1] = LST_KLINEI;
			AscString[22-1] = LST_KLINEI;
			AscString[80-1] = LST_KLINEI;
			break;
		case 7 :
			/* ├─┼────┼────┬────┬──┬──┤ */
			AscString[1-1] = LST_KLINE4;
			CMN_MemorySet( &AscString[2-1], 78, LST_KLINE_);
			AscString[5-1] = LST_KLINE5;
			AscString[22-1] = LST_KLINE5;
			AscString[43-1] = LST_KLINE8;
			AscString[64-1] = LST_KLINE8;
			AscString[72-1] = LST_KLINE8;
			AscString[80-1] = LST_KLINE6;
			break;
		case 8:
			/* └─┴────┴───────────────┘	 */
			AscString[1-1] = LST_KLINE1;
			CMN_MemorySet( &AscString[2-1], 79, LST_KLINE_);
			AscString[5-1] = LST_KLINE2;
			AscString[22-1] = LST_KLINE2;
			AscString[80-1] = LST_KLINE3;
			break;
		case 9 :
			/* ┌─┬────┬───────────────┐  サブアドレスBOXリスト */
			AscString[1-1] = LST_KLINE7;
			CMN_MemorySet( &AscString[2-1], 79, LST_KLINE_);
			AscString[5-1] = LST_KLINE8;
			AscString[22-1] = LST_KLINE8;
			AscString[80-1] = LST_KLINE9;
			break;
#endif
	}
}
/*************************************************************************
	module		:[サブアドレスBOXリスト印刷]
	function	:[サブアドレスBOXリストを印刷する]
	common		:[
		List					:
		SYB_SubAddressBoxTable	:
	]
	condition	:[]
	commment	:[]
	return		:[印刷結果]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[97/04/15]
	author		:[桑原美紀]
*************************************************************************/
WORD					Print_F_CodeBox_List(
						 void )					/*なし*/
{
	UBYTE	i;						/*loop*/
	UBYTE	page;					/*ページ*/
	UBYTE	box_cnt;				/*データ番号*/
	UBYTE	line_cnt;				/*行数*/
	register WORD	ret;			/*実行結果*/
#if (PRO_FCODE_RELAY == ENABLE) /* 1998/09/16 Add By M.Kuwahara */
	UBYTE	j;
	UBYTE	item;
	UBYTE	box_cnt_for_separator;	/* 罫線を書くときに参照するBOX番号 by H.Kubo 1999/01/12 */
	j = 0;
	item = 0;
#endif

	for ( i = 0; i < SUB_ADDRESS_BOX_MAX; i++ ) {	/* データ存在チェック */
		if( SYB_SubAddressBoxTable[i].Status != SUB_ADDRESS_BOX_EMPTY ){
			break;
		}
	}
	if( i >= SUB_ADDRESS_BOX_MAX ){
		return( MSG_PRN_LST_NO_LIST );
	}

	page = 1;
	box_cnt = 0;
#if (PRO_FCODE_RELAY == ENABLE)
	box_cnt_for_separator = 0; /* added by H.Kubo 1999/01/12 */
#endif

#if (1)		/* 初期化忘れ対応 by Y.kano 2005/03/01 */
	DialCheckBitPointer = 0;		/** ビットポインタを初期化 */
#endif

	while ( box_cnt != SUB_ADDRESS_BOX_MAX ) {
		if ( (ret = CharacterPrint( LST_OPEN )) != OK ) {
			return ( ret );
		}
		if ( page == 1 ) {
/*			line_cnt = (UBYTE)(PaperSizeLen() - 11);/*印刷可能行数セット*/
			line_cnt = (UBYTE)(PaperSizeLen() - 13);/*印刷可能行数セット*/	/*97/10/22 By M.Kuwahara */
		}
		else {
/*			line_cnt = (UBYTE)(PaperSizeLen() - 4);/*印刷可能行数セット*/	/*97/10/22 By M.Kuwahara */
			line_cnt = (UBYTE)(PaperSizeLen() - 5);/*印刷可能行数セット*/
		}
#if (PRO_FCODE_RELAY == ENABLE) /* 1998/09/16 Add By M.Kuwahara */
		if ( (ret = Print_Box_List_Head( 0, page, box_cnt ) ) != OK ) {/*ヘッダ印刷*/
			return ( ret );
		}
		i = 0;
		for ( ;; ) {
			if (line_cnt < 2) {
				break;
			}
			if (item == 0) {	/* ボックス名、サブアドレス等の出力 */
				F_CodeDataNextSearch( 1, &box_cnt );			/*次データサーチ*/
				box_cnt_for_separator	= box_cnt; /* added by H.Kubo 1999/01/12 */
				if ( box_cnt == SUB_ADDRESS_BOX_MAX ) {
					break;
				}
				if ( (ret = Print_Box_List_Specifi( page ,i, box_cnt) ) != OK ) {	/*1明細印刷*/
					return ( ret );
				}
				line_cnt -= 2;
			}
			if (SYB_SubAddressBoxTable[box_cnt].Status == SUB_ADDRESS_RELAY_BOX) {	/* 中継の時 */
				if (item == 0) {
					item = 1;
					j	= 0;
					DialCheckPointer	= SYS_ONETOUCH_DIAL;
					DialCheckBitPointer	= 0;
				}
				if (line_cnt < 2) {	/* 1行もかけない時 */
					break;
				}
				if ( (ret = Print_BoxExecData_Specifi( &j, &line_cnt, &item, box_cnt) ) != OK ) {	/*1明細印刷*/
					return ( ret );
				}
				if (line_cnt <= 0) {
					break;
				}
			}
			i++;
			box_cnt++;
			if (line_cnt < 2) { /* ページの最後の罫線が次のBOXの下用の罫線になるバグ対策 by H.Kubo 1999/01/12 */
				break;
			}
		}
 #if 0 /* ページの最後の罫線が次のBOXの下用の罫線になるバグ対策 by H.Kubo 1999/1/12 */
@@		if ( (ret = Print_Box_List_Head( 1, page, box_cnt) ) != OK ) {	/*フッタ印刷*/
@@			return ( ret );
@@		}
 #else
		if ( (ret = Print_Box_List_Head( 1, page, box_cnt_for_separator) ) != OK ) {	/*フッタ印刷*/
			return ( ret );
		}
 #endif
#else
		if ( (ret = Print_Box_List_Head( 0, page ) ) != OK ) {/*ヘッダ印刷*/
			return ( ret );
		}
		for ( i = 0; line_cnt >= 2; i++, line_cnt -= 2 ) {
			F_CodeDataNextSearch( 1, &box_cnt );			/*次データサーチ*/
			if ( box_cnt == SUB_ADDRESS_BOX_MAX ) {
				break;
			}
			if ( (ret = Print_Box_List_Specifi( page ,i, box_cnt) ) != OK ) {	/*1明細印刷*/
				return ( ret );
			}
			box_cnt++;
		}
		if ( (ret = Print_Box_List_Head( 1, page) ) != OK ) {	/*フッタ印刷*/
			return ( ret );
		}
#endif
		if ( box_cnt == SUB_ADDRESS_BOX_MAX ) {		/* 全ての印字終了時 */
			line_cnt--;
			if( line_cnt < 1 ){			/* ページ替え有りの時 */
				if ( (ret = CharacterPrint( LST_CLOSE )) != OK ) {
					return ( ret );
				}
				if ( (ret = CharacterPrint( LST_OPEN )) != OK ) {
					return ( ret );
				}
			}
#if (0)
//			/* "オプション  1:ジュシンキンシ 2:ウワガキ 3:ドウジプリント 4:ソウシンジゲンコウショウキョ" */
//			Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
//			AttributeSet( &List.S.Print[18-1], &List.S.Attribute[18-1], PWRD_BoxOption, LST_NOT );
//			List.S.Print[25-1] = '1';
//			List.S.Print[26-1] = ':';
//			AttributeSet( &List.S.Print[27-1], &List.S.Attribute[27-1], PWRD_RecvProtect, LST_NOT );
//			List.S.Print[38-1] = '2';
//			List.S.Print[39-1] = ':';
//			AttributeSet( &List.S.Print[40-1], &List.S.Attribute[40-1], PWRD_RxPrint, LST_NOT );
//			List.S.Print[51-1] = '3';
//			List.S.Print[52-1] = ':';
//			AttributeSet( &List.S.Print[53-1], &List.S.Attribute[53-1], PWRD_Replace, LST_NOT );
//			List.S.Print[61-1] = '4';
//			List.S.Print[62-1] = ':';
//			AttributeSet( &List.S.Print[63-1], &List.S.Attribute[63-1], PWRD_TransErase, LST_NOT );
//			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
//				return ( ret );
//			}
#endif
		}
		else{
			F_CodeDataNextSearch( 1, &box_cnt );			/*次データサーチ*/
		}

		if ( box_cnt == SUB_ADDRESS_BOX_MAX ) {		/* 全ての印字終了時 */
			/* "オプション  1:ジュシンキンシ 2:ウワガキ 3:ドウジプリント 4:ソウシンジゲンコウショウキョ" */
			Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
			AttributeSet( &List.S.Print[18-1], &List.S.Attribute[18-1], PWRD_Note, LST_NOT );
			List.S.Print[25-1] = '1';
			List.S.Print[26-1] = ':';
			AttributeSet( &List.S.Print[27-1], &List.S.Attribute[27-1], PWRD_RecvProtect, LST_NOT );
			List.S.Print[38-1] = '2';
			List.S.Print[39-1] = ':';
			AttributeSet( &List.S.Print[40-1], &List.S.Attribute[40-1], PWRD_RxPrint, LST_NOT );
			List.S.Print[51-1] = '3';
			List.S.Print[52-1] = ':';
			AttributeSet( &List.S.Print[53-1], &List.S.Attribute[53-1], PWRD_Replace, LST_NOT );
			List.S.Print[61-1] = '4';
			List.S.Print[62-1] = ':';
			AttributeSet( &List.S.Print[63-1], &List.S.Attribute[63-1], PWRD_TransErase, LST_NOT );
			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
				return ( ret );
			}
		}
#if (PRO_PRINT_TYPE == THERMAL_TRANS) || (PRO_PRINT_TYPE == THERMAL)	/* 1998/10/09 By M.Kuwahara */
		/*1行印字(改行)*/
		if ( (ret = CharacterPrint( LST_LINE_FEED )) != OK ) {
			return ( ret );
		}
#endif
		if ( (ret = CharacterPrint( LST_CLOSE )) != OK ) {
			return ( ret );
		}
		page++;
	}
	return ( OK );
}
/*************************************************************************
	module		:[サブアドレスBOXリストの1明細印刷]
	functiom	:[サブアドレスBOXリストの1明細を印刷する。]
	common		:[
	]
	condition	:[
	]
	commment	:[]
	return		:[印刷結果]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[97/04/17]
	author		:[桑原美紀]
*************************************************************************/
WORD					Print_Box_List_Specifi(
						 UBYTE Page,		/*ページ*/
						 UBYTE Line,		/*現在明細数*/
						 UBYTE BoxCnt )		/*BOX番号*/
{
	register WORD	ret;						/*実行結果*/
#if (PRO_FCODE_RELAY == ENABLE) /* 1998/09/16 Add By M.Kuwahara */
	UBYTE	i;
#endif

	if ( Page > 1 && Line == 0 ) {
		/* ┌──┬────┬──────┬────────┬──┬───┐*/
		Print_F_CodeBox_List_Line( 0, List.S.Print, List.S.Attribute );
		if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
			return ( ret );
		}
	}
	else {
#if (PRO_FCODE_RELAY == ENABLE) /* 1998/09/16 Add By M.Kuwahara */
		/* ├─┼────┼────┼────┼──┼──┤ */
		Print_F_CodeBox_List_Line( 2, List.S.Print, List.S.Attribute );
		if (BoxCnt != 0) {
 #if (0)	/* SYB_SubAddressBoxTable[0]が検索されない。By H.Fujimura 1999/01/05 */
 **			for (i = BoxCnt - 1; i > 0; i--) {		/* 前明細がF中継か検索 */
 #else
			for (i = BoxCnt - 1; i >= 0; i--) {		/* 前明細がF中継か検索 */
 #endif
			    if((SYB_SubAddressBoxTable[i].Status == SUB_ADDRESS_BULLETIN_BOX) ||	/* F親展又はF掲示板の時 */
			       (SYB_SubAddressBoxTable[i].Status == SUB_ADDRESS_SECURE_BOX)) {	
					break;
				}
			    if(SYB_SubAddressBoxTable[i].Status == SUB_ADDRESS_RELAY_BOX) {	/* F中継の時 */
					/* ├─┼────┼────┬────┬──┬──┤ */
					Print_F_CodeBox_List_Line( 7, List.S.Print, List.S.Attribute );
					break;
				}
			}
		}
#else
		/* ├─┼────┼────┼────┼──┼──┤ */
		Print_F_CodeBox_List_Line( 2, List.S.Print, List.S.Attribute );
#endif
		if (( ret = CharacterPrint( LST_PRINT )) != OK ) {
			return ( ret );
		}
	}

	/* │99│xxxxxxx│xxxxxxxxxxxxxxx│xxxxxxx│xxxxxxx│xxxxxxx│ */
	Print_F_CodeBox_List_Line( 3, List.S.Print, List.S.Attribute );
	/* Box */
	CMN_UnsignedIntToASC( &List.S.Print[2-1], (UWORD)(BoxCnt + 1), 2, ' ' );
	/* ボックス名 */
	CMN_StringCopy( &List.S.Print[6-1], SYB_SubAddressBoxTable[BoxCnt].BoxName );
	/* SUBアドレス番号 */
	CMN_StringCopy( &List.S.Print[23-1], SYB_SubAddressBoxTable[BoxCnt].SubAddress );
	/* 通信パスワード番号 */
	CMN_StringCopy( &List.S.Print[44-1], SYB_SubAddressBoxTable[BoxCnt].PassWord );
	/* 種類 */
	switch( SYB_SubAddressBoxTable[BoxCnt].Status ){
	case	SUB_ADDRESS_BULLETIN_BOX:		/* 掲示板 */
		CMN_StringCopy( &List.S.Print[65-1], PWRD_NoticeBoard );
		break;
	case	SUB_ADDRESS_SECURE_BOX:			/* 親展 */
		CMN_StringCopy( &List.S.Print[65-1], PWRD_Secure );
		break;
	case	SUB_ADDRESS_RELAY_BOX:			/* 中継 */
		CMN_StringCopy( &List.S.Print[65-1], PWRD_Relay );
		break;
	default:
		break;
	}
	/* オプション */
	if( SYB_SubAddressBoxTable[BoxCnt].Status == SUB_ADDRESS_BULLETIN_BOX ){		/* 掲示板の時 */
		OptionToShortString( SYB_SubAddressBoxTable[BoxCnt].Option, &List.S.Print[73-1] );
	}
	if( SYB_SubAddressBoxTable[BoxCnt].Status == SUB_ADDRESS_SECURE_BOX ){		/* 親展の時 */
		if( SYB_SubAddressBoxTable[BoxCnt].HoldTime != 0 ){		/* 保持時間が0の時表示無し */
			CMN_UnsignedIntToASC( &List.S.Print[73-1], 
				(UWORD)(SYB_SubAddressBoxTable[BoxCnt].HoldTime), 2, ' ' );
			AttributeSet( &List.S.Print[76-1], &List.S.Attribute[76-1], PWRD_Days, LST_NOT );
		}
	}

	if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
		return ( ret );
	}

	return( OK );
}
/*************************************************************************
	module		:[シンガポール市場調査レポートプリント]
	function	:[
		1.
	]
	return		:[]
	common		:[]
	condition	:[]
	comment		:[]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	ProtoType	:[int  Print_Sgp_Report_list(void){}]
	date		:[1998/07/24]
	author		:[王 慎]
	
	0         1         2         3         4         5         6         7        8
    12345678901234567890123456789012345678901234567890123456789012345678901234567890
	 No.  Location             Maker         Modem Code Size STime Mode Ecm Result  
	--------------------------------------------------------------------------------
    00001 111-1111             Muratec       V17   JBIG A3   0     H    E
    00002 111-1112                                                          D.0.7
    00003 111-1113             Matsushita    V17   JBIG A3   40    S    E
    00004 111-1114             45            V17   MMR  A3   40    S    E
    
    
*************************************************************************/
WORD	Print_Sgp_Report_list(
						 void )			/*なし*/
{
	UWORD	i;			/* loop */
	UBYTE	line_cnt;	/* 残り印刷可能行数 */
	UBYTE	line_cnt_bkup;	/* 残り印刷可能行数の初期値 */
	WORD	ret;		/* 実行結果 */


	if ( (ret = Memory_Dump_Head( 0 ) ) != OK ) {
		return ( ret );
	}
	line_cnt_bkup = (UBYTE)(PaperSizeLen());	/* 残り印刷可能行数の初期値 */
	line_cnt = (UBYTE)(line_cnt_bkup - 4 );

	/** ヘッド印字 */
	Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
	CMN_StringCopy( List.S.Print, SgpReportHead );
	if ( (ret = Memory_Dump_1Line( &line_cnt )) != OK ) {	/* 1行印字 */
		return ( ret );
	}

	/** 横罫線印字 */
	CMN_MemorySet( (UBYTE *)&List.S.Print[1-1], 80, LST_KLINE_ );
	if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
		return ( ret );
	}

	for ( i = 0; i < SYS_SGP_REPORT_MAX; i++ ) {
		Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );

		/** 通番 */
		CMN_UnsignedIntToASC( &List.S.Print[1-1], SYB_PerformanceFile[i].Number, 5, '0' );

		/* ダイアル番号 */
		CMN_StringCopy( &List.S.Print[7-1], SYB_PerformanceFile[i].RemoteID );
			
		/* メーカーコード */
		switch (SYB_PerformanceFile[i].Maker ) {
			case 0xA2: /* 村田機械			Muratec */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[0] );
				break;
			case 0x6A: /* ブラザー工業			Brother */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[1] );
				break;
			case 0x81: /* Canon 1		Cannon1 */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[2] );
				break;
			case 0x83: /* Canon 2		Cannon2 */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[3] );
				break;
			case 0x84: /* 沖電気				Oki     */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[4] );
				break;
			case 0x88: /* キャノン				Cannon3 */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[5] );
				break;
			case 0x8A: /* 三洋電機			Sanyo   */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[6] );
				break;
			case 0x8C: /* シャープ				Sharp   */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[7] );
				break;
			case 0x92: /* 日本電気(NEC)		NEC	    */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[8] );
				break;
			case 0x98: /* 富士ゼロックス			Xerox   */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[9] );
				break;
			case 0x9C: /* 松下電気			Pana    */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[10] );
				break;
			case 0x9E: /* 松下電送			Densou  */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[11] );
				break;
			case 0xA0: /* 三菱電気		 Mitsubishi */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[12] );
				break;
			case 0xA4: /* リコー				Ricoh   */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[13] );
				break;
			case 0xAE: /* 東京電気(TEC)		TEC     */
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], (UBYTE *)SgpReportMaker[14] );
				break;
			default:
				CMN_StringCopy( (UBYTE *)&List.S.Print[28-1], &SYB_PerformanceFile[i].Maker );
				break;
		}
			
		/* モデム能力 */
		switch (SYB_PerformanceFile[i].Baudrate ) {
			case (PER_MODEM_BAUDRATE_V17):
				AttributeSet( &List.S.Print[42], &List.S.Attribute[42], PWRD_V17, LST_NOT );
				break;
			case (PER_MODEM_BAUDRATE_V33):
				AttributeSet( &List.S.Print[42], &List.S.Attribute[42], PWRD_V33, LST_NOT );
				break;
			case (PER_MODEM_BAUDRATE_V29):
				AttributeSet( &List.S.Print[42], &List.S.Attribute[42], PWRD_V29, LST_NOT );
				break;
			case (PER_MODEM_BAUDRATE_V27):
				AttributeSet( &List.S.Print[42], &List.S.Attribute[42], PWRD_V27, LST_NOT );
				break;
		}
				
		/* 符号化方式 */
		switch (SYB_PerformanceFile[i].Code ) {
			case (PER_CODE_JBIG):
				AttributeSet( &List.S.Print[48], &List.S.Attribute[48], PWRD_JBG, LST_NOT );
				break;
			case (PER_CODE_MMR):
				AttributeSet( &List.S.Print[48], &List.S.Attribute[48], PWRD_MMR, LST_NOT );
				break;
			case (PER_CODE_MR):
				AttributeSet( &List.S.Print[48], &List.S.Attribute[48], PWRD_MR, LST_NOT );
				break;
			case (PER_CODE_MH):
				AttributeSet( &List.S.Print[48], &List.S.Attribute[48], PWRD_MH, LST_NOT );
				break;
		}
			
		/* 記録幅 */
		switch (SYB_PerformanceFile[i].Size ) {
			case (PER_SIZE_A4):
				AttributeSet( &List.S.Print[53], &List.S.Attribute[53], PWRD_A4, LST_NOT );
				break;
			case (PER_SIZE_B4):
				AttributeSet( &List.S.Print[53], &List.S.Attribute[53], PWRD_B4, LST_NOT );
				break;
			case (PER_SIZE_A3):
				AttributeSet( &List.S.Print[53], &List.S.Attribute[53], PWRD_A3, LST_NOT );
				break;
		}
			
		/* 受信最小電送時間 */
		switch (SYB_PerformanceFile[i].ScanningTime ) {
			case (PER_SCAN_TIME0):
				AttributeSet( &List.S.Print[58], &List.S.Attribute[58], PWRD_Wait0, LST_NOT );
				break;
			case (PER_SCAN_TIME10):
				AttributeSet( &List.S.Print[58], &List.S.Attribute[58], PWRD_Wait10, LST_NOT );
				break;
			case (PER_SCAN_TIME20):
				AttributeSet( &List.S.Print[58], &List.S.Attribute[58], PWRD_Wait20, LST_NOT );
				break;
			case (PER_SCAN_TIME40):
				AttributeSet( &List.S.Print[58], &List.S.Attribute[58], PWRD_Wait40, LST_NOT );
				break;
			case (PER_SCAN_TIME5):
				AttributeSet( &List.S.Print[58], &List.S.Attribute[58], PWRD_Wait5, LST_NOT );
				break;
		}
			
		/* 受信線密度 */
		switch (SYB_PerformanceFile[i].Mode ) {
			case (PER_MODE_NORMAL):
				AttributeSet( &List.S.Print[64], &List.S.Attribute[54], PWRD_ModeNR, LST_NOT );
				break;
			case (PER_MODE_FINE):
				AttributeSet( &List.S.Print[64], &List.S.Attribute[54], PWRD_ModeFN, LST_NOT );
				break;
			case (PER_MODE_S_FINE):
				AttributeSet( &List.S.Print[64], &List.S.Attribute[54], PWRD_ModeSF, LST_NOT );
				break;
			case (PER_MODE_O_FINE):
				List.S.Print[64-1] = 'O';
				break;
			case (PER_MODE_H_FINE):
				AttributeSet(&List.S.Print[64], &List.S.Attribute[54], PWRD_ModeHF, LST_NOT );
				break;
		}
			
		/* ECM機能 */
		if (SYB_PerformanceFile[i].EcmMode == 1) {
			List.S.Print[69-1] = 'E';
		}
		else {
			List.S.Print[69-1] = ' ';
		}
			
		/* 結果 */
		if (SYB_PerformanceFile[i].Result == 0) {
			List.S.Print[73-1] = ' ';
		}
		else {
			CommunicationResultName(SYB_PerformanceFile[i].Result,
									LST_NAME_SHORT,
									LST_RESULT_COMMON,
									&List.S.Print[73-1],
									&List.S.Attribute[73-1]);
		}
				
		if ( (ret = Memory_Dump_1Line( &line_cnt )) != OK ) {	/* 1行印字 */
			return ( ret );
		}
			
		if (line_cnt == line_cnt_bkup) {
			line_cnt -= 2;
		}
	}
	if ( (ret = Memory_Dump_Head( 1 ) ) != OK ) {
		return ( ret );
	}
	return( OK );
}
Exemple #14
0
/*************************************************************************
	module		:[サブアドレス原稿受信通知印刷]
	function	:[サブアドレス原稿受信通知を印刷する]
	common		:[
		List					:
		SYB_SubAddressBoxTable	:
	]
	condition	:[]
	commment	:[]
	return		:[印刷結果]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[97/04/16]
	author		:[桑原美紀]
*************************************************************************/
WORD				Print_F_CodeBoxRcv_Notice(
    UBYTE	BoxNumber,				/*Box*/
    UBYTE	FileNumber )			/*ファイル番号*/
{
    register WORD	ret;						/*実行結果*/

    if ( (ret = CharacterPrint( LST_OPEN )) != OK ) {
        return ( ret );
    }

    /*1改行+発信元名、番号印刷+2改行*/
    if ( (ret = TTI_ID_Print_Feed()) != OK ) {
        return ( ret );
    }

    /*�ョ�「�「�「�「�「�「�「�「�「�「�「�「�「�イ*/
    Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
    List.S.Print[22-1] = LST_KLINE7;
    CMN_MemorySet( &List.S.Print[23-1], 35, LST_KLINE_ );
    List.S.Print[58-1] = LST_KLINE9;
    if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
        return ( ret );
    }

    /* |Fコードジュシン  ツウチ| */
    Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
    List.S.Print[22-1] = LST_KLINEI;
#if ( PRO_PANEL == KANJI ) || ( PRO_JIS_CODE == ENABLE )
    AttributeSet( &List.S.Print[23-1], &List.S.Attribute[23-1],
                  PWRD_F_CodeBoxRsv_Notice_K, LST_NOT);
#else
    AttributeSet( &List.S.Print[23-1], &List.S.Attribute[23-1],
                  PWRD_F_CodeBoxRsv_Notice, LST_MES_TWI_XXX);
#endif

    List.S.Print[58-1] = LST_KLINEI;
    if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
        return ( ret );
    }

    /*�カ�「�「�「�「�「�「�「�「�「�「�「�「�コ*/
    Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
    List.S.Print[22-1] = LST_KLINE1;
    CMN_MemorySet( &List.S.Print[23-1], 35, LST_KLINE_ );
    List.S.Print[58-1] = LST_KLINE3;
    if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
        return ( ret );
    }

    /*1行印字(改行)*/
    if ( (ret = CharacterPrint( LST_LINE_FEED )) != OK ) {
        return ( ret );
    }

    /* 現在時間 */
    if (( ret = CurrentTimePrint( 47 - 1 )) != OK ) {
        return ( ret );
    }

    /* ┌─┬──────┬──────┬──┬──┐ */
    Print_Del_F_Code_Notice_Line( 5, List.S.Print, List.S.Attribute );
    if (( ret = CharacterPrint( LST_PRINT )) != OK ) {
        return ( ret );
    }

    /* │Box│ボックス名│ 相手先名  	│種類│原稿No.│ */
    Print_Del_F_Code_Notice_Line( 6, List.S.Print, List.S.Attribute );
    if (( ret = CharacterPrint( LST_PRINT )) != OK ) {
        return ( ret );
    }

    /* ├─┼──────┼──────┼──┼──┤ */
    Print_Del_F_Code_Notice_Line( 7, List.S.Print, List.S.Attribute );
    if (( ret = CharacterPrint( LST_PRINT )) != OK ) {
        return ( ret );
    }

    /* │99│xxxxxxx│xxxxxxxxxxxxxxx│xxxxxx│xxxxxx│ */
    Print_Del_F_Code_Notice_Line( 8, List.S.Print, List.S.Attribute );
    /* Box */
    CMN_UnsignedIntToASC( &List.S.Print[8-1], (UWORD)BoxNumber, 2, ' ' );
    /* ボックス名 */
    CMN_StringCopy( &List.S.Print[12-1], SYB_SubAddressBoxTable[BoxNumber-1].BoxName );
    /* 相手先名 */
    CMN_StringCopy( &List.S.Print[29-1], SYB_SubAddressBoxTable[BoxNumber-1].RemoteName );
    /* 種類 */
    switch( SYB_SubAddressBoxTable[BoxNumber-1].Status ) {
    case	SUB_ADDRESS_BULLETIN_BOX:		/* 掲示板 */
        CMN_StringCopy( &List.S.Print[51-1], PWRD_NoticeBoard );
        break;
    case	SUB_ADDRESS_SECURE_BOX:			/* 親展 */
        CMN_StringCopy( &List.S.Print[51-1], PWRD_Secure );
        break;
    case	SUB_ADDRESS_RELAY_BOX:			/* 中継 */
        CMN_StringCopy( &List.S.Print[52-1], PWRD_Relay );
        break;
    default:
        break;
    }
    /* 原稿No. */
    CMN_UnsignedIntToASC( &List.S.Print[62-1], (UWORD)FileNumber, 2, ' ' );

    if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
        return ( ret );
    }

    /* └─┴─────┴──────┴──┴──┘	 */
    Print_Del_F_Code_Notice_Line( 9, List.S.Print, List.S.Attribute );
    if (( ret = CharacterPrint( LST_PRINT )) != OK ) {
        return ( ret );
    }

    /* "Fコードボックスゲンコウ ヲ ジュシン シマシタ" */
    Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
    AttributeSet( &List.S.Print[7-1], &List.S.Attribute[7-1], PWRD_F_CodeReci, LST_NOT );
    if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
        return ( ret );
    }

    if( SYB_SubAddressBoxTable[BoxNumber-1].ErasedTime != 0xFFFFFFFF ) {
        /* "(ジュシン ゲンコウ キオクキカン)" */
        Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
        AttributeSet( &List.S.Print[7-1], &List.S.Attribute[7-1], PWRD_F_ReciDocMemory, LST_NOT );
        if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
            return ( ret );
        }

        /*消去時間*/
        Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
        TimeDataAscii( OFF, SYB_SubAddressBoxTable[BoxNumber-1].ErasedTime, List.S.Work, 0 );
        CMN_StringCopy( &List.S.Print[7-1], List.S.Work );
        if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
            return ( ret );
        }
    }

    /*1行印字(改行)*/
    if ( (ret = CharacterPrint( LST_LINE_FEED )) != OK ) {
        return ( ret );
    }

    if ( (ret = CharacterPrint( LST_CLOSE )) != OK ) {
        return ( ret );
    }

    /* 出力状態をクリア */
    /* プリント終了後にメインでクリアする 1997/04/24  By T.Yamaguchi */
    /*	SYB_SubAddressBoxTable[BoxNumber].MessageStatus	= SYS_SUB_ADDRESS_BOX_MSG_EMPTY; */

    return ( OK );
}
Exemple #15
0
//BOPI
// !IROUTINE:  AttributeUpdateBufRecv - unpack the serialized Attribute updates
//
// !INTERFACE:
      int Attribute::AttributeUpdateBufRecv(
//
// !RETURN VALUE:
//    {\tt ESMF\_SUCCESS} or error code on failure.
//
// !ARGUMENTS:
      char *recvBuf,                   // buffer with packed updates
      int localPet,                   // localPet for printing
      int *offset,                     // current position in the buffer
      const int &length)  {                 // length of buffer
//
// !DESCRIPTION:
//    Serialize the updates to an {\tt Attribute} hierarchy.  
//    Expected to be called internally.
//
//EOPI

  int localrc, nbytes, loffset;
  Attribute *attr;
  unsigned int i;
  char *thiskey, *distkey;

  // Initialize local return code; assume routine not implemented
  localrc = ESMC_RC_NOT_IMPL;

  thiskey = NULL; distkey = NULL;
  thiskey = new char[keySize];
  if (!thiskey) {
    ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_BAD,
                  "Failed allocating key", &localrc);
    return localrc;
  }
  distkey = new char[keySize];
  if (!distkey) {
    ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_BAD,
                  "Failed allocating key", &localrc);
    delete [] thiskey;
    return localrc;
  }
    
  // make key
  localrc = AttributeUpdateKeyCreate(thiskey);
  if (localrc != ESMF_SUCCESS) {
    ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_VALUE,
                  "AttributeUpdateMakeKey failed", &localrc);
    delete [] thiskey;
    return ESMF_FAILURE;
  }

  // unpack next key
  memcpy(distkey, recvBuf+(*offset), keySize);

  // compare keys
  if (AttributeUpdateKeyCompare(thiskey, distkey) == false) {
  /*  
    printf("DeleteMe!!!\n");
  if (localPet == 4) {
    printf("%d  %s  %s  %s  %d  -  %d  %s  %s  %s  %d\n", 
          (*(reinterpret_cast<int*> (thiskey+0))),
          thiskey+4,
          (*(reinterpret_cast<bool*> (thiskey+5))) ? "true" : "false",
          (*(reinterpret_cast<bool*> (thiskey+6))) ? "true" : "false",
          (*(reinterpret_cast<int*> (thiskey+7))),
          (*(reinterpret_cast<int*> (distkey+0))),
          distkey+4,
          (*(reinterpret_cast<bool*> (distkey+5))) ? "true" : "false",
          (*(reinterpret_cast<bool*> (distkey+6))) ? "true" : "false",
          (*(reinterpret_cast<int*> (distkey+7))));
    }
    */
    if (attrPackHead == ESMF_TRUE) {
      delete [] thiskey;
      delete [] distkey;
      return ESMC_ATTUPDATERM_ATTPACK;
    }
    else if (attrPack == ESMF_TRUE) {
      delete [] thiskey;
      delete [] distkey;
      return ESMC_ATTUPDATERM_ATTPACKATT;
    }
    else {
      delete [] thiskey;
      delete [] distkey;
      return ESMC_ATTUPDATERM_ATTRIBUTE;
    }
  }

  // get key info
  bool valueChange = (*(reinterpret_cast<bool*> (distkey+sizeof(int)+1)));
  bool strctChange = (*(reinterpret_cast<bool*> (distkey+sizeof(int)+1+sizeof(bool))));
  int attrChange = (*(reinterpret_cast<int*> (distkey+sizeof(int)+1+(2*sizeof(bool)))));
  int packChange = (*(reinterpret_cast<int*> (distkey+sizeof(int)+1+(2*sizeof(bool))+sizeof(int))));

  // now update offset
  *offset += keySize;

  // make sure offset is aligned correctly
  nbytes=(*offset)%8;
  if (nbytes!=0) *offset += 8-nbytes;  
  
  // check if buffer has been overwritten
  if (length < *offset){
    ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_BAD,
                      "Overread the buffer", &localrc);
    delete [] thiskey;
    delete [] distkey;
    return localrc;
  }
  
  // if value change, unpack into temp and set
  if (valueChange) {
    for (i=0; i<attrChange; ++i) {
      attr = NULL;
      attr = new Attribute(ESMF_FALSE);
      if (!attr) {
        ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_BAD,
                      "Failed allocating Attribute", &localrc);
        delete [] thiskey;
        delete [] distkey;
        return localrc;
      }
      attr->setBase(attrBase);
      attr->parent = this;
      attr->ESMC_Deserialize(recvBuf,offset);
      localrc = AttributeCopy(*attr);
      // can delete this one and not call reset because this is a value copy
      delete attr;
    }
  }

  // if struct change, traverse and build
  if (strctChange) {
    for (i=0; i<attrChange; ++i) {
      attr = NULL;
      attr = new Attribute(ESMF_FALSE);
      if (!attr) {
        ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_BAD,
                      "Failed allocating Attribute", &localrc);
        delete [] thiskey;
        delete [] distkey;
        return localrc;
      }
      attr->setBase(attrBase);
      attr->parent = this;
      attr->ESMC_Deserialize(recvBuf,offset);
      localrc = AttributeSet(attr);
    }
    for (i=0; i<packChange; ++i) {
      attr = NULL;
      attr = new Attribute("42","42","42","42");
      if (!attr) {
        ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_BAD,
                      "Failed allocating Attribute", &localrc);
        delete [] thiskey;
        delete [] distkey;
        return localrc;
      }
      attr->setBase(attrBase);
      attr->parent = this;
      attr->ESMC_Deserialize(recvBuf,offset);
      localrc = AttPackSet(attr);
    }
    if (localrc != ESMF_SUCCESS) {
      ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_VALUE,
                  "AttributeUpdateBufRecv failed adding attribute", &localrc);
      delete [] thiskey;
      delete [] distkey;
      return ESMF_FAILURE;
    }
    localrc = attr->AttributeUpdateReset();
    if (localrc != ESMF_SUCCESS) {
      ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_VALUE,
                  "AttributeUpdateBufRecv failed resetting", &localrc);
      delete [] thiskey;
      delete [] distkey;
      return ESMF_FAILURE;
    }
  }
  
  // make sure offset is aligned correctly
  nbytes=(*offset)%8;
  if (nbytes!=0) *offset += 8-nbytes;

  // check if buffer has been overwritten
  if (length < *offset){
    ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_BAD,
                      "Overread the buffer", &localrc);
    delete [] thiskey;
    delete [] distkey;
    return localrc;
  }
      
  // recurse through the Attribute hierarchy
  for (i=0; i<attrChange; ++i) {
    localrc = attrList.at(i)->AttributeUpdateBufRecv(recvBuf,localPet,offset,length);
    if (localrc == ESMC_ATTUPDATERM_ATTRIBUTE) 
      localrc = AttributeRemove(attrList.at(i)->attrName);
      if (localrc != ESMF_SUCCESS) {
        ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_VALUE,
                "AttributeUpdateBufRecv failed removing attr", &localrc);
        delete [] thiskey;
        delete [] distkey;
        return ESMF_FAILURE;
      }
  }
  for (i=0; i<packChange; ++i) {
    localrc = packList.at(i)->AttributeUpdateBufRecv(recvBuf,localPet,offset,length);
    if (localrc == ESMC_ATTUPDATERM_ATTPACKATT)
      localrc = AttPackRemoveAttribute(packList.at(i)->attrName, packList.at(i)->attrConvention, 
        packList.at(i)->attrPurpose, packList.at(i)->attrObject, NULL);
    else if (localrc == ESMC_ATTUPDATERM_ATTPACK) {
      localrc = AttPackRemove(packList.at(i)->attrConvention, 
        packList.at(i)->attrPurpose, packList.at(i)->attrObject, NULL);
    if (localrc != ESMF_SUCCESS) {
      ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_VALUE,
                  "AttributeUpdateBufRecv failed removing attr", &localrc);
      delete [] thiskey;
      delete [] distkey;
      return ESMF_FAILURE;
    }
    }
    else if (localrc != ESMF_SUCCESS) {
        ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_VALUE,
                  "AttributeUpdateBufRecv failed in recursion", &localrc);
        delete [] thiskey;
        delete [] distkey;
        return ESMF_FAILURE;
    }
  }
  for (i=0; i<linkList.size(); ++i) {
    localrc = linkList.at(i)->AttributeUpdateBufRecv(recvBuf,localPet,offset,length);
      if (localrc != ESMF_SUCCESS) {
        ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_VALUE,
          "AttributeUpdate not enabled for object hierarchy changes", &localrc);
        delete [] thiskey;
        delete [] distkey;
        return ESMF_FAILURE;
      }
  }
    
  // check if buffer has been overwritten
  if (length < *offset){
    ESMC_LogDefault.ESMC_LogMsgFoundError(ESMC_RC_ARG_BAD,
                      "Overread the buffer", &localrc);
    delete [] thiskey;
    delete [] distkey;
    return localrc;
  }
    
  delete [] thiskey;
  delete [] distkey;
    
  return ESMF_SUCCESS;
  
  } // end AttributeUpdateBufRecv
/*************************************************************************
	module		:[ツウシンヨヤク横区切り罫線作成]
	functiom	:[
				ツウシンヨヤクの横区切り罫線を作成する。
				]
	common		:[]
	condition	:[
		罫線種類
		,	0 = �ョ�「�「�ホ�「�「�「�「�「�「�ホ�「�「�「�「�ホ�「�「�「�ホ�「�「�イ
		,	1 = �、NO. �、			�、		  �、	  �、	�、
		,	2 = �セ�「�「�゙�「�「�「�「�「�「�゙�「�「�「�「�゙�「�「�「�゙�「�「�ニ
		,	3 = �、   �、			�、		  �、	  �、	�、
		,	4 = �カ�「�「�ヨ�「�「�「�「�「�「�ヨ�「�「�「�「�ヨ�「�「�「�ヨ�「�「�コ
	]
	commment	:[
				プログラムワンタッチの罫線が変更した為、作成
				]
	return		:[印刷結果なし]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[1996/12/28]
	author		:[磯辺毅]
*************************************************************************/
void			Print_ReserveCmd_List_Line(
						 UBYTE Category,				/*罫線種類*/
						 register UBYTE *AscString,		/*印刷文字列*/
						 register UBYTE *AttString )	/*修飾文字列*/
{
	Prn_Att_Str_Clear( AscString, AttString );
	switch ( Category ) {
		case 0:
			/*�ョ�「�「�ホ�「�「�「�「�「�「�ホ�「�「�「�「�ホ�「�「�「�ホ�「�「�イ*/
			AscString[1-1] = LST_KLINE7;
			CMN_MemorySet( &AscString[2-1], 78, LST_KLINE_ );
			AscString[5-1] = LST_KLINE8;
			AscString[46-1] = LST_KLINE8;
			AscString[55-1] = LST_KLINE8;
			AscString[64-1] = LST_KLINE8;
			AscString[80-1] = LST_KLINE9;
			break;
		case 1:
			/*�、NO. �、ダイヤル番号 �、指定日時 �、応用機能�、備考�、*/
			AscString[1-1] = LST_KLINEI;
			AttributeSet( &AscString[2-1], &AttString[2-1], PWRD_No, LST_NOT );
			AscString[5-1] = LST_KLINEI;
			AttributeSet( &AscString[17-1], &AttString[17-1], PWRD_TeleNumber,
			  LST_NOT );	/* 18 -> 17 97/03/11 M.Kuwahara */
			AscString[46-1] = LST_KLINEI;
			AttributeSet( &AscString[47-1], &AttString[47-1], PWRD_DelyTime,
			  LST_NOT );
			AscString[55-1] = LST_KLINEI;
#if ( PRO_PANEL == KANJI ) || ( PRO_JIS_CODE == ENABLE )	/* 追加 97/02/12 M.Kuwahara */
			AttributeSet( &AscString[56-1], &AttString[56-1], PWRD_Option,
			  LST_NOT );
#else
			AttributeSet( &AscString[56-1], &AttString[56-1], PWRD_Option,
			  LST_NOT );	/* 57->56に変更 98/02/16 Y.Matsukuma */
#endif
			AscString[64-1] = LST_KLINEI;
			AttributeSet( &AscString[69-1], &AttString[69-1], PWRD_Note,
			  LST_NOT );
			AscString[80-1] = LST_KLINEI;
			break;
		case 2:
			/*�セ�「�「�゙�「�「�「�「�「�「�゙�「�「�「�「�゙�「�「�「�゙�「�「�ニ*/
			AscString[1-1] = LST_KLINE4;
			CMN_MemorySet( &AscString[2-1], 78, LST_KLINE_ );
			AscString[5-1] = LST_KLINE5;
			AscString[46-1] = LST_KLINE5;
			AscString[55-1] = LST_KLINE5;
			AscString[64-1] = LST_KLINE5;
			AscString[80-1] = LST_KLINE6;
			break;
		case 3:
			/*�、 	�、			  �、		�、		�、	  �、*/
			AscString[1-1] = LST_KLINEI;
			AscString[5-1] = LST_KLINEI;
			AscString[46-1] = LST_KLINEI;
			AscString[55-1] = LST_KLINEI;
			AscString[64-1] = LST_KLINEI;
			AscString[80-1] = LST_KLINEI;
			break;
		case 4:
			/*�カ�「�「�ヨ�「�「�「�「�「�「�ヨ�「�「�「�「�ヨ�「�「�「�ヨ�「�「�コ*/
			AscString[1-1] = LST_KLINE1;
			CMN_MemorySet( &AscString[2-1], 78, LST_KLINE_ );
			AscString[5-1] = LST_KLINE2;
			AscString[46-1] = LST_KLINE2;
			AscString[55-1] = LST_KLINE2;
			AscString[64-1] = LST_KLINE2;
			AscString[80-1] = LST_KLINE3;
			break;
	}
}
/*************************************************************************
	module		:[キーマクロコメントリスト]
	function	:[キーマクロコメントリストを印刷する]
	common		:[
		List		:
		SYB_KeyMacro
	]
	condition	:[]
	commment	:[]
	return		:[印刷結果]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[98/05/19]
	author		:[桑原美紀]
*************************************************************************/
WORD				Print_KeyMacro_List(
						 void )				/*なし*/
{
	UBYTE	i;						/*loop*/
	register WORD	ret;					/*実行結果*/

	/*データなしチェック*/
	for ( i = 0; i < SYS_KEYMACRO_MAX; i++ ) {
		if (( SYB_KeyMacro[i].Step[0] != 0xFF ) ||	
			( SYB_KeyMacro[i].Title[0] != 0x00)) {
			break;
		}
	}
	if ( i == SYS_KEYMACRO_MAX ) {
		return ( MSG_PRN_LST_NO_LIST );
	}

	if ( (ret = CharacterPrint( LST_OPEN )) != OK ) {
		return ( ret );
	}

	/*1改行+発信元名、番号印刷+2改行+見出し+1改行*/
#if ( PRO_PANEL == KANJI ) || ( PRO_JIS_CODE == ENABLE )
		if ( (ret = Print_Head1_Common( PWRD_KeyMacroList_K, LST_NOT, 23-1 )) != OK ) {
			return ( ret );
		}
#else
	if ( (ret = Print_Head1_Common( PWRD_KeyMacroList, LST_XXX_TWI_XXX, 18-1 )) != OK ) {
		return ( ret );
	}
#endif

	/*現在時間*/
	if ( (ret = CurrentTimePrint( 42-1 )) != OK ) {
		return ( ret );
	}

	/*�ョ�「�ホ�「�「�「�「�「�イ*/
	Print_KeyMacroList_Line( 0, List.S.Print, List.S.Attribute );
	if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
		return ( ret );
	}

	/*�、 No.�、  タイトル   �、*/
	Print_KeyMacroList_Line( 1, List.S.Print, List.S.Attribute );
	if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
		return ( ret );
	}

	for ( i = 0; i < SYS_KEYMACRO_MAX; i++ ) {
		if (( SYB_KeyMacro[i].Step[0] != 0xFF ) ||	/* ステップかコメントが登録されている時 */
			( SYB_KeyMacro[i].Title[0] != 0x00 )) {
			/*�セ�「�「�゙�「�「�「�ニ*/
			Print_KeyMacroList_Line( 2, List.S.Print, List.S.Attribute );
			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
				return ( ret );
			}

			/*�、 9 �、xxxxxx�、*/
			Prn_Att_Str_Clear( List.S.Print, List.S.Attribute );
			List.S.Print[19-1] = LST_KLINEI;
#if (PRO_PANEL == ANK)
			List.S.Print[20-1] = '[';
			List.S.Print[23-1] = ']';
			CMN_UnsignedIntToASC( &List.S.Print[21-1], (UWORD)i+26, 2, '0' );
#endif
#if (PRO_PANEL == KANJI)
			List.S.Print[20-1] = LCD_PICFONT;
			List.S.Print[23-1] = LCD_PICFONT_LOWER;
			CMN_UnsignedIntToASC( &List.S.Print[21-1], (UWORD)i+26, 2, '0' );
#endif
			List.S.Print[24-1] = LST_KLINEI;
			if (SYB_KeyMacro[i].Title[0] == 0x00) {		/* タイトル無しの時 */
				AttributeSet( &List.S.Print[25-1], &List.S.Attribute[25-1], PWRD_NoTitle, LST_NOT );
			}
			else{
				CMN_StringCopy(&List.S.Print[25-1], SYB_KeyMacro[i].Title );
			}
			List.S.Print[62-1] = LST_KLINEI;
			if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
				return ( ret );
			}
		}
	}
	/*�カ�「�「�ヨ�「�「�「�「�コ*/
	Print_KeyMacroList_Line( 3, List.S.Print, List.S.Attribute );
	if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
		return ( ret );
	}

	/*1行印字(改行)*/
	if ( (ret = CharacterPrint( LST_LINE_FEED )) != OK ) {
		return ( ret );
	}

	if ( (ret = CharacterPrint( LST_CLOSE )) != OK ) {
		return ( ret );
	}
	return ( OK );
}
/*************************************************************************
	module		:[ダイヤルリスト(ワンタッチ)の1明細印刷]
	functiom	:[ダイヤルリスト(ワンタッチ)の1明細を印刷する。]
	common		:[
		List				:
		SYB_OnetouchDial	:
	]
	condition	:[]
	commment	:[]
	return		:[印刷結果]
	machine		:[SH7043]
	language	:[SHC]
	keyword		:[LST]
	date		:[94/ 2/28]
	author		:[豊田浩子]
*************************************************************************/
#if (PRO_DIAL_LIST_GROUP == DISABLE)	/* by K.Watanabe 1999/05/24 */
WORD				Print_OnetouchDial_List_Specifi(
						 UBYTE Page,		/*ページ*/
						 UBYTE Line,		/*現在明細数*/
						 UBYTE OnetouchCnt,	/*ワンタッチダイヤル番号*/
						 UBYTE *LineCnt )	/*印字行位置*/
{
	register WORD	ret;					/*実行結果*/

#if defined(KEISATSU)		/* 警察FAX属性追加 Added by SMuratec 夏 2005/07/21 */
	UBYTE	kei_buf[4];
	UBYTE	kei_pos;
	kei_pos = 0;
#endif
	
#if 0	/* プレフィックス+ダイヤル番号で40桁を超えても折り返して印字しないので、大島さん確認の上、リストでの展開は止めます by K.Watanabe 2004/11/12 */
//#if defined(STOCKHM2) || (PRO_PREFIX_KEY == ENABLE)	/* DVT: Added by SMuratec K.W.Q 2004/09/10 *//* by K.Watanabe 2004/10/12 */
//	UWORD	length;
#endif			/*	End of defined(STOCKHM2)	*/

	if ( Page > 1 && Line == 0 ) {
		/*・・・・・・・・・・・・─・*/
		Print_Dial_List_Line( 0, List.S.Print, List.S.Attribute );
		if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
			return ( ret );
		}
	}
	else {
		/*・・・・・・・・・・・・─・*/
		Print_Dial_List_Line( 2, List.S.Print, List.S.Attribute );
		if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
			return ( ret );
		}
	}
	/*・xXx・xxxxxx・xxxxxxxxx・xxxxxxxx│*/
	Print_Dial_List_Line( 3, List.S.Print, List.S.Attribute );
	/* No. */
	/* List.S.Print[2-1] = '[';
	List.S.Print[4-1] = ']';
	List.S.Print[3-1] = CMN_OffsetToOnetouchCode( OnetouchCnt ); */
#if (PRO_KEYPANEL == PANEL_ANZU_L)
	if ( CMN_OffsetToOnetouchCode( OnetouchCnt ) <= 0x7A ){ /* ワンタッチ記号が変更(ANZU) 96/01/10 H.HIRAO */
		List.S.Print[2-1] = CMN_OffsetToOnetouchCode( OnetouchCnt );
	} else{
		List.S.Print[2-1] = 0x55;	/* 'U'のASCIIコ-ド */
		List.S.Print[3-1] = CMN_OffsetToOnetouchCode( OnetouchCnt ) & (UBYTE)0x0F | (UBYTE)0x30; /* U1〜U8記号をつくる*/	}
#else	/* PANEL_POPLA_B/L/H */
 #if (PRO_PANEL == ANK)
		List.S.Print[5-1] = '[';
		List.S.Print[8-1] = ']';
		CMN_UnsignedIntToASC( &List.S.Print[6-1], (UWORD)(CMN_OffsetToOnetouchCode( OnetouchCnt ) - 0x40), 2, '0' );
 #endif
 #if (PRO_PANEL == KANJI)
 		/* ワンタッチの表示を[]->絵文字に変更 By O.Kimoto 1998/01/22 */
		List.S.Print[5-1] = LCD_PICFONT;
		List.S.Print[6-1] = LCD_PICFONT_LOWER;
		CMN_UnsignedIntToASC( &List.S.Print[7-1], (UWORD)(CMN_OffsetToOnetouchCode( OnetouchCnt ) - 0x40), 2, '0' );
 #endif
#endif
	/*相手先名*/
	/* CMN_StringCopy( &List.S.Print[6-1], SYB_OnetouchDial[OnetouchCnt].DialData.Onetouch.Name ); */
#if (PRO_KEYPANEL == PANEL_ANZU_L)
 #if (PRO_MINOLTA_TEST_FUNC == DISABLE)	/* 1998/07/23 Y.Matsukuma */
	CMN_StringCopy( &List.S.Print[7-1], SYB_OnetouchDial[OnetouchCnt].Name ); /* 97/01/22 M.Kuwahara */
 #endif
#else	/* PANEL_POPLA_B/L/H */
	CMN_StringCopy( &List.S.Print[10-1], SYB_OnetouchDial[OnetouchCnt].Name ); /* 変更(ANZU) 95/12/14 H.HIRAO */
#endif

	
#if defined(KEISATSU)	/* 警察FAX属性追加 Added by SMuratec 夏 2005/07/21 */
	/* SYB_OnetouchDial[OnetouchCnt].Keisatsu から、属性バッファを作成 */
	if (SYB_OnetouchDial[OnetouchCnt].Keisatsu & SYS_KEISATSU_KEIDEN){
		CMN_StringCopyNumNotNULL(&kei_buf[kei_pos], "ケ", 1);
		kei_pos++;
	}
	else if (SYB_OnetouchDial[OnetouchCnt].Keisatsu & SYS_KEISATSU_KANYU){
		CMN_StringCopyNumNotNULL(&kei_buf[kei_pos], "カ", 1);
		kei_pos++;
	}

	if (SYB_OnetouchDial[OnetouchCnt].Keisatsu & SYS_KEISATSU_ISSEI){
		CMN_StringCopyNumNotNULL(&kei_buf[kei_pos], "イ", 1);
		kei_pos++;
	}
	else if (SYB_OnetouchDial[OnetouchCnt].Keisatsu & SYS_KEISATSU_KOBETSU){
		CMN_StringCopyNumNotNULL(&kei_buf[kei_pos], "コ", 1);
		kei_pos++;
	}

	if (SYB_OnetouchDial[OnetouchCnt].Keisatsu & SYS_KEISATSU_SCRAMBLE_ON){
		CMN_StringCopyNumNotNULL(&kei_buf[kei_pos], "S", 1);
		kei_pos++;
	}
	else if (SYB_OnetouchDial[OnetouchCnt].Keisatsu & SYS_KEISATSU_SCRAMBLE_OFF){
		CMN_StringCopyNumNotNULL(&kei_buf[kei_pos], "N", 1);
		kei_pos++;
	}

	if (SYB_OnetouchDial[OnetouchCnt].Keisatsu & SYS_KEISATSU_KYOTSU){
		CMN_StringCopyNumNotNULL(&kei_buf[kei_pos], "キ", 1);
		kei_pos++;
	}
	else if (SYB_OnetouchDial[OnetouchCnt].Keisatsu & SYS_KEISATSU_SENYO){
		CMN_StringCopyNumNotNULL(&kei_buf[kei_pos], "セ", 1);
		kei_pos++;
	}
	
	/* 属性がある、40桁番号の場合ご注意してください。*/
	if(kei_pos > 0){
		CMN_StringCopy( &List.S.Print[35-1], kei_buf ); 
		/*ダイヤル番号*/
		CMN_BCD_ToASC_String( List.S.Work, SYB_OnetouchDial[OnetouchCnt].Dial ); /* 変更(ANZU) 95/12/14 H.HIRAO */
		CMN_StringCopy( &List.S.Print[35+kei_pos-1], List.S.Work );
	}
	else{
		
		CMN_BCD_ToASC_String( List.S.Work, SYB_OnetouchDial[OnetouchCnt].Dial ); /* 変更(ANZU) 95/12/14 H.HIRAO */
		CMN_StringCopy( &List.S.Print[35-1], List.S.Work );
	}

#else	
	/* CMN_BCD_ToASC_String( (UBYTE *)List.S.Work, SYB_OnetouchDial[OnetouchCnt].DialData.Onetouch.Dial ); */
	CMN_BCD_ToASC_String( List.S.Work, SYB_OnetouchDial[OnetouchCnt].Dial ); /* 変更(ANZU) 95/12/14 H.HIRAO */
#endif

#if (PRO_KEYPANEL == PANEL_ANZU_L)
	CMN_StringCopy( &List.S.Print[24-1], List.S.Work );
	/*グループNo*/
	/* GroupToShortString(
	  SYB_OnetouchDial[OnetouchCnt].DialData.Onetouch.Group, List.S.Work ); */
	GroupToShortString(
	  SYB_OnetouchDial[OnetouchCnt].Group, List.S.Work ); /* 変更(ANZU) 95/12/14 H.HIRAO */
	CMN_StringCopy( &List.S.Print[65-1], List.S.Work );
#else	/* PANEL_POPLA_B/L/H */
 #if 0	/* プレフィックス+ダイヤル番号で40桁を超えても折り返して印字しないので、大島さん確認の上、リストでの展開は止めます by K.Watanabe 2004/11/12 */
// #if defined(STOCKHM2) || (PRO_PREFIX_KEY == ENABLE)	/* DVT: Added by SMuratec K.W.Q 2004/09/09 *//* by K.Watanabe 2004/10/12 */
//			if (List.S.Work[0] == '!'){
//				length = CMN_StringLength(SYB_MercuryDialBuffer);	/* マキュリー登録桁 */
//
//				List.S.Print[34] = '[';
//				if (length > 38){
//					CMN_StringCopyNumUntilNull( &List.S.Print[35], SYB_MercuryDialBuffer, 39);
//				}
//				else{
//					List.S.Print[35 + length] = ']';
//					
//					CMN_StringCopyNumUntilNull( &List.S.Print[35], SYB_MercuryDialBuffer, length);
//					CMN_StringCopyNumUntilNull( &List.S.Print[36 + length], &List.S.Work[1],
//						(38 - length) );
//				}
//			}
//			else{
//				CMN_StringCopy( &List.S.Print[35-1], List.S.Work );
//			}
 #else
  #if !defined(KEISATSU)	/* 警察FAX属性追加 Added by SMuratec 夏 2005/07/21 */
	CMN_StringCopy( &List.S.Print[35-1], List.S.Work );
  #endif
 #endif		/*	End of defined(STOCKHM2) || (PRO_PREFIX_KEY == ENABLE) */
#endif
	if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
		return ( ret );
	}
	*LineCnt -= 2;
#if !defined (KEISATSU) /* 05/04/12 石橋正和 */
	/* if ( SYB_OnetouchDial[OnetouchCnt].DialData.Onetouch.SubDialPosition != 0xFF ) { */
	if (SYB_OnetouchDial[OnetouchCnt].SubDialPosition != 0xFF ) { /* 変更(ANZU) 95/12/14 H.HIRAO */
		/*・	・(転送先)・xxxxxxxxx・	 ・	  │*/
		Print_Dial_List_Line( 3, List.S.Print, List.S.Attribute );
		/*(転送先)*/
#if (PRO_KEYPANEL == PANEL_ANZU_L)						/* POPLA_L対応 1997/03/07 M.Kuwahara */
		AttributeSet( &List.S.Print[7-1], &List.S.Attribute[7-1], PWRD_AltNo, LST_NOT );
#else	/* PANEL_POPLA_B/L/H */
		AttributeSet( &List.S.Print[10-1], &List.S.Attribute[10-1], PWRD_AltNo, LST_NOT );
#endif
		/*転送先*/
		/* CMN_BCD_ToASC_String( (UBYTE *)List.S.Work,
		  &SYB_SubDial[SYB_OnetouchDial[OnetouchCnt].DialData.Onetouch.SubDialPosition][0] ); */
		CMN_BCD_ToASC_String( List.S.Work,
		  &SYB_SubDial[SYB_OnetouchDial[OnetouchCnt].SubDialPosition][0] ); /* 変更(ANZU) 95/12/14 H.HIRAO */
#if (PRO_KEYPANEL == PANEL_ANZU_L)						/* POPLA_L対応 1997/03/07 M.Kuwahara */
		CMN_StringCopy( &List.S.Print[24-1], List.S.Work );
#else	/* PANEL_POPLA_B/L/H */
 #if 0	/* プレフィックス+ダイヤル番号で40桁を超えても折り返して印字しないので、大島さん確認の上、リストでの展開は止めます by K.Watanabe 2004/11/12 */
// #if defined(STOCKHM2) || (PRO_PREFIX_KEY == ENABLE)	/* DVT: Added by SMuratec K.W.Q 2004/09/09 *//* by K.Watanabe 2004/10/12 */
//			if (List.S.Work[0] == '!'){
//				length = CMN_StringLength(SYB_MercuryDialBuffer);	/* マキュリー登録桁 */
//
//				List.S.Print[34] = '[';
//				if (length > 38){
//					CMN_StringCopyNumUntilNull( &List.S.Print[35], SYB_MercuryDialBuffer, 39);
//				}
//				else{
//					List.S.Print[35 + length] = ']';
//					
//					CMN_StringCopyNumUntilNull( &List.S.Print[35], SYB_MercuryDialBuffer, length);
//					CMN_StringCopyNumUntilNull( &List.S.Print[36 + length], &List.S.Work[1],
//						(38 - length) );
//				}
//			}
//			else{
//				CMN_StringCopy( &List.S.Print[35-1], List.S.Work );
//			}
 #else
		CMN_StringCopy( &List.S.Print[35-1], List.S.Work );
 #endif		/*	End of defined(STOCKHM2)	*/
#endif
		if ( (ret = CharacterPrint( LST_PRINT )) != OK ) {
			return ( ret );
		}
		*LineCnt -= 1;
	}
#endif /* !defined (KEISATSU) */
	return ( OK );
}