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; }