vt: minor fixes and a temporary hack

We have overlapped input/output so should use memmove - just we don't yet
have a memmove in all our support code - botch it for now

Add support to start on a different line (eg below boot rom info)

Allow a mapping function for simple mode (eg for Petscii and for 6809
boxes with the 6847)
decbdragon: Turn the DECB stream into a set of ROM images
6809: add mulhi

We need this for load average computation
dragon: do char mapping in the right spot
dragon: correct config.h, turn on new vt features etc
dragon: remove dead bits, add vt mapper function
dragon: Build the rom images not just fuzix.bin
dragon: 64K RAM not 96K
dragon: rewrite the setup code

We load the first ROM with an unpacking routine and all the data. On boot
it sets up the SAM (must be done from ROM), the PIAs and then says hello,
clears memory and moves all the RAM objects from a DECB stream we add
into the ROM image.

With that done, it flips to the second ROM which together with the
cartridge mappings gives you a high 32K for kernel code, although it has
to be split using text1/text2 as we must stuff the exception vectors into
0xBFF0-0xBFFF - so double check the fuzix.map
dragon: update crt0.s to allow for the work done in setup and the switcher
dragon: Update the link map
Makefile: split video/videodata on 6809 as we are ROMming video

Also add the new tools

With this lot done the Dragon builds and gets to the bootdev prompt pending
writing some actual drivers.

Still lots of other stuff busted - time_t is 32bit and needs fixing up
really, syscall and irq are not really done at all. Endianisms - who knows 8)
dragon: update the instructions
z80: Add bits ready for any endian fixing we have to do
dragon: move the display to 0x6000

This gives us clear space below 0x6000 to possibly allow for bigger binaries
(but there are some nasties about changing how the vectors must work that
 won't be doable on a "real" Dragon ROM)

It's also the needed basis for 32K COCO and Dragon32 support given a banked
cartridge unit and banked call support.
dragon: Major updates

- Crazy SAM RAM mapping support
- Propogate vectors correctly to user pages
- Flesh out the tricks.s code as needed (mostly by deleting bits)
- Keyboard driver
- IRQ support now working

This is sufficient to boot to the bootdev prompt, type a device number
and fail to mount the file system.
Makefile: avoid soft registers on 6809 for now

(not that gcc is actually generating them for some reason anyway)
README.md: expand notes on 64K size
dragon: fix memcpy prototype and implementation
dragon: SAM implementation of the user memory copier