1
0
mirror of https://github.com/simh/simh.git synced 2026-04-29 21:16:46 +00:00

VAXen with SCSI: Allow some cross controller read only drive access

This commit is contained in:
Mark Pizzolato
2020-12-29 11:14:34 -08:00
parent 613625e878
commit 8c42a3436c
5 changed files with 84 additions and 17 deletions

View File

@@ -142,6 +142,7 @@ typedef struct {
t_stat rz_svc (UNIT *uptr);
t_stat rz_isvc (UNIT *uptr);
t_stat rz_reset (DEVICE *dptr);
t_stat rz_attach (UNIT *uptr, CONST char *cptr);
t_stat rz_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr);
t_stat rz_set_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc);
t_stat rz_show_type (FILE *st, UNIT *uptr, int32 val, CONST void *desc);
@@ -250,11 +251,32 @@ MTAB rz_mod[] = {
{ 0 }
};
static const char *drv_types[] = {
"RZ23",
"RZ23L",
"RZ24",
"RZ24L",
"RZ25",
"RZ25L",
"RZ26",
"RZ26L",
"RZ55",
"CDROM",
"RRD40",
"RRD42",
"RRW11",
"CDW900",
"XR1001",
"TZK50",
"TZ30",
"RZUSER"
};
DEVICE rz_dev = {
"RZ", rz_unit, rz_reg, rz_mod,
RZ_NUMDR + 1, DEV_RDX, 31, 1, DEV_RDX, 8,
NULL, NULL, &rz_reset,
NULL, &scsi_attach, &scsi_detach,
NULL, &rz_attach, &scsi_detach,
NULL, DEV_DEBUG | DEV_DISK | DEV_SECTORS | RZ_FLAGS,
0, rz_debug, NULL, NULL, &rz_help, NULL, NULL,
&rz_description
@@ -302,7 +324,7 @@ DEVICE rzb_dev = {
"RZB", rzb_unit, rzb_reg, rz_mod,
RZ_NUMDR + 1, DEV_RDX, 31, 1, DEV_RDX, 8,
NULL, NULL, &rz_reset,
NULL, &scsi_attach, &scsi_detach,
NULL, &rz_attach, &scsi_detach,
&rzb_dib, DEV_DEBUG | DEV_DISK | DEV_SECTORS | RZB_FLAGS,
0, rz_debug, NULL, NULL,
&rz_help, NULL /* help and attach_help routines */
@@ -860,6 +882,11 @@ scsi_help (st, dptr, uptr, flag, cptr);
return SCPE_OK;
}
t_stat rz_attach (UNIT *uptr, CONST char *cptr)
{
return scsi_attach_ex (uptr, cptr, drv_types);
}
const char *rz_description (DEVICE *dptr)
{
return "NCR 5380 SCSI controller";

View File

@@ -111,6 +111,7 @@ DEBTAB rz_debug[] = {
t_stat rz_svc (UNIT *uptr);
t_stat rz_reset (DEVICE *dptr);
t_stat rz_attach (UNIT *uptr, CONST char *cptr);
void rz_sw_reset (void);
t_stat rz_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr);
void rz_cmd (uint32 cmd);
@@ -203,11 +204,32 @@ MTAB rz_mod[] = {
{ 0 }
};
static const char *drv_types[] = {
"RZ23",
"RZ23L",
"RZ24",
"RZ24L",
"RZ25",
"RZ25L",
"RZ26",
"RZ26L",
"RZ55",
"CDROM",
"RRD40",
"RRD42",
"RRW11",
"CDW900",
"XR1001",
"TZK50",
"TZ30",
"RZUSER"
};
DEVICE rz_dev = {
"RZ", rz_unit, rz_reg, rz_mod,
9, DEV_RDX, 8, 1, DEV_RDX, 8,
NULL, NULL, &rz_reset,
NULL, &scsi_attach, &scsi_detach,
NULL, &rz_attach, &scsi_detach,
NULL, DEV_DISABLE | DEV_DEBUG | DEV_DISK | DEV_SECTORS,
0, rz_debug, NULL, NULL, &rz_help, NULL, NULL,
&rz_description
@@ -866,6 +888,11 @@ scsi_help (st, dptr, uptr, flag, cptr);
return SCPE_OK;
}
t_stat rz_attach (UNIT *uptr, CONST char *cptr)
{
return scsi_attach_ex (uptr, cptr, drv_types);
}
const char *rz_description (DEVICE *dptr)
{
return "NCR 53C94 SCSI controller";