Preface

The Ophis project started on a lark back in 2001. My graduate studies required me to learn Perl and Python, and I'd been playing around with Commodore 64 emulators in my spare time, so I decided to learn both languages by writing a simple cross-assembler for the 6502 chip the C-64 used in both.

The Perl version was quickly abandoned, but the Python one slowly grew in scope and power over the years, and by 2005 was a very powerful, flexible macro assembler that saw more use than I'd expect. In 2007 I finally got around to implementing the last few features I really wanted and polishing it up for general release.

Part of that process has been formatting the various little tutorials and references I'd created into a single, unified document—the one you are now reading.

Why "Ophis"?

It's actually a kind of a horrific pun. See, I was using Python at the time, and one of the things I had been hoping to do with the assembler was to produce working Apple II programs. "Ophis" is Greek for "snake", and a number of traditions also use it as the actual name of the serpent in the Garden of Eden. So, Pythons, snakes, and stories involving really old Apples all combined to name the assembler.