From 8aa1d651000de0f17ee2a6e47e260c8de50b3bce Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Sat, 6 Jun 2020 15:16:58 -0400 Subject: [PATCH] IBM360: Added more unit record devices to configuration. --- IBM360/ibm360_cdp.c | 8 +++++++- IBM360/ibm360_cdr.c | 8 +++++++- IBM360/ibm360_defs.h | 8 ++++---- IBM360/ibm360_lpr.c | 8 +++++++- IBM360/ibm360_mt.c | 2 +- doc/ibm360.doc | Bin 102400 -> 105984 bytes 6 files changed, 26 insertions(+), 8 deletions(-) diff --git a/IBM360/ibm360_cdp.c b/IBM360/ibm360_cdp.c index 7d1cec3..bbb7b99 100644 --- a/IBM360/ibm360_cdp.c +++ b/IBM360/ibm360_cdp.c @@ -80,7 +80,13 @@ t_stat cdp_detach(UNIT *); UNIT cdp_unit[] = { {UDATA(cdp_srv, UNIT_CDP, 0), 600, UNIT_ADDR(0x00D) }, /* A */ #if NUM_DEVS_CDP > 1 - {UDATA(cdp_srv, UNIT_CDP, 0), 600, UNIT_ADDR(0x01D)}, /* A */ + {UDATA(cdp_srv, UNIT_CDP | UNIT_DIS, 0), 600, UNIT_ADDR(0x01D)}, /* A */ +#if NUM_DEVS_CDP > 2 + {UDATA(cdp_srv, UNIT_CDP | UNIT_DIS, 0), 600, UNIT_ADDR(0x40D)}, /* A */ +#if NUM_DEVS_CDP > 3 + {UDATA(cdp_srv, UNIT_CDP | UNIT_DIS, 0), 600, UNIT_ADDR(0x41D)}, /* A */ +#endif +#endif #endif }; diff --git a/IBM360/ibm360_cdr.c b/IBM360/ibm360_cdr.c index 15833cc..071be67 100644 --- a/IBM360/ibm360_cdr.c +++ b/IBM360/ibm360_cdr.c @@ -85,7 +85,13 @@ t_stat cdr_detach(UNIT *); UNIT cdr_unit[] = { {UDATA(cdr_srv, UNIT_CDR, 0), 300, UNIT_ADDR(0x0C)}, /* A */ #if NUM_DEVS_CDR > 1 - {UDATA(cdr_srv, UNIT_CDR, 0), 300, UNIT_ADDR(0x1C)}, /* B */ + {UDATA(cdr_srv, UNIT_CDR | UNIT_DIS, 0), 300, UNIT_ADDR(0x1C)}, /* B */ +#if NUM_DEVS_CDR > 2 + {UDATA(cdr_srv, UNIT_CDR | UNIT_DIS, 0), 300, UNIT_ADDR(0x40C)}, /* B */ +#if NUM_DEVS_CDR > 3 + {UDATA(cdr_srv, UNIT_CDR | UNIT_DIS, 0), 300, UNIT_ADDR(0x41C)}, /* B */ +#endif +#endif #endif }; diff --git a/IBM360/ibm360_defs.h b/IBM360/ibm360_defs.h index 8c61cb7..eea80e8 100644 --- a/IBM360/ibm360_defs.h +++ b/IBM360/ibm360_defs.h @@ -60,11 +60,11 @@ #define MAX_MUX 2 /* Define number of supported units for each device type */ -#define NUM_DEVS_CDP 1 -#define NUM_DEVS_CDR 1 +#define NUM_DEVS_CDP 4 +#define NUM_DEVS_CDR 4 #define NUM_DEVS_CON 1 -#define NUM_DEVS_LPR 1 -#define NUM_DEVS_MT 1 +#define NUM_DEVS_LPR 4 +#define NUM_DEVS_MT 2 #define NUM_UNITS_MT 8 #define NUM_DEVS_DASD 4 #define NUM_UNITS_DASD 8 diff --git a/IBM360/ibm360_lpr.c b/IBM360/ibm360_lpr.c index d19885b..6d1e45c 100644 --- a/IBM360/ibm360_lpr.c +++ b/IBM360/ibm360_lpr.c @@ -90,7 +90,13 @@ t_stat lpr_getlpp(FILE *, UNIT *, int32, CONST void *); UNIT lpr_unit[] = { {UDATA(lpr_srv, UNIT_LPR, 55), 300, UNIT_ADDR(0x0E)}, /* A */ #if NUM_DEVS_LPR > 1 - {UDATA(lpr_srv, UNIT_LPR, 55), 300, UNIT_ADDR(0x1E)}, /* B */ + {UDATA(lpr_srv, UNIT_LPR | UNIT_DIS, 55), 300, UNIT_ADDR(0x1E)}, /* B */ +#if NUM_DEVS_LPR > 2 + {UDATA(lpr_srv, UNIT_LPR | UNIT_DIS, 55), 300, UNIT_ADDR(0x40E)}, /* B */ +#if NUM_DEVS_LPR > 3 + {UDATA(lpr_srv, UNIT_LPR | UNIT_DIS, 55), 300, UNIT_ADDR(0x41E)}, /* B */ +#endif +#endif #endif }; diff --git a/IBM360/ibm360_mt.c b/IBM360/ibm360_mt.c index 4e9d157..a065d4d 100644 --- a/IBM360/ibm360_mt.c +++ b/IBM360/ibm360_mt.c @@ -197,7 +197,7 @@ DEVICE mtb_dev = { "MTB", mtb_unit, NULL, mt_mod, NUM_UNITS_MT, 8, 15, 1, 8, 8, NULL, NULL, &mt_reset, &mt_boot, &mt_attach, &mt_detach, - &mtb_dib, DEV_BUF_NUM(1) | DEV_DISABLE | DEV_DEBUG | DEV_TAPE, 0, dev_debug + &mtb_dib, DEV_BUF_NUM(1) | DEV_DISABLE | DEV_DIS | DEV_DEBUG | DEV_TAPE, 0, dev_debug }; #endif diff --git a/doc/ibm360.doc b/doc/ibm360.doc index 2abf58023f4e9953c58ea76a756bf5e34a193117..e4d48c4dd55ed4ce87aa65718a6dbfa22942439c 100644 GIT binary patch delta 10738 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 delta 10315 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 g45gmaMuMN!`