diff --git a/imlac/imlac_cpu.c b/imlac/imlac_cpu.c index 2c05ef4d..1fa8416a 100644 --- a/imlac/imlac_cpu.c +++ b/imlac/imlac_cpu.c @@ -211,7 +211,8 @@ static void cpu_class1 (uint16 insn) static void cpu_ral (int n) { - int i, x; + int i; + uint16 x; for (i = 0; i < n; i++) { x = L; L = AC >> 15; @@ -221,7 +222,9 @@ static void cpu_ral (int n) static void cpu_rar (int n) { - int i, x; + int i; + uint16 x; + for (i = 0; i < n; i++) { x = L; L = AC & 1; @@ -252,7 +255,7 @@ static void cpu_class2 (uint16 insn) x = 01600000 >> n; else x = 0; - AC = x | ((AC & 077777) >> n); + AC = (uint16) (x | ((AC & 077777) >> n)); break; } } @@ -485,7 +488,7 @@ t_stat sim_instr (void) } } - return SCPE_OK; + /* unreachable: return SCPE_OK; */ } static t_stat diff --git a/imlac/imlac_crt.c b/imlac/imlac_crt.c index 1e037181..4113102f 100644 --- a/imlac/imlac_crt.c +++ b/imlac/imlac_crt.c @@ -42,7 +42,8 @@ static UNIT crt_unit = { }; static DEBTAB crt_deb[] = { - { "DBG", DBG }, + { "DBG", DBG }, + { "VVID", SIM_VID_DBG_VIDEO }, { NULL, 0 } }; @@ -90,8 +91,8 @@ crt_reset (DEVICE *dptr) } else { display_reset (); display_init (DIS_IMLAC, 1, dptr); - sim_activate_abs (&crt_unit, 0); vid_register_quit_callback (&crt_quit_callback); + sim_activate_abs (&crt_unit, 0); } #endif return SCPE_OK; diff --git a/imlac/imlac_dp.c b/imlac/imlac_dp.c index 80fe7104..6f9adc3a 100644 --- a/imlac/imlac_dp.c +++ b/imlac/imlac_dp.c @@ -45,6 +45,7 @@ static uint16 SYNC = 1; /* Function declaration. */ static uint16 dp_iot (uint16, uint16); static t_stat dp_svc (UNIT *uptr); +static t_stat dp_reset(DEVICE *dptr); static uint16 sync_iot (uint16, uint16); static t_stat sync_svc (UNIT *uptr); @@ -83,7 +84,7 @@ static DEBTAB dp_deb[] = { DEVICE dp_dev = { "DP", &dp_unit, dp_reg, NULL, 1, 8, 16, 1, 8, 16, - NULL, NULL, NULL, + NULL, NULL, dp_reset, NULL, NULL, NULL, &dp_imdev, DEV_DEBUG, 0, dp_deb, NULL, NULL, NULL, NULL, NULL, NULL }; @@ -131,7 +132,7 @@ dp_on (int flag) if (SYNC && HALT) flag_on (FLAG_SYNC); } - ON = flag; + ON = (uint16) flag; } uint16 @@ -474,6 +475,13 @@ dp_svc(UNIT * uptr) return SCPE_OK; } +static t_stat +dp_reset(DEVICE * uptr) +{ + sim_activate_abs (&dp_unit, 0); + return SCPE_OK; +} + static t_stat sync_svc (UNIT *uptr) {