.AUTODEPEND
# REL  = xxx
# LANG = RUSSIAN,GERMAN,ENGLISH
# CPU_TYPE = 86,386
# STYLE    = DEMO RELEASE OLDSTYLE
# EXT      = STD CDEXT

PREFIX = S

TOOLS_BIN = auxiliary\bin
ROOT_DIR = rel$(REL)
LANG_DIR = $(ROOT_DIR)\$(LANG)
CPU_DIR  = $(LANG_DIR)\$(CPU_TYPE)
KER_DIR  = $(CPU_DIR)
EXT_DIR  = $(KER_DIR)
OBJ_DIR  = obj
OBJ_DIR_CPU =$(OBJ_DIR)\$(CPU_TYPE)

dirs:
 @call &&|
@echo off
ctty nul
mkdir $(ROOT_DIR)    > nul
echo Files of this directory are common for all cases. > $(ROOT_DIR)\desc.inf
mkdir $(LANG_DIR)    > nul
echo All subdirs and files are language dependent > $(LANG_DIR)\desc.inf
mkdir $(CPU_DIR)     > nul
echo These files are depent upon target CPU > $(CPU_DIR)\desc.inf
mkdir $(KER_DIR)     > nul
mkdir $(EXT_DIR)     > nul
mkdir $(OBJ_DIR)     > nul
echo Object files without dependency of CPU > $(OBJ_DIR)\desc.inf
mkdir $(OBJ_DIR_CPU) > nul
echo Object files which are different for CPU type > $(OBJ_DIR_CPU)\desc.inf
ctty con
|


TOOLS_	  = $(TOOLS_BIN)\stripexe.com
COMMON    = $(ROOT_DIR)\keyboard.sys $(ROOT_DIR)\country.sys \
            $(ROOT_DIR)\display.cpi
DEVICES   = $(LANG_DIR)\himem286.sys $(LANG_DIR)\himem386.sys
UTILITIES = $(LANG_DIR)\append.com $(LANG_DIR)\sort.com $(LANG_DIR)\assign.com \
	    $(LANG_DIR)\beep.com $(LANG_DIR)\disp.com $(LANG_DIR)\fastopen.com \
	    $(LANG_DIR)\history.com $(LANG_DIR)\join.com $(LANG_DIR)\keyb.com \
	    $(LANG_DIR)\label.com $(LANG_DIR)\loadfix.com $(LANG_DIR)\fdisk.com \
            $(LANG_DIR)\mkzombie.com $(LANG_DIR)\mode.com $(LANG_DIR)\more.com \
	    $(LANG_DIR)\nlsfunc.com $(LANG_DIR)\rdzombie.com \
	    $(LANG_DIR)\subst.com $(LANG_DIR)\sys.com $(LANG_DIR)\uninstal.com \
	    $(EXT_DIR)\mem.com $(EXT_DIR)\share.exe

KERNEL    = $(EXT_DIR)\$(PREFIX)dos.sys $(EXT_DIR)\$(PREFIX)bio.sys
DBG       = $(EXT_DIR)\dos.exe    $(EXT_DIR)\$(PREFIX)bio.sys


TASM_SWITCH = /z/Zi/t/ml/m9

!if $d(DEBUG)
LIST_TODO=$(DBG)
TASM_SWITCH = $(TASM_SWITCH) /DDEBUG_OK=1
DBGEXT = D
!else
LIST_TODO=$(KERNEL) $(UTILITIES) $(COMMON) $(DEVICES)
TASM_SWITCH = $(TASM_SWITCH) /DDEBUG_OK=0
DBGEXT = R
!endif

ISOEXT = S

!if   $(LANG) == ENGLISH
LGNEXT=E
!elif $(LANG) == RUSSIAN
LGNEXT=R
!elif $(LANG) == GERMAN
LGNEXT=G
!endif

LOGEXT = R



TASM_SWITCH = $(TASM_SWITCH) /DLANGUAGE=$(LANG)

tools: $(TOOLS_)

version: tasm_cfg $(LIST_TODO)
 del tasm.cfg > nul

tasm_cfg:
  @echo $(TASM_SWITCH) > tasm.cfg

TASM = TASM
TLINK    = tlink /x/3/c
TLINKDOS = tlink /s/m/3/c
TASMT = $(TASM) /Isrc\utilities
TASMU = $(TASM) /Isrc\utilities
TASMK = $(TASM) /DCPU=$(CPU_TYPE)
EXE2BIN = $(TOOLS_BIN)\stripexe.com

# DBGEXT
# ISOEXT
# LGNEXT
# LOGEXT

