Morsecco: 206 206 203 bytes
writing an interpreter for a two-symbol language using a three-symbol language seems to be a fair challenge:
. -- . -- . --.- . . .--
. . . - .-.
-- - -.-. - -.- .- . .-...-- .- --.. ..
. .--... .- --.. --.
- .- --. - . . - .- . .------- .- - - --.. .-. . ------- .- - .-. - . --.
.. - . -.- - . - .-- . . - . --.
The first line creates an error handler (code written to special address .
) to quit the program without error if the input is used up. Everything else is pretty straight forward. Without having MOD or compare I always add -127, adding 127 again if the result was not zero. Maybe I can think of a shorter solution on another day.