diff options
| -rw-r--r-- | TODO | 4 | ||||
| -rw-r--r-- | config/config.c | 6 | ||||
| -rw-r--r-- | doc/editing_keys.txt | 13 | ||||
| -rw-r--r-- | src/edbox.c | 1 | ||||
| -rw-r--r-- | src/irc.c | 5 |
5 files changed, 19 insertions, 10 deletions
@@ -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 @@ -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); } } |
