SWTP: Rename boot rom to reflect the ROM version in the filename

This commit is contained in:
Bill Beech 2022-06-09 14:10:33 -07:00 committed by Mark Pizzolato
parent 6e0e5a714d
commit 087e0c7bc8
5 changed files with 34 additions and 54 deletions

View file

@ -69,7 +69,7 @@ struct ROM_File_Descriptor {
{"PDP11/lunar11/lunar.lda", "PDP11/pdp11_vt_lunar_rom.h", 13824, 0xFFF15D00, "lunar_lda"}, {"PDP11/lunar11/lunar.lda", "PDP11/pdp11_vt_lunar_rom.h", 13824, 0xFFF15D00, "lunar_lda"},
{"PDP11/dazzledart/dazzle.lda", "PDP11/pdp11_dazzle_dart_rom.h", 6096, 0xFFF83848, "dazzle_lda"}, {"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"}, {"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"}, {"swtp6800/swtp6800/swtbugv10.bin", "swtp6800/swtp6800/swtp_swtbugv10_bin.h", 1024, 0xFFFE4FBC, "swtp_swtbugv10_bin"},
{"3B2/rom_rev2.bin", "3B2/rom_rev2_bin.h", 32768, 0xFFD55762, "rom_rev2_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_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"}, {"3B2/rom_rev3.bin", "3B2/rom_rev3_bin.h", 131072, 0xFFDC0EB8, "rom_rev3_bin"},

View file

@ -25,8 +25,6 @@
MODIFICATIONS: MODIFICATIONS:
23 Apr 15 -- Modified to use simh_debug
NOTES: NOTES:
These functions support a single simulated 2704 to 2764 EPROM device on These functions support a single simulated 2704 to 2764 EPROM device on
@ -51,7 +49,7 @@
#if !defined(DONT_USE_INTERNAL_ROM) #if !defined(DONT_USE_INTERNAL_ROM)
#include "swtp_swtbug_bin.h" #include "swtp_swtbugv10_bin.h"
#endif /* DONT_USE_INTERNAL_ROM */ #endif /* DONT_USE_INTERNAL_ROM */
#define UNIT_V_MSIZE (UNIT_V_UF) /* ROM Size */ #define UNIT_V_MSIZE (UNIT_V_UF) /* ROM Size */
@ -124,8 +122,6 @@ DEVICE BOOTROM_dev = {
NULL /* lname */ NULL /* lname */
}; };
/* global variables */
/* BOOTROM_attach - attach file to EPROM unit */ /* BOOTROM_attach - attach file to EPROM unit */
t_stat BOOTROM_attach (UNIT *uptr, CONST char *cptr) t_stat BOOTROM_attach (UNIT *uptr, CONST char *cptr)
@ -135,9 +131,7 @@ t_stat BOOTROM_attach (UNIT *uptr, CONST char *cptr)
t_addr capac; t_addr capac;
int i; int i;
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_attach: cptr=%s\n", cptr);
if ((r = attach_unit (uptr, cptr)) != SCPE_OK) { if ((r = attach_unit (uptr, cptr)) != SCPE_OK) {
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_attach: Error\n");
return sim_messagef (r, "BOOTROM_attach: Failure\n"); return sim_messagef (r, "BOOTROM_attach: Failure\n");
} }
image_size = (t_addr)sim_fsize_ex (BOOTROM_unit.fileref); image_size = (t_addr)sim_fsize_ex (BOOTROM_unit.fileref);
@ -152,7 +146,6 @@ t_stat BOOTROM_attach (UNIT *uptr, CONST char *cptr)
} }
uptr->flags &= ~UNIT_MSIZE; uptr->flags &= ~UNIT_MSIZE;
uptr->flags |= (i << UNIT_V_MSIZE); uptr->flags |= (i << UNIT_V_MSIZE);
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_attach: Done\n");
return (BOOTROM_reset (NULL)); return (BOOTROM_reset (NULL));
} }
@ -160,9 +153,7 @@ t_stat BOOTROM_attach (UNIT *uptr, CONST char *cptr)
t_stat BOOTROM_config (UNIT *uptr, int32 val, CONST char *cptr, void *desc) t_stat BOOTROM_config (UNIT *uptr, int32 val, CONST char *cptr, void *desc)
{ {
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_config: val=%d\n", val);
if ((val < UNIT_NONE) || (val > UNIT_2764)) { /* valid param? */ if ((val < UNIT_NONE) || (val > UNIT_2764)) { /* valid param? */
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_config: Parameter error\n");
return SCPE_ARG; return SCPE_ARG;
} }
if (val == UNIT_NONE) if (val == UNIT_NONE)
@ -173,9 +164,6 @@ t_stat BOOTROM_config (UNIT *uptr, int32 val, CONST char *cptr, void *desc)
free (BOOTROM_unit.filebuf); free (BOOTROM_unit.filebuf);
BOOTROM_unit.filebuf = NULL; BOOTROM_unit.filebuf = NULL;
} }
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_config: BOOTROM_unit.capac=%d\n",
BOOTROM_unit.capac);
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_config: Done\n");
return SCPE_OK; return SCPE_OK;
} }
@ -187,21 +175,13 @@ t_stat BOOTROM_reset (DEVICE *dptr)
int c; int c;
FILE *fp; FILE *fp;
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_reset: \n");
if ((BOOTROM_unit.flags & UNIT_MSIZE) == 0) { /* if none selected */ if ((BOOTROM_unit.flags & UNIT_MSIZE) == 0) { /* if none selected */
// printf(" EPROM: Defaulted to None\n");
// printf(" \"set eprom NONE | 2704 | 2708 | 2716 | 2732 | 2764\"\n");
// printf(" \"att eprom <filename>\"\n");
BOOTROM_unit.capac = 0; /* set EPROM size to 0 */ BOOTROM_unit.capac = 0; /* set EPROM size to 0 */
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_reset: Done1\n");
return SCPE_OK; return SCPE_OK;
} /* if attached */ } /* if attached */
// printf(" EPROM: Initializing [%04X-%04XH]\n",
// 0xE000, 0xE000 + BOOTROM_unit.capac - 1);
if (BOOTROM_unit.filebuf == NULL) { /* no buffer allocated */ if (BOOTROM_unit.filebuf == NULL) { /* no buffer allocated */
BOOTROM_unit.filebuf = calloc(1, BOOTROM_unit.capac); /* allocate EPROM buffer */ BOOTROM_unit.filebuf = calloc(1, BOOTROM_unit.capac); /* allocate EPROM buffer */
if (BOOTROM_unit.filebuf == NULL) { if (BOOTROM_unit.filebuf == NULL) {
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_reset: Malloc error\n");
return SCPE_MEM; return SCPE_MEM;
} }
} }
@ -215,23 +195,22 @@ t_stat BOOTROM_reset (DEVICE *dptr)
#endif #endif
fp = fopen(BOOTROM_unit.filename, "rb"); /* open EPROM file */ fp = fopen(BOOTROM_unit.filename, "rb"); /* open EPROM file */
if (fp == NULL) { if (fp == NULL) {
printf("\tUnable to open ROM file %s\n",BOOTROM_unit.filename); printf("Bootrom: Unable to open ROM file %s\n",BOOTROM_unit.filename);
printf("\tNo ROM image loaded!!!\n"); printf("Bootrom: No ROM image loaded!!!\n");
return SCPE_OK; return SCPE_OK;
} }
j = 0; /* load EPROM file */ j = 0; /* load EPROM file */
c = fgetc(fp); c = fgetc(fp);
while (c != EOF) { while (c != EOF) {
*((uint8 *)(BOOTROM_unit.filebuf) + j++) = c & 0xFF; *((uint8 *)(BOOTROM_unit.filebuf) + j++) = c & BYTEMASK;
c = fgetc(fp); c = fgetc(fp);
if (j > BOOTROM_unit.capac) { if (j > BOOTROM_unit.capac) {
printf("\tImage is too large - Load truncated!!!\n"); printf("Bootrom: Image is too large - Load truncated!!!\n");
break; break;
} }
} }
fclose(fp); fclose(fp);
// printf("\t%d bytes of ROM image %s loaded\n", j, BOOTROM_unit.filename); printf("%d bytes of ROM image %s loaded\n", j, BOOTROM_unit.filename);
sim_debug (DEBUG_flow, &BOOTROM_dev, "BOOTROM_reset: Done2\n");
return SCPE_OK; return SCPE_OK;
} }
@ -242,16 +221,12 @@ int32 BOOTROM_get_mbyte(int32 offset)
int32 val; int32 val;
if (BOOTROM_unit.filebuf == NULL) { if (BOOTROM_unit.filebuf == NULL) {
sim_debug (DEBUG_read, &BOOTROM_dev, "BOOTROM_get_mbyte: EPROM not configured\n");
return 0xFF; return 0xFF;
} }
sim_debug (DEBUG_read, &BOOTROM_dev, "BOOTROM_get_mbyte: offset=%04X\n", offset);
if ((t_addr)offset > BOOTROM_unit.capac) { if ((t_addr)offset > BOOTROM_unit.capac) {
sim_debug (DEBUG_read, &BOOTROM_dev, "BOOTROM_get_mbyte: EPROM reference beyond ROM size\n");
return 0xFF; return 0xFF;
} }
val = *((uint8 *)(BOOTROM_unit.filebuf) + offset) & 0xFF; val = *((uint8 *)(BOOTROM_unit.filebuf) + offset) & BYTEMASK;
sim_debug (DEBUG_read, &BOOTROM_dev, "BOOTROM_get_mbyte: Normal val=%02X\n", val);
return val; return val;
} }

