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

📄 scsi.lis

📁 采用Atmeag162单片机来制作的U盘程序源码
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0344 4482              std z+4,R4
 0346 5582              std z+5,R5
 0348                   .dbline 180
 0348           ;   Logical_Block_Address+=cdbWrite10.LogicalBlockAddress[2]*0x100;
 0348 20911300          lds R18,_Bulk_Block+15+2+2
 034C 3327              clr R19
 034E 00E0              ldi R16,256
 0350 11E0              ldi R17,1
 0352 0E940000          xcall empy16s
 0356 1801              movw R2,R16
 0358 4424              clr R4
 035A 37FC              sbrc R3,7
 035C 4094              com R4
 035E 5524              clr R5
 0360 47FC              sbrc R4,7
 0362 5094              com R5
 0364 FE01              movw R30,R28
 0366 6280              ldd R6,z+2
 0368 7380              ldd R7,z+3
 036A 8480              ldd R8,z+4
 036C 9580              ldd R9,z+5
 036E 620C              add R6,R2
 0370 731C              adc R7,R3
 0372 841C              adc R8,R4
 0374 951C              adc R9,R5
 0376 FE01              movw R30,R28
 0378 6282              std z+2,R6
 037A 7382              std z+3,R7
 037C 8482              std z+4,R8
 037E 9582              std z+5,R9
 0380                   .dbline 181
 0380           ;   Logical_Block_Address+=cdbWrite10.LogicalBlockAddress[3];
 0380 20901400          lds R2,_Bulk_Block+15+2+3
 0384 3324              clr R3
 0386 4424              clr R4
 0388 5524              clr R5
 038A FE01              movw R30,R28
 038C 6280              ldd R6,z+2
 038E 7380              ldd R7,z+3
 0390 8480              ldd R8,z+4
 0392 9580              ldd R9,z+5
 0394 620C              add R6,R2
 0396 731C              adc R7,R3
 0398 841C              adc R8,R4
 039A 951C              adc R9,R5
 039C FE01              movw R30,R28
 039E 6282              std z+2,R6
 03A0 7382              std z+3,R7
 03A2 8482              std z+4,R8
 03A4 9582              std z+5,R9
 03A6                   .dbline 182
 03A6           ;   Bulk_Control_w.Transfer_Length=cdbWrite10.TransferLength[0]*256+cdbWrite10.TransferLength[1];
 03A6 20911600          lds R18,_Bulk_Block+15+7
 03AA 3327              clr R19
 03AC 00E0              ldi R16,256
 03AE 11E0              ldi R17,1
 03B0 0E940000          xcall empy16s
 03B4 1801              movw R2,R16
 03B6 40901700          lds R4,_Bulk_Block+15+7+1
 03BA 5524              clr R5
 03BC 240C              add R2,R4
 03BE 351C              adc R3,R5
 03C0 30920102          sts _Bulk_Control_w+1,R3
 03C4 20920002          sts _Bulk_Control_w,R2
 03C8                   .dbline 183
 03C8           ;   Bulk_Control_w.CurrentPage=Logical_Block_Address%32;
 03C8 4FE1              ldi R20,31
 03CA 50E0              ldi R21,0
 03CC 60E0              ldi R22,0
 03CE 70E0              ldi R23,0
 03D0 FE01              movw R30,R28
 03D2 2280              ldd R2,z+2
 03D4 3380              ldd R3,z+3
 03D6 4480              ldd R4,z+4
 03D8 5580              ldd R5,z+5
 03DA 2422              and R2,R20
 03DC 3522              and R3,R21
 03DE 4622              and R4,R22
 03E0 5722              and R5,R23
 03E2 20920402          sts _Bulk_Control_w+4,R2
 03E6                   .dbline 184
 03E6           ;   Bulk_Control_w.CurrentBlock=Logical_Block_Address/32;
 03E6 85E0              ldi R24,5
 03E8 90E0              ldi R25,0
 03EA FE01              movw R30,R28
 03EC 2280              ldd R2,z+2
 03EE 3380              ldd R3,z+3
 03F0 4480              ldd R4,z+4
 03F2 5580              ldd R5,z+5
 03F4 8A93              st -y,R24
 03F6 8101              movw R16,R2
 03F8 9201              movw R18,R4
 03FA 0E940000          xcall lsr32
 03FE 10930302          sts _Bulk_Control_w+2+1,R17
 0402 00930202          sts _Bulk_Control_w+2,R16
 0406                   .dbline 185
 0406           ;   Bulk_Control_w.BeginPage=Bulk_Control_w.CurrentPage;
 0406 20900402          lds R2,_Bulk_Control_w+4
 040A 20920502          sts _Bulk_Control_w+5,R2
 040E                   .dbline 186
 040E           ;   Bulk_Control_w.BufCount=0;
 040E 2224              clr R2
 0410 3324              clr R3
 0412 30920702          sts _Bulk_Control_w+6+1,R3
 0416 20920602          sts _Bulk_Control_w+6,R2
 041A                   .dbline 187
 041A           ;   bEPPflags.bits.bulk_state=BULK_DATA_RECIEVE;
 041A 80910200          lds R24,_bEPPflags+2
 041E 887F              andi R24,248
 0420 8460              ori R24,4
 0422 80930200          sts _bEPPflags+2,R24
 0426                   .dbline 188
 0426           ;   Bulk_ErrorHandler(CSW_GOOD,CBW_bCBWCBLength);
 0426 20910800          lds R18,_Bulk_Block+8
 042A 30910900          lds R19,_Bulk_Block+8+1
 042E 0027              clr R16
 0430 0E940000          xcall _Bulk_ErrorHandler
 0434                   .dbline 189
 0434           ;   pageNum=(Bulk_Control_w.BeginPage+Bulk_Control_w.Transfer_Length)%32;
 0434 20900002          lds R2,_Bulk_Control_w
 0438 30900102          lds R3,_Bulk_Control_w+1
 043C 80910502          lds R24,_Bulk_Control_w+5
 0440 9927              clr R25
 0442 820D              add R24,R2
 0444 931D              adc R25,R3
 0446 8F71              andi R24,31
 0448 9070              andi R25,0
 044A 8E83              std y+6,R24
 044C                   .dbline 190
 044C           ;   blockNum=(Bulk_Control_w.BeginPage+Bulk_Control_w.Transfer_Length)/32;
 044C 00910502          lds R16,_Bulk_Control_w+5
 0450 1127              clr R17
 0452 020D              add R16,R2
 0454 131D              adc R17,R3
 0456 25E0              ldi R18,5
 0458 30E0              ldi R19,0
 045A 0E940000          xcall lsr16
 045E 6801              movw R12,R16
 0460                   .dbline 191
 0460           ;   blockNum+=Bulk_Control_w.CurrentBlock;
 0460 20900202          lds R2,_Bulk_Control_w+2
 0464 30900302          lds R3,_Bulk_Control_w+2+1
 0468 C20C              add R12,R2
 046A D31C              adc R13,R3
 046C                   .dbline 192
 046C           ;   Erase_Cluster(CANCEL_BLOCK);
 046C 0FEF              ldi R16,2047
 046E 17E0              ldi R17,7
 0470 0E940000          xcall _Erase_Cluster
 0474                   .dbline 193
 0474           ;   if(blockNum==Bulk_Control_w.CurrentBlock)j=32;
 0474 20900202          lds R2,_Bulk_Control_w+2
 0478 30900302          lds R3,_Bulk_Control_w+2+1
 047C C214              cp R12,R2
 047E D304              cpc R13,R3
 0480 19F4              brne L81
 0482                   .dbline 193
 0482 80E2              ldi R24,32
 0484 E82E              mov R14,R24
 0486 02C0              xjmp L82
 0488           L81:
 0488                   .dbline 194
 0488           ;   else j=Bulk_Control_w.BeginPage;
 0488 E0900502          lds R14,_Bulk_Control_w+5
 048C           L82:
 048C                   .dbline 195
 048C           ;   for(i=0;i<j;i++)
 048C AA24              clr R10
 048E 17C0              xjmp L88
 0490           L85:
 0490                   .dbline 196
 0490                   .dbline 197
 0490 80E0              ldi R24,<_PageBuf
 0492 90E0              ldi R25,>_PageBuf
 0494 9983              std y+1,R25
 0496 8883              std y+0,R24
 0498 2A2D              mov R18,R10
 049A 3327              clr R19
 049C 00910202          lds R16,_Bulk_Control_w+2
 04A0 10910302          lds R17,_Bulk_Control_w+2+1
 04A4 0E940000          xcall _ReadPage
 04A8                   .dbline 198
 04A8 80E0              ldi R24,<_PageBuf
 04AA 90E0              ldi R25,>_PageBuf
 04AC 9983              std y+1,R25
 04AE 8883              std y+0,R24
 04B0 2A2D              mov R18,R10
 04B2 3327              clr R19
 04B4 0FEF              ldi R16,2047
 04B6 17E0              ldi R17,7
 04B8 0E940000          xcall _WritePage
 04BC                   .dbline 199
 04BC           L86:
 04BC                   .dbline 195
 04BC A394              inc R10
 04BE           L88:
 04BE                   .dbline 195
 04BE AE14              cp R10,R14
 04C0 38F3              brlo L85
 04C2                   .dbline 200
 04C2           ;   {
 04C2           ;     ReadPage(Bulk_Control_w.CurrentBlock,i,PageBuf);
 04C2           ;       WritePage(CANCEL_BLOCK,i,PageBuf);
 04C2           ;   }  
 04C2           ;   Erase_Cluster(Bulk_Control_w.CurrentBlock);
 04C2 00910202          lds R16,_Bulk_Control_w+2
 04C6 10910302          lds R17,_Bulk_Control_w+2+1
 04CA 0E940000          xcall _Erase_Cluster
 04CE                   .dbline 201
 04CE           ;   for(i=0;i<Bulk_Control_w.BeginPage;i++)
 04CE AA24              clr R10
 04D0 17C0              xjmp L94
 04D2           L91:
 04D2                   .dbline 202
 04D2                   .dbline 203
 04D2 80E0              ldi R24,<_PageBuf
 04D4 90E0              ldi R25,>_PageBuf
 04D6 9983              std y+1,R25
 04D8 8883              std y+0,R24
 04DA 2A2D              mov R18,R10
 04DC 3327              clr R19
 04DE 0FEF              ldi R16,2047
 04E0 17E0              ldi R17,7
 04E2 0E940000          xcall _ReadPage
 04E6                   .dbline 204
 04E6 80E0              ldi R24,<_PageBuf
 04E8 90E0              ldi R25,>_PageBuf
 04EA 9983              std y+1,R25
 04EC 8883              std y+0,R24
 04EE 2A2D              mov R18,R10
 04F0 3327              clr R19
 04F2 00910202          lds R16,_Bulk_Control_w+2
 04F6 10910302          lds R17,_Bulk_Control_w+2+1
 04FA 0E940000          xcall _WritePage
 04FE                   .dbline 205
 04FE           L92:
 04FE                   .dbline 201
 04FE A394              inc R10
 0500           L94:
 0500                   .dbline 201
 0500 20900502          lds R2,_Bulk_Control_w+5
 0504 A214              cp R10,R2
 0506 28F3              brlo L91
 0508                   .dbline 206
 0508           ;   {
 0508           ;      ReadPage(CANCEL_BLOCK,i,PageBuf);
 0508           ;        WritePage(Bulk_Control_w.CurrentBlock,i,PageBuf);
 0508           ;   }
 0508           ;   if(blockNum>Bulk_Control_w.CurrentBlock)
 0508 20900202          lds R2,_Bulk_Control_w+2
 050C 30900302          lds R3,_Bulk_Control_w+2+1
 0510 2C14              cp R2,R12
 0512 3D04              cpc R3,R13
 0514 E8F4              brsh L97
 0516                   .dbline 207
 0516           ;   {
 0516                   .dbline 208
 0516           ;      Erase_Cluster(CANCEL_BLOCK);
 0516 0FEF              ldi R16,2047
 0518 17E0              ldi R17,7
 051A 0E940000          xcall _Erase_Cluster
 051E                   .dbline 209
 051E           ;        for(i=pageNum;i<32;i++)
 051E AE80              ldd R10,y+6
 0520 14C0              xjmp L103
 0522           L100:
 0522                   .dbline 210
 0522                   .dbline 211
 0522 80E0              ldi R24,<_PageBuf
 0524 90E0              ldi R25,>_PageBuf
 0526 9983              std y+1,R25
 0528 8883              std y+0,R24
 052A 2A2D              mov R18,R10
 052C 3327              clr R19
 052E 8601              movw R16,R12
 0530 0E940000          xcall _ReadPage
 0534                   .dbline 212
 0534 80E0              ldi R24,<_PageBuf
 0536 90E0              ldi R25,>_PageBuf
 0538 9983              std y+1,R25
 053A 8883              std y+0,R24
 053C 2A2D              mov R18,R10
 053E 3327              clr R19
 0540 0FEF              ldi R16,2047
 0542 17E0              ldi R17,7
 0544 0E940000          xcall _WritePage
 0548                   .dbline 213
 0548           L101:
 0548                   .dbline 209
 0548 A394              inc R10
 054A           L103:
 054A                   .dbline 209
 054A 8A2D              mov R24,R10
 054C 8032              cpi R24,32
 054E 48F3              brlo L100
 0550                   .dbline 214
 0550           ;      {
 0550           ;         ReadPage(blockNum,i,PageBuf);
 0550           ;           WritePage(CANCEL_BLOCK,i,PageBuf);
 0550           ;      }
 0550           ;   }  
 0550           L97:
 0550                   .dbline 215
 0550           ;   return TRUE;
 0550 01E0              ldi R16,1
 0552                   .dbline -2
 0552           L54:
 0552 2796              adiw R28,7
 0554 0E940000          xcall pop_gset5
 0558                   .dbline 0 ; func end
 0558 0895              ret
 055A                   .dbsym l pageNum 6 c
 055A                   .dbsym l Logical_Block_Address 2 l
 055A                   .dbsym r blockNum 12 i
 055A                   .dbsym r j 14 c
 055A                   .dbsym r i 10 c
 055A                   .dbend
 055A                   .dbfunc e SPC_LockMedia _SPC_LockMedia fc
                        .even
 055A           _SPC_LockMedia::
 055A                   .dbline -1
 055A                   .dbline 219
 055A           ; #undef  cdbWrite10
 055A           ; }
 055A           ; BOOLEAN  SPC_LockMedia(void)
 055A           ; {
 055A                   .dbline 220
 055A           ;   Bulk_ErrorHandler(CSW_GOOD,0); 
 055A 2227              clr R18
 055C 3327              clr R19
 055E 0027              clr R16
 0560 0E940000          xcall _Bulk_ErrorHandler
 0564                   .dbline 221
 0564           ;   Bulk_CSWHandler();
 0564 0E940000          xcall _Bulk_CSWHandler
 0568                   .dbline 222
 0568           ;   return TRUE;
 0568 01E0              ldi R16,1
 056A                   .dbline -2
 056A           L104:
 056A                   .dbline 0 ; func end
 056A 0895              ret
 056C                   .dbend
 056C                   .dbfunc e SPC_Reserve6 _SPC_Reserve6 fc
                        .even
 056C           _SPC_Reserve6::
 056C                   .dbline -1
 056C                   .dbline 225
 056C           ; }
 056C           ; BOOLEAN  SPC_Reserve6(void)
 056C           ; {
 056C                   .dbline 226
 056C           ;   Bulk_ErrorHandler(CSW_FAIL,0); 
 056C 2227              clr R18
 056E 3327              clr R19
 0570 01E0              ldi R16,1
 0572 0E940000          xcall _Bulk_ErrorHandler
 0576                   .dbline 227
 0576           ;   Bulk_CSWHandler();
 0576 0E940000          xcall _Bulk_CSWHandler
 057A                   .dbline 228
 057A           ;   return TRUE;
 057A 01E0              ldi R16,1
 057C                   .dbline -2
 057C           L105:
 057C                   .dbline 0 ; func end
 057C 0895              ret
 057E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\AvrUSB\SCSI.C
 0000           _PageBuf::
 0000                   .blkb 512
 0200                   .dbsym e PageBuf _PageBuf A[512:512]c
 0200           _Bulk_Control_w::
 0200                   .blkb 10
 020A                   .dbsym e Bulk_Control_w _Bulk_Control_w X
 020A           _Bulk_Control_r::
 020A                   .blkb 10
 0214                   .dbsym e Bulk_Control_r _Bulk_Control_r X

⌨️ 快捷键说明

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