1
0
mirror of https://github.com/simh/simh.git synced 2026-04-16 00:21:35 +00:00

NOVA: Add parity generation for input characters on the TTI device

John Kichury revived Startrek II running under DCC Basic which originally ran on  the Digital Computer Controls (DCC) D-116 DG Nova clone

This program (or the Basic interpreter) requires console input with even parity.

SET TTI EVEN

will now enable that.
This commit is contained in:
Mark Pizzolato
2015-01-16 12:03:07 -08:00
parent 136f5867b6
commit 191566fdd8
3 changed files with 47 additions and 5 deletions

View File

@@ -41,16 +41,31 @@
#define TTUF_MODE_8B 1
#define TTUF_MODE_UC 2
#define TTUF_MODE_7P 3
#define TTUF_KSR (1u << TTUF_W_MODE)
#define TTUF_M_MODE ((1u << TTUF_W_MODE) - 1)
#define TTUF_V_UF (TTUF_V_MODE + TTUF_W_MODE)
#define TTUF_V_PAR (TTUF_V_MODE + TTUF_W_MODE)
#define TTUF_W_PAR 2
#define TTUF_PAR_SPACE 0
#define TTUF_PAR_MARK 1
#define TTUF_PAR_EVEN 2
#define TTUF_PAR_ODD 3
#define TTUF_M_PAR ((1u << TTUF_W_PAR) - 1)
#define TTUF_KSR (1u << (TTUF_W_MODE + TTUF_W_PAR))
#define TTUF_V_UF (TTUF_V_MODE + TTUF_W_MODE + TTUF_W_PAR)
#define TT_MODE (TTUF_M_MODE << TTUF_V_MODE)
#define TT_MODE_7B (TTUF_MODE_7B << TTUF_V_MODE)
#define TT_MODE_8B (TTUF_MODE_8B << TTUF_V_MODE)
#define TT_MODE_UC (TTUF_MODE_UC << TTUF_V_MODE)
#define TT_MODE_7P (TTUF_MODE_7P << TTUF_V_MODE)
#define TT_MODE_KSR (TT_MODE_UC)
#define TT_GET_MODE(x) (((x) >> TTUF_V_MODE) & TTUF_M_MODE)
/* 7 bit modes allow for an 8th bit parity mode */
#define TT_PAR (TTUF_M_PAR << TTUF_V_PAR)
#define TT_PAR_SPACE (TTUF_PAR_SPACE << TTUF_V_PAR)
#define TT_PAR_MARK (TTUF_PAR_MARK << TTUF_V_PAR)
#define TT_PAR_EVEN (TTUF_PAR_EVEN << TTUF_V_PAR)
#define TT_PAR_ODD (TTUF_PAR_ODD << TTUF_V_PAR)
/* TT_GET_MODE returns both the TT_MODE and TT_PAR fields
since they together are passed into sim_tt_inpcvt() */
#define TT_GET_MODE(x) (((x) >> TTUF_V_MODE) & (TTUF_M_MODE | (TTUF_M_PAR << TTUF_W_MODE)))
t_stat sim_set_console (int32 flag, char *cptr);
t_stat sim_set_remote_console (int32 flag, char *cptr);