KERNEL_OBJS = \
 $(OBJ_DIR_CPU)\head$(DBGEXT).obj                        \
 $(OBJ_DIR_CPU)\apiifsn$(ISOEXT).obj                     \
 $(OBJ_DIR_CPU)\auxdev.obj	                             \
 $(OBJ_DIR_CPU)\backdr$(ISOEXT).obj                      \
 $(OBJ_DIR_CPU)\bfr$(ISOEXT).obj                         \
 $(OBJ_DIR_CPU)\blkdev$(DBGEXT).obj                      \
 $(OBJ_DIR_CPU)\chario.obj                               \
 $(OBJ_DIR_CPU)\clock.obj                                \
 $(OBJ_DIR_CPU)\cntrman.obj                              \
 $(OBJ_DIR_CPU)\condev.obj                               \
 $(OBJ_DIR_CPU)\dirio$(ISOEXT).obj                       \
 $(OBJ_DIR_CPU)\dosapi$(DBGEXT).obj                      \
 $(OBJ_DIR_CPU)\entrymn$(ISOEXT).obj                     \
 $(OBJ_DIR_CPU)\exec$(LOGEXT).obj                        \
 $(OBJ_DIR_CPU)\fileio$(ISOEXT).obj                      \
 $(OBJ_DIR_CPU)\find$(ISOEXT).obj                        \
 $(OBJ_DIR_CPU)\getst$(ISOEXT)$(REL).obj                \
 $(OBJ_DIR_CPU)\getstr.obj                               \
 $(OBJ_DIR_CPU)\ifs$(ISOEXT).obj                         \
 $(OBJ_DIR_CPU)\int24hnd.obj                             \
 $(OBJ_DIR_CPU)\intredir.obj                             \
 $(OBJ_DIR_CPU)\ioctl$(ISOEXT).obj                       \
 $(OBJ_DIR_CPU)\mem.obj                                  \
 $(OBJ_DIR_CPU)\network.obj                              \
 $(OBJ_DIR_CPU)\prndev.obj                               \
 $(OBJ_DIR_CPU)\rename.obj                               \
 $(OBJ_DIR_CPU)\server.obj                               \
 $(OBJ_DIR_CPU)\sftman$(ISOEXT).obj                      \
 $(OBJ_DIR_CPU)\share.obj                                \
 $(OBJ_DIR_CPU)\stdio.obj                                \
 $(OBJ_DIR_CPU)\timer.obj                                \
 $(OBJ_DIR_CPU)\unlink.obj                               \
 $(OBJ_DIR_CPU)\util$(ISOEXT).obj                        \
 $(OBJ_DIR_CPU)\bltin$(LGNEXT).obj                       \
 $(OBJ_DIR_CPU)\kernel.obj                               \
 $(OBJ_DIR_CPU)\kernel2.obj                              \
 $(OBJ_DIR_CPU)\config$(DBGEXT).obj                      \
 $(OBJ_DIR_CPU)\drvhd$(DBGEXT)$(LGNEXT).obj              \
 $(OBJ_DIR_CPU)\init$(ISOEXT).obj                        \
 $(OBJ_DIR_CPU)\startup$(ISOEXT).obj		     \
 $(OBJ_DIR_CPU)\strtp2$(ISOEXT)$(DBGEXT).obj	     \
 $(OBJ_DIR_CPU)\syshlp$(DBGEXT).obj                      \
 $(OBJ_DIR_CPU)\excode$(DBGEXT).obj	                     \
 $(OBJ_DIR_CPU)\cputype.obj	                             \
 $(OBJ_DIR_CPU)\zzz.obj		                     \
 $(OBJ_DIR_CPU)\sda$(ISOEXT).obj	                     \
 $(OBJ_DIR_CPU)\windows.obj	                             \
 $(OBJ_DIR_CPU)\devexec.obj	                             \
 $(OBJ_DIR_CPU)\umbts$(DBGEXT).obj			     \
 $(OBJ_DIR_CPU)\scanner$(ISOEXT).obj	             \
 $(OBJ_DIR_CPU)\debug.obj		                     \
 $(OBJ_DIR_CPU)\fcb$(DBGEXT).obj		             \
 $(OBJ_DIR_CPU)\fcbio$(DBGEXT).obj		             \
 $(OBJ_DIR_CPU)\xsftman.obj	                             \
 $(OBJ_DIR_CPU)\csftman.obj	                             \
 $(OBJ_DIR_CPU)\xmsutil$(ISOEXT).obj	             \
 $(OBJ_DIR_CPU)\link.obj		                     \
 $(OBJ_DIR_CPU)\video.obj	                             \
 $(OBJ_DIR_CPU)\drvseg$(DBGEXT).obj	                     \
 $(OBJ_DIR_CPU)\zombi.obj		                     \
 $(OBJ_DIR_CPU)\reboot.obj	                             \
 $(OBJ_DIR_CPU)\ansi.obj		                     \
 $(OBJ_DIR_CPU)\lock$(ISOEXT).obj	                     \
 $(OBJ_DIR_CPU)\display.obj 	                     \
 $(OBJ_DIR_CPU)\keyboard.obj	                     \
 $(OBJ_DIR_CPU)\atclock.obj	                             \
 $(OBJ_DIR_CPU)\stdclock.obj	                     \
 $(OBJ_DIR_CPU)\comdebug.obj	                     \
 $(OBJ_DIR_CPU)\defct$(LGNEXT).obj	                     \
 $(OBJ_DIR_CPU)\cdio$(ISOEXT).obj                        \
 $(OBJ_DIR_CPU)\cdcache$(ISOEXT).obj                     \
 $(OBJ_DIR_CPU)\cdinit$(ISOEXT).obj                      \
 $(OBJ_DIR_CPU)\iso9660$(ISOEXT).obj                     \
 $(OBJ_DIR)\version.obj				    \
 $(OBJ_DIR_CPU)\loadfx.obj


# normal code
$(EXT_DIR)\$(PREFIX)dos.exe: $(KERNEL_OBJS )
 @echo Linking $(EXT_DIR)\$(PREFIX)dos.exe ....
  $(TLINKDOS)  @&&|
$(OBJ_DIR_CPU)\head$(DBGEXT).obj+
$(OBJ_DIR_CPU)\auxdev.obj+
$(OBJ_DIR_CPU)\backdr$(ISOEXT).obj+
$(OBJ_DIR_CPU)\blkdev$(DBGEXT).obj+
$(OBJ_DIR_CPU)\chario.obj+
$(OBJ_DIR_CPU)\apiifsn$(ISOEXT).obj+
$(OBJ_DIR_CPU)\clock.obj+
$(OBJ_DIR_CPU)\exec$(LOGEXT).obj+
$(OBJ_DIR_CPU)\cntrman.obj+
$(OBJ_DIR_CPU)\condev.obj+
$(OBJ_DIR_CPU)\dirio$(ISOEXT).obj+
$(OBJ_DIR_CPU)\bfr$(ISOEXT).obj+
$(OBJ_DIR_CPU)\entrymn$(ISOEXT).obj+
$(OBJ_DIR_CPU)\fileio$(ISOEXT).obj+
$(OBJ_DIR_CPU)\find$(ISOEXT).obj+
$(OBJ_DIR_CPU)\getst$(ISOEXT)$(REL).obj+
$(OBJ_DIR_CPU)\getstr.obj+
$(OBJ_DIR_CPU)\ifs$(ISOEXT).obj+
$(OBJ_DIR_CPU)\int24hnd.obj+
$(OBJ_DIR_CPU)\intredir.obj+
$(OBJ_DIR_CPU)\video.obj+
$(OBJ_DIR_CPU)\ioctl$(ISOEXT).obj+
$(OBJ_DIR_CPU)\mem.obj+
$(OBJ_DIR_CPU)\network.obj+
$(OBJ_DIR_CPU)\prndev.obj+
$(OBJ_DIR_CPU)\rename.obj+
$(OBJ_DIR_CPU)\server.obj+
$(OBJ_DIR_CPU)\dosapi$(DBGEXT).obj+
$(OBJ_DIR_CPU)\sftman$(ISOEXT).obj+
$(OBJ_DIR_CPU)\share.obj+
$(OBJ_DIR_CPU)\cdio$(ISOEXT).obj+
$(OBJ_DIR_CPU)\cdcache$(ISOEXT).obj+
$(OBJ_DIR_CPU)\iso9660$(ISOEXT).obj+
$(OBJ_DIR_CPU)\stdio.obj+
$(OBJ_DIR_CPU)\timer.obj+
$(OBJ_DIR_CPU)\unlink.obj+
$(OBJ_DIR_CPU)\util$(ISOEXT).obj+
$(OBJ_DIR_CPU)\bltin$(LGNEXT).obj+
$(OBJ_DIR_CPU)\fcb$(DBGEXT).obj+
$(OBJ_DIR_CPU)\kernel.obj+
$(OBJ_DIR_CPU)\fcbio$(DBGEXT).obj+
$(OBJ_DIR_CPU)\lock$(ISOEXT).obj+
$(OBJ_DIR_CPU)\kernel2.obj+
$(OBJ_DIR_CPU)\windows.obj+
$(OBJ_DIR_CPU)\xsftman.obj+
$(OBJ_DIR_CPU)\csftman.obj+
$(OBJ_DIR_CPU)\xmsutil$(ISOEXT).obj+
$(OBJ_DIR_CPU)\atclock.obj+
$(OBJ_DIR_CPU)\stdclock.obj+
$(OBJ_DIR_CPU)\reboot.obj+
$(OBJ_DIR_CPU)\zombi.obj+
$(OBJ_DIR_CPU)\ansi.obj+
$(OBJ_DIR_CPU)\display.obj+
$(OBJ_DIR_CPU)\keyboard.obj+
$(OBJ_DIR_CPU)\link.obj+
$(OBJ_DIR_CPU)\config$(DBGEXT).obj+
$(OBJ_DIR_CPU)\cputype.obj+
$(OBJ_DIR_CPU)\debug.obj+
$(OBJ_DIR_CPU)\devexec.obj+
$(OBJ_DIR_CPU)\comdebug.obj+
$(OBJ_DIR_CPU)\drvhd$(DBGEXT)$(LGNEXT).obj+
$(OBJ_DIR_CPU)\cdinit$(ISOEXT).obj+
$(OBJ_DIR_CPU)\init$(ISOEXT).obj+
$(OBJ_DIR_CPU)\scanner$(ISOEXT).obj+
$(OBJ_DIR_CPU)\startup$(ISOEXT).obj+
$(OBJ_DIR_CPU)\strtp2$(ISOEXT)$(DBGEXT).obj+
$(OBJ_DIR_CPU)\syshlp$(DBGEXT).obj+
$(OBJ_DIR_CPU)\excode$(DBGEXT).obj+
$(OBJ_DIR_CPU)\umbts$(DBGEXT).obj+
$(OBJ_DIR_CPU)\loadfx.obj+
$(OBJ_DIR_CPU)\defct$(LGNEXT).obj+
$(OBJ_DIR_CPU)\zzz.obj+
$(OBJ_DIR_CPU)\drvseg$(DBGEXT).obj+
$(OBJ_DIR_CPU)\sda$(ISOEXT).obj+
$(OBJ_DIR)\version.obj
$(EXT_DIR)\$(PREFIX)dos.exe
$(OBJ_DIR_CPU)\$(PREFIX)dos.map
|

