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

@@ -1,6 +1,6 @@
/* pdp10_defs.h: PDP-10 simulator definitions
Copyright (c) 1993-2010, 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"),
@@ -23,6 +23,7 @@
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from Robert M Supnik.
30-Jun-13 RMS Fixed IPL4 mask definition (Tim Litt)
22-May-10 RMS Added check for 64b addresses
01-Feb-07 RMS Added CD support
29-Oct-06 RMS Added clock coscheduling function
@@ -734,7 +735,7 @@ typedef struct pdp_dib DIB;
#define INT_IPL7 0x0000000F /* int level masks */
#define INT_IPL6 0x000000F0
#define INT_IPL5 0x000FFF00
#define INT_IPL4 0x3FF00000
#define INT_IPL4 0x7FF00000
#define VEC_Q 0000 /* vector base */
#define VEC_PTR 0070 /* interrupt vectors */

View File

@@ -1,6 +1,6 @@
/* pdp10_ksio.c: PDP-10 KS10 I/O subsystem 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 @@
uba Unibus adapters
27-May-13 RMS Fixed bugs in Unibus adapter code
22-Sep-05 RMS Fixed declarations (from Sterling Garwood)
25-Jan-04 RMS Added stub floating address routine
12-Mar-03 RMS Added logical name support
@@ -429,7 +430,14 @@ for (i = 0; dibp = dib_tab[i]; i++ ) {
UBNXM_FAIL (pa, mode);
}
/* Mapped read and write routines - used by standard Unibus devices on Unibus 1 */
/* Mapped read and write routines - used by standard Unibus devices on Unibus 1
The only devices that use these routines are standard 16b Unibus devices.
18b Unibus devices (the RP and TU) do their own reads and writes.
These routines would be more efficient if Map_Addr10 was only called
at a page boundary, but I don't think it's worth the added complexity.
The upper two bits of the 18b halfword are not preserved on writes to memory. */
a10 Map_Addr10 (a10 ba, int32 ub)
{
@@ -493,7 +501,7 @@ for ( ; ba < lim; ba++) { /* by bytes */
}
mask = 0377;
M[pa10] = (M[pa10] & ~(mask << ubashf[ba & 3])) |
(((d10) *buf++) << ubashf[ba & 3]);
(((d10) (*buf++ & 0377)) << ubashf[ba & 3]);
}
return 0;
}
@@ -506,16 +514,16 @@ d10 val;
ba = ba & ~01; /* align start */
lim = ba + (bc & ~01);
for ( ; ba < lim; ba++) { /* by bytes */
for ( ; ba < lim; ba = ba + 2) { /* by words */
pa10 = Map_Addr10 (ba, 1); /* map addr */
if ((pa10 < 0) || MEM_ADDR_NXM (pa10)) { /* inv map or NXM? */
ubcs[1] = ubcs[1] | UBCS_TMO; /* UBA times out */
return (lim - ba); /* return bc */
}
val = *buf++; /* get data */
val = (*buf++) & 0177777; /* get 16b data */
if (ba & 2)
M[pa10] = (M[pa10] & 0777777600000) | val;
else M[pa10] = (M[pa10] & 0600000777777) | (val << 18);
M[pa10] = (M[pa10] & 0777777000000) | val;
else M[pa10] = (M[pa10] & 0000000777777) | (val << 18);
}
return 0;
}

View File

