mirror of
https://github.com/rcornwell/sims.git
synced 2026-01-13 15:27:04 +00:00
KA10: Fixed Quantum timer to match hardware.
This commit is contained in:
parent
f35a8a995d
commit
284a7586ca
@ -813,12 +813,12 @@ int opflags[] = {
|
||||
void
|
||||
set_quantum()
|
||||
{
|
||||
double us;
|
||||
sim_cancel(&cpu_unit[1]);
|
||||
if ((qua_time & RSIGN) == 0) {
|
||||
double us;
|
||||
us = (double)(RSIGN - qua_time);
|
||||
(void)sim_activate_after_d(&cpu_unit[1], us);
|
||||
}
|
||||
if (qua_time & BIT17)
|
||||
return;
|
||||
us = (double)(BIT17 - qua_time);
|
||||
(void)sim_activate_after_d(&cpu_unit[1], us);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -830,7 +830,10 @@ load_quantum()
|
||||
if (sim_is_active(&cpu_unit[1])) {
|
||||
double us;
|
||||
us = sim_activate_time_usecs (&cpu_unit[1]);
|
||||
qua_time = RSIGN - (uint32)us;
|
||||
if ((uint32)us > BIT17)
|
||||
qua_time = BIT17;
|
||||
else
|
||||
qua_time = (BIT17 - (uint32)us) & RMASK;
|
||||
sim_cancel(&cpu_unit[1]);
|
||||
}
|
||||
}
|
||||
@ -841,11 +844,11 @@ load_quantum()
|
||||
uint32
|
||||
get_quantum()
|
||||
{
|
||||
uint32 t = 0;
|
||||
uint32 t = qua_time;
|
||||
if (sim_is_active(&cpu_unit[1])) {
|
||||
double us;
|
||||
us = sim_activate_time_usecs (&cpu_unit[1]);
|
||||
t = RSIGN - (uint32)us;
|
||||
t = (BIT17 - (uint32)us) & RMASK;
|
||||
}
|
||||
return t;
|
||||
}
|
||||
@ -3491,9 +3494,10 @@ dpnorm:
|
||||
AB = (AB + 1) & RMASK;
|
||||
MB = M[AB]; /* WD 3 */
|
||||
/* Store Quantum */
|
||||
qua_time = MB & RMASK;
|
||||
qua_time = MB & (RMASK|BIT17);
|
||||
set_quantum();
|
||||
fault_data = (MB >> 18) & RMASK;
|
||||
fault_data &= ~1; /* Clear high quantum bit */
|
||||
mem_prot = 0;
|
||||
if ((fault_data & 0777772) != 0)
|
||||
mem_prot = 1;
|
||||
@ -5997,9 +6001,8 @@ qua_srv(UNIT * uptr)
|
||||
{
|
||||
if ((fault_data & 1) == 0 && pi_enable && !pi_pending && (FLAGS & USER) != 0) {
|
||||
mem_prot = 1;
|
||||
fault_data |= 1;
|
||||
}
|
||||
qua_time = RSIGN;
|
||||
qua_time = BIT17;
|
||||
return SCPE_OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -167,6 +167,7 @@ extern DEBTAB crd_debug[];
|
||||
#define BIT9 00000400000000LL
|
||||
#define BIT10 00000200000000LL
|
||||
#define BIT10_35 00000377777777LL
|
||||
#define BIT17 00000001000000LL
|
||||
#define MANT 00000777777777LL
|
||||
#define EXPO 00377000000000LL
|
||||
#define FPHBIT 01000000000000000000000LL
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user