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