Index: trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Main.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Main.asm	(revision 459)
+++ trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Main.asm	(revision 481)
@@ -25,4 +25,5 @@
 %include "AssemblyLibrary.inc"	; Assembly Library. Must be included first!
 %include "Romvars.inc"			; XTIDE Universal BIOS variables
+%include "XTCF.inc"				; For XT-CF modes
 
 %include "Version.inc"
Index: trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/IdeControllerMenu.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/IdeControllerMenu.asm	(revision 459)
+++ trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/IdeControllerMenu.asm	(revision 481)
@@ -188,18 +188,24 @@
 
 g_rgwChoiceToValueLookupForDevice:
-	dw	DEVICE_8BIT_JRIDE_ISA
-	dw	DEVICE_8BIT_XTCF
-	dw	DEVICE_8BIT_XTIDE_REV2
-	dw	DEVICE_8BIT_XTIDE_REV1
 	dw	DEVICE_16BIT_ATA
 	dw	DEVICE_32BIT_ATA
+	dw	DEVICE_8BIT_ATA
+	dw	DEVICE_8BIT_XTIDE_REV1
+	dw	DEVICE_8BIT_XTIDE_REV2
+	dw	DEVICE_8BIT_XTCF_PIO8
+	dw	DEVICE_8BIT_XTCF_DMA
+	dw	DEVICE_8BIT_XTCF_MEMMAP
+	dw	DEVICE_8BIT_JRIDE_ISA
 	dw	DEVICE_SERIAL_PORT
 g_rgszValueToStringLookupForDevice:
-	dw	g_szValueCfgDeviceJrIdeIsa
-	dw	g_szValueCfgDeviceFast
-	dw	g_szValueCfgDeviceRev2
-	dw	g_szValueCfgDeviceRev1
 	dw	g_szValueCfgDevice16b
 	dw	g_szValueCfgDevice32b
+	dw	g_szValueCfgDevice8b
+	dw	g_szValueCfgDeviceRev1
+	dw	g_szValueCfgDeviceRev2
+	dw	g_szValueCfgDevicePioXTCF
+	dw	g_szValueCfgDeviceDmaXTCF
+	dw	g_szValueCfgDeviceMemXTCF
+	dw	g_szValueCfgDeviceJrIdeIsa
 	dw	g_szValueCfgDeviceSerial
 
