@@ -122,6 +122,12 @@ extern int32 MMR2;
122
122
#error "Assertion failure: RQ_NUMCT exceeds 4"
123
123
#endif
124
124
125
+ #if defined (VAX_610 )
126
+ #define MICROVAX1 1
127
+ #else
128
+ #define MICROVAX1 0
129
+ #endif
130
+
125
131
#include "pdp11_uqssp.h"
126
132
#include "pdp11_mscp.h"
127
133
#include "sim_disk.h"
@@ -137,13 +143,7 @@ extern int32 MMR2;
137
143
#define RQ_SH_UN 010 /* show unit q's */
138
144
#define RQ_SH_ALL 017 /* show all */
139
145
140
- #define RQ_CLASS 1 /* RQ class */
141
- #define RQU_UQPM 6 /* UB port model */
142
- #define RQQ_UQPM 19 /* QB port model */
143
- #define RQ_UQPM (UNIBUS? RQU_UQPM: RQQ_UQPM)
144
- #define RQU_MODEL 6 /* UB MSCP ctrl model (UDA50A) */
145
- #define RQQ_MODEL 19 /* QB MSCP ctrl model (RQDX3) */
146
- #define RQ_MODEL (UNIBUS? RQU_MODEL: RQQ_MODEL)
146
+ #define RQ_CLASS 1 /* RQ class: Mass storage controllers */
147
147
#define RQ_HVER 1 /* hardware version */
148
148
#define RQ_SVER 3 /* software version */
149
149
#define RQ_DHTMO 60 /* def host timeout */
@@ -753,31 +753,35 @@ x RA73 70(+1) 21 2667+ 21 1 ? 3920490
753
753
754
754
// AFAIK the UNIBUS KLESI and QBUS KLESI used the same controller type ...
755
755
#define KLESI_CTYPE 1 // RC25 controller (UNIBUS and QBUS both)
756
- #define KLESI_UQPM 1
757
- #define KLESI_MODEL 1
756
+ #define KLESI_UQPM 1 // Mass_Storage_Control_Protocol_Ver_2.4.0_Jun92.txt Appendix C:
757
+ #define KLESI_MODEL 1 // 1 | HSC50; 3 | RC25 integrated controller
758
758
759
759
#define RUX50_CTYPE 2 // UNIBUS RX50-only controller
760
- #define RUX50_UQPM 2
761
- #define RUX50_MODEL 2
760
+ #define RUX50_UQPM 10
761
+ #define RUX50_MODEL 10
762
762
763
763
#define UDA50_CTYPE 3 // UNIBUS SDI (RAxx) controller
764
- #define UDA50_UQPM 6
764
+ #define UDA50_UQPM 6 // really type of UDA50A; UDA50 is 2
765
765
#define UDA50_MODEL 6
766
766
767
- #define RQDX3_CTYPE 4 // QBUS RX50/RDxx controller
767
+ #define RQDX1_CTYPE 4 // QBUS RX50/RDxx controller,
768
+ #define RQDX1_UQPM 7 // first version; RQDX2 has the same id
769
+ #define RQDX1_MODEL 7
770
+
771
+ #define RQDX3_CTYPE 5 // QBUS RX50/RDxx controller
768
772
#define RQDX3_UQPM 19
769
773
#define RQDX3_MODEL 19
770
774
771
- #define KDA50_CTYPE 5 // QBUS SDI (RAxx) controller
772
- #define KDA50_UQPM 13
775
+ #define KDA50_CTYPE 6 // QBUS SDI (RAxx) controller
776
+ #define KDA50_UQPM 13 // KDA50-Q
773
777
#define KDA50_MODEL 13
774
778
775
- #define KRQ50_CTYPE 6 // QBUS RRD40/50 CDROM controller
779
+ #define KRQ50_CTYPE 7 // QBUS RRD40/50 CDROM controller
776
780
#define KRQ50_UQPM 16
777
781
#define KRQ50_MODEL 16
778
782
779
- #define KRU50_CTYPE 7 // UNIBUS RRD40/50 CDROM controller
780
- #define KRU50_UQPM 26
783
+ #define KRU50_CTYPE 8 // UNIBUS RRD40/50 CDROM controller
784
+ #define KRU50_UQPM 26 // unassigned in appendix C
781
785
#define KRU50_MODEL 26
782
786
783
787
struct drvtyp {
@@ -884,6 +888,7 @@ static struct ctlrtyp ctlr_tab[] = {
884
888
RQ_CTLR (KLESI ),
885
889
RQ_CTLR (RUX50 ),
886
890
RQ_CTLR (UDA50 ),
891
+ RQ_CTLR (RQDX1 ),
887
892
RQ_CTLR (RQDX3 ),
888
893
RQ_CTLR (KDA50 ),
889
894
RQ_CTLR (KRQ50 ),
@@ -1120,10 +1125,12 @@ MTAB rq_mod[] = {
1120
1125
NULL , & rq_show_ctrl , NULL , "Display all unit queues" },
1121
1126
{ MTAB_XTD |MTAB_VDV |MTAB_NMO , RQ_SH_ALL , "ALL" , NULL ,
1122
1127
NULL , & rq_show_ctrl , NULL , "Display complete controller state" },
1128
+ { MTAB_XTD |MTAB_VDV , RQDX1_CTYPE , NULL , "RQDX1" ,
1129
+ & rq_set_ctype , NULL , NULL , "Set RQDX1/2 (QBUS RX50/RDnn) Controller Type" },
1123
1130
{ MTAB_XTD |MTAB_VDV , RQDX3_CTYPE , NULL , "RQDX3" ,
1124
1131
& rq_set_ctype , NULL , NULL , "Set RQDX3 (QBUS RX50/RDnn) Controller Type" },
1125
1132
{ MTAB_XTD |MTAB_VDV , UDA50_CTYPE , NULL , "UDA50" ,
1126
- & rq_set_ctype , NULL , NULL , "Set UDA50 (UNIBUS SDI RAnn) Controller Type" },
1133
+ & rq_set_ctype , NULL , NULL , "Set UDA50A (UNIBUS SDI RAnn) Controller Type" },
1127
1134
{ MTAB_XTD |MTAB_VDV , KDA50_CTYPE , NULL , "KDA50" ,
1128
1135
& rq_set_ctype , NULL , NULL , "Set KDA50 (QBUS SDI RAnn) Controller Type" },
1129
1136
{ MTAB_XTD |MTAB_VDV , KRQ50_CTYPE , NULL , "KRQ50" ,
@@ -3100,7 +3107,8 @@ if (cidx < 0) /* not found??? */
3100
3107
cp = rq_ctxmap [cidx ]; /* get context */
3101
3108
cp -> cnum = cidx ; /* init index */
3102
3109
if (cp -> ctype == DEFAULT_CTYPE )
3103
- cp -> ctype = (UNIBUS ? UDA50_CTYPE : RQDX3_CTYPE );
3110
+ cp -> ctype = (UNIBUS ? UDA50_CTYPE :
3111
+ MICROVAX1 ? RQDX1_CTYPE : RQDX3_CTYPE );
3104
3112
3105
3113
if (!plugs_inited ) {
3106
3114
#if !defined (VM_VAX )
@@ -3419,9 +3427,9 @@ fprintf (st, "UDA50 MSCP Disk Controller (%s)\n\n", dptr->name);
3419
3427
fprintf (st , "The simulator implements four MSCP disk controllers, RQ, RQB, RQC, RQD.\n" );
3420
3428
fprintf (st , "Initially, RQB, RQC, and RQD are disabled. Each RQ controller simulates\n" );
3421
3429
fprintf (st , "an MSCP disk controller with four drives. The MSCP controller type can be\n" );
3422
- fprintf (st , "specified as one of RQDX3, UDA50, KDA50, KRQ50, KLESI or RUX50. RQ options \n" );
3423
- fprintf (st , "include the ability to set units write enabled or write locked, and to set \n" );
3424
- fprintf (st , "the drive type to one of many disk types:\n" );
3430
+ fprintf (st , "specified as one of RQDX1, RQDX3, UDA50, KDA50, KRQ50, KLESI or RUX50.\n" );
3431
+ fprintf (st , "RQ options include the ability to set units write enabled or write locked,\n" );
3432
+ fprintf (st , "and to set the drive type to one of many disk types:\n" );
3425
3433
fprint_set_help (st , dptr );
3426
3434
fprintf (st , "set RQn RAUSER{=n} Set disk type to RA82 with n MB's\n" );
3427
3435
fprintf (st , " (1MB is 1000000 bytes)\n" );
0 commit comments