; .Outputusb_tx.SRC generated from: usbusb_tx.c
; vusb tx driver for 8051 core by crazy_code
; 2017/1/7
$NOMOD51
NAME USB_TX
#include "hs6210.inc"
CSEG AT 0x400
EXTRN DATA (usb_tx_count)
EXTRN DATA (usb_tx_buffer_pointer)
EXTRN DATA (pfix_nop)
PUBLIC usb_tx
#define tx_next usb_tx_count
L_Bit0_Idle: // [82]
clr c //清除Cy --1cycle [83]
nop // --1cycle [84]
inc r0 //指针前移 --1cycle [85] ->13
djnz r7, L_Bit1_Begin //不需要bit suffing, 发送下一bit --3cycle [3]
inc @r1 //凑两个nop [2]
dec @r1 //凑两个nop [4]
mov r7, #06h // bit suffing 计数值还原 --2cycle [6]
XRL P0,#03H // 插入bit_suffing --3cycle [9]
sjmp L_Bit2_Begin // 发送下一bit --2cycle [11]
L_Bit1_Idle: //从上次翻转到这个分支 2+1+1+3 --7cycle [7]
clr c //清除Cy --1cycle [8]
mov tx_next, @r0 //下一byte数据存到tx_nex --2cycle [10] ->10
nop // --1cycle [11]
djnz r7, L_Bit2_Begin //不需要bit suffing, 发送下一bit --3cycle [14]
inc @r1 //凑两个nop [2]
dec @r1 //凑两个nop [4]
mov r7, #06h // bit suffing 计数值还原 --2cycle [6]
XRL P0,#03H // 插入bit_suffing --3cycle [9]
sjmp L_Bit2_Begin // 发送下一bit --2cycle [11]
L_Bit2_Idle: //从上次翻转到这个分支 [18]
clr c //清除Cy --1cycle [19]
inc @r1 // [21] ->11
djnz r7, L_Bit3_Begin //不需要bit suffing, 发送下一bit --3cycle [24]
inc @r1 //凑两个nop [2]
dec @r1 //凑两个nop [4]
mov r7, #06h // bit suffing 计数值还原 --2cycle [6]
XRL P0,#03H // 插入bit_suffing --3cycle [9]
sjmp L_Bit3_Begin // 发送下一bit --2cycle [11]
L_Bit3_Idle: //从上次翻转到这个分支 [28]
clr c //清除Cy --1cycle [29]
mov r2, tx_next //下一byte数据存到r2 --2cycle [31] ->10
nop // --1cycle [32]
djnz r7, L_Bit4_Begin //不需要bit suffing, 发送下一bit --3cycle [35]
inc @r1 //凑两个nop [2]
dec @r1 //凑两个nop [4]
mov r7, #06h // bit suffing 计数值还原 --2cycle [6]
XRL P0,#03H // 插入bit_suffing --3cycle [9]
sjmp L_Bit4_Begin // 发送下一bit --2cycle [11]
L_Bit4_Idle: //从上次翻转到这个分支 [39]
clr c //清除Cy --1cycle [40]
inc @r1 // [42] ->11
djnz r7, L_Bit5_Begin //不需要bit suffing, 发送下一bit --3cycle [45]
inc @r1 //凑两个nop [2]
dec @r1 //凑两个nop [4]