These are not really TODOs, they're "might do" or "hope to do".

Features that should be implemented:

- /r to reply to the last person/channel who msg'd you, /a to msg the
  last person/channel you msg'ed (server and private screens). Idea
  comes from phigan (thanks!)

- Support for (some of) the extra RAM in 64K machines. Can get an
  extra 4K because we don't need the international font or the
  floating point routines, and we can plop our custom font directly
  into $E400. *Maybe* look into using the 800 OS, which would give
  another 3K (the rest of the $C000 area besides the intl font).
  This would be a separate executable (fnchatxl.xex).

- Support for 130XE, 256K XL, etc extended RAM. Apparently a lot
  of people have 1MB these days. *Lots* of screens, each with lots
  of scrollback, would be the main (only?) use for the extra RAM.
  Separate executable (fnchatxe.xex).

- Custom cgetc() that doesn't block forever, and does its own
  keyclick (using POKEY, not the console speaker), so we can
  disable the click even on an 800. Also maybe we can set the
  key repeat rate on an 800... and since the clicks are done
  via POKEY, 800 users can *turn the volume down*. Also since
  we won't be using WSYNC, it opens up the possibility of
  using DLIs (if I can think of a useful use for them).

- Adaptive scrollback (dynamic screen size). Using fewer screens
  would mean you get more scroll. Shorter screens steal lines from
  the top of the tallest screen as needed. Requires a display list
  that's all LMS, and each line needs to be 42 bytes (the extra
  2 bytes are a pointer to the previous line, or 0 for the top line).
  Some lines would have to be blacklisted because they'd cross a 4K
  boundary. As a side effect, scrolling in new text would be *fast*,
  no need to move memory around, just allocate a new line and change
  the display list.

- URL handling. Extract URLs from message text, send them to a
  UDP port on a local machine that knows how to deal with them.

- Some method of copy/paste, using the keyboard or maybe a joystick.

- Cut buffer for ^U ^K ^W, like bash/emacs. LImited size (like,
  240 bytes, same as the input box).

- Support for the XEP80 (and its modern clones). This really should be
  done as dual-head: Keep the regular Atari display for screen 1,
  the edit box, and the status bar. The rest of the screens can
  display on the XEP80. One problem with this is, scrollback memory.
  Each of screens 2-7 will be ~2000 bytes per 80x25 chunk, so each
  needs 4K to be able to scroll back 1 screens' worth. So XEP80
  support might end up being a 128K-and-up-only thing.
  reifsnyderb has some code that deals with the XEP, written for use
  with CP/M, that may be useful here.

- R: support. Compile-time switch, separate executable. Use with
  FujiNet, Lantronix, or anything else where we can go like
  ATDThostname:port.
