|
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) |