📄 usbsm.lst
字号:
0000 ; Complement flag F in mouse_flagsV
0000 ;*****
0000 MACRO CPLFLAG F
0000 mov a,F ;a <- F flag
0000 xor [mouse_flagsV],a ;toggle flag
0000 ;*** END MACRO CPLFLAG
0000 ENDM
0000
0000
0000 ;=============================================================================
0000 ; PS2_WR_PORT3
0000 ; Replaces "iowr IO_mouse_port" instruction to the following lines of
0000 ; code. Makes writes to bit 6 and 7 of Port3 not affecting other bits
0000 ; which are used for keyboard LED and scan matrix columns.
0000 ; Assumes the data to be written is in register A.
0000 ;=============================================================================
0000 MACRO PS2_WR_PORT3
0000 and A, P3_PS2_MASK ; clear all bits except bit 6 and 7
0000 mov [ps2_tmp], A ; move write data to a temporary variable
0000 mov A,[ksc_p3out] ; read current content of port 3
0000 and A, ~P3_PS2_MASK ; reset bit 6 and 7
0000 or A, [ps2_tmp] ; or current port 3 data with the write data
0000 iowr IO_mouse_port
0000 mov [ksc_p3out], A ; store most recent data back to p3out
0000
0000 ENDM
0000 MACRO enable_1ms_int
0000 iord Global_Interrupt
0000 or A, TIMER_ISR_MASK ; enable 1ms interrupt
0000 iowr Global_Interrupt
0000 ENDM
0000 MACRO disable_1ms_int:
0000 iord Global_Interrupt
0000 and A, ~TIMER_ISR_MASK ; enable 1ms interrupt
0000 iowr Global_Interrupt
0000 ENDM
0000
0000
0000 MACRO enable_EP0_int
0000 mov A,[configuration_status]
0000 cmp A,UNCONFIGURED
0000 mov A,ENDPOINT_ZERO
0000 jz .exit
0000 or A,(ENDPOINT_ONE + ENDPOINT_TWO)
0000 .exit:
0000 iowr ENDPOINT_INTERRUPT_REG
0000 ENDM
0000 MACRO disable_EP0_int
0000 mov A,[configuration_status]
0000 cmp A,UNCONFIGURED
0000 mov A,0
0000 jz .exit
0000 or A,(ENDPOINT_ONE + ENDPOINT_TWO)
0000 .exit:
0000 iowr ENDPOINT_INTERRUPT_REG
0000 ENDM
0000
0000 ;========================================================================
0000 ; FILE: at101.inc
0000 ;
0000 ; contains the defines for the keys on a 101/102 key keyboard.
0000 ;
0000 ; The definitions are standard with the addition of the following
0000 ; codes:
0000 ;
0000 ; AT101KB_POWER: EQU 130
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -