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

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

?? int09.asm

?? 實時多重作業操作系統內核(RTMK)。簡單實時多重作業操作系統內核源程序。RTMK支持消息和事件
?? ASM
字號:
;************************************************************************
;*
;* Module name         : INT09.ASM
;*
;* Module description  :
;*    Keyboard interrupt handler.
;*
;* Project             : RTMK
;*
;* Target platform     : DOS
;*
;* Compiler & Library  : TASM
;*
;* Author              : Richard Shen
;*
;* Creation date       : 25 August, 95
;*
;************************************************************************
                  title    Interrupt 09
                  .model   large

                  public   _Int09Handler
                  public   _SaveInt09

                  extrn    _servingInt
                  extrn    _ApplCheckFunc:CODEPTR
                  extrn    _ackProcess:far
                  extrn    _armEvent:far
                  extrn    _RtmkSend:CODEPTR
                  extrn    _ClearKeyHitEvent:CODEPTR

;************************************************************************
;*                S E G M E N T    D E C L A R A T I O N S              *
;************************************************************************

;int09_text       segment byte public 'CODE'
;int09_text       ends

DGROUP            group    _DATA,_BSS
                  assume   cs:int09_text, ds:DGROUP

_DATA             segment  word public 'DATA'
   d@             label    byte
   d@w            label    word
_DATA             ends

_BSS              segment word public 'BSS'
   b@             label    byte
   b@w            label    word
_BSS              ends

;************************************************************************
;*                      D A T A    S E G M E N T                        *
;************************************************************************
_DATA             segment  word public 'DATA'
   _SaveInt09     dd       0           ; Original INT 09H interrupt handler
_DATA             ends

; Keyboard scan codes
scSpaceKey        equ      39h
scInsKey          equ      52h
scDelKey          equ      53h

scCtrlKey         equ      1dh
scShiftLeftKey    equ      2ah
scShiftRightKey   equ      36h
scAltKey          equ      38h
scCapKey          equ      3ah
scNumLockKey      equ      45h
scScrollLockKey   equ      46h

; ROM BIOS data area (offset)
keyFlags          equ     (byte ptr 17h)     ; Keyboard status bits
keyBufHead        equ     (word ptr 1ah)     ; Address of keyboard buffer head
keyBufTail        equ     (word ptr 1ch)     ; Address of keyboard buffer tail
keyBufOrg         equ     (word ptr 1eh)     ; Address of keyboard buffer tail
keyBufEnd         equ     (word ptr 3eh)     ; Address of keyboard buffer end

;************************************************************************
;*                      C O D E    S E G M E N T                        *
;************************************************************************

;int09_text       segment  byte public 'CODE'
                  .CODE

discardKeyTab     label    byte
                  db       scCtrlKey, scShiftLeftKey, scShiftRightKey
                  db       scAltKey,  scCapKey,       scNumLockKey
                  db       scScrollLockKey

discardKeyCnt     equ      ($ - discardKeyTab)

;***********************************************************************
;  Function name   : Int09Handler
;  Description     : Interrupt 09 (keyboard hardware interrupt) handler
;                  :
;  Parameters      : -
;  Returns         : -
;  Author          : Richard Shen
;----------------------------------------------------------------------
;  Date     By      Description
;----------------------------------------------------------------------
;  25Aug95  RCS     Created
;**********************************************************************/
_Int09Handler     proc far
         cli                           ; Disable interrupt
         push     ax                   ; Save registers
         push     bx
         push     cx
         push     dx
         push     es
         push     ds
         push     si
         push     di
         push     bp
         mov      bp, DGROUP
         mov      ds, bp
         mov      bp, sp

         mov      ax, 40h              ; ROM BIOS area segment
         mov      es, ax
         mov      di, es:keyBufTail
         in       al, 60h              ; Read keyboard port
         mov      ah, es:keyFlags
         pushf
         call     dword ptr DGROUP:_SaveInt09 ; Let original handler to do
         cli                        ; Interrupt flag might have been cleared
         test     al, 80h           ; Key hit detected (not released) ?
         jne      @@9               ; If no, ==> return
         mov      ah, al            ; Save key scan code
         mov      si, offset cs:discardKeyTab   ; Check whether the key is
         mov      cx, discardKeyCnt             ; Shift, Alt, Ctrl, CapsLock
