Changeset 471 in xtideuniversalbios


Ignore:
Timestamp:
Oct 1, 2012, 6:33:28 PM (9 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • XT-CF Control Register definitions should now be correct.
  • Preparations for new function: AH=1Eh, Lo-tech XT-CF Features.
Location:
trunk/XTIDE_Universal_BIOS
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Inc/Controllers/XTCF.inc

    r470 r471  
    2828XTCF_BASE_PORT_2                    EQU     240h
    2929XTCF_BASE_PORT_3                    EQU     300h    ; Default setting
    30 XTCF_BASE_PORT_4                    EQU     320h
     30XTCF_BASE_PORT_4                    EQU     340h
    3131
    3232
     
    3535XTCT_CONTROL_REGISTER_INVERTED_in   EQU     1Eh
    3636
     37; Control Register contents:
     38;
     39; Control Register holds high byte from Sector Window segment if >= A0h
     40; (First possible segment for Sector Window is A000h)
     41;
     42; 8-bit PIO transfers (port I/O) are used if Control Register is zero.
     43; Any other value means DMA transfers (using DMA channel 3).
    3744
    38 ; Bit Definitions for XT-CF Control Register
    39 MASK_XTCF_BASE_PORT_in              EQU     (3<<0)  ; Bits 0...1
    40     XTCF_PORT_200h                  EQU     0
    41     XTCF_PORT_240h                  EQU     1
    42     XTCF_PORT_300h                  EQU     2       ; Default
    43     XTCF_PORT_320h                  EQU     3
    44 FLG_PIO8_INSTEAD_OF_DMA             EQU     (1<<2)  ; Set to enable PIO8, clear to enable DMA (Channel 3)
    45 FLG_AT_ZERO_WAIT_STATE_in           EQU     (1<<3)
    46 MASK_SECTOR_WINDOW_SEGMENT_in       EQU     (7<<4)  ; Bits 4...6
    47     XTCF_SECTOR_WINDOW_AT_C000h     EQU     0
    48     XTCF_SECTOR_WINDOW_AT_C800h     EQU     1
    49     XTCF_SECTOR_WINDOW_AT_D000h     EQU     2       ; Default
    50     XTCF_SECTOR_WINDOW_AT_D800h     EQU     3
    51     XTCF_SECTOR_WINDOW_AT_E000h     EQU     4
    52     XTCF_SECTOR_WINDOW_AT_E800h     EQU     5
    53 FLG_XTCF_ROM_ENABLE_in              EQU     (1<<7)
     45
     46; Subcommands for AH=1Eh, Lo-tech XT-CF features.
     47; Return values common for all subcommands:
     48;       AH:     RET_HD_SUCCESS if drive is XT-CF
     49;               RET_HD_INVALID if drive is not XT-CF
     50;       CF:     0 if successful, 1 if error
     51
     52;--------------------------------------------------------------------
     53; IS_THIS_DRIVE_XTCF
     54;   Parameters:
     55;       DL:     Drive Number
     56;--------------------------------------------------------------------
     57IS_THIS_DRIVE_XTCF                  EQU     0
     58
     59;--------------------------------------------------------------------
     60; IS_XTCF_IN_PORT_CX
     61;   Parameters:
     62;       CX:     Port to search XT-CF from (can be anything)
     63;   Returns:
     64;       AH:     RET_HD_SUCCESS if XT-CF is found from port
     65;               RET_HD_INVALID if XT-CF is not found
     66;--------------------------------------------------------------------
     67IS_XTCF_IN_PORT_CX                  EQU     1
     68
     69;--------------------------------------------------------------------
     70; READ_XTCF_CONTROL_REGISTER_TO_DH
     71;   Parameters:
     72;       DL:     Drive Number
     73;   Returns:
     74;       DH:     XT-CF Control Register contents
     75;--------------------------------------------------------------------
     76READ_XTCF_CONTROL_REGISTER_TO_DH    EQU     2
     77
     78;--------------------------------------------------------------------
     79; WRITE_DH_TO_XTCF_CONTROL_REGISTER
     80;   Parameters:
     81;       DH:     Byte to write to XT-CF Control Register
     82;       DL:     Drive Number
     83;--------------------------------------------------------------------
     84WRITE_DH_TO_XTCF_CONTROL_REGISTER   EQU     3
    5485
    5586
  • trunk/XTIDE_Universal_BIOS/Inc/ModuleDependency.inc

    r400 r471  
    4343%ifdef MODULE_8BIT_IDE
    4444    %include "IDE_8bit.inc"         ; For IDE 8-bit data port macros
     45    %include "XTCF.inc"             ; For Lo-tech XT-CF
    4546%endif
    4647
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm

    r445 r471  
    395395    dw  UnsupportedFunction                         ; 1Ch, ESDI Special Functions (PS/2)
    396396    dw  UnsupportedFunction                         ; 1Dh,
    397     dw  UnsupportedFunction                         ; 1Eh,
     397%ifdef MODULE_8BIT_IDE
     398    dw  AH1Eh_HandlerForXTCFfeatures                ; 1Eh, Lo-tech XT-CF features (XTIDE Universal BIOS)
     399%else
     400    dw  UnsupportedFunction                         ; 1Eh,
     401%endif
    398402    dw  UnsupportedFunction                         ; 1Fh,
    399403    dw  UnsupportedFunction                         ; 20h,
  • trunk/XTIDE_Universal_BIOS/Src/Main.asm

    r461 r471  
    255255    %include "AH11h_HRecal.asm"     ; Required by Int13h_Jump.asm
    256256    %include "AH15h_HSize.asm"      ; Required by Int13h_Jump.asm
     257%ifdef MODULE_8BIT_IDE
     258    %include "AH1Eh_XTCF.asm"
     259%endif
    257260    %include "AH23h_HFeatures.asm"  ; Required by Int13h_Jump.asm
    258261    %include "AH24h_HSetBlocks.asm" ; Required by Int13h_Jump.asm
Note: See TracChangeset for help on using the changeset viewer.