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

📄 scsi.lis

📁 基于D12
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -