Added a SET CPU MODEL=(MicroVAX|VAXServer) to the VAX 3900 simulator

This commit is contained in:
Mark Pizzolato 2013-01-29 08:37:58 -08:00
parent 659873bebb
commit 8df4b94e7f
5 changed files with 27 additions and 13 deletions

View file

@ -27,6 +27,7 @@
when connected to serial ports). when connected to serial ports).
DHU11 (device VH) on Unibus systems now has 16 ports per multiplexer. DHU11 (device VH) on Unibus systems now has 16 ports per multiplexer.
MicroVAX 3900 and MicroVAX II have SET CPU AUTOBOOT option 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 #### Terminal Multiplexer additions
Added support for TCP connections using IPv4 and/or IPv6. Added support for TCP connections using IPv4 and/or IPv6.

View file

@ -1623,17 +1623,12 @@ if (*rom == 0) { /* no boot? */
r = cpu_load_bootcode (BOOT_CODE_FILENAME, BOOT_CODE_ARRAY, BOOT_CODE_SIZE, TRUE, 0); r = cpu_load_bootcode (BOOT_CODE_FILENAME, BOOT_CODE_ARRAY, BOOT_CODE_SIZE, TRUE, 0);
if (r != SCPE_OK) if (r != SCPE_OK)
return r; return r;
rom_wr_B (ROMBASE+4, sys_model ? 1 : 2); /* Set Magic Byte to determine system type */
} }
sysd_powerup (); sysd_powerup ();
return SCPE_OK; 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) t_stat sysd_set_halt (UNIT *uptr, int32 val, char *cptr, void *desc)
{ {
ka_hltenab = val; ka_hltenab = val;
@ -1698,6 +1693,24 @@ char *sysd_description (DEVICE *dptr)
{ {
return "system devices"; 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) t_stat cpu_model_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr)
{ {

View file

@ -30,7 +30,7 @@
#include "vax_defs.h" #include "vax_defs.h"
char sim_name[] = "VAX"; char sim_name[] = "MicroVAX 3900";
extern DEVICE cpu_dev; extern DEVICE cpu_dev;
extern DEVICE tlb_dev; extern DEVICE tlb_dev;

View file

@ -127,8 +127,8 @@
{ UNIT_MSIZE, (1u << 28), NULL, "256M", &cpu_set_size }, \ { UNIT_MSIZE, (1u << 28), NULL, "256M", &cpu_set_size }, \
{ UNIT_MSIZE, (1u << 29), NULL, "512M", &cpu_set_size } { UNIT_MSIZE, (1u << 29), NULL, "512M", &cpu_set_size }
#define CPU_MODEL_MODIFIERS \ #define CPU_MODEL_MODIFIERS \
{ MTAB_XTD|MTAB_VDV, 0, "MODEL", NULL, \ { MTAB_XTD|MTAB_VDV, 0, "MODEL", "MODEL={VAXServer|MicroVAX}", \
NULL, &cpu_show_model }, \ &cpu_set_model, &cpu_show_model }, \
{ MTAB_XTD|MTAB_VDV, 0, "AUTOBOOT", "AUTOBOOT", \ { MTAB_XTD|MTAB_VDV, 0, "AUTOBOOT", "AUTOBOOT", \
&sysd_set_halt, &sysd_show_halt }, \ &sysd_set_halt, &sysd_show_halt }, \
{ MTAB_XTD|MTAB_VDV|MTAB_NMO, 1, "NOAUTOBOOT", "NOAUTOBOOT", \ { MTAB_XTD|MTAB_VDV|MTAB_NMO, 1, "NOAUTOBOOT", "NOAUTOBOOT", \

Binary file not shown.