@ECHO OFF

IF NOT EXIST %1\COMMAND\ATTRIB.EXE GOTO BADPATH
IF NOT EXIST PATCHES\IO.SYS GOTO NOINST
%1\COMMAND\ATTRIB.EXE -S -H -R C:\IO.SYS

IF EXIST C:\IO.BAK GOTO UNINST
IF EXIST %1\DBLBUFF.BAK GOTO UNINST
IF EXIST %1\SMARTDRV.BAK GOTO UNINST
IF EXIST %1\SYSTEM\IOSUBSYS\ESDI_506.BAK GOTO UNINST
IF EXIST %1\SYSTEM\VMM32\IOS.BAK GOTO UNINST
IF EXIST %1\SYSTEM\VMM32\VFAT.BAK GOTO UNINST

IF NOT EXIST C:\IO.SYS GOTO MISSING
IF NOT EXIST %1\DBLBUFF.SYS GOTO MISSING
IF NOT EXIST %1\SMARTDRV.EXE GOTO MISSING
IF NOT EXIST %1\SYSTEM\IOSUBSYS\ESDI_506.PDR GOTO MISSING

REN C:\IO.SYS IO.BAK
IF ERRORLEVEL 1 GOTO BKERR
REN %1\DBLBUFF.SYS DBLBUFF.BAK
IF ERRORLEVEL 1 GOTO BKERR
REN %1\SMARTDRV.EXE SMARTDRV.BAK
IF ERRORLEVEL 1 GOTO BKERR
REN %1\SYSTEM\IOSUBSYS\ESDI_506.PDR ESDI_506.BAK
IF ERRORLEVEL 1 GOTO BKERR
REN %1\SYSTEM\VMM32\IOS.VXD IOS.BAK
REN %1\SYSTEM\VMM32\VFAT.VXD VFAT.BAK

COPY PATCHES\IO.SYS C:\IO.SYS
IF ERRORLEVEL 1 GOTO CPERR
COPY PATCHES\DBLBUFF.SYS %1\DBLBUFF.SYS
IF ERRORLEVEL 1 GOTO CPERR
COPY PATCHES\SMARTDRV.EXE %1\SMARTDRV.EXE
IF ERRORLEVEL 1 GOTO CPERR
COPY PATCHES\ESDI_506.PDR %1\SYSTEM\IOSUBSYS\ESDI_506.PDR
IF ERRORLEVEL 1 GOTO CPERR
COPY PATCHES\IOS.VXD %1\SYSTEM\VMM32\IOS.VXD
IF ERRORLEVEL 1 GOTO CPERR
COPY PATCHES\VFAT.VXD %1\SYSTEM\VMM32\VFAT.VXD
IF ERRORLEVEL 1 GOTO CPERR
COPY PATCHES\SATA.INF %1\INF\SATA.INF
IF ERRORLEVEL 1 GOTO CPERR
COPY PATCHES\ATA0104.INF %1\INF\ATA0104.INF
IF ERRORLEVEL 1 GOTO CPERR
COPY PATCHES\ATA0106.INF %1\INF\ATA0106.INF
IF ERRORLEVEL 1 GOTO CPERR
COPY PATCHES\SATA0180.INF %1\INF\SATA0180.INF
IF ERRORLEVEL 1 GOTO CPERR

ECHO TBPLUS PATCHES INSTALLED SUCCESSFULLY
GOTO EXIT
:CPERR
ECHO ERROR COPYING NEW FILES
GOTO EXIT
:BKERR
ECHO ERROR RENAMING ORIGINAL FILES
GOTO EXIT
:UNINST

IF NOT EXIST C:\IO.BAK GOTO MOD
IF NOT EXIST %1\DBLBUFF.BAK GOTO MOD
IF NOT EXIST %1\SMARTDRV.BAK GOTO MOD
IF NOT EXIST %1\SYSTEM\IOSUBSYS\ESDI_506.BAK GOTO MOD

ECHO TBPLUS PATCHES ALREADY APPLIED - RUN UNINST TO REMOVE
GOTO EXIT
:MOD
ECHO ONE OR MORE FILES ALREADY PATCHED - UNINSTALL PATCHES FIRST
GOTO EXIT
:MISSING
ECHO FILES MISSING OR WINDOWS DAMAGED
GOTO EXIT
:NOINST
ECHO PATCH FILE DIRECTORY NOT IN CURRENT DIRECTORY
GOTO EXIT
:BADPATH
ECHO WINDOWS PATH INCORRECT OR WINDOWS DAMAGED
GOTO EXIT
:EXIT
@ECHO ON
