- Timestamp:
- Feb 4, 2012, 6:36:55 PM (13 years ago)
- google:author:
- gregli@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Device/Serial/SerialCommand.asm
r233 r234 591 591 ; 592 592 ; Master: 593 ; bSerialPackedPortAndBaud Non-Zero: -> Continue with bSerialPackedAndBaud (1)594 ; bSerialPackedPortAndBaud Zero:595 ; bLastSerial Zero:-> Scan (2)596 ; bLastSerial Non-Zero: -> Continue with bLastSerial(3)593 ; wSerialPortAndBaud Non-Zero: -> Continue with wSerialPortAndBaud (1) 594 ; wSerialPortAndBaud Zero: 595 ; previous serial drive not found: -> Scan (2) 596 ; previous serial drive found: -> Continue with previous serial drive info (3) 597 597 ; 598 598 ; Slave: 599 ; bSerialPackedPortAndBaud Non-Zero:600 ; bLastSerial Zero:-> Error - Not Found (4)601 ; bLastSerial Non-Zero: -> Continue with bSerialPackedAndBaud (5)602 ; bSerialPackedPortAndBaud Zero:603 ; bLastSerial Zero:-> Error - Not Found (4)604 ; bLastSerial Non-Zero: -> Continue with bLastSerial(6)599 ; wSerialPortAndBaud Non-Zero: 600 ; previous serial drive not found: -> Error - Not Found (4) 601 ; previosu serial drive found: -> Continue with wSerialPackedAndBaud (5) 602 ; wSerialPortAndBaud Zero: 603 ; previous serial drive not found: -> Error - Not Found (4) 604 ; previous serial drive found: -> Continue with previous serial drive info (6) 605 605 ; 606 606 ; (1) This was a port/baud that was explicitly set with the configurator. In the drive detection case, as this 607 ; is the Master, we are checking out a new controller, and so don't care about the value of bLastSerial.607 ; is the Master, we are checking out a new controller, and so don't care if we already have a serial drive. 608 608 ; And as with the int13h/25h case, we just go off and get the needed information using the user's setting. 609 609 ; (2) We are using the special .ideVarsSerialAuto structure. During drive detection, we would only be here 610 ; if bLastSerial is zero (since we only scan if no explicit drives are set), so we go off to scan. 610 ; if we hand't already seen a serial drive (since we only scan if no explicit drives are set), 611 ; so we go off to scan. 611 612 ; (3) We are using the special .ideVarsSerialAuto structure. We won't get here during drive detection, but 612 613 ; we might get here on an int13h/25h call. If we have scanned COM drives, they are the ONLY serial drives 613 ; in use, and so bLastSerial will reflect the port/baud setting for the scanned COM drives.614 ; in use, and so we use the values from the previously seen serial drive DPT. 614 615 ; (4) No master has been found yet, therefore no slave should be found. Avoiding the slave reduces boot time, 615 616 ; especially in the full COM port scan case. Note that this is different from the hardware IDE, where we … … 646 647 jnz .identifyDeviceInDX 647 648 648 or dx,ax ; Move bLast into position in dl, as well as test for zero 649 or dx,ax ; Since DX is zero, this effectively moves the previously found serial drive 650 ; information to dx, as well as test for zero 649 651 jz .scanSerial 650 652 … … 673 675 pop bp 674 676 ; 675 ; place packed port/baud in RAMVARS, read by FinalizeDPT and DetectDrives 677 ; place port and baud word in to the return sector, in a vendor specific area, 678 ; which is read by FinalizeDPT and DetectDrives 676 679 ; 677 680 mov [es:si+ATA6.wVendor],dx
Note:
See TracChangeset
for help on using the changeset viewer.