亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tty.c

?? === ==== 關于本光盤 ========== Tinix: 書中所附代碼 其中很多目錄中除了包含源代碼(*.asm, *.inc, *.c, *.h)外
?? C
字號:

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                               tty.c
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                    Forrest Yu, 2005
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

#include "type.h"
#include "const.h"
#include "protect.h"
#include "string.h"
#include "proc.h"
#include "tty.h"
#include "console.h"
#include "global.h"
#include "keyboard.h"
#include "proto.h"


#define TTY_FIRST	(tty_table)
#define TTY_END		(tty_table + NR_CONSOLES)


/* 本文件內函數聲明 */
PRIVATE void	init_tty(TTY* p_tty);
PRIVATE void	tty_do_read(TTY* p_tty);
PRIVATE void	tty_do_write(TTY* p_tty);
PRIVATE void	put_key(TTY* p_tty, t_32 key);


/*======================================================================*
                           task_tty
 *======================================================================*/
PUBLIC void task_tty()
{
	TTY*	p_tty;

	init_keyboard();

	for (p_tty=TTY_FIRST;p_tty<TTY_END;p_tty++) {
		init_tty(p_tty);
	}

	select_console(0);

	while (1) {
		for (p_tty=TTY_FIRST;p_tty<TTY_END;p_tty++) {
			tty_do_read(p_tty);
			tty_do_write(p_tty);
		}
	}
}


/*======================================================================*
                           init_tty
 *======================================================================*/
PRIVATE void init_tty(TTY* p_tty)
{
	p_tty->inbuf_count = 0;
	p_tty->p_inbuf_head = p_tty->p_inbuf_tail = p_tty->in_buf;

	init_screen(p_tty);
}


/*======================================================================*
                           in_process
 *======================================================================*/
PUBLIC void in_process(TTY* p_tty, t_32 key)
{
	if (!(key & FLAG_EXT)) {
		put_key(p_tty, key);
	}
	else {
		int raw_code = key & MASK_RAW;
		switch(raw_code) {
		case ENTER:
			put_key(p_tty, '\n');
			break;
		case BACKSPACE:
			put_key(p_tty, '\b');
			break;
		case UP:
			if ((key & FLAG_SHIFT_L) || (key & FLAG_SHIFT_R)) {	/* Shift + Up */
				scroll_screen(p_tty->p_console, SCROLL_SCREEN_UP);
			}
			break;
		case DOWN:
			if ((key & FLAG_SHIFT_L) || (key & FLAG_SHIFT_R)) {	/* Shift + Down */
				scroll_screen(p_tty->p_console, SCROLL_SCREEN_DOWN);
			}
			break;
		case F1:
		case F2:
		case F3:
		case F4:
		case F5:
		case F6:
		case F7:
		case F8:
		case F9:
		case F10:
		case F11:
		case F12:
			if ((key & FLAG_ALT_L) || (key & FLAG_ALT_R)) {	/* Alt + F1~F12 */
				select_console(raw_code - F1);
			}
			break;
		default:
			break;
		}
	}
}


/*======================================================================*
                              put_key
*======================================================================*/
PRIVATE void put_key(TTY* p_tty, t_32 key)
{
	if (p_tty->inbuf_count < TTY_IN_BYTES) {
		*(p_tty->p_inbuf_head) = key;
		p_tty->p_inbuf_head++;
		if (p_tty->p_inbuf_head == p_tty->in_buf + TTY_IN_BYTES) {
			p_tty->p_inbuf_head = p_tty->in_buf;
		}
		p_tty->inbuf_count++;
	}
}


/*======================================================================*
                              tty_do_read
*======================================================================*/
PRIVATE void tty_do_read(TTY* p_tty)
{
	if (is_current_console(p_tty->p_console)) {
		keyboard_read(p_tty);
	}
}


