root/src/simh/sim_console.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * sim_console.h: simulator console I/O library headers
   3  *
   4  * vim: filetype=c:tabstop=4:ai:expandtab
   5  * SPDX-License-Identifier: MIT
   6  * scspell-id: a93bd242-f62a-11ec-92e3-80ee73e9b8e7
   7  *
   8  * ---------------------------------------------------------------------------
   9  *
  10  * Copyright (c) 1993-2014 Robert M. Supnik
  11  * Copyright (c) 2021-2024 The DPS8M Development Team
  12  *
  13  * Permission is hereby granted, free of charge, to any person obtaining a
  14  * copy of this software and associated documentation files (the "Software"),
  15  * to deal in the Software without restriction, including without limitation
  16  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  17  * and/or sell copies of the Software, and to permit persons to whom the
  18  * Software is furnished to do so, subject to the following conditions:
  19  *
  20  * The above copyright notice and this permission notice shall be included in
  21  * all copies or substantial portions of the Software.
  22  *
  23  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  24  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  25  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  26  * ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  27  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
  28  * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  29  * SOFTWARE.
  30  *
  31  * Except as contained in this notice, the name of Robert M. Supnik shall not
  32  * be used in advertising or otherwise to promote the sale, use or other
  33  * dealings in this Software without prior written authorization from
  34  * Robert M. Supnik.
  35  *
  36  * ---------------------------------------------------------------------------
  37  */
  38 
  39 #if !defined(SIM_CONSOLE_H_)
  40 # define SIM_CONSOLE_H_ 0
  41 
  42 # define TTUF_V_MODE    (UNIT_V_UF + 0)
  43 # define TTUF_W_MODE    2
  44 # define TTUF_MODE_7B   0
  45 # define TTUF_MODE_8B   1
  46 # define TTUF_MODE_UC   2
  47 # define TTUF_MODE_7P   3
  48 # define TTUF_M_MODE    ((1u << TTUF_W_MODE) - 1)
  49 # define TTUF_V_PAR     (TTUF_V_MODE + TTUF_W_MODE)
  50 # define TTUF_W_PAR     2
  51 # define TTUF_PAR_SPACE 0
  52 # define TTUF_PAR_MARK  1
  53 # define TTUF_PAR_EVEN  2
  54 # define TTUF_PAR_ODD   3
  55 # define TTUF_M_PAR     ((1u << TTUF_W_PAR) - 1)
  56 # define TTUF_KSR       (1u << (TTUF_W_MODE + TTUF_W_PAR))
  57 # define TTUF_V_UF      (TTUF_V_MODE + TTUF_W_MODE + TTUF_W_PAR)
  58 # define TT_MODE        (TTUF_M_MODE << TTUF_V_MODE)
  59 # define TT_MODE_7B     (TTUF_MODE_7B << TTUF_V_MODE)
  60 # define TT_MODE_8B     (TTUF_MODE_8B << TTUF_V_MODE)
  61 # define TT_MODE_UC     (TTUF_MODE_UC << TTUF_V_MODE)
  62 # define TT_MODE_7P     (TTUF_MODE_7P << TTUF_V_MODE)
  63 # define TT_MODE_KSR    (TT_MODE_UC)
  64 /* 7 bit modes allow for an 8th bit parity mode */
  65 # define TT_PAR         (TTUF_M_PAR << TTUF_V_PAR)
  66 # define TT_PAR_SPACE   (TTUF_PAR_SPACE << TTUF_V_PAR)
  67 # define TT_PAR_MARK    (TTUF_PAR_MARK  << TTUF_V_PAR)
  68 # define TT_PAR_EVEN    (TTUF_PAR_EVEN  << TTUF_V_PAR)
  69 # define TT_PAR_ODD     (TTUF_PAR_ODD   << TTUF_V_PAR)
  70 /* TT_GET_MODE returns both the TT_MODE and TT_PAR fields
  71    since they together are passed into sim_tt_inpcvt() */
  72 # define TT_GET_MODE(x) (((x) >> TTUF_V_MODE) & (TTUF_M_MODE | (TTUF_M_PAR << TTUF_W_MODE)))
  73 
  74 t_stat sim_set_console (int32 flag, CONST char *cptr);
  75 t_stat sim_set_remote_console (int32 flag, CONST char *cptr);
  76 void sim_remote_process_command (void);
  77 t_stat sim_set_kmap (int32 flag, CONST char *cptr);
  78 t_stat sim_set_telnet (int32 flag, CONST char *cptr);
  79 t_stat sim_set_notelnet (int32 flag, CONST char *cptr);
  80 t_stat sim_set_serial (int32 flag, CONST char *cptr);
  81 t_stat sim_set_noserial (int32 flag, CONST char *cptr);
  82 t_stat sim_set_logon (int32 flag, CONST char *cptr);
  83 t_stat sim_set_logoff (int32 flag, CONST char *cptr);
  84 t_stat sim_set_debon (int32 flag, CONST char *cptr);
  85 t_stat sim_set_cons_buff (int32 flg, CONST char *cptr);
  86 t_stat sim_set_cons_unbuff (int32 flg, CONST char *cptr);
  87 t_stat sim_set_cons_log (int32 flg, CONST char *cptr);
  88 t_stat sim_set_cons_nolog (int32 flg, CONST char *cptr);
  89 t_stat sim_set_deboff (int32 flag, CONST char *cptr);
  90 t_stat sim_set_cons_expect (int32 flg, CONST char *cptr);
  91 t_stat sim_set_cons_noexpect (int32 flg, CONST char *cptr);
  92 t_stat sim_debug_flush (void);
  93 t_stat sim_set_pchar (int32 flag, CONST char *cptr);
  94 t_stat sim_set_cons_speed (int32 flag, CONST char *cptr);
  95 t_stat sim_show_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
  96 t_stat sim_show_remote_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
  97 t_stat sim_show_kmap (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
  98 t_stat sim_show_telnet (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
  99 t_stat sim_show_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
 100 t_stat sim_show_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
 101 t_stat sim_show_pchar (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
 102 t_stat sim_show_cons_speed (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
 103 t_stat sim_show_cons_buff (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
 104 t_stat sim_show_cons_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
 105 t_stat sim_show_cons_expect (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
 106 t_stat sim_check_console (int32 sec);
 107 t_stat sim_open_logfile (const char *filename, t_bool binary, FILE **pf, FILEREF **pref);
 108 t_stat sim_close_logfile (FILEREF **pref);
 109 const char *sim_logfile_name (const FILE *st, FILEREF *ref);
 110 SEND *sim_cons_get_send (void);
 111 EXPECT *sim_cons_get_expect (void);
 112 t_stat sim_show_cons_send_input (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr);
 113 t_stat sim_poll_kbd (void);
 114 t_stat sim_putchar (int32 c);
 115 t_stat sim_ttinit (void);
 116 t_stat sim_ttrun (void);
 117 t_stat sim_ttcmd (void);
 118 t_stat sim_ttclose (void);
 119 t_bool sim_ttisatty (void);
 120 int32 sim_tt_inpcvt (int32 c, uint32 mode);
 121 int32 sim_tt_outcvt (int32 c, uint32 mode);
 122 
 123 extern int32 sim_rem_cmd_active_line;                       /* command in progress on line # */
 124 
 125 extern int32 sim_int_char;                                  /* interrupt character */
 126 extern int32 sim_brk_char;                                  /* break character */
 127 extern int32 sim_tt_pchar;                                  /* printable character mask */
 128 extern int32 sim_del_char;                                  /* delete character */
 129 
 130 #endif

/* [previous][next][first][last][top][bottom][index][help] */