diff --git a/README.md b/README.md index fc8864f0..c98975c5 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ when connected to serial ports). DHU11 (device VH) on Unibus systems now has 16 ports per multiplexer. MicroVAX 3900 and MicroVAX II have SET CPU AUTOBOOT option + MicroVAX 3900 has a SET CPU MODEL=(MicroVAX|VAXServer) command to change between system types #### Terminal Multiplexer additions Added support for TCP connections using IPv4 and/or IPv6. diff --git a/VAX/vax_sysdev.c b/VAX/vax_sysdev.c index 86353b26..d8b68bd2 100644 --- a/VAX/vax_sysdev.c +++ b/VAX/vax_sysdev.c @@ -1623,17 +1623,12 @@ if (*rom == 0) { /* no boot? */ r = cpu_load_bootcode (BOOT_CODE_FILENAME, BOOT_CODE_ARRAY, BOOT_CODE_SIZE, TRUE, 0); if (r != SCPE_OK) return r; + rom_wr_B (ROMBASE+4, sys_model ? 1 : 2); /* Set Magic Byte to determine system type */ } sysd_powerup (); return SCPE_OK; } -t_stat cpu_print_model (FILE *st) -{ -fprintf (st, "MicroVAX 3900 (KA655)"); -return SCPE_OK; -} - t_stat sysd_set_halt (UNIT *uptr, int32 val, char *cptr, void *desc) { ka_hltenab = val; @@ -1698,6 +1693,24 @@ char *sysd_description (DEVICE *dptr) { return "system devices"; } +t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +{ +if ((cptr == NULL) || (!*cptr)) + return SCPE_ARG; +if (MATCH_CMD(cptr, "VAXSERVER") == 0) + sys_model = 0; +else if (MATCH_CMD(cptr, "MICROVAX") == 0) + sys_model = 1; +else + return SCPE_ARG; +return SCPE_OK; +} + +t_stat cpu_print_model (FILE *st) +{ +fprintf (st, "%s 3900 (KA655)", (sys_model ? "MicroVAX" : "VAXServer")); +return SCPE_OK; +} t_stat cpu_model_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) { diff --git a/VAX/vax_syslist.c b/VAX/vax_syslist.c index fed69143..df1f9d38 100644 --- a/VAX/vax_syslist.c +++ b/VAX/vax_syslist.c @@ -30,7 +30,7 @@ #include "vax_defs.h" -char sim_name[] = "VAX"; +char sim_name[] = "MicroVAX 3900"; extern DEVICE cpu_dev; extern DEVICE tlb_dev; diff --git a/VAX/vaxmod_defs.h b/VAX/vaxmod_defs.h index 1d03939a..a037e9ae 100644 --- a/VAX/vaxmod_defs.h +++ b/VAX/vaxmod_defs.h @@ -126,12 +126,12 @@ { UNIT_MSIZE, (1u << 27), NULL, "128M", &cpu_set_size }, \ { UNIT_MSIZE, (1u << 28), NULL, "256M", &cpu_set_size }, \ { UNIT_MSIZE, (1u << 29), NULL, "512M", &cpu_set_size } -#define CPU_MODEL_MODIFIERS \ - { MTAB_XTD|MTAB_VDV, 0, "MODEL", NULL, \ - NULL, &cpu_show_model }, \ - { MTAB_XTD|MTAB_VDV, 0, "AUTOBOOT", "AUTOBOOT", \ - &sysd_set_halt, &sysd_show_halt }, \ - { MTAB_XTD|MTAB_VDV|MTAB_NMO, 1, "NOAUTOBOOT", "NOAUTOBOOT",\ +#define CPU_MODEL_MODIFIERS \ + { MTAB_XTD|MTAB_VDV, 0, "MODEL", "MODEL={VAXServer|MicroVAX}", \ + &cpu_set_model, &cpu_show_model }, \ + { MTAB_XTD|MTAB_VDV, 0, "AUTOBOOT", "AUTOBOOT", \ + &sysd_set_halt, &sysd_show_halt }, \ + { MTAB_XTD|MTAB_VDV|MTAB_NMO, 1, "NOAUTOBOOT", "NOAUTOBOOT", \ &sysd_set_halt, &sysd_show_halt }, diff --git a/doc/simh_faq.doc b/doc/simh_faq.doc index 244ecfd5..fc2ddb13 100644 Binary files a/doc/simh_faq.doc and b/doc/simh_faq.doc differ