# debug code
$(EXT_DIR)\dos.exe:    $(KERNEL_OBJS ) $(OBJ_DIR_CPU)\junk.obj
 @echo Linking debug version $(EXT_DIR)\dos.exe ....
  $(TLINKDOS) /v @&&|
$(OBJ_DIR_CPU)\junk.obj+
$(OBJ_DIR_CPU)\head$(DBGEXT).obj+
$(OBJ_DIR_CPU)\auxdev.obj+
$(OBJ_DIR_CPU)\backdr$(ISOEXT).obj+
$(OBJ_DIR_CPU)\blkdev$(DBGEXT).obj+
$(OBJ_DIR_CPU)\chario.obj+
$(OBJ_DIR_CPU)\apiifsn$(ISOEXT).obj+
$(OBJ_DIR_CPU)\clock.obj+
$(OBJ_DIR_CPU)\exec$(LOGEXT).obj+
$(OBJ_DIR_CPU)\cntrman.obj+
$(OBJ_DIR_CPU)\condev.obj+
$(OBJ_DIR_CPU)\dirio$(ISOEXT).obj+
$(OBJ_DIR_CPU)\bfr$(ISOEXT).obj+
$(OBJ_DIR_CPU)\entrymn$(ISOEXT).obj+
$(OBJ_DIR_CPU)\fileio$(ISOEXT).obj+
$(OBJ_DIR_CPU)\find$(ISOEXT).obj+
$(OBJ_DIR_CPU)\getst$(ISOEXT)$(REL).obj+
$(OBJ_DIR_CPU)\getstr.obj+
$(OBJ_DIR_CPU)\ifs$(ISOEXT).obj+
$(OBJ_DIR_CPU)\int24hnd.obj+
$(OBJ_DIR_CPU)\intredir.obj+
$(OBJ_DIR_CPU)\video.obj+
$(OBJ_DIR_CPU)\ioctl$(ISOEXT).obj+
$(OBJ_DIR_CPU)\mem.obj+
$(OBJ_DIR_CPU)\network.obj+
$(OBJ_DIR_CPU)\prndev.obj+
$(OBJ_DIR_CPU)\rename.obj+
$(OBJ_DIR_CPU)\server.obj+
$(OBJ_DIR_CPU)\dosapi$(DBGEXT).obj+
$(OBJ_DIR_CPU)\sftman$(ISOEXT).obj+
$(OBJ_DIR_CPU)\share.obj+
$(OBJ_DIR_CPU)\cdio$(ISOEXT).obj+
$(OBJ_DIR_CPU)\cdcache$(ISOEXT).obj+
$(OBJ_DIR_CPU)\iso9660$(ISOEXT).obj+
$(OBJ_DIR_CPU)\stdio.obj+
$(OBJ_DIR_CPU)\timer.obj+
$(OBJ_DIR_CPU)\unlink.obj+
$(OBJ_DIR_CPU)\util$(ISOEXT).obj+
$(OBJ_DIR_CPU)\bltin$(LGNEXT).obj+
$(OBJ_DIR_CPU)\fcb$(DBGEXT).obj+
$(OBJ_DIR_CPU)\kernel.obj+
$(OBJ_DIR_CPU)\fcbio$(DBGEXT).obj+
$(OBJ_DIR_CPU)\lock$(ISOEXT).obj+
$(OBJ_DIR_CPU)\kernel2.obj+
$(OBJ_DIR_CPU)\windows.obj+
$(OBJ_DIR_CPU)\xsftman.obj+
$(OBJ_DIR_CPU)\csftman.obj+
$(OBJ_DIR_CPU)\xmsutil$(ISOEXT).obj+
$(OBJ_DIR_CPU)\atclock.obj+
$(OBJ_DIR_CPU)\stdclock.obj+
$(OBJ_DIR_CPU)\reboot.obj+
$(OBJ_DIR_CPU)\zombi.obj+
$(OBJ_DIR_CPU)\ansi.obj+
$(OBJ_DIR_CPU)\display.obj+
$(OBJ_DIR_CPU)\keyboard.obj+
$(OBJ_DIR_CPU)\link.obj+
$(OBJ_DIR_CPU)\config$(DBGEXT).obj+
$(OBJ_DIR_CPU)\cputype.obj+
$(OBJ_DIR_CPU)\debug.obj+
$(OBJ_DIR_CPU)\devexec.obj+
$(OBJ_DIR_CPU)\comdebug.obj+
$(OBJ_DIR_CPU)\drvhd$(DBGEXT)$(LGNEXT).obj+
$(OBJ_DIR_CPU)\cdinit$(ISOEXT).obj+
$(OBJ_DIR_CPU)\init$(ISOEXT).obj+
$(OBJ_DIR_CPU)\scanner$(ISOEXT).obj+
$(OBJ_DIR_CPU)\startup$(ISOEXT).obj+
$(OBJ_DIR_CPU)\strtp2$(ISOEXT)$(DBGEXT).obj+
$(OBJ_DIR_CPU)\syshlp$(DBGEXT).obj+
$(OBJ_DIR_CPU)\excode$(DBGEXT).obj+
$(OBJ_DIR_CPU)\umbts$(DBGEXT).obj+
$(OBJ_DIR_CPU)\loadfx.obj+
$(OBJ_DIR_CPU)\defct$(LGNEXT).obj+
$(OBJ_DIR_CPU)\zzz.obj+
$(OBJ_DIR_CPU)\drvseg$(DBGEXT).obj+
$(OBJ_DIR_CPU)\sda$(ISOEXT).obj+
$(OBJ_DIR)\version.obj
$(EXT_DIR)\dos.exe
$(OBJ_DIR_CPU)\$(PREFIX)dos.map
|

