* Added m146805 and m68hc05 to unidasm
* Made opcode tables configurable in m6805_base_device, provided tables for HMOS, CMOS and HC families
* Implemented MUL instruction, made unimplemented STOP and WAIT raise fatal error
* Added skeleton MC68HC05C4 with RAM and ROM in correct locations in memory map
Device implementations (all cpp files in netlist/devices) now should
only include nl_base.h.
Netlist implementation sources should only include "net_lib.h".
Refactored netlist.h and netlist.cpp to avoid namespace congestion in
netlist.h.
Fixed VC2015 build. (nw)
drgninja: replace MCU simulation with hacked version of baddudes dump
(nw) If anyone who doesn't suck at this game can try playing through and
see if/when problems occur, please let me know.
(nw) Uses a similar scheme to pushman, but doesn't use port D on the
MCU, and uses the same endianness for MCU reads/writes (pushman swaps
the bytes on writes). As an aside, bballs has at least partial nudity
in it as seen in attract mode, although less than bballsa.
For netlist device debugging one can now use
#define LOG(...) log().info(__VA_ARGS__)
to use debugging and the known
#define LOG(...) do {} while (0)
do disable debugging on device level.
To avoid bitrot one could as well use
#define LOG(...) log().info.log<true>(__VA_ARGS__)
and
#define LOG(...) log().info.log<false>(__VA_ARGS__)
The later disables debugging. If the compiler can assume that there are
no side effects from e.g. using foo(a/b), 'LOG("abc {1:04x}",
foo(a/b));' should be completely optimized away.
Log channels available are info, verbose, warning, error and fatal.
Don't use debug, it is enabled only on specific debug builds.
Use would be e.g.
LOG("abc {1:04x}", 2);
The format specifier in the string are enclosed in "{}". "{2}" is the
second parameter after the format string. Types are determined
automatically. "{3:04x}" would format a number as a hexadecimal with 4
leading zeros.
[Couriersud]
The previous solution involved a significant amount of redundant
replication of information and objects.
Now, a rom name specified as
SOMEROM(x21, "romlabel")
will automatically be loaded from region "netlisttag:romlabel". Examples
are hazl1500 and stuntcyc. [Couriersud]