⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d12ci.lis

📁 采用Atmeag162单片机来制作的U盘程序源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00DA                   .dbline 91
 00DA           ;      if(i==0x60)
 00DA 6036              cpi R22,96
 00DC 51F4              brne L19
 00DE                   .dbline 92
 00DE           ;          bEPPflags.bits.ep1buf_full=1;
 00DE 80910000          lds R24,_bEPPflags
 00E2 90910100          lds R25,_bEPPflags+1
 00E6 9460              ori R25,4
 00E8 90930100          sts _bEPPflags+1,R25
 00EC 80930000          sts _bEPPflags,R24
 00F0 09C0              xjmp L20
 00F2           L19:
 00F2                   .dbline 94
 00F2           ;        else
 00F2           ;          bEPPflags.bits.ep1buf_full=0; 
 00F2 80910000          lds R24,_bEPPflags
 00F6 90910100          lds R25,_bEPPflags+1
 00FA 9B7F              andi R25,251
 00FC 90930100          sts _bEPPflags+1,R25
 0100 80930000          sts _bEPPflags,R24
 0104           L20:
 0104                   .dbline 95
 0104           ;    }
 0104           L17:
 0104                   .dbline 96
 0104           ;    if(endp==4)
 0104 0430              cpi R16,4
 0106 A9F4              brne L21
 0108                   .dbline 97
 0108           ;    {
 0108                   .dbline 98
 0108           ;      if(i==0x60)
 0108 6036              cpi R22,96
 010A 51F4              brne L23
 010C                   .dbline 99
 010C           ;          bEPPflags.bits.mainbuf_full=1;
 010C 80910000          lds R24,_bEPPflags
 0110 90910100          lds R25,_bEPPflags+1
 0114 9068              ori R25,128
 0116 90930100          sts _bEPPflags+1,R25
 011A 80930000          sts _bEPPflags,R24
 011E 09C0              xjmp L24
 0120           L23:
 0120                   .dbline 101
 0120           ;        else
 0120           ;          bEPPflags.bits.mainbuf_full=0; 
 0120 80910000          lds R24,_bEPPflags
 0124 90910100          lds R25,_bEPPflags+1
 0128 9F77              andi R25,127
 012A 90930100          sts _bEPPflags+1,R25
 012E 80930000          sts _bEPPflags,R24
 0132           L24:
 0132                   .dbline 102
 0132           ;    }          
 0132           L21:
 0132                   .dbline 103
 0132           ;    D12_COMMAND=0xF0;
 0132 80EF              ldi R24,240
 0134 8093017C          sts 31745,R24
 0138                   .dbline 104
 0138           ;    cwait;
 0138 0000              nop
 013A                   .dbline 105
 013A           ;    j=D12_DATA;
 013A 4091007C          lds R20,31744
 013E                   .dbline 106
 013E           ;    cwait1;
 013E 0000              nop
 0140                   .dbline 106
 0140 0000              nop
 0142                   .dbline 107
 0142           ;    j=D12_DATA;
 0142 4091007C          lds R20,31744
 0146                   .dbline 108
 0146           ;    if(j>len)j=len;
 0146 2417              cp R18,R20
 0148 08F4              brsh L25
 014A                   .dbline 108
 014A 422F              mov R20,R18
 014C           L25:
 014C                   .dbline 109
 014C           ;    for(i=0;i<j;i++)
 014C 6627              clr R22
 014E 0AC0              xjmp L30
 0150           L27:
 0150                   .dbline 110
 0150                   .dbline 111
 0150 E62F              mov R30,R22
 0152 FF27              clr R31
 0154 EA0D              add R30,R10
 0156 FB1D              adc R31,R11
 0158 2090007C          lds R2,31744
 015C 2082              std z+0,R2
 015E                   .dbline 112
 015E 0000              nop
 0160                   .dbline 112
 0160 0000              nop
 0162                   .dbline 113
 0162           L28:
 0162                   .dbline 109
 0162 6395              inc R22
 0164           L30:
 0164                   .dbline 109
 0164 6417              cp R22,R20
 0166 A0F3              brlo L27
 0168                   .dbline 114
 0168           ;    {
 0168           ;        *(buf+i)=D12_DATA;
 0168           ;          cwait1;
 0168           ;    }   
 0168           ;    D12_COMMAND=0xF2;
 0168 82EF              ldi R24,242
 016A 8093017C          sts 31745,R24
 016E                   .dbline 115
 016E           ;    cwait;
 016E 0000              nop
 0170                   .dbline 116
 0170           ;    return j;
 0170 042F              mov R16,R20
 0172                   .dbline -2
 0172           L14:
 0172 0E940000          xcall pop_gset3
 0176                   .dbline 0 ; func end
 0176 0895              ret
 0178                   .dbsym r j 20 c
 0178                   .dbsym r i 22 c
 0178                   .dbsym r buf 10 pc
 0178                   .dbsym r len 18 c
 0178                   .dbsym r endp 16 c
 0178                   .dbend
 0178                   .dbfunc e D12_WriteEndpoint _D12_WriteEndpoint fc
 0178           ;              i -> R20
 0178           ;            buf -> R22,R23
 0178           ;            len -> R18
 0178           ;           endp -> R16
                        .even
 0178           _D12_WriteEndpoint::
 0178 0E940000          xcall push_gset2
 017C 6C81              ldd R22,y+4
 017E 7D81              ldd R23,y+5
 0180                   .dbline -1
 0180                   .dbline 120
 0180           ; }
 0180           ; unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len,
 0180           ;                                 unsigned char * buf)
 0180           ; {
 0180                   .dbline 122
 0180           ;    unsigned char i;   
 0180           ;    D12_COMMAND=endp;
 0180 0093017C          sts 31745,R16
 0184                   .dbline 123
 0184           ;    D12_DATA;
 0184                   .dbline 124
 0184           ;    D12_COMMAND=0xF0;
 0184 80EF              ldi R24,240
 0186 8093017C          sts 31745,R24
 018A                   .dbline 125
 018A           ;    cwait;
 018A 0000              nop
 018C                   .dbline 126
 018C           ;    D12_DATA=0;
 018C 2224              clr R2
 018E 2092007C          sts 31744,R2
 0192                   .dbline 127
 0192           ;    cwait1;
 0192 0000              nop
 0194                   .dbline 127
 0194 0000              nop
 0196                   .dbline 128
 0196           ;    D12_DATA=len;
 0196 2093007C          sts 31744,R18
 019A                   .dbline 129
 019A           ;    for(i=0;i<len;i++)
 019A 4427              clr R20
 019C 0AC0              xjmp L35
 019E           L32:
 019E                   .dbline 130
 019E                   .dbline 131
 019E E42F              mov R30,R20
 01A0 FF27              clr R31
 01A2 E60F              add R30,R22
 01A4 F71F              adc R31,R23
 01A6 2080              ldd R2,z+0
 01A8 2092007C          sts 31744,R2
 01AC                   .dbline 132
 01AC 0000              nop
 01AE                   .dbline 132
 01AE 0000              nop
 01B0                   .dbline 133
 01B0           L33:
 01B0                   .dbline 129
 01B0 4395              inc R20
 01B2           L35:
 01B2                   .dbline 129
 01B2 4217              cp R20,R18
 01B4 A0F3              brlo L32
 01B6                   .dbline 134
 01B6           ;    {
 01B6           ;        D12_DATA=*(buf+i);
 01B6           ;          cwait1;
 01B6           ;    }     
 01B6           ;    D12_COMMAND=0xFA;
 01B6 8AEF              ldi R24,250
 01B8 8093017C          sts 31745,R24
 01BC                   .dbline 135
 01BC           ;    cwait;
 01BC 0000              nop
 01BE                   .dbline 136
 01BE           ;    return len;
 01BE 022F              mov R16,R18
 01C0                   .dbline -2
 01C0           L31:
 01C0 0E940000          xcall pop_gset2
 01C4                   .dbline 0 ; func end
 01C4 0895              ret
 01C6                   .dbsym r i 20 c
 01C6                   .dbsym r buf 22 pc
 01C6                   .dbsym r len 18 c
 01C6                   .dbsym r endp 16 c
 01C6                   .dbend
 01C6                   .dbfunc e D12_CWriteEndpoint _D12_CWriteEndpoint fc
 01C6           ;              i -> R20
 01C6           ;            buf -> R22,R23
 01C6           ;            len -> R18
 01C6           ;           endp -> R16
                        .even
 01C6           _D12_CWriteEndpoint::
 01C6 0E940000          xcall push_gset2
 01CA 6C81              ldd R22,y+4
 01CC 7D81              ldd R23,y+5
 01CE                   .dbline -1
 01CE                   .dbline 140
 01CE           ; }
 01CE           ; unsigned char D12_CWriteEndpoint(unsigned char endp, unsigned char len,
 01CE           ;                                  const unsigned char * buf)
 01CE           ; {
 01CE                   .dbline 142
 01CE           ;    unsigned char i;   
 01CE           ;    D12_COMMAND=endp;
 01CE 0093017C          sts 31745,R16
 01D2                   .dbline 143
 01D2           ;    cwait;
 01D2 0000              nop
 01D4                   .dbline 144
 01D4           ;    D12_DATA;
 01D4                   .dbline 145
 01D4           ;    cwait;
 01D4 0000              nop
 01D6                   .dbline 146
 01D6           ;    D12_COMMAND=0xF0;
 01D6 80EF              ldi R24,240
 01D8 8093017C          sts 31745,R24
 01DC                   .dbline 147
 01DC           ;    cwait;
 01DC 0000              nop
 01DE                   .dbline 148
 01DE           ;    D12_DATA=0;
 01DE 2224              clr R2
 01E0 2092007C          sts 31744,R2
 01E4                   .dbline 149
 01E4           ;    cwait1;
 01E4 0000              nop
 01E6                   .dbline 149
 01E6 0000              nop
 01E8                   .dbline 150
 01E8           ;    D12_DATA=len;
 01E8 2093007C          sts 31744,R18
 01EC                   .dbline 151
 01EC           ;    for(i=0;i<len;i++)
 01EC 4427              clr R20
 01EE 0AC0              xjmp L40
 01F0           L37:
 01F0                   .dbline 152
 01F0                   .dbline 153
 01F0 E42F              mov R30,R20
 01F2 FF27              clr R31
 01F4 E60F              add R30,R22
 01F6 F71F              adc R31,R23
 01F8 E491              lpm R30,Z
 01FA E093007C          sts 31744,R30
 01FE                   .dbline 154
 01FE 0000              nop
 0200                   .dbline 154
 0200 0000              nop
 0202                   .dbline 155
 0202           L38:
 0202                   .dbline 151
 0202 4395              inc R20
 0204           L40:
 0204                   .dbline 151
 0204 4217              cp R20,R18
 0206 A0F3              brlo L37
 0208                   .dbline 156
 0208           ;    {
 0208           ;       D12_DATA=*(buf+i);
 0208           ;         cwait1;
 0208           ;    }    
 0208           ;    D12_COMMAND=0xFA;
 0208 8AEF              ldi R24,250
 020A 8093017C          sts 31745,R24
 020E                   .dbline 157
 020E           ;    return len;
 020E 022F              mov R16,R18
 0210                   .dbline -2
 0210           L36:
 0210 0E940000          xcall pop_gset2
 0214                   .dbline 0 ; func end
 0214 0895              ret
 0216                   .dbsym r i 20 c
 0216                   .dbsym r buf 22 pkc
 0216                   .dbsym r len 18 c
 0216                   .dbsym r endp 16 c
 0216                   .dbend
 0216                   .dbfunc e D12_AcknowledgeEndpoint _D12_AcknowledgeEndpoint fV
 0216           ;           endp -> R16
                        .even
 0216           _D12_AcknowledgeEndpoint::
 0216                   .dbline -1
 0216                   .dbline 160
 0216                   .dbline 161
 0216 0093017C          sts 31745,R16
 021A                   .dbline 162
 021A 0000              nop
 021C                   .dbline 163
 021C 81EF              ldi R24,241
 021E 8093017C          sts 31745,R24
 0222                   .dbline 164
 0222 0023              tst R16
 0224 19F4              brne L42
 0226                   .dbline 165
 0226 82EF              ldi R24,242
 0228 8093017C          sts 31745,R24
 022C           L42:
 022C                   .dbline -2
 022C                   .dbline 166
 022C           ; }
 022C           ; void D12_AcknowledgeEndpoint(unsigned char endp)
 022C           ; {
 022C           ;    D12_COMMAND=endp;
 022C           ;    cwait;
 022C           ;    D12_COMMAND=0xF1;
 022C           ;    if(endp==0)
 022C           ;       D12_COMMAND=0xF2; 
 022C           ; }
 022C           L41:
 022C                   .dbline 0 ; func end
 022C 0895              ret
 022E                   .dbsym r endp 16 c
 022E                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -