/* "indicators" */ #include #include "addrs.h" extern char hz; #define NET_TX_CHR 0x5c /* COLOR1 up-arrow */ #define NET_RX_CHR 0x5d /* COLOR1 down-arrow */ #define NET_ERR_CHR 0xe1 /* COLOR3 exclamation mark */ #define NET_IDLE_CHR 0 /* null (renders as a space) */ #define J_CHR 0x4a /* COLOR1 J */ #define P_CHR 0x50 /* COLOR1 P */ #define Q_CHR 0x51 /* COLOR1 Q */ #define M_CHR 0x4d /* COLOR1 M */ #define CHAN_CHR 0x63 /* COLOR1 # */ char *ind_net_status; /* initialized in screen.c, scr_init() */ static void ind_start_timer(void) { /* 3.7 sec is just what The_Doctor__ ordered! */ OS.cdtmv5 = (hz / 10) * 37; } void ind_net_rx(void) { *ind_net_status = NET_RX_CHR; } void ind_net_tx(void) { *ind_net_status = NET_TX_CHR; } void ind_net_down(void) { *ind_net_status = NET_ERR_CHR; } void ind_net_idle(void) { *ind_net_status = NET_IDLE_CHR; } static void ind_act(char c) { ind_net_status[1] = c; ind_start_timer(); } void ind_act_pm(void) { ind_act(M_CHR); } void ind_act_chantext(void) { ind_act(CHAN_CHR); } void ind_act_join(void) { ind_act(J_CHR); } void ind_act_part(void) { ind_act(P_CHR); } void ind_act_quit(void) { ind_act(Q_CHR); } void ind_check_timer(void) { if(!OS.cdtmv5) ind_net_status[1] = 0; }