2016-09-06 12:54:21 +00:00
|
|
|
Assembler Testcases
|
|
|
|
===================
|
|
|
|
|
2016-09-07 17:21:24 +00:00
|
|
|
Opcode Tests:
|
|
|
|
-------------
|
|
|
|
|
2016-09-06 12:54:21 +00:00
|
|
|
These testcases are inspired by the ones now removed from test/assembler.
|
|
|
|
The main purpose is to have each possible opcode generated at least once,
|
2020-11-17 20:06:05 +00:00
|
|
|
either by an Assembly instruction or a ".byte"-placeholder. Typically
|
2016-09-06 12:54:21 +00:00
|
|
|
generated by disassembling a binary dump that contains data in the form
|
|
|
|
of the pattern that each opcode is stated once in order followed by easy
|
|
|
|
to recognise:
|
|
|
|
|
|
|
|
00 00 EA 00
|
|
|
|
01 00 EA 00
|
|
|
|
02 00 EA 00
|
|
|
|
[...]
|
|
|
|
fe 00 EA 00
|
|
|
|
ff 00 EA 00
|
|
|
|
|
|
|
|
The disassembly is then put in a better readable form by replacing the
|
|
|
|
leftover dummy opcode parameters with something more recognizable.
|
|
|
|
|
|
|
|
The testcases for 6502, 6502x, 65sc02, 65c02, 4510, and huc6280 have been
|
|
|
|
put together by Sven Oliver ("SvOlli") Moll, as well as a template for the
|
2020-11-18 14:29:56 +00:00
|
|
|
m740 instructions set. Later 6502dtv support was also added.
|
2016-09-06 12:54:21 +00:00
|
|
|
|
2016-09-07 17:21:24 +00:00
|
|
|
Still to do is to find a way to implement an opcode testcase for the 65816
|
2016-09-06 12:54:21 +00:00
|
|
|
processor, since it's capable of executing instructions with an 8-bit and
|
2020-11-17 20:06:05 +00:00
|
|
|
a 16-bit operator alike, distinguished by only one processor flag.
|
2016-09-06 12:54:21 +00:00
|
|
|
|
2016-09-07 17:21:24 +00:00
|
|
|
|
2020-11-17 20:06:05 +00:00
|
|
|
CPU Detect Tests
|
2016-09-07 17:21:24 +00:00
|
|
|
----------------
|
|
|
|
|
|
|
|
These tests all assemble the same file "cpudetect.s" which contains several
|
|
|
|
conditionals for several CPUs, only using every option known to the "--cpu"
|
2020-11-17 20:06:05 +00:00
|
|
|
command-line switch of ca65/cl65.
|
2016-09-07 17:21:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
Reference (".ref") Files
|
|
|
|
------------------------
|
|
|
|
|
2020-11-17 20:06:05 +00:00
|
|
|
Some hints about creating new files:
|
|
|
|
Make an empty file with the CPU's name prepended to "-cpudetect.ref". Run the
|
|
|
|
tests; one of them will fail due to a mismatch. Review the output of the
|
|
|
|
".lst" file pedantically, then copy the ".bin" over the empty ".ref" file.
|