PDP11, VAX scsi systems: Migrate DEV_DISK devices using common autosize code
This commit is contained in:
parent
1196827c2d
commit
49b6e52d48
8 changed files with 43 additions and 50 deletions
|
@ -87,11 +87,11 @@
|
||||||
#define UNIT_V_DTYPE (DKUF_V_UF + 0) /* disk type */
|
#define UNIT_V_DTYPE (DKUF_V_UF + 0) /* disk type */
|
||||||
#define UNIT_W_DTYPE 3 /* 3b disk type */
|
#define UNIT_W_DTYPE 3 /* 3b disk type */
|
||||||
#define UNIT_M_DTYPE 7
|
#define UNIT_M_DTYPE 7
|
||||||
#define UNIT_V_AUTO (UNIT_V_DTYPE + UNIT_W_DTYPE) /* autosize */
|
#define UNIT_V_UTS (UNIT_V_DTYPE + 1) /* Up to speed */
|
||||||
#define UNIT_V_UTS (UNIT_V_AUTO + 1) /* Up to speed */
|
#define UNIT_V_NOAUTO DKUF_V_NOAUTOSIZE /* noautosize */
|
||||||
#define UNIT_UTS (1u << UNIT_V_UTS)
|
#define UNIT_UTS (1u << UNIT_V_UTS)
|
||||||
#define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE)
|
#define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE)
|
||||||
#define UNIT_AUTO (1 << UNIT_V_AUTO)
|
#define UNIT_NOAUTO (1 << UNIT_V_NOAUTO)
|
||||||
#define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & UNIT_M_DTYPE)
|
#define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & UNIT_M_DTYPE)
|
||||||
|
|
||||||
/* Parameters in the unit descriptor */
|
/* Parameters in the unit descriptor */
|
||||||
|
@ -395,21 +395,21 @@ DIB rp_dib = {
|
||||||
};
|
};
|
||||||
|
|
||||||
UNIT rp_unit[] = {
|
UNIT rp_unit[] = {
|
||||||
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
||||||
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
||||||
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
||||||
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
||||||
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
||||||
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
||||||
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
|
||||||
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }
|
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -464,9 +464,9 @@ MTAB rp_mod[] = {
|
||||||
&rp_set_type, NULL, NULL, "Set RP07 Disk Type" },
|
&rp_set_type, NULL, NULL, "Set RP07 Disk Type" },
|
||||||
{ MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL,
|
{ MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL,
|
||||||
NULL, &rp_show_type, NULL, "Display device type" },
|
NULL, &rp_show_type, NULL, "Display device type" },
|
||||||
{ UNIT_AUTO, UNIT_AUTO, "autosize", "AUTOSIZE",
|
{ UNIT_NOAUTO, 0, "autosize", "AUTOSIZE",
|
||||||
NULL, NULL, NULL, "Set type based on file size at attach" },
|
NULL, NULL, NULL, "Set type based on file size at attach" },
|
||||||
{ UNIT_AUTO, 0, "noautosize", "NOAUTOSIZE",
|
{ UNIT_NOAUTO, UNIT_NOAUTO, "noautosize", "NOAUTOSIZE",
|
||||||
NULL, NULL, NULL, "Disable disk autosize on attach" },
|
NULL, NULL, NULL, "Disable disk autosize on attach" },
|
||||||
{ MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}",
|
{ MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}",
|
||||||
&sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Display disk format" },
|
&sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Display disk format" },
|
||||||
|
@ -1152,7 +1152,7 @@ static const char *drives[] = {"RM03", "RP04", "RM80", "RP06", "RM05", "RP07", N
|
||||||
uptr->capac = drv_tab[GET_DTYPE (uptr->flags)].size;
|
uptr->capac = drv_tab[GET_DTYPE (uptr->flags)].size;
|
||||||
r = sim_disk_attach_ex (uptr, cptr, RP_NUMWD * sizeof (d10), sizeof (d10), TRUE, DBG_DSK,
|
r = sim_disk_attach_ex (uptr, cptr, RP_NUMWD * sizeof (d10), sizeof (d10), TRUE, DBG_DSK,
|
||||||
drv_tab[GET_DTYPE (uptr->flags)].name,
|
drv_tab[GET_DTYPE (uptr->flags)].name,
|
||||||
0, 0, (uptr->flags & UNIT_AUTO) ? drives : NULL);
|
0, 0, (uptr->flags & UNIT_NOAUTO) ? NULL : drives);
|
||||||
if (r != SCPE_OK)
|
if (r != SCPE_OK)
|
||||||
return r;
|
return r;
|
||||||
sim_cancel (uptr);
|
sim_cancel (uptr);
|
||||||
|
|
|
@ -99,14 +99,13 @@ static struct drvtyp drv_tab[] = {
|
||||||
/* Flags in the unit flags word */
|
/* Flags in the unit flags word */
|
||||||
|
|
||||||
#define UNIT_V_DTYPE (DKUF_V_UF + 0) /* disk type */
|
#define UNIT_V_DTYPE (DKUF_V_UF + 0) /* disk type */
|
||||||
#define UNIT_V_AUTO (UNIT_V_DTYPE + 1) /* autosize */
|
#define UNIT_V_DUMMY (UNIT_V_DTYPE + 1) /* dummy flag */
|
||||||
#define UNIT_V_DUMMY (UNIT_V_AUTO + 1) /* dummy flag */
|
|
||||||
#define UNIT_DTYPE (1 << UNIT_V_DTYPE)
|
#define UNIT_DTYPE (1 << UNIT_V_DTYPE)
|
||||||
#define UNIT_RK06 (0 << UNIT_V_DTYPE)
|
#define UNIT_RK06 (0 << UNIT_V_DTYPE)
|
||||||
#define UNIT_RK07 (1 << UNIT_V_DTYPE)
|
#define UNIT_RK07 (1 << UNIT_V_DTYPE)
|
||||||
#define UNIT_AUTO (1 << UNIT_V_AUTO)
|
|
||||||
#define UNIT_DUMMY (1 << UNIT_V_DUMMY)
|
#define UNIT_DUMMY (1 << UNIT_V_DUMMY)
|
||||||
#define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & 1)
|
#define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & 1)
|
||||||
|
#define UNIT_NOAUTO DKUF_NOAUTOSIZE
|
||||||
|
|
||||||
/* Parameters in the unit descriptor */
|
/* Parameters in the unit descriptor */
|
||||||
|
|
||||||
|
@ -603,21 +602,21 @@ DIB hk_dib = {
|
||||||
};
|
};
|
||||||
|
|
||||||
UNIT hk_unit[] = {
|
UNIT hk_unit[] = {
|
||||||
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
||||||
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
||||||
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
||||||
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
||||||
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
||||||
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
||||||
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
|
||||||
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+
|
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
||||||
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }
|
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -673,9 +672,9 @@ MTAB hk_mod[] = {
|
||||||
&hk_set_type, NULL, NULL, "Set RK07 Disk Type" },
|
&hk_set_type, NULL, NULL, "Set RK07 Disk Type" },
|
||||||
{ MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL,
|
{ MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL,
|
||||||
NULL, &hk_show_type, NULL, "Display device type" },
|
NULL, &hk_show_type, NULL, "Display device type" },
|
||||||
{ UNIT_AUTO, UNIT_AUTO, "autosize", "AUTOSIZE",
|
{ UNIT_NOAUTO, 0, "autosize", "AUTOSIZE",
|
||||||
NULL, NULL, NULL, "Set type based on file size at attach" },
|
NULL, NULL, NULL, "Set type based on file size at attach" },
|
||||||
{ UNIT_AUTO, 0, "noautosize", "NOAUTOSIZE",
|
{ UNIT_NOAUTO, UNIT_NOAUTO, "noautosize", "NOAUTOSIZE",
|
||||||
NULL, NULL, NULL, "Disable disk autosize on attach" },
|
NULL, NULL, NULL, "Disable disk autosize on attach" },
|
||||||
{ MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}",
|
{ MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}",
|
||||||
&sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Set/Display disk format" },
|
&sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Set/Display disk format" },
|
||||||
|
@ -1510,7 +1509,7 @@ uptr->capac = HK_SIZE (uptr);
|
||||||
r = sim_disk_attach_ex (uptr, cptr, HK_NUMWD * sizeof (uint16),
|
r = sim_disk_attach_ex (uptr, cptr, HK_NUMWD * sizeof (uint16),
|
||||||
sizeof (uint16), TRUE, 0,
|
sizeof (uint16), TRUE, 0,
|
||||||
(uptr->capac == RK06_SIZE) ? "RK06" : "RK07", HK_NUMSC, 0,
|
(uptr->capac == RK06_SIZE) ? "RK06" : "RK07", HK_NUMSC, 0,
|
||||||
(uptr->flags & UNIT_AUTO) ? drives : NULL);
|
(uptr->flags & UNIT_NOAUTO) ? NULL : drives);
|
||||||
if (r != SCPE_OK) /* error? */
|
if (r != SCPE_OK) /* error? */
|
||||||
return r;
|
return r;
|
||||||
drv = (uint32) (uptr - hk_dev.units); /* get drv number */
|
drv = (uint32) (uptr - hk_dev.units); /* get drv number */
|
||||||
|
|
|
@ -129,10 +129,9 @@ static struct drvtyp drv_tab[] = {
|
||||||
/* Flags in the unit flags word */
|
/* Flags in the unit flags word */
|
||||||
|
|
||||||
#define UNIT_V_SWLK (DKUF_V_UF + 0) /* swre write lock */
|
#define UNIT_V_SWLK (DKUF_V_UF + 0) /* swre write lock */
|
||||||
#define UNIT_V_NOAUTO (UNIT_V_SWLK + 1) /* autosize */
|
|
||||||
#define UNIT_HWLK UNIT_WPRT
|
#define UNIT_HWLK UNIT_WPRT
|
||||||
#define UNIT_SWLK (1u << UNIT_V_SWLK)
|
#define UNIT_SWLK (1u << UNIT_V_SWLK)
|
||||||
#define UNIT_NOAUTO (1u << UNIT_V_NOAUTO)
|
#define UNIT_NOAUTO DKUF_NOAUTOSIZE /* autosize disabled */
|
||||||
#define GET_DTYPE(x) (0)
|
#define GET_DTYPE(x) (0)
|
||||||
|
|
||||||
/* Parameters in the unit descriptor */
|
/* Parameters in the unit descriptor */
|
||||||
|
|
|
@ -133,15 +133,14 @@ static struct drvtyp drv_tab[] = {
|
||||||
/* Flags in the unit flags word */
|
/* Flags in the unit flags word */
|
||||||
|
|
||||||
#define UNIT_V_RL02 (DKUF_V_UF + 0) /* RL01 vs RL02 */
|
#define UNIT_V_RL02 (DKUF_V_UF + 0) /* RL01 vs RL02 */
|
||||||
#define UNIT_V_AUTO (UNIT_V_RL02 + 1) /* autosize enable */
|
#define UNIT_V_DUMMY (UNIT_V_RL02 + 1) /* dummy flag, for SET BADBLOCK */
|
||||||
#define UNIT_V_DUMMY (UNIT_V_AUTO + 1) /* dummy flag, for SET BADBLOCK */
|
|
||||||
#define UNIT_V_OFFL (UNIT_V_DUMMY + 1) /* unit off line */
|
#define UNIT_V_OFFL (UNIT_V_DUMMY + 1) /* unit off line */
|
||||||
#define UNIT_V_BRUSH (UNIT_V_OFFL + 1) /* unit has brushes */
|
#define UNIT_V_BRUSH (UNIT_V_OFFL + 1) /* unit has brushes */
|
||||||
#define UNIT_BRUSH (1u << UNIT_V_BRUSH)
|
#define UNIT_BRUSH (1u << UNIT_V_BRUSH)
|
||||||
#define UNIT_OFFL (1u << UNIT_V_OFFL)
|
#define UNIT_OFFL (1u << UNIT_V_OFFL)
|
||||||
#define UNIT_DUMMY (1u << UNIT_V_DUMMY)
|
#define UNIT_DUMMY (1u << UNIT_V_DUMMY)
|
||||||
#define UNIT_RL02 (1u << UNIT_V_RL02)
|
#define UNIT_RL02 (1u << UNIT_V_RL02)
|
||||||
#define UNIT_AUTO (1u << UNIT_V_AUTO)
|
#define UNIT_NOAUTO DKUF_NOAUTOSIZE /* autosize disable */
|
||||||
#define GET_DTYPE(x) (((x) >> UNIT_V_RL02) & 1)
|
#define GET_DTYPE(x) (((x) >> UNIT_V_RL02) & 1)
|
||||||
|
|
||||||
/* Parameters in the unit descriptor */
|
/* Parameters in the unit descriptor */
|
||||||
|
@ -313,14 +312,10 @@ static DIB rl_dib = {
|
||||||
1, IVCL (RL), VEC_AUTO, { NULL }, IOLN_RL };
|
1, IVCL (RL), VEC_AUTO, { NULL }, IOLN_RL };
|
||||||
|
|
||||||
static UNIT rl_unit[] = {
|
static UNIT rl_unit[] = {
|
||||||
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_ROABLE, RL01_SIZE) },
|
||||||
UNIT_ROABLE+UNIT_AUTO, RL01_SIZE) },
|
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_ROABLE, RL01_SIZE) },
|
||||||
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_ROABLE, RL01_SIZE) },
|
||||||
UNIT_ROABLE+UNIT_AUTO, RL01_SIZE) },
|
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_ROABLE, RL01_SIZE) }
|
||||||
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
|
||||||
UNIT_ROABLE+UNIT_AUTO, RL01_SIZE) },
|
|
||||||
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
|
|
||||||
UNIT_ROABLE+UNIT_AUTO, RL01_SIZE) }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const REG rl_reg[] = {
|
static const REG rl_reg[] = {
|
||||||
|
@ -383,9 +378,9 @@ static const MTAB rl_mod[] = {
|
||||||
&rl_set_type, NULL, NULL, "Set RL02 Disk Type" },
|
&rl_set_type, NULL, NULL, "Set RL02 Disk Type" },
|
||||||
{ MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL,
|
{ MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL,
|
||||||
NULL, &rl_show_type, NULL, "Display device type" },
|
NULL, &rl_show_type, NULL, "Display device type" },
|
||||||
{ UNIT_AUTO, UNIT_AUTO, "autosize", "AUTOSIZE",
|
{ UNIT_NOAUTO, 0, "autosize", "AUTOSIZE",
|
||||||
NULL, NULL, NULL, "Set type based on file size at attach" },
|
NULL, NULL, NULL, "Set type based on file size at attach" },
|
||||||
{ UNIT_AUTO, 0, "noautosize", "NOAUTOSIZE",
|
{ UNIT_NOAUTO, UNIT_NOAUTO, "noautosize", "NOAUTOSIZE",
|
||||||
NULL, NULL, NULL, "Disable disk autosize on attach" },
|
NULL, NULL, NULL, "Disable disk autosize on attach" },
|
||||||
{ MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}",
|
{ MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}",
|
||||||
&sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Set/Display disk format" },
|
&sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Set/Display disk format" },
|
||||||
|
@ -1033,7 +1028,7 @@ uptr->capac = (uptr->flags & UNIT_RL02)? RL02_SIZE: RL01_SIZE;
|
||||||
r = sim_disk_attach_ex (uptr, cptr, RL_NUMWD * sizeof (uint16),
|
r = sim_disk_attach_ex (uptr, cptr, RL_NUMWD * sizeof (uint16),
|
||||||
sizeof (uint16), TRUE, 0,
|
sizeof (uint16), TRUE, 0,
|
||||||
(uptr->capac == RL02_SIZE) ? "RL02" : "RL01", RL_NUMSC, 0,
|
(uptr->capac == RL02_SIZE) ? "RL02" : "RL01", RL_NUMSC, 0,
|
||||||
(uptr->flags & UNIT_AUTO) ? drives : NULL);
|
(uptr->flags & UNIT_NOAUTO) ? NULL : drives);
|
||||||
if (r != SCPE_OK) /* error? */
|
if (r != SCPE_OK) /* error? */
|
||||||
return r;
|
return r;
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -160,10 +160,9 @@ extern int32 MMR2;
|
||||||
#define UNIT_V_DTYPE (UNIT_V_ATP + 1) /* drive type */
|
#define UNIT_V_DTYPE (UNIT_V_ATP + 1) /* drive type */
|
||||||
#define UNIT_W_DTYPE 5 /* 5b drive type encode */
|
#define UNIT_W_DTYPE 5 /* 5b drive type encode */
|
||||||
#define UNIT_M_DTYPE ((1u << UNIT_W_DTYPE) - 1)
|
#define UNIT_M_DTYPE ((1u << UNIT_W_DTYPE) - 1)
|
||||||
#define UNIT_V_NOAUTO (UNIT_V_DTYPE + UNIT_W_DTYPE) /* noautosize */
|
|
||||||
#define UNIT_ONL (1 << UNIT_V_ONL)
|
#define UNIT_ONL (1 << UNIT_V_ONL)
|
||||||
#define UNIT_ATP (1 << UNIT_V_ATP)
|
#define UNIT_ATP (1 << UNIT_V_ATP)
|
||||||
#define UNIT_NOAUTO (1 << UNIT_V_NOAUTO)
|
#define UNIT_NOAUTO DKUF_NOAUTOSIZE /* noautosize */
|
||||||
#define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE)
|
#define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE)
|
||||||
#define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & UNIT_M_DTYPE)
|
#define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & UNIT_M_DTYPE)
|
||||||
#define cpkt us9 /* current packet */
|
#define cpkt us9 /* current packet */
|
||||||
|
|
|
@ -229,9 +229,8 @@
|
||||||
#define UNIT_V_DTYPE (DKUF_V_UF + 0) /* drive type */
|
#define UNIT_V_DTYPE (DKUF_V_UF + 0) /* drive type */
|
||||||
#define UNIT_W_DTYPE 3 /* 3b drive type encode */
|
#define UNIT_W_DTYPE 3 /* 3b drive type encode */
|
||||||
#define UNIT_M_DTYPE ((1u << UNIT_W_DTYPE) - 1)
|
#define UNIT_M_DTYPE ((1u << UNIT_W_DTYPE) - 1)
|
||||||
#define UNIT_V_NOAUTO (UNIT_V_DTYPE + UNIT_W_DTYPE) /* noautosize */
|
|
||||||
#define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE)
|
#define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE)
|
||||||
#define UNIT_NOAUTO (1 << UNIT_V_NOAUTO)
|
#define UNIT_NOAUTO DKUF_NOAUTOSIZE
|
||||||
|
|
||||||
struct drvtyp {
|
struct drvtyp {
|
||||||
int32 sect; /* sectors */
|
int32 sect; /* sectors */
|
||||||
|
|
|
@ -48,10 +48,12 @@ typedef uint32 t_lba; /* disk logical block ad
|
||||||
#define DKUF_F_STD 1 /* SIMH format */
|
#define DKUF_F_STD 1 /* SIMH format */
|
||||||
#define DKUF_F_RAW 2 /* Raw Physical Disk Access */
|
#define DKUF_F_RAW 2 /* Raw Physical Disk Access */
|
||||||
#define DKUF_F_VHD 3 /* VHD format */
|
#define DKUF_F_VHD 3 /* VHD format */
|
||||||
#define DKUF_V_UF (DKUF_V_FMT + DKUF_W_FMT)
|
#define DKUF_V_NOAUTOSIZE (DKUF_V_FMT + DKUF_W_FMT) /* Don't Autosize disk option */
|
||||||
|
#define DKUF_V_UF (DKUF_V_NOAUTOSIZE + 1)
|
||||||
#define DKUF_WLK UNIT_WLK
|
#define DKUF_WLK UNIT_WLK
|
||||||
#define DKUF_FMT (DKUF_M_FMT << DKUF_V_FMT)
|
#define DKUF_FMT (DKUF_M_FMT << DKUF_V_FMT)
|
||||||
#define DKUF_WRP (DKUF_WLK | UNIT_RO)
|
#define DKUF_WRP (DKUF_WLK | UNIT_RO)
|
||||||
|
#define DKUF_NOAUTOSIZE (1 << DKUF_V_NOAUTOSIZE)
|
||||||
|
|
||||||
#define DK_F_STD (DKUF_F_STD << DKUF_V_FMT)
|
#define DK_F_STD (DKUF_F_STD << DKUF_V_FMT)
|
||||||
#define DK_F_RAW (DKUF_F_RAW << DKUF_V_FMT)
|
#define DK_F_RAW (DKUF_F_RAW << DKUF_V_FMT)
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
#define SCSI_V_NOAUTO ((DKUF_V_UF > MTUF_V_UF) ? DKUF_V_UF : MTUF_V_UF)/* noautosize */
|
#define SCSI_V_NOAUTO ((DKUF_V_UF > MTUF_V_UF) ? DKUF_V_UF : MTUF_V_UF)/* noautosize */
|
||||||
#define SCSI_V_UF (SCSI_V_NOAUTO + 1)
|
#define SCSI_V_UF (SCSI_V_NOAUTO + 1)
|
||||||
#define SCSI_WLK (UNIT_WLK|UNIT_RO) /* hwre write lock */
|
#define SCSI_WLK (UNIT_WLK|UNIT_RO) /* hwre write lock */
|
||||||
#define SCSI_NOAUTO (1 << SCSI_V_NOAUTO)
|
#define SCSI_NOAUTO DKUF_NOAUTOSIZE
|
||||||
|
|
||||||
|
|
||||||
struct scsi_dev_t {
|
struct scsi_dev_t {
|
||||||
|
|
Loading…
Add table
Reference in a new issue