mirror of
https://github.com/rcornwell/sims.git
synced 2026-03-09 12:15:57 +00:00
KA10: Fix divide of 0 on KS10 processor.
This commit is contained in:
@@ -1354,7 +1354,6 @@ t_stat dev_apr(uint32 dev, uint64 *data) {
|
||||
* MTR device for KL10.
|
||||
*/
|
||||
t_stat dev_mtr(uint32 dev, uint64 *data) {
|
||||
uint64 res = 0;
|
||||
|
||||
switch(dev & 03) {
|
||||
case CONI:
|
||||
@@ -7188,9 +7187,6 @@ fnormx:
|
||||
SC--;
|
||||
} else {
|
||||
AR = BR;
|
||||
#if KS
|
||||
FLAGS |= NODIV|TRP1;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -7249,10 +7245,8 @@ fnormx:
|
||||
SC--;
|
||||
}
|
||||
AR &= FMASK;
|
||||
#if KL | KS
|
||||
if ((SC & 01600) != 01600)
|
||||
fxu_hold_set = 1;
|
||||
#endif
|
||||
if (AR == (SMASK|EXPO)) {
|
||||
AR = (AR >> 1) | (AR & SMASK);
|
||||
SC ++;
|
||||
@@ -11781,7 +11775,7 @@ fetch_opr:
|
||||
MB = BR;
|
||||
if (Mem_write(pi_cycle, 0))
|
||||
goto last;
|
||||
MB = AR;
|
||||
MB = AR;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -13874,6 +13868,7 @@ t_bool build_dev_tab (void)
|
||||
if ((nia_dev.flags & DEV_DIS) == 0 && dptr != &nia_dev &&
|
||||
rh20 == (((DIB *)nia_dev.ctxt)->dev_num & 0777))
|
||||
rh20 += 4;
|
||||
else
|
||||
/* If NIA20, then assign it to it's requested address */
|
||||
if ((nia_dev.flags & DEV_DIS) == 0 && dptr == &nia_dev)
|
||||
d = dibp->dev_num & 0777;
|
||||
|
||||
@@ -213,11 +213,11 @@ extern DEBTAB crd_debug[];
|
||||
#define IOCTL 00000017000000LL
|
||||
#endif
|
||||
|
||||
#define ADR_IFETCH 020
|
||||
#define ADR_DFETCH 010
|
||||
#define ADR_WRITE 004
|
||||
#define ADR_STOP 002
|
||||
#define ADR_BREAK 001
|
||||
#define ADR_IFETCH 020
|
||||
#define ADR_DFETCH 010
|
||||
#define ADR_WRITE 004
|
||||
#define ADR_STOP 002
|
||||
#define ADR_BREAK 001
|
||||
|
||||
/* IRQ Flags in APR */
|
||||
#if KL
|
||||
@@ -681,7 +681,7 @@ struct pdp_dib {
|
||||
t_addr (*irq)(uint32 dev, t_addr addr);
|
||||
struct rh_if *rh;
|
||||
};
|
||||
|
||||
|
||||
#define RH10_DEV 01000
|
||||
#define RH20_DEV 02000
|
||||
struct rh_dev {
|
||||
@@ -733,6 +733,7 @@ extern void ka10_lights_set_aux (int);
|
||||
extern void ka10_lights_clear_aux (int);
|
||||
#endif
|
||||
|
||||
|
||||
/* I/O system parameters */
|
||||
#if !(PDP6 | KS)
|
||||
#define NUM_DEVS_LP 1
|
||||
@@ -774,7 +775,7 @@ extern void ka10_lights_clear_aux (int);
|
||||
#define NUM_DEVS_CH11 KS_ITS
|
||||
#endif
|
||||
#endif
|
||||
#if KA | KI
|
||||
#if KA | KI
|
||||
#define NUM_DEVS_RC 1
|
||||
#define NUM_DEVS_DK 1
|
||||
#define NUM_DEVS_DDC 1
|
||||
|
||||
@@ -734,6 +734,8 @@ t_stat load_exe (FILE *fileref, int ftype)
|
||||
}
|
||||
if ((sim_switches & SWMASK ('M')) == 0) { /* -m? */
|
||||
ma = mpage << PAG_V_PN; /* mem addr */
|
||||
} else {
|
||||
ma = mpage;
|
||||
}
|
||||
for (k = 0; k < PAG_SIZE; k++, ma++) { /* copy buf to mem */
|
||||
if (ma > MEMSIZE)
|
||||
|
||||
Reference in New Issue
Block a user