/*======================================================================*
                              tty_do_write
*======================================================================*/
PRIVATE void tty_do_write(TTY* p_tty)
{
	if (p_tty->inbuf_count) {
		char ch = *(p_tty->p_inbuf_tail);
		p_tty->p_inbuf_tail++;
		if (p_tty->p_inbuf_tail == p_tty->in_buf + TTY_IN_BYTES) {
			p_tty->p_inbuf_tail = p_tty->in_buf;
		}
		p_tty->inbuf_count--;

		out_char(p_tty->p_console, ch);
	}
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲私人国产精品va媚药| 久久精品视频在线看| 国产一区二区三区视频在线播放| 成人欧美一区二区三区白人| 69av一区二区三区| 99精品久久久久久| 韩国v欧美v日本v亚洲v| 一级日本不卡的影视| 国产农村妇女精品| 欧美一级免费观看| 色视频成人在线观看免| 国产成人av自拍| 久久99精品久久久久婷婷| 亚洲高清一区二区三区| 国产精品久久久久久久久搜平片| 日韩欧美一级片| 欧美视频第二页| 色狠狠色狠狠综合| 99精品视频一区| 成人福利视频在线| 狠狠色丁香婷综合久久| 日韩av电影免费观看高清完整版在线观看| 国产精品青草久久| 亚洲精品在线网站| 日韩欧美中文一区| 这里是久久伊人| 欧美日韩视频一区二区| 97久久人人超碰| eeuss鲁片一区二区三区在线观看| 久久99国内精品| 日本欧洲一区二区| 亚洲不卡一区二区三区| 亚洲国产一区二区视频| 一区二区三区四区不卡视频| 亚洲同性gay激情无套| 国产精品乱码人人做人人爱| 日本一区二区三区四区在线视频| 欧美α欧美αv大片| 日韩一区二区三区四区五区六区| 在线91免费看| 在线电影院国产精品| 欧美男同性恋视频网站| 欧美日本一区二区三区四区| 欧美日韩欧美一区二区| 欧美日韩国产成人在线免费| 欧美日韩第一区日日骚| 3d成人动漫网站| 538在线一区二区精品国产| 91精品国产日韩91久久久久久| 在线不卡欧美精品一区二区三区| 欧美片网站yy| 精品免费国产一区二区三区四区| 精品成人佐山爱一区二区| 精品sm捆绑视频| 日本一区二区久久| 亚洲欧美日韩精品久久久久| 亚洲国产裸拍裸体视频在线观看乱了 | 99在线精品一区二区三区| 成人黄色电影在线| 欧美亚洲国产bt| 欧美一卡二卡在线| 久久精品男人的天堂| 国产精品久久久久久久久搜平片| 一区二区三区久久久| 日韩精彩视频在线观看| 黄色精品一二区| 99久久精品国产精品久久| 欧美中文一区二区三区| 欧美一区二区视频网站| 精品不卡在线视频| 亚洲欧美日韩综合aⅴ视频| 午夜欧美在线一二页| 国产美女视频一区| 色综合一个色综合亚洲| 欧美二区三区91| 中文久久乱码一区二区| 亚洲综合色噜噜狠狠| 九九精品视频在线看| 99免费精品在线| 欧美一卡2卡三卡4卡5免费| 国产日韩欧美高清| 亚洲丰满少妇videoshd| 九九视频精品免费| 91天堂素人约啪| 日韩欧美不卡在线观看视频| 国产精品福利在线播放| 亚洲成人免费在线| 国产成人日日夜夜| 欧美日韩成人综合| 中文字幕亚洲在| 秋霞成人午夜伦在线观看| 白白色 亚洲乱淫| 精品久久一区二区| 亚洲综合色婷婷| 成人免费毛片高清视频| 91精品国产综合久久久久久久 | 国产精品综合一区二区三区| 欧美吞精做爰啪啪高潮| 欧美极品xxx| 奇米综合一区二区三区精品视频| 91丨九色丨蝌蚪丨老版| 精品美女在线播放| 首页国产丝袜综合| 色偷偷一区二区三区| 国产亚洲精品7777| 久久99精品国产麻豆婷婷洗澡| 日本精品视频一区二区| 国产亚洲精品aa午夜观看| 日韩高清中文字幕一区| voyeur盗摄精品| 欧美综合在线视频| 久久精品一区八戒影视| 视频一区视频二区中文字幕| 国产91丝袜在线18| 7777精品久久久大香线蕉| 亚洲欧洲精品天堂一级| 久久丁香综合五月国产三级网站| 在线观看一区二区视频| 亚洲欧洲av在线| 久久99久国产精品黄毛片色诱| 91在线免费视频观看| 国产性做久久久久久| 蜜桃免费网站一区二区三区| 在线观看亚洲专区| 国产精品动漫网站| 国产自产高清不卡| 7878成人国产在线观看| 亚洲图片自拍偷拍| 91无套直看片红桃| 精品国产乱码久久久久久闺蜜| 视频一区二区中文字幕| 欧美中文字幕亚洲一区二区va在线| 国产欧美日韩在线| 九九视频精品免费| 欧美日韩不卡在线| 婷婷开心久久网| 精品在线你懂的| 欧美电影免费观看高清完整版在线 | 日韩免费高清电影| 亚洲sss视频在线视频| 99久久久国产精品免费蜜臀| 国产无遮挡一区二区三区毛片日本| 五月综合激情日本mⅴ| 在线成人av影院| 五月天婷婷综合| 欧美色视频在线| 亚洲成人动漫在线观看| 91视频com| 五月天中文字幕一区二区| 欧美日韩视频在线第一区| 亚洲亚洲人成综合网络| 91麻豆国产精品久久| 日韩一区在线免费观看| 91美女精品福利| 夜夜亚洲天天久久| 欧美亚洲一区二区在线| 亚洲无线码一区二区三区| 色综合久久久久综合体| 亚洲高清免费观看 | 丝袜美腿成人在线| 欧美午夜电影网| 亚洲成精国产精品女| 欧美日韩一本到| 日韩精品1区2区3区| 久久综合色鬼综合色| 国产精品一区二区黑丝| 国产欧美一区视频| 99精品视频在线免费观看| 欧美激情一区二区三区在线| 色婷婷av一区| 午夜伦欧美伦电影理论片| 日韩一区二区影院| 国产精品一色哟哟哟| 久久青草欧美一区二区三区| 色综合中文字幕| 日韩精品一二三区| 精品欧美久久久| 成人app下载| 视频在线观看国产精品| 2022国产精品视频| 99re成人在线| 免费观看一级特黄欧美大片| 中文字幕高清不卡| 欧美在线制服丝袜| 日日摸夜夜添夜夜添国产精品| 欧美刺激午夜性久久久久久久| 国产精品99久| 亚洲精品国产成人久久av盗摄| 欧美福利电影网| 男男视频亚洲欧美| 亚洲天堂网中文字| 欧美一区二区二区| 成人自拍视频在线观看| 亚洲国产一区二区a毛片| 欧美国产激情一区二区三区蜜月| 欧美在线999| 国模娜娜一区二区三区| 中文字幕一区二区不卡| 7777女厕盗摄久久久| 91污在线观看|