View file

@ -31,11 +31,14 @@ Copyright (c) 2005-2012, William Beech
#define PC PC_Global #define PC PC_Global
//#define DONT_USE_INTERNAL_ROM 1
/* Memory */ /* Memory */
#define MAXMEMSIZE 65536 // max memory size #define MAXMEMSIZE 65536 // max memory size
#define MEMSIZE (m6800_unit.capac) // actual memory size #define MEMSIZE (m6800_unit.capac) // actual memory size
#define ADDRMASK (MAXMEMSIZE - 1) // address mask #define ADDRMASK (MAXMEMSIZE - 1) // address mask
#define BYTEMASK 0xff
#define MEM_ADDR_OK(x) (((uint32) (x)) < MEMSIZE) #define MEM_ADDR_OK(x) (((uint32) (x)) < MEMSIZE)
/* debug definitions */ /* debug definitions */
@ -43,6 +46,8 @@ Copyright (c) 2005-2012, William Beech
#define DEBUG_flow 0x0001 #define DEBUG_flow 0x0001
#define DEBUG_read 0x0002 #define DEBUG_read 0x0002
#define DEBUG_write 0x0004 #define DEBUG_write 0x0004
#define DEBUG_reg 0x0008
#define DEBUG_asm 0x0010
#define DEBUG_all 0xFFFF #define DEBUG_all 0xFFFF
/* Simulator stop codes */ /* Simulator stop codes */

