Ophis 2.1
Ophis 2.1 has been released! This includes a handful of bugfixes and a sizable number of new features and resources.
New Features
- Listfile support: the
-l filename
option will produce a human-readable version of the generated binary, annotated with addresses and disassemblies where appropriate. - Mapfile support: the
-m filename
option will produce a map from raw addresses in the binary to locations in the code where that address was defined. - VIC-20 headers are now available.
- C64 headers have been split out into a simple header for small programs or those that wish to interact with BASIC somehow and a more sophisticated header that wipes BASIC out of the memory space for the duration of the program. A version of this was available in 2.0, but this one captures 16 more bytes of zero page and 126 more bytes of main RAM, allowing safe use of the entire range from $0800-$CFFF.
- Experimental support for using the C64 BASIC ROM's software floating point support in machine language programs.
- Experimental support for the 4502 chip (
-4
option), which is not a strict superset of the 6502 but was used in the Commodore 65 prototype.
Bugfixes
- The
BBXn
instructions on 65C02 were not being properly generated. This is now working. - The scripts are now invoked via /usr/bin/env, which should make them run unmodified on more platforms.
- Ophis now returns different exit codes on errors, which should make it easier to work into makefiles.
c64_0.oph
no longer produces strange errors from the BASIC interpreter if the BASIC part of the program changes during runtime.
Many thanks to Paul Gardners and Chris Pressey for their contributions to this release.