overview components memorymap downloads possibilities contact
 
ram io eprom
The Amélie project
The memory map - EPROM area
Doesn't "EPROM" sound like something from outer space? Like, as the SETI project scans the skies looking for Signs of Extra-Terrestrial Intelligence (like finding intelligence around this hunk of rock was maybe asking too much), it might stumble across a big ol' EPROM lurking around the region of Sirius (no! you can't be sirius maaan!). But you don't need to have bothered reading this, it has nothing to do with Amélie and is merely a flimsy excuse for including some stylish clip-art... :-)

The arrangement of the EPROM
We are treating the EPROM as two parts, 5K for the "application code" and 3K for the BIOS.

Therefore:
  &E000 to &F3FF  Application code, 5120 bytes
  &F400 to &FFFF  BIOS, 3072 bytes

These divisions are not "engraved in stone", using the one EPROM means there is some degree of flexibility, however please note that all supplied BIOS code and any application code will follow these assumptions.

 

Earlier EPROM layout
The initial Amélie specification was for a 4K EPROM, with the lower 2K (&F000-&F7FF) for application code and the upper 2K (&F800-&FFFF) for the BIOS.
Because the memory system has not changed, this layout will work as well.

Note that more recent versions of 6502asm have been modified to output 8K EPROM images (unless you override or set the limits manually).
Likewise, the more recent versions of AmélieEm expect to see an 8K EPROM image, however if it sees a 4K one instead, it will load it twice into the 8K area (which is roughly how it would 'appear' in memory).

 

The Application Code

Once Amélie has initialised, control is passed to the first instruction, at the first byte, of the "application code".

This is responsible for two things:
Firstly it should do whatever it is that this Amélie actually does (i.e. manage the heating, home security, whatever).
Secondly, if a serial interface is required for set-up purposes, then this should 'talk' to the serial port (via the BIOS) and provide the necessary prompts and reading/writing of memory locations.

It is not always necessary to have a serial communication, perhaps a small keypad (a BCD-to-binary chip will convert seven keys into three lines which can be read using a VIA) would be all that is required.

There is no further description of the application code as it is entirely application-dependent.
For specifics relating to the provision of the "RICKBOT", please refer to the RickBot specification .

 

The BIOS

Amélie does not have an operating system. She has a BIOS. The Basic Input/Output System takes care of background functions such as the clock tick and basic interrupt handling and vectoring.
The BIOS also offers a collection of routines to 'talk' to the hardware; rather like a callable library.

When Amélie is started or reset, the BIOS is called at &F400. This code sets up the initial environment, resets the hardware, tests memory (etc).
After all of this has been completed, control passes to &E000 which is assumed to be the first instruction of the application code.

There is currently no further description of the BIOS code - it is hard to discuss something that doesn't exist...

(it is anticipated that, in the future, the BIOS API will be described here - in detail)

© 2007 Rick Murray