View file

@ -1,35 +1,35 @@
#ifndef ROM_swtp_swtbug_bin_H #ifndef ROM_swtp_swtbugv10_bin_H
#define ROM_swtp_swtbug_bin_H 0 #define ROM_swtp_swtbugv10_bin_H 0
/* /*
swtp6800/swtp6800/swtp_swtbug_bin.h produced at Mon Aug 23 13:30:22 2021 swtp6800/swtp6800/swtp_swtbugv10_bin.h produced at Tue May 31 12:39:31 2022
from swtp6800/swtp6800/swtbug.bin which was last modified at Mon Jul 26 08:03:32 2021 from swtp6800/swtp6800/swtbugv10.bin which was last modified at Sat Mar 12 06:28:24 2022
file size: 1024 (0x400) - checksum: 0xFFFE4FBC file size: 1024 (0x400) - checksum: 0xFFFE4FBC
This file is a generated file and should NOT be edited or changed by hand. This file is a generated file and should NOT be edited or changed by hand.
*/ */
#undef BOOT_CODE_SIZE #undef BOOT_CODE_SIZE
#define BOOT_CODE_SIZE 0x400 #define BOOT_CODE_SIZE 0x400
#undef BOOT_CODE_FILENAME #undef BOOT_CODE_FILENAME
#define BOOT_CODE_FILENAME "swtbug.bin" #define BOOT_CODE_FILENAME "swtbugv10.bin"
#undef BOOT_CODE_ARRAY #undef BOOT_CODE_ARRAY
#define BOOT_CODE_ARRAY swtp_swtbug_bin #define BOOT_CODE_ARRAY swtp_swtbugv10_bin
#if !defined(BOOT_CODE_SIZE_1) #if !defined(BOOT_CODE_SIZE_1)
#define BOOT_CODE_SIZE_1 0x400 #define BOOT_CODE_SIZE_1 0x400
#define BOOT_CODE_FILENAME_1 "swtbug.bin" #define BOOT_CODE_FILENAME_1 "swtbugv10.bin"
#define BOOT_CODE_ARRAY_1 swtp_swtbug_bin #define BOOT_CODE_ARRAY_1 swtp_swtbugv10_bin
#elif !defined(BOOT_CODE_SIZE_2) #elif !defined(BOOT_CODE_SIZE_2)
#define BOOT_CODE_SIZE_2 0x400 #define BOOT_CODE_SIZE_2 0x400
#define BOOT_CODE_FILENAME_2 "swtbug.bin" #define BOOT_CODE_FILENAME_2 "swtbugv10.bin"
#define BOOT_CODE_ARRAY_2 swtp_swtbug_bin #define BOOT_CODE_ARRAY_2 swtp_swtbugv10_bin
#elif !defined(BOOT_CODE_SIZE_3) #elif !defined(BOOT_CODE_SIZE_3)
#define BOOT_CODE_SIZE_3 0x400 #define BOOT_CODE_SIZE_3 0x400
#define BOOT_CODE_FILENAME_3 "swtbug.bin" #define BOOT_CODE_FILENAME_3 "swtbugv10.bin"
#define BOOT_CODE_ARRAY_3 swtp_swtbug_bin #define BOOT_CODE_ARRAY_3 swtp_swtbugv10_bin
#elif !defined(BOOT_CODE_SIZE_4) #elif !defined(BOOT_CODE_SIZE_4)
#define BOOT_CODE_SIZE_4 0x400 #define BOOT_CODE_SIZE_4 0x400
#define BOOT_CODE_FILENAME_4 "swtbug.bin" #define BOOT_CODE_FILENAME_4 "swtbugv10.bin"
#define BOOT_CODE_ARRAY_4 swtp_swtbug_bin #define BOOT_CODE_ARRAY_4 swtp_swtbugv10_bin
#endif #endif
unsigned char swtp_swtbug_bin[] = { unsigned char swtp_swtbugv10_bin[] = {
0xFE,0xA0,0x00,0x6E,0x00,0x8D,0x40,0x6E,0x00,0x10,0x16,0x04,0xBD,0xE3,0x34,0x8D, 0xFE,0xA0,0x00,0x6E,0x00,0x8D,0x40,0x6E,0x00,0x10,0x16,0x04,0xBD,0xE3,0x34,0x8D,
0x67,0x81,0x53,0x26,0xFA,0x8D,0x61,0x81,0x39,0x27,0x29,0x81,0x31,0x26,0xF0,0x7F, 0x67,0x81,0x53,0x26,0xFA,0x8D,0x61,0x81,0x39,0x27,0x29,0x81,0x31,0x26,0xF0,0x7F,
0xA0,0x0F,0x8D,0x31,0x80,0x02,0xB7,0xA0,0x47,0x8D,0x1C,0x8D,0x28,0x7A,0xA0,0x47, 0xA0,0x0F,0x8D,0x31,0x80,0x02,0xB7,0xA0,0x47,0x8D,0x1C,0x8D,0x28,0x7A,0xA0,0x47,
@ -94,4 +94,4 @@ unsigned char swtp_swtbug_bin[] = {
0xBF,0x47,0xE1,0xD0,0x5A,0xC0,0x00,0x4D,0xE0,0x88,0x46,0xE1,0xAE,0x52,0xE1,0x30, 0xBF,0x47,0xE1,0xD0,0x5A,0xC0,0x00,0x4D,0xE0,0x88,0x46,0xE1,0xAE,0x52,0xE1,0x30,
0x4A,0xE0,0x05,0x43,0xE2,0xCC,0x44,0xE2,0x8F,0x42,0xE2,0xD9,0x4F,0xE2,0x69,0x50, 0x4A,0xE0,0x05,0x43,0xE2,0xCC,0x44,0xE2,0x8F,0x42,0xE2,0xD9,0x4F,0xE2,0x69,0x50,
0xE3,0x1A,0x4C,0xE0,0x0C,0x45,0xE3,0x1E,0xE0,0x00,0xE1,0x8B,0xE1,0xA7,0xE0,0xD0,}; 0xE3,0x1A,0x4C,0xE0,0x0C,0x45,0xE3,0x1E,0xE0,0x00,0xE1,0x8B,0xE1,0xA7,0xE0,0xD0,};
#endif /* ROM_swtp_swtbug_bin_H */ #endif /* ROM_swtp_swtbugv10_bin_H */