📄 usbps2.lst
字号:
0000
0000 ;========================================================================
0000 ; Endpoint Interrupt Enable bits
0000
0000 ENDPOINT_ZERO: equ 1h ; USB EP A0 interrupt bit
0000 ENDPOINT_ONE: equ 2h ; USB EP A1 interrupt bit
0000 ENDPOINT_TWO: equ 4h ; USB EP A2 interrupt bit
0000
0000 ;========================================================================
0000 ; timer constants
0000 TIMER_MSB_MASK: equ 3Fh ; six bits
0000
0000 ;========================================================================
0000 ; Processor Status and Control
0000
0000 ENTER_SUSPEND: equ 9h
0000
0000 RUNBIT: equ 1h ; CPU Run bit
0000 SINGLESTEP: equ 2h ; Single Step
0000 INTERRUPTENABLE: equ 4h ; interrupt enable
0000 SUSPENDWAIT: equ 8h ; Suspend, wait for interrupt
0000 POWERONRESET: equ 10h ; power-on reset
0000 USBRESET: equ 20h ; USB Bus Reset bit
0000 WATCHDOG_RESET: equ 40h ; Watchdog Reset bit
0000 IRQPENDING: equ 80h ; IRQ pending
0000
0000 ;========================================================================
0000 ; USB Status and Control
0000 NOT_FORCING: equ 00h ; SIE controls D+/D-
0000 FORCE_K: equ 01h ; D+ high, D- low (resume signal)
0000 FORCE_J: equ 02h ; D+ low, D- high (idle state)
0000
0000
0000
0000 ;========================================================================
0000 ; FILE: usb.inc
0000 ;
0000 ; This file contains usb-specific delarations
0000 ;
0000 ;
0000 ;
0000 ;========================================================================
0000 ;========================================================================
0000 ; constant declarations
0000 ;========================================================================
0000 ; from USB Spec v1.0 from page 175
0000 ;------------------------------------------------------------------------
0000 ; standard request codes
0000 ;========================================================================
0000 ; constant declarations
0000 ;========================================================================
0000 ; from USB Spec v1.0 from page 175
0000 ;------------------------------------------------------------------------
0000 ; standard request codes
0000 get_status: equ 0
0000 clear_feature: equ 1
0000 set_feature: equ 3
0000 set_address: equ 5
0000 get_descriptor: equ 6
0000 set_descriptor: equ 7
0000 get_configuration: equ 8
0000 set_configuration: equ 9
0000 get_interface: equ 10
0000 set_interface: equ 11
0000 synch_frame: equ 12
0000
0000 ; standard descriptor types
0000 device: equ 1
0000 configuration: equ 2
0000 string: equ 3
0000 interface: equ 4
0000 endpoint: equ 5
0000
0000 ; standard feature selectors
0000 endpoint_stall: equ 0 ;recipient endpoint
0000 device_remote_wakeup: equ 1 ; recipient device
0000
0000 ;========================================================================
0000 ; from HID Class v1.0 Draft #4
0000 ;------------------------------------------------------------------------
0000 ; class specific descriptor types from section 7.1 Standard Requests
0000 HID: equ 21h
0000 report: equ 22h
0000 physical: equ 23h
0000
0000 ; class specific request codes from section 7.2 Class Specific Requests
0000 get_report: equ 1
0000 get_idle: equ 2
0000 get_protocol: equ 3
0000 set_report: equ 9
0000 set_idle: equ 10
0000 set_protocol: equ 11
0000
0000 ;========================================================================
0000 ; USB packet constants (debug purposes)
0000 ;------------------------------------------------------------------------
0000 ;setup: equ B4h
0000 ;in: equ 96h
0000 ;out: equ 87h
0000 ;data0: equ C3h
0000 ;data1: equ D2h
0000 ;ack: equ 4Bh
0000 ;nak: equ 5Ah
0000
0000 CONFIGURED: equ 1 ; configuration status values
0000 UNCONFIGURED: equ 0
0000
0000 BOOT_PROTOCOL: equ 0 ; protocol status values
0000 REPORT_PROTOCOL: equ 1
0000
0000 DISABLE_REMOTE_WAKEUP: equ 0 ; bit[1] = 0
0000 ENABLE_REMOTE_WAKEUP: equ 2 ; bit[1] = 1
0000
0000 MOUSE_REPORT_ID: equ 1
0000 MOUSE_REPORT_LEN: equ 5
0000 POWER_REPORT_ID: equ 2
0000 POWER_REPORT_LEN: equ 2
0000 CONSUMER_REPORT_ID: equ 3
0000 CONSUMER_REPORT_LEN: equ 2
0000 LAST_REPORT_ID: equ CONSUMER_REPORT_ID
0000
0000 MOUSE_3D_PACKET_LEN: equ 4 ;3d mouse use 4-byte packets
0000 MOUSE_3D_ID: equ 3 ;3d mouse reports an id of 3
0000
0000 ;========================================================================
0000 ; FILE: ps2.inc
0000 ;
0000 ; This file contains ps2-specific delarations
0000 ;
0000 ;========================================================================
0000 BAT_PASS: equ 0aah
0000 BAT_FAIL: equ 055h
0000
0000
0000 ;status bits for ps2 command processor
0000
0000 PS2_RESEND: equ 1
0000 PS2_XMIT: equ 2
0000 PS2_RESEND_REQUESTED: equ 4
0000 PS2_SCAN_KBD: equ 8
0000
0000
0000
0000 PS2_ENABLED_INTERRUPTS: equ 4 ; 1msec interrupt enabled
0000
0000 ;ps2 clock, data bits are D+ and D-
0000
0000 PS2_CLOCK_BIT: equ DP ;
0000 PS2_DATA_BIT: equ DM ;
0000
0000
0000 ;PS2 response byte declarations
0000 PS2_RSND: equ 0feh ;Resend response (request resend from host)
0000 PS2_ACK: equ 0fah ;ACK response
0000 PS2_ECHO: equ 0eeh ;ECHO response
0000
0000
0000 PS2_SCAN_INTERVAL: equ 4 ;4msec between key scans
0000
0000 ;define key types for scan set 3. These are carefully chosen to match
0000 ;the enumerations in the ps2-host commands 0xf7 - 0xfd (set all keys, and
0000 ;set key type).
0000
0000 TYPEMATIC: equ 0
0000 MAKE_BREAK: equ 1
0000 MAKE: equ 2
0000 TYPEMATIC_MAKE_BREAK: equ 3
0000
0000 SCAN_SET_1: equ 1
0000 SCAN_SET_2: equ 2
0000 SCAN_SET_3: equ 3
0000
0000 ;========================================================================
0000 ; FILE: macros.inc
0000 ;
0000 ; contains useful macro definitions
0000 ;
0000 ;========================================================================
0000 ;clear bit(s) in a RAM location
0000 MACRO CLRBIT BIT REG
0000 mov A,~BIT
0000 and [REG],A
0000 ENDM
0000
0000 ;set bit(s) in a RAM location
0000 MACRO SETBIT BIT REG
0000 mov A,BIT
0000 or [REG],A
0000 ENDM
0000
0000 ;test bit(s) in a RAM location
0000 MACRO TSTBIT BIT REG
0000 mov A,BIT
0000 and A,[REG]
0000 ENDM
0000
0000 ;clear carry
0000 MACRO CLEARC
0000 or A,0
0000 ENDM
0000
0000 ;set carry
0000 MACRO SETC
0000 cpl A
0000 cpl A
0000 ENDM
0000
0000
0000 ;macro for clearing blocks of RAM
0000 ;destroys X and A
0000 MACRO CLEARRAM base,length
0000 mov X,length - 1
0000 mov A,0
0000 lp:
0000 mov [X + base],A
0000 dec X
0000 jnc lp
0000 ENDM
0000
0000
0000 ;macro for packing 4 2-bit fields into a byte
0000
0000 MACRO TYPE a,b,c,d
0000 db (a + b*4 + c*16 + d*64)
0000 ENDM
0000
0000
0000 ;delay macro is the front-end for a call to the delay subroutine
0000 ;The fixed overhead of the macro plus the subroutine is 3 us,
0000 ;so this technique is good for delays of 4us or greater.
0000 ;
0000
0000 MACRO DELAY US
0000 push A
0000 mov A,(US-3)
0000 call delay
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -