scsi.lst

来自「HIGH_SPEED_USB_To_ATA(IDE)Firmware相关代码(E」· LST 代码 · 共 1,388 行 · 第 1/5 页

LST
1,388
字号
                                           ; SOURCE LINE # 225
0041         ?C0022:
                                           ; SOURCE LINE # 227
0041 120000      R     LCALL   L?0126
0044 7003              JNZ     ?C0025
                                           ; SOURCE LINE # 228
0046 AF00        R     MOV     R7,result
0048 22                RET     
0049         ?C0025:
                                           ; SOURCE LINE # 230
0049 300007      R     JNB     useUdma,?C0026
                                           ; SOURCE LINE # 231
                                           ; SOURCE LINE # 232
004C 120000      R     LCALL   scsiWriteUdma
004F 8F00        R     MOV     result,R7
                                           ; SOURCE LINE # 233
0051 8005              SJMP    ?C0027
0053         ?C0026:
                                           ; SOURCE LINE # 235
                                           ; SOURCE LINE # 236
0053 120000      R     LCALL   scsiWrite
0056 8F00        R     MOV     result,R7
                                           ; SOURCE LINE # 237
0058         ?C0027:
                                           ; SOURCE LINE # 239
0058 AF00        R     MOV     R7,result
                                           ; SOURCE LINE # 243
                                           ; SOURCE LINE # 245
005A         ?C0024:
005A 22                RET     
             ; FUNCTION generalSCSIOutCommand (END)

             ; FUNCTION SCSITestUnitReady (BEGIN)
                                           ; SOURCE LINE # 254
                                           ; SOURCE LINE # 255
                                           ; SOURCE LINE # 257
0000 C200        R     CLR     result
                                           ; SOURCE LINE # 260
0002 200006      E     JB      scsi,?C0028
                                           ; SOURCE LINE # 261
0005 A200        R     MOV     C,result
0007 E4                CLR     A
0008 33                RLC     A
0009 FF                MOV     R7,A
000A 22                RET     
000B         ?C0028:
                                           ; SOURCE LINE # 264
000B C200        R     CLR     useUdma
                                           ; SOURCE LINE # 265
000D 7E00        R     MOV     R6,#HIGH testUnitReady
000F 7F00        R     MOV     R7,#LOW testUnitReady
0011 120000      R     LCALL   _sendSCSICommand
0014 9200        R     MOV     result,C
                                           ; SOURCE LINE # 266
0016 30001D      R     JNB     result,?C0029
                                           ; SOURCE LINE # 267
                                           ; SOURCE LINE # 268
0019 7E00        R     MOV     R6,#HIGH requestSense
C51 COMPILER V7.50   SCSI                                                                  11/07/2006 14:52:10 PAGE 20  

001B 7F00        R     MOV     R7,#LOW requestSense
001D 120000      R     LCALL   _sendSCSICommand
0020 9200        R     MOV     result,C
                                           ; SOURCE LINE # 269
                                           ; SOURCE LINE # 270
                                           ; SOURCE LINE # 271
0022         ?C0031:
                                           ; SOURCE LINE # 275
0022 7C00        E     MOV     R4,#HIGH halfKBuffer
0024 7D00        E     MOV     R5,#LOW halfKBuffer
0026 C200        E     CLR     ?_readPIO16toXdata?BIT
0028 7B12              MOV     R3,#012H
002A 7A00              MOV     R2,#00H
002C 7F20              MOV     R7,#020H
002E 120000      E     LCALL   _readPIO16toXdata
                                           ; SOURCE LINE # 276
0031 900000      E     MOV     DPTR,#halfKBuffer+0CH
0034 E0                MOVX    A,@DPTR
0035 FF                MOV     R7,A
                                           ; SOURCE LINE # 277
                                           ; SOURCE LINE # 279
0036         ?C0029:
0036 22                RET     
             ; FUNCTION SCSITestUnitReady (END)

             ; FUNCTION SCSIInquiryToATAPI (BEGIN)
                                           ; SOURCE LINE # 286
                                           ; SOURCE LINE # 287
                                           ; SOURCE LINE # 292
0000 C200        R     CLR     useUdma
                                           ; SOURCE LINE # 293
0002 7E00        R     MOV     R6,#HIGH inquiryCommand
0004 7F00        R     MOV     R7,#LOW inquiryCommand
0006 120000      R     LCALL   _sendSCSICommand
0009 9200        R     MOV     result,C
                                           ; SOURCE LINE # 294
000B 300003      R     JNB     result,?C0032
                                           ; SOURCE LINE # 295
                                           ; SOURCE LINE # 296
000E 020000      E     LJMP    failedIn
                                           ; SOURCE LINE # 298
0011         ?C0032:
                                           ; SOURCE LINE # 300
0011 120000      E     LCALL   waitForIntrq
0014 9200        R     MOV     result,C
                                           ; SOURCE LINE # 302
0016 7C00        E     MOV     R4,#HIGH halfKBuffer
0018 7D00        E     MOV     R5,#LOW halfKBuffer
001A C200        E     CLR     ?_readPIO16toXdata?BIT
001C 7B2C              MOV     R3,#02CH
001E 7A00              MOV     R2,#00H
0020 7F20              MOV     R7,#020H
0022 120000      E     LCALL   _readPIO16toXdata
                                           ; SOURCE LINE # 305
0025 900000      E     MOV     DPTR,#halfKBuffer
0028 E0                MOVX    A,@DPTR
0029 B40503            CJNE    A,#05H,?C0033
                                           ; SOURCE LINE # 306
                                           ; SOURCE LINE # 307
002C 750002      E     MOV     intrfcSubClass,#02H
                                           ; SOURCE LINE # 308
                                           ; SOURCE LINE # 310
C51 COMPILER V7.50   SCSI                                                                  11/07/2006 14:52:10 PAGE 21  

002F         ?C0033:
002F 22                RET     
             ; FUNCTION SCSIInquiryToATAPI (END)

             ; FUNCTION getDriveDataLen (BEGIN)
                                           ; SOURCE LINE # 313
                                           ; SOURCE LINE # 314
                                           ; SOURCE LINE # 318
0000 7F2A              MOV     R7,#02AH
0002 120000      E     LCALL   _readPIO8
0005 EF                MOV     A,R7
;---- Variable 'driveDataLen' assigned to Register 'R4/R5' ----
0006 7D00              MOV     R5,#00H
0008 FC                MOV     R4,A
                                           ; SOURCE LINE # 319
0009 7F28              MOV     R7,#028H
000B 120000      E     LCALL   _readPIO8
000E ED                MOV     A,R5
000F 2F                ADD     A,R7
0010 FD                MOV     R5,A
0011 E4                CLR     A
0012 3C                ADDC    A,R4
                                           ; SOURCE LINE # 320
0013 FE                MOV     R6,A
0014 AF05              MOV     R7,AR5
                                           ; SOURCE LINE # 321
0016         ?C0035:
0016 22                RET     
             ; FUNCTION getDriveDataLen (END)

             ; FUNCTION scsiWrite (BEGIN)
                                           ; SOURCE LINE # 383
                                           ; SOURCE LINE # 384
                                           ; SOURCE LINE # 386
0000 E4                CLR     A
0001 F500        R     MOV     wDriveDataLen,A
0003 F500        R     MOV     wDriveDataLen+01H,A
                                           ; SOURCE LINE # 387
0005 F500        R     MOV     driveStatus,A
                                           ; SOURCE LINE # 388
0007 F500        R     MOV     wAmountToWrite,A
0009 F500        R     MOV     wAmountToWrite+01H,A
                                           ; SOURCE LINE # 389
000B F500        R     MOV     wAmountSent,A
000D F500        R     MOV     wAmountSent+01H,A
                                           ; SOURCE LINE # 390
000F C200        R     CLR     bDone
                                           ; SOURCE LINE # 391
0011 C200        R     CLR     bShortPacketReceived
                                           ; SOURCE LINE # 392
0013 F500        R     MOV     cReturnStatus,A
0015         ?C0036:
                                           ; SOURCE LINE # 397
0015 120000      E     LCALL   readATAPI_STATUS_REG
0018 EF                MOV     A,R7
0019 20E7F9            JB      ACC.7,?C0036
001C         ?C0037:
                                           ; SOURCE LINE # 400
001C 120000      E     LCALL   readATAPI_STATUS_REG
001F 8F00        R     MOV     driveStatus,R7
                                           ; SOURCE LINE # 402
0021 E500        R     MOV     A,driveStatus
C51 COMPILER V7.50   SCSI                                                                  11/07/2006 14:52:10 PAGE 22  

0023 20E302            JB      ACC.3,$ + 5H
0026 0100        R     AJMP    ?C0038
                                           ; SOURCE LINE # 403
0028         ?C0039:
                                           ; SOURCE LINE # 404
0028 E500        R     MOV     A,driveStatus
002A 30E002            JNB     ACC.0,$ + 5H
002D 0100        R     AJMP    ?C0038
002F 300002      R     JNB     bDone,$ + 5H
0032 0100        R     AJMP    ?C0038
0034 120000      R     LCALL   L?0127
0037 7002              JNZ     $ + 4H
0039 0100        R     AJMP    ?C0038
                                           ; SOURCE LINE # 405
                                           ; SOURCE LINE # 407
003B 90E6A3            MOV     DPTR,#0E6A3H
003E E0                MOVX    A,@DPTR
003F 5405              ANL     A,#05H
0041 70E5              JNZ     ?C0039
                                           ; SOURCE LINE # 408
                                           ; SOURCE LINE # 409
0043 120000      R     LCALL   L?0132
0046 FE                MOV     R6,A
0047 90E690            MOV     DPTR,#0E690H
004A E0                MOVX    A,@DPTR
004B 5E                ANL     A,R6
004C FE                MOV     R6,A
004D A3                INC     DPTR
004E E0                MOVX    A,@DPTR
004F 5F                ANL     A,R7
0050 4E                ORL     A,R6
0051 6002              JZ      ?C0042
                                           ; SOURCE LINE # 410
0053 D200        R     SETB    bShortPacketReceived
0055         ?C0042:
                                           ; SOURCE LINE # 412
0055 90E691            MOV     DPTR,#0E691H
0058 E4                CLR     A
0059 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 415
005A E500        R     MOV     A,wDriveDataLen+01H
005C 4500        R     ORL     A,wDriveDataLen
005E 7007              JNZ     ?C0043
                                           ; SOURCE LINE # 416
0060 120000      R     LCALL   getDriveDataLen
0063 8E00        R     MOV     wDriveDataLen,R6
0065 8F00        R     MOV     wDriveDataLen+01H,R7
0067         ?C0043:
                                           ; SOURCE LINE # 418
0067 E4                CLR     A
0068 F500        R     MOV     wAmountSent,A
006A F500        R     MOV     wAmountSent+01H,A
006C         ?C0044:
                                           ; SOURCE LINE # 419
006C D3                SETB    C
006D E500        E     MOV     A,wPacketSize+01H
006F 9500        R     SUBB    A,wAmountSent+01H
0071 E500        E     MOV     A,wPacketSize
0073 9500        R     SUBB    A,wAmountSent
0075 40B1              JC      ?C0039
0077 2000AE      R     JB      bDone,?C0039
007A 120000      R     LCALL   L?0127
C51 COMPILER V7.50   SCSI                                                                  11/07/2006 14:52:10 PAGE 23  

007D 60A9              JZ      ?C0039
                                           ; SOURCE LINE # 420
                                           ; SOURCE LINE # 424
007F E500        E     MOV     A,wPacketSize+01H
0081 9500        R     SUBB    A,wAmountSent+01H
0083 FF                MOV     R7,A
0084 E500        E     MOV     A,wPacketSize
0086 9500        R     SUBB    A,wAmountSent
0088 FE                MOV     R6,A
0089 C3                CLR     C
008A EF                MOV     A,R7
008B 9500        R     SUBB    A,wDriveDataLen+01H
008D EE                MOV     A,R6
008E 9500        R     SUBB    A,wDriveDataLen
0090 5002              JNC     ?C0046
0092 8004              SJMP    ?C0047
0094         ?C0046:
0094 AE00        R     MOV     R6,wDriveDataLen
0096 AF00        R     MOV     R7,wDriveDataLen+01H
0098         ?C0047:
0098 8E00        R     MOV     wAmountToWrite,R6
009A 8F00        R     MOV     wAmountToWrite+01H,R7
                                           ; SOURCE LINE # 425
009C 120000      R     LCA

⌨️ 快捷键说明

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