@@8:     mov      al, cs:[si]                   ; or ScrollLock.
         cmp      ah, al                        ; If yes, ignore it
         je       @@9
         inc      si
         loop     @@8

         mov      ax, es:[di]       ; Key pressed
         push     ax
         mov      ax, di
         mov      es:keyBufHead, ax
         pop      ax
   ;
   ;     if (ApplCheckFunc != 0)
   ;     {
   ;        if (ApplCheckFunc(key))
   ;        {
   ;           if (ackProcess != NULL)
   ;              RtmkSend(ackProcess, armEvent);  /* Key hit event arrived */
   ;        } /* end of if */
   ;     } /* end of if */
   ;
         mov      dx, word ptr DGROUP:_ApplCheckFunc
         or       dx, word ptr DGROUP:_ApplCheckFunc + 2
         je       short @@9
         push     ax                   ; Pass in parameter
         call     dword ptr DGROUP:_ApplCheckFunc
         or       ax, ax               ; Check return code
         pop      ax                   ; Adjust stack pointer
         je       @@9

         mov      ax, word ptr DGROUP:_ackProcess  ; if (ackProcess)
         or       ax, word ptr DGROUP:_ackProcess + 2
         je       short @@9
         push     word ptr DGROUP:_armEvent
         push     word ptr DGROUP:_ackProcess + 2
         push     word ptr DGROUP:_ackProcess
         inc      word ptr DGROUP:_servingInt      ; servingInt++;
         call     far ptr  _RtmkSend
         add      sp, 6
         call     far ptr  _ClearKeyHitEvent       ;    ClearKeyHit();
         dec      word ptr DGROUP:_servingInt      ; servingInt--;
@@9:     in       al, 61h           ; Get current value of keyboard control line
         mov      ah, al            ; Save it
         or       al, 80h           ; Set "enable keyboard" bit
         out      61h, al           ; and write it out the control port
         xchg     ah, al            ; Fetch the original control port value
         out      61h, al           ; and write it back
         mov      al, 20h
         out      20h, al

         pop      bp                               ; Restore registers
         pop      di
         pop      si
         pop      ds
         pop      es
         pop      dx
         pop      cx
         pop      bx
         pop      ax
         sti                           ; Enable interrupt
         iret
_Int09Handler     endp