$(EXT_DIR)\$(PREFIX)dos.sys:		$(EXT_DIR)\$(PREFIX)dos.exe
	$(EXE2BIN) $(EXT_DIR)\$(PREFIX)dos.exe $(EXT_DIR)\$(PREFIX)dos.sys

################################################################################


#		*Individual File Dependencies*
$(OBJ_DIR)\version.obj:			src\kernel\dos\version.asm
	$(TASMK) src\kernel\dos\version.asm,$(OBJ_DIR)\version.obj

$(OBJ_DIR_CPU)\scanner$(ISOEXT).obj:	src\kernel\dos\scanner.asm
 	$(TASMK) src\kernel\dos\scanner.asm,$(OBJ_DIR_CPU)\scanner$(ISOEXT).obj

$(OBJ_DIR_CPU)\umbts$(DBGEXT).obj:		src\kernel\dos\umbtst.asm
	$(TASMK) src\kernel\dos\umbtst.asm,$(OBJ_DIR_CPU)\umbts$(DBGEXT).obj

$(OBJ_DIR_CPU)\fcb$(DBGEXT).obj:		src\kernel\dos\fcb.asm
	$(TASMK) src\kernel\dos\fcb.asm,$(OBJ_DIR_CPU)\fcb$(DBGEXT).obj

$(OBJ_DIR_CPU)\fcbio$(DBGEXT).obj:		src\kernel\dos\fcbio.asm
	$(TASMK) src\kernel\dos\fcbio.asm,$(OBJ_DIR_CPU)\fcbio$(DBGEXT).obj

$(OBJ_DIR_CPU)\head$(DBGEXT).obj:		src\kernel\dos\head.asm
	$(TASMK) src\kernel\dos\head.asm,$(OBJ_DIR_CPU)\head$(DBGEXT).obj

$(OBJ_DIR_CPU)\apiifsn$(ISOEXT).obj:       	src\kernel\dos\apiifsn.asm
	$(TASMK) src\kernel\dos\apiifsn.asm,$(OBJ_DIR_CPU)\apiifsn$(ISOEXT).obj

$(OBJ_DIR_CPU)\backdr$(ISOEXT).obj:		src\kernel\dos\backdoor.asm
	$(TASMK) src\kernel\dos\backdoor.asm,$(OBJ_DIR_CPU)\backdr$(ISOEXT).obj

$(OBJ_DIR_CPU)\bfr$(ISOEXT).obj :		src\kernel\dos\bfr.asm
	$(TASMK) src\kernel\dos\bfr.asm,$(OBJ_DIR_CPU)\bfr$(ISOEXT).obj

$(OBJ_DIR_CPU)\blkdev$(DBGEXT).obj:		src\kernel\dos\blkdev.asm
	$(TASMK) src\kernel\dos\blkdev.asm,$(OBJ_DIR_CPU)\blkdev$(DBGEXT).obj

$(OBJ_DIR_CPU)\dirio$(ISOEXT).obj:		src\kernel\dos\dirio.asm
	$(TASMK) src\kernel\dos\dirio.asm,$(OBJ_DIR_CPU)\dirio$(ISOEXT).obj

$(OBJ_DIR_CPU)\dosapi$(DBGEXT).obj:		src\kernel\dos\dosapi.asm
	$(TASMK) src\kernel\dos\dosapi.asm,$(OBJ_DIR_CPU)\dosapi$(DBGEXT).obj

$(OBJ_DIR_CPU)\entrymn$(ISOEXT).obj:	src\kernel\dos\entryman.asm
	$(TASMK) src\kernel\dos\entryman.asm,$(OBJ_DIR_CPU)\entrymn$(ISOEXT).obj

$(OBJ_DIR_CPU)\exec$(LOGEXT).obj:     	src\kernel\dos\exec.asm src\inc\lock.inc
	$(TASMK) src\kernel\dos\exec.asm,$(OBJ_DIR_CPU)\exec$(LOGEXT).obj

$(OBJ_DIR_CPU)\fileio$(ISOEXT).obj:		src\kernel\dos\fileio.asm src\inc\lock.inc
	$(TASMK) src\kernel\dos\fileio.asm,$(OBJ_DIR_CPU)\fileio$(ISOEXT).obj

$(OBJ_DIR_CPU)\find$(ISOEXT).obj:		src\kernel\dos\find.asm
	$(TASMK) src\kernel\dos\find.asm,$(OBJ_DIR_CPU)\find$(ISOEXT).obj

$(OBJ_DIR_CPU)\getst$(ISOEXT)$(REL).obj:		src\kernel\dos\getset.asm
	$(TASMK) /DREVISION_CODE=$(REL) src\kernel\dos\getset.asm,$(OBJ_DIR_CPU)\getst$(ISOEXT)$(REL).obj

$(OBJ_DIR_CPU)\ifs$(ISOEXT).obj:		src\kernel\dos\ifs.asm
	$(TASMK) src\kernel\dos\ifs.asm,$(OBJ_DIR_CPU)\ifs$(ISOEXT).obj

$(OBJ_DIR_CPU)\cdcache$(ISOEXT).obj:      	src\kernel\dos\cdcache.asm
	$(TASMK)	src\kernel\dos\cdcache.asm,$(OBJ_DIR_CPU)\cdcache$(ISOEXT).obj

$(OBJ_DIR_CPU)\cdinit$(ISOEXT).obj:		src\kernel\dos\cdinit.asm
	$(TASMK)	src\kernel\dos\cdinit.asm,$(OBJ_DIR_CPU)\cdinit$(ISOEXT).obj

$(OBJ_DIR_CPU)\cdio$(ISOEXT).obj:		src\kernel\dos\cdio.asm
	$(TASMK)	src\kernel\dos\cdio.asm,$(OBJ_DIR_CPU)\cdio$(ISOEXT).obj

$(OBJ_DIR_CPU)\iso9660$(ISOEXT).obj:        src\kernel\dos\iso9660.asm
	$(TASMK)	src\kernel\dos\iso9660.asm,$(OBJ_DIR_CPU)\iso9660$(ISOEXT).obj

$(OBJ_DIR_CPU)\ioctl$(ISOEXT).obj:		src\kernel\dos\ioctl.asm
	$(TASMK) src\kernel\dos\ioctl.asm,$(OBJ_DIR_CPU)\ioctl$(ISOEXT).obj

$(OBJ_DIR_CPU)\sftman$(ISOEXT).obj:		src\kernel\dos\sftman.asm src\inc\lock.inc
	$(TASMK) src\kernel\dos\sftman.asm,$(OBJ_DIR_CPU)\sftman$(ISOEXT).obj

$(OBJ_DIR_CPU)\util$(ISOEXT).obj:		src\kernel\dos\util.asm
	$(TASMK) src\kernel\dos\util.asm,$(OBJ_DIR_CPU)\util$(ISOEXT).obj

$(OBJ_DIR_CPU)\config$(DBGEXT).obj:		src\kernel\dos\config.asm
	$(TASMK) src\kernel\dos\config.asm,$(OBJ_DIR_CPU)\config$(DBGEXT).obj

$(OBJ_DIR_CPU)\drvhd$(DBGEXT)$(LGNEXT).obj:	src\kernel\dos\drvhead.asm
	$(TASMK) src\kernel\dos\drvhead.asm,$(OBJ_DIR_CPU)\drvhd$(DBGEXT)$(LGNEXT).obj

