Changeset 370 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc/IDE_8bit.inc


Ignore:
Timestamp:
Mar 29, 2012, 4:40:50 PM (12 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Added some missing PIO mode timings to ATA_ID.inc (based on info from http://www.singlix.net/specs/cfspc4_0.pdf)
  • Updated Configuration_FullMode.txt but it may need additional changes as the Tandy info doesn't match the wiki.
  • Optimizations.
  • Excluded some unused code from XTIDECFG.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Inc/IDE_8bit.inc

    r363 r370  
    3030; XTIDE_INSW
    3131;   Parameters:
    32 ;       BX:     Bit mask for toggling XTIDE data low/high reg
     32;       BL:     Bit mask for toggling XTIDE data low/high reg
    3333;       DX:     XTIDE Data Low Register address
    3434;       ES:DI:  Ptr to destination buffer
     
    4141%ifdef USE_186  ; INS instruction available
    4242    insb                        ; Load low byte from port DX to [ES:DI]
    43     xor     dx, bx              ; IDE Data Reg to XTIDE Data High Reg
     43    xor     dl, bl              ; IDE Data Reg to XTIDE Data High Reg
    4444    insb                        ; Load high byte from port DX to [ES:DI]
    45     xor     dx, bx              ; Restore to IDE Data Register
     45    xor     dl, bl              ; Restore to IDE Data Register
    4646%else   ; If 8088/8086
    4747    in      al, dx              ; Load low byte from port
    48     xor     dx, bx              ; IDE Data Reg to XTIDE Data High Reg
     48    xor     dl, bl              ; IDE Data Reg to XTIDE Data High Reg
    4949    stosb                       ; Store byte to [ES:DI]
    5050    in      al, dx              ; Load high byte from port
    51     xor     dx, bx              ; Restore to IDE Data Register
     51    xor     dl, bl              ; Restore to IDE Data Register
    5252    stosb                       ; Store byte to [ES:DI]
    5353%endif
     
    6060; XTIDE_OUTSW
    6161;   Parameters:
    62 ;       BX:     Bit mask for toggling XTIDE data low/high reg
     62;       BL:     Bit mask for toggling XTIDE data low/high reg
    6363;       DX:     XTIDE Data Low Register address
    6464;       DS:SI:  Ptr to source buffer
     
    7171%ifdef USE_186  ; OUTS instruction available
    7272    lodsb                       ; Load low byte from [DS:SI] to AL
    73     xor     dx, bx              ; IDE Data Reg to XTIDE Data High Reg
     73    xor     dl, bl              ; IDE Data Reg to XTIDE Data High Reg
    7474    outsb                       ; Output high byte from [DS:SI]
    75     xor     dx, bx              ; XTIDE Data High Reg to Data Low Reg
     75    xor     dl, bl              ; XTIDE Data High Reg to Data Low Reg
    7676    out     dx, al              ; Output low byte from AL
    7777%else   ; If 8088/8086
    7878    lodsw                       ; Load word from [DS:SI]
    79     xor     dx, bx              ; IDE Data Reg to XTIDE Data High Reg
     79    xor     dl, bl              ; IDE Data Reg to XTIDE Data High Reg
    8080    xchg    al, ah              ; => AL=high byte, AH=low byte
    8181    out     dx, al              ; Output high byte
    82     xor     dx, bx              ; XTIDE Data High Reg to Data Low Reg
     82    xor     dl, bl              ; XTIDE Data High Reg to Data Low Reg
    8383    mov     al, ah              ; Copy low byte to AL
    8484    out     dx, al              ; Output low byte
Note: See TracChangeset for help on using the changeset viewer.