⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcvt_vtf.c

📁 freebsd v4.4内核源码
💻 C
📖 第 1 页 / 共 4 页
字号:
{	if(svsp->cur_offset < (svsp->scrr_end * svsp->maxcol))	{		svsp->cur_offset += (svsp->maxcol-svsp->col);		svsp->col = 0;	}	else	{		roll_up(svsp, 1);		svsp->cur_offset -= svsp->col;		svsp->col = 0;	}}/*---------------------------------------------------------------------------* *	set dec private modes, esc [ ? x h *---------------------------------------------------------------------------*/voidvt_set_dec_priv_qm(struct video_state *svsp){	switch(svsp->parms[0])	{		case 0:		/* error, ignored */		case 1:		/* CKM - cursor key mode */			svsp->ckm = 1;			break;		case 2:		/* ANM - ansi/vt52 mode */			break;		case 3:		/* COLM - column mode */			vt_col(svsp, SCR_COL132);			break;		case 4:		/* SCLM - scrolling mode */		case 5:		/* SCNM - screen mode */			break;		case 6:		/* OM - origin mode */			svsp->m_om = 1;			break;		case 7:		/* AWM - auto wrap mode */			svsp->m_awm = 1;			swritefkl(7,(u_char *)"AUTOWRAPENABLE *",svsp);			break;		case 8:		/* ARM - auto repeat mode */			kbrepflag = 1;			break;		case 9:		/* INLM - interlace mode */		case 10:	/* EDM - edit mode */		case 11:	/* LTM - line transmit mode */		case 12:	/* */		case 13:	/* SCFDM - space compression / field delimiting */		case 14:	/* TEM - transmit execution mode */		case 15:	/* */		case 16:	/* EKEM - edit key execution mode */			break;		case 25:	/* TCEM - text cursor enable mode */			if(vsp == svsp)				sw_cursor(1);	/* cursor on */			svsp->cursor_on = 1;			break;		case 42:	/* NRCM - 7bit NRC characters */			break;	}}/*---------------------------------------------------------------------------* *	reset dec private modes, esc [ ? x l *---------------------------------------------------------------------------*/voidvt_reset_dec_priv_qm(struct video_state *svsp){	switch(svsp->parms[0])	{		case 0:		/* error, ignored */		case 1:		/* CKM - cursor key mode */			svsp->ckm = 0;			break;		case 2:		/* ANM - ansi/vt52 mode */			break;		case 3:		/* COLM - column mode */			vt_col(svsp, SCR_COL80);			break;		case 4:		/* SCLM - scrolling mode */		case 5:		/* SCNM - screen mode */			break;		case 6:		/* OM - origin mode */			svsp->m_om = 0;			break;		case 7:		/* AWM - auto wrap mode */			svsp->m_awm = 0;			swritefkl(7,(u_char *)"AUTOWRAPENABLE  ",svsp);			break;		case 8:		/* ARM - auto repeat mode */			kbrepflag = 0;			break;		case 9:		/* INLM - interlace mode */		case 10:	/* EDM - edit mode */		case 11:	/* LTM - line transmit mode */		case 12:	/* */		case 13:	/* SCFDM - space compression / field delimiting */		case 14:	/* TEM - transmit execution mode */		case 15:	/* */		case 16:	/* EKEM - edit key execution mode */			break;		case 25:	/* TCEM - text cursor enable mode */			if(vsp == svsp)				sw_cursor(0);	/* cursor off */			svsp->cursor_on = 0;			break;		case 42:	/* NRCM - 7bit NRC characters */			break;	}}/*---------------------------------------------------------------------------* *	set ansi modes, esc [ x *---------------------------------------------------------------------------*/voidvt_set_ansi(struct video_state *svsp){	switch(svsp->parms[0])	{		case 0:		/* error, ignored */		case 1:		/* GATM - guarded area transfer mode */		case 2:		/* KAM - keyboard action mode */		case 3:		/* CRM - Control Representation mode */			break;		case 4:		/* IRM - insert replacement mode */			svsp->irm = 1; /* Insert mode */			break;		case 5:		/* SRTM - status report transfer mode */		case 6:		/* ERM - erasue mode */		case 7:		/* VEM - vertical editing mode */		case 10:	/* HEM - horizontal editing mode */		case 11:	/* PUM - position unit mode */		case 12:	/* SRM - send-receive mode */		case 13:	/* FEAM - format effector action mode */		case 14:	/* FETM - format effector transfer mode */		case 15:	/* MATM - multiple area transfer mode */		case 16:	/* TTM - transfer termination */		case 17:	/* SATM - selected area transfer mode */		case 18:	/* TSM - tabulation stop mode */		case 19:	/* EBM - editing boundary mode */			break;		case 20:	/* LNM - line feed / newline mode */			svsp->lnm = 1;			break;	}}/*---------------------------------------------------------------------------* *	reset ansi modes, esc [ x *---------------------------------------------------------------------------*/voidvt_reset_ansi(struct video_state *svsp){	switch(svsp->parms[0])	{		case 0:		/* error, ignored */		case 1:		/* GATM - guarded area transfer mode */		case 2:		/* KAM - keyboard action mode */		case 3:		/* CRM - Control Representation mode */			break;		case 4:		/* IRM - insert replacement mode */			svsp->irm = 0;  /* Replace mode */			break;		case 5:		/* SRTM - status report transfer mode */		case 6:		/* ERM - erasue mode */		case 7:		/* VEM - vertical editing mode */		case 10:	/* HEM - horizontal editing mode */		case 11:	/* PUM - position unit mode */		case 12:	/* SRM - send-receive mode */		case 13:	/* FEAM - format effector action mode */		case 14:	/* FETM - format effector transfer mode */		case 15:	/* MATM - multiple area transfer mode */		case 16:	/* TTM - transfer termination */		case 17:	/* SATM - selected area transfer mode */		case 18:	/* TSM - tabulation stop mode */		case 19:	/* EBM - editing boundary mode */			break;		case 20:	/* LNM - line feed / newline mode */			svsp->lnm = 0;			break;	}}/*---------------------------------------------------------------------------* *	clear tab stop(s) *---------------------------------------------------------------------------*/voidvt_clrtab(struct video_state *svsp){	int i;	if(svsp->parms[0] == 0)		svsp->tab_stops[svsp->col] = 0;	else if(svsp->parms[0] == 3)	{		for(i=0; i<MAXTAB; i++)			svsp->tab_stops[i] = 0;	}}/*---------------------------------------------------------------------------* *	DECSC - save cursor & attributes *---------------------------------------------------------------------------*/voidvt_sc(struct video_state *svsp){	svsp->sc_flag = 1;	svsp->sc_row = svsp->row;	svsp->sc_col = svsp->col;	svsp->sc_cur_offset = svsp->cur_offset;	svsp->sc_attr = svsp->c_attr;	svsp->sc_awm = svsp->m_awm;	svsp->sc_om = svsp->m_om;	svsp->sc_G0 = svsp->G0;	svsp->sc_G1 = svsp->G1;	svsp->sc_G2 = svsp->G2;	svsp->sc_G3 = svsp->G3;	svsp->sc_GL = svsp->GL;	svsp->sc_GR = svsp->GR;	svsp->sc_sel = svsp->selchar;	svsp->sc_vtsgr = svsp->vtsgr;}/*---------------------------------------------------------------------------* *	DECRC - restore cursor & attributes *---------------------------------------------------------------------------*/voidvt_rc(struct video_state *svsp){	if(svsp->sc_flag == 1)	{		svsp->sc_flag = 0;		svsp->row = svsp->sc_row;		svsp->col = svsp->sc_col;		svsp->cur_offset = svsp->sc_cur_offset;		svsp->c_attr = svsp->sc_attr;		svsp->m_awm = svsp->sc_awm;		svsp->m_om = svsp->sc_om;		svsp->G0 = svsp->sc_G0;		svsp->G1 = svsp->sc_G1;		svsp->G2 = svsp->sc_G2;		svsp->G3 = svsp->sc_G3;		svsp->GL = svsp->sc_GL;		svsp->GR = svsp->sc_GR;		svsp->selchar = svsp->sc_sel;		svsp->vtsgr = svsp->sc_vtsgr;	}}/*---------------------------------------------------------------------------* *	designate a character set as G0, G1, G2 or G3 for 94/96 char sets *---------------------------------------------------------------------------*/voidvt_designate(struct video_state *svsp){	u_short *ctp = NULL;	u_char ch;	if(svsp->whichi == 1)		ch = svsp->which[0];	else	{		int i;		if(svsp->dld_id[0] == '\0')			return;		if(!(((adaptor_type == EGA_ADAPTOR) ||		     (adaptor_type == VGA_ADAPTOR)) &&		     (vgacs[svsp->vga_charset].secondloaded)))		{			return;		}		for(i = (svsp->whichi)-1; i >= 0; i--)		{			 if(svsp->which[i] != svsp->dld_id[i])				return;		}#ifdef HAVECSE_DOWNLOADABLE		ctp = cse_downloadable;		swcsp(svsp, ctp);#endif		return;	}	if(((adaptor_type == EGA_ADAPTOR) || (adaptor_type == VGA_ADAPTOR)) &&	   (vgacs[svsp->vga_charset].secondloaded))	{		if((ch == svsp->dld_id[0]) && (svsp->dld_id[1] == '\0'))		{#ifdef HAVECSE_DOWNLOADABLE			ctp = cse_downloadable;			swcsp(svsp, ctp);#endif			return;		}		switch(ch)		{			case 'A': /* British or ISO-Latin-1 */				switch(svsp->state)				{					case STATE_BROPN: /* designate G0 */					case STATE_BRCLO: /* designate G1 */					case STATE_STAR:  /* designate G2 */					case STATE_PLUS:  /* designate G3 */#ifdef HAVECSE_BRITISH						ctp = cse_british;#endif						break;					case STATE_MINUS: /* designate G1 (96)*/					case STATE_DOT:	  /* designate G2 (96)*/					case STATE_SLASH: /* designate G3 (96)*/#ifdef HAVECSE_ISOLATIN						ctp = cse_isolatin;#endif						break;				}				break;			case 'B': /* USASCII */#ifdef HAVECSE_ASCII				ctp = cse_ascii;#endif				break;			case 'C': /* Finnish */			case '5': /* Finnish */#ifdef HAVECSE_FINNISH				ctp = cse_finnish;#endif				break;			case 'E': /* Norwegian/Danish */			case '6': /* Norwegian/Danish */#ifdef HAVECSE_NORWEGIANDANISH				ctp = cse_norwegiandanish;#endif				break;			case 'H': /* Swedish */			case '7': /* Swedish */#ifdef HAVECSE_SWEDISH				ctp = cse_swedish;#endif				break;			case 'K': /* German */#ifdef HAVECSE_GERMAN				ctp = cse_german;#endif				break;			case 'Q': /* French Canadien */#ifdef HAVECSE_FRENCHCANADA				ctp = cse_frenchcanada;#endif				break;			case 'R': /* French */#ifdef HAVECSE_FRENCH				ctp = cse_french;#endif				break;			case 'Y': /* Italian */#ifdef HAVECSE_ITALIAN				ctp = cse_italian;#endif				break;			case 'Z': /* Spanish */#ifdef HAVECSE_SPANISH				ctp = cse_spanish;#endif				break;			case '0': /* special graphics */#ifdef HAVECSE_SPECIAL				ctp = cse_special;#endif				break;			case '1': /* alternate ROM */#ifdef HAVECSE_ALTERNATEROM1				ctp = cse_alternaterom1;#endif				break;			case '2': /* alt ROM, spec graphics */#ifdef HAVECSE_ALTERNATEROM2				ctp = cse_alternaterom2;#endif				break;			case '3': /* HP Roman 8, upper 128 chars*/#ifdef HAVECSE_ROMAN8				ctp = cse_roman8;#endif				break;			case '4': /* Dutch */#ifdef HAVECSE_DUTCH				ctp = cse_dutch;#endif				break;			case '<': /* DEC Supplemental */#ifdef HAVECSE_SUPPLEMENTAL				ctp = cse_supplemental;#endif				break;			case '=': /* Swiss */#ifdef HAVECSE_SWISS				ctp = cse_swiss;#endif				break;			case '>': /* DEC Technical */#ifdef HAVECSE_TECHNICAL				ctp = cse_technical;#endif				break;			default:				break;		}	}	else	{		switch(ch)		{			case 'A': /* British or ISO-Latin-1 */				switch(svsp->state)				{					case STATE_BROPN: /* designate G0 */					case STATE_BRCLO: /* designate G1 */					case STATE_STAR:  /* designate G2 */					case STATE_PLUS:  /* designate G3 */#ifdef HAVECSD_BRITISH						ctp = csd_british;#endif						break;					case STATE_MINUS: /* designate G1 (96)*/					case STATE_DOT:	  /* designate G2 (96)*/					case STATE_SLASH: /* designate G3 (96)*/#ifdef HAVECSD_ISOLATIN						ctp = csd_isolatin;#endif						break;				}				break;			case 'B': /* USASCII */#ifdef HAVECSD_ASCII				ctp = csd_ascii;#endif				break;			case 'C': /* Finnish */			case '5': /* Finnish */#ifdef HAVECSD_FINNISH				ctp = csd_finnish;#endif				break;			case 'E': /* Norwegian/Danish */			case '6': /* Norwegian/Danish */#ifdef HAVECSD_NORWEGIANDANISH				ctp = csd_norwegiandanish;#endif				break;			case 'H': /* Swedish */			case '7': /* Swedish */#ifdef HAVECSD_SWEDISH				ctp = csd_swedish;#endif				break;			case 'K': /* German */#ifdef HAVECSD_GERMAN				ctp = csd_german;#endif				break;			case 'Q': /* French Canadien */#ifdef HAVECSD_FRENCHCANADA				ctp = csd_frenchcanada;#endif				break;			case 'R': /* French */#ifdef HAVECSD_FRENCH				ctp = csd_french;#endif				break;			case 'Y': /* Italian */#ifdef HAVECSD_ITALIAN				ctp = csd_italian;#endif				break;			case 'Z': /* Spanish */#ifdef HAVECSD_SPANISH				ctp = csd_spanish;#endif				break;			case '0': /* special graphics */#ifdef HAVECSD_SPECIAL				ctp = csd_special;#endif				break;			case '1': /* alternate ROM */#ifdef HAVECSD_ALTERNATEROM1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -