Skip to content

Commit 767827d

Browse files
committed
Merge branch 'master' of github.com:simh/simh
2 parents 96dd1f2 + db91afb commit 767827d

37 files changed

+1269
-200
lines changed

H316/h316_fhd.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* h316_fhd.c: H316/516 fixed head simulator
22
3-
Copyright (c) 2003-2012, Robert M. Supnik
3+
Copyright (c) 2003-2013, Robert M. Supnik
44
55
Permission is hereby granted, free of charge, to any person obtaining a
66
copy of this software and associated documentation files (the "Software"),
@@ -25,6 +25,7 @@
2525
2626
fhd 516-4400 fixed head disk
2727
28+
03-Sep-13 RMS Added explicit void * cast
2829
19-Mar-12 RMS Fixed declaration of chan_req (Mark Pizzolato)
2930
15-May-06 RMS Fixed bug in autosize attach (David Gesswein)
3031
04-Jan-04 RMS Changed sim_fsize calling sequence
@@ -373,7 +374,7 @@ uint32 tk = CW1_GETTK (fhd_cw1); /* track */
373374
uint32 ca = CW2_GETCA (fhd_cw2); /* char addr */
374375
uint32 wa = ca >> 1; /* word addr */
375376
uint32 ba = (((sf * FH_NUMTK) + tk) * FH_NUMWD) + wa; /* buffer offset */
376-
uint16 *fbuf = uptr->filebuf; /* buffer base */
377+
uint16 *fbuf = (uint16 *) uptr->filebuf; /* buffer base */
377378
uint32 wd;
378379

379380
if (fhd_bad_wa (wa)) /* addr bad? */