$(OBJ_DIR_CPU)\init$(ISOEXT).obj:		src\kernel\dos\init.asm
	$(TASMK) src\kernel\dos\init.asm,$(OBJ_DIR_CPU)\init$(ISOEXT).obj

$(OBJ_DIR_CPU)\startup$(ISOEXT).obj:	src\kernel\dos\startup.asm src\inc\lock.inc
	$(TASMK) src\kernel\dos\startup.asm,$(OBJ_DIR_CPU)\startup$(ISOEXT).obj

$(OBJ_DIR_CPU)\strtp2$(ISOEXT)$(DBGEXT).obj: src\kernel\dos\startup2.asm src\inc\lock.inc
	$(TASMK) src\kernel\dos\startup2.asm,$(OBJ_DIR_CPU)\strtp2$(ISOEXT)$(DBGEXT).obj

$(OBJ_DIR_CPU)\syshlp$(DBGEXT).obj:		src\kernel\dos\syshelp.asm
	$(TASMK) src\kernel\dos\syshelp.asm,$(OBJ_DIR_CPU)\syshlp$(DBGEXT).obj

$(OBJ_DIR_CPU)\excode$(DBGEXT).obj:		src\kernel\dos\extcode.asm
	$(TASMK) src\kernel\dos\extcode.asm,$(OBJ_DIR_CPU)\excode$(DBGEXT).obj

$(OBJ_DIR_CPU)\sda$(ISOEXT).obj:		src\kernel\dos\sda.asm
	$(TASMK) src\kernel\dos\sda.asm,$(OBJ_DIR_CPU)\sda$(ISOEXT).obj,$(OBJ_DIR_CPU)\sda.lst

$(OBJ_DIR_CPU)\junk.obj:			src\kernel\dos\junk.asm
	$(TASMK) src\kernel\dos\junk.asm,$(OBJ_DIR_CPU)\junk.obj

$(OBJ_DIR_CPU)\xmsutil$(ISOEXT).obj:        src\kernel\dos\xmsutil.asm
	$(TASMK) src\kernel\dos\xmsutil.asm,$(OBJ_DIR_CPU)\xmsutil$(ISOEXT).obj

$(OBJ_DIR_CPU)\drvseg$(DBGEXT).obj:         src\kernel\dos\drvseg.asm
	$(TASMK) src\kernel\dos\drvseg.asm,$(OBJ_DIR_CPU)\drvseg$(DBGEXT).obj

$(OBJ_DIR_CPU)\lock$(ISOEXT).obj:		src\kernel\dos\lock.asm src\inc\lock.inc
	$(TASMK) src\kernel\dos\lock.asm,$(OBJ_DIR_CPU)\lock$(ISOEXT).obj

$(OBJ_DIR_CPU)\defct$(LGNEXT).obj:		src\kernel\dos\defcty.asm src\msg\cty.inf src\inc\cmdname.inc
	$(TASMK) src\kernel\dos\defcty.asm,$(OBJ_DIR_CPU)\defct$(LGNEXT).obj

$(OBJ_DIR_CPU)\loadfx.obj:			src\kernel\dos\loadfx.asm
	$(TASMK) src\kernel\dos\loadfx.asm,$(OBJ_DIR_CPU)\loadfx.obj

$(OBJ_DIR_CPU)\bltin$(LGNEXT).obj:		src\kernel\dos\bltinmsg.asm
	$(TASMK) src\kernel\dos\bltinmsg.asm,$(OBJ_DIR_CPU)\bltin$(LGNEXT).obj

$(OBJ_DIR_CPU)\auxdev.obj:			src\kernel\dos\auxdev.asm
	$(TASMK) src\kernel\dos\auxdev.asm,$(OBJ_DIR_CPU)\auxdev.obj

$(OBJ_DIR_CPU)\chario.obj:			src\kernel\dos\chario.asm
	$(TASMK) src\kernel\dos\chario.asm,$(OBJ_DIR_CPU)\chario.obj

$(OBJ_DIR_CPU)\clock.obj:			src\kernel\dos\clock.asm
	$(TASMK) src\kernel\dos\clock.asm,$(OBJ_DIR_CPU)\clock.obj

$(OBJ_DIR_CPU)\cntrman.obj:			src\kernel\dos\cntrman.asm
	$(TASMK) src\kernel\dos\cntrman.asm,$(OBJ_DIR_CPU)\cntrman.obj

$(OBJ_DIR_CPU)\condev.obj:			src\kernel\dos\condev.asm
	$(TASMK) src\kernel\dos\condev.asm,$(OBJ_DIR_CPU)\condev.obj

$(OBJ_DIR_CPU)\getstr.obj:			src\kernel\dos\getstr.asm
	$(TASMK) src\kernel\dos\getstr.asm,$(OBJ_DIR_CPU)\getstr.obj

$(OBJ_DIR_CPU)\int24hnd.obj:		src\kernel\dos\int24hnd.asm
	$(TASMK) src\kernel\dos\int24hnd.asm,$(OBJ_DIR_CPU)\int24hnd.obj

$(OBJ_DIR_CPU)\intredir.obj:		src\kernel\dos\intredir.asm
	$(TASMK) src\kernel\dos\intredir.asm,$(OBJ_DIR_CPU)\intredir.obj

$(OBJ_DIR_CPU)\mem.obj:			src\kernel\dos\mem.asm
	$(TASMK) src\kernel\dos\mem.asm,$(OBJ_DIR_CPU)\mem.obj

$(OBJ_DIR_CPU)\network.obj:			src\kernel\dos\network.asm
	$(TASMK) src\kernel\dos\network.asm,$(OBJ_DIR_CPU)\network.obj

$(OBJ_DIR_CPU)\prndev.obj:			src\kernel\dos\prndev.asm
	$(TASMK) src\kernel\dos\prndev.asm,$(OBJ_DIR_CPU)\prndev.obj

$(OBJ_DIR_CPU)\rename.obj:			src\kernel\dos\rename.asm
	$(TASMK) src\kernel\dos\rename.asm,$(OBJ_DIR_CPU)\rename.obj

$(OBJ_DIR_CPU)\server.obj:			src\kernel\dos\server.asm
	$(TASMK) src\kernel\dos\server.asm,$(OBJ_DIR_CPU)\server.obj

$(OBJ_DIR_CPU)\share.obj:			src\kernel\dos\share.asm
	$(TASMK) src\kernel\dos\share.asm,$(OBJ_DIR_CPU)\share.obj

$(OBJ_DIR_CPU)\stdio.obj:			src\kernel\dos\stdio.asm
	$(TASMK) src\kernel\dos\stdio.asm,$(OBJ_DIR_CPU)\stdio.obj

$(OBJ_DIR_CPU)\timer.obj:			src\kernel\dos\timer.asm
	$(TASMK) src\kernel\dos\timer.asm,$(OBJ_DIR_CPU)\timer.obj

$(OBJ_DIR_CPU)\unlink.obj:			src\kernel\dos\unlink.asm src\inc\lock.inc
	$(TASMK) src\kernel\dos\unlink.asm,$(OBJ_DIR_CPU)\unlink.obj

