1
0
mirror of https://github.com/simh/simh.git synced 2026-01-25 19:56:25 +00:00

Bob Supnik's state as of 10/12/2013

This commit is contained in:
Mark Pizzolato
2013-10-12 13:23:44 -07:00
parent 6031deddf8
commit 34ce1a038c
71 changed files with 5708 additions and 377 deletions

View File

@@ -3632,7 +3632,7 @@ if ((IR & 0100017) == 0100010) { /* This pattern for all
PC = (PC + 1) & AMASK;
continue;
}
if ((IR & 0103777) == 0100650) { /* FDD Div double by AC */
if ((IR & 0103777) == 0100750) { /* FDD Div double by AC */
if (!(fpu_unit.flags & UNIT_UP))
continue;
if (Debug_Flags == 1) {
@@ -3687,7 +3687,7 @@ if ((IR & 0100017) == 0100010) { /* This pattern for all
FPSR |= ((PC - 1) & AMASK);
continue;
}
if ((IR & 0103777) == 0101650) { /* FDMD Div double by memory */
if ((IR & 0103777) == 0101750) { /* FDMD Div double by memory */
if (!(fpu_unit.flags & UNIT_UP))
continue;
if (Debug_Flags == 1) {

View File

@@ -1,6 +1,6 @@
/* nova_cpu.c: NOVA CPU simulator
Copyright (c) 1993-2008, Robert M. Supnik
Copyright (c) 1993-2013, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
@@ -25,6 +25,7 @@
cpu Nova central processor
17-Mar-13 RMS Added clarifying brances to IND_STEP macro (Dave Bryan)
04-Jul-07 BKR DEV_SET/CLR macros now used,
support for non-existant devices added
CPU bootstrap code warning: high-speed devices may not boot properly,
@@ -243,11 +244,14 @@
#define STK_CHECK(x,y) if (((x) & 0377) < (y)) \
int_req = int_req | INT_STK
#define IND_STEP(x) M[x] & A_IND; /* return next level indicator */ \
if ( ((x) <= AUTO_TOP) && ((x) >= AUTO_INC) ) \
if ( (x) < AUTO_DEC ) \
if (((x) <= AUTO_TOP) && ((x) >= AUTO_INC)) { \
if ( (x) < AUTO_DEC ) { \
M[x] = (M[x] + 1) & DMASK; \
else \
} \
else { \
M[x] = (M[x] - 1) & DMASK; \
} \
} \
x = M[x] & AMASK
#define INCREMENT_PC PC = (PC + 1) & AMASK /* increment PC */

View File

@@ -1,6 +1,6 @@
/* nova_dsk.c: 4019 fixed head disk simulator
Copyright (c) 1993-2008, Robert M. Supnik
Copyright (c) 1993-2013, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
@@ -25,6 +25,7 @@
dsk fixed head disk
03-Sep-13 RMS Added explicit void * cast
04-Jul-07 BKR device name changed to DG's DSK from DEC's DK,
DEV_xxx macros now used for consistency,
added secret DG DIC function,
@@ -235,7 +236,7 @@ return rval;
t_stat dsk_svc (UNIT *uptr)
{
int32 i, da, pa;
int16 *fbuf = uptr->filebuf;
int16 *fbuf = (int16 *) uptr->filebuf;
DEV_CLR_BUSY( INT_DSK ) ;
DEV_SET_DONE( INT_DSK ) ;

View File

@@ -1,6 +1,6 @@
/* nova_qty.c: NOVA multiplexor (QTY/ALM) simulator
Copyright (c) 2000-2008, Robert M. Supnik
Copyright (c) 2000-2013, Robert M. Supnik
Written by Bruce Ray and used with his gracious permission.
Permission is hereby granted, free of charge, to any person obtaining a
@@ -26,7 +26,8 @@
qty multiplexor: QTY = 4060, ALM = 42xx
04-Jul-07 BKR fixed QTY output line number calculation (affected higher line numbers),
14-Mar-12 RMS Fixed dangling else clauses
04-Jul-07 BKR Fixed QTY output line number calculation (affected higher line numbers),
25-Mar-04 RMS Updated for V3.2
12-Jan-04 BKR Initial release
includes both original DG "quad" multiplexor (QTY)
@@ -604,12 +605,11 @@ t_stat qty_common_svc( DIB * dibp, UNIT * unitp )
++qty_polls ; /* another time 'round the track */
newln = tmxr_poll_conn( &qty_desc ) ; /* anybody knocking at the door? */
if ( (newln >= 0) && qty_mdm )
{
if ( newln >= qty_max )
{
return SCPE_IERR; /* WTF - sanity check failed, over? */
}
else
{
{
return SCPE_IERR; /* WTF - sanity check failed, over? */
}
line = newln ; /* handle modem control */
tmlnp =&qty_ldsc[ line ] ;
tmlnp->rcve = tmlnp->xmte = 1 ;
@@ -628,7 +628,7 @@ t_stat qty_common_svc( DIB * dibp, UNIT * unitp )
sim_activate( unitp, tmxr_poll ) ; /* restart the bubble machine */
return ( SCPE_OK ) ;
} /* end of 'qty_common_svc' */
} /* end of 'qty_common_svc' */
/*--------------------------------------------------------------*/
@@ -638,7 +638,7 @@ t_stat qty_common_svc( DIB * dibp, UNIT * unitp )
t_stat qty_svc( UNIT * uptr )
{
return ( qty_common_svc(&qty_dib,uptr) ) ;
} /* end of 'qty_svc' */
} /* end of 'qty_svc' */
/*--------------------------------------------------------------*/
@@ -992,18 +992,20 @@ int32 alm( int32 pulse, int32 code, int32 AC )
case ioDIC : /* get modem or receiver status */
if ( alm_line < qty_max )
{
if ( alm_section )
{
/* get modem section status */
if ( qty_ldsc[ alm_line ].xmte )
{
iodata = 0035 ; /* set CD, CTS, DSR, MDM flags */
/* get modem section status */
if ( qty_ldsc[ alm_line ].xmte )
{
iodata = 0035 ; /* set CD, CTS, DSR, MDM flags */
}
}
else
{
/* get receiver section status */
iodata = 0 ; /* receiver error status - no errors by default */
}
}
else
{
/* get receiver section status */
iodata = 0 ; /* receiver error status - no errors by default */
}
break ;