Index: trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm	(revision 262)
+++ trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm	(revision 266)
@@ -56,5 +56,7 @@
 	mov		[di+DPT.bIdevarsOffset], bp
 	mov		BYTE [di+DPT_ATA.bSetBlock], 1	; Block = 1 sector
+%ifdef ASSEMBLE_SHARED_IDE_DEVICE_FUNCTIONS
 	call	IdeDPT_StoreReversedAddressLinesFlagIfNecessary
+%endif
 
 	; Wait until drive motors have reached max speed
@@ -108,4 +110,5 @@
 	; Output Device Control Byte to enable or disable interrupts
 	mov		al, [bp+IDEPACK.bDeviceControl]
+%ifdef ASSEMBLE_SHARED_IDE_DEVICE_FUNCTIONS	; JR-IDE/ISA
 	test	al, FLG_DEVCONTROL_nIEN	; Interrupts disabled?
 	jnz		SHORT .DoNotSetInterruptInServiceFlag
@@ -118,4 +121,5 @@
 	pop		ds
 .DoNotSetInterruptInServiceFlag:
+%endif
 	OUTPUT_AL_TO_IDE_CONTROL_BLOCK_REGISTER DEVICE_CONTROL_REGISTER_out
 
@@ -127,10 +131,10 @@
 	eMOVZX	ax, BYTE [bp+IDEPACK.bLbaLowExt]
 	mov		cx, [bp+IDEPACK.wLbaMiddleAndHighExt]
-	call	OutputSectorCountAndAddress
+	call	IDEDEVICE%+OutputSectorCountAndAddress
 
 	; Output Sector Address Low
 	mov		ax, [bp+IDEPACK.wSectorCountAndLbaLow]
 	mov		cx, [bp+IDEPACK.wLbaMiddleAndHigh]
-	call	OutputSectorCountAndAddress
+	call	IDEDEVICE%+OutputSectorCountAndAddress
 
 	; Output command
@@ -198,7 +202,6 @@
 ;		AL, BX, DX
 ;--------------------------------------------------------------------
-%ifdef ASSEMBLE_SHARED_IDE_DEVICE_FUNCTIONS
-ALIGN JUMP_ALIGN
-OutputSectorCountAndAddress:
+ALIGN JUMP_ALIGN
+IDEDEVICE%+OutputSectorCountAndAddress:
 	OUTPUT_AL_TO_IDE_REGISTER SECTOR_COUNT_REGISTER
 
@@ -211,3 +214,2 @@
 	mov		al, ch
 	JUMP_TO_OUTPUT_AL_TO_IDE_REGISTER LBA_HIGH_REGISTER
-%endif
Index: trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeError.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeError.asm	(revision 262)
+++ trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeError.asm	(revision 266)
@@ -30,5 +30,7 @@
 
 	; Fall to GetBiosErrorCodeToAHfromStatusAndErrorRegistersInAX
-
+%ifndef ASSEMBLE_SHARED_IDE_DEVICE_FUNCTIONS	; JR-IDE/ISA
+	jmp		GetBiosErrorCodeToAHfromStatusAndErrorRegistersInAX
+%endif
 
 ;--------------------------------------------------------------------
Index: trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm	(revision 262)
+++ trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm	(revision 266)
@@ -76,10 +76,9 @@
 ;		AL, BX, CX, DX
 ;--------------------------------------------------------------------
-%ifdef ASSEMBLE_SHARED_IDE_DEVICE_FUNCTIONS
-PollBsyAndFlgInAH:
-	call	IDEDEVICE%+ReadIdeStatusRegisterToAL; Discard contents for first read
+IDEDEVICE%+PollBsyAndFlgInAH:
+	INPUT_TO_AL_FROM_IDE_REGISTER	STATUS_REGISTER_in	; Discard contents for first read
 ALIGN JUMP_ALIGN
 .PollLoop:
-	call	IDEDEVICE%+ReadIdeStatusRegisterToAL
+	INPUT_TO_AL_FROM_IDE_REGISTER	STATUS_REGISTER_in
 	test	al, FLG_STATUS_BSY					; Controller busy?
 	jnz		SHORT .UpdateTimeout				;  If so, jump to timeout update
@@ -95,5 +94,4 @@
 .ReturnErrorCodeInAH:
 	ret
-%endif
 
 
@@ -110,8 +108,8 @@
 ;--------------------------------------------------------------------
 IDEDEVICE%+PollBsyOnly:
-	call	IDEDEVICE%+ReadIdeStatusRegisterToAL; Discard contents for first read
+	INPUT_TO_AL_FROM_IDE_REGISTER	STATUS_REGISTER_in	; Discard contents for first read
 ALIGN JUMP_ALIGN
 .PollLoop:
-	call	IDEDEVICE%+ReadIdeStatusRegisterToAL
+	INPUT_TO_AL_FROM_IDE_REGISTER	STATUS_REGISTER_in
 	test	al, FLG_STATUS_BSY					; Controller busy?
 	jz		SHORT IDEDEVICE%+Error_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
@@ -119,16 +117,2 @@
 	jnc		SHORT .PollLoop						; Loop if time left (sets CF on timeout)
 	jmp		SHORT IDEDEVICE%+Error_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
-
-
-;--------------------------------------------------------------------
-; ReadIdeStatusRegisterToAL
-;	Parameters:
-;		DS:DI:	Ptr to DPT (in RAMVARS segment)
-;	Returns:
-;		AL:		IDE Status Register contents
-;	Corrupts registers:
-;		BX, DX
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-IDEDEVICE%+ReadIdeStatusRegisterToAL:
-	JUMP_TO_INPUT_TO_AL_FROM_IDE_REGISTER STATUS_REGISTER_in
Index: trunk/XTIDE_Universal_BIOS/Src/Device/MemoryMappedIDE/MemIdeTransfer.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Device/MemoryMappedIDE/MemIdeTransfer.asm	(revision 262)
+++ trunk/XTIDE_Universal_BIOS/Src/Device/MemoryMappedIDE/MemIdeTransfer.asm	(revision 266)
@@ -160,10 +160,5 @@
 .WriteLastBlockToDrive:
 	mov		ch, [bp+PIOVARS.wWordsLeft+1]		; Sectors left
-%ifndef USE_186
-	mov		bx, CheckErrorsAfterTransferringLastMemoryMappedBlock
-	push	bx
-%else
-	push	CheckErrorsAfterTransferringLastMemoryMappedBlock
-%endif
+	ePUSH_T	bx, CheckErrorsAfterTransferringLastMemoryMappedBlock
 	; Fall to WriteSingleBlockFromDSSIToSectorAccessWindowInESDI
 