@@ -297,5 +303,5 @@
 	mov		[cs:g_MenuitemIdeControllerDevice+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
 
-	lea		ax, [bx+IDEVARS.wPort]
+	lea		ax, [bx+IDEVARS.wBasePort]
 	mov		[cs:g_MenuitemIdeControllerCommandBlockAddress+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
 
@@ -306,5 +312,5 @@
 	mov		[cs:g_MenuitemIdeControllerSerialBaud+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
 
-	lea		ax, [bx+IDEVARS.wPortCtrl]
+	lea		ax, [bx+IDEVARS.wControlBlockPort]
 	mov		[cs:g_MenuitemIdeControllerControlBlockAddress+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
 
@@ -358,8 +364,6 @@
 	call	Buffers_GetRomvarsValueToAXfromOffsetInBX
 	mov		bx, g_MenuitemIdeControllerEnableInterrupt
-	cmp		al, DEVICE_SERIAL_PORT
+	cmp		al, DEVICE_8BIT_XTIDE_REV2
 	jae		SHORT .DisableMenuitemFromCSBX
-	cmp		al, DEVICE_8BIT_XTCF
-	jbe		SHORT .DisableMenuitemFromCSBX
 
 	call	.EnableMenuitemFromCSBX
@@ -536,5 +540,5 @@
 		mov		bl,[es:di]							; what is the current Device?
 
-		add		di,IDEVARS.wPort - IDEVARS.bDevice	; Get ready to set the Port addresses
+		add		di,IDEVARS.wBasePort - IDEVARS.bDevice	; Get ready to set the Port addresses
 
 		cmp		al,DEVICE_SERIAL_PORT
@@ -556,5 +560,5 @@
 
 .writeNonSerial:
-		stosw										; Store defaults in IDEVARS.wPort and IDEVARS.wPortCtrl
+		stosw										; Store defaults in IDEVARS.wBasePort and IDEVARS.wBasePortCtrl
 		xchg	bx, ax
 		stosw
@@ -566,8 +570,8 @@
 		jz		.done								; if we were already serial, nothing to do
 
-		mov		byte [es:di+IDEVARS.bSerialBaud-IDEVARS.wPort],SERIAL_DEFAULT_BAUD
+		mov		byte [es:di+IDEVARS.bSerialBaud-IDEVARS.wBasePort],SERIAL_DEFAULT_BAUD
 
 		mov		al,SERIAL_DEFAULT_COM
-		add		di,IDEVARS.bSerialCOMPortChar-IDEVARS.wPort
+		add		di,IDEVARS.bSerialCOMPortChar-IDEVARS.wBasePort
 		call	IdeControllerMenu_SerialWriteCOM
 		stosb
Index: trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm	(revision 459)
+++ trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm	(revision 481)
@@ -24,5 +24,5 @@
 g_szProgramTitle:
 	db	"Configuration and Flashing program for XTIDE Universal BIOS v2.0.0.",LF,CR,NULL
-g_szXtideUniversalBiosSignature:	db	"XTIDE201",NULL
+g_szXtideUniversalBiosSignature:	db	"XTIDE203",NULL
 g_szBiosIsNotLoaded:				db	"BIOS is not loaded!",NULL
 g_szEEPROM:							db	"EEPROM",NULL
@@ -238,12 +238,25 @@
 
 g_szMultichoiceCfgDevice:
-						db	"JR-IDE/ISA",LF
-						db	"Lo-tech XT-CF",LF
-						db	"XTIDE rev 2 or modded rev 1",LF
-						db	"XTIDE rev 1",LF
 						db	"16-bit ISA/VLB/PCI IDE",LF
 						db	"32-bit VLB/PCI IDE",LF
+						db	"16-bit ISA IDE in 8-bit mode",LF
+						db	"XTIDE rev 1",LF
+						db	"XTIDE rev 2 or modded rev 1",LF
+						db	"Lo-tech XT-CF in PIO mode",LF
+						db	"Lo-tech XT-CF in DMA mode",LF
+						db	"Lo-tech XT-CF in memory mode",LF
+						db	"JR-IDE/ISA",LF
 						db	"Serial port virtual device",NULL
 
+g_szValueCfgDevice16b:		db	"16-bit",NULL
+g_szValueCfgDevice32b:		db	"32-bit",NULL
+g_szValueCfgDevice8b:		db	"8-bit",NULL
+g_szValueCfgDeviceRev1:		db	"XTIDE r1",NULL
+g_szValueCfgDeviceRev2:		db	"XTIDE r2",NULL
+g_szValueCfgDevicePioXTCF:	db	"XTCF PIO",NULL
+g_szValueCfgDeviceDmaXTCF:	db	"XTCF DMA",NULL
+g_szValueCfgDeviceMemXTCF:	db	"XTCF MEM",NULL
+g_szValueCfgDeviceJrIdeIsa:	db	"JR-ISA",NULL
+g_szValueCfgDeviceSerial:	db	"Serial",NULL
 
 g_szSerialCOMChoice:
@@ -296,13 +309,4 @@
 
 
-g_szValueCfgDeviceJrIdeIsa:	db	"JR-ISA",NULL
-g_szValueCfgDeviceFast:		db	"XT-CF",NULL
-g_szValueCfgDeviceRev2:		db	"XTIDE r2",NULL
-g_szValueCfgDeviceRev1:		db	"XTIDE r1",NULL
-g_szValueCfgDevice16b:		db	"16-bit",NULL
-g_szValueCfgDevice32b:		db	"32-bit",NULL
-g_szValueCfgDeviceSerial:	db	"Serial",NULL
-
-
 
 ; Strings for DRVPARAMS menu
