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


Ignore:
Timestamp:
Feb 14, 2019, 7:38:08 PM (5 years ago)
Author:
krille_n_
Message:

Changes:

  • Building the BIOS now works again.
  • Added a new IDE device type/transfer mode for use only with XT-IDE rev 2+ (or Chuck(G)-modded rev 1) cards installed in any of the following machines: Olivetti M24, AT&T PC6300, Xerox 6060 and Logabax Persona 1600. This new transfer mode is slightly faster than the regular XT-IDE rev 1 device type and requires that the card is configured for High Speed mode (or, in case of the card being a rev 1 card, has the Chuck(G) mod done). The new device type is called "XTIDE rev 2 (Olivetti M24)" in XTIDECFG.
  • Made some minor improvements to the library code that handles 'Drive Not Ready' errors in XTIDECFG.
  • Optimizations.
File:
1 edited

Legend:

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

    r589 r601  
    3131;       ES:DI:  Ptr to destination buffer
    3232;   Returns:
    33 ;       ES:DI:  Incremented/decremented for next word
     33;       DI:     Incremented/Decremented for next word
    3434;   Corrupts registers:
    3535;       AL, FLAGS
     
    6161;       DS:SI:  Ptr to source buffer
    6262;   Returns:
    63 ;       SI:     Incremented/decremented for next word
     63;       SI:     Incremented/Decremented for next word
    6464;   Corrupts registers:
    6565;       AX, FLAGS
     
    9292;       DS:SI:  Ptr to source buffer
    9393;   Returns:
    94 ;       SI:     Incremented/decremented for next word
     94;       SI:     Incremented/Decremented for next word
    9595;   Corrupts registers:
    9696;       AX, FLAGS
     
    115115
    116116
     117;--------------------------------------------------------------------
     118; Emulates INSW for modified XTIDE for use on Olivetti M24 and derivatives.
     119;
     120; XTIDE_MOD_OLIVETTI_INSW
     121;   Parameters:
     122;       DX:     XTIDE Data Low Register address
     123;       ES:DI:  Ptr to destination buffer
     124;   Returns:
     125;       DI:     Incremented/Decremented for next word
     126;   Corrupts registers:
     127;       AL, FLAGS
     128;--------------------------------------------------------------------
     129%macro XTIDE_MOD_OLIVETTI_INSW 0
     130%ifdef USE_186  ; INS instruction available
     131    insb                        ; Load low byte from port DX to [ES:DI]
     132    inc     dx                  ; IDE Data Reg to XTIDE Data High Reg
     133    insb                        ; Load high byte from port DX to [ES:DI]
     134    dec     dx                  ; Restore to IDE Data Register
     135%else   ; If 8088/8086
     136    in      al, dx              ; Load low byte from port
     137    inc     dx                  ; IDE Data Reg to XTIDE Data High Reg
     138    stosb                       ; Store byte to [ES:DI]
     139    in      al, dx              ; Load high byte from port
     140    dec     dx                  ; Restore to IDE Data Register
     141    stosb                       ; Store byte to [ES:DI]
     142%endif
     143%endmacro
     144
     145
    117146%endif ; IDE_8BIT_INC
Note: See TracChangeset for help on using the changeset viewer.