📄 d12ci.asm
字号:
; .\D12ci.SRC generated from: .\D12ci.c
$NOMOD51
NAME D12CI
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
RD BIT 0B0H.7
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
WR BIT 0B0H.6
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
TF1 BIT 088H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?_D12_SetAddressEnable?D12CI SEGMENT CODE
?DT?_D12_SetAddressEnable?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_SetEndpointEnable?D12CI SEGMENT CODE
?DT?_D12_SetEndpointEnable?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_SetMode?D12CI SEGMENT CODE
?DT?_D12_SetMode?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_SetDMA?D12CI SEGMENT CODE
?DT?_D12_SetDMA?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_SelectEndpoint?D12CI SEGMENT CODE
?DT?_D12_SelectEndpoint?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_ReadLastTransactionStatus?D12CI SEGMENT CODE
?DT?_D12_ReadLastTransactionStatus?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_ReadEndpointStatus?D12CI SEGMENT CODE
?DT?_D12_ReadEndpointStatus?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_SetEndpointStatus?D12CI SEGMENT CODE
?DT?_D12_SetEndpointStatus?D12CI SEGMENT DATA OVERLAYABLE
?PR?D12_SendResume?D12CI SEGMENT CODE
?PR?D12_ReadCurrentFrameNumber?D12CI SEGMENT CODE
?DT?D12_ReadCurrentFrameNumber?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_ReadEndpoint?D12CI SEGMENT CODE
?DT?_D12_ReadEndpoint?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_WriteEndpoint?D12CI SEGMENT CODE
?DT?_D12_WriteEndpoint?D12CI SEGMENT DATA OVERLAYABLE
?PR?_D12_AcknowledgeEndpoint?D12CI SEGMENT CODE
?DT?_D12_AcknowledgeEndpoint?D12CI SEGMENT DATA OVERLAYABLE
?PR?fn_usb_isr?D12CI SEGMENT CODE
?DT?fn_usb_isr?D12CI SEGMENT DATA OVERLAYABLE
EXTRN DATA (D12_COMMAND)
EXTRN DATA (D12_DATA)
EXTRN DATA (bEPPflags)
EXTRN CODE (ep2_txdone)
EXTRN CODE (dma_eot)
EXTRN CODE (ep0_rxdone)
EXTRN CODE (ep1_rxdone)
EXTRN CODE (ep2_rxdone)
EXTRN CODE (ep0_txdone)
EXTRN CODE (ep1_txdone)
EXTRN CODE (?C?CSTOPTR)
EXTRN CODE (?C?CLDOPTR)
PUBLIC fn_usb_isr
PUBLIC _D12_AcknowledgeEndpoint
PUBLIC _D12_WriteEndpoint
PUBLIC _D12_ReadEndpoint
PUBLIC D12_ReadCurrentFrameNumber
PUBLIC D12_SendResume
PUBLIC _D12_SetEndpointStatus
PUBLIC _D12_ReadEndpointStatus
PUBLIC _D12_ReadLastTransactionStatus
PUBLIC _D12_SelectEndpoint
PUBLIC _D12_SetDMA
PUBLIC _D12_SetMode
PUBLIC _D12_SetEndpointEnable
PUBLIC _D12_SetAddressEnable
RSEG ?DT?_D12_SelectEndpoint?D12CI
?_D12_SelectEndpoint?BYTE:
bEndp?446: DS 1
ORG 1
c?447: DS 1
RSEG ?DT?_D12_ReadLastTransactionStatus?D12CI
?_D12_ReadLastTransactionStatus?BYTE:
bEndp?548: DS 1
RSEG ?DT?_D12_AcknowledgeEndpoint?D12CI
?_D12_AcknowledgeEndpoint?BYTE:
endp?1264: DS 1
RSEG ?DT?_D12_SetMode?D12CI
?_D12_SetMode?BYTE:
bConfig?243: DS 1
bClkDiv?244: DS 1
RSEG ?DT?_D12_SetEndpointEnable?D12CI
?_D12_SetEndpointEnable?BYTE:
bEnable?142: DS 1
RSEG ?DT?_D12_SetAddressEnable?D12CI
?_D12_SetAddressEnable?BYTE:
bAddress?040: DS 1
bEnable?041: DS 1
RSEG ?DT?_D12_ReadEndpoint?D12CI
?_D12_ReadEndpoint?BYTE:
endp?1055: DS 1
len?1056: DS 1
buf?1057: DS 3
ORG 5
i?1058: DS 1
j?1059: DS 1
RSEG ?DT?fn_usb_isr?D12CI
?fn_usb_isr?BYTE:
i_st?1365: DS 2
b1?1366: DS 1
RSEG ?DT?_D12_ReadEndpointStatus?D12CI
?_D12_ReadEndpointStatus?BYTE:
bEndp?649: DS 1
ORG 1
c?650: DS 1
RSEG ?DT?_D12_WriteEndpoint?D12CI
?_D12_WriteEndpoint?BYTE:
endp?1160: DS 1
len?1161: DS 1
buf?1162: DS 3
ORG 5
i?1163: DS 1
RSEG ?DT?D12_ReadCurrentFrameNumber?D12CI
?D12_ReadCurrentFrameNumber?BYTE:
i?953: DS 2
j?954: DS 2
RSEG ?DT?_D12_SetEndpointStatus?D12CI
?_D12_SetEndpointStatus?BYTE:
bEndp?751: DS 1
bStalled?752: DS 1
RSEG ?DT?_D12_SetDMA?D12CI
?_D12_SetDMA?BYTE:
bMode?345: DS 1
; void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
RSEG ?PR?_D12_SetAddressEnable?D12CI
_D12_SetAddressEnable:
USING 0
; SOURCE LINE # 14
MOV bAddress?040,R7
MOV bEnable?041,R5
; {
; SOURCE LINE # 15
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 16
MOV A,bEPPflags
JB ACC.5,?C0001
; DISABLE;
; SOURCE LINE # 17
CLR EA
?C0001:
;
; outportb(D12_COMMAND, 0xD0);
; SOURCE LINE # 19
MOV DPH,D12_COMMAND
MOV DPL,D12_COMMAND+01H
MOV A,#0D0H
MOVX @DPTR,A
; if(bEnable)
; SOURCE LINE # 20
MOV A,bEnable?041
JZ ?C0002
; bAddress |= 0x80;
; SOURCE LINE # 21
ORL bAddress?040,#080H
?C0002:
; outportb(D12_DATA, bAddress);
; SOURCE LINE # 22
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
MOV A,bAddress?040
MOVX @DPTR,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 24
MOV A,bEPPflags
JB ACC.5,?C0004
; ENABLE;
; SOURCE LINE # 25
SETB EA
; }
; SOURCE LINE # 26
?C0004:
RET
; END OF _D12_SetAddressEnable
;
; void D12_SetEndpointEnable(unsigned char bEnable)
RSEG ?PR?_D12_SetEndpointEnable?D12CI
_D12_SetEndpointEnable:
USING 0
; SOURCE LINE # 28
MOV bEnable?142,R7
; {
; SOURCE LINE # 29
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 30
MOV A,bEPPflags
JB ACC.5,?C0005
; DISABLE;
; SOURCE LINE # 31
CLR EA
?C0005:
;
; outportb(D12_COMMAND, 0xD8);
; SOURCE LINE # 33
MOV DPH,D12_COMMAND
MOV DPL,D12_COMMAND+01H
MOV A,#0D8H
MOVX @DPTR,A
; if(bEnable)
; SOURCE LINE # 34
MOV A,bEnable?142
JZ ?C0006
; outportb(D12_DATA, 1);
; SOURCE LINE # 35
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
MOV A,#01H
MOVX @DPTR,A
SJMP ?C0007
?C0006:
; else
; outportb(D12_DATA, 0);
; SOURCE LINE # 37
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
CLR A
MOVX @DPTR,A
?C0007:
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 39
MOV A,bEPPflags
JB ACC.5,?C0009
; ENABLE;
; SOURCE LINE # 40
SETB EA
; }
; SOURCE LINE # 41
?C0009:
RET
; END OF _D12_SetEndpointEnable
;
; void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
RSEG ?PR?_D12_SetMode?D12CI
_D12_SetMode:
USING 0
; SOURCE LINE # 43
MOV bConfig?243,R7
MOV bClkDiv?244,R5
; {
; SOURCE LINE # 44
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 45
MOV A,bEPPflags
JB ACC.5,?C0010
; DISABLE;
; SOURCE LINE # 46
CLR EA
?C0010:
;
; outportb(D12_COMMAND, 0xF3);
; SOURCE LINE # 48
MOV DPH,D12_COMMAND
MOV DPL,D12_COMMAND+01H
MOV A,#0F3H
MOVX @DPTR,A
; outportb(D12_DATA, bConfig);
; SOURCE LINE # 49
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
MOV A,bConfig?243
MOVX @DPTR,A
; outportb(D12_DATA, bClkDiv);
; SOURCE LINE # 50
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
MOV A,bClkDiv?244
MOVX @DPTR,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 52
MOV A,bEPPflags
JB ACC.5,?C0012
; ENABLE;
; SOURCE LINE # 53
SETB EA
; }
; SOURCE LINE # 54
?C0012:
RET
; END OF _D12_SetMode
;
; void D12_SetDMA(unsigned char bMode)
RSEG ?PR?_D12_SetDMA?D12CI
_D12_SetDMA:
USING 0
; SOURCE LINE # 56
MOV bMode?345,R7
; {
; SOURCE LINE # 57
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 58
MOV A,bEPPflags
JB ACC.5,?C0013
; DISABLE;
; SOURCE LINE # 59
CLR EA
?C0013:
;
; outportb(D12_COMMAND, 0xFB);
; SOURCE LINE # 61
MOV DPH,D12_COMMAND
MOV DPL,D12_COMMAND+01H
MOV A,#0FBH
MOVX @DPTR,A
; outportb(D12_DATA, bMode);
; SOURCE LINE # 62
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
MOV A,bMode?345
MOVX @DPTR,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 64
MOV A,bEPPflags
JB ACC.5,?C0015
; ENABLE;
; SOURCE LINE # 65
SETB EA
; }
; SOURCE LINE # 66
?C0015:
RET
; END OF _D12_SetDMA
;
; /*
; unsigned short D12_ReadInterruptRegister(void)
; {
; unsigned char b1;
; unsigned int j;
;
; outportb(D12_COMMAND, 0xF4);
; b1 = inportb(D12_DATA);
; j = inportb(D12_DATA);
;
; j <<= 8;
; j += b1;
;
; return j;
; }
; */
;
; unsigned char D12_SelectEndpoint(unsigned char bEndp)
RSEG ?PR?_D12_SelectEndpoint?D12CI
_D12_SelectEndpoint:
USING 0
; SOURCE LINE # 85
MOV bEndp?446,R7
; {
; SOURCE LINE # 86
; unsigned char c;
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 89
MOV A,bEPPflags
JB ACC.5,?C0016
; DISABLE;
; SOURCE LINE # 90
CLR EA
?C0016:
;
; outportb(D12_COMMAND, bEndp);
; SOURCE LINE # 92
MOV DPH,D12_COMMAND
MOV DPL,D12_COMMAND+01H
MOV A,bEndp?446
MOVX @DPTR,A
; c = inportb(D12_DATA);
; SOURCE LINE # 93
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
MOVX A,@DPTR
MOV R7,A
MOV c?447,R7
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 95
MOV A,bEPPflags
JB ACC.5,?C0017
; ENABLE;
; SOURCE LINE # 96
SETB EA
?C0017:
;
; return c;
; SOURCE LINE # 98
MOV R7,c?447
; }
; SOURCE LINE # 99
?C0018:
RET
; END OF _D12_SelectEndpoint
;
; unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
RSEG ?PR?_D12_ReadLastTransactionStatus?D12CI
_D12_ReadLastTransactionStatus:
USING 0
; SOURCE LINE # 101
; MOV bEndp?548,R7
; {
; SOURCE LINE # 102
; outportb(D12_COMMAND, 0x40 + bEndp);
; SOURCE LINE # 103
MOV A,R7
ADD A,#040H
MOV DPH,D12_COMMAND
MOV DPL,D12_COMMAND+01H
MOVX @DPTR,A
; return inportb(D12_DATA);
; SOURCE LINE # 104
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
MOVX A,@DPTR
MOV R7,A
; }
; SOURCE LINE # 105
?C0019:
RET
; END OF _D12_ReadLastTransactionStatus
;
; unsigned char D12_ReadEndpointStatus(unsigned char bEndp)
RSEG ?PR?_D12_ReadEndpointStatus?D12CI
_D12_ReadEndpointStatus:
USING 0
; SOURCE LINE # 107
MOV bEndp?649,R7
; {
; SOURCE LINE # 108
; unsigned char c;
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 111
MOV A,bEPPflags
JB ACC.5,?C0020
; DISABLE;
; SOURCE LINE # 112
CLR EA
?C0020:
;
; outportb(D12_COMMAND, 0x80 + bEndp);
; SOURCE LINE # 114
MOV A,bEndp?649
ADD A,#080H
MOV DPH,D12_COMMAND
MOV DPL,D12_COMMAND+01H
MOVX @DPTR,A
; c = inportb(D12_DATA);
; SOURCE LINE # 115
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
MOVX A,@DPTR
MOV R7,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 117
MOV A,bEPPflags
JB ACC.5,?C0021
; ENABLE;
; SOURCE LINE # 118
SETB EA
?C0021:
;
; return c;
; SOURCE LINE # 120
; }
; SOURCE LINE # 121
?C0022:
RET
; END OF _D12_ReadEndpointStatus
;
; void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
RSEG ?PR?_D12_SetEndpointStatus?D12CI
_D12_SetEndpointStatus:
USING 0
; SOURCE LINE # 123
MOV bEndp?751,R7
MOV bStalled?752,R5
; {
; SOURCE LINE # 124
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 125
MOV A,bEPPflags
JB ACC.5,?C0023
; DISABLE;
; SOURCE LINE # 126
CLR EA
?C0023:
;
; outportb(D12_COMMAND, 0x40 + bEndp);
; SOURCE LINE # 128
MOV A,bEndp?751
ADD A,#040H
MOV DPH,D12_COMMAND
MOV DPL,D12_COMMAND+01H
MOVX @DPTR,A
; outportb(D12_DATA, bStalled);
; SOURCE LINE # 129
MOV DPH,D12_DATA
MOV DPL,D12_DATA+01H
MOV A,bStalled?752
MOVX @DPTR,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 131
MOV A,bEPPflags
JB ACC.5,?C0025
; ENABLE;
; SOURCE LINE # 132
SETB EA
; }
; SOURCE LINE # 133
?C0025:
RET
; END OF _D12_SetEndpointStatus
;
; void D12_SendResume(void)
RSEG ?PR?D12_SendResume?D12CI
D12_SendResume:
USING 0
; SOURCE LINE # 135
; {
; SOURCE LINE # 136
; outportb(D12_COMMAND, 0xF6);
; SOURCE LINE # 137
MOV DPH,D12_COMMAND
MOV DPL,D12_COMMAND+01H
MOV A,#0F6H
MOVX @DPTR,A
; }
; SOURCE LINE # 138
RET
; END OF D12_SendResume
;
; unsigned short D12_ReadCurrentFrameNumber(void)
RSEG ?PR?D12_ReadCurrentFrameNumber?D12CI
D12_ReadCurrentFrameNumber:
USING 0
; SOURCE LINE # 140
; {
; SOURCE LINE # 141
; unsigned short i,j;
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 144
MOV A,bEPPflags
JB ACC.5,?C0027
; DISABLE;
; SOURCE LINE # 145
CLR EA
?C0027:
;
; outportb(D12_COMMAND, 0xF5);
; SOURCE LINE # 147
MOV DPH,D12_COMMAND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -