The main function in dasm.cpp now explicitly returns 0.
The assmebler now tries to pull out immediate values.

Currently it handles integer literals but not symbols.
Fixed the generate listing option which was incorrectly checking for the
relocatable option instead.
Changed all the opcode and modifiers to decimal.

Some of them were being treated as octal instead of decimal.
Added support for parsing a symbol name where a immediates is expected.
Added an assertion to detect when a symbol is reference before it is
defined.

This isn't a requirement but helps detect cases where this is done and lets
me move forward in the development.

The euler1.dls has been updated to take this into account.
Added support for parsing a long immediate.

It has the same limitations as an immediate.
The assembler now reads long immediate instructions.

At this stage euler1.dls can be read and converted to the machine
instructions however it can't be written out at the moment other than
in the program listings.