overview components memorymap downloads possibilities contact
 
schematics firmware resources
The Amélie project
Resources - Software

What's available?

A 6502 assembler, an Amélie system emulator, and a veroboard design package.

There are also several whitepapers available.

 

6502 assembler (2007/09/06) (6502asm described in detail)

There are numerous 6502 assemblers available; however having grown up on the BBC micro and RISC OS machines, I always use the ampersand ('&') to denote hex numbers, and I tend to use EQU commands for inserting bytes. None of the other assemblers can do this, and I didn't fancy booting up my BBC micro (or an emulation) in order to assemble code. Therefore, it made sense that I'd "roll my own"...

My assembler, in action.

The assembler is simple to use, and the internals (if you are interested in codey things) are equally simple. Part of the design philosophy of Amélie, remember? You can read some in-depth information .

Note that at this time the assembler only supports the original NMOS instruction set. The instructions are loaded from a table file so you can alter or alias instructions if you prefer, for example, to use "ADD" instead of "ADC"...

    • 6502asm for DOS and Windows PRE-RELEASE  (816K .EXE installer)
      This is a pre-release version of the 6502 assembler for DOS, that you may play with. This includes the PDF user guide.
      Note: you may not (re)distribute this software by any media or any method.
       
    • 6502asm  for RISC OS PRE-RELEASE (20K Zip archive)
      This is a pre-release version of the 6502 assembler for RISC OS, that you may play with.
      It has not been tested, but should work without problems as it was built directly from the DOS sources. Documentation is not supplied; if you do not have it or the DOS version, you should download the user guide PDF (below).
      Note: you may not (re)distribute this software by any media or any method.
       
    • 6502asm user guide (702K PDF)
      This is the documentation for 6502asm as a PDF.
      Note that you do not need to download this in addition to the DOS software, as the document is included.
      Note: you may not (re)distribute this documentation by any media or any method.
       
    • http://www.6502.org/
      You'll find lots of information on the 6502 processor, and the 65xx family, here.

 

AmélieEm (v0.01ah 2007/09/06, RISC OS: v0.01ah 2007/09/06 ) (AmélieEm described in detail)

AmélieEm (or AmEm under MS-DOS) is a complete software implementation of the Amélie system. It has been designed to allow the firmware to be designed and tested without the need to program a new EPROM for each little modification.

AmélieEm features a powerful tracing mode (called "Tracey"!) which allows single-stepping, modification of registers and/or memory, disassembly, etc etc...

Starting AmélieEm takes you into Tracey...

You can read some in-depth information, and also some details about how this software was ported to RISC OS!

    • AmélieEm pre-release  (v0.01ah 2007/09/06, 200Kb .EXE installer)
      This is a pre-release version of AmélieEm that you may try out to see how the system works.
      Note: you may not (re)distribute this software by any media or any method.
       
    • AmélieEm for RISC OS pre-release  (v0.01ah 2007/09/06, 54Kb Zip archive)
      By a stroke of genius, or insanity, I cobbled together an emulation of conio along with the required DOS calls. It is far from perfect, but it works!
      I've wrapped this up as an executable application, complete with light/dark DOSish colours and the obligatory PC-ANSI display font. Click here for more info on how this very-DOS software was ported to RISC OS!
      Note: you may not (re)distribute this software by any media or any method.

      The licence file and guide is not supplied with the RISC OS version. The licence is very simple - it is for your personal enjoyment (!) only, it is NOT to be distributed, and it is supplied strictly as-is.
      As for the instruction guide... Click here to read it.

The emulation within AmélieEm is missing the following:

  • Very very loose support for NMIs. Amélie doesn't use them.
  • No support (whatsoever) for the BCD maths features of the 6502. This shouldn't be hard to add though...
  • No support for the advanced features of the 6522 VIA (serial shifting, handshaking, Timer2, IRQs on non-CA/CB interrupts).
  • Other stuff (just to cover the hiccups of my troubled mind... :-) ).

  • Currently - the ACIA and VIA emulation is fairly basic.
    AmélieEm may be fun to play with in Tracey, but not a lot else can be seen to happen at this time, unless you plan to write yourself a BIOS...
    ...yup, hopefully AmélieEm works enough to start, and run, a BIOS. Though the appsys code doesn't do much; but it will "fake" bump sensing and send/receive via the serial port.
     
  • Here's what is new in this release:
    • Support for 8Kb EPROMs (with support for 4Kb EPROMs too).
       
    • Quick Save updated, larger EPROM image size and ACIA details.
       
    • Various ACIA bug-fixes.
       
    • [V] keypress swaps between trace mode and application code screens.
       
    • RISC OS DOS/CONIO bugfixes.
       
  • Here's what is new in the previous release(s):
    • You can programmatically byte read/write to the final byte in every 1024 byte block within the designated RAM allocation (16K). Normally accesses beyond the official 2K memory area are faulted; however this specific method will be permitted to allow you to implement probing for available memory.
      Note: This means there is wraparound - writes to &1FFF will be reflected in &07FF (etc).
       
    • Pressing functions keys F1 to F6 will trigger the appropriate "bump" behaviour, refer to the RickBot information for specifics.
      Note: This is not (yet) reflected within appsys, but your firmware code will be able to pick up on it.
       
    • Bug fixes - such as the screen now redraws correctly after forcing a processor/emulator reset.
      Note: Reset does not clear memory, nor does it force the EPROM code to be reloaded. You can do this by: 1, clear memory by setting all bytes to zero (&0000 to &FFFF); 2, reload EPROM image; 3, call reset.
       
    • More complete ACIA implementation, plus status visible within Tracey.
      Note: You cannot Poke the ACIA registers, this will instead permit you to tell the emulator whether or not a serial lead in "connected" (state of !DSR and !DCD).
       
    • The Breakpoint List now also lists break-on-event(s) defined.
       
    • Supplied BIOS image now whizzes through the LEDs in sequence, and outputs '.' characters to serial, so something can be seen to be happening when outside of Tracey.
      Yes - appsys now does something!
       
    • Major revisions to the RISC OS version of conio so works almost as good as the DOS version. :-)
       
  • New in both the RISC OS and DOS versions is the LED status and clock is written to the display upon a refresh. There is little else changed in the DOS version; quite a lot changed in the RISC OS version.

 

VeroDes

VeroDes is my veroboard (stripboard) design package. The version below is an early version that you can try out. Final versions are expected to be 'free' (as in gratis), but as this is not strictly part of the Amélie project, sources will not be available.

An example of VeroDes in use...

    • VeroDes has its own page on my website...

      This software requires Windows 95 (or later) plus a number of runtime components which are not supplied with the software (you'll need to download them separately, if you require them).


Whitepapers

Here are a few whitepapers that have been written to explain several facets of Amélie's operation.
These documents were written on an Acorn PocketBook II (rebadged Psion 3A organiser), and printed via a Hewlett Packard PCL to PDF convertor. Thus they are pleasingly small, rather than the 100s-of-kilobytes PDFs that are generated under Windows...

    • IRQ handling (5 pages, 21Kb PDF; preliminary)
      This explains how the IRQ system will work, and describes the BIOS features that will, essentially, work from the IRQ handler.
       
    • Serial communications (4 pages, 22Kb PDF; preliminary)
      This explains how the BIOS will implement serial communications, and how transmitting data to a remote machine can be as simple as dumping it into the output buffer; and receiving can be as simple as waiting for a vector to be called...
© 2007 Rick Murray