From aeb80cec0bb2c86da8d4d757235e2aaedc91728c Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Sun, 19 May 2024 14:04:22 -0400 Subject: [PATCH] IBM360: Added two more DASD controllers. --- IBM360/ibm360_dasd.c | 46 ++++++++++++++++++++++++++++++++++++++++++++ IBM360/ibm360_defs.h | 4 +++- IBM360/ibm360_sys.c | 6 ++++++ 3 files changed, 55 insertions(+), 1 deletion(-) diff --git a/IBM360/ibm360_dasd.c b/IBM360/ibm360_dasd.c index 9788ddc..5879699 100644 --- a/IBM360/ibm360_dasd.c +++ b/IBM360/ibm360_dasd.c @@ -360,6 +360,52 @@ DEVICE ddd_dev = { &ddd_dib, DEV_DISABLE | DEV_DEBUG, 0, dev_debug, NULL, NULL, &dasd_help, NULL, NULL, &dasd_description }; +#if NUM_DEVS_DASD > 4 +UNIT dde_unit[] = { + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x350)}, /* 0 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x351)}, /* 1 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x352)}, /* 2 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x353)}, /* 3 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x354)}, /* 4 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x355)}, /* 5 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x356)}, /* 6 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x357)}, /* 7 */ +}; + +struct dib dde_dib = { 0xF8, NUM_UNITS_MT, dasd_startio, dasd_startcmd, NULL, + dde_unit, dasd_ini}; + +DEVICE dde_dev = { + "DE", dde_unit, NULL, dasd_mod, + NUM_UNITS_DASD, 8, 15, 1, 8, 8, + NULL, NULL, &dasd_reset, &dasd_boot, &dasd_attach, &dasd_detach, + &dde_dib, DEV_DISABLE | DEV_DEBUG, 0, dev_debug, + NULL, NULL, &dasd_help, NULL, NULL, &dasd_description +}; +#if NUM_DEVS_DASD > 5 +UNIT ddf_unit[] = { + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x358)}, /* 0 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x359)}, /* 1 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x35A)}, /* 2 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x35B)}, /* 3 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x35C)}, /* 4 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x35D)}, /* 5 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x35E)}, /* 6 */ + {UDATA(&dasd_srv, UNIT_DASD, 0), 0, UNIT_ADDR(0x35F)}, /* 7 */ +}; + +struct dib ddf_dib = { 0xF8, NUM_UNITS_MT, dasd_startio, dasd_startcmd, NULL, + ddf_unit, dasd_ini}; + +DEVICE ddf_dev = { + "DF", ddf_unit, NULL, dasd_mod, + NUM_UNITS_DASD, 8, 15, 1, 8, 8, + NULL, NULL, &dasd_reset, &dasd_boot, &dasd_attach, &dasd_detach, + &ddf_dib, DEV_DISABLE | DEV_DEBUG, 0, dev_debug, + NULL, NULL, &dasd_help, NULL, NULL, &dasd_description +}; +#endif +#endif #endif #endif #endif diff --git a/IBM360/ibm360_defs.h b/IBM360/ibm360_defs.h index 1416b85..b82eaa5 100644 --- a/IBM360/ibm360_defs.h +++ b/IBM360/ibm360_defs.h @@ -66,7 +66,7 @@ #define NUM_DEVS_LPR 4 #define NUM_DEVS_MT 2 #define NUM_UNITS_MT 8 -#define NUM_DEVS_DASD 4 +#define NUM_DEVS_DASD 6 #define NUM_UNITS_DASD 8 #define NUM_DEVS_COM 1 #define NUM_UNITS_COM 16 @@ -408,6 +408,8 @@ extern DEVICE dda_dev; extern DEVICE ddb_dev; extern DEVICE ddc_dev; extern DEVICE ddd_dev; +extern DEVICE dde_dev; +extern DEVICE ddf_dev; extern DEVICE coml_dev; extern DEVICE com_dev; extern DEVICE scoml_dev; diff --git a/IBM360/ibm360_sys.c b/IBM360/ibm360_sys.c index 422e5db..bc38ce4 100644 --- a/IBM360/ibm360_sys.c +++ b/IBM360/ibm360_sys.c @@ -77,6 +77,12 @@ DEVICE *sim_devices[] = { &ddc_dev, #if NUM_DEVS_DASD > 3 &ddd_dev, +#if NUM_DEVS_DASD > 4 + &dde_dev, +#if NUM_DEVS_DASD > 5 + &ddf_dev, +#endif +#endif #endif #endif #endif