""Nasser,
this is of course typical example of case when you should put your
macros to .sty file and redefinitions for tex4ht into .4ht file.
mycode.sty:
%%%%%%%%%%%%
\ProvidesPackage{mycode}
\RequirePackage{listings}
\lstnewenvironment{code}
{\lstset{language=matlab}}
{}
\endinput
%%%%%%%%%%%%
tex4ht configurations in mycode.4ht:
%%%%%%%%%%%%
\ScriptEnv{code}
{\ifvmode\IgnorePar\fi\EndP\NoFonts\hfill\break\HCode{<pre>\Hnewline}}
{\HCode{</pre>}\EndNoFonts\endgraf}
\endinput
%%%%%%%%%%%%
and the modified TeX file:
%%%%%%%%%%%%
\documentclass[12pt]{book}%
\usepackage[T1]{fontenc}
\usepackage{fancyvrb}
\usepackage{mycode}
\begin{document}
some text
\begin{code}
X=10;
y=5;
\end{code}
another text
\end{document}
%%%%%%%%%%%%
tex4ht definitions are little bit more involved, in order to handle
the paragraphs correctly ("\ifvmode\IgnorePar\fi\EndP" and "\endgraf),
it contains also some minimal HTML insertions. There is no need to
define other environments, \ScriptEnv can be used to handle existing
environment and it can also be used to insert any HTML code.
Best regards,
Michal