Ken's Rather Useless Symbolic Assembly Development Environment for the Replica 1

or is that "Reasonably Useful"? You decide!

Ken Wessen, Version 1.3, page last updated: August 14, 2009

KRUSADER is a program written to allow assembly language development on the Replica 1 -- an Apple 1 clone designed by Vince Briel, and described in the book Apple 1 Replica Creation: Back to the Garage by Tom Owad.

KRUSADER includes a simple shell and editor, a single-pass symbolic assembler, a disassembler, and an interactive debugger, and fits in just under 4K (so it is small enough to fit in the 8K of Replica 1 ROM along with the monitor and Apple BASIC). Although designed for the Replica 1/Apple 1, there is very little system dependent code, and since full source code is provided, KRUSADER can easily be adapted to any other 6502 based system. However, its limitations may mean it is not an appropriate tool in many cases (for example, it has no concept of a file-system and so would not be particularly suitable for use on an Apple II).

KRUSADER can assemble for either the 6502 or the 65C02, and handles a fairly standard and expressive syntax for its assembly source code. For users who are unfamiliar with the 6502 instruction set, I recommend this introduction by Andrew John Jacobs. On a Replica 1, KRUSADER can assemble over 200 lines of code per second, and given its 32K or RAM, the defaults provide space for up to 20K of tokenised source code, 8K of generated code, and up to 256 global symbols.


Some Hardware Extensions

I have also built an add-on board for my Replica 1 to give it a number of additional features, such as a power switch and LED, fast (19.2k) serial I/O, sound, an IRQ interrupt button, 512K of Flash memory and 8 LEDs for blinkenlights.

Full details, including schematic, are available here.


I have my Replica-1 connected up to an old Apple IIc monitor. As can be seen int he following pictures, there are some problems syncing, but it is pretty manageable. When I connect it up to a TV, the output is much improved. This first picture shows the listing of some assembly language source in Krusader.

And, after assembly, we can examine the assembled code using the in-built disassembler.

This particular program produces patterns based on Pascal's triangle, and is included in the assembler's sample code collection. Here is an example of the output.

And finally, here is a picture of my hardware - showing the wonderful "Happy Hacking" keyboard, and a simple EEPROM burner connected to the expansion interface.

Computer Collection