📄 usb_to_serial.lst
字号:
0004= INT_EN: equ 04h ; interrupt enable
0002= SS_EN: equ 02h ; Single Step
0001= RUN_EN: equ 01h ; CPU Run bit
;**********************************************************
; INTERRUPT VECTOR TABLE
;**********************************************************
0000 MACRO INTERRUPT_VECTOR_TABLE
0000
0000 XPAGEOFF
0000 jmp Reset_Isr ;
0000 jmp Bus_Reset_Isr ;
0000 jmp 128us_Isr ;
0000 jmp 1ms_Isr ;
0000 jmp Ep0_Isr ;
0000 jmp Ep1_Isr ;
0000 jmp Ep2_Isr ;
0000 jmp Ep3_Isr ;
0000 jmp Ep4_Isr ;
0000 jmp Reserved_Isr ;
0000 jmp Dac_Isr ;
0000 jmp Gpio_Isr ;
0000 jmp I2c_Isr ;
0000 XPAGEON
0000
0000 ENDM
;INCLUDE "7C63743.INC"
;****************************************************************
; MACRO: JNE
;****************************************************************
0000 MACRO JNE destination
0000
0000 jnz destination ; [5/4]
0000
0000 ENDM
;****************************************************************
; MACRO: JEQ
;****************************************************************
0000 MACRO JEQ destination
0000
0000 jz destination ; [5/4]
0000
0000 ENDM
;****************************************************************
; MACRO: DISABLE_SE0
;****************************************************************
0000 MACRO DISABLE_SE0
0000
0000 mov A, 10h ;
0000 iowr F2h ;
0000
0000 ENDM
;****************************************************************
; MACRO: CLR_C
;****************************************************************
0000 MACRO CLR_C
0000
0000 add A, 00h ;
0000
0000 ENDM
;****************************************************************
; MACRO: 4_CYCLE_DELAY
;****************************************************************
0000 MACRO 4_CYCLE_DELAY
0000
0000 nop ; [4]
0000
0000 ENDM
;****************************************************************
; MACRO: 5_CYCLE_DELAY
;****************************************************************
0000 MACRO 5_CYCLE_DELAY
0000
0000 cmp A, 00h ; [5]
0000
0000 ENDM
;****************************************************************
; MACRO: 6_CYCLE_DELAY
;****************************************************************
0000 MACRO 6_CYCLE_DELAY
0000
0000 or A, [00h] ; [6]
0000
0000 ENDM
;****************************************************************
; MACRO: 7_CYCLE_DELAY
;****************************************************************
0000 MACRO 7_CYCLE_DELAY
0000
0000 cmp A, [00h] ; [7]
0000
0000 ENDM
;****************************************************************
; MACRO: 8_CYCLE_DELAY
;****************************************************************
0000 MACRO 8_CYCLE_DELAY
0000
0000 cmp A, [X + 0] ; [8]
0000
0000 ENDM
;****************************************************************
; MACRO: BIT_DELAY
;****************************************************************
0000 MACRO BIT_DELAY
0000
0000 mov A, [bit_rate] ; [5]
0000 or A, 00h ; [4]
0000 jz Bd_Exit ; [5/4]
0000
0000 ; This loop has to be 104 cycles.
0000 Bd_Loop:
0000 iowr WDT ; [5]
0000 call 50_Cycle_Delay ; [50]
0000 call 22_Cycle_Delay ; [22]
0000 call 18_Cycle_Delay ; [18]
0000 dec A ; [4]
0000 jnz Bd_Loop ; [5/4]
0000
0000 Bd_Exit:
0000
0000 ENDM
;****************************************************************
; MACRO: HALF_BIT_DELAY
;****************************************************************
0000 MACRO HALF_BIT_DELAY
0000
0000 mov A, [bit_rate] ; [5]
0000 or A, 00h ; [4]
0000 jz Hbd_Exit ; [5/4]
0000
0000 ; This loop has to be 52 cycles.
0000 Hbd_Loop:
0000 iowr WDT ; [5]
0000 call 38_Cycle_Delay ; [26]
0000 dec A ; [4]
0000 jnz Hbd_Loop ; [5/4]
0000
0000 Hbd_Exit:
0000 ENDM
;****************************************************************
; MACRO: QUARTER_BIT_DELAY
;****************************************************************
0000 MACRO QUARTER_BIT_DELAY
0000
0000 mov A, [bit_rate] ; [5]
0000 or A, 00h ; [4]
0000 jz Qbd_Exit ; [5/4]
0000
0000 ; This loop has to be 26 cycles.
0000 Qbd_Loop:
0000 iowr WDT ; [5]
0000 6_CYCLE_DELAY ; [6]
0000 6_CYCLE_DELAY ; [6]
0000 dec A ; [4]
0000 jnz Qbd_Loop ; [5/4]
0000
0000 Qbd_Exit:
0000 ENDM
;****************************************************************
; MACRO: EIGHTH_BIT_DELAY
;****************************************************************
0000 MACRO EIGHTH_BIT_DELAY
0000
0000 mov A, [bit_rate] ; [5]
0000 or A, 00h ; [4]
0000 jz Ebd_Exit ; [5/4]
0000
0000 ; This loop has to be 13 cycles.
0000 Ebd_Loop:
0000 4_CYCLE_DELAY ; [4]
0000 dec A ; [4]
0000 jnz Ebd_Loop ; [5/4]
0000
0000 Ebd_Exit:
0000 ENDM
;****************************************************************
; MACRO: BEGIN_JUMP_TABLE
;****************************************************************
0000 MACRO BEGIN_JUMP_TABLE
0000
0000 IF ($ & 0001h)
0000
0000 ORG (($ & FFFEh) + 2)
0000
0000 ENDIF
0000
0000 XPAGEOFF
0000
0000 ENDM
;****************************************************************
; MACRO: END_JUMP_TABLE
;****************************************************************
0000 MACRO END_JUMP_TABLE
0000
0000 XPAGEON
0000
0000 ENDM
0020= SIZEOF_INPUT_REPORT: equ SIZEOF_EP1_FIFO ;
0020= SIZEOF_OUTPUT_REPORT: equ SIZEOF_EP2_FIFO ;
0020= SIZEOF_RX_BUFFER: equ 20h ;
DEFINE HW_FLOW_CONTROL
;****************************************************************
; CONSTANTS
;****************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -