mirror of
https://github.com/simh/simh.git
synced 2026-01-25 19:56:25 +00:00
ALL: Standardize writelock behavior adding global UNIT_WLK & UNIT_WPRT
Historically this functionality was reimplemented within each DEVICE simulator often with slightly different implementations and inconsistencies. Solving this globally within SCP required changes in many places, but should henceforth be reasonably managed. As discussed in #1034
This commit is contained in:
@@ -31,9 +31,6 @@
|
||||
#include "sigma_io_defs.h"
|
||||
#include <math.h>
|
||||
|
||||
#define UNIT_V_HWLK (UNIT_V_UF + 0) /* hwre write lock */
|
||||
#define UNIT_HWLK (1u << UNIT_V_HWLK)
|
||||
#define UNIT_WPRT (UNIT_HWLK|UNIT_RO) /* write prot */
|
||||
#define UTRK u3 /* current track */
|
||||
|
||||
/* Constants */
|
||||
@@ -130,8 +127,10 @@ REG dk_reg[] = {
|
||||
};
|
||||
|
||||
MTAB dk_mod[] = {
|
||||
{ UNIT_HWLK, 0, "write enabled", "WRITEENABLED", NULL },
|
||||
{ UNIT_HWLK, UNIT_HWLK, "write locked", "LOCKED", NULL },
|
||||
{ MTAB_XTD|MTAB_VUN, 0, "write enabled", "WRITEENABLED",
|
||||
&set_writelock, &show_writelock, NULL, "Write enable drive" },
|
||||
{ MTAB_XTD|MTAB_VUN, 1, NULL, "LOCKED",
|
||||
&set_writelock, NULL, NULL, "Write enable drive" },
|
||||
{ MTAB_XTD|MTAB_VDV, 0, "CHAN", "CHAN",
|
||||
&io_set_dvc, &io_show_dvc, NULL },
|
||||
{ MTAB_XTD|MTAB_VDV, 0, "DVA", "DVA",
|
||||
|
||||
@@ -45,9 +45,6 @@
|
||||
#include "sigma_io_defs.h"
|
||||
#include <math.h>
|
||||
|
||||
#define UNIT_V_HWLK (UNIT_V_UF + 0) /* hwre write lock */
|
||||
#define UNIT_HWLK (1u << UNIT_V_HWLK)
|
||||
#define UNIT_WPRT (UNIT_HWLK|UNIT_RO) /* write prot */
|
||||
#define UNIT_V_AUTO (UNIT_V_UF + 1) /* autosize */
|
||||
#define UNIT_AUTO (1u << UNIT_V_AUTO)
|
||||
#define UNIT_V_DTYPE (UNIT_V_UF + 2) /* drive type */
|
||||
@@ -517,8 +514,10 @@ MTAB dp_mod[] = {
|
||||
NULL, "3282", &dp_set_size },
|
||||
{ (UNIT_AUTO+UNIT_DTYPE), (DP_3283 << UNIT_V_DTYPE),
|
||||
NULL, "3283", &dp_set_size },
|
||||
{ UNIT_HWLK, 0, "write enabled", "WRITEENABLED", NULL },
|
||||
{ UNIT_HWLK, UNIT_HWLK, "write locked", "LOCKED", NULL },
|
||||
{ MTAB_XTD|MTAB_VUN, 0, "write enabled", "WRITEENABLED",
|
||||
&set_writelock, &show_writelock, NULL, "Write enable disk drive" },
|
||||
{ MTAB_XTD|MTAB_VUN, 1, NULL, "LOCKED",
|
||||
&set_writelock, NULL, NULL, "Write enable disk drive" },
|
||||
{ MTAB_XTD|MTAB_VDV, 0, "CHAN", "CHAN",
|
||||
&io_set_dvc, &io_show_dvc, NULL },
|
||||
{ MTAB_XTD|MTAB_VDV, 0, "DVA", "DVA",
|
||||
|
||||
@@ -189,8 +189,10 @@ REG mt_reg[] = {
|
||||
};
|
||||
|
||||
MTAB mt_mod[] = {
|
||||
{ MTUF_WLK, 0, "write enabled", "WRITEENABLED", NULL },
|
||||
{ MTUF_WLK, MTUF_WLK, "write locked", "LOCKED", NULL },
|
||||
{ MTAB_XTD|MTAB_VUN, 0, "write enabled", "WRITEENABLED",
|
||||
&set_writelock, &show_writelock, NULL, "Write enable tape drive" },
|
||||
{ MTAB_XTD|MTAB_VUN, 1, NULL, "LOCKED",
|
||||
&set_writelock, NULL, NULL, "Write lock tape drive" },
|
||||
{ MTAB_XTD|MTAB_VUN, 0, "FORMAT", "FORMAT",
|
||||
&sim_tape_set_fmt, &sim_tape_show_fmt, NULL },
|
||||
{ MTAB_XTD|MTAB_VUN, 0, "CAPACITY", "CAPACITY",
|
||||
|
||||
Reference in New Issue
Block a user