From d79cc4c494a1f929dcb0ae5b1733bdfff46792ab Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Tue, 17 Nov 2020 22:06:22 -0500 Subject: [PATCH] KA10: Updated to use DEC029 translation tables. --- PDP10/kx10_cp.c | 24 +++++++----------------- PDP10/kx10_cr.c | 18 +++++++----------- 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/PDP10/kx10_cp.c b/PDP10/kx10_cp.c index b6ab33e9..86c95e74 100644 --- a/PDP10/kx10_cp.c +++ b/PDP10/kx10_cp.c @@ -34,7 +34,7 @@ #include "sim_defs.h" #if (NUM_DEVS_CP > 0) -#define UNIT_CDP UNIT_ATTABLE | UNIT_DISABLE | UNIT_SEQ | MODE_026 +#define UNIT_CDP UNIT_ATTABLE | UNIT_DISABLE | UNIT_SEQ | MODE_DEC29 #define CP_DEVNUM 0110 @@ -95,6 +95,12 @@ DIB cp_dib = { CP_DEVNUM, 1, cp_devio, NULL}; UNIT cp_unit = {UDATA(cp_srv, UNIT_CDP, 0), 2000 }; MTAB cp_mod[] = { + { MODE_CHAR, MODE_026, "IBM026", "IBM026", NULL, NULL, NULL, + "IBM 026 punch encoding"}, + { MODE_CHAR, MODE_029, "IBM029", "IBM029", NULL, NULL, NULL, + "IBM 029 punch encoding"}, + { MODE_CHAR, MODE_DEC29, "DEC029", "DEC029", NULL, NULL, NULL, + "DEC 029 punch encoding"}, {MTAB_XTD | MTAB_VUN, 0, "FORMAT", "FORMAT", &sim_card_set_fmt, &sim_card_show_fmt, NULL}, {0} @@ -172,22 +178,6 @@ t_stat cp_devio(uint32 dev, uint64 *data) { break; case DATAO: col = *data & 0xfff; - switch(col) { - case 0x806: col = 0x482; break; /* ! - */ - case 0x212: col = 0x006; break; /* " - */ - case 0x20A: col = 0x042; break; /* # - */ - case 0x206: col = 0x222; break; /* % - */ - case 0x406: col = 0x800; break; /* & - */ - case 0x00A: col = 0x012; break; /* ' - */ - case 0xC00: col = 0x082; break; /* : - */ - case 0x282: col = 0x40A; break; /* ; - */ - case 0x40A: col = 0x20A; break; /* > - */ - case 0xA00: col = 0x206; break; /* ? - */ - case 0x412: col = 0xE82; break; /* [ - */ - case 0x006: col = 0x282; break; /* \ - */ - case 0x812: col = 0xE42; break; /* ] - */ - case 0x012: col = 0x406; break; /* ^ - */ - } cp_buffer[uptr->COL++] = col; uptr->STATUS &= ~DATA_REQ; clr_interrupt(dev); diff --git a/PDP10/kx10_cr.c b/PDP10/kx10_cr.c index af5d7fa5..a9c2fd39 100644 --- a/PDP10/kx10_cr.c +++ b/PDP10/kx10_cr.c @@ -34,7 +34,7 @@ #include "sim_defs.h" #if (NUM_DEVS_CR > 0) -#define UNIT_CDR UNIT_ATTABLE | UNIT_RO | UNIT_DISABLE | MODE_029 | MODE_LOWER +#define UNIT_CDR UNIT_ATTABLE | UNIT_RO | UNIT_DISABLE | MODE_DEC29 | MODE_LOWER #define CR_DEVNUM 0150 @@ -98,6 +98,12 @@ UNIT cr_unit = { }; MTAB cr_mod[] = { + { MODE_CHAR, MODE_026, "IBM026", "IBM026", NULL, NULL, NULL, + "IBM 026 punch encoding"}, + { MODE_CHAR, MODE_029, "IBM029", "IBM029", NULL, NULL, NULL, + "IBM 029 punch encoding"}, + { MODE_CHAR, MODE_DEC29, "DEC029", "DEC029", NULL, NULL, NULL, + "DEC 029 punch encoding"}, {MTAB_XTD | MTAB_VUN, 0, "FORMAT", "FORMAT", &sim_card_set_fmt, &sim_card_show_fmt, NULL}, {0} @@ -252,16 +258,6 @@ cr_srv(UNIT *uptr) { return SCPE_OK; } data = cr_buffer[uptr->COL++]; - switch(data) { - case 0x482: data = 0x806; break; /* ! - 12 8 7 */ - case 0x006: data = 0x212; break; /* " - */ - case 0xE82: data = 0x882; break; /* [ - 12 8 2 */ - case 0xE42: data = 0x482; break; /* ] - 11 8 2 */ - case 0x406: data = 0xa00; break; /* { - 12 0 */ - case 0x806: data = 0xc00; break; /* | - 12 11 */ - case 0x805: data = 0x600; break; /* } - 11 0 */ - case 0xF02: data = 0x700; break; /* ~ - 11 0 1 */ - } uptr->DATA = data; /* Generate upper 18 bits of data */ uptr->DATA |= ((data & 0x001) << 25) |