gardners
a7994f9e85
4502 instructions INW and DEW are Zero Page, not Absolute
2014-03-23 16:51:01 +10:30
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
Michael Martin
9ea0962e52
Fixed missing import.
2012-06-03 20:22:48 -07:00
Michael Martin
86e58efce8
Merge catseye's incbin-range enhancement.
...
Needed a little work to merge cleanly, but no real surprises.
This isn't a complete solution yet, but it will work for the
basic case. It should allow expressions and gracefully handle
non-hardcoded cases (while still efficiently handling hardcoded
ones).
2012-06-03 20:00:40 -07:00
Michael Martin
cf0df92fb1
Wrap up the new file/dir handling.
...
An .outfile directive lets sources suggest default filenames.
Also, .include, .require, .incbin, and .charmapbin are relative
to their _source file_ as opposed the _directory you called Ophis
from_, like it really should have always been.
2012-06-03 19:50:17 -07:00
Michael Martin
17f68399ef
Allow support for multiple input files.
...
To account for this change, output files are now prefixed with the
-o option, and if none is specified, it defaults to 'ophis.bin'.
2012-06-03 18:32:25 -07:00
Michael Martin
809bf51239
NES Hello World code
...
Includes iNES and UNIF linkage.
2012-06-03 15:09:18 -07:00
Michael C. Martin
a9f406489d
Demo "Hello World" for the Stella/Atari 2600.
2012-06-02 20:06:14 -07:00
Michael Martin
feba267ee7
Basic platform headers.
...
* C64, NES, and Atari 2600 ("Stella") useful constants headers.
* crt0.s equivalent for C64.
* Hello World for the C64.
2012-06-02 02:45:05 -07:00
Michael C. Martin
14a37ca879
Massive code modernization spree.
...
Full PEP8 compliance. Also, booleans have been inserted where
they make sense (introduced in 2.3!) and I haven't knowingly
added anything that will break 2.3 compatibility.
At this point the code really doesn't look like it was written
ten years ago. Hooray!
2012-06-02 00:04:15 -07:00