diff --git a/ICL1900/icl1900_cpu.c b/ICL1900/icl1900_cpu.c index a47f8e1..e24cc1a 100644 --- a/ICL1900/icl1900_cpu.c +++ b/ICL1900/icl1900_cpu.c @@ -2538,7 +2538,7 @@ cpu_set_size(UNIT * uptr, int32 val, CONST char *cptr, void *desc) val = (val + 1) * 4096; if ((val < 0) || (val > MAXMEMSIZE)) return SCPE_ARG; - for (i = val; i < MEMSIZE; i++) + for (i = val - 1; i < MEMSIZE; i++) mc |= M[i]; if ((mc != 0) && (!get_yn("Really truncate memory [N]?", FALSE))) return SCPE_OK; diff --git a/ICL1900/icl1900_sys.c b/ICL1900/icl1900_sys.c index 80d281f..5979474 100755 --- a/ICL1900/icl1900_sys.c +++ b/ICL1900/icl1900_sys.c @@ -247,7 +247,8 @@ sim_load(FILE * fileref, CONST char *cptr, CONST char *fnam, int flag) if (*p < '0' || *p > '7') { break; } - addr = (addr << 3) | (*p++ - '0'); + ch = ascii_to_mem[*p++ & 0177]; + addr = (addr << 3) | ch; } while (*p != '*') { if (*p == '\0' || *p == '\n') {