@@ -1,6 +1,6 @@
/* pdp10_rp.c - RH11/RP04/05/06/07 RM02/03/05/80 "Massbus" disk controller
Copyright (c) 1993-2008, Robert M Supnik
Copyright (c) 1993-2012, 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,8 @@
rp RH/RP/RM moving head disks
17-Mar-13 RMS Fixed incorrect copy/paste from pdp11_rp.c
08-Dec-12 RMS UNLOAD does not set ATTN (Mark Pizzolato)
12-Nov-05 RMS Fixed DCLR not to clear drive address
07-Jul-05 RMS Removed extraneous externs
18-Mar-05 RMS Added attached test to detach routine
@@ -32,7 +34,7 @@
04-Jan-04 RMS Changed sim_fsize calling sequence
23-Jul-03 RMS Fixed bug in read header stub
25-Apr-03 RMS Revised for extended file support
21-Nov-02 RMS Fixed bug in bootstrap (reported by Michael Thompson)
21-Nov-02 RMS Fixed bug in bootstrap (Michael Thompson)
29-Sep-02 RMS Added variable vector support
New data structures
30-Nov-01 RMS Added read only unit, extended SET/SHOW support support
@@ -45,7 +47,7 @@
28-Sep-01 RMS Fixed interrupt handling for SC/ATA
23-Aug-01 RMS Added read/write header stubs for ITS
(found by Mirian Crzig Lennox)
13-Jul-01 RMS Changed fread call to fxread (found by Peter Schorn)
13-Jul-01 RMS Changed fread call to fxread (Peter Schorn)
14-May-01 RMS Added check for unattached drive
The "Massbus style" disks consisted of several different large
@@ -807,6 +809,13 @@ switch (fnc) { /* case on function */
return;
case FNC_UNLOAD: /* unload */
if (drv_tab[dtype].ctrl == MBA_RM_CTRL) { /* RM? */
set_rper (ER1_ILF, drv); /* not supported */
break;
}
rp_detach (uptr); /* detach unit */
return;
case FNC_RECAL: /* recalibrate */
dc = 0; /* seek to 0 */
case FNC_SEEK: /* seek */
@@ -1155,6 +1164,7 @@ return SCPE_OK;
t_stat rp_detach (UNIT *uptr)
{
int32 drv;
extern int32 sim_is_running;
if (!(uptr->flags & UNIT_ATT)) /* attached? */
return SCPE_OK;
@@ -1167,7 +1177,8 @@ if (sim_is_active (uptr)) { /* unit active? */
if (uptr->FUNC >= FNC_WCHK) /* data transfer? */
rpcs1 = rpcs1 | CS1_DONE | CS1_TRE; /* set done, err */
}
update_rpcs (CS1_SC, drv); /* request intr */
if (!sim_is_running) /* from console? */
update_rpcs (CS1_SC, drv); /* request intr */
return detach_unit (uptr);
}

View File

@@ -1,6 +1,6 @@
/* pdp10_tu.c - PDP-10 RH11/TM03/TU45 magnetic tape 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,7 +25,8 @@
tu RH11/TM03/TU45 magtape
29-Apr-07 RMS Fixed bug in setting FCE on TMK (found by Naoki Hamada)
17-Mar-13 RMS Fixed bug in read/write check reverse (Dave Bryan)
29-Apr-07 RMS Fixed bug in setting FCE on TMK (Naoki Hamada)
16-Feb-06 RMS Added tape capacity checking
16-Aug-05 RMS Fixed C++ declaration and cast problems
07-Jul-05 RMS Removed extraneous externs
@@ -42,8 +43,8 @@
28-Mar-03 RMS Added multiformat support
28-Feb-03 RMS Revised for magtape library
27-Jan-03 RMS Changed to dynamically allocate buffer
21-Nov-02 RMS Fixed bug in bootstrap (reported by Michael Thompson)
Fixed bug in read (reported by Harris Newman)
21-Nov-02 RMS Fixed bug in bootstrap (Michael Thompson)
Fixed bug in read (Harris Newman)
29-Sep-02 RMS Added variable vector support
New data structures
28-Aug-02 RMS Added end of medium support
@@ -964,7 +965,7 @@ switch (fnc) { /* case on function */
MAPM (ba10 - i, mpa10, UMAP_RRV);
}
val = ((fmt == TC_10C)? (((d10) xbuf [--j]) & 017): 0);
for (k = 0; k < 4; i++)
for (k = 0; k < 4; k++)
v[k] = xbuf[--j];
val = val | (v[0] << 4) | (v[1] << 12) | (v[2] << 20) | (v[3] << 28);
if (fnc == FNC_READR) /* read? store */