📄 bulkonly.lis
字号:
0130 .dbline -2
0130 L8:
0130 2296 adiw R28,2
0132 0E940000 xcall pop_gset4
0136 .dbline 0 ; func end
0136 0895 ret
0138 .dbsym r len 12 s
0138 .dbsym r pRomData 10 pkc
0138 .dbend
0138 .dbfunc e IsCBWValid _IsCBWValid fc
.even
0138 _IsCBWValid::
0138 0E940000 xcall push_gset2
013C .dbline -1
013C .dbline 62
013C ; else
013C ; {
013C ; D12_CWriteEndpoint(5,ControlData.wLength,pRomData);
013C ; ControlData.wCount+=ControlData.wLength;
013C ; bEPPflags.bits.bulk_state=BULK_DATA_END;
013C ; }
013C ; }
013C ; BOOLEAN IsCBWValid(void)
013C ; {
013C .dbline 63
013C ; if((Bulk_CBW.dCBWSignature==CBW_SIGNATURE)&&
013C 45E5 ldi R20,85
013E 53E5 ldi R21,83
0140 62E4 ldi R22,66
0142 73E4 ldi R23,67
0144 40900200 lds R4,_Bulk_Block+2
0148 50900300 lds R5,_Bulk_Block+2+1
014C 20900000 lds R2,_Bulk_Block
0150 30900100 lds R3,_Bulk_Block+1
0154 2416 cp R2,R20
0156 3506 cpc R3,R21
0158 4606 cpc R4,R22
015A 5706 cpc R5,R23
015C 61F4 brne L30
015E 81E0 ldi R24,1
0160 20900D00 lds R2,_Bulk_Block+13
0164 8215 cp R24,R2
0166 38F0 brlo L30
0168 80E1 ldi R24,16
016A 20900E00 lds R2,_Bulk_Block+14
016E 8215 cp R24,R2
0170 10F0 brlo L30
0172 .dbline 66
0172 ; (Bulk_CBW.bCBWLUN<=1)&&
0172 ; (Bulk_CBW.bCBWCBLength<=MAX_CDBLEN))
0172 ; return TRUE;
0172 01E0 ldi R16,1
0174 01C0 xjmp L29
0176 L30:
0176 .dbline 68
0176 ; else
0176 ; return FALSE;
0176 0027 clr R16
0178 .dbline -2
0178 L29:
0178 0E940000 xcall pop_gset2
017C .dbline 0 ; func end
017C 0895 ret
017E .dbend
017E .dbfunc e Bulk_ErrorHandler _Bulk_ErrorHandler fV
017E ; wByteCount -> R18,R19
017E ; CSWStatus -> R16
.even
017E _Bulk_ErrorHandler::
017E 0E940000 xcall push_gset2
0182 .dbline -1
0182 .dbline 71
0182 ; }
0182 ; void Bulk_ErrorHandler(unsigned char CSWStatus,unsigned int wByteCount)
0182 ; {
0182 .dbline 72
0182 ; Bulk_CSW.dCSWDataResidue=Bulk_CBW.dCBWDataTransferLength-wByteCount;
0182 1901 movw R2,R18
0184 4424 clr R4
0186 5524 clr R5
0188 80900A00 lds R8,_Bulk_Block+8+2
018C 90900B00 lds R9,_Bulk_Block+8+2+1
0190 60900800 lds R6,_Bulk_Block+8
0194 70900900 lds R7,_Bulk_Block+8+1
0198 6218 sub R6,R2
019A 7308 sbc R7,R3
019C 8408 sbc R8,R4
019E 9508 sbc R9,R5
01A0 70920900 sts _Bulk_Block+8+1,R7
01A4 60920800 sts _Bulk_Block+8,R6
01A8 90920B00 sts _Bulk_Block+8+2+1,R9
01AC 80920A00 sts _Bulk_Block+8+2,R8
01B0 .dbline 73
01B0 ; Bulk_CSW.dCSWSignature=CSW_SIGNATURE;
01B0 45E5 ldi R20,85
01B2 53E5 ldi R21,83
01B4 62E4 ldi R22,66
01B6 73E5 ldi R23,83
01B8 50930100 sts _Bulk_Block+1,R21
01BC 40930000 sts _Bulk_Block,R20
01C0 70930300 sts _Bulk_Block+2+1,R23
01C4 60930200 sts _Bulk_Block+2,R22
01C8 .dbline 74
01C8 ; Bulk_CSW.bCSWStatus=CSWStatus;
01C8 00930C00 sts _Bulk_Block+12,R16
01CC .dbline -2
01CC L34:
01CC 0E940000 xcall pop_gset2
01D0 .dbline 0 ; func end
01D0 0895 ret
01D2 .dbsym r wByteCount 18 i
01D2 .dbsym r CSWStatus 16 c
01D2 .dbend
.area bss(ram, con, rel)
0000 .dbfile J:\PDIUSBD12-Materials\富昌\优盘5.0\BulkOnly.C
0000 _Bulk_Block::
0000 .blkb 31
001F .dbstruct 0 16 _GENERIC_RBC
001F .dbfield 0 OperationCode c
001F .dbfield 1 Reserved0 A[15:15]c
001F .dbend
001F .dbstruct 0 7 _INQUIRY_SPC
001F .dbfield 0 OperationCode i
001F .dbfield 2 EVPD F[0:1]
001F .dbfield 2 CMDDT F[1:1]
001F .dbfield 2 Reserved0 F[2:6]
001F .dbfield 3 PageCode c
001F .dbfield 4 Reserved1 c
001F .dbfield 5 AllocationLength c
001F .dbfield 6 Control c
001F .dbend
001F .dbstruct 0 6 _MODE_SENSE_SPC
001F .dbfield 0 OperationCode c
001F .dbfield 1 Reserved0 F[0:3]
001F .dbfield 1 DisableBlockDescriptor F[3:1]
001F .dbfield 1 Reserved1 F[4:4]
001F .dbfield 1 PageCode F[8:6]
001F .dbfield 1 PageControl F[14:2]
001F .dbfield 3 Reserved2 c
001F .dbfield 4 ParameterLength c
001F .dbfield 5 Control c
001F .dbend
001F .dbstruct 0 10 _READ10_RBC
001F .dbfield 0 OperationCode c
001F .dbfield 1 Reserved0 c
001F .dbfield 2 LogicalBlockAddress A[4:4]c
001F .dbfield 6 Reserved1 c
001F .dbfield 7 TransferLength A[2:2]c
001F .dbfield 9 Control c
001F .dbend
001F .dbstruct 0 10 _READ_CAPACITY_RBC
001F .dbfield 0 OperationCode c
001F .dbfield 1 Reserved0 A[8:8]c
001F .dbfield 9 Control c
001F .dbend
001F .dbstruct 0 11 _READ_FORMAT_CAPACITY_RBC
001F .dbfield 0 OperationCode c
001F .dbfield 1 Reserved0 A[5:5]c
001F .dbfield 6 AllocationLength A[2:2]c
001F .dbfield 8 Reserved1 A[3:3]c
001F .dbend
001F .dbstruct 0 7 _TEST_UNIT_SPC
001F .dbfield 0 OperationCode c
001F .dbfield 1 Reserved0 A[4:4]c
001F .dbfield 5 Control i
001F .dbend
001F .dbstruct 0 11 _VERIFY_RBC
001F .dbfield 0 OperationCode i
001F .dbfield 2 Reserved0 c
001F .dbfield 3 LogicalBlockAddress A[4:4]c
001F .dbfield 7 Reserved1 c
001F .dbfield 8 TransferLength A[2:2]c
001F .dbfield 10 Control c
001F .dbend
001F .dbstruct 0 10 _WRITE10_RBC
001F .dbfield 0 OperationCode c
001F .dbfield 1 Reserved0 F[0:3]
001F .dbfield 1 FUA F[3:1]
001F .dbfield 1 Reserved1 F[4:4]
001F .dbfield 2 LogicalBlockAddress A[4:4]c
001F .dbfield 6 Reserved2 c
001F .dbfield 7 TransferLength A[2:2]c
001F .dbfield 9 Control c
001F .dbend
001F .dbstruct 0 7 _MEDIA_REMOVAL_SPC
001F .dbfield 0 OperationCode c
001F .dbfield 1 Reserved0 A[3:3]c
001F .dbfield 4 Prevent F[0:2]
001F .dbfield 4 Reserved1 F[2:6]
001F .dbfield 5 Control i
001F .dbend
001F .dbunion 0 16 _CDB_RBC
001F .dbfield 0 RbcCdb_Generic S[_GENERIC_RBC]
001F .dbfield 0 SpcCdb_Inquiry S[_INQUIRY_SPC]
001F .dbfield 0 SpcCdb_ModeSense S[_MODE_SENSE_SPC]
001F .dbfield 0 RbcCdb_Read10 S[_READ10_RBC]
001F .dbfield 0 RbcCdb_ReadCapacity S[_READ_CAPACITY_RBC]
001F .dbfield 0 RbcCdb_ReadFormatCapacity S[_READ_FORMAT_CAPACITY_RBC]
001F .dbfield 0 SpcCdb_TestUnit S[_TEST_UNIT_SPC]
001F .dbfield 0 RbcCdb_Verify S[_VERIFY_RBC]
001F .dbfield 0 RbcCdb_Write10 S[_WRITE10_RBC]
001F .dbfield 0 SpcCdb_Removeal S[_MEDIA_REMOVAL_SPC]
001F .dbend
001F .dbstruct 0 31 _COMMAND_BLOCK_WRAPPER
001F .dbfield 0 dCBWSignature l
001F .dbfield 4 dCBWTag l
001F .dbfield 8 dCBWDataTransferLength l
001F .dbfield 12 bmCBWFlags c
001F .dbfield 13 bCBWLUN c
001F .dbfield 14 bCBWCBLength c
001F .dbfield 15 CBWCB S[_CDB_RBC]
001F .dbend
001F .dbstruct 0 13 _COMMAND_STATUS_WRAPPER
001F .dbfield 0 dCSWSignature l
001F .dbfield 4 dCSWTag l
001F .dbfield 8 dCSWDataResidue l
001F .dbfield 12 bCSWStatus c
001F .dbend
001F .dbunion 0 31 _BULK_STRUCT
001F .dbfield 0 cbw S[_COMMAND_BLOCK_WRAPPER]
001F .dbfield 0 csw S[_COMMAND_STATUS_WRAPPER]
001F .dbend
001F .dbsym e Bulk_Block _Bulk_Block S[_BULK_STRUCT]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -