Index: trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/IdeControllerMenu.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/IdeControllerMenu.asm	(revision 536)
+++ trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/IdeControllerMenu.asm	(revision 546)
@@ -26,5 +26,5 @@
 	at	MENUPAGE.fnEnter,			dw	IdeControllerMenu_EnterMenuOrModifyItemVisibility
 	at	MENUPAGE.fnBack,			dw	ConfigurationMenu_EnterMenuOrModifyItemVisibility
-	at	MENUPAGE.wMenuitems,		dw	12
+	at	MENUPAGE.wMenuitems,		dw	11
 iend
 
@@ -187,21 +187,4 @@
 iend
 
-g_MenuitemIdeControllerXTCFwindow:
-istruc MENUITEM
-	at	MENUITEM.fnActivate,		dw	Menuitem_ActivateHexInputForMenuitemInDSSI
-	at	MENUITEM.fnFormatValue,		dw	MenuitemPrint_WriteHexValueStringToBufferInESDIfromItemInDSSI
-	at	MENUITEM.szName,			dw	g_szItemIdeXTCFwindow
-	at	MENUITEM.szQuickInfo,		dw	g_szNfoIdeXTCFwindow
-	at	MENUITEM.szHelp,			dw	g_szNfoIdeXTCFwindow
-	at	MENUITEM.bFlags,			db	FLG_MENUITEM_BYTEVALUE
-	at	MENUITEM.bType,				db	TYPE_MENUITEM_HEX
-	at	MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,		dw	NULL
-	at	MENUITEM.itemValue + ITEM_VALUE.szDialogTitle,				dw	g_szDlgIdeXTCFwindow
-	at	MENUITEM.itemValue + ITEM_VALUE.wMinValue,					dw	0A000h
-	at	MENUITEM.itemValue + ITEM_VALUE.wMaxValue,					dw	0E800h
-	at	MENUITEM.itemValue + ITEM_VALUE.fnValueReader,				dw	ReaderForXTCFwindow
-	at	MENUITEM.itemValue + ITEM_VALUE.fnValueWriter,				dw	WriterForXTCFwindow
-iend
-
 g_rgwChoiceToValueLookupForDevice:
 	dw	DEVICE_16BIT_ATA
@@ -211,6 +194,6 @@
 	dw	DEVICE_8BIT_XTIDE_REV2
 	dw	DEVICE_8BIT_XTCF_PIO8
+	dw	DEVICE_8BIT_XTCF_PIO8_WITH_BIU_OFFLOAD
 	dw	DEVICE_8BIT_XTCF_DMA
-	dw	DEVICE_8BIT_XTCF_MEMMAP
 	dw	DEVICE_8BIT_JRIDE_ISA
 	dw	DEVICE_8BIT_ADP50L
@@ -222,7 +205,7 @@
 	dw	g_szValueCfgDeviceRev1
 	dw	g_szValueCfgDeviceRev2
-	dw	g_szValueCfgDevicePioXTCF
-	dw	g_szValueCfgDeviceDmaXTCF
-	dw	g_szValueCfgDeviceMemXTCF
+	dw	g_szValueCfgDeviceXTCFPio8
+	dw	g_szValueCfgDeviceXTCFPio8WithBIUOffload
+	dw	g_szValueCfgDeviceXTCFDMA
 	dw	g_szValueCfgDeviceJrIdeIsa
 	dw	g_szValueCfgDeviceADP50L
