Commit Graph

25 Commits

Author SHA1 Message Date
Michael Martin 41bf01d035 Convert Ophis to Python 3.
Most of the work is handled by 2to3, but there's a few extra tricks
needed to finish the job, mostly about picking the right bits to be
Unicode and the right bits to be bytes.
2019-01-09 20:45:01 -08:00
Michael Martin c3d48da59d Fix issue with branches in listfiles.
Due to whitespace vagaries, etc., a sample correct output has been
added to the test case files, but isn't directly checked as part
of verification.
2014-05-24 19:52:33 -07:00
Michael C. Martin f656a69a90 Merge pull request #25 from catseye/usr-bin-env-python
For scripts, use the Python interpreter that's found on the path.
2014-05-24 07:19:40 -07:00
Michael C. Martin 33b9e9acac Merge pull request #24 from catseye/test-sets-exit-code
When running tests from command line, set exit code appropriately.
2014-05-24 07:19:14 -07:00
Michael Martin d3772587da Include a .cbmfloat pragma to make creating data simpler
Due to the usual vagaries of floating point, these are not completely
perfect, but for "human-scale" numbers it will be OK.
2014-05-18 23:19:22 -07:00
Cat's Eye Technologies 8f53f2d213 For scripts, use the Python interpreter that's found on the path. 2014-05-17 07:19:35 +01:00
Cat's Eye Technologies 1bd1424e33 When running tests from command line, set exit code appropriately. 2014-05-17 07:16:24 +01: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 3f13609932 Post-merge adjustments to 4502 patch. 2014-03-22 22:03:06 -07:00
gardners dcc37f5751 Implement test for 4502 extensions.
Fix numerous bugs revealed through tests, some more remain.
2014-02-08 02:51:42 +10:30
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 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 47be777884 Test suite: new tests for basic I/O and binary transforms 2012-06-08 21:50:28 -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 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 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
Michael C. Martin 1bbb2f1f1b Braindead test script 2012-06-01 00:24:30 -07:00
Michael C. Martin eae4ea7dcd Extend .advance to allow a filler expression. 2012-05-30 20:45:37 -07:00
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 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 2c8dba2450 Initial import of the Ophis 1.0 distribution and supplemental material 2011-08-20 16:33:25 -07:00