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

📄 scsi.lis

📁 基于D12
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 J:\PDIUSBD12-Materials\富昌\优盘5.0\SCSI.C
 0000           _PageBuf::
 0000                   .blkb 512
 0200                   .dbsym e PageBuf _PageBuf A[512:512]c
 0200           _Bulk_Control_w::
 0200                   .blkb 10
 020A                   .dbstruct 0 10 _BULK_CONTROL
 020A                   .dbfield 0 Transfer_Length i
 020A                   .dbfield 2 CurrentBlock i
 020A                   .dbfield 4 CurrentPage c
 020A                   .dbfield 5 BeginPage c
 020A                   .dbfield 6 BufCount i
 020A                   .dbfield 8 ReservedPage i
 020A                   .dbend
 020A                   .dbsym e Bulk_Control_w _Bulk_Control_w S[_BULK_CONTROL]
 020A           _Bulk_Control_r::
 020A                   .blkb 10
 0214                   .dbsym e Bulk_Control_r _Bulk_Control_r S[_BULK_CONTROL]

⌨️ 快捷键说明

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