1
0
mirror of https://github.com/simh/simh.git synced 2026-02-27 01:00:07 +00:00

DISK: Add geometry values to SCSI DRVTYP initializer

- Add geometry values to 3b2-700 SCSI drive types
This commit is contained in:
Mark Pizzolato
2023-09-19 03:11:24 -10:00
parent c8b03944a5
commit 926721d7c9
3 changed files with 24 additions and 7 deletions

View File

@@ -140,6 +140,9 @@
#define SD155_PQUAL 0x00
#define SD155_SCSI 1
#define SD155_BLK 512
#define SD155_SECT 35
#define SD155_SURF 9
#define SD155_CYL 964
#define SD155_LBN 303660
#define SD155_TEXT "Set 155MB Disk Type"
#define SD155_MANU "AT&T"
@@ -150,6 +153,9 @@
#define SD300_PQUAL 0x00
#define SD300_SCSI 1
#define SD300_BLK 512
#define SD300_SECT 43
#define SD300_SURF 9
#define SD300_CYL 1515
#define SD300_LBN 585937
#define SD300_TEXT "Set 300MB Disk Type"
#define SD300_MANU "AT&T"
@@ -160,6 +166,9 @@
#define SD327_PQUAL 0x00
#define SD327_SCSI 1
#define SD327_BLK 512
#define SD327_SECT 46
#define SD327_SURF 9
#define SD327_CYL 1547
#define SD327_LBN 640458
#define SD327_TEXT "Set 327MB Disk Type"
#define SD327_MANU "AT&T"
@@ -170,6 +179,9 @@
#define SD630_PQUAL 0x00
#define SD630_SCSI 1
#define SD630_BLK 512
#define SD630_SECT 56
#define SD630_SURF 16
#define SD630_CYL 1447
#define SD630_LBN 1296512
#define SD630_TEXT "Set 630MB Disk Type"
#define SD630_MANU "AT&T"
@@ -188,12 +200,14 @@
#define HA_DISK(d) { DRV_SCSI( \
SCSI_DISK, d##_PQUAL, d##_SCSI, FALSE, d##_BLK, \
d##_SECT, d##_SURF, d##_CYL, \
d##_LBN, d##_MANU, d##_DESC, d##_REV, #d, 0, \
d##_TEXT) \
}
#define HA_TAPE(d) { DRV_SCSI( \
SCSI_TAPE, d##_PQUAL, d##_SCSI, TRUE, d##_BLK, \
0, 0, 0, \
d##_LBN, d##_MANU, d##_DESC, d##_REV, #d, 0, \
d##_TEXT) \
}

View File

@@ -7412,7 +7412,10 @@ for (i = 0; NULL != (dptr = sim_devices[i]); i++) {
if (drive[drives].name_alias != NULL)
++aliases;
/* Validate Geometry parameters */
if (((drive[drives].size & DRVFL_SETSIZE) == 0) &&
if (((drive[drives].flags & DRVFL_SETSIZE) == 0) &&
((DRVFL_GET_IFTYPE(&drive[drives]) != DRVFL_TYPE_SCSI) ||
(drive[drives].devtype != SCSI_TAPE)) &&
((drive[drives].flags & DRVFL_QICTAPE) == 0) &&
(drive[drives].size > (drive[drives].sect * drive[drives].surf * drive[drives].cyl))) {
stat = sim_messagef (SCPE_IERR, "Device %s drive type %s has unreasonable geometry values:\n",
dptr->name, drive[drives].name);
@@ -8044,7 +8047,7 @@ fprintf (st, "%s", uptr->drvtyp->name);
if ((uptr->flags & UNIT_ATT) != 0) {
if (sim_disk_get_mediaid (uptr))
fprintf (st, ", MediaID=(%s)", sim_disk_decode_mediaid (sim_disk_get_mediaid (uptr)));
fprintf (st, "%ssectorspertrack=%u, heads=%u, cylinders=%u, sectorsize=%u", SEP,
fprintf (st, "%ssectors=%u, heads=%u, cylinders=%u, sectorsize=%u", SEP,
uptr->drvtyp->sect, uptr->drvtyp->surf, uptr->drvtyp->cyl, uptr->drvtyp->sectsize);
toks += 3;
if (sim_switches & SWMASK ('D')) {

View File

@@ -215,11 +215,11 @@ struct DRVTYP {
#define DRVFL_QICTAPE (1u << DRVFL_V_QICTAPE) /* drive is a QIC (Quarter Inch Cartridge) tape */
/* DRVTYP Initializer for SCSI disk and/or tape */
#define DRV_SCSI(typ, pq, ver, rmv, bsz, lbn, man, prd, rev, nm, gap, txt) \
46, 9, 1549, lbn, nm, bsz, \
DRVFL_TYPE_SCSI | ((rmv == TRUE) ? DRVFL_RMV|DRVFL_QICTAPE : 0), \
NULL, 0, 0, NULL, txt, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
#define DRV_SCSI(typ, pq, ver, rmv, bsz, sect, surf, cyl, lbn, man, prd, rev, nm, gap, txt) \
sect, surf, cyl, lbn, nm, bsz, \
DRVFL_TYPE_SCSI | ((rmv == TRUE) ? DRVFL_RMV|DRVFL_QICTAPE : 0), \
NULL, 0, 0, NULL, txt, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
typ, pq, ver, man, prd, rev, gap
#define DRV_MINC 512 /* min cap LBNs */