Skip to content

Releases: michaelcmartin/Ophis

Ophis 2.2

29 Jul 00:59
Compare
Choose a tag to compare

Ophis 2.2 has been released! The work here is mostly internal for compatibility but there are a few bugfixes and cleanups too.

New Features

  • All instructions with Absolute modes may force them with a .W suffix to the instruction
  • New example code for Atari 2600, Atari 800, and Apple II
  • 4502 CPU support is now stable
  • Systems equipped with pip or pipx may install the program with pip install --user ophis-asm or similar.

Bugfixes

  • The current character map now applies to every string in a data directive
  • 4502 only: ASR instructions now properly collapse to Zero Page instructions when possible
  • The Atari 2600 program is now built in a way that makes it compatible with the Harmony cartridge

Internal changes

  • Codebase updated to Python 3; minimum version is now 3.6

Ophis 2.1

25 May 09:10
Compare
Choose a tag to compare

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.