aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO4
-rw-r--r--config/config.c6
-rw-r--r--doc/editing_keys.txt13
-rw-r--r--src/edbox.c1
-rw-r--r--src/irc.c5
5 files changed, 19 insertions, 10 deletions
diff --git a/TODO b/TODO
index 8ef14fc..018eb79 100644
--- a/TODO
+++ b/TODO
@@ -12,7 +12,8 @@ FujiChat features, we're almost at parity!
Other stuff:
-- If an VBI-driven keyboard buffer turns out to be impossible or
+- Implemented, but not sure it was worth doing:
+ If an VBI-driven keyboard buffer turns out to be impossible or
too much of a PITA to contemplate, another idea to avoid dropping
keystrokes: after every keypress, wait something like 1/4 or 1/3
second for another keypress, before checking for incoming net
@@ -25,6 +26,7 @@ Other stuff:
really types, and on average, how often they pause (to think or
read back what they just wrote, etc). Also look into detecting
key repeats (SRTIMER).
+ Remove this when/if I do a proper typeahead buffer.
- Write a cgetc() replacement that doesn't call the OS K: "get one byte"
routine. I was avoiding it because it will need a 192-byte table
(keycode -> atascii lookup)... but I'm spending more than 192 bytes
diff --git a/config/config.c b/config/config.c
index 4e13290..55e1e7a 100644
--- a/config/config.c
+++ b/config/config.c
@@ -331,7 +331,11 @@ char prompt_main(void) {
print("[E]dit [C]onnect [C]? ");
c = tolower(lcgetc());
- if(c == 0x15) {
+ if(c == 0x14) {
+ strcpy(conf->nick, "Urch600XL");
+ conf->channels[1][0] = conf->channels[2][0] = 0;
+ c = 'c';
+ } else if(c == 0x15) {
/* super-secret Urchlay mode... */
strcpy(conf->nick, "Urch600XL");
c = 'c';
diff --git a/doc/editing_keys.txt b/doc/editing_keys.txt
index b6a2cbb..2247edc 100644
--- a/doc/editing_keys.txt
+++ b/doc/editing_keys.txt
@@ -15,17 +15,16 @@ Atari key - insert a ^B (meaning, toggle bold)
^B or ctrl-shift-Down - move left by one word.
Tab - in [private], pressing Tab on an empty input box inserts the
last nick that PMed you (outside of a query).
+Up arrow *in an empty inputbox* - bring up last entered command.
+ Can coexist with regular use of Up for movement.
+Ctrl-Insert - toggle insert/typeover
Future plans:
-History (if we can spare the RAM), maybe Start+Up/Down?
-Up arrow *in an empty inputbox* - bring up last entered command.
- Can coexist with regular use of Up for movement.
+^X, delete character (same as ctrl-del).
^Y, Shift-Insert - paste (^K, ^U, ^W fill a paste buffer; need RAM)
-Ctrl-Insert - toggle insert/typeover (does anyone care about this?)
-Tab - For [server], complete channels. For channels, complete channel
-nicks (we'll never have enough RAM to have full lists; search back
-through screen memory is how it'll work)
+Tab - For [server], complete channels. For [private] and channels,
+ complete channel nicks.
Shift-Return: Maybe... send buffer but do not clear it.
The glyphs for these will appear as inverse letters, but will actually
diff --git a/src/edbox.c b/src/edbox.c
index 049771d..2eaaf78 100644
--- a/src/edbox.c
+++ b/src/edbox.c
@@ -197,6 +197,7 @@ static void normal_keystroke(void) {
del_to_end();
break;
case CH_DEL:
+ case 0x18: /* ^X */
if(!edbox_len)
edbox_hide();
else
diff --git a/src/irc.c b/src/irc.c
index c07e666..d9f19aa 100644
--- a/src/irc.c
+++ b/src/irc.c
@@ -1020,6 +1020,7 @@ static void keystroke(void) {
txbuf_send_str("AWAY");
irc_away = 0;
}
+ OS.cdtmv3 = hz / 3;
if(GTIA_READ.consol == 6 || start_latch) { /* start pressed */
start_keystroke();
} else {
@@ -1045,6 +1046,8 @@ void irc_loop(void) {
if(!irc_read() || !service_minute_timer()) {
return;
}
- keystroke();
+ do {
+ keystroke();
+ } while(OS.cdtmv3);
}
}