1
0
mirror of https://github.com/rcornwell/sims.git synced 2026-02-27 00:59:57 +00:00

SCP: Updated to current.

This commit is contained in:
Richard Cornwell
2021-05-31 12:20:19 -04:00
parent bb5aac437a
commit 647eba9763
3 changed files with 44 additions and 19 deletions

View File

@@ -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

11
scp.c
View File

@@ -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;
}
}

View File

@@ -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<statb.st_size; ++bytes_written) {
c = ROMData[bytes_written];
if (0 == bytes_written%16)
fprintf (iFile,"\n");
fprintf (iFile, "\r\n");
fprintf (iFile,"0x%02X,", c&0xFF);
}
free (ROMData);
fprintf (iFile,"};\n");
fprintf (iFile, "#endif /* ROM_%s_H */\n", rom_array_name);
fprintf (iFile,"};\r\n");
fprintf (iFile, "#endif /* ROM_%s_H */\r\n", rom_array_name);
fclose (iFile);
if (1) { /* Set Modification Time on the include file to be the modification time of the ROM file */
struct utimbuf times;