updated for version 7.0001
diff --git a/runtime/syntax/btm.vim b/runtime/syntax/btm.vim
new file mode 100644
index 0000000..4fd5b2d
--- /dev/null
+++ b/runtime/syntax/btm.vim
@@ -0,0 +1,229 @@
+" Vim syntax file
+" Language:	4Dos batch file
+" Maintainer:	John Leo Spetz <jls11@po.cwru.edu>
+" Last Change:	2001 May 09
+
+"//Issues to resolve:
+"//- Boolean operators surrounded by period are recognized but the
+"//  periods are not highlighted.  The only way to do that would
+"//  be separate synmatches for each possibility otherwise a more
+"//  general \.\i\+\. will highlight anything delimited by dots.
+"//- After unary operators like "defined" can assume token type.
+"//  Should there be more of these?
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn case ignore
+
+syn keyword btmStatement	call off
+syn keyword btmConditional	if iff endiff then else elseiff not errorlevel
+syn keyword btmConditional	gt lt eq ne ge le
+syn match btmConditional transparent    "\.\i\+\." contains=btmDotBoolOp
+syn keyword btmDotBoolOp contained      and or xor
+syn match btmConditional	"=="
+syn match btmConditional	"!="
+syn keyword btmConditional	defined errorlevel exist isalias
+syn keyword btmConditional	isdir direxist isinternal islabel
+syn keyword btmRepeat		for in do enddo
+
+syn keyword btmTodo contained	TODO
+
+" String
+syn cluster btmVars contains=btmVariable,btmArgument,btmBIFMatch
+syn region  btmString	start=+"+  end=+"+ contains=@btmVars
+syn match btmNumber     "\<\d\+\>"
+
+"syn match  btmIdentifier	"\<\h\w*\>"
+
+" If you don't like tabs
+"syn match btmShowTab "\t"
+"syn match btmShowTabc "\t"
+"syn match  btmComment		"^\ *rem.*$" contains=btmTodo,btmShowTabc
+
+" Some people use this as a comment line
+" In fact this is a Label
+"syn match btmComment		"^\ *:\ \+.*$" contains=btmTodo
+
+syn match btmComment		"^\ *rem.*$" contains=btmTodo
+syn match btmComment		"^\ *::.*$" contains=btmTodo
+
+syn match btmLabelMark		"^\ *:[0-9a-zA-Z_\-]\+\>"
+syn match btmLabelMark		"goto [0-9a-zA-Z_\-]\+\>"lc=5
+syn match btmLabelMark		"gosub [0-9a-zA-Z_\-]\+\>"lc=6
+
+" syn match btmCmdDivider ">[>&][>&]\="
+syn match btmCmdDivider ">[>&]*"
+syn match btmCmdDivider ">>&>"
+syn match btmCmdDivider "|&\="
+syn match btmCmdDivider "%+"
+syn match btmCmdDivider "\^"
+
+syn region btmEcho start="echo" skip="echo" matchgroup=btmCmdDivider end="%+" end="$" end="|&\=" end="\^" end=">[>&]*" contains=@btmEchos oneline
+syn cluster btmEchos contains=@btmVars,btmEchoCommand,btmEchoParam
+syn keyword btmEchoCommand contained	echo echoerr echos echoserr
+syn keyword btmEchoParam contained	on off
+
+" this is also a valid Label. I don't use it.
+"syn match btmLabelMark		"^\ *:\ \+[0-9a-zA-Z_\-]\+\>"
+
+" //Environment variable can be expanded using notation %var in 4DOS
+syn match btmVariable		"%[0-9a-z_\-]\+" contains=@btmSpecialVars
+" //Environment variable can be expanded using notation %var%
+syn match btmVariable		"%[0-9a-z_\-]*%" contains=@btmSpecialVars
+" //The following are special variable in 4DOS
+syn match btmVariable		"%[=#]" contains=@btmSpecialVars
+syn match btmVariable		"%??\=" contains=@btmSpecialVars
+" //Environment variable can be expanded using notation %[var] in 4DOS
+syn match btmVariable		"%\[[0-9a-z_\-]*\]"
+" //After some keywords next word should be an environment variable
+syn match btmVariable		"defined\s\i\+"lc=8
+syn match btmVariable		"set\s\i\+"lc=4
+" //Parameters to batchfiles take the format %<digit>
+syn match btmArgument		"%\d\>"
+" //4DOS allows format %<digit>& meaning batchfile parameters digit and up
+syn match btmArgument		"%\d\>&"
+" //Variable used by FOR loops sometimes use %%<letter> in batchfiles
+syn match btmArgument		"%%\a\>"
+
+" //Show 4DOS built-in functions specially
+syn match btmBIFMatch "%@\w\+\["he=e-1 contains=btmBuiltInFunc
+syn keyword btmBuiltInFunc contained	alias ascii attrib cdrom
+syn keyword btmBuiltInFunc contained	char clip comma convert
+syn keyword btmBuiltInFunc contained	date day dec descript
+syn keyword btmBuiltInFunc contained	device diskfree disktotal
+syn keyword btmBuiltInFunc contained	diskused dosmem dow dowi
+syn keyword btmBuiltInFunc contained	doy ems eval exec execstr
+syn keyword btmBuiltInFunc contained	expand ext extended
+syn keyword btmBuiltInFunc contained	fileage fileclose filedate
+syn keyword btmBuiltInFunc contained	filename fileopen fileread
+syn keyword btmBuiltInFunc contained	files fileseek fileseekl
+syn keyword btmBuiltInFunc contained	filesize filetime filewrite
+syn keyword btmBuiltInFunc contained	filewriteb findclose
+syn keyword btmBuiltInFunc contained	findfirst findnext format
+syn keyword btmBuiltInFunc contained	full if inc index insert
+syn keyword btmBuiltInFunc contained	instr int label left len
+syn keyword btmBuiltInFunc contained	lfn line lines lower lpt
+syn keyword btmBuiltInFunc contained	makeage makedate maketime
+syn keyword btmBuiltInFunc contained	master month name numeric
+syn keyword btmBuiltInFunc contained	path random readscr ready
+syn keyword btmBuiltInFunc contained	remote removable repeat
+syn keyword btmBuiltInFunc contained	replace right search
+syn keyword btmBuiltInFunc contained	select sfn strip substr
+syn keyword btmBuiltInFunc contained	time timer trim truename
+syn keyword btmBuiltInFunc contained	unique upper wild word
+syn keyword btmBuiltInFunc contained	words xms year
+
+syn cluster btmSpecialVars contains=btmBuiltInVar,btmSpecialVar
+
+" //Show specialized variables specially
+" syn match btmSpecialVar contained	"+"
+syn match btmSpecialVar contained	"="
+syn match btmSpecialVar contained	"#"
+syn match btmSpecialVar contained	"??\="
+syn keyword btmSpecialVar contained	cmdline colordir comspec
+syn keyword btmSpecialVar contained	copycmd dircmd temp temp4dos
+syn keyword btmSpecialVar contained	filecompletion path prompt
+
+" //Show 4DOS built-in variables specially specially
+syn keyword btmBuiltInVar contained	_4ver _alias _ansi
+syn keyword btmBuiltInVar contained	_apbatt _aplife _apmac _batch
+syn keyword btmBuiltInVar contained	_batchline _batchname _bg
+syn keyword btmBuiltInVar contained	_boot _ci _cmdproc _co
+syn keyword btmBuiltInVar contained	_codepage _column _columns
+syn keyword btmBuiltInVar contained	_country _cpu _cwd _cwds _cwp
+syn keyword btmBuiltInVar contained	_cwps _date _day _disk _dname
+syn keyword btmBuiltInVar contained	_dos _dosver _dow _dowi _doy
+syn keyword btmBuiltInVar contained	_dpmi _dv _env _fg _hlogfile
+syn keyword btmBuiltInVar contained	_hour _kbhit _kstack _lastdisk
+syn keyword btmBuiltInVar contained	_logfile _minute _monitor
+syn keyword btmBuiltInVar contained	_month _mouse _ndp _row _rows
+syn keyword btmBuiltInVar contained	_second _shell _swapping
+syn keyword btmBuiltInVar contained	_syserr _time _transient
+syn keyword btmBuiltInVar contained	_video _win _wintitle _year
+
+" //Commands in 4DOS and/or DOS
+syn match btmCommand	"\s?"
+syn match btmCommand	"^?"
+syn keyword btmCommand	alias append assign attrib
+syn keyword btmCommand	backup beep break cancel case
+syn keyword btmCommand	cd cdd cdpath chcp chdir
+syn keyword btmCommand	chkdsk cls color comp copy
+syn keyword btmCommand	ctty date debug default defrag
+syn keyword btmCommand	del delay describe dir
+syn keyword btmCommand	dirhistory dirs diskcomp
+syn keyword btmCommand	diskcopy doskey dosshell
+syn keyword btmCommand	drawbox drawhline drawvline
+"syn keyword btmCommand	echo echoerr echos echoserr
+syn keyword btmCommand	edit edlin emm386 endlocal
+syn keyword btmCommand	endswitch erase eset except
+syn keyword btmCommand	exe2bin exit expand fastopen
+syn keyword btmCommand	fc fdisk ffind find format
+syn keyword btmCommand	free global gosub goto
+syn keyword btmCommand	graftabl graphics help history
+syn keyword btmCommand	inkey input join keyb keybd
+syn keyword btmCommand	keystack label lh list loadbtm
+syn keyword btmCommand	loadhigh lock log md mem
+syn keyword btmCommand	memory mirror mkdir mode more
+syn keyword btmCommand	move nlsfunc on option path
+syn keyword btmCommand	pause popd print prompt pushd
+syn keyword btmCommand	quit rd reboot recover ren
+syn keyword btmCommand	rename replace restore return
+syn keyword btmCommand	rmdir scandisk screen scrput
+syn keyword btmCommand	select set setdos setlocal
+syn keyword btmCommand	setver share shift sort subst
+syn keyword btmCommand	swapping switch sys tee text
+syn keyword btmCommand	time timer touch tree truename
+syn keyword btmCommand	type unalias undelete unformat
+syn keyword btmCommand	unlock unset ver verify vol
+syn keyword btmCommand	vscrput y
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_btm_syntax_inits")
+  if version < 508
+    let did_btm_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink btmLabel		Special
+  HiLink btmLabelMark		Special
+  HiLink btmCmdDivider		Special
+  HiLink btmConditional		btmStatement
+  HiLink btmDotBoolOp		btmStatement
+  HiLink btmRepeat		btmStatement
+  HiLink btmEchoCommand	btmStatement
+  HiLink btmEchoParam		btmStatement
+  HiLink btmStatement		Statement
+  HiLink btmTodo		Todo
+  HiLink btmString		String
+  HiLink btmNumber		Number
+  HiLink btmComment		Comment
+  HiLink btmArgument		Identifier
+  HiLink btmVariable		Identifier
+  HiLink btmEcho		String
+  HiLink btmBIFMatch		btmStatement
+  HiLink btmBuiltInFunc		btmStatement
+  HiLink btmBuiltInVar		btmStatement
+  HiLink btmSpecialVar		btmStatement
+  HiLink btmCommand		btmStatement
+
+  "optional highlighting
+  "HiLink btmShowTab		Error
+  "HiLink btmShowTabc		Error
+  "hiLink btmIdentifier		Identifier
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "btm"
+
+" vim: ts=8