From 95dac9109c821c8f905e0209b31b62c9d52ff300 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 19 Mar 2026 03:02:42 -0400 Subject: Add /RESET command and nreset() func. Mainly for testing. --- src/cmd.c | 7 +++++++ src/nio.c | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'src') diff --git a/src/cmd.c b/src/cmd.c index b463901..84829a2 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -33,6 +33,7 @@ static void do_quit(void); static void do_quote(void); static void do_topic(void); static void do_ver(void); +static void do_reset(void); typedef struct { char *cmd; @@ -66,6 +67,7 @@ cmd_t command_defs[] = { { "QUIT", do_quit, 0 }, { "QUOTE", do_quote, 1 }, { "TOPIC", do_topic, 0 }, + { "RESET", do_reset, 0 }, { "VER", do_ver, 0 }, { "VERSION", do_ver, 0 }, { 0, 0 } @@ -73,6 +75,11 @@ cmd_t command_defs[] = { cmd_t *cmd_def; +static void do_reset(void) { + extern unsigned char nreset(void); + nreset(); +} + static void cmd_chan_text(void) { scr_activate(scr_current); diff --git a/src/nio.c b/src/nio.c index cdececb..399b06d 100644 --- a/src/nio.c +++ b/src/nio.c @@ -148,6 +148,22 @@ unsigned char nwrite(char* devicespec, unsigned char* buf, unsigned short len) return OS.dcb.dstats; // Return SIO error or success. } +/* https://fujinet.online/wiki/?p=SIO-Command-%24FF-Reset-FujiNet */ +unsigned char nreset(void) { + OS.dcb.ddevic = 0x70; + OS.dcb.dunit = 1; + OS.dcb.dcomnd = 0xff; /* reset */ + OS.dcb.dstats = DWRITE; + OS.dcb.dbuf = 0; + OS.dcb.dtimlo = TIMEOUT; + OS.dcb.dbyt = 0; + OS.dcb.daux = 0; + siov(); + + return OS.dvstat[DVSTAT_EXTENDED_ERROR]; // return extended status +} + + /* IRC doesn't need this */ #if 0 unsigned char nlogin(char* devicespec, char *login, char *password) -- cgit v1.2.3