diff --git a/Visual Studio Projects/0ReadMe_Projects.txt b/Visual Studio Projects/0ReadMe_Projects.txt index 365712d..7199236 100644 --- a/Visual Studio Projects/0ReadMe_Projects.txt +++ b/Visual Studio Projects/0ReadMe_Projects.txt @@ -28,8 +28,12 @@ For Example, the directory structure should look like: If you have a command line version of git installed in your environment then the windows-build repository will be downloaded and updated -automatically. If not, then the contents of the windows-build directory -can be downloaded from: +automatically. Git for windows can be downloaded from: + + https://git-scm.com/download/win + +If git isn't available, then the contents of the windows-build +directory can be downloaded from: https://github.com/simh/windows-build/archive/windows-build.zip @@ -60,6 +64,15 @@ The installer for Visual Studio 2008 SP1 is available from: http://download.microsoft.com/download/E/8/E/E8EEB394-7F42-4963-A2D8-29559B738298/VS2008ExpressWithSP1ENUX1504728.iso +Then install Visual Studio Express Visual C++ by executing VCExpress\setup.exe +on that DVD image. No need to install "Silverlight Runtime" or +"Microsoft SQL Server 2008 Express Edition". Depending on your OS Version +you may be prompted to install an older version of .NET Framework which should +be installed. + +Note: VS2008 can readily coexist on Windows systems that also have later +versions of Visual Studio installed. + If you are using a version of Visual Studio beyond Visual Studio 2008, then your later version of Visual Studio will automatically convert the Visual Studio 2008 project files. You should ignore any warnings produced by the diff --git a/scp.c b/scp.c index 632c13a..fff2bcf 100644 --- a/scp.c +++ b/scp.c @@ -10439,6 +10439,8 @@ if ((dptr = find_dev (cptr))) { /* exact match? */ } for (i = 0; (dptr = sim_devices[i]) != NULL; i++) { /* base + unit#? */ + if (qdisable (dptr)) /* device disabled? */ + continue; if (dptr->numunits && /* any units? */ (((nptr = dptr->name) && (strncmp (cptr, nptr, strlen (nptr)) == 0)) || @@ -10451,7 +10453,14 @@ for (i = 0; (dptr = sim_devices[i]) != NULL; i++) { /* base + unit#? */ u = (uint32) get_uint (tptr, 10, dptr->numunits - 1, &r); if (r != SCPE_OK) /* error? */ *uptr = NULL; - else *uptr = dptr->units + u; + else + *uptr = dptr->units + u; + return dptr; + } + } + for (u = 0; u < dptr->numunits; u++) { + if (0 == strcmp (cptr, sim_uname (&dptr->units[u]))) { + *uptr = &dptr->units[u]; return dptr; } } diff --git a/sim_BuildROMs.c b/sim_BuildROMs.c index 4645a5b..d218129 100644 --- a/sim_BuildROMs.c +++ b/sim_BuildROMs.c @@ -70,8 +70,9 @@ struct ROM_File_Descriptor { {"PDP11/dazzledart/dazzle.lda", "PDP11/pdp11_dazzle_dart_rom.h", 6096, 0xFFF83848, "dazzle_lda"}, {"PDP11/11logo/11logo.lda", "PDP11/pdp11_11logo_rom.h", 26009, 0xFFDD77F7, "logo_lda"}, {"swtp6800/swtp6800/swtbug.bin", "swtp6800/swtp6800/swtp_swtbug_bin.h", 1024, 0xFFFE4FBC, "swtp_swtbug_bin"}, - {"3B2/rom_400.bin", "3B2/rom_400_bin.h", 32768, 0xFFD55762, "rom_400_bin"}, - {"3B2/rom_1000.bin", "3B2/rom_1000_bin.h", 131072, 0xFFDC0EB8, "rom_1000_bin"}, + {"3B2/rom_rev2.bin", "3B2/rom_rev2_bin.h", 32768, 0xFFD55762, "rom_rev2_bin"}, + {"3B2/rom_rev2_demon.bin", "3B2/rom_rev2_demon_bin.h", 65536, 0xFFB345BB, "rom_rev2_demon_bin"}, + {"3B2/rom_rev3.bin", "3B2/rom_rev3_bin.h", 131072, 0xFFDC0EB8, "rom_rev3_bin"}, }; @@ -320,7 +321,9 @@ if (0 == sim_read_ROM_include(include_filename, } } -if (NULL == (iFile = fopen (include_filename, "w"))) { +/* Open output file in binary mode for consistency with all simh + source files that have CRLF line endings with explicit writes of \r\n */ +if (NULL == (iFile = fopen (include_filename, "wb"))) { printf ("Error Opening '%s' for output: %s\n", include_filename, strerror(errno)); free (ROMData); return -1; @@ -331,29 +334,29 @@ if (load_filename) else load_filename = rom_filename; time (&now); -fprintf (iFile, "#ifndef ROM_%s_H\n", rom_array_name); -fprintf (iFile, "#define ROM_%s_H 0\n", rom_array_name); -fprintf (iFile, "/*\n"); +fprintf (iFile, "#ifndef ROM_%s_H\r\n", rom_array_name); +fprintf (iFile, "#define ROM_%s_H 0\r\n", rom_array_name); +fprintf (iFile, "/*\r\n"); fprintf (iFile, " %s produced at %s", include_filename, ctime(&now)); fprintf (iFile, " from %s which was last modified at %s", rom_filename, ctime(&statb.st_mtime)); -fprintf (iFile, " file size: %d (0x%X) - checksum: 0x%08X\n", (int)statb.st_size, (int)statb.st_size, checksum); -fprintf (iFile, " This file is a generated file and should NOT be edited or changed by hand.\n"); +fprintf (iFile, " file size: %d (0x%X) - checksum: 0x%08X\r\n", (int)statb.st_size, (int)statb.st_size, checksum); +fprintf (iFile, " This file is a generated file and should NOT be edited or changed by hand.\r\n"); if (Comments) - fprintf (iFile, "\n %s\n\n", Comments); -fprintf (iFile, "*/\n"); -fprintf (iFile, "#define BOOT_CODE_SIZE 0x%X\n", (int)statb.st_size); -fprintf (iFile, "#define BOOT_CODE_FILENAME \"%s\"\n", load_filename); -fprintf (iFile, "#define BOOT_CODE_ARRAY %s\n", rom_array_name); + fprintf (iFile, "\n %s\r\n\r\n", Comments); +fprintf (iFile, "*/\r\n"); +fprintf (iFile, "#define BOOT_CODE_SIZE 0x%X\r\n", (int)statb.st_size); +fprintf (iFile, "#define BOOT_CODE_FILENAME \"%s\"\r\n", load_filename); +fprintf (iFile, "#define BOOT_CODE_ARRAY %s\r\n", rom_array_name); fprintf (iFile, "unsigned char %s[] = {", rom_array_name); for (bytes_written=0;bytes_written