$(OBJ_DIR_CPU)\kernel.obj:			src\kernel\dos\kernel.asm src\inc\lock.inc
	$(TASMK) src\kernel\dos\kernel.asm,$(OBJ_DIR_CPU)\kernel.obj

$(OBJ_DIR_CPU)\kernel2.obj:			src\kernel\dos\kernel2.asm src\inc\lock.inc
	$(TASMK) src\kernel\dos\kernel2.asm,$(OBJ_DIR_CPU)\kernel2.obj

$(OBJ_DIR_CPU)\zzz.obj:			src\kernel\dos\zzz.asm
	$(TASMK) src\kernel\dos\zzz.asm,$(OBJ_DIR_CPU)\zzz.obj

$(OBJ_DIR_CPU)\cputype.obj:			src\kernel\dos\cputype.asm
	$(TASMK) src\kernel\dos\cputype.asm,$(OBJ_DIR_CPU)\cputype.obj

$(OBJ_DIR_CPU)\windows.obj:			src\kernel\dos\windows.asm
	$(TASMK) src\kernel\dos\windows.asm,$(OBJ_DIR_CPU)\windows.obj

$(OBJ_DIR_CPU)\devexec.obj:			src\kernel\dos\devexec.asm
	$(TASMK) src\kernel\dos\devexec.asm,$(OBJ_DIR_CPU)\devexec.obj

$(OBJ_DIR_CPU)\debug.obj:			src\kernel\dos\debug.asm
	$(TASMK) src\kernel\dos\debug.asm,$(OBJ_DIR_CPU)\debug.obj

$(OBJ_DIR_CPU)\xsftman.obj:                	src\kernel\dos\xsftman.asm
	$(TASMK) src\kernel\dos\xsftman.asm,$(OBJ_DIR_CPU)\xsftman.obj

$(OBJ_DIR_CPU)\csftman.obj:                	src\kernel\dos\csftman.asm
	$(TASMK) src\kernel\dos\csftman.asm,$(OBJ_DIR_CPU)\csftman.obj

$(OBJ_DIR_CPU)\link.obj:                	src\kernel\dos\link.asm
	$(TASMK) src\kernel\dos\link.asm,$(OBJ_DIR_CPU)\link.obj

$(OBJ_DIR_CPU)\video.obj:               	src\kernel\dos\video.asm
	$(TASMK) src\kernel\dos\video.asm,$(OBJ_DIR_CPU)\video.obj

$(OBJ_DIR_CPU)\reboot.obj:			src\kernel\dos\reboot.asm
	$(TASMK) src\kernel\dos\reboot.asm,$(OBJ_DIR_CPU)\reboot.obj

$(OBJ_DIR_CPU)\zombi.obj:			src\kernel\dos\zombi.asm
	$(TASMK) src\kernel\dos\zombi.asm,$(OBJ_DIR_CPU)\zombi.obj

$(OBJ_DIR_CPU)\atclock.obj:			src\kernel\dos\atclock.asm
	$(TASMK) src\kernel\dos\atclock.asm,$(OBJ_DIR_CPU)\atclock.obj

$(OBJ_DIR_CPU)\stdclock.obj:		src\kernel\dos\stdclock.asm
	$(TASMK) src\kernel\dos\stdclock.asm,$(OBJ_DIR_CPU)\stdclock.obj

$(OBJ_DIR_CPU)\comdebug.obj:		src\kernel\dos\comdebug.asm
	$(TASMK) src\kernel\dos\comdebug.asm,$(OBJ_DIR_CPU)\comdebug.obj

$(OBJ_DIR_CPU)\ansi.obj:			src\kernel\dos\ansi.asm
	$(TASMK) src\kernel\dos\ansi.asm,$(OBJ_DIR_CPU)\ansi.obj

$(OBJ_DIR_CPU)\display.obj:			src\kernel\dos\display.asm
	$(TASMK) src\kernel\dos\display.asm,$(OBJ_DIR_CPU)\display.obj

$(OBJ_DIR_CPU)\keyboard.obj:		src\kernel\dos\keyboard.asm
	$(TASMK) src\kernel\dos\keyboard.asm,$(OBJ_DIR_CPU)\keyboard.obj




# $(PREFIX)BIO.SYS section

$(OBJ_DIR_CPU)\varpa$(LGNEXT)$(ISOEXT).obj:		src\kernel\bio\varparse.asm
	$(TASMK) src\kernel\bio\varparse.asm,$(OBJ_DIR_CPU)\varpa$(LGNEXT)$(ISOEXT).obj

$(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).obj:	src\kernel\bio\bootmgr.asm
	$(TASMK) src\kernel\bio\bootmgr.asm,$(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).obj

$(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).exe: $(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).obj \
                                               $(OBJ_DIR_CPU)\varpa$(LGNEXT)$(ISOEXT).obj $(OBJ_DIR_CPU)\sda$(ISOEXT).obj
	$(TLINK) $(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).obj+\
                 $(OBJ_DIR_CPU)\varpa$(LGNEXT)$(ISOEXT).obj+\
                 $(OBJ_DIR_CPU)\sda$(ISOEXT).obj,\
		 $(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).exe

$(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).bin: \
                $(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).exe
	$(EXE2BIN) $(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).exe \
                   $(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).bin

$(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).obj:	src\kernel\bio\bio.asm
	$(TASMK) src\kernel\bio\bio.asm,$(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).obj

$(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).exe:	$(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).obj
	$(TLINK)  $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).obj,\
                  $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).exe

$(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).bin:	$(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).exe
	$(EXE2BIN) $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).exe $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).bin

$(OBJ_DIR_CPU)\login.obj:	src\kernel\bio\login.asm
	$(TASMK) src\kernel\bio\login.asm,$(OBJ_DIR_CPU)\login.obj

$(OBJ_DIR_CPU)\sr.obj:	src\kernel\bio\sr.asm
	$(TASMK) src\kernel\bio\sr.asm,$(OBJ_DIR_CPU)\sr.obj

$(OBJ_DIR_CPU)\login.bin:	$(OBJ_DIR_CPU)\login.exe
	$(EXE2BIN) $(OBJ_DIR_CPU)\login.exe $(OBJ_DIR_CPU)\login.bin

$(OBJ_DIR_CPU)\login.exe: $(OBJ_DIR_CPU)\login.obj $(OBJ_DIR_CPU)\sr.obj $(OBJ_DIR_CPU)\sda$(ISOEXT).obj
	$(TLINK) $(OBJ_DIR_CPU)\login.obj+$(OBJ_DIR_CPU)\sr.obj+$(OBJ_DIR_CPU)\sda$(ISOEXT).obj, \
	         $(OBJ_DIR_CPU)\login.exe


$(EXT_DIR)\$(PREFIX)bio.sys:	$(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).bin \
			$(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).bin
	@copy $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).bin $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).s > nul
	@$(TOOLS_BIN)\addext $(OBJ_DIR_CPU)\btm$(LGNEXT)$(LOGEXT)$(ISOEXT).bin \
                              $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).s
	@copy $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).s $(EXT_DIR)\$(PREFIX)bio.sys > nul
	@if exist $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).s del $(OBJ_DIR_CPU)\$(PREFIX)bi$(LGNEXT).s



# UTILITIES section
$(OBJ_DIR)\append$(LGNEXT).obj:		src\utilities\append.asm
	$(TASMU) 	src\utilities\append.asm,$(OBJ_DIR)\append$(LGNEXT).obj