;int09_text       ends

         end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合一区二区| 欧美xingq一区二区| 欧美肥妇bbw| 国产精品久线观看视频| 青青草一区二区三区| 91亚洲资源网| 久久一夜天堂av一区二区三区 | 国产不卡视频在线播放| 7777精品久久久大香线蕉| 国产精品网曝门| 捆绑调教一区二区三区| 欧美精品乱码久久久久久| 亚洲欧美色综合| 懂色av一区二区夜夜嗨| 亚洲精品在线三区| 日产国产欧美视频一区精品| 欧美偷拍一区二区| 亚洲人吸女人奶水| 成人午夜在线视频| 中文字幕乱码一区二区免费| 国产在线精品不卡| 欧美成人福利视频| 免费在线成人网| 日韩欧美不卡一区| 男男成人高潮片免费网站| 欧美日韩精品电影| 亚洲成人第一页| 欧美精品少妇一区二区三区| 成人免费黄色在线| 亚洲精品一区二区三区在线观看| 日韩激情一二三区| 91精品国产一区二区三区蜜臀| 欧美日韩国产bt| 日韩激情av在线| 日韩视频一区二区三区| 蜜桃精品在线观看| 久久久综合激的五月天| 国产精品99久久久久久似苏梦涵| 久久先锋资源网| 国产福利一区在线| 日韩理论在线观看| 欧美三级在线视频| 男女激情视频一区| 久久蜜桃av一区精品变态类天堂 | 欧美xingq一区二区| 狠狠色丁香久久婷婷综| 久久免费精品国产久精品久久久久| 国产精品影视天天线| 欧美国产精品专区| 日本韩国精品在线| 日本强好片久久久久久aaa| 日韩精品一区二区三区三区免费| 九九在线精品视频| 中文字幕制服丝袜成人av| 色婷婷国产精品综合在线观看| 亚洲一区二区三区在线看| 日韩精品一区二区在线| 成人免费看视频| 亚欧色一区w666天堂| 国产亚洲综合av| 欧美午夜精品免费| 国产一区二区不卡在线| 一区二区三区成人| 精品欧美久久久| 99国产精品久| 男男gaygay亚洲| 国产精品国产a| 91精品国产综合久久久久久久久久| 国产精品一二二区| 亚洲第一狼人社区| 中文字幕免费在线观看视频一区| 欧美精品乱码久久久久久按摩| 国产电影精品久久禁18| 亚洲一区在线免费观看| 久久久久国产精品免费免费搜索| 欧美色图片你懂的| 春色校园综合激情亚洲| 免费在线观看一区二区三区| 中文字幕制服丝袜成人av| 精品奇米国产一区二区三区| 欧美婷婷六月丁香综合色| 国产成人一级电影| 麻豆国产精品一区二区三区| 亚洲日本电影在线| 久久日一线二线三线suv| 欧美视频在线不卡| 9人人澡人人爽人人精品| 国产一区不卡在线| 日韩国产欧美在线视频| 亚洲精品老司机| 一区二区中文字幕在线| 国产日韩精品一区二区三区在线| 91精品国产91热久久久做人人 | 亚洲精品福利视频网站| 国产欧美日韩卡一| 欧美电影免费观看完整版| 欧美色视频一区| 一本色道久久综合狠狠躁的推荐 | 国产农村妇女毛片精品久久麻豆 | 亚洲精品一线二线三线无人区| 在线看国产一区| 99精品欧美一区二区三区小说| 国产剧情一区二区三区| 国产在线视频不卡二| 美腿丝袜亚洲三区| 日本在线播放一区二区三区| 亚洲午夜久久久久| 亚洲国产精品一区二区久久恐怖片 | 久久丝袜美腿综合| 久久青草国产手机看片福利盒子| 欧美精品少妇一区二区三区| 欧美日韩激情一区二区| 欧美日韩在线播放| 在线电影院国产精品| 91麻豆精品国产自产在线| 欧美精品aⅴ在线视频| 9191成人精品久久| 欧美一区二区视频在线观看2020| 欧美一区中文字幕| 日韩亚洲欧美在线观看| 欧美成人精品3d动漫h| 日韩精品一区二区在线| 精品国产91九色蝌蚪| 久久久国产精华| 中文字幕亚洲成人| 亚洲最快最全在线视频| 亚洲国产精品一区二区久久 | 精品国产免费视频| 久久蜜桃av一区二区天堂| 欧美激情一二三区| 亚洲视频小说图片| 性欧美疯狂xxxxbbbb| 美女精品一区二区| 成人午夜激情在线| 欧美在线观看18| 日韩亚洲欧美成人一区| 日本一区二区三区在线不卡| 亚洲欧洲av色图| 亚洲成人av福利| 国产毛片精品视频| 91麻豆国产福利在线观看| 欧美三级电影精品| 久久综合久久综合九色| 1024亚洲合集| 看片网站欧美日韩| 94-欧美-setu| 欧美一区二区二区| 亚洲欧洲国产专区| 免费成人结看片| 99视频一区二区| 777久久久精品| 亚洲免费资源在线播放| 日韩黄色一级片| www.99精品| 欧美一区二区三区免费在线看| 久久精品网站免费观看| 一区二区欧美视频| 国产露脸91国语对白| 欧美午夜精品一区二区蜜桃| 国产亚洲精品bt天堂精选| 亚洲综合免费观看高清完整版 | 色香蕉成人二区免费| 欧美大胆人体bbbb| 一区二区欧美国产| 国产91精品久久久久久久网曝门| 欧美日韩三级视频| 国产精品久久久久久久久动漫 | 美女国产一区二区| 色乱码一区二区三区88| 久久久99精品久久| 青青草国产成人av片免费| 91久久精品一区二区三区| 国产女人aaa级久久久级| 蜜桃精品视频在线| 欧美日韩国产区一| 一区二区三区丝袜| 91丨porny丨户外露出| 久久午夜羞羞影院免费观看| 美女爽到高潮91| 欧美日韩三级一区| 亚洲国产精品久久久久婷婷884| av在线不卡观看免费观看| 国产日韩精品一区二区三区 | 久久精品国产亚洲高清剧情介绍| 欧美色成人综合| 亚洲一本大道在线| 在线中文字幕一区二区| 亚洲麻豆国产自偷在线| 成人av网址在线| 国产精品美女久久久久久久久 | 福利91精品一区二区三区| 欧美成人乱码一区二区三区| 日韩电影网1区2区| 日韩午夜av一区| 麻豆91免费看| 精品久久人人做人人爰| 激情小说欧美图片| 精品国产乱码久久久久久1区2区| 久久精品72免费观看| 日韩美女主播在线视频一区二区三区 |