diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-03-13 03:14:46 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-03-13 03:14:46 -0400 |
| commit | cdc45d44b4d96d147cda026df283a9bb0fcb3018 (patch) | |
| tree | e68376ef9c9ba006195f182afe44606d9ec55b06 /src | |
| parent | fc503a1093f3d971e1bc2082122031a0761bd9ed (diff) | |
| download | fujinet-chat-cdc45d44b4d96d147cda026df283a9bb0fcb3018.tar.gz | |
fix keyclick for special keys
Diffstat (limited to 'src')
| -rw-r--r-- | src/keyclick.s | 16 | ||||
| -rw-r--r-- | src/main.c | 10 |
2 files changed, 13 insertions, 13 deletions
diff --git a/src/keyclick.s b/src/keyclick.s index bbe613c..3b4a591 100644 --- a/src/keyclick.s +++ b/src/keyclick.s @@ -1,5 +1,6 @@ .include "atari.inc" .export _keyclick + .import _cgetc ; keyclick.s - just what you think it is. @@ -9,16 +10,11 @@ ;.ifdef REAL_KEYCLICK .if 1 -; Copied from OS ROM source, 12 bytes of code. Because of the repeated -; stx WSYNC, you don't want to use this if you're using DLIs. -; Preserves A and Y, returns with X=$ff, N set, Z clear. -_keyclick: - ldx #$7f -@rc1: - stx CONSOL - stx WSYNC - dex - bpl @rc1 + ; used to my own STA WSYNC loop, but that didn't respect NOCLIK on + ; XL/XE machines. + lda #0 + sta CH + jsr _cgetc rts .else @@ -15,6 +15,7 @@ #include "screen.h" #include "edbox.h" #include "config.h" +#include "keyclick.h" unsigned char err; // error code of last operation. unsigned char trip = 0; // if trip == 1, fujinet is asking us for attention. @@ -129,7 +130,7 @@ void init_channels(void) { } } -void reconnect_wait(void) { +void reconnect(void) { scr_display(SCR_SERVER); scr_print_current("Press a key"); @@ -150,7 +151,10 @@ void reconnect_wait(void) { while(OS.cdtmf3 == 0xff && OS.ch == 0xff) /* NOP */; - OS.ch = 0xff; + if(OS.ch != 0xff) { + keyclick(); + OS.ch = 0xff; + } } void main(void) { @@ -174,6 +178,6 @@ void main(void) { irc_loop(); } fn_disconnect(); - reconnect_wait(); + reconnect(); } } |
