📄 scsi.lis
字号:
0250 ; Bulk_Control_r.BufCount=0;
0250 2224 clr R2
0252 3324 clr R3
0254 30921102 sts _Bulk_Control_r+6+1,R3
0258 20921002 sts _Bulk_Control_r+6,R2
025C .dbline 142
025C ; bEPPflags.bits.bulk_state=BULK_DATA_TRANS;
025C 80910200 lds R24,_bEPPflags+2
0260 887F andi R24,248
0262 8160 ori R24,1
0264 80930200 sts _bEPPflags+2,R24
0268 .dbline 143
0268 ; Bulk_ErrorHandler(CSW_GOOD,CBW_bCBWCBLength);
0268 20910800 lds R18,_Bulk_Block+8
026C 30910900 lds R19,_Bulk_Block+8+1
0270 0027 clr R16
0272 0E940000 xcall _Bulk_ErrorHandler
0276 .dbline 144
0276 ; D12_WriteEndpoint(5,EP2_PACKET_SIZE,PageBuf);
0276 80E0 ldi R24,<_PageBuf
0278 90E0 ldi R25,>_PageBuf
027A 9983 std y+1,R25
027C 8883 std y+0,R24
027E 20E4 ldi R18,64
0280 30E0 ldi R19,0
0282 05E0 ldi R16,5
0284 10E0 ldi R17,0
0286 0E940000 xcall _D12_WriteEndpoint
028A .dbline 145
028A ; return TRUE;
028A 01E0 ldi R16,1
028C .dbline -2
028C L25:
028C 2696 adiw R28,6
028E 0E940000 xcall pop_gset2
0292 .dbline 0 ; func end
0292 0895 ret
0294 .dbsym l Logical_Block_Address 2 l
0294 .dbend
0294 .dbfunc e RBC_ReadCapacity _RBC_ReadCapacity fc
.even
0294 _RBC_ReadCapacity::
0294 .dbline -1
0294 .dbline 149
0294 ; #undef cdbRead10
0294 ; }
0294 ; BOOLEAN RBC_ReadCapacity(void)
0294 ; {
0294 .dbline 150
0294 ; Bulk_code_transmit((const unsigned char*)&ReadCapacityData,
0294 28E0 ldi R18,8
0296 30E0 ldi R19,0
0298 00E0 ldi R16,<_ReadCapacityData
029A 10E0 ldi R17,>_ReadCapacityData
029C 0E940000 xcall _Bulk_code_transmit
02A0 .dbline 152
02A0 ; sizeof(READ_CAPACITY_DATA));
02A0 ; return TRUE;
02A0 01E0 ldi R16,1
02A2 .dbline -2
02A2 L50:
02A2 .dbline 0 ; func end
02A2 0895 ret
02A4 .dbend
02A4 .dbfunc e SPC_FormatCapacity _SPC_FormatCapacity fc
.even
02A4 _SPC_FormatCapacity::
02A4 .dbline -1
02A4 .dbline 155
02A4 ; }
02A4 ; BOOLEAN SPC_FormatCapacity(void)
02A4 ; {
02A4 .dbline 156
02A4 ; Bulk_code_transmit((const unsigned char*)&CapacitylistHead,
02A4 2CE0 ldi R18,12
02A6 30E0 ldi R19,0
02A8 00E0 ldi R16,<_CapacitylistHead
02AA 10E0 ldi R17,>_CapacitylistHead
02AC 0E940000 xcall _Bulk_code_transmit
02B0 .dbline 158
02B0 ; CAPACITY_LIST_LENGTH);
02B0 ; return TRUE;
02B0 01E0 ldi R16,1
02B2 .dbline -2
02B2 L51:
02B2 .dbline 0 ; func end
02B2 0895 ret
02B4 .dbend
02B4 .dbfunc e SPC_TestUnit _SPC_TestUnit fc
.even
02B4 _SPC_TestUnit::
02B4 .dbline -1
02B4 .dbline 161
02B4 ; }
02B4 ; BOOLEAN SPC_TestUnit(void)
02B4 ; {
02B4 .dbline 162
02B4 ; Bulk_ErrorHandler(CSW_GOOD,0);
02B4 2227 clr R18
02B6 3327 clr R19
02B8 0027 clr R16
02BA 0E940000 xcall _Bulk_ErrorHandler
02BE .dbline 163
02BE ; Bulk_CSWHandler();
02BE 0E940000 xcall _Bulk_CSWHandler
02C2 .dbline 164
02C2 ; return TRUE;
02C2 01E0 ldi R16,1
02C4 .dbline -2
02C4 L52:
02C4 .dbline 0 ; func end
02C4 0895 ret
02C6 .dbend
02C6 .dbfunc e RBC_Verify10 _RBC_Verify10 fc
.even
02C6 _RBC_Verify10::
02C6 .dbline -1
02C6 .dbline 167
02C6 ; }
02C6 ; BOOLEAN RBC_Verify10(void)
02C6 ; {
02C6 .dbline 168
02C6 ; Bulk_ErrorHandler(CSW_GOOD,0);
02C6 2227 clr R18
02C8 3327 clr R19
02CA 0027 clr R16
02CC 0E940000 xcall _Bulk_ErrorHandler
02D0 .dbline 169
02D0 ; Bulk_CSWHandler();
02D0 0E940000 xcall _Bulk_CSWHandler
02D4 .dbline 170
02D4 ; return TRUE;
02D4 01E0 ldi R16,1
02D6 .dbline -2
02D6 L53:
02D6 .dbline 0 ; func end
02D6 0895 ret
02D8 .dbend
02D8 .dbfunc e RBC_Write10 _RBC_Write10 fc
02D8 ; pageNum -> y+6
02D8 ; Logical_Block_Address -> y+2
02D8 ; blockNum -> R12,R13
02D8 ; j -> R14
02D8 ; i -> R10
.even
02D8 _RBC_Write10::
02D8 0E940000 xcall push_gset5
02DC 2797 sbiw R28,7
02DE .dbline -1
02DE .dbline 173
02DE ; }
02DE ; BOOLEAN RBC_Write10(void)
02DE ; {
02DE .dbline 178
02DE ; #define cdbWrite10 Bulk_Block.cbw.CBWCB.RbcCdb_Write10
02DE ; unsigned char i,j,pageNum;
02DE ; unsigned int blockNum;
02DE ; unsigned long Logical_Block_Address;
02DE ; Logical_Block_Address=cdbWrite10.LogicalBlockAddress[0]*0x1000000;
02DE 20901100 lds R2,_Bulk_Block+15+2
02E2 3324 clr R3
02E4 4424 clr R4
02E6 5524 clr R5
02E8 40E0 ldi R20,0
02EA 50E0 ldi R21,0
02EC 60E0 ldi R22,0
02EE 71E0 ldi R23,1
02F0 5A92 st -y,R5
02F2 4A92 st -y,R4
02F4 3A92 st -y,R3
02F6 2A92 st -y,R2
02F8 8A01 movw R16,R20
02FA 9B01 movw R18,R22
02FC 0E940000 xcall empy32s
0300 FE01 movw R30,R28
0302 0283 std z+2,R16
0304 1383 std z+3,R17
0306 2483 std z+4,R18
0308 3583 std z+5,R19
030A .dbline 179
030A ; Logical_Block_Address+=cdbWrite10.LogicalBlockAddress[1]*0x10000;
030A 20901200 lds R2,_Bulk_Block+15+2+1
030E 3324 clr R3
0310 4424 clr R4
0312 5524 clr R5
0314 40E0 ldi R20,0
0316 50E0 ldi R21,0
0318 61E0 ldi R22,1
031A 70E0 ldi R23,0
031C 5A92 st -y,R5
031E 4A92 st -y,R4
0320 3A92 st -y,R3
0322 2A92 st -y,R2
0324 8A01 movw R16,R20
0326 9B01 movw R18,R22
0328 0E940000 xcall empy32s
032C FE01 movw R30,R28
032E 2280 ldd R2,z+2
0330 3380 ldd R3,z+3
0332 4480 ldd R4,z+4
0334 5580 ldd R5,z+5
0336 200E add R2,R16
0338 311E adc R3,R17
033A 421E adc R4,R18
033C 531E adc R5,R19
033E FE01 movw R30,R28
0340 2282 std z+2,R2
0342 3382 std z+3,R3
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -