From d38d402f4cb3d66d599cc12eea297c554ba06a91 Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Mon, 25 Feb 2019 21:58:36 -0500 Subject: [PATCH] PDP10: More performance update for KA native mode. --- PDP10/ka10_cpu.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/PDP10/ka10_cpu.c b/PDP10/ka10_cpu.c index f5709ef..d2cfd2c 100644 --- a/PDP10/ka10_cpu.c +++ b/PDP10/ka10_cpu.c @@ -1214,11 +1214,11 @@ t_stat dev_apr(uint32 dev, uint64 *data) { case DATAO: /* Set protection registers */ - Rh = 0377 & (*data >> 1); - Rl = 0377 & (*data >> 10); + Rh = (0377 & (*data >> 1)) << 10; + Rl = (0377 & (*data >> 10)) << 10; Pflag = 01 & (*data >> 18); - Ph = 0377 & (*data >> 19); - Pl = 0377 & (*data >> 28); + Ph = ((0377 & (*data >> 19)) << 10) + 01777; + Pl = ((0377 & (*data >> 28)) << 10) + 01777; sim_debug(DEBUG_DATAIO, &cpu_dev, "DATAO APR %012llo\n", *data); break; @@ -2023,14 +2023,14 @@ int Mem_write_bbn(int flag, int cur_context) { int page_lookup_ka(int addr, int flag, int *loc, int wr, int cur_context, int fetch) { if (!flag && (FLAGS & USER) != 0) { - if (addr <= ((Pl << 10) + 01777)) { - *loc = (addr + (Rl << 10)) & RMASK; + if (addr <= Pl) { + *loc = (addr + Rl) & RMASK; return 1; } if (cpu_unit[0].flags & UNIT_TWOSEG && - (addr & 0400000) != 0 && (addr <= ((Ph << 10) + 01777))) { + (addr & 0400000) != 0 && (addr <= Ph)) { if ((Pflag == 0) || (Pflag == 1 && wr == 0)) { - *loc = (addr + (Rh << 10)) & RMASK; + *loc = (addr + Rh) & RMASK; return 1; } }