$(OBJ_DIR)\sort$(LGNEXT).obj:		src\utilities\sort.asm
	$(TASMU) 	src\utilities\sort.asm,$(OBJ_DIR)\sort$(LGNEXT).obj

$(OBJ_DIR)\fdisk$(LGNEXT).obj:		src\utilities\fdisk.asm
	$(TASMU) 	src\utilities\fdisk.asm,$(OBJ_DIR)\fdisk$(LGNEXT).obj

$(OBJ_DIR)\assign$(LGNEXT).obj:		src\utilities\assign.asm
	$(TASMU) 	src\utilities\assign.asm,$(OBJ_DIR)\assign$(LGNEXT).obj

$(OBJ_DIR)\beep$(LGNEXT).obj:		src\utilities\beep.asm
	$(TASMU) 	src\utilities\beep.asm,$(OBJ_DIR)\beep$(LGNEXT).obj

$(OBJ_DIR)\disp$(LGNEXT).obj:		src\utilities\disp.asm
	$(TASMU) 	src\utilities\disp.asm,$(OBJ_DIR)\disp$(LGNEXT).obj

$(OBJ_DIR)\fastopn$(LGNEXT).obj:	src\utilities\fastopen.asm
	$(TASMU) 	src\utilities\fastopen.asm,$(OBJ_DIR)\fastopn$(LGNEXT).obj

$(OBJ_DIR)\history$(LGNEXT).obj:	src\utilities\history.asm
	$(TASMU) 	src\utilities\history.asm,$(OBJ_DIR)\history$(LGNEXT).obj

$(OBJ_DIR)\join$(LGNEXT).obj:		src\utilities\join.asm
	$(TASMU) 	src\utilities\join.asm,$(OBJ_DIR)\join$(LGNEXT).obj

$(OBJ_DIR)\keyb$(LGNEXT).obj:		src\utilities\keyb.asm
	$(TASMU) 	src\utilities\keyb.asm,$(OBJ_DIR)\keyb$(LGNEXT).obj

$(OBJ_DIR)\keybsys.obj:	src\country\keyboard.asm
	$(TASMU)	src\country\keyboard.asm,$(OBJ_DIR)\keybsys.obj

$(OBJ_DIR)\cntrsys.obj:	src\country\country.asm
	$(TASMU)	src\country\country.asm,$(OBJ_DIR)\cntrsys.obj

$(ROOT_DIR)\display.cpi: src\country\display.cpi
	@copy src\country\display.cpi $(ROOT_DIR)\display.cpi > nul


$(OBJ_DIR)\label$(LGNEXT).obj:		src\utilities\label.asm
	$(TASMU) 	src\utilities\label.asm,$(OBJ_DIR)\label$(LGNEXT).obj

$(OBJ_DIR)\loadfix$(LGNEXT).obj:	src\utilities\loadfix.asm
	$(TASMU) 	src\utilities\loadfix.asm,$(OBJ_DIR)\loadfix$(LGNEXT).obj

$(OBJ_DIR_CPU)\memory$(LGNEXT).obj:		src\utilities\mem.asm src\msg\drvdef.msg
	$(TASMU) 	src\utilities\mem.asm,$(OBJ_DIR_CPU)\memory$(LGNEXT).obj

$(OBJ_DIR)\mkzmb$(LGNEXT).obj:	src\utilities\mkzombie.asm
	$(TASMU) 	src\utilities\mkzombie.asm,$(OBJ_DIR)\mkzmb$(LGNEXT).obj

$(OBJ_DIR)\mode$(LGNEXT).obj:		src\utilities\mode.asm
	$(TASMU) 	src\utilities\mode.asm,$(OBJ_DIR)\mode$(LGNEXT).obj

$(OBJ_DIR)\more$(LGNEXT).obj:		src\utilities\more.asm
	$(TASMU) 	src\utilities\more.asm,$(OBJ_DIR)\more$(LGNEXT).obj

$(OBJ_DIR)\nlsfunc$(LGNEXT).obj:	src\utilities\nlsfunc.asm
	$(TASMU) 	src\utilities\nlsfunc.asm,$(OBJ_DIR)\nlsfunc$(LGNEXT).obj

$(OBJ_DIR)\rdzmb$(LGNEXT).obj:	src\utilities\rdzombie.asm
	$(TASMU) 	src\utilities\rdzombie.asm,$(OBJ_DIR)\rdzmb$(LGNEXT).obj

$(OBJ_DIR_CPU)\ushare$(LGNEXT).obj:	src\utilities\share.asm src\inc\lock.inc
	$(TASMU) 	src\utilities\share.asm,$(OBJ_DIR_CPU)\ushare$(LGNEXT).obj

$(OBJ_DIR)\subst$(LGNEXT).obj:		src\utilities\subst.asm
	$(TASMU) 	src\utilities\subst.asm,$(OBJ_DIR)\subst$(LGNEXT).obj

$(OBJ_DIR)\sys$(LGNEXT).obj:		src\utilities\sys.asm
	$(TASMU) 	src\utilities\sys.asm,$(OBJ_DIR)\sys$(LGNEXT).obj

$(OBJ_DIR)\uninst$(LGNEXT).obj:	src\utilities\uninstal.asm
	$(TASMU) 	src\utilities\uninstal.asm,$(OBJ_DIR)\uninst$(LGNEXT).obj


$(LANG_DIR)\append.com:      $(OBJ_DIR)\append$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\append$(LGNEXT).obj,$(LANG_DIR)\append.com

$(LANG_DIR)\fdisk.com:      $(OBJ_DIR)\fdisk$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\fdisk$(LGNEXT).obj,$(LANG_DIR)\fdisk.com

$(LANG_DIR)\sort.com:  	$(OBJ_DIR)\sort$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\sort$(LGNEXT).obj,$(LANG_DIR)\sort.com

$(LANG_DIR)\assign.com:      $(OBJ_DIR)\assign$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\assign$(LGNEXT).obj,$(LANG_DIR)\assign.com

$(LANG_DIR)\beep.com:        $(OBJ_DIR)\beep$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\beep$(LGNEXT).obj,$(LANG_DIR)\beep.com

$(LANG_DIR)\disp.com:        $(OBJ_DIR)\disp$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\disp$(LGNEXT).obj,$(LANG_DIR)\disp.com

$(LANG_DIR)\fastopen.com:    $(OBJ_DIR)\fastopn$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\fastopn$(LGNEXT).obj,$(LANG_DIR)\fastopen.com

$(LANG_DIR)\history.com:     $(OBJ_DIR)\history$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\history$(LGNEXT).obj,$(LANG_DIR)\history.com

$(LANG_DIR)\join.com:        $(OBJ_DIR)\join$(LGNEXT).obj $(OBJ_DIR)\version.obj
	$(TLINK) /x/t 	$(OBJ_DIR)\join$(LGNEXT).obj+$(OBJ_DIR)\version.obj,$(LANG_DIR)\join.com

$(LANG_DIR)\keyb.com:        $(OBJ_DIR)\keyb$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\keyb$(LGNEXT).obj,$(LANG_DIR)\keyb.com

