source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Inc/Controllers/XTCF.inc@ 577

Last change on this file since 577 was 567, checked in by krille_n_@…, 11 years ago

Changes:

  • Renamed MODULE_FEATURE_SETS to MODULE_POWER_MANAGEMENT.
  • Renamed MODULE_VERY_LATE_INITIALIZATION to MODULE_VERY_LATE_INIT and removed it from the official builds.
  • Removed the code that skips detection of slave drives on XT-CF controllers since slave drives can be used with Lo-tech ISA CompactFlash boards.
  • Added autodetection of the SVC ADP50L controller to XTIDECFG.
  • The autodetection of XT-CF controllers now requires MODULE_8BIT_IDE_ADVANCED in the loaded BIOS.
  • Fixed a bug in XTIDECFG from r502 where the "Base (cmd block) address" menu option would be displayed when a serial device was selected as the IDE controller.
  • XTIDECFG would display the "Enable interrupt" menu option for the XTIDE r1 but not for the XTIDE r2. It's now displayed for both controller types.
  • Disabled the "Internal Write Cache" menu option in the Master/Slave Drive menus for serial device type drives.
  • Optimizations and other fixes.
File size: 3.6 KB
RevLine 
[470]1; Project name : XTIDE Universal BIOS
[567]2; Description : Lo-tech XT-CF board specifications.
[470]3;
[545]4; More information at http://www.lo-tech.co.uk/XT-CF
[470]5
6;
[491]7; XTIDE Universal BIOS and Associated Tools
[526]8; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
[470]9;
10; This program is free software; you can redistribute it and/or modify
11; it under the terms of the GNU General Public License as published by
12; the Free Software Foundation; either version 2 of the License, or
13; (at your option) any later version.
[491]14;
[470]15; This program is distributed in the hope that it will be useful,
16; but WITHOUT ANY WARRANTY; without even the implied warranty of
17; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[491]18; GNU General Public License for more details.
[470]19; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20;
21
22%ifndef XTCF_INC
23%define XTCF_INC
24
[558]25; XT-CF requires that block must be less than 128 sectors (64 kiB) for DMA transfers.
26;
[545]27; Note: XT-CFv3 DMA will not interfere with PC & PC/XT memory refresh,
28; since the XT-CFv3 detaches itself from the bus every 16 bytes transferred.
29;
30XTCF_DMA_MODE_MAX_BLOCK_SIZE EQU 64 ; Sectors
[473]31
[470]32; Possible base addresses. Note that all XT-CF IDE registers are SHL 1 compared
33; to standard IDE registers.
34XTCF_BASE_PORT_1 EQU 200h
35XTCF_BASE_PORT_2 EQU 240h
36XTCF_BASE_PORT_3 EQU 300h ; Default setting
[471]37XTCF_BASE_PORT_4 EQU 340h
[470]38
39
40; XT-CF Control Register (do not SHL 1 these!)
[545]41; Note: XT-CFv3 control register is used *only* to raise DRQ. The register cannot be read.
42;
43XTCF_CONTROL_REGISTER EQU 1Eh
[470]44
[545]45; Transfer Mode Constants
[471]46;
[545]47; Available transfer modes depend on the controller. All XT-CF controllers
48; support 8-bit PIO, either with 8-bit or 16-bit instructions (i.e., data
49; can be fetched from the controller with REP INSW or REP INSB since A0 is
50; not decoded). However, errors in the implementation of the BIU on some
51; machines will prevent 16-bit instructions delivering data correctly.
[491]52;
[545]53; For XT-CFv3 adapter, DMA transfers are also supported via channel 3.
54;
[567]55; XT-CFv3 cannot be distinguished by software, so user must decide and set
[545]56; the mode via a call to Int 13h function 1Eh accordingly (see AH1E_XTCF.asm).
[558]57;
[545]58XTCF_8BIT_PIO_MODE EQU 00h
59XTCF_8BIT_PIO_MODE_WITH_BIU_OFFLOAD EQU 01h
60XTCF_DMA_MODE EQU 02h
[470]61
[471]62; Subcommands for AH=1Eh, Lo-tech XT-CF features.
63; Return values common for all subcommands:
64; AH: RET_HD_SUCCESS if drive is XT-CF
65; RET_HD_INVALID if drive is not XT-CF
66; CF: 0 if successful, 1 if error
[470]67
[471]68;--------------------------------------------------------------------
69; IS_THIS_DRIVE_XTCF
70; Parameters:
71; DL: Drive Number
72;--------------------------------------------------------------------
73IS_THIS_DRIVE_XTCF EQU 0
74
75;--------------------------------------------------------------------
[545]76; SET_XTCF_TRANSFER_MODE
[471]77; Parameters:
[558]78; DH: Mode to select, i.e. XTCF_8BIT_PIO_MODE
79; Note there's no way to know if an XT-CF adapter
80; supports DMA, so the user should enable DMA
81; only if a DMA-enabled XT-CFv3 is fitted.
[471]82; DL: Drive Number
83;--------------------------------------------------------------------
[545]84SET_XTCF_TRANSFER_MODE EQU 1
[471]85
86;--------------------------------------------------------------------
[545]87; GET_XTCF_TRANSFER_MODE
[471]88; Parameters:
89; DL: Drive Number
[545]90; Returns:
91; DH: One of the mode values listed above,
[558]92; i.e. XTCF_8BIT_PIO_MODE
93; DL: Block mode sectors per block configured
[471]94;--------------------------------------------------------------------
[545]95GET_XTCF_TRANSFER_MODE EQU 2
[471]96
97
[470]98%endif ; XTCF_INC
Note: See TracBrowser for help on using the repository browser.