From afb4a065b6bee669df249790835c64ea9dc6b331 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Fri, 3 Apr 2026 18:36:13 -0400 Subject: Use real arrays for tx_buf and rx_buf. 6253 bytes free. --- src/addrs.c | 4 ++-- src/irc.h | 17 ++++++----------- src/main.c | 2 +- src/nio.c | 3 +-- src/rxtxbuf.h | 5 +++++ 5 files changed, 15 insertions(+), 16 deletions(-) create mode 100644 src/rxtxbuf.h (limited to 'src') diff --git a/src/addrs.c b/src/addrs.c index 6085e2c..c7af1f2 100644 --- a/src/addrs.c +++ b/src/addrs.c @@ -9,8 +9,8 @@ u16 *dlist_status_lms = u16p(0xbfee); u8 *dlist_last_line = u8p(0xbff0); u8 *edbox_only_dlist = u8p(0x8fb8); -u8 *rx_buf = u8p(0xa000); /* 512 bytes */ -u8 *tx_buf = u8p(0xa200); /* 512 bytes */ +// u8 *rx_buf = u8p(0xa000); /* 512 bytes */ +// u8 *tx_buf = u8p(0xa200); /* 512 bytes */ /* 1000 bytes (25 40-char lines) apiece. */ u8 *screen_top_addrs[7] = { diff --git a/src/irc.h b/src/irc.h index 5e831b9..91ffd00 100644 --- a/src/irc.h +++ b/src/irc.h @@ -1,20 +1,15 @@ #define MAX_IRC_MSG_LEN 512 - -/* -#define streq(x,y) !strcmp(x,y) -#define streq_i(x,y) !strcasecmp(x,y) -*/ +#include "rxtxbuf.h" /**** main.c */ -extern char *rx_buf; -extern unsigned short rxbuflen; + +extern unsigned int rxbuflen; +extern unsigned int txbuflen; + extern unsigned char err; extern unsigned char trip; -extern char hz; extern char reconnect_timeout; - -extern unsigned int txbuflen; -extern char *tx_buf; +extern char hz; /* 50 for PAL, 60 for NTSC, natch */ /* clears the transmit buffer. */ void txbuf_init(void); diff --git a/src/main.c b/src/main.c index b2189be..c19cff9 100644 --- a/src/main.c +++ b/src/main.c @@ -23,7 +23,7 @@ unsigned char err; // error code of last operation. unsigned char trip = 0; // if trip == 1, fujinet is asking us for attention. char old_enabled = 0; // were interrupts enabled for old vector void *old_vprced; // old PROCEED vector, restored on exit. -unsigned short rxbuflen; // RX buffer length +unsigned int rxbuflen; // RX buffer length unsigned int txbuflen; // TX buffer length char hz; /* 50 for PAL, 60 for NSTC */ char reconnect_timeout = 1; diff --git a/src/nio.c b/src/nio.c index b43c561..eaa27b8 100644 --- a/src/nio.c +++ b/src/nio.c @@ -10,6 +10,7 @@ #include "nio.h" #include "sio.h" #include "config.h" +#include "rxtxbuf.h" #define TIMEOUT 0x1f /* approx 30 seconds */ @@ -75,7 +76,6 @@ char nstatus(void) { char nread_rxbuf(void) { extern unsigned int rxbuflen; - extern char *rx_buf; set_defaults(); OS.dcb.dcomnd = 'R'; // read OS.dcb.dstats = DREAD; @@ -88,7 +88,6 @@ char nread_rxbuf(void) { char nwrite_txbuf(void) { extern unsigned int txbuflen; - extern char *tx_buf; set_defaults(); OS.dcb.dcomnd = 'W'; // write OS.dcb.dstats = DWRITE; diff --git a/src/rxtxbuf.h b/src/rxtxbuf.h new file mode 100644 index 0000000..888092a --- /dev/null +++ b/src/rxtxbuf.h @@ -0,0 +1,5 @@ +typedef char buf512_t[512]; +#define RXBUF_ADDR 0xa000 +#define TXBUF_ADDR 0xa200 +#define rx_buf (*(buf512_t *)RXBUF_ADDR) +#define tx_buf (*(buf512_t *)TXBUF_ADDR) -- cgit v1.2.3