View | Details | Raw Unified | Return to bug 277148 | Differences between
and this patch

Collapse All | Expand All

(-)simh/Makefile (-17 / +15 lines)
Lines 1-13 Link Here
1
PORTNAME=	simh
1
PORTNAME=	simh
2
PORTVERSION=	3.9.0
2
PORTVERSION=	3.12.4
3
PORTREVISION=	5
4
CATEGORIES=	emulators
3
CATEGORIES=	emulators
5
MASTER_SITES=	http://simh.trailing-edge.com/sources/:src \
4
MASTER_SITES=	http://simh.trailing-edge.com/sources/:src \
6
		http://www.ml1.org.uk/distfiles/:pdf \
5
		http://www.ml1.org.uk/distfiles/:pdf \
7
		http://www.ancientgeek.org.uk/distfiles/:pdf
6
		http://www.ancientgeek.org.uk/distfiles/:pdf
8
DISTNAME=	${PORTNAME}v${PORTVERSION:R:S/.//}-${PORTVERSION:E}
7
DISTNAME=	${PORTNAME}v${PORTVERSION:R:S/.//}-${PORTVERSION:E}
9
DISTFILES=	${PORTNAME}v${PORTVERSION:R:S/.//}-${PORTVERSION:E}.zip:src \
8
DISTFILES=	${PORTNAME}v${PORTVERSION:R:S/.//}-${PORTVERSION:E}.zip:src \
10
		${PORTNAME}_docpdf.zip:pdf
9
		${PORTNAME}v${PORTVERSION:R:S/.//}-${PORTVERSION:E}_docpdf.zip:pdf
11
10
12
MAINTAINER=	bob@eager.cx
11
MAINTAINER=	bob@eager.cx
13
COMMENT=	Emulates classic DEC, HP, GRI, IBM, Altair, SDS, Honeywell, and others
12
COMMENT=	Emulates classic DEC, HP, GRI, IBM, Altair, SDS, Honeywell, and others
Lines 15-34 Link Here
15
14
16
LICENSE=	MIT
15
LICENSE=	MIT
17
16
18
NO_WRKSUBDIR=	yes
17
LIB_DEPENDS=	libpcre.so:devel/pcre libpng16.so:graphics/png
19
18
20
USES=		gmake dos2unix zip
19
USES=		gmake dos2unix zip libedit
20
21
WRKSRC=		${WRKDIR}/sim
22
23
DOS2UNIX_WRKSRC=	${WRKSRC}
21
DOS2UNIX_GLOB=	*.c *.h *.txt *.mak *.ini makefile
24
DOS2UNIX_GLOB=	*.c *.h *.txt *.mak *.ini makefile
22
CFLAGS+=	-Wno-format-extra-args -Wno-comment
25
CFLAGS+=	-Wno-format-extra-args -Wno-comment
23
MAKE_ENV=	GCC="${CC}" CFLAGS_O="${CFLAGS}" USE_NETWORK=1
26
MAKE_ENV=	GCC="${CC}" CFLAGS_O="${CFLAGS}" USE_NETWORK=1
24
MAKEFILE=	makefile
27
MAKEFILE=	makefile
25
28
26
CONFLICTS_INSTALL=	simh-hp2100
27
28
SUB_FILES=	pkg-message simh.1
29
SUB_FILES=	pkg-message simh.1
29
30
30
READMES=	0readme_${PORTVERSION:R:S/.//}.txt 0readme_ethernet.txt
31
PORTDOCS=	pdf/*
31
PORTDOCS=	${READMES} pdf/*
32
32
33
OPTIONS_DEFINE=	DOCS
33
OPTIONS_DEFINE=	DOCS
34
34
Lines 39-68 Link Here
39
.endif
39
.endif
40
40
41
pre-patch:
41
pre-patch:
42
	@${MKDIR} ${WRKSRC}/BIN
42
	@${MKDIR} ${WRKSRC_SUBDIR}/BIN
43
43
44
post-patch:
44
post-patch:
45
	@${REINPLACE_CMD} -e \
45
	@${REINPLACE_CMD} -e \
46
		'/shell ldconfig/s|^|#| ; \
46
		 '/-O2/s| = | ?= |' ${WRKSRC}/makefile
47
		 /-O2/s| = | ?= |' ${WRKSRC}/makefile
48
	@${REINPLACE_CMD} -e \
49
		's|%%DATADIR%%|${DATADIR}|' ${WRKSRC}/VAX/vax_sysdev.c
50
47
51
post-build:
48
post-build:
52
# eclipse, gri and nova conflict with other ports, prefix with simh-
49
# eclipse, gri and nova conflict with other ports, prefix with simh-
53
	@${MV} ${WRKSRC}/BIN/eclipse ${WRKSRC}/BIN/simh-eclipse
50
	@${MV} ${WRKSRC}/BIN/eclipse ${WRKSRC}/BIN/simh-eclipse
54
	@${MV} ${WRKSRC}/BIN/gri ${WRKSRC}/BIN/simh-gri
51
	@${MV} ${WRKSRC}/BIN/gri ${WRKSRC}/BIN/simh-gri
55
	@${MV} ${WRKSRC}/BIN/nova ${WRKSRC}/BIN/simh-nova
52
	@${MV} ${WRKSRC}/BIN/nova ${WRKSRC}/BIN/simh-nova
53
# remove unwanted buildtools directory
54
	@${RMDIR} ${WRKSRC}/BIN/buildtools
56
55
57
do-install:
56
do-install:
58
	${INSTALL_PROGRAM} ${WRKSRC}/BIN/* ${STAGEDIR}${PREFIX}/bin
57
	${INSTALL_PROGRAM} ${WRKSRC}/BIN/* ${STAGEDIR}${PREFIX}/bin
59
	@${MKDIR} ${STAGEDIR}${DATADIR}
58
	@${MKDIR} ${STAGEDIR}${DATADIR}
60
	${INSTALL_DATA} ${WRKSRC}/VAX/ka655x.bin ${STAGEDIR}${DATADIR}
59
	${INSTALL_DATA} ${WRKSRC}/VAX/ka655x.bin ${STAGEDIR}${DATADIR}
61
	${INSTALL_MAN} ${WRKDIR}/simh.1 ${STAGEDIR}${MANPREFIX}/man/man1
60
	${INSTALL_MAN} ${WRKDIR}/simh.1 ${STAGEDIR}${PREFIX}/share/man/man1
62
61
63
do-install-DOCS-on:
62
do-install-DOCS-on:
64
	@${MKDIR} ${STAGEDIR}${DOCSDIR}/pdf
63
	@${MKDIR} ${STAGEDIR}${DOCSDIR}/pdf
65
	(cd ${WRKSRC} && ${INSTALL_DATA} ${READMES} ${STAGEDIR}${DOCSDIR})
64
	(cd ${WRKDIR} && ${COPYTREE_SHARE} pdf ${STAGEDIR}${DOCSDIR})
66
	(cd ${WRKSRC} && ${COPYTREE_SHARE} pdf ${STAGEDIR}${DOCSDIR})
67
65
68
.include <bsd.port.post.mk>
66
.include <bsd.port.post.mk>
(-)simh/distinfo (-5 / +5 lines)
Lines 1-5 Link Here
1
TIMESTAMP = 1507755254
1
TIMESTAMP = 1708086121
2
SHA256 (simhv39-0.zip) = e49b259b66ad6311ca9066dee3d3693cd915106a6938a52ed685cdbada8eda3b
2
SHA256 (simhv312-4.zip) = a05a21b1d359498b673c837db224ab37ede0c6ac406bd15af23cca8e7a60e8c4
3
SIZE (simhv39-0.zip) = 3103657
3
SIZE (simhv312-4.zip) = 2844892
4
SHA256 (simh_docpdf.zip) = dff83e9a55f5e8bc2364489d6cc2a6731c60237acf37f4c46f080914896f8a0c
4
SHA256 (simhv312-4_docpdf.zip) = f28916d3db2bc7a1e77a5ee0e180897e71c8c0b69f38c597ad4d1ea183c848a3
5
SIZE (simh_docpdf.zip) = 2282195
5
SIZE (simhv312-4_docpdf.zip) = 3315995
(-)simh/pkg-plist (-7 / +3 lines)
Lines 1-11 Link Here
1
bin/altair
1
bin/altair
2
bin/altairz80
3
bin/h316
2
bin/h316
4
bin/hp2100
5
bin/i1401
3
bin/i1401
6
bin/i1620
4
bin/i1620
7
bin/i7094
5
bin/i7094
8
bin/ibm1130
9
bin/id16
6
bin/id16
10
bin/id32
7
bin/id32
11
bin/lgp
8
bin/lgp
Lines 17-30 Link Here
17
bin/pdp7
14
bin/pdp7
18
bin/pdp8
15
bin/pdp8
19
bin/pdp9
16
bin/pdp9
20
bin/s3
21
bin/sds
17
bin/sds
18
bin/sigma
22
bin/simh-eclipse
19
bin/simh-eclipse
23
bin/simh-gri
20
bin/simh-gri
24
bin/simh-nova
21
bin/simh-nova
25
bin/swtp6800mp-a
22
bin/uc15
26
bin/swtp6800mp-a2
27
bin/vax
23
bin/vax
28
bin/vax780
24
bin/vax780
29
man/man1/simh.1.gz
25
share/man/man1/simh.1.gz
30
%%DATADIR%%/ka655x.bin
26
%%DATADIR%%/ka655x.bin
(-)simh/files/patch-I1401_i1401__cd.c (-3 / +3 lines)
Lines 1-6 Link Here
1
--- I1401/i1401_cd.c.orig	2016-12-01 22:43:42 UTC
1
--- I1401/i1401_cd.c.orig	2024-02-15 22:48:56 UTC
2
+++ I1401/i1401_cd.c
2
+++ I1401/i1401_cd.c
3
@@ -184,7 +184,7 @@ t_stat r;
3
@@ -235,7 +235,7 @@ t_stat r;
4
 
4
 
5
 if (sim_is_active (&cdr_unit)) {                        /* busy? */
5
 if (sim_is_active (&cdr_unit)) {                        /* busy? */
6
     sim_cancel (&cdr_unit);                             /* cancel */
6
     sim_cancel (&cdr_unit);                             /* cancel */
Lines 8-11 Link Here
8
+    if ((r = cdr_svc (&cdr_unit)))                      /* process */
8
+    if ((r = cdr_svc (&cdr_unit)))                      /* process */
9
         return r;
9
         return r;
10
     }
10
     }
11
 if ((cdr_unit.flags & UNIT_ATT) == 0)                   /* attached? */
11
 ind[IN_READ] = ind[IN_LST] = s1sel = s2sel = 0;         /* default stacker */
(-)simh/files/patch-I1401_i1401__cpu.c (-17 / +17 lines)
Lines 1-6 Link Here
1
--- I1401/i1401_cpu.c.orig	2016-12-01 22:43:42 UTC
1
--- I1401/i1401_cpu.c.orig	2024-02-15 22:51:31 UTC
2
+++ I1401/i1401_cpu.c
2
+++ I1401/i1401_cpu.c
3
@@ -547,7 +547,7 @@ while (reason == 0) {                   
3
@@ -551,7 +551,7 @@ while (reason == 0) {                                 
4
 
4
 
5
     saved_IS = IS;                                      /* commit prev instr */
5
     saved_IS = IS;                                      /* commit prev instr */
6
     if (sim_interval <= 0) {                            /* check clock queue */
6
     if (sim_interval <= 0) {                            /* check clock queue */
Lines 9-15 Link Here
9
             break;
9
             break;
10
         }
10
         }
11
 
11
 
12
@@ -1039,7 +1039,7 @@ CHECK_LENGTH:
12
@@ -1046,7 +1046,7 @@ CHECK_LENGTH:
13
 */
13
 */
14
 
14
 
15
     case OP_R:                                          /* read */
15
     case OP_R:                                          /* read */
Lines 18-24 Link Here
18
             break;
18
             break;
19
         reason = read_card (ilnt, D);                   /* read card */
19
         reason = read_card (ilnt, D);                   /* read card */
20
         BS = CDR_BUF + CDR_WIDTH;
20
         BS = CDR_BUF + CDR_WIDTH;
21
@@ -1049,7 +1049,7 @@ CHECK_LENGTH:
21
@@ -1056,7 +1056,7 @@ CHECK_LENGTH:
22
         break;
22
         break;
23
 
23
 
24
     case OP_W:                                          /* write */
24
     case OP_W:                                          /* write */
Lines 27-33 Link Here
27
             break;
27
             break;
28
         reason = write_line (ilnt, D);                  /* print line */
28
         reason = write_line (ilnt, D);                  /* print line */
29
         BS = LPT_BUF + LPT_WIDTH;
29
         BS = LPT_BUF + LPT_WIDTH;
30
@@ -1059,7 +1059,7 @@ CHECK_LENGTH:
30
@@ -1066,7 +1066,7 @@ CHECK_LENGTH:
31
         break;
31
         break;
32
 
32
 
33
     case OP_P:                                          /* punch */
33
     case OP_P:                                          /* punch */
Lines 36-42 Link Here
36
             break;
36
             break;
37
         reason = punch_card (ilnt, D);                  /* punch card */
37
         reason = punch_card (ilnt, D);                  /* punch card */
38
         BS = CDP_BUF + CDP_WIDTH;
38
         BS = CDP_BUF + CDP_WIDTH;
39
@@ -1069,7 +1069,7 @@ CHECK_LENGTH:
39
@@ -1076,7 +1076,7 @@ CHECK_LENGTH:
40
         break;
40
         break;
41
 
41
 
42
     case OP_WR:                                         /* write and read */
42
     case OP_WR:                                         /* write and read */
Lines 45-51 Link Here
45
             break;
45
             break;
46
         reason = write_line (ilnt, D);                  /* print line */
46
         reason = write_line (ilnt, D);                  /* print line */
47
         r1 = read_card (ilnt, D);                       /* read card */
47
         r1 = read_card (ilnt, D);                       /* read card */
48
@@ -1082,7 +1082,7 @@ CHECK_LENGTH:
48
@@ -1089,7 +1089,7 @@ CHECK_LENGTH:
49
         break;
49
         break;
50
 
50
 
51
     case OP_WP:                                         /* write and punch */
51
     case OP_WP:                                         /* write and punch */
Lines 54-60 Link Here
54
             break;
54
             break;
55
         reason = write_line (ilnt, D);                  /* print line */
55
         reason = write_line (ilnt, D);                  /* print line */
56
         r1 = punch_card (ilnt, D);                      /* punch card */
56
         r1 = punch_card (ilnt, D);                      /* punch card */
57
@@ -1095,7 +1095,7 @@ CHECK_LENGTH:
57
@@ -1102,7 +1102,7 @@ CHECK_LENGTH:
58
         break;
58
         break;
59
 
59
 
60
     case OP_RP:                                         /* read and punch */
60
     case OP_RP:                                         /* read and punch */
Lines 63-69 Link Here
63
             break;
63
             break;
64
         reason = read_card (ilnt, D);                   /* read card */
64
         reason = read_card (ilnt, D);                   /* read card */
65
         r1 = punch_card (ilnt, D);                      /* punch card */
65
         r1 = punch_card (ilnt, D);                      /* punch card */
66
@@ -1108,7 +1108,7 @@ CHECK_LENGTH:
66
@@ -1115,7 +1115,7 @@ CHECK_LENGTH:
67
         break;
67
         break;
68
 
68
 
69
     case OP_WRP:                                        /* write, read, punch */
69
     case OP_WRP:                                        /* write, read, punch */
Lines 72-78 Link Here
72
             break;
72
             break;
73
         reason = write_line (ilnt, D);                  /* print line */
73
         reason = write_line (ilnt, D);                  /* print line */
74
         r1 = read_card (ilnt, D);                       /* read card */
74
         r1 = read_card (ilnt, D);                       /* read card */
75
@@ -1122,9 +1122,9 @@ CHECK_LENGTH:
75
@@ -1129,9 +1129,9 @@ CHECK_LENGTH:
76
         break;
76
         break;
77
 
77
 
78
     case OP_SS:                                         /* select stacker */
78
     case OP_SS:                                         /* select stacker */
Lines 84-90 Link Here
84
             break;
84
             break;
85
         if ((ilnt == 4) || (ilnt == 5)) {               /* check for branch */
85
         if ((ilnt == 4) || (ilnt == 5)) {               /* check for branch */
86
             BRANCH;
86
             BRANCH;
87
@@ -1132,7 +1132,7 @@ CHECK_LENGTH:
87
@@ -1139,7 +1139,7 @@ CHECK_LENGTH:
88
         break;
88
         break;
89
 
89
 
90
     case OP_CC:                                         /* carriage control */
90
     case OP_CC:                                         /* carriage control */
Lines 93-104 Link Here
93
             break;
93
             break;
94
         if ((ilnt == 4) || (ilnt == 5)) {               /* check for branch */
94
         if ((ilnt == 4) || (ilnt == 5)) {               /* check for branch */
95
             BRANCH;
95
             BRANCH;
96
@@ -1154,7 +1154,7 @@ CHECK_LENGTH:
96
@@ -1165,7 +1165,7 @@ CHECK_LENGTH:
97
             reason = STOP_INVL;
98
         else if (ioind != BCD_PERCNT)                   /* valid dev addr? */
99
             reason = STOP_INVA;
97
             reason = STOP_INVA;
100
-        else if (reason = iomod (ilnt, D, mtf_mod))     /* valid modifier? */
101
+        else if ((reason = iomod (ilnt, D, mtf_mod)))   /* valid modifier? */
102
             break;
98
             break;
99
             }
100
-        if (reason = iomod (ilnt, D, mtf_mod))          /* valid modifier? */
101
+        if ((reason = iomod (ilnt, D, mtf_mod)))          /* valid modifier? */
102
             break;
103
 
103
         if (dev == IO_MT)                               /* BCD? */
104
         if (dev == IO_MT)                               /* BCD? */
104
             reason = mt_func (unit, 0, D);
(-)simh/files/patch-I1401_i1401__dp.c (-6 / +6 lines)
Lines 1-6 Link Here
1
--- I1401/i1401_dp.c.orig	2016-12-01 22:43:42 UTC
1
--- I1401/i1401_dp.c.orig	2024-02-15 22:43:38 UTC
2
+++ I1401/i1401_dp.c
2
+++ I1401/i1401_dp.c
3
@@ -269,7 +269,7 @@ switch (fnc) {                          
3
@@ -269,7 +269,7 @@ switch (fnc) {                                        
4
         for (;;) {                                      /* loop */
4
         for (;;) {                                      /* loop */
5
             qzr = (--cnt == 0);                         /* set zero latch */
5
             qzr = (--cnt == 0);                         /* set zero latch */
6
             dp_cvt_bin (dcf + DCF_CNT, DCF_CNT_LEN, cnt, MD_WM); /* redo count */
6
             dp_cvt_bin (dcf + DCF_CNT, DCF_CNT_LEN, cnt, MD_WM); /* redo count */
Lines 9-15 Link Here
9
                 break;
9
                 break;
10
             cnt = dp_get_cnt (dcf);                     /* get new count */
10
             cnt = dp_get_cnt (dcf);                     /* get new count */
11
             if (cnt < 0)                                /* bad count? */
11
             if (cnt < 0)                                /* bad count? */
12
@@ -278,7 +278,7 @@ switch (fnc) {                          
12
@@ -278,7 +278,7 @@ switch (fnc) {                                        
13
                 break;
13
                 break;
14
             sec++; psec++;                              /* next sector */
14
             sec++; psec++;                              /* next sector */
15
             dp_cvt_bin (dcf + DCF_SEC, DCF_SEC_LEN, sec, flg); /* rewr sec */
15
             dp_cvt_bin (dcf + DCF_SEC, DCF_SEC_LEN, sec, flg); /* rewr sec */
Lines 18-24 Link Here
18
                 break;
18
                 break;
19
             }
19
             }
20
         break;                                          /* done, clean up */
20
         break;                                          /* done, clean up */
21
@@ -289,9 +289,9 @@ switch (fnc) {                          
21
@@ -289,9 +289,9 @@ switch (fnc) {                                        
22
         for (;;) {                                      /* loop */
22
         for (;;) {                                      /* loop */
23
             qzr = (--cnt == 0);                         /* set zero latch */
23
             qzr = (--cnt == 0);                         /* set zero latch */
24
             dp_cvt_bin (dcf + DCF_CNT, DCF_CNT_LEN, cnt, MD_WM); /* redo count */
24
             dp_cvt_bin (dcf + DCF_CNT, DCF_CNT_LEN, cnt, MD_WM); /* redo count */
Lines 30-36 Link Here
30
                 break;                                  /* error? */
30
                 break;                                  /* error? */
31
             cnt = dp_get_cnt (dcf);                     /* get new count */
31
             cnt = dp_get_cnt (dcf);                     /* get new count */
32
             if (cnt < 0)                                /* bad count? */
32
             if (cnt < 0)                                /* bad count? */
33
@@ -312,13 +312,13 @@ switch (fnc) {                          
33
@@ -312,13 +312,13 @@ switch (fnc) {                                        
34
         for (;;) {                                      /* loop */
34
         for (;;) {                                      /* loop */
35
             qzr = (--cnt == 0);                         /* set zero latch */
35
             qzr = (--cnt == 0);                         /* set zero latch */
36
             dp_cvt_bin (dcf + DCF_CNT, DCF_CNT_LEN, cnt, MD_WM); /* rewr cnt */
36
             dp_cvt_bin (dcf + DCF_CNT, DCF_CNT_LEN, cnt, MD_WM); /* rewr cnt */
Lines 46-52 Link Here
46
                 break;
46
                 break;
47
             }
47
             }
48
         break;                                          /* done, clean up */
48
         break;                                          /* done, clean up */
49
@@ -331,9 +331,9 @@ switch (fnc) {                          
49
@@ -331,9 +331,9 @@ switch (fnc) {                                        
50
         for (;;) {                                      /* loop */
50
         for (;;) {                                      /* loop */
51
             qzr = (--cnt == 0);                         /* set zero latch */
51
             qzr = (--cnt == 0);                         /* set zero latch */
52
             dp_cvt_bin (dcf + DCF_CNT, DCF_CNT_LEN, cnt, MD_WM); /* redo count */
52
             dp_cvt_bin (dcf + DCF_CNT, DCF_CNT_LEN, cnt, MD_WM); /* redo count */
(-)simh/files/patch-I1401_i1401__mt.c (-2 / +2 lines)
Lines 1-6 Link Here
1
--- I1401/i1401_mt.c.orig	2016-12-01 22:43:42 UTC
1
--- I1401/i1401_mt.c.orig	2024-02-15 22:47:01 UTC
2
+++ I1401/i1401_mt.c
2
+++ I1401/i1401_mt.c
3
@@ -451,7 +451,7 @@ int32 i;
3
@@ -456,7 +456,7 @@ int32 i;
4
 UNIT *uptr;
4
 UNIT *uptr;
5
 
5
 
6
 for (i = 0; i < MT_NUMDR; i++) {                        /* per drive resets */
6
 for (i = 0; i < MT_NUMDR; i++) {                        /* per drive resets */
(-)simh/files/patch-I1620_i1620__dp.c (-5 / +5 lines)
Lines 1-6 Link Here
1
--- I1620/i1620_dp.c.orig	2016-12-01 22:43:42 UTC
1
--- I1620/i1620_dp.c.orig	2024-02-15 22:40:36 UTC
2
+++ I1620/i1620_dp.c
2
+++ I1620/i1620_dp.c
3
@@ -206,7 +206,7 @@ switch (f1 & ~(FNC_WCH | FNC_NRL)) {    
3
@@ -207,7 +207,7 @@ switch (f1 & ~(FNC_WCH | FNC_NRL)) {                  
4
         if (psec < 0)                                   /* error? */
4
         if (psec < 0)                                   /* error? */
5
             CRETIOE (dp_stop, STOP_DACERR);
5
             CRETIOE (dp_stop, STOP_DACERR);
6
         do {                                            /* loop on count */
6
         do {                                            /* loop on count */
Lines 9-15 Link Here
9
                 break;
9
                 break;
10
             sec++; psec++;                              /* next sector */
10
             sec++; psec++;                              /* next sector */
11
             } while ((--cnt > 0) &&
11
             } while ((--cnt > 0) &&
12
@@ -216,9 +216,9 @@ switch (f1 & ~(FNC_WCH | FNC_NRL)) {    
12
@@ -217,9 +217,9 @@ switch (f1 & ~(FNC_WCH | FNC_NRL)) {                  
13
     case FNC_TRK:                                       /* read track */
13
     case FNC_TRK:                                       /* read track */
14
         psec = dp_trkop (drv, sec);                     /* start of track */
14
         psec = dp_trkop (drv, sec);                     /* start of track */
15
         for (cnt = 0; cnt < DP_NUMSC; cnt++) {          /* full track */
15
         for (cnt = 0; cnt < DP_NUMSC; cnt++) {          /* full track */
Lines 21-27 Link Here
21
                 break;                                  /* error? */
21
                 break;                                  /* error? */
22
             psec = dp_trkop (drv, sec) + ((psec + 1) % DP_NUMSC);
22
             psec = dp_trkop (drv, sec) + ((psec + 1) % DP_NUMSC);
23
             }
23
             }
24
@@ -231,9 +231,9 @@ switch (f1 & ~(FNC_WCH | FNC_NRL)) {    
24
@@ -232,9 +232,9 @@ switch (f1 & ~(FNC_WCH | FNC_NRL)) {                  
25
         if (psec < 0)                                   /* error? */
25
         if (psec < 0)                                   /* error? */
26
             CRETIOE (dp_stop, STOP_DACERR);
26
             CRETIOE (dp_stop, STOP_DACERR);
27
         do {                                            /* loop on count */
27
         do {                                            /* loop on count */
Lines 33-39 Link Here
33
                 break;
33
                 break;
34
             sec++; psec++;                              /* next sector */
34
             sec++; psec++;                              /* next sector */
35
             } while ((--cnt > 0) &&
35
             } while ((--cnt > 0) &&
36
@@ -245,11 +245,11 @@ switch (f1 & ~(FNC_WCH | FNC_NRL)) {    
36
@@ -246,11 +246,11 @@ switch (f1 & ~(FNC_WCH | FNC_NRL)) {                  
37
                 return STOP_WRADIS;
37
                 return STOP_WRADIS;
38
         psec = dp_trkop (drv, sec);                     /* start of track */
38
         psec = dp_trkop (drv, sec);                     /* start of track */
39
         for (cnt = 0; cnt < DP_NUMSC; cnt++) {          /* full track */
39
         for (cnt = 0; cnt < DP_NUMSC; cnt++) {          /* full track */
(-)simh/files/patch-I1620_i1620__sys.c (-2 / +2 lines)
Lines 1-6 Link Here
1
--- I1620/i1620_sys.c.orig	2016-12-01 22:43:42 UTC
1
--- I1620/i1620_sys.c.orig	2024-02-15 22:37:03 UTC
2
+++ I1620/i1620_sys.c
2
+++ I1620/i1620_sys.c
3
@@ -552,7 +552,7 @@ if (I_GETQP (opfl) != I_M_QNP) {        
3
@@ -584,7 +584,7 @@ if (I_GETQP (opfl) != I_M_QNP) {                      
4
 
4
 
5
 cptr = get_glyph (cptr, fptr = gbuf, ' ');              /* get flag field */
5
 cptr = get_glyph (cptr, fptr = gbuf, ' ');              /* get flag field */
6
 last = -1;                                              /* none yet */
6
 last = -1;                                              /* none yet */
(-)simh/files/patch-PDP11_pdp11__hk.c (-9 / +9 lines)
Lines 1-36 Link Here
1
--- PDP11/pdp11_hk.c.orig	2016-12-01 22:43:42 UTC
1
--- PDP11/pdp11_hk.c.orig	2024-02-15 23:02:57 UTC
2
+++ PDP11/pdp11_hk.c
2
+++ PDP11/pdp11_hk.c
3
@@ -887,7 +887,7 @@ switch (fnc) {                          
3
@@ -916,7 +916,7 @@ switch (fnc) {                                        
4
         err = fseek (uptr->fileref, da * sizeof (int16), SEEK_SET);
4
         err = fseek (uptr->fileref, da * sizeof (int16), SEEK_SET);
5
         if (uptr->FNC == FNC_WRITE) {                   /* write? */
5
         if (uptr->FNC == FNC_WRITE) {                   /* write? */
6
             if (hkcs2 & CS2_UAI) {                      /* no addr inc? */
6
             if (hkcs2 & CS2_UAI) {                      /* no addr inc? */
7
-                if (t = Map_ReadW (ba, 2, &comp)) {     /* get 1st wd */
7
-                if (t = Map_ReadW (ba, 2, &comp)) {     /* get 1st wd */
8
+                if ((t = Map_ReadW (ba, 2, &comp))) {   /* get 1st wd */
8
+                if ((t = Map_ReadW (ba, 2, &comp))) {   /* get 1st wd */
9
                     wc = 0;                             /* NXM, no xfr */
9
                     wc = 0;                             /* NXM, no xfr */
10
                     hkcs2 = hkcs2 | CS2_NEM;            /* set nxm err */
10
                     hk_err (CS1_ERR, CS2_NEM, 0, drv);
11
                     }
11
                     }
12
@@ -895,7 +895,7 @@ switch (fnc) {                          
12
@@ -924,7 +924,7 @@ switch (fnc) {                                        
13
                     hkxb[i] = comp;
13
                     hkxb[i] = comp;
14
                 }
14
                 }
15
             else {                                      /* normal */
15
             else {                                      /* normal */
16
-                if (t = Map_ReadW (ba, wc << 1, hkxb)) { /* get buf */
16
-                if (t = Map_ReadW (ba, wc << 1, hkxb)) { /* get buf */
17
+                if ((t = Map_ReadW (ba, wc << 1, hkxb))) { /* get buf */
17
+                if ((t = Map_ReadW (ba, wc << 1, hkxb))) { /* get buf */
18
                     wc = wc - (t >> 1);                 /* NXM, adj wc */
18
                     wc = wc - (t >> 1);                 /* NXM, adj wc */
19
                     hkcs2 = hkcs2 | CS2_NEM;            /* set nxm err */
19
                      hk_err (CS1_ERR, CS2_NEM, 0, drv);
20
                     }
20
                     }
21
@@ -915,13 +915,13 @@ switch (fnc) {                          
21
@@ -944,13 +944,13 @@ switch (fnc) {                                        
22
             for ( ; i < wc; i++)                        /* fill buf */
22
             for ( ; i < wc; i++)                        /* fill buf */
23
                 hkxb[i] = 0;
23
                 hkxb[i] = 0;
24
             if (hkcs2 & CS2_UAI) {                      /* no addr inc? */
24
             if (hkcs2 & CS2_UAI) {                      /* no addr inc? */
25
-                if (t = Map_WriteW (ba, 2, &hkxb[wc - 1])) {
25
-                if (t = Map_WriteW (ba, 2, &hkxb[wc - 1])) {
26
+                if ((t = Map_WriteW (ba, 2, &hkxb[wc - 1]))) {
26
+                if ((t = Map_WriteW (ba, 2, &hkxb[wc - 1]))) {
27
                     wc = 0;                             /* NXM, no xfr */
27
                     wc = 0;                             /* NXM, no xfr */
28
                     hkcs2 = hkcs2 | CS2_NEM;            /* set nxm err */
28
                     hk_err (CS1_ERR, CS2_NEM, 0, drv);
29
                     }
29
                     }
30
                 }
30
                 }
31
             else {                                      /* normal */
31
             else {                                      /* normal */
32
-                if (t = Map_WriteW (ba, wc << 1, hkxb)) {       /* put buf */
32
-                if (t = Map_WriteW (ba, wc << 1, hkxb)) {       /* put buf */
33
+                if ((t = Map_WriteW (ba, wc << 1, hkxb))) {     /* put buf */
33
+                if ((t = Map_WriteW (ba, wc << 1, hkxb))) {       /* put buf */
34
                     wc = wc - (t >> 1);                 /* NXM, adj wc */
34
                     wc = wc - (t >> 1);                 /* NXM, adj wc */
35
                     hkcs2 = hkcs2 | CS2_NEM;            /* set nxm err */
35
                     hk_err (CS1_ERR, CS2_NEM, 0, drv);
36
                     }
36
                     }
(-)simh/files/patch-PDP11_pdp11__rq.c (-26 / +26 lines)
Lines 1-6 Link Here
1
--- PDP11/pdp11_rq.c.orig	2016-12-01 22:43:42 UTC
1
--- PDP11/pdp11_rq.c.orig	2024-02-15 23:20:23 UTC
2
+++ PDP11/pdp11_rq.c
2
+++ PDP11/pdp11_rq.c
3
@@ -1352,7 +1352,7 @@ UNIT *uptr;
3
@@ -1600,7 +1600,7 @@ UNIT *uptr;
4
 DEVICE *dptr = rq_devmap[cp->cnum];
4
 DEVICE *dptr = rq_devmap[cp->cnum];
5
 
5
 
6
 tpkt = 0;                                               /* set no mtch */
6
 tpkt = 0;                                               /* set no mtch */
Lines 9-107 Link Here
9
     if (uptr->cpkt &&                                   /* curr pkt? */
9
     if (uptr->cpkt &&                                   /* curr pkt? */
10
         (GETP32 (uptr->cpkt, CMD_REFL) == ref)) {       /* match ref? */
10
         (GETP32 (uptr->cpkt, CMD_REFL) == ref)) {       /* match ref? */
11
         tpkt = uptr->cpkt;                              /* save match */
11
         tpkt = uptr->cpkt;                              /* save match */
12
@@ -1365,8 +1365,8 @@ if (uptr = rq_getucb (cp, lu)) {        
12
@@ -1613,8 +1613,8 @@ if (uptr = rq_getucb (cp, lu)) {                      
13
         tpkt = uptr->pktq;                              /* save match */
13
         tpkt = uptr->pktq;                              /* save match */
14
         uptr->pktq = cp->pak[tpkt].link;                /* unlink */
14
         uptr->pktq = cp->pak[tpkt].link;                /* unlink */
15
         }
15
         }
16
-    else if (prv = uptr->pktq) {                        /* srch pkt q */
16
-    else if (prv = uptr->pktq) {                        /* srch pkt q */
17
-        while (tpkt = cp->pak[prv].link) {              /* walk list */
17
-        while (tpkt = cp->pak[prv].link) {              /* walk list */
18
+    else if ((prv = uptr->pktq)) {                      /* srch pkt q */
18
+    else if ((prv = uptr->pktq)) {                        /* srch pkt q */
19
+        while ((tpkt = cp->pak[prv].link)) {            /* walk list */
19
+        while ((tpkt = cp->pak[prv].link)) {              /* walk list */
20
             if (GETP32 (tpkt, RSP_REFL) == ref) {       /* match? unlink */
20
             if (GETP32 (tpkt, RSP_REFL) == ref) {       /* match? unlink */
21
                 cp->pak[prv].link = cp->pak[tpkt].link;
21
                 cp->pak[prv].link = cp->pak[tpkt].link;
22
                 break;
22
                 break;
23
@@ -1393,7 +1393,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);  
23
@@ -1642,7 +1642,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);                
24
 uint32 sts;
24
 uint32 sts;
25
 UNIT *uptr;
25
 UNIT *uptr;
26
 
26
 
27
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
27
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
28
+if ((uptr = rq_getucb (cp, lu))) {                      /* unit exist? */
28
+if ((uptr = rq_getucb (cp, lu))) {                        /* unit exist? */
29
     if (q && uptr->cpkt) {                              /* need to queue? */
29
     if (q && uptr->cpkt) {                              /* need to queue? */
30
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
30
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
31
         return OK;
31
         return OK;
32
@@ -1447,7 +1447,7 @@ if (cp->pak[pkt].d[CMD_MOD] & MD_NXU) { 
32
@@ -1696,7 +1696,7 @@ if (cp->pak[pkt].d[CMD_MOD] & MD_NXU) {               
33
         cp->pak[pkt].d[RSP_UN] = lu;
33
         cp->pak[pkt].d[RSP_UN] = lu;
34
         }
34
         }
35
     }
35
     }
36
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
36
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
37
+if ((uptr = rq_getucb (cp, lu))) {                      /* unit exist? */
37
+if ((uptr = rq_getucb (cp, lu))) {                        /* unit exist? */
38
     if ((uptr->flags & UNIT_ATT) == 0)                  /* not attached? */
38
     if ((uptr->flags & UNIT_ATT) == 0)                  /* not attached? */
39
         sts = ST_OFL | SB_OFL_NV;                       /* offl no vol */
39
         sts = ST_OFL | SB_OFL_NV;                       /* offl no vol */
40
     else if (uptr->flags & UNIT_ONL)                    /* online */
40
     else if (uptr->flags & UNIT_ONL)                    /* online */
41
@@ -1482,7 +1482,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);  
41
@@ -1731,7 +1731,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);                
42
 uint32 sts;
42
 uint32 sts;
43
 UNIT *uptr;
43
 UNIT *uptr;
44
 
44
 
45
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
45
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
46
+if ((uptr = rq_getucb (cp, lu))) {                      /* unit exist? */
46
+if ((uptr = rq_getucb (cp, lu))) {                        /* unit exist? */
47
     if (q && uptr->cpkt) {                              /* need to queue? */
47
     if (q && uptr->cpkt) {                              /* need to queue? */
48
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
48
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
49
         return OK;
49
         return OK;
50
@@ -1520,7 +1520,7 @@ else {
50
@@ -1769,7 +1769,7 @@ else {
51
     cmd = GETP (pkt, CMD_OPC, OPC);                     /* get opcode */
51
     cmd = GETP (pkt, CMD_OPC, OPC);                     /* get opcode */
52
     cp->cflgs = (cp->cflgs & CF_RPL) |                  /* hack ctrl flgs */
52
     cp->cflgs = (cp->cflgs & CF_RPL) |                  /* hack ctrl flgs */
53
         cp->pak[pkt].d[SCC_CFL];
53
         cp->pak[pkt].d[SCC_CFL];
54
-    if (cp->htmo = cp->pak[pkt].d[SCC_TMO])             /* set timeout */
54
-    if (cp->htmo = cp->pak[pkt].d[SCC_TMO])             /* set timeout */
55
+    if ((cp->htmo = cp->pak[pkt].d[SCC_TMO]))           /* set timeout */
55
+    if ((cp->htmo = cp->pak[pkt].d[SCC_TMO]))             /* set timeout */
56
         cp->htmo = cp->htmo + 2;                        /* if nz, round up */
56
         cp->htmo = cp->htmo + 2;                        /* if nz, round up */
57
     cp->pak[pkt].d[SCC_CFL] = cp->cflgs;                /* return flags */
57
     cp->pak[pkt].d[SCC_CFL] = cp->cflgs;                /* return flags */
58
     cp->pak[pkt].d[SCC_TMO] = RQ_DCTMO;                 /* ctrl timeout */
58
     cp->pak[pkt].d[SCC_TMO] = RQ_DCTMO;                 /* ctrl timeout */
59
@@ -1547,7 +1547,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);  
59
@@ -1796,7 +1796,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);                
60
 uint32 sts;
60
 uint32 sts;
61
 UNIT *uptr;
61
 UNIT *uptr;
62
 
62
 
63
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
63
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
64
+if ((uptr = rq_getucb (cp, lu))) {                      /* unit exist? */
64
+if ((uptr = rq_getucb (cp, lu))) {                        /* unit exist? */
65
     if (q && uptr->cpkt) {                              /* need to queue? */
65
     if (q && uptr->cpkt) {                              /* need to queue? */
66
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
66
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
67
         return OK;
67
         return OK;
68
@@ -1576,7 +1576,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);  
68
@@ -1825,7 +1825,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);                
69
 uint32 sts;
69
 uint32 sts;
70
 UNIT *uptr;
70
 UNIT *uptr;
71
 
71
 
72
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
72
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
73
+if ((uptr = rq_getucb (cp, lu))) {                      /* unit exist? */
73
+if ((uptr = rq_getucb (cp, lu))) {                        /* unit exist? */
74
     if (q && uptr->cpkt) {                              /* need to queue? */
74
     if (q && uptr->cpkt) {                              /* need to queue? */
75
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
75
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
76
         return OK;
76
         return OK;
77
@@ -1610,7 +1610,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);  
77
@@ -1859,7 +1859,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);                
78
 uint32 sts;
78
 uint32 sts;
79
 UNIT *uptr;
79
 UNIT *uptr;
80
 
80
 
81
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
81
-if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */
82
+if ((uptr = rq_getucb (cp, lu))) {                      /* unit exist? */
82
+if ((uptr = rq_getucb (cp, lu))) {                        /* unit exist? */
83
     if (q && uptr->cpkt) {                              /* need to queue? */
83
     if (q && uptr->cpkt) {                              /* need to queue? */
84
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
84
         rq_enqt (cp, &uptr->pktq, pkt);                 /* do later */
85
         return OK;
85
         return OK;
86
@@ -1725,7 +1725,7 @@ if (cmd == OP_ERS) {                    
86
@@ -1974,7 +1974,7 @@ if (cmd == OP_ERS) {                                  
87
 
87
 
88
 else if (cmd == OP_WR) {                                /* write? */
88
 else if (cmd == OP_WR) {                                /* write? */
89
     t = Map_ReadW (ba, tbc, rqxb);                      /* fetch buffer */
89
     t = Map_ReadW (ba, tbc, rqxb);                      /* fetch buffer */
90
-    if (abc = tbc - t) {                                /* any xfer? */
90
-    if (abc = tbc - t) {                                /* any xfer? */
91
+    if ((abc = tbc - t)) {                              /* any xfer? */
91
+    if ((abc = tbc - t)) {                                /* any xfer? */
92
         wwc = ((abc + (RQ_NUMBY - 1)) & ~(RQ_NUMBY - 1)) >> 1;
92
         wwc = ((abc + (RQ_NUMBY - 1)) & ~(RQ_NUMBY - 1)) >> 1;
93
         for (i = (abc >> 1); i < wwc; i++)
93
         for (i = (abc >> 1); i < wwc; i++)
94
             rqxb[i] = 0;
94
             rqxb[i] = 0;
95
@@ -1752,7 +1752,7 @@ else {
95
@@ -2001,7 +2001,7 @@ else {
96
         err = ferror (uptr->fileref);
96
         err = ferror (uptr->fileref);
97
         }
97
         }
98
     if ((cmd == OP_RD) && !err) {                       /* read? */
98
     if ((cmd == OP_RD) && !err) {                       /* read? */
99
-        if (t = Map_WriteW (ba, tbc, rqxb)) {           /* store, nxm? */
99
-        if (t = Map_WriteW (ba, tbc, rqxb)) {           /* store, nxm? */
100
+        if ((t = Map_WriteW (ba, tbc, rqxb))) {         /* store, nxm? */
100
+        if ((t = Map_WriteW (ba, tbc, rqxb))) {           /* store, nxm? */
101
             PUTP32 (pkt, RW_WBCL, bc - (tbc - t));      /* adj bc */
101
             PUTP32 (pkt, RW_WBCL, bc - (tbc - t));      /* adj bc */
102
             PUTP32 (pkt, RW_WBAL, ba + (tbc - t));      /* adj ba */
102
             PUTP32 (pkt, RW_WBAL, ba + (tbc - t));      /* adj ba */
103
             if (rq_hbe (cp, uptr))                      /* post err log */
103
             if (rq_hbe (cp, uptr))                      /* post err log */
104
@@ -2586,11 +2586,11 @@ if ((uptr->flags & UNIT_ONL) == 0) {
104
@@ -2834,11 +2834,11 @@ if ((uptr->flags & UNIT_ONL) == 0) {
105
 if (uptr->cpkt) {
105
 if (uptr->cpkt) {
106
     fprintf (st, "Unit %d current ", u);
106
     fprintf (st, "Unit %d current ", u);
107
     rq_show_pkt (st, cp, uptr->cpkt);
107
     rq_show_pkt (st, cp, uptr->cpkt);
Lines 115-121 Link Here
115
         }
115
         }
116
     }
116
     }
117
 else fprintf (st, "Unit %d queues are empty\n", u);
117
 else fprintf (st, "Unit %d queues are empty\n", u);
118
@@ -2617,7 +2617,7 @@ if (val & RQ_SH_RI) {
118
@@ -2865,7 +2865,7 @@ if (val & RQ_SH_RI) {
119
     rq_show_ring (st, &cp->rq);
119
     rq_show_ring (st, &cp->rq);
120
     }
120
     }
121
 if (val & RQ_SH_FR) {
121
 if (val & RQ_SH_FR) {
Lines 124-130 Link Here
124
         for (i = 0; pkt != 0; i++, pkt = cp->pak[pkt].link) {
124
         for (i = 0; pkt != 0; i++, pkt = cp->pak[pkt].link) {
125
             if (i == 0)
125
             if (i == 0)
126
                 fprintf (st, "Free queue = %d", pkt);
126
                 fprintf (st, "Free queue = %d", pkt);
127
@@ -2630,11 +2630,11 @@ if (val & RQ_SH_FR) {
127
@@ -2878,11 +2878,11 @@ if (val & RQ_SH_FR) {
128
     else fprintf (st, "Free queue is empty\n");
128
     else fprintf (st, "Free queue is empty\n");
129
     }
129
     }
130
 if (val & RQ_SH_RS) {
130
 if (val & RQ_SH_RS) {
(-)simh/files/patch-PDP11_pdp11__tq.c (-19 / +19 lines)
Lines 1-6 Link Here
1
--- PDP11/pdp11_tq.c.orig	2016-12-01 22:43:42 UTC
1
--- PDP11/pdp11_tq.c.orig	2024-02-15 23:05:33 UTC
2
+++ PDP11/pdp11_tq.c
2
+++ PDP11/pdp11_tq.c
3
@@ -780,7 +780,7 @@ else if (mdf & ~tq_cmf[cmd]) {          
3
@@ -783,7 +783,7 @@ else if (mdf & ~tq_cmf[cmd]) {                        
4
     sts = ST_CMD | I_MODF;                              /* ill mods */
4
     sts = ST_CMD | I_MODF;                              /* ill mods */
5
     }
5
     }
6
 else {                                                  /* valid cmd */
6
 else {                                                  /* valid cmd */
Lines 9-15 Link Here
9
         if (q && (tq_cmf[cmd] & CMF_SEQ) &&             /* queueing, seq, */
9
         if (q && (tq_cmf[cmd] & CMF_SEQ) &&             /* queueing, seq, */
10
             (uptr->cpkt || uptr->pktq)) {               /* and active? */
10
             (uptr->cpkt || uptr->pktq)) {               /* and active? */
11
             tq_enqt (&uptr->pktq, pkt);                 /* do later */
11
             tq_enqt (&uptr->pktq, pkt);                 /* do later */
12
@@ -858,7 +858,7 @@ int32 tpkt, prv;
12
@@ -861,7 +861,7 @@ int32 tpkt, prv;
13
 UNIT *uptr;
13
 UNIT *uptr;
14
 
14
 
15
 tpkt = 0;                                               /* set no mtch */
15
 tpkt = 0;                                               /* set no mtch */
Lines 18-24 Link Here
18
     if (uptr->cpkt &&                                   /* curr pkt? */
18
     if (uptr->cpkt &&                                   /* curr pkt? */
19
         (GETP32 (uptr->cpkt, CMD_REFL) == ref)) {       /* match ref? */
19
         (GETP32 (uptr->cpkt, CMD_REFL) == ref)) {       /* match ref? */
20
         tpkt = uptr->cpkt;                              /* save match */
20
         tpkt = uptr->cpkt;                              /* save match */
21
@@ -871,8 +871,8 @@ if (uptr = tq_getucb (lu)) {            
21
@@ -874,8 +874,8 @@ if (uptr = tq_getucb (lu)) {                          
22
         tpkt = uptr->pktq;                              /* save match */
22
         tpkt = uptr->pktq;                              /* save match */
23
         uptr->pktq = tq_pkt[tpkt].link;                 /* unlink */
23
         uptr->pktq = tq_pkt[tpkt].link;                 /* unlink */
24
         }
24
         }
Lines 29-35 Link Here
29
             if (GETP32 (tpkt, RSP_REFL) == ref) {       /* match ref? */
29
             if (GETP32 (tpkt, RSP_REFL) == ref) {       /* match ref? */
30
                 tq_pkt[prv].link = tq_pkt[tpkt].link;   /* unlink */
30
                 tq_pkt[prv].link = tq_pkt[tpkt].link;   /* unlink */
31
                     break;
31
                     break;
32
@@ -900,7 +900,7 @@ uint32 mdf = tq_pkt[pkt].d[CMD_MOD];    
32
@@ -904,7 +904,7 @@ uint32 mdf = tq_pkt[pkt].d[CMD_MOD];                  
33
 uint32 sts;
33
 uint32 sts;
34
 UNIT *uptr;
34
 UNIT *uptr;
35
 
35
 
Lines 38-44 Link Here
38
     if (uptr->flags & UNIT_SXC)                         /* ser exc pending? */
38
     if (uptr->flags & UNIT_SXC)                         /* ser exc pending? */
39
         sts = ST_SXC;
39
         sts = ST_SXC;
40
     else {
40
     else {
41
@@ -955,7 +955,7 @@ if (tq_pkt[pkt].d[CMD_MOD] & MD_NXU) {  
41
@@ -959,7 +959,7 @@ if (tq_pkt[pkt].d[CMD_MOD] & MD_NXU) {                
42
         tq_pkt[pkt].d[RSP_UN] = lu;
42
         tq_pkt[pkt].d[RSP_UN] = lu;
43
         }
43
         }
44
     }
44
     }
Lines 47-53 Link Here
47
     if ((uptr->flags & UNIT_ATT) == 0)                  /* not attached? */
47
     if ((uptr->flags & UNIT_ATT) == 0)                  /* not attached? */
48
             sts = ST_OFL | SB_OFL_NV;                   /* offl no vol */
48
             sts = ST_OFL | SB_OFL_NV;                   /* offl no vol */
49
     else if (uptr->flags & UNIT_ONL)                    /* online */
49
     else if (uptr->flags & UNIT_ONL)                    /* online */
50
@@ -980,7 +980,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];      
50
@@ -984,7 +984,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];                    
51
 uint32 sts;
51
 uint32 sts;
52
 UNIT *uptr;
52
 UNIT *uptr;
53
 
53
 
Lines 56-62 Link Here
56
     if ((uptr->flags & UNIT_ATT) == 0)                  /* not attached? */
56
     if ((uptr->flags & UNIT_ATT) == 0)                  /* not attached? */
57
         sts = ST_OFL | SB_OFL_NV;                       /* offl no vol */
57
         sts = ST_OFL | SB_OFL_NV;                       /* offl no vol */
58
     else if (uptr->flags & UNIT_ONL)                    /* already online? */
58
     else if (uptr->flags & UNIT_ONL)                    /* already online? */
59
@@ -1009,7 +1009,7 @@ if (tq_pkt[pkt].d[SCC_MSV])             
59
@@ -1013,7 +1013,7 @@ if (tq_pkt[pkt].d[SCC_MSV])                           
60
 else {
60
 else {
61
     tq_cflgs = (tq_cflgs & CF_RPL) |                    /* hack ctrl flgs */
61
     tq_cflgs = (tq_cflgs & CF_RPL) |                    /* hack ctrl flgs */
62
         tq_pkt[pkt].d[SCC_CFL];
62
         tq_pkt[pkt].d[SCC_CFL];
Lines 65-71 Link Here
65
         tq_htmo = tq_htmo + 2;                          /* if nz, round up */
65
         tq_htmo = tq_htmo + 2;                          /* if nz, round up */
66
     tq_pkt[pkt].d[SCC_CFL] = tq_cflgs;                  /* return flags */
66
     tq_pkt[pkt].d[SCC_CFL] = tq_cflgs;                  /* return flags */
67
     tq_pkt[pkt].d[SCC_TMO] = TQ_DCTMO;                  /* ctrl timeout */
67
     tq_pkt[pkt].d[SCC_TMO] = TQ_DCTMO;                  /* ctrl timeout */
68
@@ -1033,7 +1033,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];      
68
@@ -1037,7 +1037,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];                    
69
 uint32 sts;
69
 uint32 sts;
70
 UNIT *uptr;
70
 UNIT *uptr;
71
 
71
 
Lines 74-80 Link Here
74
     if ((uptr->flags & UNIT_ATT) == 0)                  /* not attached? */
74
     if ((uptr->flags & UNIT_ATT) == 0)                  /* not attached? */
75
         sts = ST_OFL | SB_OFL_NV;                       /* offl no vol */
75
         sts = ST_OFL | SB_OFL_NV;                       /* offl no vol */
76
     else {
76
     else {
77
@@ -1055,7 +1055,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];      
77
@@ -1059,7 +1059,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];                    
78
 uint32 sts;
78
 uint32 sts;
79
 UNIT *uptr;
79
 UNIT *uptr;
80
 
80
 
Lines 83-89 Link Here
83
     sts = tq_mot_valid (uptr, OP_FLU);                  /* validate req */
83
     sts = tq_mot_valid (uptr, OP_FLU);                  /* validate req */
84
 else sts = ST_OFL;                                      /* offline */
84
 else sts = ST_OFL;                                      /* offline */
85
 tq_putr (pkt, OP_FLU | OP_END, tq_efl (uptr), sts, FLU_LNT, UQ_TYP_SEQ);
85
 tq_putr (pkt, OP_FLU | OP_END, tq_efl (uptr), sts, FLU_LNT, UQ_TYP_SEQ);
86
@@ -1071,7 +1071,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);  
86
@@ -1075,7 +1075,7 @@ uint32 cmd = GETP (pkt, CMD_OPC, OPC);                
87
 uint32 sts;
87
 uint32 sts;
88
 UNIT *uptr;
88
 UNIT *uptr;
89
 
89
 
Lines 92-98 Link Here
92
     sts = tq_mot_valid (uptr, cmd);                     /* validity checks */
92
     sts = tq_mot_valid (uptr, cmd);                     /* validity checks */
93
     if (sts == ST_SUC) {                                /* ok? */
93
     if (sts == ST_SUC) {                                /* ok? */
94
         uptr->cpkt = pkt;                               /* op in progress */
94
         uptr->cpkt = pkt;                               /* op in progress */
95
@@ -1092,7 +1092,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];      
95
@@ -1096,7 +1096,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];                    
96
 uint32 sts, objp = 0;
96
 uint32 sts, objp = 0;
97
 UNIT *uptr;
97
 UNIT *uptr;
98
 
98
 
Lines 101-107 Link Here
101
     objp = uptr->objp;                                  /* position op */
101
     objp = uptr->objp;                                  /* position op */
102
     sts = tq_mot_valid (uptr, OP_WTM);                  /* validity checks */
102
     sts = tq_mot_valid (uptr, OP_WTM);                  /* validity checks */
103
     if (sts == ST_SUC) {                                /* ok? */
103
     if (sts == ST_SUC) {                                /* ok? */
104
@@ -1115,7 +1115,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];      
104
@@ -1119,7 +1119,7 @@ uint32 lu = tq_pkt[pkt].d[CMD_UN];                    
105
 uint32 sts, objp = 0;
105
 uint32 sts, objp = 0;
106
 UNIT *uptr;
106
 UNIT *uptr;
107
 
107
 
Lines 110-116 Link Here
110
     objp = uptr->objp;                                  /* position op */
110
     objp = uptr->objp;                                  /* position op */
111
     sts = tq_mot_valid (uptr, OP_POS);                  /* validity checks */
111
     sts = tq_mot_valid (uptr, OP_POS);                  /* validity checks */
112
     if (sts == ST_SUC) {                                /* ok? */
112
     if (sts == ST_SUC) {                                /* ok? */
113
@@ -1147,7 +1147,7 @@ uint32 bc = GETP32 (pkt, RW_BCL);       
113
@@ -1151,7 +1151,7 @@ uint32 bc = GETP32 (pkt, RW_BCL);                     
114
 uint32 sts, objp = 0;
114
 uint32 sts, objp = 0;
115
 UNIT *uptr;
115
 UNIT *uptr;
116
 
116
 
Lines 119-125 Link Here
119
     objp = uptr->objp;                                  /* position op */
119
     objp = uptr->objp;                                  /* position op */
120
     sts = tq_mot_valid (uptr, cmd);                     /* validity checks */
120
     sts = tq_mot_valid (uptr, cmd);                     /* validity checks */
121
     if (sts == ST_SUC) {                                /* ok? */
121
     if (sts == ST_SUC) {                                /* ok? */
122
@@ -1251,7 +1251,7 @@ switch (cmd) {                          
122
@@ -1255,7 +1255,7 @@ switch (cmd) {                                        
123
             }
123
             }
124
         else wbc = tbc;
124
         else wbc = tbc;
125
         if (cmd == OP_RD) {                             /* read? */
125
         if (cmd == OP_RD) {                             /* read? */
Lines 128-134 Link Here
128
                 PUTP32 (pkt, RW_BCL, wbc - t);          /* adj bc */
128
                 PUTP32 (pkt, RW_BCL, wbc - t);          /* adj bc */
129
                 if (tq_hbe (uptr, ba + wbc - t))        /* post err log */
129
                 if (tq_hbe (uptr, ba + wbc - t))        /* post err log */
130
                     tq_mot_end (uptr, EF_LOG, ST_HST | SB_HST_NXM, tbc);        
130
                     tq_mot_end (uptr, EF_LOG, ST_HST | SB_HST_NXM, tbc);        
131
@@ -1288,7 +1288,7 @@ switch (cmd) {                          
131
@@ -1292,7 +1292,7 @@ switch (cmd) {                                        
132
         break;
132
         break;
133
 
133
 
134
     case OP_WR:                                         /* write */
134
     case OP_WR:                                         /* write */
Lines 137-143 Link Here
137
             PUTP32 (pkt, RW_BCL, 0);                    /* no bytes xfer'd */
137
             PUTP32 (pkt, RW_BCL, 0);                    /* no bytes xfer'd */
138
             if (tq_hbe (uptr, ba + bc - t))             /* post err log */
138
             if (tq_hbe (uptr, ba + bc - t))             /* post err log */
139
                 tq_mot_end (uptr, EF_LOG, ST_HST | SB_HST_NXM, bc);     
139
                 tq_mot_end (uptr, EF_LOG, ST_HST | SB_HST_NXM, bc);     
140
@@ -2233,11 +2233,11 @@ if ((uptr->flags & UNIT_ONL) == 0) {
140
@@ -2240,11 +2240,11 @@ if ((uptr->flags & UNIT_ONL) == 0) {
141
 if (uptr->cpkt) {
141
 if (uptr->cpkt) {
142
     fprintf (st, "Unit %d current ", u);
142
     fprintf (st, "Unit %d current ", u);
143
     tq_show_pkt (st, uptr->cpkt);
143
     tq_show_pkt (st, uptr->cpkt);
Lines 151-157 Link Here
151
         }
151
         }
152
     }
152
     }
153
 else fprintf (st, "Unit %d queues are empty\n", u);
153
 else fprintf (st, "Unit %d queues are empty\n", u);
154
@@ -2262,7 +2262,7 @@ if (val & TQ_SH_RI) {
154
@@ -2269,7 +2269,7 @@ if (val & TQ_SH_RI) {
155
     tq_show_ring (st, &tq_rq);
155
     tq_show_ring (st, &tq_rq);
156
     }
156
     }
157
 if (val & TQ_SH_FR) {
157
 if (val & TQ_SH_FR) {
Lines 160-166 Link Here
160
         for (i = 0; pkt != 0; i++, pkt = tq_pkt[pkt].link) {
160
         for (i = 0; pkt != 0; i++, pkt = tq_pkt[pkt].link) {
161
             if (i == 0)
161
             if (i == 0)
162
                 fprintf (st, "Free queue = %d", pkt);
162
                 fprintf (st, "Free queue = %d", pkt);
163
@@ -2275,11 +2275,11 @@ if (val & TQ_SH_FR) {
163
@@ -2282,11 +2282,11 @@ if (val & TQ_SH_FR) {
164
     else fprintf (st, "Free queue is empty\n");
164
     else fprintf (st, "Free queue is empty\n");
165
     }
165
     }
166
 if (val & TQ_SH_RS) {
166
 if (val & TQ_SH_RS) {
(-)simh/files/patch-PDP11_pdp11__xq.c (-16 / +5 lines)
Lines 1-6 Link Here
1
--- PDP11/pdp11_xq.c.orig	2016-12-01 22:43:42 UTC
1
--- PDP11/pdp11_xq.c.orig	2024-02-15 23:26:02 UTC
2
+++ PDP11/pdp11_xq.c
2
+++ PDP11/pdp11_xq.c
3
@@ -1187,7 +1187,7 @@ t_stat xq_process_setup(CTLR* xq)
3
@@ -1188,7 +1188,7 @@ t_stat xq_process_setup(CTLR* xq)
4
 
4
 
5
     xq->var->setup.multicast = (0 != (len & XQ_SETUP_MC));
5
     xq->var->setup.multicast = (0 != (len & XQ_SETUP_MC));
6
     xq->var->setup.promiscuous = (0 != (len & XQ_SETUP_PM));
6
     xq->var->setup.promiscuous = (0 != (len & XQ_SETUP_PM));
Lines 9-27 Link Here
9
       switch (led) {
9
       switch (led) {
10
         case 1: xq->var->setup.l1 = 0; break;
10
         case 1: xq->var->setup.l1 = 0; break;
11
         case 2: xq->var->setup.l2 = 0; break;
11
         case 2: xq->var->setup.l2 = 0; break;
12
@@ -2073,6 +2073,10 @@ t_stat xq_process_bootrom (CTLR* xq)
12
@@ -2535,7 +2535,7 @@ t_stat xq_tmrsvc(UNIT* uptr)
13
       /* set to next bdl (implicit chain) */
14
       xq->var->rbdl_ba += 12;
15
       break;
16
+
17
+    case XQ_T_DELQA:
18
+    case XQ_T_DELQA_PLUS:
19
+      break;
20
   } /* switch */
21
 
13
 
22
   /* --------------------------- Done, finish up -----------------------------*/
23
@@ -2531,7 +2535,7 @@ t_stat xq_tmrsvc(UNIT* uptr)
24
 
25
   /* has sanity timer expired? if so, reboot */
14
   /* has sanity timer expired? if so, reboot */
26
   if (xq->var->sanity.enabled)
15
   if (xq->var->sanity.enabled)
27
-    if (--xq->var->sanity.timer <= 0)
16
-    if (--xq->var->sanity.timer <= 0)
Lines 29-39 Link Here
29
       if (xq->var->mode != XQ_T_DELQA_PLUS)
18
       if (xq->var->mode != XQ_T_DELQA_PLUS)
30
         return xq_boot_host(xq);
19
         return xq_boot_host(xq);
31
       else { /* DELQA-T Host Inactivity Timer expiration means switch out of DELQA-T mode */
20
       else { /* DELQA-T Host Inactivity Timer expiration means switch out of DELQA-T mode */
32
@@ -2540,6 +2544,7 @@ t_stat xq_tmrsvc(UNIT* uptr)
21
@@ -2544,6 +2544,7 @@ t_stat xq_tmrsvc(UNIT* uptr)
33
         xq->var->iba = xq->var->srr = 0;
22
         xq->var->iba = xq->var->srr = 0;
34
         xq->var->var = XQ_VEC_MS | XQ_VEC_OS;
23
         xq->var->var = XQ_VEC_MS | XQ_VEC_OS;
35
       }
24
       }
36
+  }
25
+    }
37
 
26
 
38
   /* has system id timer expired? if so, do system id */
27
   /* has system id timer expired? if so, do system id */
39
   if (--xq->var->idtmr <= 0) {
28
   if (--xq->var->idtmr <= 0) {
(-)simh/files/simh.1.in (-1 / +1 lines)
Lines 1-4 Link Here
1
.Dd March 26, 2017
1
.Dd February 15, 2024
2
.Dt SIMH 1 CON
2
.Dt SIMH 1 CON
3
.Os
3
.Os
4
.Sh NAME
4
.Sh NAME
(-)simh/files/patch-PDP11_pdp11__defs.h (+11 lines)
Line 0 Link Here
1
--- PDP11/pdp11_defs.h.orig	2024-02-15 22:27:52 UTC
2
+++ PDP11/pdp11_defs.h
3
@@ -913,7 +913,7 @@ void cpu_set_boot (int32 pc);
4
 #define WrMemW(pa,d)    uc15_WrMemW (pa, d)
5
 #define WrMemB(pa, d)   uc15_WrMemB (pa, d)
6
 
7
-uint32 uc15_memsize;
8
+extern uint32 uc15_memsize;
9
 int32 uc15_RdMemW (int32 pa);
10
 int32 uc15_RdMemB (int32 pa);
11
 void uc15_WrMemW (int32 pa, int32 d);
(-)simh/files/patch-sim__rev.h (+10 lines)
Line 0 Link Here
1
--- sim_rev.h.orig	2024-02-15 19:28:48 UTC
2
+++ sim_rev.h
3
@@ -171,6 +171,7 @@ patch   date            module(s) and fix(es)
4
 
5
                         vax_cpu.c
6
                         - added idle test for VMS 5.0/5.1 (Mark Pizzolato)
7
+*/
8
 
9
 /* V3.11 revision history
10
 
(-)simh/files/patch-sim__sock.c (+11 lines)
Line 0 Link Here
1
--- sim_sock.c.orig	2024-02-17 22:11:11 UTC
2
+++ sim_sock.c
3
@@ -1412,7 +1412,7 @@ return sbytes;
4
 
5
 void sim_close_sock (SOCKET sock)
6
 {
7
-shutdown(sock, SD_BOTH);
8
+shutdown(sock, SHUT_RDWR);
9
 closesocket (sock);
10
 }
11
 

Return to bug 277148