$(OBJ_DIR)\keyboard.exe:	$(OBJ_DIR)\keybsys.obj
	$(TLINK) /x/3	$(OBJ_DIR)\keybsys.obj,$(OBJ_DIR)\keyboard.exe

$(ROOT_DIR)\keyboard.sys:	$(OBJ_DIR)\keyboard.exe
	$(EXE2BIN) 	$(OBJ_DIR)\keyboard.exe $(ROOT_DIR)\keyboard.sys

$(OBJ_DIR)\country.exe:	$(OBJ_DIR)\cntrsys.obj
	$(TLINK) /x/3	$(OBJ_DIR)\cntrsys.obj,$(OBJ_DIR)\country.exe

$(ROOT_DIR)\country.sys: $(OBJ_DIR)\country.exe
	$(EXE2BIN) 	$(OBJ_DIR)\country.exe $(ROOT_DIR)\country.sys

$(LANG_DIR)\label.com:       $(OBJ_DIR)\label$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\label$(LGNEXT).obj,$(LANG_DIR)\label.com

$(LANG_DIR)\loadfix.com:     $(OBJ_DIR)\loadfix$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\loadfix$(LGNEXT).obj,$(LANG_DIR)\loadfix.com

$(EXT_DIR)\mem.com:         $(OBJ_DIR_CPU)\memory$(LGNEXT).obj $(OBJ_DIR_CPU)\sda$(ISOEXT).obj $(OBJ_DIR)\version.obj
	$(TLINK) /x/t 	$(OBJ_DIR_CPU)\memory$(LGNEXT).obj+$(OBJ_DIR_CPU)\sda$(ISOEXT).obj+$(OBJ_DIR)\version.obj,$(EXT_DIR)\mem.com

$(LANG_DIR)\mkzombie.com:    $(OBJ_DIR)\mkzmb$(LGNEXT).obj $(OBJ_DIR)\version.obj
	$(TLINK) /x/t 	$(OBJ_DIR)\mkzmb$(LGNEXT).obj+$(OBJ_DIR)\version.obj,$(LANG_DIR)\mkzombie.com

$(LANG_DIR)\mode.com:        $(OBJ_DIR)\mode$(LGNEXT).obj $(OBJ_DIR)\version.obj
	$(TLINK) /x/t 	$(OBJ_DIR)\mode$(LGNEXT).obj+$(OBJ_DIR)\version.obj,$(LANG_DIR)\mode.com

$(LANG_DIR)\more.com:        $(OBJ_DIR)\more$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\more$(LGNEXT).obj,$(LANG_DIR)\more.com

$(LANG_DIR)\nlsfunc.com:     $(OBJ_DIR)\nlsfunc$(LGNEXT).obj
	$(TLINK) /x/t 	$(OBJ_DIR)\nlsfunc$(LGNEXT).obj,$(LANG_DIR)\nlsfunc.com

$(LANG_DIR)\rdzombie.com:    $(OBJ_DIR)\rdzmb$(LGNEXT).obj $(OBJ_DIR)\version.obj
	$(TLINK) /x/t 	$(OBJ_DIR)\rdzmb$(LGNEXT).obj+$(OBJ_DIR)\version.obj,$(LANG_DIR)\rdzombie.com

$(EXT_DIR)\share.exe:       $(OBJ_DIR_CPU)\ushare$(LGNEXT).obj $(OBJ_DIR_CPU)\sda$(ISOEXT).obj $(OBJ_DIR)\version.obj
	$(TLINK) /x/t 	$(OBJ_DIR_CPU)\ushare$(LGNEXT).obj+$(OBJ_DIR_CPU)\sda$(ISOEXT).obj+$(OBJ_DIR)\version.obj,$(EXT_DIR)\share.exe

$(LANG_DIR)\subst.com:  $(OBJ_DIR)\subst$(LGNEXT).obj $(OBJ_DIR)\version.obj
	$(TLINK) /x/t 	$(OBJ_DIR)\subst$(LGNEXT).obj+$(OBJ_DIR)\version.obj,$(LANG_DIR)\subst.com

$(OBJ_DIR)\boot.obj:	src\boot\boot.asm
	$(TASMU) src\boot\boot.asm,$(OBJ_DIR)\boot.obj

$(OBJ_DIR)\boot.com:	$(OBJ_DIR)\boot.obj
       $(TLINK) /x/t	$(OBJ_DIR)\boot.obj,$(OBJ_DIR)\boot.com

$(OBJ_DIR)\boot.sys:   $(OBJ_DIR)\boot.com
	@$(TOOLS_BIN)\mkb $(OBJ_DIR)\boot.com $(OBJ_DIR)\boot.sys

$(LANG_DIR)\sys.com:         $(OBJ_DIR)\sys$(LGNEXT).obj $(OBJ_DIR)\boot.sys
	$(TLINK) /x/t 	$(OBJ_DIR)\sys$(LGNEXT).obj,$(OBJ_DIR)\sys.co_
	@copy /b $(OBJ_DIR)\sys.co_+$(OBJ_DIR)\boot.sys $(LANG_DIR)\sys.com > nul

$(LANG_DIR)\uninstal.com:    $(OBJ_DIR)\uninst$(LGNEXT).obj $(OBJ_DIR)\version.obj
	$(TLINK) /x/t 	$(OBJ_DIR)\uninst$(LGNEXT).obj+$(OBJ_DIR)\version.obj,$(LANG_DIR)\uninstal.com

# Drivers section
$(OBJ_DIR)\himem286$(LGNEXT).obj:	src\himem\hi286.asm
	$(TASM) src\himem\hi286.asm,$(OBJ_DIR)\himem286$(LGNEXT).obj

$(OBJ_DIR)\h286$(LGNEXT).exe:	$(OBJ_DIR)\himem286$(LGNEXT).obj
	$(TLINK) $(OBJ_DIR)\himem286$(LGNEXT).obj,$(OBJ_DIR)\h286$(LGNEXT).exe

$(LANG_DIR)\himem286.sys:	$(OBJ_DIR)\h286$(LGNEXT).exe
	$(EXE2BIN) $(OBJ_DIR)\h286$(LGNEXT).exe $(LANG_DIR)\himem286.sys

$(OBJ_DIR)\hi$(LGNEXT).obj:		src\himem\hi.asm
	$(TASM) src\himem\hi.asm,$(OBJ_DIR)\hi$(LGNEXT).obj

$(OBJ_DIR)\hi$(LGNEXT).exe:		$(OBJ_DIR)\hi$(LGNEXT).obj
	$(TLINK) $(OBJ_DIR)\hi$(LGNEXT).obj,$(OBJ_DIR)\hi$(LGNEXT).exe

$(LANG_DIR)\himem386.sys:	$(OBJ_DIR)\hi$(LGNEXT).exe
	$(EXE2BIN) $(OBJ_DIR)\hi$(LGNEXT).exe $(LANG_DIR)\himem386.sys

# TOOLS section
$(TOOLS_BIN)\stripexe.com:     	$(OBJ_DIR)\stripexe.obj
	$(TLINK) /t $(OBJ_DIR)\stripexe.obj,$(TOOLS_BIN)\stripexe.com

$(OBJ_DIR)\stripexe.obj:	src\another\tools\stripexe.asm
	$(TASMT) src\another\tools\stripexe.asm,$(OBJ_DIR)\stripexe.obj
