From 4d5ee8b08ff7099c7e8bfcfd3e014c1635d0de8d Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Wed, 18 Jan 2017 09:02:34 -0500 Subject: [PATCH] KA10: Fixes to get Tops 10 to boot on KI10. Removed some debuging code. Fixed Cylinder end flag on RP10 controller. Appearently TOPS10 on KA10 does not care about this flag, but on KI10 it looks at the flag to determine if the read was correct. --- PDP10/ka10_cpu.c | 2 +- PDP10/ka10_defs.h | 5 ++--- PDP10/ka10_dp.c | 9 ++------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/PDP10/ka10_cpu.c b/PDP10/ka10_cpu.c index 4dcb95b..5a119bb 100644 --- a/PDP10/ka10_cpu.c +++ b/PDP10/ka10_cpu.c @@ -3792,7 +3792,7 @@ if (val < MEMSIZE) { } for (i = MEMSIZE; i < val; i++) M[i] = 0; -MEMSIZE = val; +cpu_unit.capac = val; return SCPE_OK; } diff --git a/PDP10/ka10_defs.h b/PDP10/ka10_defs.h index 2e87338..74843bd 100644 --- a/PDP10/ka10_defs.h +++ b/PDP10/ka10_defs.h @@ -55,8 +55,7 @@ #endif #ifndef KI_22BIT -//#define KI_22BIT KI|KL -#define KI_22BIT 0 +#define KI_22BIT KI|KL #endif /* Digital Equipment Corporation's 36b family had six implementations: @@ -203,7 +202,7 @@ extern DEBTAB crd_debug[]; #define CTY_SWITCH 030 -#if KI_22BIT +#if KI_22BIT|KI #define MAXMEMSIZE 4096 * 1024 #else #define MAXMEMSIZE 256 * 1024 diff --git a/PDP10/ka10_dp.c b/PDP10/ka10_dp.c index a8ad36f..7f9f16f 100644 --- a/PDP10/ka10_dp.c +++ b/PDP10/ka10_dp.c @@ -545,33 +545,28 @@ t_stat dp_svc (UNIT *uptr) if (uptr->STATUS & END_CYL) { uptr->UFLAGS |= DONE; df10_finish_op(df10, 0); - sim_debug(DEBUG_DATA, dptr, "DP %03o DFS %012llo %06o %06o\n", ctlr, M[df10->cia|1], df10->ccw, df10->cda); return SCPE_OK; } if (sect >= dp_drv_tab[dtype].sect) { uptr->UFLAGS |= DONE; uptr->STATUS |= SEC_ERR; df10_finish_op(df10, 0); - sim_debug(DEBUG_DATA, dptr, "DP %03o DFS %012llo %06o %06o\n", ctlr, M[df10->cia|1], df10->ccw, df10->cda); return SCPE_OK; } if (surf >= dp_drv_tab[dtype].surf) { uptr->UFLAGS |= DONE; uptr->STATUS |= SUF_ERR; df10_finish_op(df10, 0); - sim_debug(DEBUG_DATA, dptr, "DP %03o DFS %012llo %06o %06o\n", ctlr, M[df10->cia|1], df10->ccw, df10->cda); return SCPE_OK; } if (cyl != uptr->CUR_CYL) { uptr->UFLAGS |= DONE; uptr->STATUS |= SRC_ERR; df10_finish_op(df10, 0); - sim_debug(DEBUG_DATA, dptr, "DP %03o DFS %012llo %06o %06o\n", ctlr, M[df10->cia|1], df10->ccw, df10->cda); return SCPE_OK; } if ((uptr->STATUS & BUSY) == 0) { df10_finish_op(df10, 0); - sim_debug(DEBUG_DATA, dptr, "DP %03o DFS %012llo %06o %06o\n", ctlr, M[df10->cia|1], df10->ccw, df10->cda); return SCPE_OK; } if (cmd != WR) { @@ -654,9 +649,9 @@ t_stat dp_svc (UNIT *uptr) if (r) sim_activate(uptr, 25); else { - sim_debug(DEBUG_DATA, dptr, "DP %03o DFS %012llo %06o %06o\n", ctlr, M[df10->cia|1], df10->ccw, df10->cda); - uptr->STATUS &= ~(SRC_DONE|BUSY); + uptr->STATUS &= ~(SRC_DONE|END_CYL|BUSY); uptr->UFLAGS |= DONE; + return SCPE_OK; } break;