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

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

?? keyboard.s

?? linux完全注釋的源代碼。內核版本為0.11的linux kernel。
?? S
?? 第 1 頁 / 共 2 頁
字號:
// alt 鍵同時按下時的映射表。alt_map: db 0,0 db 0,'@',0,'$',0,0,"{[]}",'\',0 db 0,0 db 0,0,0,0,0,0,0,0,0,0,0 db '~',13,0 db 0,0,0,0,0,0,0,0,0,0,0 db 0,0 db 0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db 0,0,0,0,0 /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '|' db 10 dup(0)
#elif defined(KBD_US)// 以下是美式鍵盤的掃描碼映射表。key_map: db 0,27 db "1234567890-=" db 127,9 db "qwertyuiop[]" db 13,0 db "asdfghjkl;'" db '`',0 db "\zxcvbnm,./" db 0,'*',0,32 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db '-',0,0,0,'+' /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '<' db 10 dup(0)
shift_map: db 0,27 db "!@#$%^&*()_+" db 127,9 db "QWERTYUIOP{}" db 13,0 db "ASDFGHJKL:",'"' db '~',0 db "|ZXCVBNM<>?" db 0,'*',0,32 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db '-',0,0,0,'+' /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '>' db 10 dup(0)
alt_map: db 0,0
 db 0,'@',0,'$',0,0,"{[]}","\",0 db 0,0 db 0,0,0,0,0,0,0,0,0,0,0 db '~',13,0 db 0,0,0,0,0,0,0,0,0,0,0 db 0,0 db 0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db 0,0,0,0,0 /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '|' db 10 dup(0)
#elif defined(KBD_GR)// 以下是德語鍵盤的掃描碼映射表。key_map: db 0,27 db "1234567890\'" db 127,9 db "qwertzuiop@+" db 13,0 db "asdfghjkl[]^" db 0,'#' db "yxcvbnm,.-" db 0,'*',0,32 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db '-',0,0,0,'+' /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '<' db 10 dup(0)
shift_map: db 0,27 db '!','"',"#$%&/()=?`" db 127,9 db "QWERTZUIOP\*" db 13,0 db "ASDFGHJKL{}~" db 0,'' db "YXCVBNM:_" db 0,'*',0,32 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db '-',0,0,0,'+' /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '>' db 10 dup(0)
alt_map: db 0,0 db 0,'@',0,'$',0,0,"{[]}",'\',0 db 0,0 db '@',0,0,0,0,0,0,0,0,0,0 db '~',13,0 db 0,0,0,0,0,0,0,0,0,0,0 db 0,0 db 0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db 0,0,0,0,0 /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '|' db 10 dup(0)
#elif defined(KBD_FR)// 以下是法語鍵盤的掃描碼映射表。key_map: db 0,27 db "&{",'"',"'(-}_/@)=" db 127,9 db "azertyuiop^$" db 13,0 db "qsdfghjklm|" db '`',0,42 /* coin sup gauche, don't know, [*|mu] */ db "wxcvbn,:!" db 0,'*',0,32 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db '-',0,0,0,'+' /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '<' db 10 dup(0)
shift_map: db 0,27 db "1234567890]+" db 127,9 db "AZERTYUIOP<>" db 13,0 db "QSDFGHJKLM%" db '~',0,'#' db "WXCVBN?./\" db 0,'*',0,32 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db '-',0,0,0,'+' /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '>' db 10 dup(0)
alt_map: db 0,0 db 0,"~#{[|`\^@]}" db 0,0 db '@',0,0,0,0,0,0,0,0,0,0 db '~',13,0 db 0,0,0,0,0,0,0,0,0,0,0 db 0,0 db 0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0 /* 36-39 */ db 16 dup(0) /* 3A-49 */ /* 掃描碼0x3A-0x49 對應的ASCII 碼 */
 db 0,0,0,0,0 /* 4A-4E */ db 0,0,0,0,0,0,0 /* 4F-55 */ db '|' db 10 dup(0)
