コード例 #1
0
ファイル: p6t2.cpp プロジェクト: meesokim/p6001v
////////////////////////////////////////////////////////////////
// ベタをP6Tに変換して読込み
////////////////////////////////////////////////////////////////
bool cP6T::ConvP6T( const char *filename )
{
	PRINTD( P6T2_LOG, "[cP6T][ConvP6T] [%s]\n", filename );
	
	FILE *fp;
	
	fp = FOPENEN( filename, "rb" );
	if( !fp ) return false;
	
	// ベタイメージサイズ取得
	fseek( fp, 0, SEEK_END );
	DWORD BetaSize = ftell( fp );
	fseek( fp, 0, SEEK_SET );
	
	// P6T情報設定
	SetName( OSD_GetFileNamePart( filename ) );	// データ名(16文字+'00H')はファイル名
	Version = 2;								// バージョン(とりあえず2)
	Ainfo.Start = false;						// オートスタートフラグ(無効)
	Ainfo.BASIC = 1;							// BASICモード(PC-6001の場合は無意味)(とりあえず1だが無意味)
	Ainfo.Page  = 1;							// ページ数(とりあえず1だが無意味)
	Ainfo.ASKey = 0;							// オートスタートコマンドサイズ(0:無効)
	Ainfo.ask   = NULL;							// オートスタートコマンド格納領域へのポインタ
	EHead       = 0;							// 拡張情報サイズ(0:なし)
	exh         = NULL;							// 拡張情報格納領域へのポインタ
	
	// PARTを作成
	Part = new cP6PART;
	Part->SetName( "BetaImage" );	// データ名(16文字+'00H')はとりあえず"BetaImage"
	Part->SetBaud( 1200 );			// ボーレート(1200)
	
	// DATAブロックを作成
	Part->NewBlock();
	Part->FirstData()->SetData( fp, BetaSize );	// データセット
	Part->FirstData()->SetPeriod( 3400, 6800 );	// 無音部(3400ms),ぴー音(6800ms)時間セット
	
	fclose( fp );
	
	return true;
}
コード例 #2
0
ファイル: status.cpp プロジェクト: eighttails/PC6001VX
////////////////////////////////////////////////////////////////
// ウィンドウ更新
////////////////////////////////////////////////////////////////
void cWndStat::Update( void )
{
	PRINTD( WIN_LOG, "[WndStat][Update]\n" );
	
	const BYTE Kana[]  = { 0x96, 0xe5, 0 };	// かな
	const BYTE KKana[] = { 0xb6, 0xc5, 0 };	// カナ
	
	ZCons::Cls();
	ZCons::SetColor( FC_WHITE );
	
	// TAPE
	ZCons::Locate( 0, 0 );
	ZCons::Printf( "[TAPE]" );
	if( vm->CmtlIsMount() ){
		ZCons::SetColor( vm->CmtlIsAutoStart() ? FC_YELLOW : FC_WHITE );
		ZCons::Printf( " %-16s", *vm->CmtlGetName() ? vm->CmtlGetName() : OSD_GetFileNamePart( vm->CmtlGetFile() ) );
		ZCons::SetColor( FC_WHITE );
		ZCons::Locate( ZCons::GetXline()-19, 0 );
		if( vm->CpusIsCmtIntrReady() == LOADOPEN ) ZCons::SetColor( FC_WHITE, FC_MAGENTA );
		ZCons::Printf( "[%05d/%05d]", vm->CmtlGetCount(), vm->CmtlGetSize() );
		ZCons::SetColor( FC_WHITE, FC_GRAY );
	}
	
	// DISK
	if( DrvNum > 0 ){
		if( vm->DskInAccess( 0 ) ) ZCons::SetColor( FC_WHITE, FC_RED );
		else					   ZCons::SetColor( FC_WHITE, FC_GRAY );
		ZCons::Locate( 0, 1 );
		ZCons::Printf( "[DRV1]" );
		if( vm->DskIsMount( 0 ) ){
			ZCons::SetColor( vm->DskIsSystem( 0 ) ? FC_YELLOW : FC_WHITE, vm->DskIsProtect( 0 ) ? FC_DRED : FC_GRAY );
			ZCons::Printf( " %-16s", *vm->DskGetName( 0 ) ? vm->DskGetName( 0 ) : OSD_GetFileNamePart( vm->DskGetFile( 0 ) ) );
		}
	}
	if( DrvNum > 1 ){
		if( vm->DskInAccess( 1 ) ) ZCons::SetColor( FC_WHITE, FC_RED );
		else					   ZCons::SetColor( FC_WHITE, FC_GRAY );
		ZCons::Locate( 0, 2 );
		ZCons::Printf( "[DRV2]" );
		if( vm->DskIsMount( 1 ) ){
			ZCons::SetColor( vm->DskIsSystem( 1 ) ? FC_YELLOW : FC_WHITE, vm->DskIsProtect( 1 ) ? FC_DRED : FC_GRAY );
			ZCons::Printf( " %-16s", *vm->DskGetName( 1 ) ? vm->DskGetName( 1 ) : OSD_GetFileNamePart( vm->DskGetFile( 1 ) ) );
		}
		// アクセスランプ
	}
	ZCons::SetColor( FC_WHITE, FC_GRAY );
	
	// かなキー
	ZCons::Locate( -5, 0 );
	switch( vm->KeyGetKeyIndicator() & 3 ){
	case KI_KANA:	// かな
		ZCons::PutCharH( Kana[0] );
		ZCons::PutCharH( Kana[1] );
		break;
	case KI_KKANA:	// カナ
		ZCons::PutCharH( KKana[0] );
		ZCons::PutCharH( KKana[1] );
	}
	
	// CAPSキー
	if( vm->KeyGetKeyIndicator() & 4 ) ZCons::Printfr( "ABC" );	// ABC
	else                               ZCons::Printfr( "abc" );	// abc
	
	// リプレイステータス
	ZCons::Locate( -2, 0 );
	switch( ReplayStatus ){
	case REP_RECORD:	// 記録中
		ZCons::SetColor( FC_RED );
		ZCons::Print( "●" );
		break;
	case REP_REPLAY:	// 再生中
		ZCons::SetColor( FC_GREEN );
		ZCons::Print( "■" );
		break;
	}
}