Commit Graph

81 Commits

Author SHA1 Message Date
Michael Martin
70f93b22eb Rework label map collection
This uses a pass to interrogate the system for locations, then dumps
those out instead. It handles includes, anonymous labels, and basic
macros, but it does so in a somewhat ugly way. This data can be
readily abbreviated and should also be re-sorted.
2014-05-09 23:11:09 -07:00
Cat's Eye Technologies
c0bf2e98b7 A very, *very* poor-man's version of label<->address dump. Ugh! 2014-03-24 12:32:17 +00:00
Michael C. Martin
83b8433b77 Merge pull request #20 from gardners/master
INW/DEW addressing modes
2014-03-23 21:20:36 -07:00
gardners
97ea228fb7 remove LF added during conflict resolution. 2014-03-23 16:55:04 +10:30
gardners
d407791aa9 Merge github.com:michaelcmartin/Ophis into temp 2014-03-23 16:53:39 +10:30
gardners
a7994f9e85 4502 instructions INW and DEW are Zero Page, not Absolute 2014-03-23 16:51:01 +10:30
Michael Martin
42f01f7cd6 Bump minor version number and copyright dates 2014-03-22 22:09:11 -07:00
Michael Martin
3f13609932 Post-merge adjustments to 4502 patch. 2014-03-22 22:03:06 -07:00
Michael C. Martin
88c7214950 Merge pull request #19 from gardners/master
Add support for 4502/4510 CPU from Commodore 65
2014-03-22 22:02:56 -07:00
gardners
adf965fc9d fix SBX (ZeroPage), Z for 4502 2014-02-08 02:56:41 +10:30
gardners
bcfd08c750 Fix 16-bit immediate mode. 2014-02-08 02:55:26 +10:30
gardners
dcc37f5751 Implement test for 4502 extensions.
Fix numerous bugs revealed through tests, some more remain.
2014-02-08 02:51:42 +10:30
gardners
591fc2fe35 make addressing mode cooercion work with varying addressing mode
lists.
2014-02-08 02:19:14 +10:30
gardners
5c162d2407 restore branch expansion for non-4502 targets 2014-02-08 01:59:42 +10:30
gardners
8152590946 update readme to indicate 4502 support 2014-02-07 20:55:19 +10:30
gardners
6856da1bbf fix various bugs with 4502 assembly. 2014-02-07 20:52:11 +10:30
gardners
5c4b23cbee fix 16-bit branch out-by-one error 2014-02-07 20:23:56 +10:30
gardners
dec3106744 implement new 4510 addressing modes.
promote relative branches to 16-bit when required.
2014-02-07 20:22:06 +10:30
gardners
c4be540f49 add 4502 option to Ophis command line. 2014-02-06 22:23:28 +10:30
gardners
ccef1b663f update Opcodes.py to include 4502 opcodes 2014-02-06 22:20:24 +10:30
gardners
7686b21396 update addressing modes. Add 4502 to chipsets.txt 2014-02-06 22:19:38 +10:30
gardners
45e79d5583 add 4502 opcode table. 2014-02-06 22:06:40 +10:30
Michael Martin
364b39edfb First draft of listfile support.
The .listfile pragma and the -l command line option will select the
output file for the listing.
2013-04-13 19:57:24 -07:00
Michael Martin
e5ac21f0f9 Second attempt at implementation of the BBXn instructions for Rockwell 65c02 chips.
Reliable technical documentation for how these instructions are decoded is a
little thin on the ground online, so some of this implementation is still
speculative.
2013-01-27 20:18:08 -08:00
Michael C. Martin
1c7174e696 Merge pull request #14 from catseye/fix-templabelcount
Declare templabelcount as a global in atom().
2013-01-10 22:25:03 -08:00
Michael C. Martin
c25047ca66 Merge pull request #17 from catseye/exit-code-1-on-error
Exit with exit code 1 when errors occurred
2013-01-10 22:18:23 -08:00
Cat's Eye Technologies
5fc504c6c1 Exit with exit code 1 if there were errors, 0 otherwise. 2012-10-25 10:51:39 +01:00
Cat's Eye Technologies
0b020a827b Add missing 'sys.' and remove unused module import. 2012-08-03 20:13:00 -05:00
Cat's Eye Technologies
45784e9b95 Declare templabelcount as a global in atom(). 2012-07-28 13:34:51 -05:00
Michael Martin
4ad16be245 Put tools under src 2012-06-16 02:07:02 -07:00
Michael Martin
ae59cbf3c4 Remove outdated website data 2012-06-16 02:05:45 -07:00
Michael Martin
5362a635c8 Fix up some typos in meta text. 2012-06-16 01:37:55 -07:00
Michael Martin
9ef2b91e9e packaging for 2.0 release 2012-06-13 00:24:21 -07:00
Michael Martin
55d7344cc7 PDF version of manual 2012-06-13 00:07:10 -07:00
Michael Martin
0faae3f5b4 Update manuals 2012-06-12 23:13:55 -07:00
Michael Martin
51583ce5e0 Remind git about binary files and not to mangle them. 2012-06-12 19:11:34 -07:00
Michael Martin
7f650e787d Fix the bugs the test suite found
- .require now tracks absolute paths of loaded files
 - stricter checking of .incbin arguments
 - fix charmap reset directive
 - Allow register names (a, x, y) as labels, with warning
 - Allow opcode names as labels, with warning
2012-06-12 06:29:03 -07:00
Michael Martin
10c3b46996 Finish up the test suite
Quite a few tests fail; that'll need fixing.
2012-06-12 06:29:03 -07:00
Michael Martin
926eef2287 Many more unit tests.
- Labels
 - Expressions
 - Macros
 - Outline for remaining tests (compilation units, segments, scoping)
2012-06-10 22:16:24 -07:00
Michael Martin
382a6a218b Set STDOUT to binary mode on Windows if needed 2012-06-10 18:53:49 -07:00
Michael Martin
ffd96a8c2f Update documentation. 2012-06-09 03:21:33 -07:00
Michael Martin
07f807d680 Documentation and examples reorganization 2012-06-08 23:41:16 -07:00
Michael Martin
cc9acf3ce4 Bugfix: Let Collapse Pass reverse collapses
This can happen if a branch extender pass shifts a load's target
label past the zero-page boundary.
2012-06-08 22:23:42 -07:00
Michael Martin
47be777884 Test suite: new tests for basic I/O and binary transforms 2012-06-08 21:50:28 -07:00
Michael Martin
6e30cc4153 Wide instruction format for 65c02 2012-06-08 21:45:38 -07:00
Michael Martin
e44ad61af9 Improved test script
This script requires Python 2.4, for the subprocess module.
2012-06-08 02:49:29 -07:00
Michael Martin
23700276a6 Introduce wide-mode override opcodes.
This solves the --no-collapse problem by letting you force
Absolute mode on an instruction by instruction bases, which is
usually going to be what you want anyway.
2012-06-06 05:13:19 -07:00
Michael Martin
4891849e4a Pass control command line options.
It turns out that --enable-collapse is fundamentally misguided. We'll
need a better solution for that. --no-branch-extension looks pretty good.
2012-06-06 04:33:21 -07:00
Michael Martin
7e503df96f Bugfix: .include wasn't blocking later .requires
When crossing directories, this will still be wrong, but that's a
larger fix for later.
2012-06-04 00:35:53 -07:00
Michael Martin
9323067e91 Improve .incbin to let its arguments be arbitrary expressions
This introduces a new IR node for mutable-during-assembly ranges.
In the common case, where offset and range are hardcoded or missing,
it continues with the older, more efficient behavior.
2012-06-03 23:50:29 -07:00