Changeset 242 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device/Serial


Ignore:
Timestamp:
Feb 10, 2012, 3:12:40 AM (13 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Optimizations (both for size and speed) in IdeTransfer.asm and MemIdeTransfer.asm
  • Fixed a bug where the SingleByteRead/Write functions in IdeTransfer.asm would fail on 128 sector transfers.
  • Fixed some typos and errors in general, comments etc.
Location:
trunk/XTIDE_Universal_BIOS/Src/Device/Serial
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Device/Serial/SerialCommand.asm

    r234 r242  
    112112        mov     ch,dh
    113113        xor     dh,dh
    114         eSHL_IM dx, 2           ; shift from one byte to two       
    115        
     114        eSHL_IM dx, 2           ; shift from one byte to two
     115
    116116        mov     al,[bp+IDEPACK.bSectorCount]
    117117
     
    599599;          wSerialPortAndBaud Non-Zero:
    600600;              previous serial drive not found:   -> Error - Not Found (4)
    601 ;              previosu serial drive found:       -> Continue with wSerialPackedAndBaud (5)
     601;              previous serial drive found:       -> Continue with wSerialPackedAndBaud (5)
    602602;          wSerialPortAndBaud Zero:
    603603;              previous serial drive not found:   -> Error - Not Found (4)
     
    608608;     And as with the int13h/25h case, we just go off and get the needed information using the user's setting.
    609609; (2) We are using the special .ideVarsSerialAuto structure.  During drive detection, we would only be here
    610 ;     if we hand't already seen a serial drive (since we only scan if no explicit drives are set),
     610;     if we hadn't already seen a serial drive (since we only scan if no explicit drives are set),
    611611;     so we go off to scan.
    612612; (3) We are using the special .ideVarsSerialAuto structure.  We won't get here during drive detection, but
     
    633633        pop     si
    634634        jnc     .notfounddpt
    635         mov     ax,[ds:di+DPT_SERIAL.wSerialPortAndBaud]
    636 .notfounddpt:   
     635        mov     ax, [di+DPT_SERIAL.wSerialPortAndBaud]
     636.notfounddpt:
    637637
    638638        test    bh, FLG_DRVNHEAD_DRV
     
    647647        jnz     .identifyDeviceInDX
    648648
    649         or      dx,ax           ; Since DX is zero, this effectively moves the previously found serial drive 
     649        or      dx,ax           ; Since DX is zero, this effectively moves the previously found serial drive
    650650                                ; information to dx, as well as test for zero
    651651        jz      .scanSerial
     
    672672        pop     cx
    673673        pop     dx
    674        
     674
    675675        pop     bp
    676676;
    677 ; place port and baud word in to the return sector, in a vendor specific area, 
     677; place port and baud word in to the return sector, in a vendor specific area,
    678678; which is read by FinalizeDPT and DetectDrives
    679679;
     
    732732; Begin baud rate scan on this port...
    733733;
    734 ; On a scan, we support 6 baud rates, starting here and going higher by a factor of two each step, with a 
     734; On a scan, we support 6 baud rates, starting here and going higher by a factor of two each step, with a
    735735; small jump between 9600 and 38800.  These 6 were selected since we wanted to support 9600 baud and 115200,
    736 ; *on the server side* if the client side had a 4x clock multiplier, a 2x clock multiplier, or no clock multiplier. 
     736; *on the server side* if the client side had a 4x clock multiplier, a 2x clock multiplier, or no clock multiplier.
    737737;
    738738; Starting with 30h, that means 30h (2400 baud), 18h (4800 baud), 0ch (9600 baud), and
     
    747747        shr     dh,1
    748748        jz      .nextPort
    749         cmp     dh,6            ; skip from 6 to 4, to move from the top of the 9600 baud range 
     749        cmp     dh,6            ; skip from 6 to 4, to move from the top of the 9600 baud range
    750750        jnz     .testBaud       ; to the bottom of the 115200 baud range
    751751        mov     dh,4
  • trunk/XTIDE_Universal_BIOS/Src/Device/Serial/SerialDPT.asm

    r233 r242  
    1313;       Nothing
    1414;   Corrupts registers:
    15 ;       AX, BX, CX, DX
     15;       AX
    1616;--------------------------------------------------------------------
    1717SerialDPT_Finalize:
    1818        or      byte [di+DPT.bFlagsHigh], FLGH_DPT_SERIAL_DEVICE
    1919        mov     ax, [es:si+ATA6.wVendor]
    20         mov     word [di+DPT_SERIAL.wSerialPortAndBaud], ax
     20        mov     [di+DPT_SERIAL.wSerialPortAndBaud], ax
    2121        ret
    2222
Note: See TracChangeset for help on using the changeset viewer.