@@ -333,7 +316,4 @@
 	mov		[cs:g_MenuitemIdeControllerControlBlockAddress+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
 
-	lea		ax, [bx+IDEVARS.bXTCFcontrolRegister]
-	mov		[cs:g_MenuitemIdeControllerXTCFwindow+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
-
 	lea		ax, [bx+IDEVARS.bSerialCOMPortChar]
 	mov		[cs:g_MenuitemIdeControllerSerialCOM+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
@@ -362,5 +342,4 @@
 	call	.DisableIRQchannelSelection
 	call	.EnableOrDisableEnableInterrupt
-	call	.EnableOrDisableXTCFwindow
 	call	.EnableOrDisableSerial
 	mov		si, g_MenupageForIdeControllerMenu
@@ -430,23 +409,4 @@
 .DisableIRQchannelSelection:
 	mov		bx, g_MenuitemIdeControllerIdeIRQ
-	jmp		SHORT .DisableMenuitemFromCSBX
-
-
-;--------------------------------------------------------------------
-; .EnableOrDisableXTCFwindow
-;	Parameters:
-;		SS:BP:	Menu handle
-;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		AX, BX
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-.EnableOrDisableXTCFwindow:
-	mov		bx, [cs:g_MenuitemIdeControllerDevice+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset]
-	call	Buffers_GetRomvarsValueToAXfromOffsetInBX
-	mov		bx, g_MenuitemIdeControllerXTCFwindow
-	cmp		al, DEVICE_8BIT_XTCF_MEMMAP
-	je		SHORT .EnableMenuitemFromCSBX
 	; Fall to .DisableMenuitemFromCSBX
 
@@ -614,5 +574,5 @@
 		jbe		SHORT .writeNonSerial
 
-		mov		ax, DEVICE_XTIDE_DEFAULT_PORT		; Defaults for 8-bit XTIDE devices
+		mov		ax, DEVICE_XTIDE_DEFAULT_PORT		; Defaults for 8-bit XTIDE and XT-CF devices
 		mov		bx, DEVICE_XTIDE_DEFAULT_PORTCTRL
 
@@ -645,27 +605,6 @@
 
 .done:
-		; See if we are changing to XT-CF. If we are, store
-		; byte for Control Register.
 		pop		ax
 		pop		di			; IDEVARS.bDevice
-		sub		di, BYTE IDEVARS.bDevice - IDEVARS.bXTCFcontrolRegister	; IDEVARS.bXTCFcontrolRegister
-		cmp		al, DEVICE_8BIT_XTCF_PIO8 >> 1
-		je		SHORT .ChangingToPioModeXTCF
-		cmp		al, DEVICE_8BIT_XTCF_DMA >> 1
-		je		SHORT .ChangingToDmaModeXTCF
-		cmp		al, DEVICE_8BIT_XTCF_MEMMAP >> 1
-		jne		SHORT .NoNeedToChangeXTCFsettings
-
-		; XT-CF Memory Mapped Mode
-		mov		WORD [es:di], DEFAULT_XTCF_SECTOR_WINDOW_SEGMENT >> 8	; Store word to clear Control Block Port high byte
-		jmp		SHORT .NoNeedToChangeXTCFsettings
-.ChangingToPioModeXTCF:
-		mov		BYTE [es:di], XTCF_8BIT_PIO_MODE
-		jmp		SHORT .NoNeedToChangeXTCFsettings
-.ChangingToDmaModeXTCF:
-		mov		BYTE [es:di], XTCF_DMA_MODE
-		; Fall to .NoNeedToChangeXTCFsettings
-
-.NoNeedToChangeXTCFsettings:
 		pop		di
 		pop		bx
Index: trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/MainMenu.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/MainMenu.asm	(revision 536)
+++ trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/MainMenu.asm	(revision 546)
@@ -279,5 +279,5 @@
 	call	Buffers_SaveChangesIfFileLoaded
 	call	EEPROM_LoadOldSettingsFromRomToRamBuffer
-	and		WORD [g_cfgVars+CFGVARS.wFlags], ~FLG_CFGVARS_UNSAVED
+	call	Buffers_SetUnsavedChanges
 	mov		dx, g_szDlgMainLoadStngs
 	jmp		Dialogs_DisplayNotificationFromCSDX
Index: trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm	(revision 536)
+++ trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm	(revision 546)
@@ -278,7 +278,7 @@
 							db	"XTIDE rev 1",LF
 							db	"XTIDE rev 2 or modded rev 1",LF
-							db	"XT-CF v2/v3/Lite in PIO mode",LF
-							db	"XT-CF v2 in DMA mode",LF
-							db	"XT-CF v2 in memory mode",LF
+							db	"XT-CF (PIO)",LF
+							db	"XT-CF (PIO w/BIU offload)",LF
+							db	"XT-CF DMA (v3 only)",LF
 							db	"JR-IDE/ISA",LF
 							db	"SVC ADP50L",LF
@@ -290,7 +290,7 @@
 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_szValueCfgDeviceXTCFPio8:	db	"XTCF PIO",NULL
+g_szValueCfgDeviceXTCFPio8WithBIUOffload:	db	"XTCF BIU",NULL
+g_szValueCfgDeviceXTCFDMA:	db	"XTCF DMA",NULL
 g_szValueCfgDeviceJrIdeIsa:	db	"JR-ISA",NULL
 g_szValueCfgDeviceADP50L:	db	"ADP50L",NULL
@@ -373,6 +373,6 @@
 g_szNfoDrvHeads:		db	"Number of user specified P-CHS heads.",NULL
 g_szNfoDrvSect:			db	"Number of user specified P-CHS sectors per track.",NULL
-g_szNfoDrvUserLBA:		db	"Limit drive capacity to X million sectors.",NULL
-g_szNfoDrvLbaSectors:	db	"Millions of sectors (1024*1024). 1M sectors = 512 MiB.",NULL
+g_szNfoDrvUserLBA:		db	"Limit drive capacity to fix compatibility problems with Windows 9x.",NULL
+g_szNfoDrvLbaSectors:	db	"Millions of sectors (1024*1024). 1M sectors = 512 MiB. Recommended limits are 64 for Windows 95, 128 for Windows 98 and 256 for Windows ME (and 98 with updated fdisk).",NULL
 
 g_szHelpDrvBlockMode:	db	"Block Mode will speed up transfers since multiple sectors can be transferred before waiting next data request."
