In general, you need to implement a major mode in an elisp file (.el) and make the location accessible via the load-path. Example:
;;; Emacs load path
(setq load-path (cons "c:/cygwin/home/windowsjoe/mymode" load-path))
You then need to reload your .emacs ("M-x load-file") . If you get the error "End of file during parsing" it suggests a missing bracket somewhere. Go back and check your code. If successful you will see "Loading...done" in the command buffer. Note: /home/windowsjoe may not work, you may need to actually specify the location on your hard drive where /home/ is located. as in the example.
You also need to byte-compile source files using "M-x byte-compile" in emacs. The bytecode makes your functions faster to execute and byte-code is transportable from one machine to another without recompilation.
Learning about .eml files
2 weeks ago