Maclisp DEFMACRO doesn't use *MACROARG* to hold the form which makes it incompatible with Lispm DEFMACRO. It is necessary to use *MACROARG* to tell for certain whether an optional arg was supplied or not.