📄 usbjoy32.lst
字号:
CYASM Version 1.94
(C) 1998,1999,2000 Cypress Semiconductor Corp.
; Pin Connections
;
; -----------------------
; | P0[0] P0[4] |
; | P0[1] P0[5] |
; | P0[2] P0[6] |
; | P0[3] P0[7] |
; | P1[0] P1[1] |
; | P1[2] P1[3] |
; | P1[4] P1[5] |
; | P1[6] P1[7] |
; GND | VSS D+/SCLK | USB D+ / PS2 SCLK
; GND | VPP D-/SDATA | USB D- / PS2 SDATA
; PULLUP | VREG VCC | +5
; | XTALIN XTALOUT |
; -----------------------
;
;**************** assembler directives *****************
0000 CPU 63743 ; The frameworks is written for
; the CY7C63722/23 and CY7C63742/43.
; User should change the CPU to the type of
; chip being used.
0000 XPAGEON
; processor registers
0000= Port0: equ 00h
0001= Port1: equ 01h
0002= Port2: equ 02h
0004= Port0_Interrupt: equ 04h
0005= Port1_Interrupt: equ 05h
0006= Port0_Interrupt_Polarity: equ 06h
0007= Port1_Interrupt_Polarity: equ 07h
000A= Port0_Mode0: equ 0Ah
000B= Port0_Mode1: equ 0Bh
000C= Port1_Mode0: equ 0Ch
000D= Port1_Mode1: equ 0Dh
0010= Usb_Address: equ 10h
0011= Ep0_Count: equ 11h
0012= Ep0_Mode: equ 12h
0013= Ep1_Count: equ 13h
0014= Ep1_Mode: equ 14h
0015= Ep2_Count: equ 15h
0016= Ep2_Mode: equ 16h
001F= Usb_Status_Control: equ 1Fh
0020= Global_Interrupt: equ 20h
0021= Endpoint_Interrupt: equ 21h
0024= Timer_Lsb: equ 24h
0025= Timer_Msb: equ 25h
0026= Watchdog: equ 26h
0040= Capture_TimerA_Rising: equ 40h
0041= Capture_TimerA_Falling: equ 41h
0042= Capture_TimerB_Rising: equ 42h
0043= Capture_TimerB_Falling: equ 43h
0044= Capture_Timer_Config: equ 44h
0045= Capture_Timer_Status: equ 45h
0060= SPI_Data: equ 60h
0061= SPI_Control: equ 61h
00F8= Clock_Config: equ F8h
00FF= Processor_Status_Control: equ FFh
; Port 2 Data Register 0x02 bit assignments
0020= SCLK: equ 20h
0020= DPLUS: equ 20h
0010= SDATA: equ 10h
0010= DMINUS: equ 10h
0002= XTALIN: equ 02h
0001= VREG: equ 01h
; USB Port status and control register 0x1F bit assignments
0080= PS2_PULLUP: equ 80h
0040= VREG_ENABLE: equ 40h
0020= USB_PS2_MODE: equ 20h
0008= BUS_ACTIVITY: equ 08h
0001= CONTROL0: equ 01h
0002= CONTROL1: equ 02h
0004= CONTROL2: equ 04h
0000= NOT_FORCING: equ 00h
0001= FORCE_K: equ 01h
0002= FORCE_J: equ 02h
0003= FORCE_SE0: equ 03h
0040= FORCEBOTH_LOW: equ 40h
0005= FORCESDATA_LOW: equ 05h
0006= FORCESCLK_LOW: equ 06h
0007= FORCE_HIZ: equ 07h
;Port Modes
0000= MODE0_RESISTIVE_MODE: equ 00h
00FF= MODE1_RESISTIVE_MODE: equ FFh
; USB Device Address Registers 0x10 bit assignments
0080= ADDRESS_ENABLE: equ 80h
007F= ADDRESS_MASK: equ 7Fh
; USB Device EP0 Mode Register 0x12
0080= EP0_SETUP: equ 80h
0040= EP0_IN: equ 40h
0020= EP0_OUT: equ 20h
0010= EP0_ACK: equ 10h
000F= MODE_MASK: equ 0Fh
; USB Device Endpoint Mode Registers 0x14, 0x16
0080= EP_STALL: equ 80h
0010= EP_ACK: equ 10h
; USB Device Counter Registers 0x11, 0x13, 0x15
0080= DATA_TOGGLE: equ 80h
0040= DATA_VALID: equ 40h
000F= BYTE_COUNT: equ 0Fh
;Processor Status and Control Register 0xFF
0080= IRQ_PENDING: equ 80h
0040= WDR: equ 40h
0020= USB_RESET: equ 20h
0010= POR_RESET: equ 10h
0008= SUSPEND: equ 08h
0004= INT_ENABLE_SENSE: equ 04h
0001= RUN: equ 01h
; global interrupt enable register 0x20 bit assignments
0080= WAKEUP_INT: equ 80h
0040= GPIO_INT: equ 40h
0004= 1MS_INT: equ 04h
0002= 128US_INT: equ 02h
0001= USB_RESET_INT: equ 01h
; USB Endpoint Interrupt Enable Register 0x21 bit assignments
0004= EP2_INT: equ 04h
0002= EP1_INT: equ 02h
0001= EP0_INT: equ 01h
; Clock Configuration Register 0xF8 bit assignments
0080= EXT_DELAY: equ 80h
0040= WAKEUP_ADJUST2: equ 40h
0020= WAKEUP_ADJUST1: equ 20h
0010= WAKEUP_ADJUST0: equ 10h
0008= LVR_ENABLE: equ 08h
0004= PRECISION_CLK_ENABLE: equ 04h
0002= INTERNAL_CLK: equ 02h
0001= EXTERNAL_CLK: equ 01h
; USB register mode encoding
0000= DISABLE: equ 00h
0001= NAK_IN_OUT: equ 01h
0002= STATUS_OUT_ONLY: equ 02h
0003= STALL_IN_OUT: equ 03h
0004= IGNORE_IN_OUT: equ 04h
0006= STATUS_IN_ONLY: equ 06h
0007= ISOCHRONOUS_IN: equ 07h
0008= NAK_OUT: equ 08h
0009= ACK_OUT: equ 09h
000A= NAK_OUT_STATUS_IN: equ 0Ah
000B= ACK_OUT_NAK_IN: equ 0Bh
000C= NAK_IN: equ 0Ch
000D= ACK_IN: equ 0Dh
000E= NAK_IN_STATUS_OUT: equ 0Eh
000F= ACK_IN_STATUS_OUT: equ 0Fh
;RAM locations
00FF= TOP_OF_RAM: equ FFh
0000= BOTTOM_OF_RAM: equ 00h
00FF= SET: equ FFh
0000= CLEAR: equ 00h
;========================================
;
; Ram
;
;========================================
0020= suspend_count: equ 20h ; counter for suspend/resume
0021= ep1_data_toggle: equ 21h ; data toggle for INs on endpoint one
0022= ep0_data_toggle: equ 22h ; data toggle for INs on endpoint zero
0023= data_start: equ 23h ; address of request response data, as an offset
0024= data_count: equ 24h ; number of bytes to send back to the host
0025= maximum_data_count: equ 25h ; request response size
0026= data_pending_flag: equ 26h
0027= configuration: equ 27h
0028= ep1_stall: equ 28h
0029= idle: equ 29h
002A= protocol: equ 2Ah
002B= ep0_count_tmp: equ 2Bh ; temporary register
002C= pending_data: equ 2Ch
002D= int_temp: equ 2Dh
002E= idle_timer: equ 2Eh
002F= idle_prescaler: equ 2Fh
0030= ep0_transtype: equ 30h
0031= data_byte_0: equ 31h
0032= data_byte_1: equ 32h
0033= new_task: equ 33h
0034= task_number: equ 34h
0035= Dpad_debounce: equ 35h
0037= new_y: equ 37h
0038= new_x: equ 38h
0039= old_x: equ 39h
003A= old_y: equ 3Ah
003C= old_buttons: equ 3Ch
;========================================
;
; Application Specific aliases
;
;========================================
0000= Button_Port: equ Port0
0001= Dpad_Port: equ Port1
000F= DPAD_BITS: equ 0fh
0003= Y_BITS: equ 03h
00FF= BUTTON_BITS: equ ffh
0003= EP1_REPORT_LENGTH: equ 03h
; STATE MACHINE CONSTANTS
;EP0 IN TRANSACTIONS
0000= EP0_IN_IDLE: equ 00h
0002= CONTROL_READ_DATA: equ 02h
0004= NO_DATA_STATUS: equ 04h
0006= EP0_IN_STALL: equ 06h
;******* FLAG CONSTANTS
0000= NO_CHANGE_PENDING: equ 00h
0001= ADDRESS_CHANGE_PENDING: equ 01h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -