Commit Graph

16 Commits

Author SHA1 Message Date
Michael C. Martin
57e663cf29 Remove spurious CRLFs 2012-05-29 18:24:20 -07:00
Michael C. Martin
af50326e39 Add the NOP Zero Page undocumented opcode.
This seems to be one of the preferred undocced ops in the Atari
2600 VCS development community.
2012-05-29 18:24:20 -07:00
Michael C. Martin
196cb47f05 Fix bug in pass manager that was making the branch extender too aggressive.
We need to let the zero-page collapser do as much work as it can before
we get bent out of shape about out-of-range branches.
2012-05-28 22:53:53 -07:00
Michael C. Martin
741390e955 Allow '-' as a filename to mean standard input or output.
As part of this change, all assembler chat is being pushed to
standard error, where it probably should have been in the first place.
Scripts and batchfiles that relied on capturing the output of Ophis
will need to capture stderr now instead.
2012-05-28 19:19:08 -07:00
Michael C. Martin
f8bc917601 A new 'correctness optimization': ExtendBranches.
This pass actually isn't an optimizer in that it produces larger
binaries when it triggers. However, the larger binaries created
will actually assemble properly.

The ExtendBranches pass detects Relative instructions (that is,
branches) that extend past the signed-8-bit range Relative instructions
permit, and replaces them with a branch-jump combination with identical
semantics.

Since this may be evidence of a program bug, Ophis will warn when
the optimization is triggered.

Due to similarities between this pass and UpdateLabels, both passes
have been refactored in passing.
2012-05-27 15:57:23 -07:00
Michael C. Martin
3184b22e41 Add backup files to .gitignore 2012-05-27 15:57:22 -07:00
Michael C. Martin
c1c102291c Remove the deprecated and incomplete compatibility mode for Perl65. 2012-05-27 15:57:10 -07:00
Michael C. Martin
1df8ad465d Major formatting fixes:
* No more tabs
 * Fix copyright notices to point at right files and name the license right
2012-05-06 20:06:28 -07:00
Michael C. Martin
d5ec7bdacd A simple distutils wrapper to make ophis a standalone program on a system. 2012-05-06 18:20:47 -07:00
Michael C. Martin
579747fc43 Merge pull request #2 from catseye/driver-script
Rewrite the driver script in Python; use os.path.realpath(). This should keep local copies working while still leaving the door open for distutils-based solutions like the original 1.0 had.
2012-04-25 21:19:01 -07:00
Cat's Eye Technologies
8c94910440 Rewrite the driver script in Python; use os.path.realpath(). 2011-12-19 13:41:09 -06:00
Michael C. Martin
00f8586be9 Merge pull request #1 from catseye/master
Fix misleading error message from .incbin and .charmapbin pragmas, add some bookkeeping
2011-12-17 19:34:01 -08:00
Cat's Eye Technologies
a1cc6db760 Catch IOError in .incbin and .charmapbin pragmas. 2011-12-09 14:24:12 -06:00
Cat's Eye Technologies
5392f4c2d4 Add .gitignore and minimal driver shell script. 2011-12-09 13:59:54 -06:00
Michael C. Martin
2c8dba2450 Initial import of the Ophis 1.0 distribution and supplemental material 2011-08-20 16:33:25 -07:00
Michael C. Martin
b78f3c614a Initial README commit 2011-08-20 16:11:17 -07:00