Changes and additions in ZCN v1.2:

- Decent online help. This comes in the shape of `man', a
  Unix-man-like program, and *many* man pages for it, documenting
  every ZCN command and most third-party ones bundled with ZCN, taking
  roughly 55k for the lot. The `help' program has been removed, as man
  makes it obsolete.

- `zap', a graphical program-launcher.

- `spell', an interactive spellchecker (which uses the ROM), a bit
  like a cross between `ispell' and the ROM wp's spellchecker.

- `rrinit.bin' now compensates for the ROM OS's stupid ^Z-stripping
  code, which broke it in ZCN v1.1.

- `cal', a calendar program like Unix `cal' - it's a Z80 port of a
  public domain C program by Martin Minow.

- `expr', a sort-of-clone of Unix `expr' - a Z80 port of a PD C
  program by Erik Baalbergen.

- Keyboard-reading code should now fully work around the bugs in the
  NC100's keyboard hardware (see top of src/keyread.z for full details
  of what the bugs are).

- ZCN now uses IM2 by default, and can no longer be made to use IM1.
  So the `useim2' command has been removed.

- `setbaud' replaced with `stty'; e.g. `setbaud 7' translates to the
  slightly more meaningful `stty 19200'.

- New `cd -' (or `user -') command, go to last user area selected.

- `note', a simple type-text-into-file internal command.

- Zcnclock is now much nicer, and there's also `dclock', a new
  cut-down version which fits in 1k.

- `dir' now looks more like CP/M's dir.

- Printer bug fixed - previously printing turned off the serial line
  driver which, er, wasn't ideal. You'd never guess I hardly ever
  print from ZCN, would you? :-)

- Corrected serious bug in documentation. (The NC100's Z80 *DOES NOT*
  run at 6MHz (it's more like 4.6MHz), even though it's a 6MHz-capable
  chip! Also, ZCN isn't actually much faster than the ROM OS. It's
  still better though. ;-))

- Cursor move control code (^P) now uses 20h+y rather than the old
  (and rather bizarre) 46h+y. 46h+y is still supported for now, but
  may not be in future.

- `ruler', displays a ruler onscreen.

- `slide', a slide-rule emulator. Terribly useful. :-)

- `calc' should now work on all ROM versions.

- New `cboot' internal command cold-boots ZCN from the memory card.

- New `capsctrl' internal command, swaps functions of Caps Lock and
  Control keys if you do `capsctrl 1'.

- New `crlf' internal command (not *another* internal command!) lets
  you disable/re-enable the usual CP/M-ish line-break (CR/LF) after
  each command finishes. Mainly intended for use in SUB files.

- New `vdu' internal command (AIEEEE! :-)) prints one or two
  characters, given their ASCII values. For example `vdu 1' clears the
  screen, and `vdu 13 10' prints CR/LF.

- You can now change the default LISTO setting for `bbcbas'. You have
  to edit the executable, which isn't ideal, but zcn.txt demonstrates
  how to do it with wade.

- Some additions to zcnlib's 32-bit integer routines.

- You can now change the address of the font used by ZCN. This lets
  ZCN-aware programs effectively use UDGs and the like.

- New `off' internal command, does what you'd expect. :-)

- `bmp', a way of printing such UDGs (and bitmaps generally) from SUB
  files. There's also utils/pbmtosub.c, which converts PBMs into
  `bmp'-using SUB files.

- ZCN checks for internal commands more quickly than it did before
  (though to be fair, this was near-instant anyway :-)).

- Removed the copyright message displayed when you boot ZCN. It may be
  a traditional CP/M thing to have, but frankly even *I* found it
  slightly irksome. Now when ZCN boots, it just displays what the
  `ver' command does.

- Esc as a prefix to a CR/LF now causes ZCN to ignore it. It's not
  clear how useful this is, though... :-)

- Fixed two .sub-related bugs. First, if a $$$.sub didn't contain a ^Z
  it wasn't deleted after ZCN finished running it. Second, it assumed
  (when deleting it) that $$$.sub remained in the current user, which
  isn't always the case.

- Fixed so things like `a:dir' (internal commands with drive specs)
  don't run the internal command - now ZCN (in this case) tries to run
  `dir.com' or `dir.sub' on drive A:.
