From 9c977e9392735a1a2ebf8871e87b3ae29df25f00 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Thu, 31 Dec 2015 16:12:14 -0800 Subject: [PATCH] SCP: Add ESC and ENQ to the default set of console output characters in 7B mode. Also added mnemonic character names to the output produced when displaying the printable character mask with SHOW CONSOLE PCHAR. --- sim_console.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/sim_console.c b/sim_console.c index 4c30743b..28f8e585 100644 --- a/sim_console.c +++ b/sim_console.c @@ -165,7 +165,7 @@ static t_stat sim_set_delay (int32 flag, char *cptr); int32 sim_int_char = 005; /* interrupt character */ int32 sim_brk_char = 000; /* break character */ -int32 sim_tt_pchar = 0x00002780; +int32 sim_tt_pchar = 0x080027A0; #if defined (_WIN32) || defined (__OS2__) || (defined (__MWERKS__) && defined (macintosh)) int32 sim_del_char = '\b'; /* delete character */ #else @@ -1320,8 +1320,25 @@ return SCPE_OK; t_stat sim_show_pchar (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) { if (sim_devices[0]->dradix == 16) - fprintf (st, "pchar mask = %X\n", sim_tt_pchar); -else fprintf (st, "pchar mask = %o\n", sim_tt_pchar); + fprintf (st, "pchar mask = %X", sim_tt_pchar); +else fprintf (st, "pchar mask = %o", sim_tt_pchar); +if (sim_tt_pchar) { + static char *pchars[] = {"NUL(^@)", "SOH(^A)", "STX(^B)", "ETX(^C)", "EOT(^D)", "ENQ(^E)", "ACK(^F)", "BEL(^G)", + "BS(^H)" , "TAB(^I)", "LF(^J)", "VT(^K)", "FF(^L)", "CR(^M)", "SO(^N)", "SI(^O)", + "DLE(^P)", "DC1(^Q)", "DC2(^R)", "DC3(^S)", "DC4(^T)", "NAK(^U)", "SYN(^V)", "ETB(^W)", + "CAN(^X)", "EM(^Y)", "SUB(^Z)", "ESC", "FS", "GS", "RS", "US"}; + int i; + t_bool found = FALSE; + + fprintf (st, " {"); + for (i=0; i<32; i++) + if (sim_tt_pchar & (1 << i)) { + fprintf (st, "%s%s", found ? "," : "", pchars[i]); + found = TRUE; + } + fprintf (st, "}"); + } +fprintf (st, "\n"); return SCPE_OK; }