I1401/i1401_cpu.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* i1401_cpu.c: IBM 1401 CPU simulator
22
3-
Copyright (c) 1993-2011, Robert M. Supnik
3+
Copyright (c) 1993-2012, Robert M. Supnik
44
55
Permission is hereby granted, free of charge, to any person obtaining a
66
copy of this software and associated documentation files (the "Software"),
@@ -23,6 +23,7 @@
2323
used in advertising or otherwise to promote the sale, use or other dealings
2424
in this Software without prior written authorization from Robert M Supnik.
2525
26+
08-Oct-12 RMS Clear storage and branch preserves B register (Van Snyder)
2627
19-Mar-11 RMS Reverted multiple tape indicator implementation
2728
20-Jan-11 RMS Fixed branch on EOT indicator per hardware (Van Snyder)
2829
07-Nov-10 RMS Fixed divide not to clear word marks in quotient
@@ -178,6 +179,14 @@ typedef struct {
178179
PCQ_ENTRY; \
179180
IS = AS;
180181

182+
#define BRANCH_CS if (ADDR_ERR (AS)) { \
183+
reason = STOP_INVBR; \
184+
break; \
185+
} \
186+
PCQ_ENTRY; \
187+
IS = AS;
188+
189+
181190
uint8 M[MAXMEMSIZE] = { 0 }; /* main memory */
182191
int32 saved_IS = 0; /* saved IS */
183192
int32 AS = 0; /* AS */
@@ -1563,6 +1572,9 @@ while (reason == 0) { /* loop until halted */
15631572
5,6 invalid B-address
15641573
7 branch
15651574
8+ one operand, branch ignored
1575+
1576+
Note that clear storage and branch does not overwrite the B register,
1577+
unlike all other branches
15661578
*/
15671579

15681580
case OP_CS: /* clear storage */
@@ -1572,7 +1584,7 @@ while (reason == 0) { /* loop until halted */
15721584
if (BS < 0) /* wrap if needed */
15731585
BS = BS + MEMSIZE;
15741586
if (ilnt == 7) { /* branch variant? */
1575-
BRANCH;
1587+
BRANCH_CS; /* special branch */
15761588
}
15771589
break;
15781590

I1401/i1401_mt.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
2626
mt 7-track magtape
2727
28+
03-Sep-13 RMS Read TMK does not write GM+WM to memory
2829
19-Mar-11 RMS Restored lost edit to insert EOF in memory on read EOF
2930
Reverted multiple tape indicator implementation
3031
20-Jan-11 RMS Fixed branch on END indicator per hardware (Van Snyder)
@@ -341,6 +342,8 @@ switch (mod) {
341342
return STOP_WRAP;
342343
}
343344
}
345+
if (st == MTSE_TMK) /* if TMK, no GM+WM */
346+
break;
344347
if (M[BS] != (BCD_GRPMRK + WM)) { /* not GM+WM at end? */
345348
if (flag & MD_WM) /* LCA: clear WM */
346349
M[BS] = BCD_GRPMRK;

Interdata/id_fd.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* id_fd.c: Interdata floppy disk simulator
22
3-
Copyright (c) 2001-2012, Robert M Supnik
3+
Copyright (c) 2001-2013, Robert M Supnik
44
55
Permission is hereby granted, free of charge, to any person obtaining a
66
copy of this software and associated documentation files (the "Software"),
@@ -25,6 +25,7 @@
2525
2626
fd M46-630 floppy disk
2727
28+
03-Sep-13 RMS Added explicit void * cast
2829
19-Mar-12 RMS Fixed macro naming conflict (Mark Pizzolato)
2930
3031
A diskette consists of 77 tracks, each with 26 sectors of 128B. The
@@ -306,7 +307,7 @@ return 0;
306307
t_stat fd_svc (UNIT *uptr)
307308
{
308309
uint32 i, u, tk, sc, crc, fnc, da;
309-
uint8 *fbuf = uptr->filebuf;
310+
uint8 *fbuf = (uint8 *) uptr->filebuf;
310311

311312
u = uptr - fd_dev.units; /* get unit number */
312313
fnc = GET_FNC (uptr->FNC); /* get function */

NOVA/eclipse_cpu.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3625,7 +3625,7 @@ if ((IR & 0100017) == 0100010) { /* This pattern for all
36253625
PC = (PC + 1) & AMASK;
36263626
continue;
36273627
}
3628-
if ((IR & 0103777) == 0100650) { /* FDD Div double by AC */
3628+
if ((IR & 0103777) == 0100750) { /* FDD Div double by AC */
36293629
if (!(fpu_unit.flags & UNIT_UP))
36303630
continue;
36313631
if (Debug_Flags == 1) {
@@ -3680,7 +3680,7 @@ if ((IR & 0100017) == 0100010) { /* This pattern for all
36803680
FPSR |= ((PC - 1) & AMASK);
36813681
continue;
36823682
}
3683-
if ((IR & 0103777) == 0101650) { /* FDMD Div double by memory */
3683+
if ((IR & 0103777) == 0101750) { /* FDMD Div double by memory */
36843684
if (!(fpu_unit.flags & UNIT_UP))
36853685
continue;
36863686
if (Debug_Flags == 1) {

NOVA/nova_dsk.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* nova_dsk.c: 4019 fixed head disk simulator
22
3-
Copyright (c) 1993-2008, Robert M. Supnik
3+
Copyright (c) 1993-2013, Robert M. Supnik
44
55
Permission is hereby granted, free of charge, to any person obtaining a
66
copy of this software and associated documentation files (the "Software"),
@@ -25,6 +25,7 @@
2525
2626
dsk fixed head disk
2727
28+
03-Sep-13 RMS Added explicit void * cast
2829
04-Jul-07 BKR device name changed to DG's DSK from DEC's DK,
2930
DEV_xxx macros now used for consistency,
3031
added secret DG DIC function,
@@ -235,7 +236,7 @@ return rval;
235236
t_stat dsk_svc (UNIT *uptr)
236237
{
237238
int32 i, da, pa;
238-
int16 *fbuf = uptr->filebuf;
239+
int16 *fbuf = (int16 *) uptr->filebuf;
239240

240241
DEV_CLR_BUSY( INT_DSK ) ;
241242
DEV_SET_DONE( INT_DSK ) ;

PDP1/pdp1_drm.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* pdp1_drm.c: PDP-1 drum simulator
22
3-
Copyright (c) 1993-2008, Robert M Supnik
3+
Copyright (c) 1993-2013, Robert M Supnik
44
55
Permission is hereby granted, free of charge, to any person obtaining a
66
copy of this software and associated documentation files (the "Software"),
@@ -26,6 +26,7 @@
2626
drp Type 23 parallel drum
2727
drm Type 24 serial drum
2828
29+
03-Sep-13 RMS Added explicit void * cast
2930
21-Dec-06 RMS Added 16-chan SBS support
3031
08-Dec-03 RMS Added parallel drum support
3132
Fixed bug in DBL/DCN decoding
@@ -276,7 +277,7 @@ return (stop_inst << IOT_V_REASON) | dat; /* stop if requested */
276277
t_stat drm_svc (UNIT *uptr)
277278
{
278279
uint32 i, da;
279-
uint32 *fbuf = uptr->filebuf;
280+
uint32 *fbuf = (uint32 *) uptr->filebuf;
280281

281282
if ((uptr->flags & UNIT_BUF) == 0) { /* not buf? abort */
282283
drm_err = 1; /* set error */

PDP11/pdp11_defs.h

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
The author gratefully acknowledges the help of Max Burnet, Megan Gentry,
2727
and John Wilson in resolving questions about the PDP-11
2828
29+
02-Sep-13 RMS Added third Massbus adapter and RS drive
2930
11-Dec-11 RMS Fixed priority of PIRQ vs IO; added INT_INTERNALn
3031
22-May-10 RMS Added check for 64b definitions
3132
19-Nov-08 RMS Moved I/O support routines to I/O library
@@ -598,10 +599,11 @@ typedef struct pdp_dib DIB;
598599
#define INT_V_TU 15
599600
#define INT_V_RF 16
600601
#define INT_V_RC 17
601-
#define INT_V_DMCRX 18
602-
#define INT_V_DMCTX 19
603-
#define INT_V_DUPRX 20
604-
#define INT_V_DUPTX 21
602+
#define INT_V_RS 18
603+
#define INT_V_DMCRX 19
604+
#define INT_V_DMCTX 20
605+
#define INT_V_DUPRX 21
606+
#define INT_V_DUPTX 22
605607

606608
#define INT_V_PIR4 0 /* BR4 */
607609
#define INT_V_TTI 1
@@ -645,6 +647,7 @@ typedef struct pdp_dib DIB;
645647
#define INT_TU (1u << INT_V_TU)
646648
#define INT_RF (1u << INT_V_RF)
647649
#define INT_RC (1u << INT_V_RC)
650+
#define INT_RS (1u << INT_V_RS)
648651
#define INT_DMCRX (1u << INT_V_DMCRX)
649652
#define INT_DMCTX (1u << INT_V_DMCTX)
650653
#define INT_DUPRX (1u << INT_V_DUPRX)
@@ -695,6 +698,7 @@ typedef struct pdp_dib DIB;
695698
#define IPL_TU 5
696699
#define IPL_RF 5
697700
#define IPL_RC 5
701+
#define IPL_RS 5
698702
#define IPL_DMCRX 5
699703
#define IPL_DMCTX 5
700704
#define IPL_DUPRX 5
@@ -741,9 +745,10 @@ typedef struct pdp_dib DIB;
741745

742746
/* Massbus definitions */
743747

744-
#define MBA_NUM 2 /* number of MBA's */
748+
#define MBA_NUM 3 /* number of MBA's */
745749
#define MBA_RP 0 /* MBA for RP */
746750
#define MBA_TU 1 /* MBA for TU */
751+
#define MBA_RS 2 /* MBA for RS */
747752
#define MBA_RMASK 037 /* max 32 reg */
748753
#define MBE_NXD 1 /* nx drive */
749754
#define MBE_NXR 2 /* nx reg */

0 commit comments

Comments
 (0)