#else#error "KBD-type not defined"#endif/** do_self handles "normal" keys, ie keys that don't change meaning* and which have just one character returns.*//** do_self 用于處理“普通”鍵,也即含義沒有變化并且只有一個字符返回的鍵。*/do_self:// 454-460 行用于根據模式標志mode 選擇alt_map、shift_map 或key_map 映射表之一。	lea ebx,alt_map // alt 鍵同時按下時的映射表基址alt_map??ebx。	test mode,20 /* alt-gr */ /* 右alt 鍵同時按下了? */	jne l15 // 是,則向前跳轉到標號1 處。	lea ebx,shift_map // shift 鍵同時按下時的映射表基址shift_map??ebx。	test mode,03h // 有shift 鍵同時按下了嗎?	jne l15 // 有,則向前跳轉到標號1 處。	lea ebx,key_map // 否則使用普通映射表key_map。// 取映射表中對應掃描碼的ASCII 字符,若沒有對應字符,則返回(轉none)。l15:
	mov al,[ebx+eax] // 將掃描碼作為索引值,取對應的ASCII 碼??al。	or al,al // 檢測看是否有對應的ASCII 碼。	je none // 若沒有(對應的ASCII 碼=0),則返回。// 若ctrl 鍵已按下或caps 鍵鎖定,并且字符在'a'-'}'(0x61-0x7D)范圍內,則將其轉成大寫字符// (0x41-0x5D)。	test mode,4ch /* ctrl or caps */ /* 控制鍵已按下或caps 亮?*/	je l16 // 沒有,則向前跳轉標號2 處。	cmp al,'a' // 將al 中的字符與'a'比較。	jb l16 // 若al 值<'a',則轉標號2 處。	cmp al,'}' // 將al 中的字符與'}'比較。	ja l16 // 若al 值>'}',則轉標號2 處。	sub al,32 // 將al 轉換為大寫字符(減0x20)。// 若ctrl 鍵已按下,并且字符在'`'--'_'(0x40-0x5F)之間(是大寫字符),則將其轉換為控制字符// (0x00-0x1F)。l16: 
	test mode,0ch /* ctrl */ /* ctrl 鍵同時按下了嗎?*/	je l17 // 若沒有則轉標號3。	cmp al,64 // 將al 與'@'(64)字符比較(即判斷字符所屬范圍)。	jb l17 // 若值<'@',則轉標號3。	cmp al,64+32 // 將al 與'`'(96)字符比較(即判斷字符所屬范圍)。	jae l17 // 若值>='`',則轉標號3。	sub al,64 // 否則al 值減0x40,// 即將字符轉換為0x00-0x1f 之間的控制字符。// 若左alt 鍵同時按下,則將字符的位7 置位。l17: 
	test mode,10h /* left alt */ /* 左alt 鍵同時按下?*/	je l18 // 沒有,則轉標號4。	or al,80h // 字符的位7 置位。// 將al 中的字符放入讀緩沖隊列中。l18: 
	and eax,0ffh // 清eax 的高字和ah。	xor ebx,ebx // 清ebx。	call put_queue // 將字符放入緩沖隊列中。none: 
	ret/** minus has a routine of it's own, as a 'E0h' before* the scan code for minus means that the numeric keypad* slash was pushed.*//** 減號有它自己的處理子程序,因為在減號掃描碼之前的0xe0* 意味著按下了數字小鍵盤上的斜杠鍵。*/minus: 
	cmp e0,1 // e0 標志置位了嗎?	jne do_self // 沒有,則調用do_self 對減號符進行普通處理。	mov eax,'/' // 否則用'/'替換減號'-'??al。	xor ebx,ebx	jmp put_queue // 并將字符放入緩沖隊列中。/** This table decides which routine to call when a scan-code has been* gotten. Most routines just call do_self, or none, depending if* they are make or break.*//* 下面是一張子程序地址跳轉表。當取得掃描碼后就根據此表調用相應的掃描碼處理子程序。* 大多數調用的子程序是do_self,或者是none,這起決于是按鍵(make)還是釋放鍵(break)。*/key_table: DD none,   do_self,do_self,do_self /* 00-03 s0 esc 1 2 */ DD do_self,do_self,do_self,do_self /* 04-07 3 4 5 6 */ DD do_self,do_self,do_self,do_self /* 08-0B 7 8 9 0 */ DD do_self,do_self,do_self,do_self /* 0C-0F + ' bs tab */ DD do_self,do_self,do_self,do_self /* 10-13 q w e r */ DD do_self,do_self,do_self,do_self /* 14-17 t y u i */ DD do_self,do_self,do_self,do_self /* 18-1B o p } ^ */ DD do_self,ctrl,   do_self,do_self /* 1C-1F enter ctrl a s */ DD do_self,do_self,do_self,do_self /* 20-23 d f g h */ DD do_self,do_self,do_self,do_self /* 24-27 j k l | */ DD do_self,do_self,lshift, do_self /* 28-2B { para lshift , */ DD do_self,do_self,do_self,do_self /* 2C-2F z x c v */ DD do_self,do_self,do_self,do_self /* 30-33 b n m , */ DD do_self,minus,  rshift, do_self /* 34-37 . - rshift * */ DD alt,    do_self,caps,   func /* 38-3B alt sp caps f1 */ DD func,   func,   func,   func /* 3C-3F f2 f3 f4 f5 */ DD func,   func,   func,   func /* 40-43 f6 f7 f8 f9 */ DD func,   num,    scroll, cursor /* 44-47 f10 num scr home */ DD cursor, cursor, do_self,cursor /* 48-4B up pgup - left */ DD cursor, cursor, do_self,cursor /* 4C-4F n5 right + end */ DD cursor, cursor, cursor, cursor /* 50-53 dn pgdn ins del */ DD none,   none,   do_self,func /* 54-57 sysreq ? < f11 */ DD func,   none,   none,   none /* 58-5B f12 ? ? ? */ DD none,   none,   none,   none /* 5C-5F ? ? ? ? */ DD none,   none,   none,   none /* 60-63 ? ? ? ? */ DD none,   none,   none,   none /* 64-67 ? ? ? ? */ DD none,   none,   none,   none /* 68-6B ? ? ? ? */ DD none,   none,   none,   none /* 6C-6F ? ? ? ? */ DD none,   none,   none,   none /* 70-73 ? ? ? ? */ DD none,   none,   none,   none /* 74-77 ? ? ? ? */ DD none,   none,   none,   none /* 78-7B ? ? ? ? */ DD none,   none,   none,   none /* 7C-7F ? ? ? ? */ DD none,   none,   none,   none /* 80-83 ? br br br */ DD none,   none,   none,   none /* 84-87 br br br br */ DD none,   none,   none,   none /* 88-8B br br br br */ DD none,   none,   none,   none /* 8C-8F br br br br */ DD none,   none,   none,   none /* 90-93 br br br br */ DD none,   none,   none,   none /* 94-97 br br br br */ DD none,   none,   none,   none /* 98-9B br br br br */ DD none,   unctrl, none,   none /* 9C-9F br unctrl br br */ DD none,   none,   none,   none /* A0-A3 br br br br */ DD none,   none,   none,   none /* A4-A7 br br br br */ DD none,   none,   unlshift,none /* A8-AB br br unlshift br */ DD none,   none,   none,   none /* AC-AF br br br br */ DD none,   none,   none,   none /* B0-B3 br br br br */ DD none,   none,   unrshift,none /* B4-B7 br br unrshift br */ DD unalt,  none,   uncaps, none /* B8-BB unalt br uncaps br */ DD none,none,none,none /* BC-BF br br br br */ DD none,none,none,none /* C0-C3 br br br br */ DD none,none,none,none /* C4-C7 br br br br */ DD none,none,none,none /* C8-CB br br br br */ DD none,none,none,none /* CC-CF br br br br */ DD none,none,none,none /* D0-D3 br br br br */ DD none,none,none,none /* D4-D7 br br br br */ DD none,none,none,none /* D8-DB br ? ? ? */ DD none,none,none,none /* DC-DF ? ? ? ? */ DD none,none,none,none /* E0-E3 e0 e1 ? ? */ DD none,none,none,none /* E4-E7 ? ? ? ? */ DD none,none,none,none /* E8-EB ? ? ? ? */ DD none,none,none,none /* EC-EF ? ? ? ? */ DD none,none,none,none /* F0-F3 ? ? ? ? */ DD none,none,none,none /* F4-F7 ? ? ? ? */ DD none,none,none,none /* F8-FB ? ? ? ? */ DD none,none,none,none /* FC-FF ? ? ? ? *//** kb_wait waits for the keyboard controller buffer to empty.* there is no timeout - if the buffer doesn't empty, we hang.*//** 子程序kb_wait 用于等待鍵盤控制器緩沖空。不存在超時處理 - 如果* 緩沖永遠不空的話,程序就會永遠等待(死掉)。*/kb_wait:	push eaxl19: 
	in al,64h // 讀鍵盤控制器狀態。	test al,02h // 測試輸入緩沖器是否為空(等于0)。	jne l19 // 若不空,則跳轉循環等待。	pop eax	ret/** This routine reboots the machine by asking the keyboard* controller to pulse the reset-line low.*//** 該子程序通過設置鍵盤控制器,向復位線輸出負脈沖,使系統復位重啟(reboot)。*/reboot:	call kb_wait // 首先等待鍵盤控制器輸入緩沖器空。	mov word ptr ds:[472h],1234h /* don't do memory check */	mov al,0fch /* pulse reset and A20 low */	out 64h,al // 向系統復位和A20 線輸出負脈沖。die: 
	jmp die // 死機。
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美欧美欧美欧美| 国产精品一区二区三区99| 奇米色一区二区三区四区| 日产国产欧美视频一区精品| 高清成人免费视频| 99久久精品免费看国产免费软件| 色丁香久综合在线久综合在线观看| 91精品欧美久久久久久动漫| 亚洲国产成人午夜在线一区| 日韩精品免费视频人成| 97se亚洲国产综合自在线不卡| 日韩欧美亚洲一区二区| 玉米视频成人免费看| 国产成人8x视频一区二区| 欧美高清激情brazzers| 亚洲视频1区2区| 成人小视频免费观看| 精品处破学生在线二十三| 亚洲影视资源网| jlzzjlzz亚洲日本少妇| 日本一区免费视频| 国产麻豆9l精品三级站| 亚洲精品一区二区在线观看| 蜜臀久久久久久久| 欧美疯狂做受xxxx富婆| 天堂午夜影视日韩欧美一区二区| 欧美亚洲动漫精品| 亚洲曰韩产成在线| 欧美亚洲禁片免费| 亚洲制服欧美中文字幕中文字幕| 成人激情图片网| 中文字幕一区二区三区不卡在线| 成人黄色国产精品网站大全在线免费观看 | 国产区在线观看成人精品| 久久国产三级精品| 精品日韩欧美在线| 国产剧情在线观看一区二区| 久久亚洲影视婷婷| 国产一区二区三区日韩| 中文字幕不卡在线播放| 成人精品视频一区二区三区| 国产精品视频一二三区| 99精品久久免费看蜜臀剧情介绍| 国产精品你懂的| 99re6这里只有精品视频在线观看| 亚洲欧洲精品一区二区三区不卡 | 精品一区二区成人精品| 久久久午夜精品| 国产精品 日产精品 欧美精品| 国产欧美日韩麻豆91| jlzzjlzz亚洲女人18| 亚洲一区二区三区四区中文字幕| 欧美日韩高清影院| 久久er99精品| 国产精品国产三级国产aⅴ原创 | www.欧美色图| 亚洲精品视频一区二区| 欧美一区二区三区人| 国产精品自在欧美一区| 亚洲美女少妇撒尿| 这里是久久伊人| 国产99久久久国产精品免费看 | 国产午夜精品一区二区三区视频| 成人国产精品免费观看| 亚洲精品美腿丝袜| 7777女厕盗摄久久久| 国产精品一二三四五| 一区二区三区在线高清| 91精品国产色综合久久久蜜香臀| 国产一区二区成人久久免费影院| 亚洲婷婷在线视频| 日韩一卡二卡三卡国产欧美| 成人激情免费视频| 青青草一区二区三区| 中文字幕av不卡| 欧美日韩国产综合一区二区三区 | 另类小说一区二区三区| 亚洲色图视频网| 91精品国产综合久久香蕉的特点 | 亚洲天天做日日做天天谢日日欢| 欧美日韩亚洲综合在线| 美女精品自拍一二三四| 亚洲桃色在线一区| 精品国产一二三区| 欧美在线观看视频一区二区| 国产一区二区三区免费看| 亚洲成人综合在线| 国产精品久久久久影院亚瑟| 91麻豆精品国产91久久久久久久久| 韩国视频一区二区| 亚洲一区二区三区国产| 国产欧美精品区一区二区三区| 91精品免费在线| 色8久久人人97超碰香蕉987| 免费成人在线网站| 亚洲成人av一区二区三区| 1000精品久久久久久久久| 欧美精品一区二区高清在线观看| 欧美亚洲另类激情小说| 91视频在线看| 波多野结衣在线aⅴ中文字幕不卡| 奇米777欧美一区二区| 亚洲成人免费视频| 亚洲一区二区欧美日韩| 国产亚洲欧美激情| 日韩欧美黄色影院| 91精品免费观看| 在线成人av网站| 欧美理论片在线| 色老头久久综合| 色综合久久久久综合体| aaa欧美色吧激情视频| 成人午夜大片免费观看| 成人午夜短视频| jizz一区二区| 日本黄色一区二区| 91黄色在线观看| 91久久精品日日躁夜夜躁欧美| 99re这里只有精品6| 99re66热这里只有精品3直播| 成人性生交大片免费看视频在线 | 欧美日韩成人一区| 欧美精品在线观看一区二区| 欧美日韩在线亚洲一区蜜芽| 欧美日韩在线播放三区四区| 欧美乱妇15p| 欧美一区二区三区小说| 日韩精品中午字幕| 欧美videofree性高清杂交| 欧美mv日韩mv亚洲| 久久久99久久| 综合婷婷亚洲小说| 亚洲第一在线综合网站| 欧美96一区二区免费视频| 国产一区二区三区四区在线观看| 久久99精品一区二区三区三区| 久久爱www久久做| 国产成人亚洲综合a∨婷婷 | 国产精品国产三级国产普通话三级| 亚洲少妇最新在线视频| 午夜激情久久久| 精品一区二区三区免费播放 | 欧美剧情片在线观看| 日韩免费观看高清完整版在线观看| 欧美电视剧免费全集观看| 久久久亚洲欧洲日产国码αv| 亚洲欧洲日韩在线| 亚洲第一激情av| 国产成人精品亚洲午夜麻豆| 日本久久一区二区| 欧美大尺度电影在线| 国产精品国产自产拍高清av| 亚洲第一搞黄网站| 国产成人精品影视| 欧美三级电影在线看| 久久精品一区八戒影视| 亚洲乱码日产精品bd| 国内精品不卡在线| 欧美系列亚洲系列| 亚洲国产精品高清| 日本va欧美va精品| 在线亚洲一区二区| 久久久久亚洲蜜桃| 亚洲国产cao| 国产aⅴ综合色| 欧美一级理论片| 日韩一区在线免费观看| 狠狠网亚洲精品| 在线播放欧美女士性生活| 中文字幕中文乱码欧美一区二区 | 精品少妇一区二区三区日产乱码| 国产精品女主播在线观看| 日本不卡的三区四区五区| 91天堂素人约啪| 日韩精品一区二区三区视频| 亚洲一区影音先锋| av色综合久久天堂av综合| 久久一区二区三区四区| 亚洲一区二区三区四区不卡| 成人免费毛片app| 久久久久久久精| 激情综合网av| 欧美一区二区在线不卡| 亚洲黄色小视频| av成人老司机| 中国色在线观看另类| 国产精品一级在线| 精品国产一区二区三区av性色| 视频一区中文字幕| 欧美日韩专区在线| 一区二区三区蜜桃网| 91在线视频官网| 亚洲男人的天堂av| av电影一区二区| 中文字幕在线一区免费| 盗摄精品av一区二区三区| 国产欧美一区二区精品性色超碰 | www国产成人| 蜜桃av一区二区三区| 日韩一区二区三区免费看 |