Commit Graph

26 Commits

Author SHA1 Message Date
Michael Martin
c0307c7ea4 Fix both incomplete and overaggressive use of the charmap 2024-07-17 20:54:04 -07:00
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
97ea228fb7 remove LF added during conflict resolution. 2014-03-23 16:55:04 +10:30
d407791aa9 Merge into temp 2014-03-23 16:53:39 +10:30
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
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
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

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