📄 scsi.lis
字号:
00A8 ; break;
00A8 11C0 xjmp L4
00AA L11:
00AA .dbline 93
00AA ; case SPC_CMD_FORMAT_CAPACITY:
00AA ; result=SPC_FormatCapacity();
00AA FCD0 xcall _SPC_FormatCapacity
00AC 402F mov R20,R16
00AE .dbline 94
00AE ; break;
00AE 0EC0 xjmp L4
00B0 L12:
00B0 .dbline 96
00B0 ; case SPC_CMD_TESTUNITREADY:
00B0 ; result=SPC_TestUnit();
00B0 01D1 xcall _SPC_TestUnit
00B2 402F mov R20,R16
00B4 .dbline 97
00B4 ; break;
00B4 0BC0 xjmp L4
00B6 L13:
00B6 .dbline 99
00B6 ; case RBC_CMD_VERIFY10:
00B6 ; result=RBC_Verify10();
00B6 07D1 xcall _RBC_Verify10
00B8 402F mov R20,R16
00BA .dbline 100
00BA ; break;
00BA 08C0 xjmp L4
00BC L14:
00BC .dbline 102
00BC ; case RBC_CMD_WRITE10:
00BC ; result=RBC_Write10();
00BC 0DD1 xcall _RBC_Write10
00BE 402F mov R20,R16
00C0 .dbline 103
00C0 ; break;
00C0 05C0 xjmp L4
00C2 L15:
00C2 .dbline 105
00C2 ; case SPC_CMD_PRVENTALLOWMEDIUMREMOVAL:
00C2 ; result=SPC_LockMedia();
00C2 4BD2 xcall _SPC_LockMedia
00C4 402F mov R20,R16
00C6 .dbline 106
00C6 ; break;
00C6 02C0 xjmp L4
00C8 L16:
00C8 L3:
00C8 .dbline 109
00C8 ; case SPC_CMD_RESERVE6:
00C8 ; default:
00C8 ; result=SPC_Reserve6();
00C8 51D2 xcall _SPC_Reserve6
00CA 402F mov R20,R16
00CC .dbline 110
00CC ; break;
00CC L4:
00CC .dbline 112
00CC ; }
00CC ; return result;
00CC 042F mov R16,R20
00CE .dbline -2
00CE L1:
00CE 0E940000 xcall pop_gset2
00D2 .dbline 0 ; func end
00D2 0895 ret
00D4 .dbsym r result 20 c
00D4 .dbend
00D4 .dbfunc e SPC_InQuiry _SPC_InQuiry fc
.even
00D4 _SPC_InQuiry::
00D4 .dbline -1
00D4 .dbline 116
00D4 ; #undef cdbGeneric
00D4 ; }
00D4 ; BOOLEAN SPC_InQuiry(void)
00D4 ; {
00D4 .dbline 117
00D4 ; Bulk_code_transmit((const unsigned char*)&inquiryData,
00D4 24E2 ldi R18,36
00D6 30E0 ldi R19,0
00D8 00E0 ldi R16,<_inquiryData
00DA 10E0 ldi R17,>_inquiryData
00DC 0E940000 xcall _Bulk_code_transmit
00E0 .dbline 119
00E0 ; sizeof(STD_INQUIRY_DATA));
00E0 ; return TRUE;
00E0 01E0 ldi R16,1
00E2 .dbline -2
00E2 L23:
00E2 .dbline 0 ; func end
00E2 0895 ret
00E4 .dbend
00E4 .dbfunc e SPC_ModeSense _SPC_ModeSense fc
.even
00E4 _SPC_ModeSense::
00E4 .dbline -1
00E4 .dbline 122
00E4 ; }
00E4 ; BOOLEAN SPC_ModeSense(void)
00E4 ; {
00E4 .dbline 123
00E4 ; Bulk_code_transmit((const unsigned char*)&ModeData,
00E4 24E0 ldi R18,4
00E6 30E0 ldi R19,0
00E8 00E0 ldi R16,<_ModeData
00EA 10E0 ldi R17,>_ModeData
00EC 0E940000 xcall _Bulk_code_transmit
00F0 .dbline 125
00F0 ; sizeof(MODE_DATA));
00F0 ; return TRUE;
00F0 01E0 ldi R16,1
00F2 .dbline -2
00F2 L24:
00F2 .dbline 0 ; func end
00F2 0895 ret
00F4 .dbend
00F4 .dbfunc e RBC_Read10 _RBC_Read10 fc
00F4 ; Logical_Block_Address -> y+2
.even
00F4 _RBC_Read10::
00F4 0E940000 xcall push_gset2
00F8 2697 sbiw R28,6
00FA .dbline -1
00FA .dbline 128
00FA ; }
00FA ; BOOLEAN RBC_Read10(void)
00FA ; {
00FA .dbline 131
00FA ; #define cdbRead10 Bulk_Block.cbw.CBWCB.RbcCdb_Read10
00FA ; unsigned long Logical_Block_Address;
00FA ; Logical_Block_Address=cdbRead10.LogicalBlockAddress[0]*0x1000000;
00FA 20901100 lds R2,_Bulk_Block+15+2
00FE 3324 clr R3
0100 4424 clr R4
0102 5524 clr R5
0104 40E0 ldi R20,0
0106 50E0 ldi R21,0
0108 60E0 ldi R22,0
010A 71E0 ldi R23,1
010C 5A92 st -y,R5
010E 4A92 st -y,R4
0110 3A92 st -y,R3
0112 2A92 st -y,R2
0114 8A01 movw R16,R20
0116 9B01 movw R18,R22
0118 0E940000 xcall empy32s
011C FE01 movw R30,R28
011E 0283 std z+2,R16
0120 1383 std z+3,R17
0122 2483 std z+4,R18
0124 3583 std z+5,R19
0126 .dbline 132
0126 ; Logical_Block_Address+=cdbRead10.LogicalBlockAddress[1]*0x10000;
0126 20901200 lds R2,_Bulk_Block+15+2+1
012A 3324 clr R3
012C 4424 clr R4
012E 5524 clr R5
0130 40E0 ldi R20,0
0132 50E0 ldi R21,0
0134 61E0 ldi R22,1
0136 70E0 ldi R23,0
0138 5A92 st -y,R5
013A 4A92 st -y,R4
013C 3A92 st -y,R3
013E 2A92 st -y,R2
0140 8A01 movw R16,R20
0142 9B01 movw R18,R22
0144 0E940000 xcall empy32s
0148 FE01 movw R30,R28
014A 2280 ldd R2,z+2
014C 3380 ldd R3,z+3
014E 4480 ldd R4,z+4
0150 5580 ldd R5,z+5
0152 200E add R2,R16
0154 311E adc R3,R17
0156 421E adc R4,R18
0158 531E adc R5,R19
015A FE01 movw R30,R28
015C 2282 std z+2,R2
015E 3382 std z+3,R3
0160 4482 std z+4,R4
0162 5582 std z+5,R5
0164 .dbline 133
0164 ; Logical_Block_Address+=cdbRead10.LogicalBlockAddress[2]*0x100;
0164 20911300 lds R18,_Bulk_Block+15+2+2
0168 3327 clr R19
016A 00E0 ldi R16,256
016C 11E0 ldi R17,1
016E 0E940000 xcall empy16s
0172 1801 movw R2,R16
0174 4424 clr R4
0176 37FC sbrc R3,7
0178 4094 com R4
017A 5524 clr R5
017C 47FC sbrc R4,7
017E 5094 com R5
0180 FE01 movw R30,R28
0182 6280 ldd R6,z+2
0184 7380 ldd R7,z+3
0186 8480 ldd R8,z+4
0188 9580 ldd R9,z+5
018A 620C add R6,R2
018C 731C adc R7,R3
018E 841C adc R8,R4
0190 951C adc R9,R5
0192 FE01 movw R30,R28
0194 6282 std z+2,R6
0196 7382 std z+3,R7
0198 8482 std z+4,R8
019A 9582 std z+5,R9
019C .dbline 134
019C ; Logical_Block_Address+=cdbRead10.LogicalBlockAddress[3];
019C 20901400 lds R2,_Bulk_Block+15+2+3
01A0 3324 clr R3
01A2 4424 clr R4
01A4 5524 clr R5
01A6 FE01 movw R30,R28
01A8 6280 ldd R6,z+2
01AA 7380 ldd R7,z+3
01AC 8480 ldd R8,z+4
01AE 9580 ldd R9,z+5
01B0 620C add R6,R2
01B2 731C adc R7,R3
01B4 841C adc R8,R4
01B6 951C adc R9,R5
01B8 FE01 movw R30,R28
01BA 6282 std z+2,R6
01BC 7382 std z+3,R7
01BE 8482 std z+4,R8
01C0 9582 std z+5,R9
01C2 .dbline 135
01C2 ; Bulk_Control_r.Transfer_Length=cdbRead10.TransferLength[0]*256+cdbRead10.TransferLength[1];
01C2 20911600 lds R18,_Bulk_Block+15+7
01C6 3327 clr R19
01C8 00E0 ldi R16,256
01CA 11E0 ldi R17,1
01CC 0E940000 xcall empy16s
01D0 1801 movw R2,R16
01D2 40901700 lds R4,_Bulk_Block+15+7+1
01D6 5524 clr R5
01D8 240C add R2,R4
01DA 351C adc R3,R5
01DC 30920B02 sts _Bulk_Control_r+1,R3
01E0 20920A02 sts _Bulk_Control_r,R2
01E4 .dbline 136
01E4 ; Bulk_Control_r.CurrentPage=Logical_Block_Address%0x20;
01E4 4FE1 ldi R20,31
01E6 50E0 ldi R21,0
01E8 60E0 ldi R22,0
01EA 70E0 ldi R23,0
01EC FE01 movw R30,R28
01EE 2280 ldd R2,z+2
01F0 3380 ldd R3,z+3
01F2 4480 ldd R4,z+4
01F4 5580 ldd R5,z+5
01F6 2422 and R2,R20
01F8 3522 and R3,R21
01FA 4622 and R4,R22
01FC 5722 and R5,R23
01FE 20920E02 sts _Bulk_Control_r+4,R2
0202 .dbline 137
0202 ; Bulk_Control_r.CurrentBlock=Logical_Block_Address/0x20;
0202 85E0 ldi R24,5
0204 90E0 ldi R25,0
0206 FE01 movw R30,R28
0208 2280 ldd R2,z+2
020A 3380 ldd R3,z+3
020C 4480 ldd R4,z+4
020E 5580 ldd R5,z+5
0210 8A93 st -y,R24
0212 8101 movw R16,R2
0214 9201 movw R18,R4
0216 0E940000 xcall lsr32
021A 10930D02 sts _Bulk_Control_r+2+1,R17
021E 00930C02 sts _Bulk_Control_r+2,R16
0222 .dbline 138
0222 ; ReadPage(Bulk_Control_r.CurrentBlock,Bulk_Control_r.CurrentPage,PageBuf);
0222 80E0 ldi R24,<_PageBuf
0224 90E0 ldi R25,>_PageBuf
0226 9983 std y+1,R25
0228 8883 std y+0,R24
022A 20910E02 lds R18,_Bulk_Control_r+4
022E 3327 clr R19
0230 0E940000 xcall _ReadPage
0234 .dbline 139
0234 ; Bulk_Control_r.Transfer_Length--;
0234 80910A02 lds R24,_Bulk_Control_r
0238 90910B02 lds R25,_Bulk_Control_r+1
023C 0197 sbiw R24,1
023E 90930B02 sts _Bulk_Control_r+1,R25
0242 80930A02 sts _Bulk_Control_r,R24
0246 .dbline 140
0246 ; Bulk_Control_r.CurrentPage++;
0246 80910E02 lds R24,_Bulk_Control_r+4
024A 8F5F subi R24,255 ; addi 1
024C 80930E02 sts _Bulk_Control_r+4,R24
0250 .dbline 141
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -