updated for version 7.0001
diff --git a/runtime/syntax/kix.vim b/runtime/syntax/kix.vim
new file mode 100644
index 0000000..62dc325
--- /dev/null
+++ b/runtime/syntax/kix.vim
@@ -0,0 +1,182 @@
+" Vim syntax file
+" Language:	KixTart 95, Kix2001 Windows script language http://kixtart.org/
+" Maintainer:	Richard Howarth <rhowarth@sgb.co.uk>
+" Last Change:	2003 May 11
+" URL:		http://www.howsoft.demon.co.uk/
+
+" KixTart files identified by *.kix extension.
+
+" Amendment History:
+" 26 April 2001: RMH
+"    Removed development comments from distro version
+"    Renamed "Kix*" to "kix*" for consistancy
+"    Changes made in preperation for VIM version 5.8/6.00
+
+" TODO:
+"	Handle arrays highlighting
+"	Handle object highlighting
+" The next two may not be possible:
+"	Work out how to error too many "(", i.e. (() should be an error.
+"	Similarly, "if" without "endif" and similar constructs should error.
+
+" Clear legacy syntax rules for version 5.x, exit if already processed for version 6+
+if version < 600
+	syn clear
+elseif exists("b:current_syntax")
+	finish
+endif
+
+syn case match
+syn keyword kixTODO		TODO FIX XXX contained
+
+" Case insensitive language.
+syn case ignore
+
+" Kix statements
+syn match   kixStatement	"?"
+syn keyword kixStatement	beep big break
+syn keyword kixStatement	call cd cls color cookie1 copy
+syn keyword kixStatement	del dim display
+syn keyword kixStatement	exit
+syn keyword kixStatement	flushkb
+syn keyword kixStatement	get gets global go gosub goto
+syn keyword kixStatement	md
+syn keyword kixStatement	password play
+syn keyword kixStatement	quit
+syn keyword kixStatement	rd return run
+syn keyword kixStatement	set setl setm settime shell sleep small
+syn keyword kixStatement	use
+
+" Kix2001
+syn keyword kixStatement	debug function endfunction redim
+
+" Simple variables
+syn match   kixNotVar		"\$\$\|@@\|%%" transparent contains=NONE
+syn match   kixLocalVar		"\$\w\+"
+syn match   kixMacro		"@\w\+"
+syn match   kixEnvVar		"%\w\+"
+
+" Destination labels
+syn match   kixLabel		":\w\+\>"
+
+" Identify strings, trap unterminated strings
+syn match   kixStringError      +".*\|'.*+
+syn region  kixDoubleString	oneline start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=kixLocalVar,kixMacro,kixEnvVar,kixNotVar
+syn region  kixSingleString	oneline start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=kixLocalVar,kixMacro,kixEnvVar,kixNotVar
+
+" Operators
+syn match   kixOperator		"+\|-\|\*\|/\|=\|&\||"
+syn keyword kixOperator		and or
+" Kix2001
+syn match   kixOperator		"=="
+syn keyword kixOperator		not
+
+" Numeric constants
+syn match   kixInteger		"-\=\<\d\+\>" contains=NONE
+syn match   kixFloat		"-\=\.\d\+\>\|-\=\<\d\+\.\d\+\>" contains=NONE
+
+" Hex numeric constants
+syn match   kixHex		"\&\x\+\>" contains=NONE
+
+" Other contants
+" Kix2001
+syn keyword kixConstant		on off
+
+" Comments
+syn match   kixComment		";.*$" contains=kixTODO
+
+" Trap unmatched parenthesis
+syn match   kixParenCloseError	")"
+syn region  kixParen		oneline transparent start="(" end=")" contains=ALLBUT,kixParenCloseError
+
+" Functions (Builtin + UDF)
+syn match   kixFunction		"\w\+("he=e-1,me=e-1 contains=ALL
+
+" Trap unmatched brackets
+syn match   kixBrackCloseError	"\]"
+syn region  kixBrack		transparent start="\[" end="\]" contains=ALLBUT,kixBrackCloseError
+
+" Clusters for ALLBUT shorthand
+syn cluster kixIfBut		contains=kixIfError,kixSelectOK,kixDoOK,kixWhileOK,kixForEachOK,kixForNextOK
+syn cluster kixSelectBut	contains=kixSelectError,kixIfOK,kixDoOK,kixWhileOK,kixForEachOK,kixForNextOK
+syn cluster kixDoBut		contains=kixDoError,kixSelectOK,kixIfOK,kixWhileOK,kixForEachOK,kixForNextOK
+syn cluster kixWhileBut		contains=kixWhileError,kixSelectOK,kixIfOK,kixDoOK,kixForEachOK,kixForNextOK
+syn cluster kixForEachBut	contains=kixForEachError,kixSelectOK,kixIfOK,kixDoOK,kixForNextOK,kixWhileOK
+syn cluster kixForNextBut	contains=kixForNextError,kixSelectOK,kixIfOK,kixDoOK,kixForEachOK,kixWhileOK
+" Condtional construct errors.
+syn match   kixIfError		"\<if\>\|\<else\>\|\<endif\>"
+syn match   kixIfOK		contained "\<if\>\|\<else\>\|\<endif\>"
+syn region  kixIf		transparent matchgroup=kixIfOK start="\<if\>" end="\<endif\>" contains=ALLBUT,@kixIfBut
+syn match   kixSelectError	"\<select\>\|\<case\>\|\<endselect\>"
+syn match   kixSelectOK		contained "\<select\>\|\<case\>\|\<endselect\>"
+syn region  kixSelect		transparent matchgroup=kixSelectOK start="\<select\>" end="\<endselect\>" contains=ALLBUT,@kixSelectBut
+
+" Program control constructs.
+syn match   kixDoError		"\<do\>\|\<until\>"
+syn match   kixDoOK		contained "\<do\>\|\<until\>"
+syn region  kixDo		transparent matchgroup=kixDoOK start="\<do\>" end="\<until\>" contains=ALLBUT,@kixDoBut
+syn match   kixWhileError	"\<while\>\|\<loop\>"
+syn match   kixWhileOK		contained "\<while\>\|\<loop\>"
+syn region  kixWhile		transparent matchgroup=kixWhileOK start="\<while\>" end="\<loop\>" contains=ALLBUT,@kixWhileBut
+syn match   kixForNextError	"\<for\>\|\<to\>\|\<step\>\|\<next\>"
+syn match   kixForNextOK	contained "\<for\>\|\<to\>\|\<step\>\|\<next\>"
+syn region  kixForNext		transparent matchgroup=kixForNextOK start="\<for\>" end="\<next\>" contains=ALLBUT,@kixForBut
+syn match   kixForEachError	"\<for each\>\|\<in\>\|\<next\>"
+syn match   kixForEachOK	contained "\<for each\>\|\<in\>\|\<next\>"
+syn region  kixForEach		transparent matchgroup=kixForEachOK start="\<for each\>" end="\<next\>" contains=ALLBUT,@kixForEachBut
+
+" Expressions
+syn match   kixExpression	"<\|>\|<=\|>=\|<>"
+
+
+" Default highlighting.
+" Version < 5.8 set default highlight if file not already processed.
+" Version >= 5.8 set default highlight only if it doesn't already have a value.
+if version > 508 || !exists("did_kix_syn_inits")
+	if version < 508
+		let did_kix_syn_inits=1
+		command -nargs=+ HiLink hi link <args>
+	else
+		command -nargs=+ HiLink hi def link <args>
+	endif
+
+	HiLink kixDoubleString		String
+	HiLink kixSingleString		String
+	HiLink kixStatement		Statement
+	HiLink kixRepeat		Repeat
+	HiLink kixComment		Comment
+	HiLink kixBuiltin		Function
+	HiLink kixLocalVar		Special
+	HiLink kixMacro			Special
+	HiLink kixEnvVar		Special
+	HiLink kixLabel			Type
+	HiLink kixFunction		Function
+	HiLink kixInteger		Number
+	HiLink kixHex			Number
+	HiLink kixFloat			Number
+	HiLink kixOperator		Operator
+	HiLink kixExpression		Operator
+
+	HiLink kixParenCloseError	Error
+	HiLink kixBrackCloseError	Error
+	HiLink kixStringError		Error
+
+	HiLink kixWhileError		Error
+	HiLink kixWhileOK		Conditional
+	HiLink kixDoError		Error
+	HiLink kixDoOK			Conditional
+	HiLink kixIfError		Error
+	HiLink kixIfOK			Conditional
+	HiLink kixSelectError		Error
+	HiLink kixSelectOK		Conditional
+	HiLink kixForNextError		Error
+	HiLink kixForNextOK		Conditional
+	HiLink kixForEachError		Error
+	HiLink kixForEachOK		Conditional
+
+	delcommand HiLink
+endif
+
+let b:current_syntax = "kix"
+
+" vim: ts=8 sw=2