The source set has been extensively overhauled. For correct viewing, set Visual C++ or Emacs to have tab stops every 4 characters. 1. New Features in 3.4-1 1.1 All Ethernet devices - Added Windows user-defined adapter names (from Timothe Litt) 1.2 Interdata, SDS, HP, PDP-8, PDP-18b terminal multiplexors - Added support for SET <unit>n DISCONNECT 1.3 VAX - Added latent QDSS support - Revised autoconfigure to handle QDSS 1.4 PDP-11 - Revised autoconfigure to handle more casees 2. Bugs Fixed in 3.4-1 2.1 SCP and libraries - Trim trailing spaces on all input (for example, attach file names) - Fixed sim_sock spurious SIGPIPE error in Unix/Linux - Fixed sim_tape misallocation of TPC map array for 64b simulators 2.2 1401 - Fixed bug, CPU reset was clearing SSB through SSG 2.3 PDP-11 - Fixed bug in VH vector display routine - Fixed XU runt packet processing (found by Tim Chapman) 2.4 Interdata - Fixed bug in SHOW PAS CONN/STATS - Fixed potential integer overflow exception in divide 2.5 SDS - Fixed bug in SHOW MUX CONN/STATS 2.6 HP - Fixed bug in SHOW MUX CONN/STATS 2.7 PDP-8 - Fixed bug in SHOW TTIX CONN/STATS - Fixed bug in SET/SHOW TTOXn LOG 2.8 PDP-18b - Fixed bug in SHOW TTIX CONN/STATS - Fixed bug in SET/SHOW TTOXn LOG 2.9 Nova, Eclipse - Fixed potential integer overflow exception in divide
103 lines
5.1 KiB
C
103 lines
5.1 KiB
C
/* sim_tmxr.h: terminal multiplexor definitions
|
|
|
|
Copyright (c) 2001-2005, Robert M Supnik
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the "Software"),
|
|
to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
Except as contained in this notice, the name of Robert M Supnik shall not be
|
|
used in advertising or otherwise to promote the sale, use or other dealings
|
|
in this Software without prior written authorization from Robert M Supnik.
|
|
|
|
Based on the original DZ11 simulator by Thord Nilson, as updated by
|
|
Arthur Krewat.
|
|
|
|
04-Jan-04 RMS Changed TMXR ldsc to be pointer to linedesc array
|
|
Added tmxr_linemsg, logging (from Mark Pizzolato)
|
|
29-Dec-03 RMS Added output stall support, increased buffer size
|
|
22-Dec-02 RMS Added break support (from Mark Pizzolato)
|
|
20-Aug-02 RMS Added tmxr_open_master, tmxr_close_master, tmxr.port
|
|
30-Dec-01 RMS Renamed tmxr_fstatus, added tmxr_fstats
|
|
20-Oct-01 RMS Removed tmxr_getchar, formalized buffer guard,
|
|
added tmxr_rqln, tmxr_tqln
|
|
*/
|
|
|
|
#ifndef _SIM_TMXR_H_
|
|
#define _SIM_TMXR_H_ 0
|
|
|
|
#define TMXR_V_VALID 15
|
|
#define TMXR_VALID (1 << TMXR_V_VALID)
|
|
#define TMXR_MAXBUF 256 /* buffer size */
|
|
#define TMXR_GUARD 12 /* buffer guard */
|
|
|
|
struct tmln {
|
|
SOCKET conn; /* line conn */
|
|
uint32 ipad; /* IP address */
|
|
uint32 cnms; /* conn time */
|
|
int32 tsta; /* Telnet state */
|
|
int32 rcve; /* rcv enable */
|
|
int32 xmte; /* xmt enable */
|
|
int32 dstb; /* disable Tlnt bin */
|
|
int32 rxbpr; /* rcv buf remove */
|
|
int32 rxbpi; /* rcv buf insert */
|
|
int32 rxcnt; /* rcv count */
|
|
int32 txbpr; /* xmt buf remove */
|
|
int32 txbpi; /* xmt buf insert */
|
|
int32 txcnt; /* xmt count */
|
|
FILE *txlog; /* xmt log file */
|
|
char *txlogname; /* xmt log file name */
|
|
char rxb[TMXR_MAXBUF]; /* rcv buffer */
|
|
char rbr[TMXR_MAXBUF]; /* rcv break */
|
|
char txb[TMXR_MAXBUF]; /* xmt buffer */
|
|
};
|
|
|
|
typedef struct tmln TMLN;
|
|
|
|
struct tmxr {
|
|
int32 lines; /* # lines */
|
|
int32 port; /* listening port */
|
|
SOCKET master; /* master socket */
|
|
TMLN *ldsc; /* line descriptors */
|
|
};
|
|
|
|
typedef struct tmxr TMXR;
|
|
|
|
int32 tmxr_poll_conn (TMXR *mp);
|
|
void tmxr_reset_ln (TMLN *lp);
|
|
int32 tmxr_getc_ln (TMLN *lp);
|
|
void tmxr_poll_rx (TMXR *mp);
|
|
t_stat tmxr_putc_ln (TMLN *lp, int32 chr);
|
|
void tmxr_poll_tx (TMXR *mp);
|
|
t_stat tmxr_open_master (TMXR *mp, char *cptr);
|
|
t_stat tmxr_close_master (TMXR *mp);
|
|
t_stat tmxr_attach (TMXR *mp, UNIT *uptr, char *cptr);
|
|
t_stat tmxr_detach (TMXR *mp, UNIT *uptr);
|
|
t_stat tmxr_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw);
|
|
t_stat tmxr_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw);
|
|
void tmxr_msg (SOCKET sock, char *msg);
|
|
void tmxr_linemsg (TMLN *lp, char *msg);
|
|
void tmxr_fconns (FILE *st, TMLN *lp, int32 ln);
|
|
void tmxr_fstats (FILE *st, TMLN *lp, int32 ln);
|
|
t_stat tmxr_set_log (UNIT *uptr, int32 val, char *cptr, void *desc);
|
|
t_stat tmxr_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc);
|
|
t_stat tmxr_show_log (FILE *st, UNIT *uptr, int32 val, void *desc);
|
|
t_stat tmxr_dscln (UNIT *uptr, int32 val, char *cptr, void *desc);
|
|
int32 tmxr_rqln (TMLN *lp);
|
|
int32 tmxr_tqln (TMLN *lp);
|
|
|
|
#endif
|
|
|