aboutsummaryrefslogtreecommitdiff
path: root/doc/ideas.txt
blob: f70e47ff556238b9a7191ec65b159f97e11ec329 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
These are not really TODOs, they're "might do" or "hope to do".

Features that should be implemented:

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