📄 ps2d_mouse_cmd.lis
字号:
00FA PS2_CMD_ACK: equ 0xFA
00FC PS2_CMD_ERROR: equ 0xFC
00AA PS2_CMD_PASS_BAT: equ 0xAA
0000
0000 ;--------------------------------------------------
0000 ; Register Address Constants for PS2D
0000 ;--------------------------------------------------
0000 ;--------------------------------------------------
0000 ; IO Config Type for PS2D
0000 ;--------------------------------------------------
0000 PS2D_IO_CONFIG_TYPE_PSOC: EQU 0
0001 PS2D_IO_CONFIG_TYPE_ENCOREII: EQU 1
0001 PS2D_IO_CONFIG_TYPE: EQU 1
0000 ;--------------------------------------------------
0000 ; PS2D Macro 'Functions'
0000 ;--------------------------------------------------
0000 ; Device specific actions for DISABLE command (0xF5)
0000 MACRO DISABLE_DEVICE
0000 ; Null for mouse
0000 MACRO START_TRANSFER
0000 mov [PS2D_bTxPktSize], @0 ; Start the transfer
0000 mov [PS2D_bTxPktIndex], 0 ;
export PS2D_IsStreamMode
export _PS2D_IsStreamMode
export PS2D_GetResolution
export _PS2D_GetResolution
export PS2D_GetSampleInterval
export _PS2D_GetSampleInterval
export PS2D_GetScaling
export _PS2D_GetScaling
export PS2D_GetDeviceID
export _PS2D_GetDeviceID
export PS2D_StartDevice
;-----------------------------------------------
; Persistent RAM Allocation
;-----------------------------------------------
AREA bss (RAM,REL)
export PS2D_bDeviceID
export _PS2D_bDeviceID
export PS2D_bSampleRateIndex
export PS2D_bMouseScaling
export PS2D_bMouseResolution
export PS2D_bWheelUnlock
0000 PS2D_bDeviceID:
0000 _PS2D_bDeviceID: BLK 1
0001
0001 PS2D_bSampleRateIndex: BLK 1
0002 PS2D_bMouseScaling: BLK 1
0003 PS2D_bMouseResolution: BLK 1
0004 PS2D_bWheelUnlock: BLK 1
0005
0005 ;-----------------------------------------------
0005 ; PS2 Command Dispatch Tables
0005 ;-----------------------------------------------
0005
AREA UserModules (ROM, REL)
00FA PS2D_E6_CMD_RESPONSE: equ PS2_CMD_ACK
00FA PS2D_E7_CMD_RESPONSE: equ PS2_CMD_ACK
00FA PS2D_E8_CMD_RESPONSE: equ PS2_CMD_ACK
00FA PS2D_E9_CMD_RESPONSE: equ PS2_CMD_ACK
0000 PS2D_EA_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_EB_CMD_RESPONSE: equ PS2_CMD_NO_ACK
00FA PS2D_EC_CMD_RESPONSE: equ PS2_CMD_ACK
0000 PS2D_ED_CMD_RESPONSE: equ PS2_CMD_NO_ACK
00FA PS2D_EE_CMD_RESPONSE: equ PS2_CMD_ACK
0000 PS2D_EF_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_F0_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_F1_CMD_RESPONSE: equ PS2_CMD_NO_ACK
00FA PS2D_F2_CMD_RESPONSE: equ PS2_CMD_ACK
00FA PS2D_F3_CMD_RESPONSE: equ PS2_CMD_ACK
00FA PS2D_F4_CMD_RESPONSE: equ PS2_CMD_ACK
00FA PS2D_F5_CMD_RESPONSE: equ PS2_CMD_ACK
00FA PS2D_F6_CMD_RESPONSE: equ PS2_CMD_ACK
0000 PS2D_F7_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_F8_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_F9_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_FA_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_FB_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_FC_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_FD_CMD_RESPONSE: equ PS2_CMD_NO_ACK
0000 PS2D_FE_CMD_RESPONSE: equ PS2_CMD_NO_ACK
00FA PS2D_FF_CMD_RESPONSE: equ PS2_CMD_ACK
0000
export PS2D_CMD_RESPONSE
0000 .LITERAL
0000 PS2D_CMD_RESPONSE:
0000 FA DB PS2D_E6_CMD_RESPONSE
0001 FA DB PS2D_E7_CMD_RESPONSE
0002 FA DB PS2D_E8_CMD_RESPONSE
0003 FA DB PS2D_E9_CMD_RESPONSE
0004 00 DB PS2D_EA_CMD_RESPONSE
0005 00 DB PS2D_EB_CMD_RESPONSE
0006 FA DB PS2D_EC_CMD_RESPONSE
0007 00 DB PS2D_ED_CMD_RESPONSE
0008 FA DB PS2D_EE_CMD_RESPONSE
0009 00 DB PS2D_EF_CMD_RESPONSE
000A 00 DB PS2D_F0_CMD_RESPONSE
000B 00 DB PS2D_F1_CMD_RESPONSE
000C FA DB PS2D_F2_CMD_RESPONSE
000D FA DB PS2D_F3_CMD_RESPONSE
000E FA DB PS2D_F4_CMD_RESPONSE
000F FA DB PS2D_F5_CMD_RESPONSE
0010 FA DB PS2D_F6_CMD_RESPONSE
0011 00 DB PS2D_F7_CMD_RESPONSE
0012 00 DB PS2D_F8_CMD_RESPONSE
0013 00 DB PS2D_F9_CMD_RESPONSE
0014 00 DB PS2D_FA_CMD_RESPONSE
0015 00 DB PS2D_FB_CMD_RESPONSE
0016 00 DB PS2D_FC_CMD_RESPONSE
0017 00 DB PS2D_FD_CMD_RESPONSE
0018 00 DB PS2D_FE_CMD_RESPONSE
0019 FA DB PS2D_FF_CMD_RESPONSE
001A .ENDLITERAL
001A ;-----------------------------------------------------------------------------
001A ;-----------------------------------------------------------------------------
001A ; Mouse specific API routines
001A ;-----------------------------------------------------------------------------
001A ;-----------------------------------------------------------------------------
001A ; FUNCTION NAME: PS2D_GetScaling
001A ; DESCRIPTION:
001A ;
001A ;-----------------------------------------------------------------------------
001A ;
001A ; ARGUMENTS:
001A ;
001A ; RETURNS:
001A ;
001A ; SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
001A ;
001A ; THEORY of OPERATION or PROCEDURE:
001A ;
001A ;-----------------------------------------------------------------------------
001A .SECTION
001A PS2D_GetScaling:
001A _PS2D_GetScaling:
001A 5102 mov a, [PS2D_bMouseScaling] ; Return the scaling value
001C 7F ret
001D .ENDSECTION
001D ;-----------------------------------------------------------------------------
001D ; FUNCTION NAME: PS2D_IsStreamMode
001D ; DESCRIPTION: Applicable to mouse support.
001D ; Return 1 if the interface is in stream mode
001D ; Otherwise returns 0
001D ;
001D ;-----------------------------------------------------------------------------
001D ;
001D ; ARGUMENTS:
001D ;
001D ; RETURNS:
001D ;
001D ; SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
001D ;
001D ; THEORY of OPERATION or PROCEDURE:
001D ;
001D ;-----------------------------------------------------------------------------
001D .SECTION
001D PS2D_IsStreamMode:
001D _PS2D_IsStreamMode:
001D 5001 mov a, 0x01 ; Assume stream mode
001F 3C0004 cmp [PS2D_bMode],PS2D_CMD_MODE_STREAM ; Are we in stream mode?
0022 A003 jz .exit
0024 ; Flow here when we are not in stream mode
0024 5000 mov a, 0x00 ; Return not in stream mode
0026
0026 .exit:
0026 7F ret
0027 .ENDSECTION
0027 ;-----------------------------------------------------------------------------
0027 ; FUNCTION NAME: PS2D_GetSampleInterval
0027 ; DESCRIPTION:
0027 ;
0027 ;-----------------------------------------------------------------------------
0027 ;
0027 ; ARGUMENTS:
0027 ;
0027 ; RETURNS:
0027 ;
0027 ; SIDE EFFECTS: REGISTERS ARE VOLATILE: THE A AND X REGISTERS MAY BE MODIFIED!
0027 ;
0027 ; THEORY of OPERATION or PROCEDURE:
0027 ;
0027 ;-----------------------------------------------------------------------------
0027 .SECTION
0027 PS2D_GetSampleInterval:
0027 _PS2D_GetSampleInterval:
0027 5101 mov a,[PS2D_bSampleRateIndex] ; Get the index
0029 F00E index PS2D_cValidSampleInterval ; Return the interval
002B 7F ret
002C .ENDSECTION
002C ;-----------------------------------------------------------------------------
002C ; FUNCTION NAME: PS2D_GetResolution
002C ; DESCRIPTION:
002C ;
002C ;-----------------------------------------------------------------------------
002C ;
002C ; ARGUMENTS:
002C ;
002C ; RETURNS:
002C ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -