My intention is to make the 6809 act as a 'C engine', i.e. a processor which can be easily programmed in C and run C programs in what is *almost* a 'bare metal' environment. What I plan to implement as resident software (taking the place of a BIOS) is basically just a loader with a tiny amount of added support for C programs resident by default - not a full library, just the 'builtin' calls which the C compiler generates even in the absence of any external declarations in your source code, in conjunction with a protocol running over the serial line which is used to extend functionality by allowing remote procedure calls (RPCs) to the host from the 6809 and vice versa. However rather than make the RPC protocol the primary data going over the serial line (and having terminal I/O be done as a set of encapsulated RPC calls), the default data will be assumed to be terminal I/O, and the RPC calls will be implemented as escape sequences which will be intercepted by a modified terminal program running on the host. The 6809 resident code will supply a library 'putbyte' and 'getbyte' routine to ensure a single point where all I/O can be filtered and this RPC mechanism implemented, so that it remains available to user programs. When the 6809 boots it runs a trivial command line interpreter, which is not much more than an echo loop as not many significant commands will be available. The system works hand-in-hand with a modified terminal program on a smarter host (eg VMS, Unix, whatever... ). The terminal program normally sends text and receives simple text as typed by the user, but allows for escape sequences in the text with the following properties: On receipt from the 6809, an escape sequence may contain a command-string for execution on the host. On sending to the 6809, an escape sequence may denote that the string following it is loader data, in which case the 6809 will place it directly in memory (without echoing it back to the user). This way a command typed to the 6809 command-line interpreter can be sent back to the host as a request to download a file for execution. The host sends the file (in motorola S-record format or in the ascii .o format generated by gcc6809), which is then placed in memory on the 6809 before control is passed to the 6809 which executed the newly-loaded code. Secondary to this, other escape sequences will be used to implement the remote procedure call mechanism (using copy-in/copy-out for parameters that allow updating, and results, not call by address as in C). RPC calls can implement host-specific functions (such as a 'get time of day' call), but will primarily be used to implement a remote filing system, with files stored on the host being accessed by programs running on the 6809. (This is similar to how BBC Micro second processors would access files on the BBC Micro host over the 'tube' 8-bit data link).