📄 d12ci.lis
字号:
.module D12CI.C
.area text(rom, con, rel)
0000 .dbfile D:\AvrUSB\D12CI.C
0000 .dbfunc e D12_SetEndpointEnable _D12_SetEndpointEnable fV
0000 ; bEnable -> R16
.even
0000 _D12_SetEndpointEnable::
0000 .dbline -1
0000 .dbline 11
0000 ; #include <macros.h>
0000 ; #include "D12CI.h"
0000 ; #include "MAIN.h"
0000 ;
0000 ; #define cwait asm("nop")
0000 ; #define cwait1 asm("nop");asm("nop")
0000 ;
0000 ; extern EPPFLAGS bEPPflags;
0000 ;
0000 ; void D12_SetEndpointEnable(unsigned char bEnable)
0000 ; {
0000 .dbline 12
0000 ; D12_COMMAND=0xD8;
0000 88ED ldi R24,216
0002 8093017C sts 31745,R24
0006 .dbline 13
0006 ; if(bEnable)
0006 0023 tst R16
0008 21F0 breq L2
000A .dbline 14
000A ; D12_DATA=1;
000A 81E0 ldi R24,1
000C 8093007C sts 31744,R24
0010 03C0 xjmp L3
0012 L2:
0012 .dbline 16
0012 2224 clr R2
0014 2092007C sts 31744,R2
0018 L3:
0018 .dbline -2
0018 .dbline 17
0018 ; else
0018 ; D12_DATA=0;
0018 ; }
0018 L1:
0018 .dbline 0 ; func end
0018 0895 ret
001A .dbsym r bEnable 16 c
001A .dbend
001A .dbfunc e D12_SetAddressEnable _D12_SetAddressEnable fV
001A ; bEnable -> R18
001A ; bAddress -> R16
.even
001A _D12_SetAddressEnable::
001A .dbline -1
001A .dbline 19
001A ; void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
001A ; {
001A .dbline 20
001A ; D12_COMMAND=0xD0;
001A 80ED ldi R24,208
001C 8093017C sts 31745,R24
0020 .dbline 21
0020 ; if(bEnable)
0020 2223 tst R18
0022 09F0 breq L5
0024 .dbline 22
0024 ; bAddress|=0x80;
0024 0068 ori R16,128
0026 L5:
0026 .dbline 23
0026 ; D12_DATA=bAddress;
0026 0093007C sts 31744,R16
002A .dbline -2
002A .dbline 24
002A ; }
002A L4:
002A .dbline 0 ; func end
002A 0895 ret
002C .dbsym r bEnable 18 c
002C .dbsym r bAddress 16 c
002C .dbend
002C .dbfunc e D12_SetMode _D12_SetMode fV
002C ; bClkDiv -> R18
002C ; bConfig -> R16
.even
002C _D12_SetMode::
002C .dbline -1
002C .dbline 26
002C ; void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
002C ; {
002C .dbline 27
002C ; D12_COMMAND=0xF3;
002C 83EF ldi R24,243
002E 8093017C sts 31745,R24
0032 .dbline 28
0032 ; D12_DATA=bConfig;
0032 0093007C sts 31744,R16
0036 .dbline 29
0036 ; cwait1;
0036 0000 nop
0038 .dbline 29
0038 0000 nop
003A .dbline 30
003A ; D12_DATA=bClkDiv;
003A 2093007C sts 31744,R18
003E .dbline -2
003E .dbline 31
003E ; }
003E L7:
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbsym r bClkDiv 18 c
0040 .dbsym r bConfig 16 c
0040 .dbend
0040 .dbfunc e D12_SetDMA _D12_SetDMA fV
0040 ; bMode -> R16
.even
0040 _D12_SetDMA::
0040 .dbline -1
0040 .dbline 33
0040 ; void D12_SetDMA(unsigned char bMode)
0040 ; {
0040 .dbline 34
0040 ; D12_COMMAND=0xFB;
0040 8BEF ldi R24,251
0042 8093017C sts 31745,R24
0046 .dbline 35
0046 ; cwait;
0046 0000 nop
0048 .dbline 36
0048 ; D12_DATA=bMode;
0048 0093007C sts 31744,R16
004C .dbline -2
004C .dbline 37
004C ; }
004C L8:
004C .dbline 0 ; func end
004C 0895 ret
004E .dbsym r bMode 16 c
004E .dbend
004E .dbfunc e D12_ReadInterruptRegister _D12_ReadInterruptRegister fc
004E ; j -> R18
004E ; bl -> R16
.even
004E _D12_ReadInterruptRegister::
004E .dbline -1
004E .dbline 39
004E ; unsigned char D12_ReadInterruptRegister(void)
004E ; {
004E .dbline 42
004E ; unsigned char bl;
004E ; unsigned char j;
004E ; j=0;
004E 2227 clr R18
0050 .dbline 43
0050 ; D12_COMMAND=0xF4;
0050 84EF ldi R24,244
0052 8093017C sts 31745,R24
0056 .dbline 44
0056 ; cwait;
0056 0000 nop
0058 .dbline 45
0058 ; bl=D12_DATA;
0058 0091007C lds R16,31744
005C .dbline 46
005C ; cwait1;
005C 0000 nop
005E .dbline 46
005E 0000 nop
0060 .dbline 47
0060 ; j=D12_DATA;
0060 2091007C lds R18,31744
0064 .dbline 48
0064 ; return bl;
0064 .dbline -2
0064 L9:
0064 .dbline 0 ; func end
0064 0895 ret
0066 .dbsym r j 18 c
0066 .dbsym r bl 16 c
0066 .dbend
0066 .dbfunc e D12_SelectEndpoint _D12_SelectEndpoint fc
0066 ; c -> R20
0066 ; bEndp -> R16
.even
0066 _D12_SelectEndpoint::
0066 0E940000 xcall push_gset1
006A .dbline -1
006A .dbline 51
006A ; }
006A ; unsigned char D12_SelectEndpoint(unsigned char bEndp)
006A ; {
006A .dbline 53
006A ; unsigned char c;
006A ; D12_COMMAND=bEndp;
006A 0093017C sts 31745,R16
006E .dbline 54
006E ; cwait;
006E 0000 nop
0070 .dbline 55
0070 ; c=D12_DATA;
0070 4091007C lds R20,31744
0074 .dbline 56
0074 ; return c;
0074 042F mov R16,R20
0076 .dbline -2
0076 L10:
0076 0E940000 xcall pop_gset1
007A .dbline 0 ; func end
007A 0895 ret
007C .dbsym r c 20 c
007C .dbsym r bEndp 16 c
007C .dbend
007C .dbfunc e D12_ReadLastTransactionStatus _D12_ReadLastTransactionStatus fc
007C ; bEndp -> R16
.even
007C _D12_ReadLastTransactionStatus::
007C .dbline -1
007C .dbline 59
007C ; }
007C ; unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
007C ; {
007C .dbline 60
007C ; D12_COMMAND=0x40+bEndp;
007C 802F mov R24,R16
007E 805C subi R24,192 ; addi 64
0080 8093017C sts 31745,R24
0084 .dbline 61
0084 ; cwait;
0084 0000 nop
0086 .dbline 62
0086 ; return D12_DATA;
0086 0091007C lds R16,31744
008A .dbline -2
008A L11:
008A .dbline 0 ; func end
008A 0895 ret
008C .dbsym r bEndp 16 c
008C .dbend
008C .dbfunc e D12_ReadEndpointStatus _D12_ReadEndpointStatus fc
008C ; bEndp -> R16
.even
008C _D12_ReadEndpointStatus::
008C .dbline -1
008C .dbline 65
008C ; }
008C ; unsigned char D12_ReadEndpointStatus(unsigned char bEndp)
008C ; {
008C .dbline 66
008C ; D12_COMMAND=0x80+bEndp;
008C 802F mov R24,R16
008E 8058 subi R24,128 ; addi 128
0090 8093017C sts 31745,R24
0094 .dbline 67
0094 ; cwait;
0094 0000 nop
0096 .dbline 68
0096 ; return D12_DATA;
0096 0091007C lds R16,31744
009A .dbline -2
009A L12:
009A .dbline 0 ; func end
009A 0895 ret
009C .dbsym r bEndp 16 c
009C .dbend
009C .dbfunc e D12_SetEndpointStatus _D12_SetEndpointStatus fV
009C ; c -> <dead>
009C ; bStalled -> R18
009C ; bEndp -> R16
.even
009C _D12_SetEndpointStatus::
009C .dbline -1
009C .dbline 71
009C ; }
009C ; void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
009C ; {
009C .dbline 73
009C ; unsigned char c;
009C ; D12_COMMAND=0x40+bEndp;
009C 802F mov R24,R16
009E 805C subi R24,192 ; addi 64
00A0 8093017C sts 31745,R24
00A4 .dbline 74
00A4 ; cwait;
00A4 0000 nop
00A6 .dbline 75
00A6 ; D12_DATA=bStalled;
00A6 2093007C sts 31744,R18
00AA .dbline -2
00AA .dbline 76
00AA ; }
00AA L13:
00AA .dbline 0 ; func end
00AA 0895 ret
00AC .dbsym l c 1 c
00AC .dbsym r bStalled 18 c
00AC .dbsym r bEndp 16 c
00AC .dbend
00AC .dbfunc e D12_ReadEndpoint _D12_ReadEndpoint fc
00AC ; j -> R20
00AC ; i -> R22
00AC ; buf -> R10,R11
00AC ; len -> R18
00AC ; endp -> R16
.even
00AC _D12_ReadEndpoint::
00AC 0E940000 xcall push_gset3
00B0 AE80 ldd R10,y+6
00B2 BF80 ldd R11,y+7
00B4 .dbline -1
00B4 .dbline 79
00B4 ; unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len,
00B4 ; unsigned char * buf)
00B4 ; {
00B4 .dbline 81
00B4 ; unsigned char i,j;
00B4 ; D12_COMMAND=endp;
00B4 0093017C sts 31745,R16
00B8 .dbline 82
00B8 ; cwait;
00B8 0000 nop
00BA .dbline 83
00BA ; if((D12_DATA&D12_FULLEMPTY)==0)
00BA 2090007C lds R2,31744
00BE 20FC sbrc R2,0
00C0 02C0 rjmp L15
00C2 .dbline 84
00C2 ; return 0;
00C2 0027 clr R16
00C4 56C0 xjmp L14
00C6 L15:
00C6 .dbline 85
00C6 ; D12_COMMAND=(0x80+endp);
00C6 802F mov R24,R16
00C8 8058 subi R24,128 ; addi 128
00CA 8093017C sts 31745,R24
00CE .dbline 86
00CE ; cwait;
00CE 0000 nop
00D0 .dbline 87
00D0 ; i=D12_DATA;
00D0 6091007C lds R22,31744
00D4 .dbline 88
00D4 ; i=i&0x60;
00D4 6076 andi R22,96
00D6 .dbline 89
00D6 ; if(endp==2)
00D6 0230 cpi R16,2
00D8 A9F4 brne L17
00DA .dbline 90
00DA ; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -