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

📄 ps2.lst

📁 Cypress 的(鼠标+键盘)复合设备汇编源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
0000            ;   AT101KB_SLEEP:            EQU         131
0000            ;   AT101KB_WAKE:             EQU         132
0000            ;   
0000            ;   in addition, code  135 is currently used to represent
0000            ;   the CTRL-ALT scan code in scan sets 1 and 2. This can be moved
0000            ;   to another location (above 135) if new keys are added that need
0000            ;   the 135 placement.
0000            ;
0000            ;
0000            ;========================================================================
0000            
0000            
0000            AT101KB_RESERVED:        equ           00
0000            AT101KB_TILDE:            equ         01
0000            AT101KB_01:               equ         02
0000            AT101KB_02:               equ         03
0000            AT101KB_03:               equ         04
0000            AT101KB_04:               equ         05
0000            AT101KB_05:               equ         06
0000            AT101KB_06:               equ         07
0000            AT101KB_07:               equ         08
0000            AT101KB_08:               equ         09
0000            AT101KB_09:               equ         10
0000            AT101KB_00:               equ         11
0000            AT101KB_UNDERSCORE:       equ         12
0000            AT101KB_EQUAL:            equ         13
0000            
0000            AT101KB_DELETE:           equ         15
0000            AT101KB_TAB:              equ         16
0000            AT101KB_Q:                equ         17
0000            AT101KB_W:                equ         18
0000            AT101KB_E:                equ         19
0000            AT101KB_R:                equ         20
0000            AT101KB_T:                equ         21
0000            AT101KB_Y:                equ         22
0000            AT101KB_U:                equ         23
0000            AT101KB_I:                equ         24
0000            AT101KB_O:                equ         25
0000            AT101KB_P:                equ         26
0000            AT101KB_LEFTBRACKET:      EQU         27
0000            AT101KB_RIGHTBRACKET:     EQU         28
0000            AT101KB_VERTICAL_LINE:    EQU         29
0000            AT101KB_CAPSLOCK:         EQU         30
0000            AT101KB_A:                equ         31
0000            AT101KB_S:                equ         32
0000            AT101KB_D:                equ         33
0000            AT101KB_F:                equ         34
0000            AT101KB_G:                equ         35
0000            AT101KB_H:                equ         36
0000            AT101KB_J:                equ         37
0000            AT101KB_K:                equ         38
0000            AT101KB_L:                equ         39
0000            AT101KB_SEMICOLON:         EQU         40
0000            AT101KB_DOUBLEQUOTE:      EQU         41
0000            AT101KB_NONUSPOUND:       EQU         42
0000            AT101KB_ENTER:            EQU         43
0000            AT101KB_LEFTSHIFT:        EQU         44
0000            AT101KB_NONUSVERT_LINE:   EQU         45
0000            
0000            AT101KB_Z:                equ         46
0000            AT101KB_X:                equ         47
0000            AT101KB_C:                equ         48
0000            AT101KB_V:                equ         49
0000            AT101KB_B:                equ         50
0000            AT101KB_N:                equ         51
0000            AT101KB_M:                equ         52
0000            AT101KB_LEFTANGLE:        EQU         53
0000            AT101KB_RIGHTANGLE:       EQU         54
0000            AT101KB_QUESTION:         EQU         55
0000            AT101KB_RIGHTSHIFT:       EQU         57
0000            AT101KB_LEFTCTRL:         EQU         58
0000            
0000            AT101KB_LEFTALT:          EQU         60
0000            AT101KB_SPACE:            EQU         61
0000            AT101KB_RIGHTALT:         EQU         62
0000            AT101KB_RIGHTCTRL:        EQU         64
0000            
0000            AT101KB_INSERT:           EQU         75
0000            AT101KB_DELETE_FORWARD:   EQU         76
0000            
0000            AT101KB_LEFTARROW:        EQU         79
0000            AT101KB_HOME:             EQU         80
0000            AT101KB_END:              EQU         81
0000            AT101KB_UPARROW:          EQU         83
0000            AT101KB_DOWNARROW:        EQU         84
0000            AT101KB_PAGEUP:           EQU         85
0000            AT101KB_PAGEDOWN:         EQU         86
0000            
0000            AT101KB_RIGHTARROW:       EQU         89
0000            AT101KP_NUMLOCK:          EQU         90
0000            
0000            AT101KP_7:                EQU         91
0000            AT101KP_4:                EQU         92
0000            AT101KP_1:                EQU         93
0000            
0000            AT101KP_SLASH:           EQU         95
0000            AT101KP_8:                EQU         96
0000            AT101KP_5:                EQU         97
0000            AT101KP_2:                EQU         98
0000            AT101KP_0:                EQU         99
0000            AT101KP_STAR:             EQU         100
0000            AT101KP_9:                EQU         101
0000            AT101KP_6:                EQU         102
0000            AT101KP_3:                EQU         103
0000            AT101KP_PERIOD:           EQU         104
0000            AT101KP_MINUS:            EQU         105
0000            AT101KP_PLUS:             EQU         106
0000            
0000            AT101KP_ENTER:            EQU         108
0000            
0000            AT101KB_ESCAPE:           EQU         110
0000            AT101KB_F1:               EQU         112
0000            AT101KB_F2:               EQU         113
0000            AT101KB_F3:               EQU         114
0000            AT101KB_F4:               EQU         115
0000            AT101KB_F5:               EQU         116
0000            AT101KB_F6:               EQU         117
0000            AT101KB_F7:               EQU         118
0000            AT101KB_F8:               EQU         119
0000            AT101KB_F9:               EQU         120
0000            AT101KB_F10:              EQU         121
0000            AT101KB_F11:              EQU         122
0000            AT101KB_F12:              EQU         123
0000            AT101KB_PRINTSCREEN:      EQU         124
0000            AT101KB_SCROLL_LOCK:      EQU         125
0000            AT101KB_PAUSE:            EQU         126
0000            
0000            AT101KB_LEFTGUI:          EQU         127
0000            AT101KB_RIGHTGUI:         EQU         128
0000            AT101KB_APPLICATION:      EQU         129
0000            
0000            AT101KB_POWER:            EQU         130
0000            AT101KB_SLEEP:            EQU         131
0000            AT101KB_WAKE:             EQU         132
0000              
0000            
0000            
0000            
0000            ;internal use! use this key code for the alt-key-124 special key code.
0000            
0000            
0000            AT101KB_ALT_124:        EQU         135
0000            
0000            ;consumer page HID audio controls
0000            AT101KB_MUTE:           EQU             143     ;MUTE
0000            AT101KB_VOL_DEC:                EQU             146     ;VOL-
0000            AT101KB_VOL_INC:                EQU             147     ;VOL+
0000            
0000            
0000            
0000            ;========================================================================
0000            ;  This is the Cypress Dual Interface Keyboard hardware port defines  
0000            ;
0000            ;========================================================================
0000            DEBOUNCE_PRESS_TIME:    equ     03h     ; Set debounce time for
0000                                                            ; key press equal to 12 ms
0000                                                            ; (3 * 4 ms)
0000            DEBOUNCE_RELEASE_TIME:  equ     01h     ; Set debounce time for
0000                                                            ; key release equal to 4 ms
0000                                                            ; (1 * 4 ms)
0000            
0000            ; LED and KEY bit masks in port 3
0000            P3_KEY_MASK:                equ c0h     ; bits[7:4]
0000            P3_LED_MASK:                equ 07h     ; bits[3:0]
0000            P3_KEY_LSBIT_MASK:      equ 040h ; first bit of key drive lines in p3
0000            P3_USB_CONN_MASK:       equ 08h; usb connection bit
0000            
0000            ; LED positions in port 3
0000            NUM_LOCK_LED:               equ    1h  ; bit[0]
0000            CAPS_LOCK_LED:          equ    2h   ; bit[1]
0000            SCROLL_LOCK_LED:        equ    4h   ; bit[2]
0000            
0000            ; Normal GPIO port configuration
0000            NORMAL:                 equ     f5h         ; Port3 resistive neg
0000                                                        ; Port2 resistive neg
0000                                                            ; Port1 open drain neg
0000                                                            ; Port0 open drain neg
0000            
0000            
0000            
0000            
0000            
0000            
0000            
0000            
0000            PS2_KEYBOARD:   equ 0               
0000            USB_KEYBOARD:   equ 1
0000            
0000            ;========================================================================
0000            ;  interrupt vector table -- must be located here
0000            ;========================================================================
0000            
0000                ORG     00h
0000            
0000 80 1F [05]     jmp     sys_reset               ; reset vector
0002            
0002 80 1F [05]     jmp     illegal_int       ; USB bus reset
0004            
0004 80 1F [05]     jmp     illegal_int             ; 128us interrupt
0006            
0006 80 1A [05]     jmp    dual_ifc_1ms_ISR           ; 1.024ms interrupt
0008            
0008 80 1F [05]     jmp     illegal_int             ; endpoint 0 interrupt
000A            
000A 80 1F [05]     jmp     illegal_int             ; endpoint 1 interrupt
000C            
000C 80 1F [05]         jmp     illegal_int                     ; endpoint 2 interrupt
000E            
000E 80 1F [05]     jmp     illegal_int             ; reserved interrupt
0010            
0010 80 1F [05]     jmp     illegal_int             ; reserved interrupt
0012            
0012 80 1F [05]     jmp     illegal_int             ; reserved interrupt
0014            
0014 80 1F [05]     jmp     illegal_int                 ; DAC interrupt
0016            
0016 80 1F [05]     jmp     illegal_int                ; GPIO interrupt
0018            
0018 80 1F [05]     jmp     illegal_int             ; reserved interrupt
001A            
001A            ;========================================================================
001A            ;
001A            ;   FUNCTION: dual_ifc_1ms_ISR
001A            ;
001A            ;   purpose:    
001A            ;   provides the entry point for the 1 millisecond tick.
001A            ;   it performs the necessary ps2-specific
001A            ;   functions and returns.
001A            ;
001A            ;
001A            ;========================================================================
001A            dual_ifc_1ms_ISR:
001A 2D    [05]     push    A                       ;save A
001B 23 21 [07]     inc    [dual_ifc_1ms]              ;otherwise increment 1msec counter
001D            ;    iowr    WATCHDOG_REG            ;clear watchdog
001D 2B    [04]     pop    a                        ;restore A reg
001E 73    [08]     reti                            ;return from interrupt
001F            
001F            ;========================================================================
001F            ;
001F            ;   FUNCTION: sys_reset
001F            ;
001F            ;   purpose:    
001F            ;   reset entry point for code
001F            ;
001F            ;
001F            ;========================================================================
001F            

⌨️ 快捷键说明

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