diff --git a/ALTAIR/altair_cpu.c b/ALTAIR/altair_cpu.c index 8c79acd8..cba2511d 100644 --- a/ALTAIR/altair_cpu.c +++ b/ALTAIR/altair_cpu.c @@ -113,7 +113,7 @@ int32 PCX; /* External view of PC * t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void setarith(int32 reg); void setlogical(int32 reg); void setinc(int32 reg); @@ -1163,7 +1163,7 @@ t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw) return SCPE_OK; } -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; diff --git a/ALTAIR/altair_sys.c b/ALTAIR/altair_sys.c index baf786dc..72195358 100644 --- a/ALTAIR/altair_sys.c +++ b/ALTAIR/altair_sys.c @@ -153,7 +153,7 @@ int32 oplen[256] = { load starts at the current value of the PC. */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 i, addr = 0, cnt = 0; @@ -234,7 +234,7 @@ return -(oplen[inst] - 1); status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 cflag, i = 0, j, r; char gbuf[CBUFSIZE]; diff --git a/AltairZ80/altairz80_cpu.c b/AltairZ80/altairz80_cpu.c index fabb88ac..9fd75af5 100644 --- a/AltairZ80/altairz80_cpu.c +++ b/AltairZ80/altairz80_cpu.c @@ -154,24 +154,24 @@ extern t_stat sim_instr_8086(void); extern void cpu8086reset(void); /* function prototypes */ -static t_stat cpu_set_switcher (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_reset_switcher(UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_show_switcher (FILE *st, UNIT *uptr, int32 val, void *desc); -static int32 switchcpu_io (const int32 port, const int32 io, const int32 data); +static t_stat cpu_set_switcher (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_reset_switcher(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_show_switcher (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static int32 switchcpu_io (const int32 port, const int32 io, CONST int32 data); -static t_stat cpu_set_altairrom (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_set_noaltairrom (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_set_nommu (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_set_banked (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_set_nonbanked (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_set_ramtype (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_set_chiptype (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_set_size (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_set_memory (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_clear_command (UNIT *uptr, int32 value, char *cptr, void *desc); +static t_stat cpu_set_altairrom (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_set_noaltairrom (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_set_nommu (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_set_banked (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_set_nonbanked (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_set_ramtype (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_set_chiptype (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_set_size (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_set_memory (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_clear_command (UNIT *uptr, int32 value, CONST char *cptr, void *desc); static void cpu_clear(void); -static t_stat cpu_show (FILE *st, UNIT *uptr, int32 val, void *desc); -static t_stat chip_show (FILE *st, UNIT *uptr, int32 val, void *desc); +static t_stat cpu_show (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static t_stat chip_show (FILE *st, UNIT *uptr, int32 val, CONST void *desc); static t_stat cpu_ex(t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); static t_stat cpu_dep(t_value val, t_addr addr, UNIT *uptr, int32 sw); static t_stat cpu_reset(DEVICE *dptr); @@ -2075,7 +2075,6 @@ static t_stat sim_instr_mmu (void) { extern int32 timerInterruptHandler; extern int32 keyboardInterrupt; extern uint32 keyboardInterruptHandler; - extern const t_bool rtc_avail; int32 reason = SCPE_OK; register uint32 specialProcessing; register uint32 AF; @@ -6738,9 +6737,9 @@ const static CPUFLAG *cpuflags[NUM_CHIP_TYPE] = { cpuflags8080, cpuflagsZ80, cpuflags8086, cpuflagsM68K, }; /* needs to be set for each ramtype <= MAX_RAM_TYPE */ -static char *ramTypeToString[] = { "AZ80", "HRAM", "VRAM", "CRAM" }; +static const char *ramTypeToString[] = { "AZ80", "HRAM", "VRAM", "CRAM" }; -static t_stat chip_show(FILE *st, UNIT *uptr, int32 val, void *desc) { +static t_stat chip_show(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, cpu_unit.flags & UNIT_CPU_OPSTOP ? "ITRAP, " : "NOITRAP, "); if (chiptype < NUM_CHIP_TYPE) fprintf(st, "%s", cpu_mod[chiptype].mstring); @@ -6750,7 +6749,7 @@ static t_stat chip_show(FILE *st, UNIT *uptr, int32 val, void *desc) { return SCPE_OK; } -static t_stat cpu_show(FILE *st, UNIT *uptr, int32 val, void *desc) { +static t_stat cpu_show(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 i, maxBanks, first = TRUE; MDEV m; maxBanks = ((cpu_unit.flags & UNIT_CPU_BANKED) || @@ -6815,23 +6814,23 @@ static void cpu_clear(void) { clockHasChanged = FALSE; } -static t_stat cpu_clear_command(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_clear_command(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { cpu_clear(); return SCPE_OK; } -static t_stat cpu_set_altairrom(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_altairrom(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { install_ALTAIRbootROM(); return SCPE_OK; } -static t_stat cpu_set_noaltairrom(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_noaltairrom(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { mmu_table[ALTAIR_ROM_LOW >> LOG2PAGESIZE] = MEMORYSIZE < MAXBANKSIZE ? EMPTY_PAGE : RAM_PAGE; return SCPE_OK; } -static t_stat cpu_set_nommu(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_nommu(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (chiptype == CHIP_TYPE_8086) { sim_printf("Cannot switch off MMU for 8086 CPU.\n"); return SCPE_ARG; @@ -6849,7 +6848,7 @@ static t_stat cpu_set_nommu(UNIT *uptr, int32 value, char *cptr, void *desc) { return SCPE_OK; } -static t_stat cpu_set_banked(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_banked(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if ((chiptype == CHIP_TYPE_8080) || (chiptype == CHIP_TYPE_Z80)) { if (MEMORYSIZE <= MAXBANKSIZE) previousCapacity = MEMORYSIZE; @@ -6864,7 +6863,7 @@ static t_stat cpu_set_banked(UNIT *uptr, int32 value, char *cptr, void *desc) { return SCPE_OK; } -static t_stat cpu_set_nonbanked(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_nonbanked(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if ((chiptype == CHIP_TYPE_8080) || (chiptype == CHIP_TYPE_Z80)) { MEMORYSIZE = previousCapacity; cpu_dev.awidth = MAXBANKSIZELOG2; @@ -6965,10 +6964,10 @@ static void cpu_set_chiptype_short(const int32 value) { return; /* nothing to do */ if (((chiptype == CHIP_TYPE_8080) && (value == CHIP_TYPE_Z80)) || ((chiptype == CHIP_TYPE_Z80) && (value == CHIP_TYPE_8080))) { - chiptype = value; + chiptype = (ChipType)value; return; } - chiptype = value; + chiptype = (ChipType)value; switch (chiptype) { case CHIP_TYPE_8080: case CHIP_TYPE_Z80: @@ -6998,13 +6997,13 @@ static void cpu_set_chiptype_short(const int32 value) { } } -static t_stat cpu_set_chiptype(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_chiptype(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { cpu_set_chiptype_short(value); cpu_clear(); return SCPE_OK; } -static int32 switchcpu_io(const int32 port, const int32 io, const int32 data) { +static int32 switchcpu_io(const int32 port, const int32 io, CONST int32 data) { int32 new_chiptype = 0; if (io == 0) { /* Read, switch CPU */ switch(chiptype) { @@ -7036,7 +7035,7 @@ static int32 switchcpu_io(const int32 port, const int32 io, const int32 data) { return 0; } -static t_stat cpu_show_switcher(FILE *st, UNIT *uptr, int32 val, void *desc) { +static t_stat cpu_show_switcher(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if ((cpu_unit.flags & UNIT_CPU_SWITCHER) && (switcherPort >= 0)) fprintf(st, "SWITCHER=0x%02x", switcherPort); else @@ -7044,7 +7043,7 @@ static t_stat cpu_show_switcher(FILE *st, UNIT *uptr, int32 val, void *desc) { return SCPE_OK; } -static t_stat cpu_set_switcher(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_switcher(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { struct idev safe; switcherPort &= 0xff; safe = dev_table[switcherPort]; @@ -7056,7 +7055,7 @@ static t_stat cpu_set_switcher(UNIT *uptr, int32 value, char *cptr, void *desc) return SCPE_OK; } -static t_stat cpu_reset_switcher(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_reset_switcher(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (sim_map_resource(switcherPort, 1, RESOURCE_TYPE_IO, oldSwitcherDevice.routine, FALSE)) { sim_printf("%s: error mapping I/O resource at 0x%04x\n", __FUNCTION__, switcherPort); return SCPE_ARG; @@ -7064,7 +7063,7 @@ static t_stat cpu_reset_switcher(UNIT *uptr, int32 value, char *cptr, void *desc return SCPE_OK; } -static t_stat cpu_set_ramtype(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_ramtype(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (value == ramtype) { if (cpu_unit.flags & UNIT_CPU_VERBOSE) @@ -7149,11 +7148,11 @@ static t_stat set_size(uint32 size) { return SCPE_OK; } -static t_stat cpu_set_size(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_size(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { return set_size(value); } -static t_stat cpu_set_memory(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_memory(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uint32 size, result, i; if (cptr == NULL) return SCPE_ARG; @@ -7175,7 +7174,7 @@ void altairz80_init(void) { /* altairz80_print_tables(); */ } -void (*sim_vm_init) (void) = &altairz80_init; +WEAK void (*sim_vm_init) (void) = &altairz80_init; /* This is the binary loader. The input file is considered to be a string of literal bytes with no special format. The load starts at the current value @@ -7186,12 +7185,12 @@ void (*sim_vm_init) (void) = &altairz80_init; #define PLURAL(x) (x), (x) == 1 ? "" : "s" -static t_stat sim_load_m68k(FILE *fileref, char *cptr, char *fnam, int flag) { +static t_stat sim_load_m68k(FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { char gbuf[CBUFSIZE]; int32 i; t_addr j, lo, hi; uint32 addr, org, cnt = 0; - const char* result; + CONST char* result; if (flag ) { result = get_range(NULL, cptr, &lo, &hi, 16, M68K_MAX_RAM, 0); if (result == NULL) @@ -7221,11 +7220,11 @@ static t_stat sim_load_m68k(FILE *fileref, char *cptr, char *fnam, int flag) { return SCPE_OK; } -t_stat sim_load(FILE *fileref, char *cptr, char *fnam, int flag) { +t_stat sim_load(FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 i; uint32 addr, cnt = 0, org, pagesModified = 0, makeROM = FALSE; t_addr j, lo, hi; - const char *result; + CONST char *result; MDEV m; char gbuf[CBUFSIZE]; if (chiptype == CHIP_TYPE_M68K) diff --git a/AltairZ80/altairz80_cpu_nommu.c b/AltairZ80/altairz80_cpu_nommu.c index d2535a7f..d7b489c1 100644 --- a/AltairZ80/altairz80_cpu_nommu.c +++ b/AltairZ80/altairz80_cpu_nommu.c @@ -122,7 +122,6 @@ extern int32 DE1_S; /* alternate DE register */ extern int32 HL1_S; /* alternate HL register */ extern int32 IFF_S; /* Interrupt Flip Flop */ extern int32 IR_S; /* Interrupt (upper) / Refresh (lower) register */ -extern int32 chiptype; #if !UNIX_PLATFORM extern void pollForCPUStop(void); diff --git a/AltairZ80/altairz80_defs.h b/AltairZ80/altairz80_defs.h index 20ab4774..6281a36c 100644 --- a/AltairZ80/altairz80_defs.h +++ b/AltairZ80/altairz80_defs.h @@ -109,4 +109,6 @@ typedef struct { uint32 io_size; /* I/O Address Space requirement */ } PNP_INFO; +extern ChipType chiptype; + #endif diff --git a/AltairZ80/altairz80_dsk.c b/AltairZ80/altairz80_dsk.c index 9be1f375..b02ed6ba 100644 --- a/AltairZ80/altairz80_dsk.c +++ b/AltairZ80/altairz80_dsk.c @@ -163,8 +163,7 @@ int32 dsk11(const int32 port, const int32 io, const int32 data); int32 dsk12(const int32 port, const int32 io, const int32 data); static t_stat dsk_boot(int32 unitno, DEVICE *dptr); static t_stat dsk_reset(DEVICE *dptr); -static t_stat dsk_attach(UNIT *uptr, char *cptr); -static const char* dsk_description(DEVICE *dptr); +static t_stat dsk_attach(UNIT *uptr, CONST char *cptr); extern UNIT cpu_unit; extern uint32 PCX; @@ -369,7 +368,7 @@ DEVICE dsk_dev = { dsk_dt, NULL, NULL, NULL, NULL, NULL, &dsk_description }; -static char* selectInOut(const int32 io) { +static const char* selectInOut(const int32 io) { return io == 0 ? "IN" : "OUT"; } @@ -399,7 +398,7 @@ static t_stat dsk_reset(DEVICE *dptr) { } /* dsk_attach - determine type of drive attached based on disk image size */ -static t_stat dsk_attach(UNIT *uptr, char *cptr) { +static t_stat dsk_attach(UNIT *uptr, CONST char *cptr) { int32 thisUnitIndex; int32 imageSize; const t_stat r = attach_unit(uptr, cptr); /* attach unit */ diff --git a/AltairZ80/altairz80_hdsk.c b/AltairZ80/altairz80_hdsk.c index f38807c3..01ddcb1e 100644 --- a/AltairZ80/altairz80_hdsk.c +++ b/AltairZ80/altairz80_hdsk.c @@ -36,13 +36,13 @@ #define VERBOSE_MSG (1 << 2) /* The following routines are based on work from Howard M. Harte */ -static t_stat set_geom(UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat show_geom(FILE *st, UNIT *uptr, int32 val, void *desc); -static t_stat set_format(UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat show_format(FILE *st, UNIT *uptr, int32 val, void *desc); +static t_stat set_geom(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat show_geom(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static t_stat set_format(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat show_format(FILE *st, UNIT *uptr, int32 val, CONST void *desc); static t_stat hdsk_reset(DEVICE *dptr); -static t_stat hdsk_attach(UNIT *uptr, char *cptr); +static t_stat hdsk_attach(UNIT *uptr, CONST char *cptr); static t_stat hdsk_detach(UNIT *uptr); static uint32 is_imd(const UNIT *uptr); static void assignFormat(UNIT *uptr); @@ -71,15 +71,14 @@ static void verifyDiskInfo(const DISK_INFO *info, const char unitChar); extern uint32 PCX; extern UNIT cpu_unit; -extern ChipType chiptype; extern void install_ALTAIRbootROM(void); extern void PutBYTEWrapper(const uint32 Addr, const uint32 Value); extern uint8 GetBYTEWrapper(const uint32 Addr); extern t_stat install_bootrom(const int32 bootrom[], const int32 size, const int32 addr, const int32 makeROM); extern int32 bootrom_dsk[]; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern int32 find_unit_index(UNIT *uptr); @@ -430,7 +429,7 @@ static void verifyDiskInfo(const DISK_INFO *info, const char unitChar) { } /* Attach routine */ -static t_stat hdsk_attach(UNIT *uptr, char *cptr) { +static t_stat hdsk_attach(UNIT *uptr, CONST char *cptr) { int32 thisUnitIndex; char unitChar; const t_stat r = attach_unit(uptr, cptr); /* attach unit */ @@ -541,7 +540,7 @@ static t_stat hdsk_detach(UNIT *uptr) { } /* Set disk geometry routine */ -static t_stat set_geom(UNIT *uptr, int32 val, char *cptr, void *desc) { +static t_stat set_geom(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 numberOfTracks, numberOfSectors, sectorSize; int result, n; @@ -567,7 +566,7 @@ static t_stat set_geom(UNIT *uptr, int32 val, char *cptr, void *desc) { } /* Show disk geometry routine */ -static t_stat show_geom(FILE *st, UNIT *uptr, int32 val, void *desc) { +static t_stat show_geom(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (uptr == NULL) return SCPE_IERR; fprintf(st, "T:%d/N:%d/S:%d", uptr -> HDSK_NUMBER_OF_TRACKS, @@ -578,7 +577,7 @@ static t_stat show_geom(FILE *st, UNIT *uptr, int32 val, void *desc) { #define QUOTE1(text) #text #define QUOTE2(text) QUOTE1(text) /* Set disk format routine */ -static t_stat set_format(UNIT *uptr, int32 val, char *cptr, void *desc) { +static t_stat set_format(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { char fmtname[DPB_NAME_LENGTH + 1]; int32 i; @@ -611,7 +610,7 @@ static t_stat set_format(UNIT *uptr, int32 val, char *cptr, void *desc) { } /* Show disk format routine */ -static t_stat show_format(FILE *st, UNIT *uptr, int32 val, void *desc) { +static t_stat show_format(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (uptr == NULL) return SCPE_IERR; fprintf(st, "%s", dpb[uptr -> HDSK_FORMAT_TYPE].name); diff --git a/AltairZ80/altairz80_mhdsk.c b/AltairZ80/altairz80_mhdsk.c index a775cf5f..69fb9847 100755 --- a/AltairZ80/altairz80_mhdsk.c +++ b/AltairZ80/altairz80_mhdsk.c @@ -89,7 +89,7 @@ extern t_stat install_bootrom(const int32 bootrom[], const int32 size, const int #define CMD_INITIALIZE 14 #define CMD_MAX (CMD_INITIALIZE + 1) -static char* commandMessage[CMD_MAX] = { +static const char* commandMessage[CMD_MAX] = { "Seek", // CMD_SEEK 0 "Undefined 1", // 1 "Write Sector", // CMD_WRITE_SEC 2 @@ -162,7 +162,7 @@ static int32 hdAdata(const int32 port, const int32 io, const int32 data); static void doRead(const int32 port, const int32 data, const uint32 command); static void doWrite(const int32 port, const int32 data, const uint32 command); static t_stat dsk_reset(DEVICE *dptr); -static char* cmdTranslate(const int32 cmd); +static const char* cmdTranslate(const int32 cmd); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); static const char* mhdsk_description(DEVICE *dptr); @@ -253,7 +253,7 @@ static t_stat mhdsk_boot(int32 unitno, DEVICE *dptr) { return SCPE_OK; } -static char* cmdTranslate(const int32 cmd) { +static const char* cmdTranslate(const int32 cmd) { static char result[128]; if ((0 <= cmd) && (cmd < CMD_MAX)) return commandMessage[cmd]; diff --git a/AltairZ80/altairz80_net.c b/AltairZ80/altairz80_net.c index d45715a8..70be5dd3 100644 --- a/AltairZ80/altairz80_net.c +++ b/AltairZ80/altairz80_net.c @@ -40,11 +40,11 @@ extern uint32 PCX; #define NET_INIT_POLL_SERVER 16000 #define NET_INIT_POLL_CLIENT 15000 -static t_stat net_attach (UNIT *uptr, char *cptr); +static t_stat net_attach (UNIT *uptr, CONST char *cptr); static t_stat net_detach (UNIT *uptr); static t_stat net_reset (DEVICE *dptr); static t_stat net_svc (UNIT *uptr); -static t_stat set_net (UNIT *uptr, int32 value, char *cptr, void *desc); +static t_stat set_net (UNIT *uptr, int32 value, CONST char *cptr, void *desc); int32 netStatus (const int32 port, const int32 io, const int32 data); int32 netData (const int32 port, const int32 io, const int32 data); static const char* net_description(DEVICE *dptr); @@ -119,7 +119,7 @@ DEVICE net_dev = { net_dt, NULL, NULL, NULL, NULL, NULL, &net_description }; -static t_stat set_net(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat set_net(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { char temp[CBUFSIZE]; if ((net_unit.flags & UNIT_ATT) && ((net_unit.flags & UNIT_SERVER) != (uint32)value)) { strncpy(temp, net_unit.filename, CBUFSIZE); /* save name for later attach */ @@ -154,7 +154,7 @@ static t_stat net_reset(DEVICE *dptr) { return SCPE_OK; } -static t_stat net_attach(UNIT *uptr, char *cptr) { +static t_stat net_attach(UNIT *uptr, CONST char *cptr) { uint32 i; char host[CBUFSIZE], port[CBUFSIZE]; diff --git a/AltairZ80/altairz80_sio.c b/AltairZ80/altairz80_sio.c index ff34e413..0cf8d87f 100644 --- a/AltairZ80/altairz80_sio.c +++ b/AltairZ80/altairz80_sio.c @@ -125,18 +125,18 @@ uint8 *URLContents(const char *URL, uint32 *length) { #define SLEEP_ALLOWED_START_DEFAULT 100 /* default initial value for sleepAllowedCounter*/ #define DEFAULT_TIMER_DELTA 100 /* default value for timer delta in ms */ -static t_stat simh_dev_set_timeron (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat simh_dev_set_timeroff (UNIT *uptr, int32 value, char *cptr, void *desc); +static t_stat simh_dev_set_timeron (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat simh_dev_set_timeroff (UNIT *uptr, int32 value, CONST char *cptr, void *desc); static t_stat sio_reset(DEVICE *dptr); -static t_stat sio_attach(UNIT *uptr, char *cptr); +static t_stat sio_attach(UNIT *uptr, CONST char *cptr); static t_stat sio_detach(UNIT *uptr); static t_stat ptr_reset(DEVICE *dptr); static t_stat ptp_reset(DEVICE *dptr); static t_stat toBool(char tf, int32 *result); -static t_stat sio_dev_set_port(UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat sio_dev_show_port(FILE *st, UNIT *uptr, int32 val, void *desc); -static t_stat sio_dev_set_interrupton(UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat sio_dev_set_interruptoff(UNIT *uptr, int32 value, char *cptr, void *desc); +static t_stat sio_dev_set_port(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat sio_dev_show_port(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static t_stat sio_dev_set_interrupton(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat sio_dev_set_interruptoff(UNIT *uptr, int32 value, CONST char *cptr, void *desc); static t_stat sio_svc(UNIT *uptr); static t_stat simh_dev_reset(DEVICE *dptr); static t_stat simh_svc(UNIT *uptr); @@ -167,8 +167,6 @@ extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_typ extern uint32 getClockFrequency(void); extern void setClockFrequency(const uint32 Value); -extern int32 chiptype; -extern const t_bool rtc_avail; extern uint32 PCX; extern int32 SR; extern UNIT cpu_unit; @@ -498,7 +496,7 @@ static void resetSIOWarningFlags(void) { warnUnattachedPTP = warnUnattachedPTR = warnPTREOF = warnUnassignedPort = 0; } -static t_stat sio_attach(UNIT *uptr, char *cptr) { +static t_stat sio_attach(UNIT *uptr, CONST char *cptr) { t_stat r = SCPE_IERR; sio_unit.u3 = FALSE; /* no character in terminal input buffer */ get_uint(cptr, 10, 65535, &r); /* attempt to get port, discard result */ @@ -974,7 +972,7 @@ static uint32 equalSIP(SIO_PORT_INFO x, SIO_PORT_INFO y) { (x.sio_reset == y.sio_reset) && (x.hasOUT == y.hasOUT); } -static t_stat sio_dev_set_port(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat sio_dev_set_port(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { int32 result, n, position; SIO_PORT_INFO sip = { 0 }, old; char hasReset, hasOUT; @@ -1040,7 +1038,7 @@ static t_stat sio_dev_set_port(UNIT *uptr, int32 value, char *cptr, void *desc) return SCPE_OK; } -static t_stat sio_dev_show_port(FILE *st, UNIT *uptr, int32 val, void *desc) { +static t_stat sio_dev_show_port(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 i, first = TRUE; for (i = 0; port_table[i].port != -1; i++) if (!port_table[i].isBuiltin) { @@ -1055,12 +1053,12 @@ static t_stat sio_dev_show_port(FILE *st, UNIT *uptr, int32 val, void *desc) { return SCPE_OK; } -static t_stat sio_dev_set_interrupton(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat sio_dev_set_interrupton(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { keyboardInterrupt = FALSE; return sim_activate(&sio_unit, sio_unit.wait); /* activate unit */ } -static t_stat sio_dev_set_interruptoff(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat sio_dev_set_interruptoff(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { keyboardInterrupt = FALSE; sim_cancel(&sio_unit); return SCPE_OK; @@ -1191,7 +1189,7 @@ enum simhPseudoDeviceCommands { /* do not change order or remove commands, add o kSimhPseudoDeviceCommands }; -static char *cmdNames[kSimhPseudoDeviceCommands] = { +static const char *cmdNames[kSimhPseudoDeviceCommands] = { "printTime", "startTimer", "stopTimer", @@ -1277,12 +1275,12 @@ static void warnNoRealTimeClock(void) { " Sorry - no real time clock available.\n", PCX); } -static t_stat simh_dev_set_timeron(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat simh_dev_set_timeron(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { timeOfNextInterrupt = sim_os_msec() + timerDelta; return sim_activate(&simh_unit, simh_unit.wait); /* activate unit */ } -static t_stat simh_dev_set_timeroff(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat simh_dev_set_timeroff(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { timerInterrupt = FALSE; return SCPE_OK; } diff --git a/AltairZ80/altairz80_sys.c b/AltairZ80/altairz80_sys.c index 68d3f2db..3345cef4 100644 --- a/AltairZ80/altairz80_sys.c +++ b/AltairZ80/altairz80_sys.c @@ -73,18 +73,17 @@ extern DEVICE wdi2_dev; extern DEVICE scp300f_dev; -extern int32 chiptype; extern long disasm (unsigned char *data, char *output, int segsize, long offset); void prepareMemoryAccessMessage(const t_addr loc); void prepareInstructionMessage(const t_addr loc, const uint32 op); t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw); -t_stat parse_sym(char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw); +t_stat parse_sym(CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw); -t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* SCP data structures sim_name simulator name string @@ -135,7 +134,7 @@ const char *sim_stop_messages[] = { "Invalid Opcode" }; -static char *const Mnemonics8080[] = { +static const char *const Mnemonics8080[] = { /* 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F */ "NOP", "LXI B,#h", "STAX B", "INX B", "INR B", "DCR B", "MVI B,*h", "RLC", /* 00-07 */ "_NOP", "DAD B", "LDAX B", "DCX B", "INR C", "DCR C", "MVI C,*h", "RRC", /* 08-0f */ @@ -171,7 +170,7 @@ static char *const Mnemonics8080[] = { "RM", "SPHL", "JM #h", "EI", "CM #h", "_CALL #h", "CPI *h", "RST 7" /* f8-ff */ }; -static char *const MnemonicsZ80[256] = { +static const char *const MnemonicsZ80[256] = { /* 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F */ "NOP", "LD BC,#h", "LD (BC),A", "INC BC", "INC B", "DEC B", "LD B,*h", "RLCA", /* 00-07 */ "EX AF,AF'", "ADD HL,BC", "LD A,(BC)", "DEC BC", "INC C", "DEC C", "LD C,*h", "RRCA", /* 08-0f */ @@ -207,7 +206,7 @@ static char *const MnemonicsZ80[256] = { "RET M", "LD SP,HL", "JP M,#h", "EI", "CALL M,#h", "PFX_FD", "CP *h", "RST 38h" /* f8-ff */ }; -static char *const MnemonicsCB[256] = { +static const char *const MnemonicsCB[256] = { /* 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F */ "RLC B", "RLC C", "RLC D", "RLC E", "RLC H", "RLC L", "RLC (HL)", "RLC A", /* 00-07 */ "RRC B", "RRC C", "RRC D", "RRC E", "RRC H", "RRC L", "RRC (HL)", "RRC A", /* 08-0f */ @@ -243,7 +242,7 @@ static char *const MnemonicsCB[256] = { "SET 7,B", "SET 7,C", "SET 7,D", "SET 7,E", "SET 7,H", "SET 7,L", "SET 7,(HL)", "SET 7,A" /* f8-ff */ }; -static char *const MnemonicsED[256] = { +static const char *const MnemonicsED[256] = { /* 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F */ "DB EDh,00h", "DB EDh,01h", "DB EDh,02h", "DB EDh,03h", "DB EDh,04h", "DB EDh,05h", "DB EDh,06h", "DB EDh,07h", /* 00-07 */ "DB EDh,08h", "DB EDh,09h", "DB EDh,0Ah", "DB EDh,0Bh", "DB EDh,0Ch", "DB EDh,0Dh", "DB EDh,0Eh", "DB EDh,0Fh", /* 08-0f */ @@ -279,7 +278,7 @@ static char *const MnemonicsED[256] = { "DB EDh,F8h", "DB EDh,F9h", "DB EDh,FAh", "DB EDh,FBh", "DB EDh,FCh", "DB EDh,FDh", "DB EDh,FEh", "DB EDh,FFh" /* f8-ff */ }; -static char *const MnemonicsXX[256] = { +static const char *const MnemonicsXX[256] = { /* 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F */ "NOP", "LD BC,#h", "LD (BC),A", "INC BC", "INC B", "DEC B", "LD B,*h", "RLCA", /* 00-07 */ "EX AF,AF'", "ADD I%,BC", "LD A,(BC)", "DEC BC", "INC C", "DEC C", "LD C,*h", "RRCA", /* 08-0f */ @@ -315,7 +314,7 @@ static char *const MnemonicsXX[256] = { "RET M", "LD SP,I%", "JP M,#h", "EI", "CALL M,#h", "PFX_FD", "CP *h", "RST 38h" /* f8-ff */ }; -static char *const MnemonicsXCB[256] = { +static const char *const MnemonicsXCB[256] = { /*0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F */ "RLC B", "RLC C", "RLC D", "RLC E", "RLC H", "RLC L", "RLC (I%@h)", "RLC A", /* 00-07 */ "RRC B", "RRC C", "RRC D", "RRC E", "RRC H", "RRC L", "RRC (I%@h)", "RRC A", /* 08-0f */ @@ -386,7 +385,8 @@ static void printHex4(char* string, const uint32 value) { */ static int32 DAsm(char *S, const uint32 *val, const int32 useZ80Mnemonics, const int32 addr) { - char R[128], H[10], C = '\0', *T, *P; + char R[128], H[10], C = '\0', *P; + const char *T, *T1; uint8 J = 0, Offset = 0; uint16 B = 0; @@ -423,12 +423,12 @@ static int32 DAsm(char *S, const uint32 *val, const int32 useZ80Mnemonics, const else T = Mnemonics8080[val[B++]]; - if ( (P = strchr(T, '^')) ) { - strncpy(R, T, P - T); - R[P - T] = '\0'; + if ( (T1 = strchr(T, '^')) ) { + strncpy(R, T, T1 - T); + R[T1 - T] = '\0'; printHex2(H, val[B++]); strcat(R, H); - strcat(R, P + 1); + strcat(R, T1 + 1); } else strcpy(R, T); @@ -659,7 +659,7 @@ static int32 checkXY(const char xy) { return xy == 'X' ? 0xdd : 0xfd; /* else is 'Y' */ } -static int32 parse_X80(const char *cptr, const int32 addr, uint32 *val, char *const Mnemonics[]) { +static int32 parse_X80(const char *cptr, const int32 addr, uint32 *val, const char *const Mnemonics[]) { char xyFirst = 0, xy; int32 op, number, star, at, hat, dollar; for (op = 0; op < 256; op++) { @@ -784,7 +784,7 @@ static int32 parse_X80(const char *cptr, const int32 addr, uint32 *val, char *co Outputs: status = error status */ -t_stat parse_sym(char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { +t_stat parse_sym(CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { static t_bool symbolicInputNotImplementedMessage8086 = FALSE; static t_bool symbolicInputNotImplementedMessageM68K = FALSE; if ((sw & (SWMASK('M'))) && (chiptype == CHIP_TYPE_8086)) { @@ -813,7 +813,7 @@ t_stat parse_sym(char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { } /* Set Memory Base Address routine */ -t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; PNP_INFO *pnp; @@ -853,7 +853,7 @@ t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc) } /* Show Base Address routine */ -t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; PNP_INFO *pnp; @@ -872,7 +872,7 @@ t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc) } /* Set Memory Base Address routine */ -t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; PNP_INFO *pnp; @@ -913,7 +913,7 @@ t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc) } /* Show I/O Base Address routine */ -t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; PNP_INFO *pnp; diff --git a/AltairZ80/disasm.c b/AltairZ80/disasm.c index 9b6059f5..652ce87f 100644 --- a/AltairZ80/disasm.c +++ b/AltairZ80/disasm.c @@ -1176,7 +1176,7 @@ long disasm (unsigned char *data, char *output, int segsize, long offset) { struct itemplate **p, **best_p; int length, best_length = 0; - char *segover; + const char *segover; int rep, lock, asize, osize, i, slen, colon; unsigned char *origdata; int works; diff --git a/AltairZ80/flashwriter2.c b/AltairZ80/flashwriter2.c index 73040f0e..9bc55915 100644 --- a/AltairZ80/flashwriter2.c +++ b/AltairZ80/flashwriter2.c @@ -75,11 +75,11 @@ static FW2_INFO *fw2_info[FW2_MAX_BOARDS]; static uint8 port_map[FW2_MAX_BOARDS] = { 0x11, 0x15, 0x17, 0x19 }; static int32 fw2dev(const int32 Addr, const int32 rw, const int32 data); -static t_stat fw2_attach(UNIT *uptr, char *cptr); +static t_stat fw2_attach(UNIT *uptr, CONST char *cptr); static t_stat fw2_detach(UNIT *uptr); static uint8 FW2_Read(const uint32 Addr); static uint8 FW2_Write(const uint32 Addr, uint8 cData); -static t_stat get_base_address(char *cptr, uint32 *baseaddr); +static t_stat get_base_address(const char *cptr, uint32 *baseaddr); static const char* fw2_description(DEVICE *dptr); static UNIT fw2_unit[] = { @@ -115,7 +115,7 @@ DEVICE fw2_dev = { }; /* Attach routine */ -static t_stat fw2_attach(UNIT *uptr, char *cptr) +static t_stat fw2_attach(UNIT *uptr, CONST char *cptr) { t_stat r; unsigned int i = 0; @@ -137,7 +137,7 @@ static t_stat fw2_attach(UNIT *uptr, char *cptr) } } - fw2_info[i] = calloc(1, sizeof(FW2_INFO)); + fw2_info[i] = (FW2_INFO *)calloc(1, sizeof(FW2_INFO)); fw2_info[i]->uptr = uptr; fw2_info[i]->uptr->u3 = baseaddr; @@ -197,7 +197,7 @@ static t_stat fw2_detach(UNIT *uptr) return SCPE_OK; } -static t_stat get_base_address(char *cptr, uint32 *baseaddr) +static t_stat get_base_address(const char *cptr, uint32 *baseaddr) { uint32 b; sscanf(cptr, "%x", &b); diff --git a/AltairZ80/i8272.c b/AltairZ80/i8272.c index 46144fc8..68218e54 100644 --- a/AltairZ80/i8272.c +++ b/AltairZ80/i8272.c @@ -134,8 +134,8 @@ typedef struct { static SECTOR_FORMAT sdata; extern uint32 PCX; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); @@ -279,7 +279,7 @@ int32 find_unit_index (UNIT *uptr) } /* Attach routine */ -t_stat i8272_attach(UNIT *uptr, char *cptr) +t_stat i8272_attach(UNIT *uptr, CONST char *cptr) { char header[4]; t_stat r; @@ -461,7 +461,7 @@ uint8 I8272_Read(const uint32 Addr) return (cData); } -static char *messages[0x20] = { +static const char *messages[0x20] = { /* 0 1 2 3 */ "Undefined Command 0x0","Undefined Command 0x1","Read Track", "Specify", /* 4 5 6 7 */ diff --git a/AltairZ80/i8272.h b/AltairZ80/i8272.h index 3182301e..72b3ab03 100644 --- a/AltairZ80/i8272.h +++ b/AltairZ80/i8272.h @@ -39,7 +39,7 @@ * * *************************************************************************/ -extern t_stat i8272_attach(UNIT *uptr, char *cptr); +extern t_stat i8272_attach(UNIT *uptr, CONST char *cptr); extern t_stat i8272_detach(UNIT *uptr); extern uint8 I8272_Set_DMA(const uint32 dma_addr); extern uint8 I8272_Read(const uint32 Addr); diff --git a/AltairZ80/i86.h b/AltairZ80/i86.h index 06e4c8e3..1d12b9c5 100644 --- a/AltairZ80/i86.h +++ b/AltairZ80/i86.h @@ -215,7 +215,7 @@ struct pc_env }; /* GLOBAL */ -volatile int intr; +extern volatile int intr; void halt_sys (PC_ENV *sys); void fetch_decode_modrm (PC_ENV *m, uint16 *mod, uint16 *regh, uint16 *regl); diff --git a/AltairZ80/i86_decode.c b/AltairZ80/i86_decode.c index 7684b613..d83e462a 100644 --- a/AltairZ80/i86_decode.c +++ b/AltairZ80/i86_decode.c @@ -24,6 +24,9 @@ #include "altairz80_defs.h" #include "i86.h" +/* GLOBAL */ +volatile int intr; + extern uint32 GetBYTEExtended(register uint32 Addr); extern void PutBYTEExtended(register uint32 Addr, const register uint32 Value); extern int32 AX_S; /* AX register (8086) */ diff --git a/AltairZ80/i86_ops.c b/AltairZ80/i86_ops.c index 3b593c1e..241d8e79 100644 --- a/AltairZ80/i86_ops.c +++ b/AltairZ80/i86_ops.c @@ -4118,7 +4118,7 @@ static void i86op_opcD3_word_RM_CL(PC_ENV *m) DECODE_CLEAR_SEGOVR(m); } -static void sys_fatal(int error, char *fmt, ...) +static void sys_fatal(int error, const char *fmt, ...) { va_list p; va_start(p, fmt); diff --git a/AltairZ80/m68k.h b/AltairZ80/m68k.h index 85550763..d1d4e8fa 100755 --- a/AltairZ80/m68k.h +++ b/AltairZ80/m68k.h @@ -295,13 +295,13 @@ void m68k_set_context(void* dst); * You must provide a function pointer of the form: * void save_value(char* identifier, unsigned int value) */ -void m68k_save_context( void (*save_value)(char* identifier, unsigned int value)); +void m68k_save_context( void (*save_value)(const char* identifier, unsigned int value)); /* Load a cpu context from disk. * You must provide a function pointer of the form: * unsigned int load_value(char* identifier) */ -void m68k_load_context(unsigned int (*load_value)(char* identifier)); +void m68k_load_context(unsigned int (*load_value)(const char* identifier)); diff --git a/AltairZ80/m68kcpu.c b/AltairZ80/m68kcpu.c index 561a5385..19310c6e 100755 --- a/AltairZ80/m68kcpu.c +++ b/AltairZ80/m68kcpu.c @@ -45,7 +45,7 @@ uint m68ki_tracing = 0; uint m68ki_address_space; #ifdef M68K_LOG_ENABLE -char* m68ki_cpu_names[9] = +const char* m68ki_cpu_names[9] = { "Invalid CPU", "M68000", @@ -799,7 +799,7 @@ void m68k_set_context(void* src) if(src) m68ki_cpu = *(m68ki_cpu_core*)src; } -void m68k_save_context( void (*save_value)(char*, unsigned int)) +void m68k_save_context( void (*save_value)(const char*, unsigned int)) { if(!save_value) return; @@ -840,7 +840,7 @@ void m68k_save_context( void (*save_value)(char*, unsigned int)) save_value("PREF_DATA" , CPU_PREF_DATA); } -void m68k_load_context(unsigned int (*load_value)(char*)) +void m68k_load_context(unsigned int (*load_value)(const char*)) { unsigned int temp; diff --git a/AltairZ80/m68kdasm.c b/AltairZ80/m68kdasm.c index 941c789e..50eacd91 100755 --- a/AltairZ80/m68kdasm.c +++ b/AltairZ80/m68kdasm.c @@ -191,18 +191,18 @@ static uint g_cpu_ir; /* instruction register */ static uint g_cpu_type; /* used by ops like asr, ror, addq, etc */ -static uint g_3bit_qdata_table[8] = {8, 1, 2, 3, 4, 5, 6, 7}; +static const uint g_3bit_qdata_table[8] = {8, 1, 2, 3, 4, 5, 6, 7}; -static uint g_5bit_data_table[32] = +static const uint g_5bit_data_table[32] = { 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }; -static char* g_cc[16] = +static const char* g_cc[16] = {"t", "f", "hi", "ls", "cc", "cs", "ne", "eq", "vc", "vs", "pl", "mi", "ge", "lt", "gt", "le"}; -static char* g_cpcc[64] = +static const char* g_cpcc[64] = {/* 000 001 010 011 100 101 110 111 */ "f", "eq", "ogt", "oge", "olt", "ole", "ogl", "or", /* 000 */ "un", "ueq", "ugt", "uge", "ult", "ule", "ne", "t", /* 001 */ @@ -1754,8 +1754,8 @@ static void d68000_move_to_usp(void) static void d68010_movec(void) { uint extension; - char* reg_name; - char* processor; + const char* reg_name; + const char* processor; LIMIT_CPU_TYPES(M68010_PLUS); extension = read_imm_16(); diff --git a/AltairZ80/m68ksim.c b/AltairZ80/m68ksim.c index f25cec54..af362c45 100644 --- a/AltairZ80/m68ksim.c +++ b/AltairZ80/m68ksim.c @@ -204,13 +204,13 @@ t_stat m68k_hdsk_boot(const int32 unitno, DEVICE *dptr, void m68k_CPUToView(void) { uint32 reg; for (reg = M68K_REG_D0; reg <= M68K_REG_CPU_TYPE; reg++) - m68k_registers[reg] = m68k_get_reg(NULL, reg); + m68k_registers[reg] = m68k_get_reg(NULL, (m68k_register_t)reg); } void m68k_viewToCPU(void) { uint32 reg; for (reg = M68K_REG_D0; reg <= M68K_REG_CPU_TYPE; reg++) - m68k_set_reg(reg, m68k_registers[reg]); + m68k_set_reg((m68k_register_t)reg, m68k_registers[reg]); } t_stat sim_instr_m68k(void) { diff --git a/AltairZ80/mfdc.c b/AltairZ80/mfdc.c index 53274038..22fb9768 100644 --- a/AltairZ80/mfdc.c +++ b/AltairZ80/mfdc.c @@ -67,8 +67,8 @@ #define VERBOSE_MSG (1 << 5) extern uint32 PCX; -extern t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern int32 find_unit_index(UNIT *uptr); @@ -132,7 +132,7 @@ static SECTOR_FORMAT sdata; #define MFDC_CAPACITY (77*16*MFDC_SECTOR_LEN) /* Default Micropolis Disk Capacity */ static t_stat mfdc_reset(DEVICE *mfdc_dev); -static t_stat mfdc_attach(UNIT *uptr, char *cptr); +static t_stat mfdc_attach(UNIT *uptr, CONST char *cptr); static t_stat mfdc_detach(UNIT *uptr); static uint8 MFDC_Read(const uint32 Addr); static uint8 MFDC_Write(const uint32 Addr, uint8 cData); @@ -238,7 +238,7 @@ static t_stat mfdc_reset(DEVICE *dptr) } /* Attach routine */ -static t_stat mfdc_attach(UNIT *uptr, char *cptr) +static t_stat mfdc_attach(UNIT *uptr, CONST char *cptr) { t_stat r; unsigned int i = 0; diff --git a/AltairZ80/n8vem.c b/AltairZ80/n8vem.c index 456beae0..25030aff 100644 --- a/AltairZ80/n8vem.c +++ b/AltairZ80/n8vem.c @@ -77,10 +77,10 @@ typedef struct { static N8VEM_INFO n8vem_info_data = { { 0x0, 0x8000, 0x60, 32 } }; static N8VEM_INFO *n8vem_info = &n8vem_info_data; -extern t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern uint32 PCX; @@ -88,7 +88,7 @@ extern int32 find_unit_index (UNIT *uptr); static t_stat n8vem_reset(DEVICE *n8vem_dev); static t_stat n8vem_boot(int32 unitno, DEVICE *dptr); -static t_stat n8vem_attach(UNIT *uptr, char *cptr); +static t_stat n8vem_attach(UNIT *uptr, CONST char *cptr); static t_stat n8vem_detach(UNIT *uptr); static uint8 N8VEM_Read(const uint32 Addr); @@ -190,8 +190,8 @@ static t_stat n8vem_reset(DEVICE *dptr) return SCPE_ARG; } - n8vem_info->ram = calloc(1, (N8VEM_RAM_SIZE)); - n8vem_info->rom = calloc(1, (N8VEM_ROM_SIZE)); + n8vem_info->ram = (uint8 *)calloc(1, (N8VEM_RAM_SIZE)); + n8vem_info->rom = (uint8 *)calloc(1, (N8VEM_ROM_SIZE)); /* Clear the RAM and ROM mapping registers */ n8vem_info->mpcl_ram = 0; @@ -214,7 +214,7 @@ static t_stat n8vem_boot(int32 unitno, DEVICE *dptr) } /* Attach routine */ -static t_stat n8vem_attach(UNIT *uptr, char *cptr) +static t_stat n8vem_attach(UNIT *uptr, CONST char *cptr) { t_stat r; int32 i = 0, rtn; diff --git a/AltairZ80/s100_64fdc.c b/AltairZ80/s100_64fdc.c index c13afb03..f0151a2e 100644 --- a/AltairZ80/s100_64fdc.c +++ b/AltairZ80/s100_64fdc.c @@ -86,10 +86,10 @@ extern WD179X_INFO_PUB *wd179x_infop; static CROMFDC_INFO cromfdc_info_data = { { 0xC000, CROMFDC_ROM_SIZE, 0x3, 2 } }; static CROMFDC_INFO *cromfdc_info = &cromfdc_info_data; -extern t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); diff --git a/AltairZ80/s100_adcs6.c b/AltairZ80/s100_adcs6.c index a9089ad8..11eefc71 100644 --- a/AltairZ80/s100_adcs6.c +++ b/AltairZ80/s100_adcs6.c @@ -86,10 +86,10 @@ extern WD179X_INFO_PUB *wd179x_infop; static ADCS6_INFO adcs6_info_data = { { 0xF000, ADCS6_ROM_SIZE, 0x3, 2 } }; static ADCS6_INFO *adcs6_info = &adcs6_info_data; -extern t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); @@ -105,7 +105,7 @@ extern uint32 PCX; /* external view of PC */ static t_stat adcs6_reset(DEVICE *adcs6_dev); static t_stat adcs6_boot(int32 unitno, DEVICE *dptr); -static t_stat adcs6_attach(UNIT *uptr, char *cptr); +static t_stat adcs6_attach(UNIT *uptr, CONST char *cptr); static t_stat adcs6_detach(UNIT *uptr); static int32 adcs6_dma(const int32 port, const int32 io, const int32 data); @@ -469,7 +469,7 @@ static t_stat adcs6_boot(int32 unitno, DEVICE *dptr) } /* Attach routine */ -static t_stat adcs6_attach(UNIT *uptr, char *cptr) +static t_stat adcs6_attach(UNIT *uptr, CONST char *cptr) { t_stat r; r = wd179x_attach(uptr, cptr); diff --git a/AltairZ80/s100_disk1a.c b/AltairZ80/s100_disk1a.c index 031e8881..d2b29126 100644 --- a/AltairZ80/s100_disk1a.c +++ b/AltairZ80/s100_disk1a.c @@ -76,10 +76,10 @@ typedef struct { static DISK1A_INFO disk1a_info_data = { { 0x0, 512, 0xC0, 4 } }; static DISK1A_INFO *disk1a_info = &disk1a_info_data; -extern t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); @@ -93,7 +93,7 @@ extern uint32 PCX; /* external view of PC */ static t_stat disk1a_reset(DEVICE *disk1a_dev); static t_stat disk1a_boot(int32 unitno, DEVICE *dptr); -static t_stat disk1a_attach(UNIT *uptr, char *cptr); +static t_stat disk1a_attach(UNIT *uptr, CONST char *cptr); static t_stat disk1a_detach(UNIT *uptr); static const char* disk1a_description(DEVICE *dptr); @@ -757,7 +757,7 @@ static t_stat disk1a_boot(int32 unitno, DEVICE *dptr) } /* Attach routine */ -static t_stat disk1a_attach(UNIT *uptr, char *cptr) +static t_stat disk1a_attach(UNIT *uptr, CONST char *cptr) { t_stat r; r = i8272_attach(uptr, cptr); diff --git a/AltairZ80/s100_disk2.c b/AltairZ80/s100_disk2.c index ede803cb..c698a36f 100644 --- a/AltairZ80/s100_disk2.c +++ b/AltairZ80/s100_disk2.c @@ -118,8 +118,8 @@ static int32 nsectors = C20MB_NSECTORS; static int32 sectsize = C20MB_SECTSIZE; extern uint32 PCX; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern int32 selchan_dma(uint8 *buf, uint32 len); @@ -131,7 +131,7 @@ extern void raise_ss1_interrupt(uint8 intnum); #define DISK2_CAPACITY (C20MB_NTRACKS*C20MB_NHEADS*C20MB_NSECTORS*C20MB_SECTSIZE) /* Default Disk Capacity */ static t_stat disk2_reset(DEVICE *disk2_dev); -static t_stat disk2_attach(UNIT *uptr, char *cptr); +static t_stat disk2_attach(UNIT *uptr, CONST char *cptr); static t_stat disk2_detach(UNIT *uptr); static const char* disk2_description(DEVICE *dptr); @@ -229,7 +229,7 @@ static t_stat disk2_reset(DEVICE *dptr) /* Attach routine */ -static t_stat disk2_attach(UNIT *uptr, char *cptr) +static t_stat disk2_attach(UNIT *uptr, CONST char *cptr) { t_stat r = SCPE_OK; DISK2_DRIVE_INFO *pDrive; diff --git a/AltairZ80/s100_disk3.c b/AltairZ80/s100_disk3.c index bc9dfde9..703a24c5 100644 --- a/AltairZ80/s100_disk3.c +++ b/AltairZ80/s100_disk3.c @@ -175,8 +175,8 @@ static int32 nsectors = C20MB_NSECTORS; static int32 sectsize = C20MB_SECTSIZE; extern uint32 PCX; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern int32 find_unit_index(UNIT *uptr); @@ -191,7 +191,7 @@ extern uint8 GetByteDMA(const uint32 Addr); #define DISK3_CAPACITY (C20MB_NTRACKS*C20MB_NHEADS*C20MB_NSECTORS*C20MB_SECTSIZE) /* Default Disk Capacity */ static t_stat disk3_reset(DEVICE *disk3_dev); -static t_stat disk3_attach(UNIT *uptr, char *cptr); +static t_stat disk3_attach(UNIT *uptr, CONST char *cptr); static t_stat disk3_detach(UNIT *uptr); static void raise_disk3_interrupt(void); static const char* disk3_description(DEVICE *dptr); @@ -296,7 +296,7 @@ static t_stat disk3_reset(DEVICE *dptr) /* Attach routine */ -static t_stat disk3_attach(UNIT *uptr, char *cptr) +static t_stat disk3_attach(UNIT *uptr, CONST char *cptr) { t_stat r = SCPE_OK; DISK3_DRIVE_INFO *pDrive; @@ -544,7 +544,7 @@ static uint8 DISK3_Write(const uint32 Addr, uint8 cData) xfr_len = pDrive->xfr_nsects * pDrive->sectsize; - dataBuffer = malloc(xfr_len); + dataBuffer = (uint8 *)malloc(xfr_len); sim_fseek((pDrive->uptr)->fileref, file_offset, SEEK_SET); @@ -620,7 +620,7 @@ static uint8 DISK3_Write(const uint32 Addr, uint8 cData) file_offset = (pDrive->track * (pDrive->nheads) * data_len); /* Calculate offset based on current track */ file_offset += (disk3_info->iopb[DISK3_IOPB_ARG3] * data_len); - fmtBuffer = malloc(data_len); + fmtBuffer = (uint8 *)malloc(data_len); memset(fmtBuffer, disk3_info->iopb[DISK3_IOPB_ARG2], data_len); sim_fseek((pDrive->uptr)->fileref, file_offset, SEEK_SET); diff --git a/AltairZ80/s100_fif.c b/AltairZ80/s100_fif.c index fb630a15..fc7dd738 100644 --- a/AltairZ80/s100_fif.c +++ b/AltairZ80/s100_fif.c @@ -40,12 +40,12 @@ #define MAX_DSK_SIZE (DSK_TRACSIZE * MAX_TRACKS) static t_stat fif_reset(DEVICE *dptr); -static t_stat fif_set_verbose(UNIT *uptr, int32 value, char *cptr, void *desc); +static t_stat fif_set_verbose(UNIT *uptr, int32 value, CONST char *cptr, void *desc); static int32 fif_io(const int32 port, const int32 io, const int32 data); static const char* fif_description(DEVICE *dptr); -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern uint8 GetBYTEWrapper(const uint32 Addr); @@ -128,7 +128,7 @@ static void resetDSKWarningFlags(void) { warnDSK11 = 0; } -static t_stat fif_set_verbose(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat fif_set_verbose(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { resetDSKWarningFlags(); return SCPE_OK; } diff --git a/AltairZ80/s100_hdc1001.c b/AltairZ80/s100_hdc1001.c index 8f0705e3..2bdde839 100644 --- a/AltairZ80/s100_hdc1001.c +++ b/AltairZ80/s100_hdc1001.c @@ -95,14 +95,14 @@ static HDC1001_INFO hdc1001_info_data = { { 0x0, 0, 0xC8, 8 } }; static HDC1001_INFO *hdc1001_info = &hdc1001_info_data; extern uint32 PCX; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern int32 find_unit_index(UNIT *uptr); /* These are needed for DMA. */ -extern void PutBYTEWrapper(const uint32 Addr, const uint32 Value); +extern void PutBYTEWrapper(const uint32 Addr, CONST uint32 Value); extern uint8 GetBYTEWrapper(const uint32 Addr); #define UNIT_V_HDC1001_VERBOSE (UNIT_V_UF + 1) /* verbose mode, i.e. show error messages */ @@ -110,7 +110,7 @@ extern uint8 GetBYTEWrapper(const uint32 Addr); #define HDC1001_CAPACITY (77*2*16*256) /* Default Micropolis Disk Capacity */ static t_stat hdc1001_reset(DEVICE *hdc1001_dev); -static t_stat hdc1001_attach(UNIT *uptr, char *cptr); +static t_stat hdc1001_attach(UNIT *uptr, CONST char *cptr); static t_stat hdc1001_detach(UNIT *uptr); static int32 hdc1001dev(const int32 port, const int32 io, const int32 data); @@ -190,7 +190,7 @@ static t_stat hdc1001_reset(DEVICE *dptr) /* Attach routine */ -static t_stat hdc1001_attach(UNIT *uptr, char *cptr) +static t_stat hdc1001_attach(UNIT *uptr, CONST char *cptr) { t_stat r = SCPE_OK; HDC1001_DRIVE_INFO *pDrive; diff --git a/AltairZ80/s100_if3.c b/AltairZ80/s100_if3.c index 48cfbc9d..18dd1be1 100644 --- a/AltairZ80/s100_if3.c +++ b/AltairZ80/s100_if3.c @@ -76,8 +76,8 @@ typedef struct { static IF3_INFO if3_info_data = { { 0x0, 0, 0x10, 8 } }; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern uint32 PCX; @@ -85,7 +85,7 @@ extern uint32 PCX; extern int32 sio0d(const int32 port, const int32 io, const int32 data); extern int32 sio0s(const int32 port, const int32 io, const int32 data); -static t_stat set_if3_connect(UNIT *uptr, int32 val, char *cptr, void *desc); +static t_stat set_if3_connect(UNIT *uptr, int32 val, CONST char *cptr, void *desc); static t_stat if3_reset(DEVICE *if3_dev); static t_stat if3_svc (UNIT *uptr); @@ -154,7 +154,7 @@ DEVICE if3_dev = { if3_dt, NULL, NULL, NULL, NULL, NULL, &if3_description }; -static t_stat set_if3_connect(UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat set_if3_connect(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if(uptr->flags & UNIT_DISABLE) { sim_debug(ERROR_MSG, &if3_dev, "IF3[%d]: not enabled.\n", uptr->u3); diff --git a/AltairZ80/s100_mdriveh.c b/AltairZ80/s100_mdriveh.c index 2d20bc43..8f15896f 100644 --- a/AltairZ80/s100_mdriveh.c +++ b/AltairZ80/s100_mdriveh.c @@ -72,8 +72,8 @@ static MDRIVEH_INFO mdriveh_info_data = { { 0x0, 0, 0xC6, 2 } }; static MDRIVEH_INFO *mdriveh_info = &mdriveh_info_data; extern uint32 PCX; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); @@ -179,7 +179,7 @@ static t_stat mdriveh_reset(DEVICE *dptr) } } else { if(mdriveh_info->storage[i] == NULL) { - mdriveh_info->storage[i] = calloc(1, 524288); + mdriveh_info->storage[i] = (uint8 *)calloc(1, 524288); } if (dptr->units[i].flags & UNIT_MDRIVEH_VERBOSE) sim_printf("MDRIVEH: Unit %d enabled, 512K at 0x%p\n", i, mdriveh_info->storage[i]); diff --git a/AltairZ80/s100_mdsa.c b/AltairZ80/s100_mdsa.c index 5ac9231a..91adbbf5 100644 --- a/AltairZ80/s100_mdsa.c +++ b/AltairZ80/s100_mdsa.c @@ -37,8 +37,8 @@ #define WR_DATA_DETAIL_MSG (1 << 7) extern uint32 PCX; -extern t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); @@ -148,7 +148,7 @@ static uint32 stepCleared = TRUE; /* true when step bit has returned to zero * /* Local function prototypes */ static t_stat mdsa_reset(DEVICE *mdsa_dev); -static t_stat mdsa_attach(UNIT *uptr, char *cptr); +static t_stat mdsa_attach(UNIT *uptr, CONST char *cptr); static t_stat mdsa_detach(UNIT *uptr); static t_stat mdsa_boot(int32 unitno, DEVICE *dptr); static uint8 MDSA_Read(const uint32 Addr); @@ -229,7 +229,7 @@ t_stat mdsa_reset(DEVICE *dptr) } /* Attach routine */ -t_stat mdsa_attach(UNIT *uptr, char *cptr) +t_stat mdsa_attach(UNIT *uptr, CONST char *cptr) { char header[4]; t_stat r; diff --git a/AltairZ80/s100_mdsad.c b/AltairZ80/s100_mdsad.c index 8b328410..9191641d 100644 --- a/AltairZ80/s100_mdsad.c +++ b/AltairZ80/s100_mdsad.c @@ -66,8 +66,8 @@ #define WR_DATA_DETAIL_MSG (1 << 8) extern uint32 PCX; -extern t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); @@ -211,7 +211,7 @@ static SECTOR_FORMAT sdata; /* Local function prototypes */ static t_stat mdsad_reset(DEVICE *mdsad_dev); -static t_stat mdsad_attach(UNIT *uptr, char *cptr); +static t_stat mdsad_attach(UNIT *uptr, CONST char *cptr); static t_stat mdsad_detach(UNIT *uptr); static t_stat mdsad_boot(int32 unitno, DEVICE *dptr); static uint8 MDSAD_Read(const uint32 Addr); @@ -293,7 +293,7 @@ static t_stat mdsad_reset(DEVICE *dptr) } /* Attach routine */ -static t_stat mdsad_attach(UNIT *uptr, char *cptr) +static t_stat mdsad_attach(UNIT *uptr, CONST char *cptr) { char header[4]; t_stat r; diff --git a/AltairZ80/s100_scp300f.c b/AltairZ80/s100_scp300f.c index 193f6c8a..d22849e4 100644 --- a/AltairZ80/s100_scp300f.c +++ b/AltairZ80/s100_scp300f.c @@ -75,10 +75,10 @@ typedef struct { static SCP300F_INFO scp300f_info_data = { { 0xFF800, SCP300F_ROM_SIZE, 0xF0, SCP300F_IO_SIZE } }; static SCP300F_INFO *scp300f_info = &scp300f_info_data; -extern t_stat set_membase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_membase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_membase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern uint32 PCX; diff --git a/AltairZ80/s100_selchan.c b/AltairZ80/s100_selchan.c index caaf8548..695b95c4 100644 --- a/AltairZ80/s100_selchan.c +++ b/AltairZ80/s100_selchan.c @@ -71,8 +71,8 @@ static SELCHAN_INFO selchan_info_data = { { 0x0, 0, 0xF0, 1 } }; static SELCHAN_INFO *selchan_info = &selchan_info_data; int32 selchan_dma(uint8 *buf, uint32 len); -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern uint32 PCX; diff --git a/AltairZ80/s100_ss1.c b/AltairZ80/s100_ss1.c index 90f53ce6..2f00503d 100644 --- a/AltairZ80/s100_ss1.c +++ b/AltairZ80/s100_ss1.c @@ -74,8 +74,8 @@ typedef struct { static SS1_INFO ss1_info_data = { { 0x0, 0, 0x50, 16 } }; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern uint32 PCX; diff --git a/AltairZ80/vfdhd.c b/AltairZ80/vfdhd.c index 63e6b333..52de6091 100644 --- a/AltairZ80/vfdhd.c +++ b/AltairZ80/vfdhd.c @@ -137,8 +137,8 @@ static const char* vfdhd_description(DEVICE *dptr); static SECTOR_FORMAT sdata; extern uint32 PCX; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); @@ -147,7 +147,7 @@ extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_typ #define VFDHD_CAPACITY (77*2*16*256) /* Default Micropolis Disk Capacity */ static t_stat vfdhd_reset(DEVICE *vfdhd_dev); -static t_stat vfdhd_attach(UNIT *uptr, char *cptr); +static t_stat vfdhd_attach(UNIT *uptr, CONST char *cptr); static t_stat vfdhd_detach(UNIT *uptr); static int32 vfdhddev(const int32 port, const int32 io, const int32 data); @@ -227,7 +227,7 @@ static t_stat vfdhd_reset(DEVICE *dptr) /* Attach routine */ -static t_stat vfdhd_attach(UNIT *uptr, char *cptr) +static t_stat vfdhd_attach(UNIT *uptr, CONST char *cptr) { t_stat r; unsigned int i = 0; diff --git a/AltairZ80/wd179x.c b/AltairZ80/wd179x.c index c4321149..c8937f99 100644 --- a/AltairZ80/wd179x.c +++ b/AltairZ80/wd179x.c @@ -148,8 +148,8 @@ typedef struct { static SECTOR_FORMAT sdata; extern uint32 PCX; -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); extern int32 find_unit_index (UNIT *uptr); @@ -310,7 +310,7 @@ void wd179x_external_restore(void) } /* Attach routine */ -t_stat wd179x_attach(UNIT *uptr, char *cptr) +t_stat wd179x_attach(UNIT *uptr, CONST char *cptr) { char header[4]; t_stat r; diff --git a/AltairZ80/wd179x.h b/AltairZ80/wd179x.h index 1ac1f19f..bf788eaf 100644 --- a/AltairZ80/wd179x.h +++ b/AltairZ80/wd179x.h @@ -39,7 +39,7 @@ * * *************************************************************************/ -extern t_stat wd179x_attach(UNIT *uptr, char *cptr); +extern t_stat wd179x_attach(UNIT *uptr, CONST char *cptr); extern t_stat wd179x_detach(UNIT *uptr); extern uint8 WD179X_Set_DMA(const uint32 dma_addr); extern uint8 WD179X_Read(const uint32 Addr); diff --git a/B5500/b5500_cpu.c b/B5500/b5500_cpu.c index 8900720a..14d802ed 100644 --- a/B5500/b5500_cpu.c +++ b/B5500/b5500_cpu.c @@ -195,13 +195,13 @@ t_stat cpu_ex(t_value * vptr, t_addr addr, UNIT * uptr, t_stat cpu_dep(t_value val, t_addr addr, UNIT * uptr, int32 sw); t_stat cpu_reset(DEVICE * dptr); -t_stat cpu_set_size(UNIT * uptr, int32 val, char *cptr, +t_stat cpu_set_size(UNIT * uptr, int32 val, CONST char *cptr, void *desc); t_stat cpu_show_size(FILE * st, UNIT * uptr, int32 val, - void *desc); + CONST void *desc); t_stat cpu_show_hist(FILE * st, UNIT * uptr, int32 val, - void *desc); -t_stat cpu_set_hist(UNIT * uptr, int32 val, char *cptr, + CONST void *desc); +t_stat cpu_set_hist(UNIT * uptr, int32 val, CONST char *cptr, void *desc); t_stat cpu_help(FILE *, DEVICE *, UNIT *, int32, const char *); /* Interval timer */ @@ -3818,14 +3818,14 @@ cpu_dep(t_value val, t_addr addr, UNIT * uptr, int32 sw) } t_stat -cpu_show_size(FILE *st, UNIT *uptr, int32 val, void *desc) +cpu_show_size(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "%dK", MEMSIZE/1024); return SCPE_OK; } t_stat -cpu_set_size(UNIT * uptr, int32 val, char *cptr, void *desc) +cpu_set_size(UNIT * uptr, int32 val, CONST char *cptr, void *desc) { t_uint64 mc = 0; uint32 i; @@ -3852,7 +3852,7 @@ cpu_set_size(UNIT * uptr, int32 val, char *cptr, void *desc) /* Set history */ t_stat -cpu_set_hist(UNIT * uptr, int32 val, char *cptr, void *desc) +cpu_set_hist(UNIT * uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -3873,7 +3873,7 @@ cpu_set_hist(UNIT * uptr, int32 val, char *cptr, void *desc) hst = NULL; } if (lnt) { - hst = calloc(sizeof(struct InstHistory), lnt); + hst = (struct InstHistory *)calloc(sizeof(struct InstHistory), lnt); if (hst == NULL) return SCPE_MEM; @@ -3885,10 +3885,10 @@ cpu_set_hist(UNIT * uptr, int32 val, char *cptr, void *desc) /* Show history */ t_stat -cpu_show_hist(FILE * st, UNIT * uptr, int32 val, void *desc) +cpu_show_hist(FILE * st, UNIT * uptr, int32 val, CONST void *desc) { int32 k, di, lnt; - char *cptr = (char *) desc; + const char *cptr = (const char *) desc; t_stat r; t_value sim_eval; struct InstHistory *h; diff --git a/B5500/b5500_defs.h b/B5500/b5500_defs.h index 64847ead..e79ddf56 100644 --- a/B5500/b5500_defs.h +++ b/B5500/b5500_defs.h @@ -73,7 +73,7 @@ typedef struct _opcode { uint16 op; uint8 type; - char *name; + const char *name; } t_opcode; diff --git a/B5500/b5500_dk.c b/B5500/b5500_dk.c index 61a329ef..1e0f67bf 100644 --- a/B5500/b5500_dk.c +++ b/B5500/b5500_dk.c @@ -64,13 +64,13 @@ t_stat dsk_boot(int32, DEVICE *); t_stat dsk_help (FILE *, DEVICE *, UNIT *, int32, const char *); const char *dsk_description (DEVICE *); t_stat esu_srv(UNIT *); -t_stat esu_attach(UNIT *, char *); +t_stat esu_attach(UNIT *, CONST char *); t_stat esu_detach(UNIT *); t_stat esu_help (FILE *, DEVICE *, UNIT *, int32, const char *); const char *esu_description (DEVICE *); uint8 dsk_buffer[NUM_DEVS_DSK][DK_SEC_SIZE]; -t_stat set_mod(UNIT *uptr, int32 val, char *cptr, +t_stat set_mod(UNIT *uptr, int32 val, CONST char *cptr, void *desc); #define ESU_TYPE UDATA(&esu_srv, UNIT_ATTABLE+UNIT_DISABLE+ \ @@ -437,7 +437,7 @@ t_stat esu_srv(UNIT * uptr) } t_stat -set_mod(UNIT *uptr, int32 val, char *cptr, void *desc) { +set_mod(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr == NULL) return SCPE_IERR; if (val == MODIB) uptr->wait = DK_MAXSEGS2; @@ -465,7 +465,7 @@ dsk_boot(int32 unit_num, DEVICE * dptr) t_stat -esu_attach(UNIT * uptr, char *file) +esu_attach(UNIT * uptr, CONST char *file) { t_stat r; int u = uptr-esu_unit; diff --git a/B5500/b5500_dr.c b/B5500/b5500_dr.c index 0dbc5a29..356adfdb 100644 --- a/B5500/b5500_dr.c +++ b/B5500/b5500_dr.c @@ -41,19 +41,19 @@ t_stat drm_srv(UNIT *); t_stat drm_boot(int32, DEVICE *); -t_stat drm_attach(UNIT *, char *); +t_stat drm_attach(UNIT *, CONST char *); t_stat drm_detach(UNIT *); -t_stat set_drum(UNIT * uptr, int32 val, char *cptr, +t_stat set_drum(UNIT * uptr, int32 val, CONST char *cptr, void *desc); -t_stat set_auxmem(UNIT * uptr, int32 val, char *cptr, +t_stat set_auxmem(UNIT * uptr, int32 val, CONST char *cptr, void *desc); t_stat drm_help (FILE *, DEVICE *, UNIT *, int32, const char *); const char *drm_description (DEVICE *); MTAB drm_mod[] = { - {AUXMEM, 0, "DRUM", "DRUM", &set_drum, NULL, "Device is drum"}, - {AUXMEM, AUXMEM, "AUXMEM", "AUXMEM", &set_auxmem, NULL, "Device is memory unit"}, + {AUXMEM, 0, "DRUM", "DRUM", &set_drum, NULL, NULL, "Device is drum"}, + {AUXMEM, AUXMEM, "AUXMEM", "AUXMEM", &set_auxmem, NULL, NULL, "Device is memory unit"}, {0} }; @@ -171,7 +171,7 @@ drm_boot(int32 unit_num, DEVICE * dptr) t_stat -drm_attach(UNIT * uptr, char *file) +drm_attach(UNIT * uptr, CONST char *file) { t_stat r; int u = uptr - drm_unit; @@ -203,7 +203,7 @@ drm_detach(UNIT * uptr) } t_stat -set_drum(UNIT * uptr, int32 val, char *cptr, void *desc) { +set_drum(UNIT * uptr, int32 val, CONST char *cptr, void *desc) { if ((uptr->flags & AUXMEM) == 0) return SCPE_OK; if (uptr->flags & UNIT_ATT) @@ -213,7 +213,7 @@ set_drum(UNIT * uptr, int32 val, char *cptr, void *desc) { } t_stat -set_auxmem(UNIT * uptr, int32 val, char *cptr, void *desc) { +set_auxmem(UNIT * uptr, int32 val, CONST char *cptr, void *desc) { int u = uptr - drm_unit; if (uptr->flags & AUXMEM) diff --git a/B5500/b5500_dtc.c b/B5500/b5500_dtc.c index 5015be49..7ba002ed 100644 --- a/B5500/b5500_dtc.c +++ b/B5500/b5500_dtc.c @@ -141,13 +141,13 @@ t_stat dtc_srv(UNIT *); t_stat dtco_srv(UNIT *); -t_stat dtc_attach(UNIT *, char *); +t_stat dtc_attach(UNIT *, CONST char *); t_stat dtc_detach(UNIT *); t_stat dtc_reset(DEVICE *); -t_stat dtc_setnl (UNIT *, int32, char *, void *); -t_stat dtc_set_log (UNIT *, int32, char *, void *); -t_stat dtc_set_nolog (UNIT *, int32, char *, void *); -t_stat dtc_show_log (FILE *, UNIT *, int32, void *); +t_stat dtc_setnl (UNIT *, int32, CONST char *, void *); +t_stat dtc_set_log (UNIT *, int32, CONST char *, void *); +t_stat dtc_set_nolog (UNIT *, int32, CONST char *, void *); +t_stat dtc_show_log (FILE *, UNIT *, int32, CONST void *); t_stat dtc_help(FILE *, DEVICE *, UNIT *, int32, const char *); t_stat dtc_help_attach (FILE *, DEVICE *, UNIT *, int32, const char *); const char *dtc_description(DEVICE *); @@ -695,7 +695,7 @@ dtc_reset(DEVICE *dptr) { /* Attach master unit */ t_stat -dtc_attach(UNIT * uptr, char *cptr) +dtc_attach(UNIT * uptr, CONST char *cptr) { int i; t_stat r; @@ -731,7 +731,7 @@ dtc_detach(UNIT * uptr) /* SET LINES processor */ -t_stat dtc_setnl (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dtc_setnl (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; @@ -764,27 +764,26 @@ t_stat dtc_setnl (UNIT *uptr, int32 val, char *cptr, void *desc) /* SET LOG processor */ -t_stat dtc_set_log (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dtc_set_log (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { - char *tptr; t_stat r; + char gbuf[CBUFSIZE]; int32 ln; if (cptr == NULL) return SCPE_ARG; - tptr = strchr (cptr, '='); - if ((tptr == NULL) || (*tptr == 0)) + cptr = get_glyph (cptr, gbuf, '='); + if ((cptr == NULL) || (*cptr == 0) || (gbuf[0] == 0)) return SCPE_ARG; - *tptr++ = 0; - ln = (int32) get_uint (cptr, 10, dtc_desc.lines, &r); + ln = (int32) get_uint (gbuf, 10, dtc_desc.lines, &r); if ((r != SCPE_OK) || (ln >= dtc_desc.lines)) return SCPE_ARG; - return tmxr_set_log (NULL, ln, tptr, desc); + return tmxr_set_log (NULL, ln, cptr, desc); } /* SET NOLOG processor */ -t_stat dtc_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dtc_set_nolog (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat r; int32 ln; @@ -799,7 +798,7 @@ t_stat dtc_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc) /* SHOW LOG processor */ -t_stat dtc_show_log (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dtc_show_log (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 i; @@ -814,7 +813,7 @@ t_stat dtc_show_log (FILE *st, UNIT *uptr, int32 val, void *desc) /* Show summary processor */ t_stat -dtc_summ(FILE * st, UNIT * uptr, int32 val, void *desc) +dtc_summ(FILE * st, UNIT * uptr, int32 val, CONST void *desc) { uint32 i, t; @@ -831,7 +830,7 @@ dtc_summ(FILE * st, UNIT * uptr, int32 val, void *desc) /* SHOW CONN/STAT processor */ t_stat -dtc_show(FILE * st, UNIT * uptr, int32 val, void *desc) +dtc_show(FILE * st, UNIT * uptr, int32 val, CONST void *desc) { int32 i, cc; diff --git a/B5500/b5500_mt.c b/B5500/b5500_mt.c index 901f62cc..ac373a55 100644 --- a/B5500/b5500_mt.c +++ b/B5500/b5500_mt.c @@ -80,7 +80,7 @@ #define CLR_BUF(u) u->hwmark = 0xFFFFFFFF t_stat mt_srv(UNIT *); -t_stat mt_attach(UNIT *, char *); +t_stat mt_attach(UNIT *, CONST char *); t_stat mt_detach(UNIT *); t_stat mt_reset(DEVICE *); t_stat mt_help(FILE *, DEVICE *, UNIT *, int32, const char *); @@ -123,9 +123,9 @@ UNIT mt_unit[] = { }; MTAB mt_mod[] = { - {MTUF_WLK, 0, "write enabled", "WRITEENABLED", NULL, NULL, + {MTUF_WLK, 0, "write enabled", "WRITEENABLED", NULL, NULL, NULL, "Write ring in place"}, - {MTUF_WLK, MTUF_WLK, "write locked", "LOCKED", NULL, NULL, + {MTUF_WLK, MTUF_WLK, "write locked", "LOCKED", NULL, NULL, NULL, "no Write ring in place"}, {MTAB_XTD | MTAB_VUN, 0, "FORMAT", "FORMAT", &sim_tape_set_fmt, &sim_tape_show_fmt, NULL, @@ -566,7 +566,7 @@ t_stat mt_srv(UNIT * uptr) t_stat -mt_attach(UNIT * uptr, char *file) +mt_attach(UNIT * uptr, CONST char *file) { t_stat r; diff --git a/B5500/b5500_sys.c b/B5500/b5500_sys.c index 8ac940a7..5dff9024 100644 --- a/B5500/b5500_sys.c +++ b/B5500/b5500_sys.c @@ -26,7 +26,7 @@ #include "sim_card.h" #include -t_stat parse_sym(char *cptr, t_addr addr, UNIT * uptr, t_value * val, int32 sw); +t_stat parse_sym(CONST char *cptr, t_addr addr, UNIT * uptr, t_value * val, int32 sw); /* SCP data structures and interface routines @@ -165,7 +165,7 @@ const char ascii_to_con[128] = { /* Load a card image file into memory. */ t_stat -sim_load(FILE * fileref, char *cptr, char *fnam, int flag) +sim_load(FILE * fileref, CONST char *cptr, CONST char *fnam, int flag) { /* Currently not implimented until I know format of load files */ return SCPE_NOFNC; @@ -459,7 +459,7 @@ find_opcode(char *op, t_opcode * tab) */ t_stat -parse_sym(char *cptr, t_addr addr, UNIT * uptr, t_value * val, int32 sw) +parse_sym(CONST char *cptr, t_addr addr, UNIT * uptr, t_value * val, int32 sw) { int i; t_value d; diff --git a/B5500/b5500_urec.c b/B5500/b5500_urec.c index f6f7b4c6..cf59744c 100644 --- a/B5500/b5500_urec.c +++ b/B5500/b5500_urec.c @@ -85,7 +85,7 @@ DEBTAB cdr_debug[] = { #if NUM_DEVS_CDR > 0 t_stat cdr_boot(int32, DEVICE *); t_stat cdr_srv(UNIT *); -t_stat cdr_attach(UNIT *, char *); +t_stat cdr_attach(UNIT *, CONST char *); t_stat cdr_detach(UNIT *); t_stat cdr_help(FILE *, DEVICE *, UNIT *, int32, const char *); const char *cdr_description(DEVICE *dptr); @@ -93,7 +93,7 @@ const char *cdr_description(DEVICE *dptr); #if NUM_DEVS_CDP > 0 t_stat cdp_srv(UNIT *); -t_stat cdp_attach(UNIT *, char *); +t_stat cdp_attach(UNIT *, CONST char *); t_stat cdp_detach(UNIT *); t_stat cdp_help(FILE *, DEVICE *, UNIT *, int32, const char *); const char *cdp_description(DEVICE *dptr); @@ -107,10 +107,10 @@ struct _lpr_data lpr_data[NUM_DEVS_LPR]; t_stat lpr_srv(UNIT *); -t_stat lpr_attach(UNIT *, char *); +t_stat lpr_attach(UNIT *, CONST char *); t_stat lpr_detach(UNIT *); -t_stat lpr_setlpp(UNIT *, int32, char *, void *); -t_stat lpr_getlpp(FILE *, UNIT *, int32, void *); +t_stat lpr_setlpp(UNIT *, int32, CONST char *, void *); +t_stat lpr_getlpp(FILE *, UNIT *, int32, CONST void *); t_stat lpr_help(FILE *, DEVICE *, UNIT *, int32, const char *); const char *lpr_description(DEVICE *dptr); #endif @@ -126,7 +126,7 @@ con_data[NUM_DEVS_CON]; t_stat con_ini(DEVICE *); t_stat con_srv(UNIT *); -t_stat con_attach(UNIT *, char *); +t_stat con_attach(UNIT *, CONST char *); t_stat con_detach(UNIT *); t_stat con_help(FILE *, DEVICE *, UNIT *, int32, const char *); const char *con_description(DEVICE *dptr); @@ -146,7 +146,7 @@ MTAB cdr_mod[] = { {MTAB_XTD | MTAB_VUN, 0, "FORMAT", "FORMAT", &sim_card_set_fmt, &sim_card_show_fmt, NULL, "Sets card format"}, - {MODE_EOF, MODE_EOF, "EOF", "EOF", NULL, NULL, + {MODE_EOF, MODE_EOF, "EOF", "EOF", NULL, NULL, NULL, "Causes EOF to be set when reader empty"}, {0} }; @@ -420,7 +420,7 @@ cdr_boot(int32 unit_num, DEVICE * dptr) } t_stat -cdr_attach(UNIT * uptr, char *file) +cdr_attach(UNIT * uptr, CONST char *file) { t_stat r; int u = uptr-cdr_unit; @@ -523,7 +523,7 @@ cdp_srv(UNIT *uptr) { t_stat -cdp_attach(UNIT * uptr, char *file) +cdp_attach(UNIT * uptr, CONST char *file) { t_stat r; @@ -568,7 +568,7 @@ cdp_description(DEVICE *dptr) #if NUM_DEVS_LPR > 0 t_stat -lpr_setlpp(UNIT *uptr, int32 val, char *cptr, void *desc) +lpr_setlpp(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int i; if (cptr == NULL) @@ -589,7 +589,7 @@ lpr_setlpp(UNIT *uptr, int32 val, char *cptr, void *desc) } t_stat -lpr_getlpp(FILE *st, UNIT *uptr, int32 v, void *desc) +lpr_getlpp(FILE *st, UNIT *uptr, int32 v, CONST void *desc) { if (uptr == NULL) return SCPE_IERR; @@ -791,7 +791,7 @@ lpr_srv(UNIT *uptr) { } t_stat -lpr_attach(UNIT * uptr, char *file) +lpr_attach(UNIT * uptr, CONST char *file) { t_stat r; int u = (uptr - lpr_unit); diff --git a/B5500/sim_card.c b/B5500/sim_card.c index 83117ada..0e5e4909 100644 --- a/B5500/sim_card.c +++ b/B5500/sim_card.c @@ -332,7 +332,7 @@ const uint8 sim_parity_table[64] = { struct card_formats { uint32 mode; - char *name; + const char *name; }; static struct card_formats fmts[] = { @@ -459,7 +459,7 @@ sim_hol_to_ebcdic(uint16 hol) { -static int cmpcard(char *p, char *s) { +static int cmpcard(const char *p, const char *s) { int i; if (p[0] != '~') return 0; @@ -904,7 +904,7 @@ sim_punch_card(UNIT * uptr, UNIT *stkuptr) } /* Set card format */ -t_stat sim_card_set_fmt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sim_card_set_fmt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int f; @@ -921,7 +921,7 @@ t_stat sim_card_set_fmt (UNIT *uptr, int32 val, char *cptr, void *desc) /* Show card format */ -t_stat sim_card_show_fmt (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sim_card_show_fmt (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int f; @@ -937,7 +937,7 @@ t_stat sim_card_show_fmt (FILE *st, UNIT *uptr, int32 val, void *desc) t_stat -sim_card_attach(UNIT * uptr, char *cptr) +sim_card_attach(UNIT * uptr, CONST char *cptr) { t_stat r; struct _card_data *data; diff --git a/B5500/sim_card.h b/B5500/sim_card.h index 2dfa0ac8..ee323546 100644 --- a/B5500/sim_card.h +++ b/B5500/sim_card.h @@ -91,7 +91,7 @@ struct _card_data t_stat sim_read_card(UNIT * uptr); int sim_card_eof(UNIT * uptr); t_stat sim_punch_card(UNIT * uptr, UNIT *stkptr); -t_stat sim_card_attach(UNIT * uptr, char *file); +t_stat sim_card_attach(UNIT * uptr, CONST char *file); t_stat sim_card_detach(UNIT *uptr); /* Conversion routines to save code */ @@ -101,13 +101,13 @@ uint8 sim_hol_to_bcd(uint16 hol); uint8 sim_hol_to_ebbcd(uint16 hol); /* Format control routines. */ -t_stat sim_card_set_fmt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sim_card_show_fmt (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat sim_card_set_fmt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sim_card_show_fmt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* Help information */ t_stat sim_card_attach_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); /* Translation tables */ -const char sim_six_to_ascii[64]; -const char sim_ascii_to_six[128]; -const uint8 sim_parity_table[64]; +extern const char sim_six_to_ascii[64]; +extern const char sim_ascii_to_six[128]; +extern const uint8 sim_parity_table[64]; diff --git a/BESM6/besm6_cpu.c b/BESM6/besm6_cpu.c index cfe4634f..5fdc71fc 100644 --- a/BESM6/besm6_cpu.c +++ b/BESM6/besm6_cpu.c @@ -91,9 +91,9 @@ jmp_buf cpu_halt; t_stat cpu_examine (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_deposit (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_req (UNIT *u, int32 val, char *cptr, void *desc); -t_stat cpu_set_pult (UNIT *u, int32 val, char *cptr, void *desc); -t_stat cpu_show_pult (FILE *st, UNIT *up, int32 v, void *dp); +t_stat cpu_req (UNIT *u, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_pult (UNIT *u, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_pult (FILE *st, UNIT *up, int32 v, CONST void *dp); /* @@ -392,7 +392,7 @@ t_stat cpu_reset (DEVICE *dptr) /* * Request routine */ -t_stat cpu_req (UNIT *u, int32 val, char *cptr, void *desc) +t_stat cpu_req (UNIT *u, int32 val, CONST char *cptr, void *desc) { GRP |= GRP_PANEL_REQ; return SCPE_OK; @@ -401,7 +401,7 @@ t_stat cpu_req (UNIT *u, int32 val, char *cptr, void *desc) /* * Hardwired program selector validation */ -t_stat cpu_set_pult (UNIT *u, int32 val, char *cptr, void *desc) +t_stat cpu_set_pult (UNIT *u, int32 val, CONST char *cptr, void *desc) { int sw; if (cptr) sw = atoi(cptr); else sw = 0; @@ -417,7 +417,7 @@ t_stat cpu_set_pult (UNIT *u, int32 val, char *cptr, void *desc) return SCPE_ARG; } -t_stat cpu_show_pult (FILE *st, UNIT *up, int32 v, void *dp) +t_stat cpu_show_pult (FILE *st, UNIT *up, int32 v, CONST void *dp) { fprintf(st, "Pult packet switch position is %d", pult_packet_switch); return SCPE_OK; diff --git a/BESM6/besm6_defs.h b/BESM6/besm6_defs.h index ef85a8c1..6daa5753 100644 --- a/BESM6/besm6_defs.h +++ b/BESM6/besm6_defs.h @@ -358,9 +358,9 @@ void besm6_debug (const char *fmt, ...); t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw); void besm6_draw_panel (int force); -t_stat besm6_init_panel (UNIT *u, int32 val, char *cptr, void *desc); -t_stat besm6_close_panel (UNIT *u, int32 val, char *cptr, void *desc); -t_stat besm6_show_panel (FILE *st, UNIT *up, int32 v, void *dp); +t_stat besm6_init_panel (UNIT *u, int32 val, CONST char *cptr, void *desc); +t_stat besm6_close_panel (UNIT *u, int32 val, CONST char *cptr, void *desc); +t_stat besm6_show_panel (FILE *st, UNIT *up, int32 v, CONST void *dp); /* * Ðрифметика. diff --git a/BESM6/besm6_disk.c b/BESM6/besm6_disk.c index 76db0e71..fd49e89b 100644 --- a/BESM6/besm6_disk.c +++ b/BESM6/besm6_disk.c @@ -123,7 +123,7 @@ MTAB disk_mod[] = { }; t_stat disk_reset (DEVICE *dptr); -t_stat disk_attach (UNIT *uptr, char *cptr); +t_stat disk_attach (UNIT *uptr, CONST char *cptr); t_stat disk_detach (UNIT *uptr); DEVICE disk_dev = { @@ -163,7 +163,7 @@ t_stat disk_reset (DEVICE *dptr) return SCPE_OK; } -t_stat disk_attach (UNIT *u, char *cptr) +t_stat disk_attach (UNIT *u, CONST char *cptr) { t_stat s; int32 saved_switches = sim_switches; @@ -174,7 +174,7 @@ t_stat disk_attach (UNIT *u, char *cptr) if ((s == SCPE_OK) && (sim_switches & SWMASK ('N'))) { t_value control[4]; /* block (zone) number, key, userid, checksum */ int diskno, blkno, word; - char *pos; + const char *pos; /* Using the rightmost sequence of digits within the filename * as a volume number, e.g. "/var/tmp/besm6/2052.bin" -> 2052 */ diff --git a/BESM6/besm6_drum.c b/BESM6/besm6_drum.c index 93b0d777..9b7781ee 100644 --- a/BESM6/besm6_drum.c +++ b/BESM6/besm6_drum.c @@ -82,7 +82,7 @@ MTAB drum_mod[] = { }; t_stat drum_reset (DEVICE *dptr); -t_stat drum_attach (UNIT *uptr, char *cptr); +t_stat drum_attach (UNIT *uptr, CONST char *cptr); t_stat drum_detach (UNIT *uptr); DEVICE drum_dev = { @@ -107,7 +107,7 @@ t_stat drum_reset (DEVICE *dptr) return SCPE_OK; } -t_stat drum_attach (UNIT *u, char *cptr) +t_stat drum_attach (UNIT *u, CONST char *cptr) { t_stat s; diff --git a/BESM6/besm6_panel.c b/BESM6/besm6_panel.c index 06022b99..87cccba4 100644 --- a/BESM6/besm6_panel.c +++ b/BESM6/besm6_panel.c @@ -429,7 +429,7 @@ static void draw_brz_static (int left, int top) /* * Closing the graphical window. */ -t_stat besm6_close_panel (UNIT *u, int32 val, char *cptr, void *desc) +t_stat besm6_close_panel (UNIT *u, int32 val, CONST char *cptr, void *desc) { if (! screen) return SCPE_NOTATT; @@ -441,7 +441,7 @@ t_stat besm6_close_panel (UNIT *u, int32 val, char *cptr, void *desc) return SCPE_OK; } -t_stat besm6_show_panel (FILE *st, UNIT *up, int32 v, void *dp) +t_stat besm6_show_panel (FILE *st, UNIT *up, int32 v, CONST void *dp) { if (screen) fprintf(st, "Panel displayed"); @@ -459,7 +459,7 @@ static SDL_Texture *sdlTexture; /* * Initializing of the graphical window and the fonts. */ -t_stat besm6_init_panel (UNIT *u, int32 val, char *cptr, void *desc) +t_stat besm6_init_panel (UNIT *u, int32 val, CONST char *cptr, void *desc) { if (screen) return SCPE_ALATT; @@ -678,17 +678,17 @@ void besm6_draw_panel (int force) #endif /* SDL_MAJOR_VERSION */ #else /* HAVE_LIBSDL */ -t_stat besm6_init_panel (UNIT *u, int32 val, char *cptr, void *desc) +t_stat besm6_init_panel (UNIT *u, int32 val, CONST char *cptr, void *desc) { return sim_messagef(SCPE_OPENERR, "Need SDL and SDLttf libraries"); } -t_stat besm6_close_panel (UNIT *u, int32 val, char *cptr, void *desc) +t_stat besm6_close_panel (UNIT *u, int32 val, CONST char *cptr, void *desc) { return SCPE_NOTATT; } -t_stat besm6_show_panel (FILE *st, UNIT *up, int32 v, void *dp) +t_stat besm6_show_panel (FILE *st, UNIT *up, int32 v, CONST void *dp) { return SCPE_NOTATT; } diff --git a/BESM6/besm6_printer.c b/BESM6/besm6_printer.c index 56f1c641..4fb2a67f 100644 --- a/BESM6/besm6_printer.c +++ b/BESM6/besm6_printer.c @@ -74,7 +74,7 @@ MTAB printer_mod[] = { }; t_stat printer_reset (DEVICE *dptr); -t_stat printer_attach (UNIT *uptr, char *cptr); +t_stat printer_attach (UNIT *uptr, CONST char *cptr); t_stat printer_detach (UNIT *uptr); DEVICE printer_dev = { @@ -101,7 +101,7 @@ t_stat printer_reset (DEVICE *dptr) return SCPE_OK; } -t_stat printer_attach (UNIT *u, char *cptr) +t_stat printer_attach (UNIT *u, CONST char *cptr) { t_stat s; int num = u - printer_unit; diff --git a/BESM6/besm6_punch.c b/BESM6/besm6_punch.c index 7bb3b2cd..3f3440a6 100644 --- a/BESM6/besm6_punch.c +++ b/BESM6/besm6_punch.c @@ -75,7 +75,7 @@ MTAB fs_mod[] = { }; t_stat fs_reset (DEVICE *dptr); -t_stat fs_attach (UNIT *uptr, char *cptr); +t_stat fs_attach (UNIT *uptr, CONST char *cptr); t_stat fs_detach (UNIT *uptr); DEVICE fs_dev = { @@ -123,7 +123,7 @@ t_stat fs_reset (DEVICE *dptr) * Attaches a raw binary file by default, * with a -t switch attaches a prepared text file in UTF-8. */ -t_stat fs_attach (UNIT *u, char *cptr) +t_stat fs_attach (UNIT *u, CONST char *cptr) { t_stat s; int num = u - fs_unit; diff --git a/BESM6/besm6_sys.c b/BESM6/besm6_sys.c index 95af78f9..c1d7899f 100644 --- a/BESM6/besm6_sys.c +++ b/BESM6/besm6_sys.c @@ -239,7 +239,7 @@ double besm6_to_ieee (t_value word) /* * ПропуÑк пробелов. */ -char *skip_spaces (char *p) +CONST char *skip_spaces (CONST char *p) { for (;;) { if (*p == (char) 0xEF && p[1] == (char) 0xBB && p[2] == (char) 0xBF) { @@ -259,7 +259,7 @@ char *skip_spaces (char *p) * Fetch Unicode symbol from UTF-8 string. * Advance string pointer. */ -int utf8_to_unicode (char **p) +int utf8_to_unicode (CONST char **p) { int c1, c2, c3; @@ -273,7 +273,7 @@ int utf8_to_unicode (char **p) return (c1 & 0x0f) << 12 | (c2 & 0x3f) << 6 | (c3 & 0x3f); } -char *besm6_parse_octal (char *cptr, int *offset) +char *besm6_parse_octal (const char *cptr, int *offset) { char *eptr; @@ -283,7 +283,7 @@ char *besm6_parse_octal (char *cptr, int *offset) return eptr; } -static char *get_alnum (char *iptr, char *optr) +static CONST char *get_alnum (CONST char *iptr, char *optr) { while ((*iptr >= 'a' && *iptr<='z') || (*iptr >= 'A' && *iptr<='Z') || @@ -298,7 +298,7 @@ static char *get_alnum (char *iptr, char *optr) * Parse single instruction (half word). * Allow mnemonics or octal code. */ -char *parse_instruction (char *cptr, uint32 *val) +CONST char *parse_instruction (CONST char *cptr, uint32 *val) { int opcode, reg, addr, negate; char gbuf[CBUFSIZE]; @@ -391,7 +391,7 @@ char *parse_instruction (char *cptr, uint32 *val) /* * Instruction parse: two commands per word. */ -t_stat parse_instruction_word (char *cptr, t_value *val) +t_stat parse_instruction_word (CONST char *cptr, t_value *val) { uint32 left, right; @@ -535,7 +535,7 @@ t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, * Outputs: * status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 i; @@ -569,7 +569,8 @@ t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) */ t_stat besm6_read_line (FILE *input, int *type, t_value *val) { - char buf [512], *p; + char buf [512]; + CONST char *p; int i, c; again: if (! fgets (buf, sizeof (buf), input)) { @@ -685,7 +686,7 @@ t_stat besm6_load (FILE *input) /* * Dump memory to file. */ -t_stat besm6_dump (FILE *of, char *fnam) +t_stat besm6_dump (FILE *of, const char *fnam) { int addr, last_addr = -1; t_value word; @@ -728,7 +729,7 @@ t_stat besm6_dump (FILE *of, char *fnam) /* * Loader/dumper */ -t_stat sim_load (FILE *fi, char *cptr, char *fnam, int dump_flag) +t_stat sim_load (FILE *fi, CONST char *cptr, CONST char *fnam, int dump_flag) { if (dump_flag) return besm6_dump (fi, fnam); diff --git a/BESM6/besm6_tty.c b/BESM6/besm6_tty.c index 0c869027..912c3125 100644 --- a/BESM6/besm6_tty.c +++ b/BESM6/besm6_tty.c @@ -94,7 +94,7 @@ char *vt_cptr [LINES_MAX+1]; void tt_print(); void consul_receive(); t_stat vt_clk(UNIT *); -extern char *get_sim_sw (char *cptr); +extern const char *get_sim_sw (const char *cptr); extern int32 tmr_poll; /* calibrated clock timer poll */ int attached_console; @@ -260,7 +260,7 @@ t_stat vt_clk (UNIT * this) return sim_activate(this, 1000*MSEC/300); } -t_stat tty_setmode (UNIT *u, int32 val, char *cptr, void *desc) +t_stat tty_setmode (UNIT *u, int32 val, CONST char *cptr, void *desc) { int num = u - tty_unit; TMLN *t = &tty_line [num]; @@ -315,7 +315,7 @@ t_stat tty_setmode (UNIT *u, int32 val, char *cptr, void *desc) * attach tty * Where is the port number for telnet, e.g. 4199. */ -t_stat tty_attach (UNIT *u, char *cptr) +t_stat tty_attach (UNIT *u, CONST char *cptr) { int num = u - tty_unit; char gbuf[CBUFSIZE]; @@ -462,7 +462,7 @@ void vt_puts (int num, const char *s) return; if (t->rcve) { /* A telnet connection. */ - tmxr_linemsg (t, (char*) s); + tmxr_linemsg (t, s); } else { /* Console output. */ while (*s) sim_putchar(*s++); @@ -686,12 +686,12 @@ static int unicode_to_koi7 (unsigned val) /* * Set command */ -static t_stat cmd_set (int32 num, char *cptr) +static t_stat cmd_set (int32 num, CONST char *cptr) { char gbuf [CBUFSIZE]; int len; - cptr = get_sim_sw (cptr); + cptr = (CONST char *)get_sim_sw (cptr); if (! cptr) return SCPE_INVSW; if (! *cptr) @@ -734,14 +734,14 @@ static t_stat cmd_set (int32 num, char *cptr) /* * Show command */ -static t_stat cmd_show (int32 num, char *cptr) +static t_stat cmd_show (int32 num, CONST char *cptr) { TMLN *t = &tty_line [num]; char gbuf [CBUFSIZE]; MTAB *m; int len; - cptr = get_sim_sw (cptr); + cptr = (CONST char *)get_sim_sw (cptr); if (! cptr) return SCPE_INVSW; if (! *cptr) { @@ -779,12 +779,12 @@ static t_stat cmd_show (int32 num, char *cptr) /* * Exit command */ -static t_stat cmd_exit (int32 num, char *cptr) +static t_stat cmd_exit (int32 num, CONST char *cptr) { return SCPE_EXIT; } -static t_stat cmd_help (int32 num, char *cptr); +static t_stat cmd_help (int32 num, CONST char *cptr); static CTAB cmd_table[] = { { "SET", &cmd_set, 0, @@ -834,13 +834,13 @@ static CTAB *lookup_cmd (char *command) /* * Help command */ -static t_stat cmd_help (int32 num, char *cptr) +static t_stat cmd_help (int32 num, CONST char *cptr) { TMLN *t = &tty_line [num]; char gbuf [CBUFSIZE]; CTAB *c; - cptr = get_sim_sw (cptr); + cptr = (CONST char *)get_sim_sw (cptr); if (! cptr) return SCPE_INVSW; if (! *cptr) { @@ -868,7 +868,8 @@ static t_stat cmd_help (int32 num, char *cptr) void vt_cmd_exec (int num) { TMLN *t = &tty_line [num]; - char *cptr, gbuf [CBUFSIZE]; + char gbuf [CBUFSIZE]; + CONST char *cptr; CTAB *cmdp; t_stat err; extern char *scp_errors[]; diff --git a/GRI/gri_cpu.c b/GRI/gri_cpu.c index 65cbb45c..0c0aab80 100644 --- a/GRI/gri_cpu.c +++ b/GRI/gri_cpu.c @@ -190,7 +190,7 @@ REG *scq_r = NULL; /* PC queue reg ptr */ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat bus_op (uint32 src, uint32 op, uint32 dst); /* Dispatch tables for source, dest, function out, skip on function */ @@ -1087,7 +1087,7 @@ M[addr] = val & DMASK; return SCPE_OK; } -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; diff --git a/GRI/gri_stddev.c b/GRI/gri_stddev.c index a1ada830..21f4f3d6 100644 --- a/GRI/gri_stddev.c +++ b/GRI/gri_stddev.c @@ -53,7 +53,7 @@ t_stat tti_svc (UNIT *uhsr); t_stat tto_svc (UNIT *uhsr); t_stat tti_reset (DEVICE *dhsr); t_stat tto_reset (DEVICE *dhsr); -t_stat tty_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tty_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat hsr_svc (UNIT *uhsr); t_stat hsp_svc (UNIT *uhsr); t_stat hsr_reset (DEVICE *dhsr); @@ -295,7 +295,7 @@ sim_cancel (&tto_unit); /* deactivate unit */ return SCPE_OK; } -t_stat tty_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tty_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { tti_unit.flags = (tti_unit.flags & ~TT_MODE) | val; tto_unit.flags = (tto_unit.flags & ~TT_MODE) | val; diff --git a/GRI/gri_sys.c b/GRI/gri_sys.c index 65da9cbd..77c196c7 100644 --- a/GRI/gri_sys.c +++ b/GRI/gri_sys.c @@ -82,7 +82,7 @@ const char *sim_stop_messages[] = { continue and load all blocks until end of tape. */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 c; uint32 org; @@ -472,7 +472,7 @@ return SCPE_ARG; get_op get optional bus operator */ -char *get_fnc (char *cptr, t_value *val) +CONST char *get_fnc (CONST char *cptr, t_value *val) { char gbuf[CBUFSIZE]; int32 i; @@ -509,7 +509,7 @@ val[0] = val[0] | (fncv << I_V_OP); /* store fnc */ return cptr; } -char *get_ma (char *cptr, t_value *val, char term) +CONST char *get_ma (CONST char *cptr, t_value *val, char term) { char gbuf[CBUFSIZE]; t_value d; @@ -525,7 +525,7 @@ val[1] = d; /* second wd */ return cptr; } -char *get_sd (char *cptr, t_value *val, char term, t_bool src) +CONST char *get_sd (CONST char *cptr, t_value *val, char term, t_bool src) { char gbuf[CBUFSIZE]; int32 d; @@ -546,9 +546,10 @@ val[0] = val[0] | (d << (src? I_V_SRC: I_V_DST)); /* or to inst */ return cptr; } -char *get_op (char *cptr, t_value *val, char term) +CONST char *get_op (CONST char *cptr, t_value *val, char term) { -char gbuf[CBUFSIZE], *tptr; +char gbuf[CBUFSIZE]; +CONST char *tptr; int32 i; tptr = get_glyph (cptr, gbuf, term); /* get glyph */ @@ -573,10 +574,10 @@ return cptr; /* original ptr */ status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 i, j, k; -char *tptr, gbuf[CBUFSIZE]; +char gbuf[CBUFSIZE]; while (isspace (*cptr)) cptr++; /* absorb spaces */ if ((sw & SWMASK ('A')) || ((*cptr == '\'') && cptr++)) { /* ASCII char? */ @@ -604,14 +605,11 @@ j = (opc_val[i] >> F_V_FL) & F_M_FL; /* get class */ switch (j) { /* case on class */ case F_V_FO: /* func out */ - tptr = strchr (cptr, ','); /* find dst */ - if (!tptr) /* none? */ + cptr = get_glyph (cptr, gbuf, ','); /* fo # */ + if ((!cptr) || (!*cptr)) /* none? */ return SCPE_ARG; - *tptr = 0; /* split fields */ - cptr = get_fnc (cptr, val); /* fo # */ - if (!cptr) - return SCPE_ARG; - cptr = get_sd (tptr + 1, val, 0, FALSE); /* dst */ + get_fnc (gbuf, val); /* fo # */ + cptr = get_sd (cptr, val, 0, FALSE); /* dst */ break; case F_V_FOI: /* func out impl */ diff --git a/H316/h316_cpu.c b/H316/h316_cpu.c index 2caa42b9..bbcc1592 100644 --- a/H316/h316_cpu.c +++ b/H316/h316_cpu.c @@ -302,15 +302,15 @@ int32 undio (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_noext (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_show_dma (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_nchan (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_nchan (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_interrupts (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_interrupts (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_noext (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_show_dma (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_nchan (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_nchan (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_interrupts (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_interrupts (FILE *st, UNIT *uptr, int32 val, CONST void *desc); int32 sim_ota_2024 (int32 inst, int32 fnc, int32 dat, int32 dev); int32 cpu_interrupt (int32 vec); int32 cpu_ext_interrupt (void); @@ -1479,14 +1479,14 @@ return SCPE_OK; /* Option processors */ -t_stat cpu_set_noext (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_noext (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (MEMSIZE > (NX_AMASK + 1)) return SCPE_ARG; return SCPE_OK; } -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -1506,7 +1506,7 @@ return SCPE_OK; /* [RLA] Set/Show number of interrupts supported */ -t_stat cpu_set_interrupts (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_interrupts (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 newint; t_stat ret; if (cptr == NULL) return SCPE_ARG; @@ -1517,7 +1517,7 @@ t_stat cpu_set_interrupts (UNIT *uptr, int32 val, char *cptr, void *desc) return SCPE_OK; } -t_stat cpu_show_interrupts (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_interrupts (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (ext_ints == 0) fprintf(st,"standard interrupts"); @@ -1526,7 +1526,7 @@ t_stat cpu_show_interrupts (FILE *st, UNIT *uptr, int32 val, void *desc) return SCPE_OK; } -t_stat cpu_set_nchan (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_nchan (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i, newmax; t_stat r; @@ -1546,7 +1546,7 @@ return SCPE_OK; /* Show DMA channels */ -t_stat cpu_show_nchan (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_nchan (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (dma_nch) fprintf (st, "DMA channels = %d", dma_nch); @@ -1556,7 +1556,7 @@ return SCPE_OK; /* Show channel state */ -t_stat cpu_show_dma (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_dma (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if ((val < 0) || (val >= DMA_MAX)) return SCPE_IERR; @@ -1568,7 +1568,7 @@ return SCPE_OK; /* Set I/O device to IOBUS / DMA channel / DMC channel */ -t_stat io_set_iobus (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat io_set_iobus (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -1585,7 +1585,7 @@ dibp->chan = 0; return SCPE_OK; } -t_stat io_set_dma (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat io_set_dma (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -1609,7 +1609,7 @@ dibp->chan = (newc - DMA_MIN) + DMA_V_DMA1 + 1; /* store */ return SCPE_OK; } -t_stat io_set_dmc (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat io_set_dmc (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -1635,7 +1635,7 @@ return SCPE_OK; /* Show channel configuration */ -t_stat io_show_chan (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat io_show_chan (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; DIB *dibp; @@ -1722,7 +1722,7 @@ return FALSE; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -1753,10 +1753,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 cr, k, di, op, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_value sim_eval; t_stat r; InstHistory *h; diff --git a/H316/h316_defs.h b/H316/h316_defs.h index dc7a8ba6..7a24c4e7 100644 --- a/H316/h316_defs.h +++ b/H316/h316_defs.h @@ -219,9 +219,9 @@ typedef struct h316_dib DIB; /* Prototypes */ -t_stat io_set_iobus (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat io_set_dma (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat io_set_dmc (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat io_show_chan (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat io_set_iobus (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat io_set_dma (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat io_set_dmc (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat io_show_chan (FILE *st, UNIT *uptr, int32 val, CONST void *desc); #endif diff --git a/H316/h316_dp.c b/H316/h316_dp.c index 9f43e3b9..afec811f 100644 --- a/H316/h316_dp.c +++ b/H316/h316_dp.c @@ -195,7 +195,7 @@ #define CAP_4720 (CYL_4720*SURF_4720*DP_TRKLEN) struct drvtyp { - char *name; + const char *name; uint32 numu; uint32 cyl; uint32 surf; @@ -247,9 +247,9 @@ uint16 dpxb[DP_TRKLEN]; /* track buffer */ int32 dpio (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat dp_svc (UNIT *uptr); t_stat dp_reset (DEVICE *dptr); -t_stat dp_attach (UNIT *uptr, char *cptr); -t_stat dp_settype (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dp_showtype (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat dp_attach (UNIT *uptr, CONST char *cptr); +t_stat dp_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dp_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat dp_go (uint32 dma); t_stat dp_go1 (uint32 dat); t_stat dp_go2 (uint32 dat); @@ -259,8 +259,8 @@ t_bool dp_findrec (uint32 addr); t_stat dp_wrwd (UNIT *uptr, uint32 dat); t_stat dp_wrdone (UNIT *uptr, uint32 flg); t_stat dp_done (uint32 req, uint32 f); -t_stat dp_setformat (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dp_showformat (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat dp_setformat (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dp_showformat (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* DP data structures @@ -912,7 +912,7 @@ return SCPE_OK; /* Attach routine, test formating */ -t_stat dp_attach (UNIT *uptr, char *cptr) +t_stat dp_attach (UNIT *uptr, CONST char *cptr) { t_stat r; r = attach_unit (uptr, cptr); @@ -923,7 +923,7 @@ return dp_showformat (stdout, uptr, 0, NULL); /* Set controller type */ -t_stat dp_settype (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dp_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i; @@ -940,7 +940,7 @@ return SCPE_OK; /* Show controller type */ -t_stat dp_showtype (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dp_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (dp_ctype >= DP_NUMTYP) return SCPE_IERR; @@ -970,7 +970,7 @@ return SCPE_OK; per record. */ -t_stat dp_setformat (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dp_setformat (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 h, c, cntr, rptr; int32 i, nr, nw, inp; @@ -1027,7 +1027,7 @@ return SCPE_OK; /* Show format */ -t_stat dp_showformat (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dp_showformat (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 c, h, rptr, rlnt, sec; uint32 minrec = DP_TRKLEN; diff --git a/H316/h316_fhd.c b/H316/h316_fhd.c index e711adab..6b72719f 100644 --- a/H316/h316_fhd.c +++ b/H316/h316_fhd.c @@ -97,8 +97,8 @@ int32 fhd_time = 10; /* time per word */ int32 fhdio (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat fhd_svc (UNIT *uptr); t_stat fhd_reset (DEVICE *dptr); -t_stat fhd_attach (UNIT *uptr, char *cptr); -t_stat fhd_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat fhd_attach (UNIT *uptr, CONST char *cptr); +t_stat fhd_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void fhd_go (uint32 dma); void fhd_go1 (uint32 dat); void fhd_go2 (uint32 dat); @@ -398,7 +398,7 @@ uint32 tk = CW1_GETTK (fhd_cw1); /* track */ uint32 ca = CW2_GETCA (fhd_cw2); /* char addr */ uint32 wa = ca >> 1; /* word addr */ uint32 ba = (((sf * FH_NUMTK) + tk) * FH_NUMWD) + wa; /* buffer offset */ -uint16 *fbuf = uptr->filebuf; /* buffer base */ +uint16 *fbuf = (uint16 *)uptr->filebuf; /* buffer base */ ch = ch & 0377; /* mask char */ if (fhd_bad_wa (wa)) /* addr bad? */ @@ -456,7 +456,7 @@ return SCPE_OK; /* Attach routine */ -t_stat fhd_attach (UNIT *uptr, char *cptr) +t_stat fhd_attach (UNIT *uptr, CONST char *cptr) { uint32 sz, sf; uint32 ds_bytes = FH_WDPSF * sizeof (int16); @@ -474,7 +474,7 @@ return attach_unit (uptr, cptr); /* Set size routine */ -t_stat fhd_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat fhd_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val < 0) return SCPE_IERR; diff --git a/H316/h316_hi.c b/H316/h316_hi.c index 6ef81e56..5a5e53d0 100644 --- a/H316/h316_hi.c +++ b/H316/h316_hi.c @@ -68,7 +68,7 @@ int32 hi3_io (int32 inst, int32 fnc, int32 dat, int32 dev); int32 hi4_io (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat hi_service (UNIT *uptr); t_stat hi_reset (DEVICE *dptr); -t_stat hi_attach (UNIT *uptr, char *cptr); +t_stat hi_attach (UNIT *uptr, CONST char *cptr); t_stat hi_detach (UNIT *uptr); @@ -303,7 +303,7 @@ t_stat hi_reset (DEVICE *dptr) } // Attach (connect) ... -t_stat hi_attach (UNIT *uptr, char *cptr) +t_stat hi_attach (UNIT *uptr, CONST char *cptr) { // simh calls this routine for (what else?) the ATTACH command. uint16 host = uptr->hline; diff --git a/H316/h316_imp.c b/H316/h316_imp.c index a99c43a1..8d75efe8 100644 --- a/H316/h316_imp.c +++ b/H316/h316_imp.c @@ -62,10 +62,10 @@ extern int32 stop_inst; // needed by IOBADFNC() int32 imp_io (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat imp_service (UNIT *uptr); t_stat imp_reset (DEVICE *dptr); -t_stat imp_show_station (FILE *st, UNIT *uptr, int32 val, void *dp); -t_stat io_show_int (FILE *st, UNIT *uptr, int32 val, void *dp); -t_stat imp_set_station (UNIT *uptr, int32 val, char *cptr, void *dp); -t_stat io_set_int (UNIT *uptr, int32 val, char *cptr, void *dp); +t_stat imp_show_station (FILE *st, UNIT *uptr, int32 val, CONST void *dp); +t_stat io_show_int (FILE *st, UNIT *uptr, int32 val, CONST void *dp); +t_stat imp_set_station (UNIT *uptr, int32 val, CONST char *cptr, void *dp); +t_stat io_set_int (UNIT *uptr, int32 val, CONST char *cptr, void *dp); @@ -172,14 +172,14 @@ t_stat imp_reset (DEVICE *dptr) //////////////////////////////////////////////////////////////////////////////// // Show the station number ... -t_stat imp_show_station (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat imp_show_station (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st,"station=%d", imp_station); return SCPE_OK; } // Set the station number ... -t_stat imp_set_station (UNIT *uptr, int32 val, char *cptr, void *dp) +t_stat imp_set_station (UNIT *uptr, int32 val, CONST char *cptr, void *dp) { uint32 newnum; t_stat sts; if (cptr == NULL) return SCPE_ARG; diff --git a/H316/h316_imp.h b/H316/h316_imp.h index 78e37a66..96e431f0 100644 --- a/H316/h316_imp.h +++ b/H316/h316_imp.h @@ -189,7 +189,7 @@ extern t_stat mi_tx_service (uint32 quantum); // Prototypes for UDP modem/host interface emulation routines ... #define NOLINK (-1) -t_stat udp_create (DEVICE *pdtr, char *premote, int32 *plink); +t_stat udp_create (DEVICE *pdtr, const char *premote, int32 *plink); t_stat udp_release (DEVICE *dptr, int32 link); t_stat udp_send (DEVICE *pdtr, int32 link, uint16 *pdata, uint16 count); t_stat udp_set_link_loopback (DEVICE *dptr, int32 link, t_bool enable_loopback); diff --git a/H316/h316_mi.c b/H316/h316_mi.c index ae4371f4..618f1892 100644 --- a/H316/h316_mi.c +++ b/H316/h316_mi.c @@ -187,10 +187,10 @@ int32 mi5_io (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat mi_rx_service (UNIT *uptr); void mi_rx_local (uint16 line, uint16 txnext, uint16 txcount); t_stat mi_reset (DEVICE *dptr); -t_stat mi_attach (UNIT *uptr, char *cptr); +t_stat mi_attach (UNIT *uptr, CONST char *cptr); t_stat mi_detach (UNIT *uptr); -t_stat mi_set_loopback (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat mi_show_loopback (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat mi_set_loopback (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat mi_show_loopback (FILE *st, UNIT *uptr, int32 val, CONST void *desc); @@ -678,7 +678,7 @@ t_stat mi_reset (DEVICE *dptr) } // Attach device ... -t_stat mi_attach (UNIT *uptr, char *cptr) +t_stat mi_attach (UNIT *uptr, CONST char *cptr) { // simh calls this routine for (what else?) the ATTACH command. There are // three distinct formats for ATTACH - @@ -730,7 +730,7 @@ t_stat mi_detach (UNIT *uptr) return mi_reset(PDEVICE(line)); } -t_stat mi_set_loopback (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat mi_set_loopback (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat ret = SCPE_OK; uint16 line = uptr->mline; @@ -752,7 +752,7 @@ t_stat mi_set_loopback (UNIT *uptr, int32 val, char *cptr, void *desc) return ret; } -t_stat mi_show_loopback (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat mi_show_loopback (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint16 line = uptr->mline; diff --git a/H316/h316_mt.c b/H316/h316_mt.c index 320a6ab9..9b5ba972 100644 --- a/H316/h316_mt.c +++ b/H316/h316_mt.c @@ -107,7 +107,7 @@ int32 mtio (int32 inst, int32 fnc, int32 dat, int32 dev); void mt_updint (uint32 rdy, uint32 mdone); t_stat mt_svc (UNIT *uptr); t_stat mt_reset (DEVICE *dptr); -t_stat mt_attach (UNIT *uptr, char *cptr); +t_stat mt_attach (UNIT *uptr, CONST char *cptr); t_stat mt_detach (UNIT *uptr); t_stat mt_map_err (UNIT *uptr, t_stat st); void mt_wrwd (UNIT *uptr, uint32 dat); @@ -596,7 +596,7 @@ return SCPE_OK; /* Attach routine */ -t_stat mt_attach (UNIT *uptr, char *cptr) +t_stat mt_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/H316/h316_rtc.c b/H316/h316_rtc.c index 91916ba9..0eaa3440 100644 --- a/H316/h316_rtc.c +++ b/H316/h316_rtc.c @@ -89,12 +89,12 @@ t_stat rtc_reset (DEVICE *dptr); int32 wdt_io (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat wdt_service (UNIT *uptr); t_stat wdt_reset (DEVICE *dptr); -t_stat rtc_set_interval (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rtc_show_interval (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat rtc_set_quantum(UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rtc_show_quantum (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat wdt_set_delay (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat wdt_show_delay (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat rtc_set_interval (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rtc_show_interval (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat rtc_set_quantum(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rtc_show_quantum (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat wdt_set_delay (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat wdt_show_delay (FILE *st, UNIT *uptr, int32 val, CONST void *desc); @@ -315,7 +315,7 @@ t_stat wdt_reset (DEVICE *dptr) //////////////////////////////////////////////////////////////////////////////// // Set/Show RTC interval ... -t_stat rtc_set_interval (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rtc_set_interval (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 newint, newtps; t_stat ret; if (cptr == NULL) return SCPE_ARG; @@ -329,14 +329,14 @@ t_stat rtc_set_interval (UNIT *uptr, int32 val, char *cptr, void *desc) return SCPE_OK; } -t_stat rtc_show_interval (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rtc_show_interval (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st,"interval=%d (us)", rtc_interval); return SCPE_OK; } // Set/Show RTC quantum ... -t_stat rtc_set_quantum (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rtc_set_quantum (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 newquant, newtps; t_stat ret; if (cptr == NULL) return SCPE_ARG; @@ -350,14 +350,14 @@ t_stat rtc_set_quantum (UNIT *uptr, int32 val, char *cptr, void *desc) return SCPE_OK; } -t_stat rtc_show_quantum (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rtc_show_quantum (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st,"quantum=%d (ticks)", rtc_quantum); return SCPE_OK; } // Set/Show WDT delay ... -t_stat wdt_set_delay (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat wdt_set_delay (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 newint; t_stat ret; if (cptr == NULL) return SCPE_ARG; @@ -372,7 +372,7 @@ t_stat wdt_set_delay (UNIT *uptr, int32 val, char *cptr, void *desc) return SCPE_OK; } -t_stat wdt_show_delay (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat wdt_show_delay (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (wdt_delay > 0) fprintf(st,"delay=%d (ms)", wdt_delay); diff --git a/H316/h316_stddev.c b/H316/h316_stddev.c index b618d2b0..ac005af1 100644 --- a/H316/h316_stddev.c +++ b/H316/h316_stddev.c @@ -140,15 +140,15 @@ int32 ttyio (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat tti_svc (UNIT *uptr); t_stat tto_svc (UNIT *uptr); t_stat tty_reset (DEVICE *dptr); -t_stat ttio_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ttrp_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ttrp_set_start_stop (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat ttio_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ttrp_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ttrp_set_start_stop (UNIT *uptr, int32 val, CONST char *cptr, void *desc); int32 clkio (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat clk_svc (UNIT *uptr); t_stat clk_reset (DEVICE *dptr); -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat pt_attach (UNIT *uptr, char *cptr); +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat pt_attach (UNIT *uptr, CONST char *cptr); t_stat pt_detach (UNIT *uptr); t_stat tto_write (int32 c); t_stat ttp_write (int32 c); @@ -418,7 +418,7 @@ return SCPE_OK; /* Paper tape attach routine - set or clear ASC/UASC flags if specified Can be called for TTY units at well, hence, check for attachability */ -t_stat pt_attach (UNIT *uptr, char *cptr) +t_stat pt_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -832,7 +832,7 @@ return SCPE_OK; /* Set keyboard/printer mode - make sure flags agree */ -t_stat ttio_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttio_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATTABLE) /* not TTR, TTP */ return SCPE_NOFNC; @@ -845,7 +845,7 @@ return SCPE_OK; /* Set reader/punch mode */ -t_stat ttrp_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttrp_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (!(uptr->flags & UNIT_ATTABLE)) /* PTR, PTP, TTR, TTP only */ return SCPE_NOFNC; @@ -856,7 +856,7 @@ return SCPE_OK; /* Set reader/punch start/stop */ -t_stat ttrp_set_start_stop (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttrp_set_start_stop (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (!(uptr->flags & UNIT_ATTABLE)) /* TTR, TTP only */ return SCPE_NOFNC; @@ -948,7 +948,7 @@ return SCPE_OK; /* Set frequency */ -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -960,7 +960,7 @@ return SCPE_OK; /* Show frequency */ -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, (clk_tps == 50)? "50Hz": "60Hz"); return SCPE_OK; diff --git a/H316/h316_sys.c b/H316/h316_sys.c index 1d640732..dfb2efa6 100644 --- a/H316/h316_sys.c +++ b/H316/h316_sys.c @@ -106,7 +106,7 @@ const char *sim_stop_messages[] = { Tbs. */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { return SCPE_FMT; } @@ -232,13 +232,13 @@ static const int32 opc_val[] = { #define fputs(_s,f) Fprintf(f,"%s",_s) #define fputc(_c,f) Fprintf(f,"%c",_c) -void fprint_opr (FILE *of, int32 inst, int32 class) +void fprint_opr (FILE *of, int32 inst, int32 Class) { int32 i, j, sp; for (i = sp = 0; opc_val[i] >= 0; i++) { /* loop thru ops */ j = (opc_val[i] >> I_V_FL) & I_M_FL; /* get class */ - if ((j == class) && (opc_val[i] & inst)) { /* same class? */ + if ((j == Class) && (opc_val[i] & inst)) { /* same class? */ inst = inst & ~opc_val[i]; /* mask bit set? */ fprintf (of, (sp? " %s": "%s"), opcode[i]); sp = 1; @@ -343,7 +343,7 @@ return SCPE_ARG; status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 cflag, d, i, j, k; t_stat r; diff --git a/H316/h316_udp.c b/H316/h316_udp.c index c1cb3a2f..2ea2a8e1 100644 --- a/H316/h316_udp.c +++ b/H316/h316_udp.c @@ -197,7 +197,7 @@ int32 udp_find_free_link (void) return NOLINK; } -t_stat udp_parse_remote (int32 link, char *premote) +t_stat udp_parse_remote (int32 link, const char *premote) { // This routine will parse a remote address string in any of these forms - // @@ -255,7 +255,7 @@ t_stat udp_error (int32 link, const char *msg) return SCPE_IOERR; } -t_stat udp_create (DEVICE *dptr, char *premote, int32 *pln) +t_stat udp_create (DEVICE *dptr, const char *premote, int32 *pln) { // Create a logical UDP link to the specified remote system. The "remote" // string specifies both the remote host name or IP and a port number. The diff --git a/HP2100/hp2100_baci.c b/HP2100/hp2100_baci.c index 5018c8f9..8f66cb90 100644 --- a/HP2100/hp2100_baci.c +++ b/HP2100/hp2100_baci.c @@ -1,6 +1,6 @@ /* hp2100_baci.c: HP 12966A buffered asynchronous communications interface simulator - Copyright (c) 2007-2014, J. David Bryan + Copyright (c) 2007-2016, J. David Bryan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,7 @@ BACI 12966A BACI card + 13-May-16 JDB Modified for revised SCP API function parameter types 24-Dec-14 JDB Added casts for explicit downward conversions 10-Jan-13 MP Added DEV_MUX and additional DEVICE field values 10-Feb-12 JDB Deprecated DEVNO in favor of SC @@ -378,7 +379,7 @@ IOHANDLER baci_io; t_stat baci_term_svc (UNIT *uptr); t_stat baci_poll_svc (UNIT *uptr); t_stat baci_reset (DEVICE *dptr); -t_stat baci_attach (UNIT *uptr, char *cptr); +t_stat baci_attach (UNIT *uptr, CONST char *cptr); t_stat baci_detach (UNIT *uptr); @@ -1049,7 +1050,7 @@ return SCPE_OK; /* Attach controller */ -t_stat baci_attach (UNIT *uptr, char *cptr) +t_stat baci_attach (UNIT *uptr, CONST char *cptr) { t_stat status = SCPE_OK; diff --git a/HP2100/hp2100_cpu.c b/HP2100/hp2100_cpu.c index 14bbfea4..dfe5b7ca 100644 --- a/HP2100/hp2100_cpu.c +++ b/HP2100/hp2100_cpu.c @@ -1,6 +1,6 @@ /* hp2100_cpu.c: HP 21xx/1000 CPU simulator - Copyright (c) 1993-2014, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -29,6 +29,7 @@ DMA1,DMA2 12607B/12578A/12895A direct memory access controller DCPC1,DCPC2 12897B dual channel port controller + 13-May-16 JDB Modified for revised SCP API function parameter types 31-Dec-14 JDB Corrected devdisp data parameters 30-Dec-14 JDB Added S-register parameters to ibl_copy 24-Dec-14 JDB Added casts for explicit downward conversions @@ -589,14 +590,14 @@ t_stat cpu_reset (DEVICE *dptr); t_stat cpu_boot (int32 unitno, DEVICE *dptr); t_stat mp_reset (DEVICE *dptr); t_stat dma_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 new_size, char *cptr, void *desc); -t_stat cpu_set_model (UNIT *uptr, int32 new_model, char *cptr, void *desc); -t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_opt (UNIT *uptr, int32 option, char *cptr, void *desc); -t_stat cpu_clr_opt (UNIT *uptr, int32 option, char *cptr, void *desc); -t_stat cpu_set_ldr (UNIT *uptr, int32 enable, char *cptr, void *desc); -t_stat cpu_set_idle (UNIT *uptr, int32 option, char *cptr, void *desc); -t_stat cpu_show_idle (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 new_size, CONST char *cptr, void *desc); +t_stat cpu_set_model (UNIT *uptr, int32 new_model, CONST char *cptr, void *desc); +t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_opt (UNIT *uptr, int32 option, CONST char *cptr, void *desc); +t_stat cpu_clr_opt (UNIT *uptr, int32 option, CONST char *cptr, void *desc); +t_stat cpu_set_ldr (UNIT *uptr, int32 enable, CONST char *cptr, void *desc); +t_stat cpu_set_idle (UNIT *uptr, int32 option, CONST char *cptr, void *desc); +t_stat cpu_show_idle (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void hp_post_cmd (t_bool from_scp); IOHANDLER cpuio; @@ -3666,7 +3667,7 @@ return is_conflict; - If new size < old size, truncation accepted. */ -t_stat cpu_set_size (UNIT *uptr, int32 new_size, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 new_size, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -3715,7 +3716,7 @@ return SCPE_OK; - Disables loader on 21xx machines. */ -t_stat cpu_set_model (UNIT *uptr, int32 new_model, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 new_model, CONST char *cptr, void *desc) { uint32 old_family = UNIT_CPU_FAMILY; /* current CPU type */ uint32 new_family = new_model & UNIT_FAMILY_MASK; /* new CPU family */ @@ -3799,9 +3800,9 @@ return result; Loader status is displayed for 21xx models and suppressed for 1000 models. */ -t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { -fputs ((char *) desc, st); /* write model name */ +fputs ((const char *) desc, st); /* write model name */ if (UNIT_CPU_FAMILY == UNIT_FAMILY_21XX) /* valid only for 21xx */ if (fwanxm < MEMSIZE) /* loader area non-existent? */ @@ -3822,7 +3823,7 @@ return SCPE_OK; (FP is required for FFP installation). */ -t_stat cpu_set_opt (UNIT *uptr, int32 option, char *cptr, void *desc) +t_stat cpu_set_opt (UNIT *uptr, int32 option, CONST char *cptr, void *desc) { uint32 model = CPU_MODEL_INDEX; /* current CPU model index */ @@ -3858,7 +3859,7 @@ return SCPE_OK; (FP is required for FFP installation). */ -t_bool cpu_clr_opt (UNIT *uptr, int32 option, char *cptr, void *desc) +t_bool cpu_clr_opt (UNIT *uptr, int32 option, CONST char *cptr, void *desc) { uint32 model = CPU_MODEL_INDEX; /* current CPU model index */ @@ -3904,7 +3905,7 @@ return SCPE_OK; breakpoints within and single-stepping through the loaders. */ -t_stat cpu_set_ldr (UNIT *uptr, int32 enable, char *cptr, void *desc) +t_stat cpu_set_ldr (UNIT *uptr, int32 enable, CONST char *cptr, void *desc) { static BOOT_ROM loader; int32 i; @@ -3934,20 +3935,20 @@ return SCPE_OK; /* Idle enable/disable */ -t_stat cpu_set_idle (UNIT *uptr, int32 option, char *cptr, void *desc) +t_stat cpu_set_idle (UNIT *uptr, int32 option, CONST char *cptr, void *desc) { - if (option) - return sim_set_idle (uptr, 10, NULL, NULL); - else - return sim_clr_idle (uptr, 0, NULL, NULL); +if (option) + return sim_set_idle (uptr, 10, NULL, NULL); +else + return sim_clr_idle (uptr, 0, NULL, NULL); } /* Idle display */ -t_stat cpu_show_idle (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_idle (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { - return sim_show_idle (st, uptr, val, desc); +return sim_show_idle (st, uptr, val, desc); } diff --git a/HP2100/hp2100_defs.h b/HP2100/hp2100_defs.h index f115ef48..7de6bc69 100644 --- a/HP2100/hp2100_defs.h +++ b/HP2100/hp2100_defs.h @@ -1,6 +1,6 @@ /* hp2100_defs.h: HP 2100 simulator definitions - Copyright (c) 1993-2015, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -23,6 +23,7 @@ be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from Robert M Supnik. + 13-May-16 JDB Modified for revised SCP API function parameter types 19-Jun-15 JDB Conditionally use Global_PC for PC for version 4.0 and on 30-Dec-14 JDB Added S-register parameters to ibl_copy, more IBL constants 28-Dec-14 JDB Changed suppression from #pragma GCC to #pragma clang @@ -79,8 +80,8 @@ #define HP2100_DEFS_H_ 0 -#include "sim_defs.h" #include "sim_rev.h" +#include "sim_defs.h" #if (SIM_MAJOR >= 4) @@ -485,10 +486,10 @@ extern void hp_enbdis_pair (DEVICE *ccp, DEVICE *dcp); /* System functions */ extern const char *fmt_char (uint8 ch); -extern t_stat hp_setsc (UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat hp_showsc (FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat hp_setdev (UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat hp_showdev (FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat hp_setsc (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat hp_setdev (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat hp_showsc (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat hp_showdev (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern t_bool hp_fprint_stopped (FILE *st, t_stat reason); /* Device-specific functions */ diff --git a/HP2100/hp2100_di.c b/HP2100/hp2100_di.c index 5ff94b43..cf0d9f8f 100644 --- a/HP2100/hp2100_di.c +++ b/HP2100/hp2100_di.c @@ -1,6 +1,6 @@ /* hp2100_di.c: HP 12821A HP-IB Disc Interface simulator - Copyright (c) 2010-2014, J. David Bryan + Copyright (c) 2010-2016, J. David Bryan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,7 @@ DI 12821A Disc Interface + 13-May-16 JDB Modified for revised SCP API function parameter types 24-Dec-14 JDB Added casts for explicit downward conversions Removed redundant global declarations 13-Feb-12 JDB First release @@ -805,7 +806,7 @@ return SCPE_OK; at power-up. */ -t_stat di_set_address (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat di_set_address (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { t_stat status; uint32 index, new_address; @@ -849,9 +850,9 @@ return status; /* return the result address (0) or a card's bus address (1). */ -t_stat di_show_address (FILE *st, UNIT *uptr, int32 value, void *desc) +t_stat di_show_address (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { -DEVICE *dptr = (DEVICE *) desc; +const DEVICE *dptr = (const DEVICE *) desc; if (value) /* do we want the card address? */ fprintf (st, "address=%d", GET_DIADR (dptr->flags)); /* get it from the device flags */ @@ -880,15 +881,17 @@ return SCPE_OK; will no longer be necessary. */ -t_stat di_set_cable (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat di_set_cable (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { +DEVICE *dptr = (DEVICE *) desc; + if (value) { /* is the diagnostic cable selected? */ - ((DEVICE *) desc)->flags |= DEV_DIAG; /* set the diagnostic flag */ + dptr->flags |= DEV_DIAG; /* set the diagnostic flag */ dc_dev.flags &= ~DEV_DIS; /* enable the dummy device */ dc_dev.flags |= DEV_DIAG; /* and set its flag as well */ } else { /* the peripheral cable is selected */ - ((DEVICE *) desc)->flags &= ~DEV_DIAG; /* clear the diagnostic flag */ + dptr->flags &= ~DEV_DIAG; /* clear the diagnostic flag */ dc_dev.flags |= DEV_DIS; /* disable the dummy device */ dc_dev.flags &= ~DEV_DIAG; /* and clear its flag */ } @@ -903,9 +906,11 @@ return SCPE_OK; normal use (0) or to another card for diagnostics (1). */ -t_stat di_show_cable (FILE *st, UNIT *uptr, int32 value, void *desc) +t_stat di_show_cable (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { -if (((DEVICE *) desc)->flags & DEV_DIAG) /* is the cable connected for diagnostics? */ +const DEVICE *dptr = (const DEVICE *) desc; + +if (dptr->flags & DEV_DIAG) /* is the cable connected for diagnostics? */ fputs ("diagnostic cable", st); /* report it */ else /* the cable is connected for device use */ fputs ("HP-IB cable", st); /* report the condition */ diff --git a/HP2100/hp2100_di.h b/HP2100/hp2100_di.h index 69d5f1df..377fba1a 100644 --- a/HP2100/hp2100_di.h +++ b/HP2100/hp2100_di.h @@ -1,6 +1,6 @@ /* hp2100_di.h: HP 12821A HP-IB Disc Interface simulator definitions - Copyright (c) 2010-2012, J. David Bryan + Copyright (c) 2010-2016, J. David Bryan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,7 @@ DI 12821A Disc Interface + 13-May-16 JDB Modified for revised SCP API function parameter types 14-Feb-12 JDB First release 16-Nov-10 JDB Created DI common definitions file @@ -261,10 +262,11 @@ extern t_stat di_reset (DEVICE *dptr); /* Disc interface global SCP routines */ -extern t_stat di_set_address (UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat di_show_address (FILE *st, UNIT *uptr, int32 value, void *desc); -extern t_stat di_set_cable (UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat di_show_cable (FILE *st, UNIT *uptr, int32 value, void *desc); +extern t_stat di_set_address (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat di_set_cable (UNIT *uptr, int32 value, CONST char *cptr, void *desc); + +extern t_stat di_show_address (FILE *st, UNIT *uptr, int32 value, CONST void *desc); +extern t_stat di_show_cable (FILE *st, UNIT *uptr, int32 value, CONST void *desc); /* Disc interface global bus routines */ @@ -291,8 +293,8 @@ extern t_stat ma_boot (int32 unitno, DEVICE *dptr); /* Amigo mag tape global SCP routines */ -extern t_stat ma_set_timing (UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat ma_show_timing (FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat ma_set_timing (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat ma_show_timing (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* Amigo mag tape global bus routines */ diff --git a/HP2100/hp2100_di_da.c b/HP2100/hp2100_di_da.c index 17bf908f..fe1704aa 100644 --- a/HP2100/hp2100_di_da.c +++ b/HP2100/hp2100_di_da.c @@ -25,6 +25,7 @@ DA 12821A Disc Interface with Amigo disc drives + 13-May-16 JDB Modified for revised SCP API function parameter types 04-Mar-16 JDB Name changed to "hp2100_disclib" until HP 3000 integration 30-Dec-14 JDB Added S-register parameters to ibl_copy 24-Dec-14 JDB Use T_ADDR_FMT with t_addr values for 64-bit compatibility @@ -467,12 +468,12 @@ static CNTLR_VARS icd_cntlr [DA_UNITS] = /* ICD controllers: */ /* Amigo disc global VM routines */ t_stat da_reset (DEVICE *dptr); -t_stat da_attach (UNIT *uptr, char *cptr); +t_stat da_attach (UNIT *uptr, CONST char *cptr); t_stat da_detach (UNIT *uptr); /* Amigo disc global SCP routines */ -t_stat da_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc); +t_stat da_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc); /* Amigo disc local utility routines */ @@ -1083,7 +1084,7 @@ return status; validation routine. */ -t_stat da_attach (UNIT *uptr, char *cptr) +t_stat da_attach (UNIT *uptr, CONST char *cptr) { t_stat result; const int32 unit = uptr - da_unit; /* calculate the unit number */ @@ -1253,7 +1254,7 @@ else we match the diagnostic expectation below. */ -t_stat da_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat da_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { const int32 unit = uptr - da_unit; /* calculate the unit number */ const t_bool load = (value != UNIT_UNLOAD); /* true if the heads are loading */ diff --git a/HP2100/hp2100_disclib.c b/HP2100/hp2100_disclib.c index 6d9f4d98..4690e381 100644 --- a/HP2100/hp2100_disclib.c +++ b/HP2100/hp2100_disclib.c @@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the authors. + 13-May-16 JDB Modified for revised SCP API function parameter types 04-Mar-16 JDB Name changed to "hp2100_disclib" until HP 3000 integration 24-Dec-14 JDB Added casts for explicit downward conversions 27-Oct-14 JDB Corrected the relative movement calculation in start_seek @@ -1658,7 +1659,7 @@ else /* the phase is illegal, retained. */ -t_stat dl_attach (CVPTR cvptr, UNIT *uptr, char *cptr) +t_stat dl_attach (CVPTR cvptr, UNIT *uptr, CONST char *cptr) { uint32 id, size; t_stat result; @@ -1708,7 +1709,7 @@ return detach_unit (uptr); /* and detach the unit the unit capacity is set to the size indicated. */ -t_stat dl_set_model (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat dl_set_model (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) /* we cannot alter the disc model */ return SCPE_ALATT; /* if the unit is attached */ diff --git a/HP2100/hp2100_disclib.h b/HP2100/hp2100_disclib.h index fb5d6ef8..f15fcabb 100644 --- a/HP2100/hp2100_disclib.h +++ b/HP2100/hp2100_disclib.h @@ -1,6 +1,6 @@ /* hp_disclib.h: HP MAC/ICD disc controller simulator library definitions - Copyright (c) 2011-2012, J. David Bryan + Copyright (c) 2011-2016, J. David Bryan Copyright (c) 2004-2011, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a @@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the authors. + 13-May-16 JDB Modified for revised SCP API function parameter types 24-Oct-12 JDB Changed CNTLR_OPCODE to title case to avoid name clash 07-May-12 JDB Added end-of-track delay time as a controller variable 02-May-12 JDB First release @@ -384,6 +385,6 @@ extern const char *dl_phase_name (CNTLR_PHASE phase); /* Disc library global VM routines */ -extern t_stat dl_attach (CVPTR cvptr, UNIT *uptr, char *cptr); +extern t_stat dl_attach (CVPTR cvptr, UNIT *uptr, CONST char *cptr); extern t_stat dl_detach (CVPTR cvptr, UNIT *uptr); -extern t_stat dl_set_model (UNIT *uptr, int32 value, char *cptr, void *desc); +extern t_stat dl_set_model (UNIT *uptr, int32 value, CONST char *cptr, void *desc); diff --git a/HP2100/hp2100_dp.c b/HP2100/hp2100_dp.c index 5b44f611..5dd2b9b9 100644 --- a/HP2100/hp2100_dp.c +++ b/HP2100/hp2100_dp.c @@ -1,6 +1,6 @@ /* hp2100_dp.c: HP 2100 12557A/13210A disk simulator - Copyright (c) 1993-2014, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -26,6 +26,7 @@ DP 12557A 2871 disk subsystem 13210A 7900 disk subsystem + 13-May-16 JDB Modified for revised SCP API function parameter types 30-Dec-14 JDB Added S-register parameters to ibl_copy 24-Dec-14 JDB Added casts for explicit downward conversions 18-Dec-12 MP Now calls sim_activate_time to get remaining seek time @@ -265,14 +266,14 @@ IOHANDLER dpcio; t_stat dpc_svc (UNIT *uptr); t_stat dpd_svc (UNIT *uptr); t_stat dpc_reset (DEVICE *dptr); -t_stat dpc_attach (UNIT *uptr, char *cptr); +t_stat dpc_attach (UNIT *uptr, CONST char *cptr); t_stat dpc_detach (UNIT* uptr); t_stat dpc_boot (int32 unitno, DEVICE *dptr); void dp_god (int32 fnc, int32 drv, int32 time); void dp_goc (int32 fnc, int32 drv, int32 time); -t_stat dpc_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc); -t_stat dp_settype (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dp_showtype (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat dpc_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +t_stat dp_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dp_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* DPD data structures @@ -1041,7 +1042,7 @@ return SCPE_OK; /* Attach routine */ -t_stat dpc_attach (UNIT *uptr, char *cptr) +t_stat dpc_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -1062,7 +1063,7 @@ return detach_unit (uptr); /* detach unit */ /* Load and unload heads */ -t_stat dpc_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat dpc_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { int32 drv; @@ -1083,7 +1084,7 @@ return SCPE_OK; /* Set controller type */ -t_stat dp_settype (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dp_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i; @@ -1105,7 +1106,7 @@ return SCPE_OK; /* Show controller type */ -t_stat dp_showtype (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dp_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (dp_ctype == A13210) fprintf (st, "13210A"); diff --git a/HP2100/hp2100_dq.c b/HP2100/hp2100_dq.c index e435270c..970ebab2 100644 --- a/HP2100/hp2100_dq.c +++ b/HP2100/hp2100_dq.c @@ -1,7 +1,7 @@ /* hp2100_dq.c: HP 2100 12565A disk simulator Copyright (c) 1993-2006, Bill McDermith - Copyright (c) 2004-2014 J. David Bryan + Copyright (c) 2004-2016 J. David Bryan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -26,6 +26,7 @@ DQ 12565A 2883 disk system + 13-May-16 JDB Modified for revised SCP API function parameter types 30-Dec-14 JDB Added S-register parameters to ibl_copy 24-Dec-14 JDB Added casts for explicit downward conversions 18-Dec-12 MP Now calls sim_activate_time to get remaining seek time @@ -193,9 +194,9 @@ IOHANDLER dqcio; t_stat dqc_svc (UNIT *uptr); t_stat dqd_svc (UNIT *uptr); t_stat dqc_reset (DEVICE *dptr); -t_stat dqc_attach (UNIT *uptr, char *cptr); +t_stat dqc_attach (UNIT *uptr, CONST char *cptr); t_stat dqc_detach (UNIT* uptr); -t_stat dqc_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc); +t_stat dqc_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc); t_stat dqc_boot (int32 unitno, DEVICE *dptr); void dq_god (int32 fnc, int32 drv, int32 time); void dq_goc (int32 fnc, int32 drv, int32 time); @@ -865,7 +866,7 @@ return SCPE_OK; /* Attach routine */ -t_stat dqc_attach (UNIT *uptr, char *cptr) +t_stat dqc_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -884,7 +885,7 @@ return detach_unit (uptr); /* detach unit */ /* Load and unload heads */ -t_stat dqc_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat dqc_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if ((uptr->flags & UNIT_ATT) == 0) return SCPE_UNATT; /* must be attached to load */ if (value == UNIT_UNLOAD) /* unload heads? */ diff --git a/HP2100/hp2100_dr.c b/HP2100/hp2100_dr.c index f9489ddb..1ce86281 100644 --- a/HP2100/hp2100_dr.c +++ b/HP2100/hp2100_dr.c @@ -1,6 +1,6 @@ /* hp2100_dr.c: HP 2100 12606B/12610B fixed head disk/drum simulator - Copyright (c) 1993-2014, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -26,6 +26,7 @@ DR 12606B 2770/2771 fixed head disk 12610B 2773/2774/2775 drum + 13-May-16 JDB Modified for revised SCP API function parameter types 30-Dec-14 JDB Added S-register parameters to ibl_copy 24-Dec-14 JDB Added casts for explicit downward conversions 10-Feb-12 JDB Deprecated DEVNO in favor of SC @@ -204,13 +205,13 @@ IOHANDLER drcio; t_stat drc_svc (UNIT *uptr); t_stat drc_reset (DEVICE *dptr); -t_stat drc_attach (UNIT *uptr, char *cptr); +t_stat drc_attach (UNIT *uptr, CONST char *cptr); t_stat drc_boot (int32 unitno, DEVICE *dptr); int32 dr_incda (int32 trk, int32 sec, int32 ptr); int32 dr_seccntr (double simtime); -t_stat dr_set_prot (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dr_show_prot (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat dr_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat dr_set_prot (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dr_show_prot (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat dr_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); DEVICE drd_dev, drc_dev; @@ -630,7 +631,7 @@ return SCPE_OK; /* Attach routine */ -t_stat drc_attach (UNIT *uptr, char *cptr) +t_stat drc_attach (UNIT *uptr, CONST char *cptr) { int32 sz = sz_tab[DR_GETSZ (uptr->flags)]; @@ -641,7 +642,7 @@ return attach_unit (uptr, cptr); /* Set protected track count */ -t_stat dr_set_prot (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dr_set_prot (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 count; t_stat status; @@ -677,7 +678,7 @@ return SCPE_OK; /* Show protected track count */ -t_stat dr_show_prot (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dr_show_prot (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "protected tracks=%d", drc_pcount); return SCPE_OK; @@ -685,7 +686,7 @@ return SCPE_OK; /* Set size routine */ -t_stat dr_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dr_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 sz; int32 szindex; diff --git a/HP2100/hp2100_ds.c b/HP2100/hp2100_ds.c index e2b97bda..3325bb51 100644 --- a/HP2100/hp2100_ds.c +++ b/HP2100/hp2100_ds.c @@ -26,6 +26,7 @@ DS 13037D/13175D disc controller/interface + 13-May-16 JDB Modified for revised SCP API function parameter types 04-Mar-16 JDB Name changed to "hp2100_disclib" until HP 3000 integration 30-Dec-14 JDB Added S-register parameters to ibl_copy 24-Dec-14 JDB Use T_ADDR_FMT with t_addr values for 64-bit compatibility @@ -187,13 +188,13 @@ t_stat ds_service_drive (UNIT *uptr); t_stat ds_service_controller (UNIT *uptr); t_stat ds_service_timer (UNIT *uptr); t_stat ds_reset (DEVICE *dptr); -t_stat ds_attach (UNIT *uptr, char *cptr); +t_stat ds_attach (UNIT *uptr, CONST char *cptr); t_stat ds_detach (UNIT *uptr); t_stat ds_boot (int32 unitno, DEVICE *dptr); /* MAC disc global SCP routines */ -t_stat ds_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc); +t_stat ds_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc); /* MAC disc local utility routines */ @@ -1033,7 +1034,7 @@ return SCPE_OK; changed, so polling the drives will have no effect. */ -t_stat ds_attach (UNIT *uptr, char *cptr) +t_stat ds_attach (UNIT *uptr, CONST char *cptr) { t_stat result; @@ -1196,7 +1197,7 @@ else status. */ -t_stat ds_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat ds_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { const t_bool load = (value != UNIT_UNLOAD); /* true if the heads are loading */ diff --git a/HP2100/hp2100_ipl.c b/HP2100/hp2100_ipl.c index a50008d4..3b42ac06 100644 --- a/HP2100/hp2100_ipl.c +++ b/HP2100/hp2100_ipl.c @@ -1,6 +1,6 @@ /* hp2100_ipl.c: HP 2000 interprocessor link simulator - Copyright (c) 2002-2015, Robert M Supnik + Copyright (c) 2002-2016, Robert M Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,7 @@ IPLI, IPLO 12875A interprocessor link + 13-May-16 JDB Modified for revised SCP API function parameter types 14-Sep-15 JDB Exposed "ipl_edtdelay" via a REG_HIDDEN to allow user tuning Corrected typos in comments and strings 05-Jun-15 JDB Merged 3.x and 4.x versions using conditionals @@ -126,11 +127,11 @@ IOHANDLER iplio; t_stat ipl_svc (UNIT *uptr); t_stat ipl_reset (DEVICE *dptr); -t_stat ipl_attach (UNIT *uptr, char *cptr); +t_stat ipl_attach (UNIT *uptr, CONST char *cptr); t_stat ipl_detach (UNIT *uptr); t_stat ipl_boot (int32 unitno, DEVICE *dptr); -t_stat ipl_dscln (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ipl_setdiag (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat ipl_dscln (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ipl_setdiag (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_bool ipl_check_conn (UNIT *uptr); /* Debug flags table */ @@ -585,7 +586,7 @@ return SCPE_OK; attach -c - connect to ip address and port */ -t_stat ipl_attach (UNIT *uptr, char *cptr) +t_stat ipl_attach (UNIT *uptr, CONST char *cptr) { SOCKET newsock; char *tptr = NULL; @@ -752,7 +753,7 @@ return SCPE_OK; /* Disconnect routine */ -t_stat ipl_dscln (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ipl_dscln (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -768,7 +769,7 @@ return SCPE_OK; /* Diagnostic/normal mode routine */ -t_stat ipl_setdiag (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ipl_setdiag (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val) { ipli_unit.flags = ipli_unit.flags | UNIT_DIAG; diff --git a/HP2100/hp2100_lps.c b/HP2100/hp2100_lps.c index ea51c6fb..18919f6c 100644 --- a/HP2100/hp2100_lps.c +++ b/HP2100/hp2100_lps.c @@ -1,6 +1,6 @@ /* hp2100_lps.c: HP 2100 12653A/2767 line printer simulator - Copyright (c) 1993-2012, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -26,6 +26,7 @@ LPS 12653A 2767 line printer 12566B microcircuit interface with loopback diagnostic connector + 13-May-16 JDB Modified for revised SCP API function parameter types 10-Feb-12 JDB Deprecated DEVNO in favor of SC 28-Mar-11 JDB Tidied up signal handling 26-Oct-10 JDB Changed I/O signal handler for revised signal model @@ -210,12 +211,12 @@ IOHANDLER lpsio; t_stat lps_svc (UNIT *uptr); t_stat lps_reset (DEVICE *dptr); -t_stat lps_restart (UNIT *uptr, int32 value, char *cptr, void *desc); -t_stat lps_poweroff (UNIT *uptr, int32 value, char *cptr, void *desc); -t_stat lps_poweron (UNIT *uptr, int32 value, char *cptr, void *desc); -t_stat lps_attach (UNIT *uptr, char *cptr); -t_stat lps_set_timing (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat lps_show_timing (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat lps_restart (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +t_stat lps_poweroff (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +t_stat lps_poweron (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +t_stat lps_attach (UNIT *uptr, CONST char *cptr); +t_stat lps_set_timing (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat lps_show_timing (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* LPS data structures @@ -537,7 +538,7 @@ return SCPE_OK; original I/O request. */ -t_stat lps_restart (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat lps_restart (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (lps.control && !sim_is_active (uptr)) sim_activate (uptr, 0); /* reschedule I/O */ @@ -546,7 +547,7 @@ return SCPE_OK; /* Printer power off */ -t_stat lps_poweroff (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat lps_poweroff (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { lps_power = LPS_OFF; /* change state */ if (DEBUG_PRS (lps_dev)) fputs (">>LPS set: Power state is OFF\n", sim_deb); @@ -555,7 +556,7 @@ return SCPE_OK; /* Printer power on */ -t_stat lps_poweron (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat lps_poweron (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (lps_unit.flags & UNIT_DIAG) { /* diag mode? */ lps_power = LPS_ON; /* no delay */ @@ -575,7 +576,7 @@ return SCPE_OK; /* Attach routine */ -t_stat lps_attach (UNIT *uptr, char *cptr) +t_stat lps_attach (UNIT *uptr, CONST char *cptr) { lps_ccnt = lps_lcnt = 0; /* top of form */ lps_restart (uptr, 0, NULL, NULL); /* restart I/O if hung */ @@ -587,7 +588,7 @@ return attach_unit (uptr, cptr); Realistic timing is factored, depending on CPU model, to account for the timing method employed by the diagnostic. */ -t_stat lps_set_timing (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat lps_set_timing (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i, factor = 1; @@ -603,7 +604,7 @@ return SCPE_OK; /* Show printer timing */ -t_stat lps_show_timing (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat lps_show_timing (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (lps_timing) fputs ("fast timing", st); else fputs ("realistic timing", st); diff --git a/HP2100/hp2100_lpt.c b/HP2100/hp2100_lpt.c index 84795443..d87a8aad 100644 --- a/HP2100/hp2100_lpt.c +++ b/HP2100/hp2100_lpt.c @@ -1,6 +1,6 @@ /* hp2100_lpt.c: HP 2100 12845B line printer simulator - Copyright (c) 1993-2012, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,7 @@ LPT 12845B 2607 line printer + 13-May-16 JDB Modified for revised SCP API function parameter types 10-Feb-12 JDB Deprecated DEVNO in favor of SC 28-Mar-11 JDB Tidied up signal handling 26-Oct-10 JDB Changed I/O signal handler for revised signal model @@ -112,8 +113,8 @@ IOHANDLER lptio; t_stat lpt_svc (UNIT *uptr); t_stat lpt_reset (DEVICE *dptr); -t_stat lpt_restart (UNIT *uptr, int32 value, char *cptr, void *desc); -t_stat lpt_attach (UNIT *uptr, char *cptr); +t_stat lpt_restart (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +t_stat lpt_attach (UNIT *uptr, CONST char *cptr); /* LPT data structures @@ -332,7 +333,7 @@ return SCPE_OK; original I/O request. */ -t_stat lpt_restart (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat lpt_restart (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (lpt.control && !sim_is_active (uptr)) sim_activate (uptr, 0); /* reschedule I/O */ @@ -342,7 +343,7 @@ return SCPE_OK; /* Attach routine */ -t_stat lpt_attach (UNIT *uptr, char *cptr) +t_stat lpt_attach (UNIT *uptr, CONST char *cptr) { lpt_lcnt = 0; /* top of form */ lpt_restart (uptr, 0, NULL, NULL); /* restart I/O if hung */ diff --git a/HP2100/hp2100_mpx.c b/HP2100/hp2100_mpx.c index e53271c9..15068160 100644 --- a/HP2100/hp2100_mpx.c +++ b/HP2100/hp2100_mpx.c @@ -1,6 +1,6 @@ /* hp2100_mpx.c: HP 12792C eight-channel asynchronous multiplexer simulator - Copyright (c) 2008-2014, J. David Bryan + Copyright (c) 2008-2016, J. David Bryan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,7 @@ MPX 12792C 8-channel multiplexer card + 13-May-16 JDB Modified for revised SCP API function parameter types 24-Dec-14 JDB Added casts for explicit downward conversions 10-Jan-13 MP Added DEV_MUX and additional DEVICE field values 28-Dec-12 JDB Allow direct attach to the poll unit only when restoring @@ -594,11 +595,11 @@ t_stat mpx_line_svc (UNIT *uptr); t_stat mpx_cntl_svc (UNIT *uptr); t_stat mpx_poll_svc (UNIT *uptr); t_stat mpx_reset (DEVICE *dptr); -t_stat mpx_attach (UNIT *uptr, char *cptr); +t_stat mpx_attach (UNIT *uptr, CONST char *cptr); t_stat mpx_detach (UNIT *uptr); -t_stat mpx_status (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat mpx_set_frev (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat mpx_show_frev (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat mpx_status (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat mpx_set_frev (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat mpx_show_frev (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* MPX data structures. @@ -2074,7 +2075,7 @@ return SCPE_OK; devices in the simulator to facilitate idling. */ -t_stat mpx_attach (UNIT *uptr, char *cptr) +t_stat mpx_attach (UNIT *uptr, CONST char *cptr) { t_stat status = SCPE_OK; @@ -2129,7 +2130,7 @@ return status; /* Show multiplexer status */ -t_stat mpx_status (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat mpx_status (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (mpx_poll.flags & UNIT_ATT) /* attached to socket? */ fprintf (st, "attached to port %s, ", mpx_poll.filename); @@ -2148,7 +2149,7 @@ return SCPE_OK; will enable changing the firmware revision. */ -t_stat mpx_set_frev (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat mpx_set_frev (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if ((cptr == NULL) || /* no parameter? */ (*cptr < 'C') || (*cptr > 'D') || /* or not C or D? */ @@ -2168,7 +2169,7 @@ else { /* Show firmware revision */ -t_stat mpx_show_frev (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat mpx_show_frev (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (mpx_dev.flags & DEV_REV_D) fputs ("12792D", st); diff --git a/HP2100/hp2100_ms.c b/HP2100/hp2100_ms.c index b8c7600a..a2f17646 100644 --- a/HP2100/hp2100_ms.c +++ b/HP2100/hp2100_ms.c @@ -1,6 +1,6 @@ /* hp2100_ms.c: HP 2100 13181A/13183A magnetic tape simulator - Copyright (c) 1993-2014, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -26,6 +26,7 @@ MS 13181A 7970B 800bpi nine track magnetic tape 13183A 7970E 1600bpi nine track magnetic tape + 13-May-16 JDB Modified for revised SCP API function parameter types 30-Dec-14 JDB Added S-register parameters to ibl_copy 24-Dec-14 JDB Use T_ADDR_FMT with t_addr values for 64-bit compatibility Added casts for explicit downward conversions @@ -235,18 +236,18 @@ IOHANDLER mscio; t_stat msc_svc (UNIT *uptr); t_stat msc_reset (DEVICE *dptr); -t_stat msc_attach (UNIT *uptr, char *cptr); +t_stat msc_attach (UNIT *uptr, CONST char *cptr); t_stat msc_detach (UNIT *uptr); -t_stat msc_online (UNIT *uptr, int32 value, char *cptr, void *desc); +t_stat msc_online (UNIT *uptr, int32 value, CONST char *cptr, void *desc); t_stat msc_boot (int32 unitno, DEVICE *dptr); t_stat ms_write_gap (UNIT *uptr); t_stat ms_map_err (UNIT *uptr, t_stat st); -t_stat ms_settype (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ms_showtype (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat ms_set_timing (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ms_show_timing (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat ms_set_reelsize (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ms_show_reelsize (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat ms_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ms_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat ms_set_timing (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ms_show_timing (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat ms_set_reelsize (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ms_show_reelsize (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void ms_config_timing (void); char *ms_cmd_name (uint32 cmd); t_stat ms_clear (void); @@ -1061,7 +1062,7 @@ return SCPE_OK; /* Attach routine */ -t_stat msc_attach (UNIT *uptr, char *cptr) +t_stat msc_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -1082,7 +1083,7 @@ return sim_tape_detach (uptr); /* detach unit */ /* Online routine */ -t_stat msc_online (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat msc_online (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_OK; else return SCPE_UNATT; @@ -1101,7 +1102,7 @@ for (i = 0; i < (sizeof (timers) / sizeof (timers[0])); i++) /* Set controller timing */ -t_stat ms_set_timing (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ms_set_timing (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if ((val < 0) || (val > 1) || (cptr != NULL)) return SCPE_ARG; ms_timing = val; @@ -1111,7 +1112,7 @@ return SCPE_OK; /* Show controller timing */ -t_stat ms_show_timing (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat ms_show_timing (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (ms_timing) fputs ("fast timing", st); else fputs ("realistic timing", st); @@ -1120,7 +1121,7 @@ return SCPE_OK; /* Set controller type */ -t_stat ms_settype (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ms_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i; @@ -1139,7 +1140,7 @@ return SCPE_OK; /* Show controller type */ -t_stat ms_showtype (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat ms_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (ms_ctype == A13183) fprintf (st, "13183A"); @@ -1153,7 +1154,7 @@ return SCPE_OK; val = 0 -> SET MSCn CAPACITY=n val = 1 -> SET MSCn REEL=n */ -t_stat ms_set_reelsize (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ms_set_reelsize (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 reel; t_stat status; @@ -1198,7 +1199,7 @@ return SCPE_OK; val = 0 -> SHOW MSC or SHOW MSCn or SHOW MSCn CAPACITY val = 1 -> SHOW MSCn REEL */ -t_stat ms_show_reelsize (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat ms_show_reelsize (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { t_stat status = SCPE_OK; diff --git a/HP2100/hp2100_mt.c b/HP2100/hp2100_mt.c index ffd25fe7..3d9c3105 100644 --- a/HP2100/hp2100_mt.c +++ b/HP2100/hp2100_mt.c @@ -1,6 +1,6 @@ /* hp2100_mt.c: HP 2100 12559A magnetic tape simulator - Copyright (c) 1993-2014, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,7 @@ MT 12559A 3030 nine track magnetic tape + 13-May-16 JDB Modified for revised SCP API function parameter types 24-Dec-14 JDB Added casts for explicit downward conversions 10-Jan-13 MP Added DEV_TAPE to DEVICE flags 09-May-12 JDB Separated assignments from conditional expressions @@ -145,7 +146,7 @@ IOHANDLER mtcio; t_stat mtc_svc (UNIT *uptr); t_stat mt_reset (DEVICE *dptr); -t_stat mtc_attach (UNIT *uptr, char *cptr); +t_stat mtc_attach (UNIT *uptr, CONST char *cptr); t_stat mtc_detach (UNIT *uptr); t_stat mt_map_err (UNIT *uptr, t_stat st); t_stat mt_clear (void); @@ -678,7 +679,7 @@ return SCPE_OK; /* Attach routine */ -t_stat mtc_attach (UNIT *uptr, char *cptr) +t_stat mtc_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/HP2100/hp2100_mux.c b/HP2100/hp2100_mux.c index 23363ec7..9f3ecb5d 100644 --- a/HP2100/hp2100_mux.c +++ b/HP2100/hp2100_mux.c @@ -1,6 +1,6 @@ /* hp2100_mux.c: HP 2100 12920A terminal multiplexor simulator - Copyright (c) 2002-2015, Robert M Supnik + Copyright (c) 2002-2016, Robert M Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,7 @@ MUX,MUXL,MUXM 12920A terminal multiplexor + 13-May-16 JDB Modified for revised SCP API function parameter types 29-Jun-15 JDB Corrected typo in RTS macro definition 24-Dec-14 JDB Added casts for explicit downward conversions 10-Jan-13 MP Added DEV_MUX and additional DEVICE field values @@ -328,9 +329,9 @@ IOHANDLER muxcio; t_stat muxi_svc (UNIT *uptr); t_stat muxo_svc (UNIT *uptr); t_stat muxc_reset (DEVICE *dptr); -t_stat mux_attach (UNIT *uptr, char *cptr); +t_stat mux_attach (UNIT *uptr, CONST char *cptr); t_stat mux_detach (UNIT *uptr); -t_stat mux_setdiag (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat mux_setdiag (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* MUXL/MUXU device information block. @@ -1339,7 +1340,7 @@ return SCPE_OK; /* Attach master unit */ -t_stat mux_attach (UNIT *uptr, char *cptr) +t_stat mux_attach (UNIT *uptr, CONST char *cptr) { t_stat status = SCPE_OK; @@ -1390,7 +1391,7 @@ return r; here.) */ -t_stat mux_setdiag (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat mux_setdiag (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 ln; diff --git a/HP2100/hp2100_pif.c b/HP2100/hp2100_pif.c index ceaaeb8c..4d91eb04 100644 --- a/HP2100/hp2100_pif.c +++ b/HP2100/hp2100_pif.c @@ -1,6 +1,6 @@ /* hp2100_pif.c: HP 12620A/12936A privileged interrupt fence simulator - Copyright (c) 2008-2012, J. David Bryan + Copyright (c) 2008-2016, J. David Bryan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,7 @@ PIF 12620A/12936A privileged interrupt fence + 13-May-16 JDB Modified for revised SCP API function parameter types 10-Feb-12 JDB Deprecated DEVNO in favor of SC 28-Mar-11 JDB Tidied up signal handling 26-Oct-10 JDB Changed I/O signal handler for revised signal model @@ -118,8 +119,8 @@ struct { IOHANDLER pif_io; t_stat pif_reset (DEVICE *dptr); -t_stat pif_set_card (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat pif_show_card (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat pif_set_card (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat pif_show_card (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* PIF data structures. @@ -347,7 +348,7 @@ return SCPE_OK; val == 1 --> set to 12620A (RTE PIF) */ -t_stat pif_set_card (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat pif_set_card (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if ((val < 0) || (val > 1) || (cptr != NULL)) /* sanity check */ return SCPE_ARG; /* bad argument */ @@ -363,7 +364,7 @@ return SCPE_OK; /* Show card type */ -t_stat pif_show_card (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat pif_show_card (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (pif_dev.flags & DEV_12936) fputs ("12936A", st); diff --git a/HP2100/hp2100_stddev.c b/HP2100/hp2100_stddev.c index 7bdaafd5..c056da96 100644 --- a/HP2100/hp2100_stddev.c +++ b/HP2100/hp2100_stddev.c @@ -1,6 +1,6 @@ /* hp2100_stddev.c: HP2100 standard devices simulator - Copyright (c) 1993-2014, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -28,6 +28,7 @@ TTY 12531C buffered teleprinter interface TBG 12539C time base generator + 13-May-16 JDB Modified for revised SCP API function parameter types 30-Dec-14 JDB Added S-register parameters to ibl_copy 24-Dec-14 JDB Added casts for explicit downward conversions 28-Dec-12 JDB Allocate the TBG logical name during power-on reset @@ -188,7 +189,7 @@ DEVICE ptr_dev, ptp_dev, tty_dev, clk_dev; IOHANDLER ptrio; t_stat ptr_svc (UNIT *uptr); -t_stat ptr_attach (UNIT *uptr, char *cptr); +t_stat ptr_attach (UNIT *uptr, CONST char *cptr); t_stat ptr_reset (DEVICE *dptr); t_stat ptr_boot (int32 unitno, DEVICE *dptr); @@ -200,8 +201,8 @@ IOHANDLER ttyio; t_stat tti_svc (UNIT *uptr); t_stat tto_svc (UNIT *uptr); t_stat tty_reset (DEVICE *dptr); -t_stat tty_set_opt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat tty_set_alf (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tty_set_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat tty_set_alf (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat tto_out (int32 c); t_stat ttp_out (int32 c); @@ -538,7 +539,7 @@ return SCPE_OK; /* Attach routine - clear the trailer counter */ -t_stat ptr_attach (UNIT *uptr, char *cptr) +t_stat ptr_attach (UNIT *uptr, CONST char *cptr) { ptr_trlcnt = 0; return attach_unit (uptr, cptr); @@ -991,7 +992,7 @@ return SCPE_OK; } -t_stat tty_set_opt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tty_set_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 u = uptr - tty_unit; @@ -1003,7 +1004,7 @@ return SCPE_OK; } -t_stat tty_set_alf (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tty_set_alf (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 u = uptr - tty_unit; diff --git a/HP2100/hp2100_sys.c b/HP2100/hp2100_sys.c index 00cf26db..016adbc7 100644 --- a/HP2100/hp2100_sys.c +++ b/HP2100/hp2100_sys.c @@ -1,6 +1,6 @@ /* hp2100_sys.c: HP 2100 simulator interface - Copyright (c) 1993-2015, Robert M. Supnik + Copyright (c) 1993-2016, Robert M. Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -23,6 +23,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from Robert M Supnik. + 13-May-16 JDB Modified for revised SCP API function parameter types 19-Jun-15 JDB Conditionally use Fprintf function for version 4.x and on 18-Jun-15 JDB Added cast to int for isspace parameter 24-Dec-14 JDB Added casts to t_addr and t_value for 64-bit compatibility @@ -67,7 +68,6 @@ #include #include "hp2100_defs.h" #include "hp2100_cpu.h" -#include "sim_rev.h" #if (SIM_MAJOR >= 4) @@ -208,7 +208,7 @@ if ((c2 = fgetc (fileref)) == EOF) return -1; return ((c1 & 0377) << 8) | (c2 & 0377); } -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 origin, csum, zerocnt, count, word, i; @@ -584,7 +584,7 @@ return SCPE_ARG; -1 if error */ -static int32 get_addr (char *cptr) +static int32 get_addr (CONST char *cptr) { int32 d; t_stat r; @@ -614,11 +614,12 @@ return d; status = error status */ -t_stat parse_sym (char *iptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *iptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 cflag, d, i, j, k, clef, tbits; t_stat r, ret; -char *cptr, gbuf[CBUFSIZE]; +CONST char *cptr; +char gbuf[CBUFSIZE]; cflag = (uptr == NULL) || (uptr == &cpu_unit); while (isspace ((int) *iptr)) iptr++; /* absorb spaces */ @@ -825,7 +826,7 @@ else { /* printable character * /* Set select code */ -t_stat hp_setsc (UNIT *uptr, int32 num, char *cptr, void *desc) +t_stat hp_setsc (UNIT *uptr, int32 num, CONST char *cptr, void *desc) { DEVICE *dptr = (DEVICE *) desc; DIB *dibptr; @@ -860,9 +861,9 @@ return SCPE_OK; /* Show select code */ -t_stat hp_showsc (FILE *st, UNIT *uptr, int32 num, void *desc) +t_stat hp_showsc (FILE *st, UNIT *uptr, int32 num, CONST void *desc) { -DEVICE *dptr = (DEVICE *) desc; +const DEVICE *dptr = (const DEVICE *) desc; DIB *dibptr; int32 i; @@ -885,7 +886,7 @@ return SCPE_OK; /* Set device number */ -t_stat hp_setdev (UNIT *uptr, int32 num, char *cptr, void *desc) +t_stat hp_setdev (UNIT *uptr, int32 num, CONST char *cptr, void *desc) { return hp_setsc (uptr, num, cptr, desc); } @@ -893,7 +894,7 @@ return hp_setsc (uptr, num, cptr, desc); /* Show device number */ -t_stat hp_showdev (FILE *st, UNIT *uptr, int32 num, void *desc) +t_stat hp_showdev (FILE *st, UNIT *uptr, int32 num, CONST void *desc) { t_stat result; diff --git a/HP3000/hp3000_atc.c b/HP3000/hp3000_atc.c index 9b5ec6f3..c470f1d7 100644 --- a/HP3000/hp3000_atc.c +++ b/HP3000/hp3000_atc.c @@ -26,6 +26,7 @@ ATCD,ATCC HP 30032B Asynchronous Terminal Controller + 13-May-16 JDB Modified for revised SCP API function parameter types 26-Aug-15 JDB First release version 31-Jul-15 JDB Passes the terminal control diagnostic (D438A) 11-Aug-14 JDB Passes the terminal data diagnostic (D427A) @@ -754,15 +755,15 @@ static uint8 cntl_param [TERM_COUNT]; /* ES2/ES1/S2/S1 parameter RAM * static CNTLR_INTRF atcd_interface; static CNTLR_INTRF atcc_interface; -static t_stat atc_set_endis (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat atc_set_mode (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat atc_show_mode (FILE *st, UNIT *uptr, int32 value, void *desc); -static t_stat atc_show_status (FILE *st, UNIT *uptr, int32 value, void *desc); +static t_stat atc_set_endis (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat atc_set_mode (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat atc_show_mode (FILE *st, UNIT *uptr, int32 value, CONST void *desc); +static t_stat atc_show_status (FILE *st, UNIT *uptr, int32 value, CONST void *desc); static t_stat atcd_reset (DEVICE *dptr); static t_stat atcc_reset (DEVICE *dptr); -static t_stat atcd_attach (UNIT *uptr, char *cptr); +static t_stat atcd_attach (UNIT *uptr, CONST char *cptr); static t_stat atcd_detach (UNIT *uptr); @@ -1550,7 +1551,7 @@ return IORETURN (outbound_signals, outbound_value); /* return the outbound s as appropriate. */ -static t_stat atc_set_endis (UNIT *uptr, int32 value, char *cptr, void *desc) +static t_stat atc_set_endis (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (value) /* if this is an ENABLE request */ if (atcd_dev.flags & DEV_DIS) { /* then if the device is disabled */ @@ -1593,7 +1594,7 @@ return atcd_reset (&atcd_dev); /* reset the TDI and res the internal loopback connections from the send to the receive channels. */ -static t_stat atc_set_mode (UNIT *uptr, int32 value, char *cptr, void *desc) +static t_stat atc_set_mode (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { DEVICE * const dptr = (DEVICE *) desc; /* a pointer to the device */ @@ -1634,9 +1635,9 @@ return SCPE_OK; the TCI. The unit pointer is not used. */ -static t_stat atc_show_mode (FILE *st, UNIT *uptr, int32 value, void *desc) +static t_stat atc_show_mode (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { -DEVICE * const dptr = (DEVICE *) desc; /* a pointer to the device */ +const DEVICE * const dptr = (const DEVICE *) desc; /* a pointer to the device */ if (value == 0) /* if this is the TDI */ if (dptr->flags & DEV_REALTIME) /* then if the real-time flag is set */ @@ -1661,7 +1662,7 @@ return SCPE_OK; and value parameters are not used. */ -static t_stat atc_show_status (FILE *st, UNIT *uptr, int32 value, void *desc) +static t_stat atc_show_status (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { if (poll_unit.flags & UNIT_ATT) /* if the poll unit is attached */ fprintf (st, "attached to port %s, ", /* then report it */ @@ -1779,7 +1780,7 @@ return status; saved session via the RESTORE command. */ -static t_stat atcd_attach (UNIT *uptr, char *cptr) +static t_stat atcd_attach (UNIT *uptr, CONST char *cptr) { t_stat status; diff --git a/HP3000/hp3000_cpu.c b/HP3000/hp3000_cpu.c index 0e06cb95..a39bbc3e 100644 --- a/HP3000/hp3000_cpu.c +++ b/HP3000/hp3000_cpu.c @@ -25,6 +25,7 @@ CPU HP 3000 Series III Central Processing Unit + 13-May-16 JDB Modified for revised SCP API function parameter types 11-Mar-16 JDB Fixed byte EA calculations with negative indexes 22-Dec-15 JDB First release version 01-Apr-15 JDB First successful run of MPE-V/R through account login @@ -934,13 +935,13 @@ static t_stat cpu_reset (DEVICE *dptr); static t_stat cpu_examine (t_value *eval_array, t_addr address, UNIT *uptr, int32 switches); static t_stat cpu_deposit (t_value value, t_addr address, UNIT *uptr, int32 switches); -static t_stat set_stops (UNIT *uptr, int32 option, char *cptr, void *desc); -static t_stat set_size (UNIT *uptr, int32 new_size, char *cptr, void *desc); -static t_stat set_model (UNIT *uptr, int32 new_model, char *cptr, void *desc); -static t_stat set_option (UNIT *uptr, int32 new_option, char *cptr, void *desc); +static t_stat set_stops (UNIT *uptr, int32 option, CONST char *cptr, void *desc); +static t_stat set_size (UNIT *uptr, int32 new_size, CONST char *cptr, void *desc); +static t_stat set_model (UNIT *uptr, int32 new_model, CONST char *cptr, void *desc); +static t_stat set_option (UNIT *uptr, int32 new_option, CONST char *cptr, void *desc); -static t_stat show_stops (FILE *st, UNIT *uptr, int32 val, void *desc); -static t_stat show_speed (FILE *st, UNIT *uptr, int32 val, void *desc); +static t_stat show_stops (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static t_stat show_speed (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* CPU local utility routine declarations */ @@ -3286,7 +3287,7 @@ else { /* otherwise */ execution only. */ -static t_stat set_stops (UNIT *uptr, int32 option, char *cptr, void *desc) +static t_stat set_stops (UNIT *uptr, int32 option, CONST char *cptr, void *desc) { char gbuf [CBUFSIZE]; uint32 stop; @@ -3352,9 +3353,9 @@ return SCPE_OK; /* the stops were succes explicitly zeroed. */ -static t_stat set_size (UNIT *uptr, int32 new_size, char *cptr, void *desc) +static t_stat set_size (UNIT *uptr, int32 new_size, CONST char *cptr, void *desc) { -static const char confirm [] = "Really truncate memory [N]?"; +static CONST char confirm [] = "Really truncate memory [N]?"; const uint32 model = CPU_MODEL (uptr->flags); /* the current CPU model index */ uint32 address; @@ -3399,7 +3400,7 @@ return SCPE_OK; /* confirm that the chan initial CPU model. The current memory size will be 0 when this call is made. */ -static t_stat set_model (UNIT *uptr, int32 new_model, char *cptr, void *desc) +static t_stat set_model (UNIT *uptr, int32 new_model, CONST char *cptr, void *desc) { const uint32 new_index = CPU_MODEL (new_model); /* the new index into the CPU features table */ uint32 new_memsize; @@ -3436,7 +3437,7 @@ return status; /* return the validation rejected. */ -static t_stat set_option (UNIT *uptr, int32 new_option, char *cptr, void *desc) +static t_stat set_option (UNIT *uptr, int32 new_option, CONST char *cptr, void *desc) { const uint32 model = CPU_MODEL (uptr->flags); /* the current CPU model index */ @@ -3460,7 +3461,7 @@ else /* otherwise */ newline to the output before returning. */ -static t_stat show_stops (FILE *st, UNIT *uptr, int32 val, void *desc) +static t_stat show_stops (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 stop; t_bool need_spacer = FALSE; @@ -3499,7 +3500,7 @@ return SCPE_OK; /* report the success of (which suspends the normal fetch/execute instruction cycle). */ -static t_stat show_speed (FILE *st, UNIT *uptr, int32 val, void *desc) +static t_stat show_speed (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "Simulation speed = %dx\n", cpu_speed); /* display the current CPU speed */ return SCPE_OK; /* and report success */ diff --git a/HP3000/hp3000_defs.h b/HP3000/hp3000_defs.h index f1776e25..ea78c6f8 100644 --- a/HP3000/hp3000_defs.h +++ b/HP3000/hp3000_defs.h @@ -23,6 +23,7 @@ in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the author. + 13-May-16 JDB Modified for revised SCP API function parameter types 04-Feb-16 JDB First release version 11-Dec-12 JDB Created @@ -40,8 +41,8 @@ #define HP3000_DEFS_H_ -#include "sim_defs.h" #include "sim_rev.h" +#include "sim_defs.h" @@ -63,17 +64,16 @@ */ #if defined (__clang__) -#pragma clang diagnostic ignored "-Wlogical-op-parentheses" -#pragma clang diagnostic ignored "-Wbitwise-op-parentheses" -#pragma clang diagnostic ignored "-Wshift-op-parentheses" -#pragma clang diagnostic ignored "-Wdangling-else" + #pragma clang diagnostic ignored "-Wlogical-op-parentheses" + #pragma clang diagnostic ignored "-Wbitwise-op-parentheses" + #pragma clang diagnostic ignored "-Wshift-op-parentheses" + #pragma clang diagnostic ignored "-Wdangling-else" #elif defined (_MSC_VER) -#pragma warning (disable: 4114 4554 4996) + #pragma warning (disable: 4114 4554 4996) #endif - /* Device register display mode flags */ #define REG_A (1 << REG_V_UF + 0) /* permit any display */ @@ -106,13 +106,22 @@ offsets 13 and 15 can be used with an array of 16-bit elements. However, offsets 3 and 13 cannot be used, as the first implies 8-bit elements, and the second implies 16-bit elements. + + 2. The REG structure for version 4.0 contains two extra fields that are not + present in 3.x versions. */ /* Macro name loc radix width offset depth desc fields */ /* ---------------------- ---- ------- ----- ----- ------ ---------- ---- ------ */ +#if (SIM_MAJOR >= 4) #define FBDATA(nm,loc,ofs,dep) #nm, &(loc), 2, 1, (ofs), (dep), NULL, NULL #define SRDATA(nm,loc) #nm, &(loc), 8, 8, 0, sizeof loc, NULL, NULL #define YRDATA(nm,loc,wid) #nm, &(loc), 2, (wid), 0, 1, NULL, NULL +#else + #define FBDATA(nm,loc,ofs,dep) #nm, &(loc), 2, 1, (ofs), (dep) + #define SRDATA(nm,loc) #nm, &(loc), 8, 8, 0, sizeof loc + #define YRDATA(nm,loc,wid) #nm, &(loc), 2, (wid), 0, 1 +#endif /* Debugging and console output. @@ -510,15 +519,15 @@ extern const BITSET_FORMAT outbound_format; /* the outbound signal format st /* System interface global SCP support routines previously declared in scp.h */ /* -extern t_stat sim_load (FILE *fptr, char *cptr, char *fnam, int flag); -extern t_stat fprint_sym (FILE *ofile, t_addr addr, t_value *val, UNIT *uptr, int32 sw); -extern t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw); +extern t_stat sim_load (FILE *fptr, CONST char *cptr, CONST char *fnam, int flag); +extern t_stat fprint_sym (FILE *ofile, t_addr addr, t_value *val, UNIT *uptr, int32 sw); +extern t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw); */ /* System interface global SCP support routines */ -extern t_stat hp_set_dib (UNIT *uptr, int32 code, char *cptr, void *desc); -extern t_stat hp_show_dib (FILE *st, UNIT *uptr, int32 code, void *desc); +extern t_stat hp_set_dib (UNIT *uptr, int32 code, CONST char *cptr, void *desc); +extern t_stat hp_show_dib (FILE *st, UNIT *uptr, int32 code, CONST void *desc); /* System interface global utility routines */ diff --git a/HP3000/hp3000_ds.c b/HP3000/hp3000_ds.c index 1da781bc..d9ebaf6a 100644 --- a/HP3000/hp3000_ds.c +++ b/HP3000/hp3000_ds.c @@ -25,6 +25,7 @@ DS HP 30229B Cartridge Disc Interface + 13-May-16 JDB Modified for revised SCP API function parameter types 21-Jul-15 JDB First release version 15-Jun-15 JDB Passes the cartridge disc diagnostic (D419A) 15-Feb-15 JDB Created @@ -360,9 +361,9 @@ static CNTLR_INTRF ds_interface; static t_stat ds_service (UNIT *uptr); static t_stat ds_reset (DEVICE *dptr); static t_stat ds_boot (int32 unit_number, DEVICE *dptr); -static t_stat ds_attach (UNIT *uptr, char *cptr); +static t_stat ds_attach (UNIT *uptr, CONST char *cptr); static t_stat ds_detach (UNIT *uptr); -static t_stat ds_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc); +static t_stat ds_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc); /* Interface local utility routines */ @@ -941,7 +942,7 @@ else { /* otherwise */ changed by the controller, so the unit will not request attention. */ -static t_stat ds_attach (UNIT *uptr, char *cptr) +static t_stat ds_attach (UNIT *uptr, CONST char *cptr) { t_stat result; @@ -1007,7 +1008,7 @@ else /* otherwise */ becomes idle. */ -static t_stat ds_load_unload (UNIT *uptr, int32 value, char *cptr, void *desc) +static t_stat ds_load_unload (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { const t_bool load = (value != UNIT_UNLOAD); /* TRUE if the heads are loading */ t_stat result; diff --git a/HP3000/hp3000_iop.c b/HP3000/hp3000_iop.c index 4e53c5a7..ec34dd24 100644 --- a/HP3000/hp3000_iop.c +++ b/HP3000/hp3000_iop.c @@ -25,6 +25,7 @@ IOP HP 3000 Series III I/O Processor + 13-May-16 JDB Modified for revised SCP API function parameter types 28-Aug-15 JDB First release version 11-Dec-12 JDB Created @@ -274,8 +275,8 @@ static uint32 filter [4] = { /* filter bitmap for device numb /* IOP local SCP support routines */ -static t_stat iop_set_filter (UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat iop_show_filter (FILE *st, UNIT *uptr, int32 value, void *desc); +static t_stat iop_set_filter (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat iop_show_filter (FILE *st, UNIT *uptr, int32 value, CONST void *desc); /* IOP SCP data structures */ @@ -730,29 +731,31 @@ return; disturbed. */ -static t_stat iop_set_filter (UNIT *uptr, int32 value, char *cptr, void *desc) +static t_stat iop_set_filter (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { -const char *sptr; -char *tptr; -t_addr dev, low, high; -t_stat result = SCPE_OK; -uint32 new_filter [4] = { TRACE_ALL, TRACE_ALL, TRACE_ALL, TRACE_ALL }; +CONST char *tptr; +char *mptr; +t_addr dev, low, high; +t_stat result = SCPE_OK; +uint32 new_filter [4] = { TRACE_ALL, TRACE_ALL, TRACE_ALL, TRACE_ALL }; if (value == 1) { /* if we are setting the filter */ if ((cptr == NULL) || (*cptr == '\0')) /* then if a line range was not supplied */ return SCPE_MISVAL; /* then report a "Missing value" error */ - tptr = cptr + strlen (cptr); /* append a semicolon */ - *tptr++ = ';'; /* to the command string */ - *tptr = '\0'; /* to make parsing easier for get_range */ + mptr = malloc (strlen (cptr) + 2); /* allocate space for the string, a semicolon, and a NUL */ - sptr = cptr; /* start at the character after the equals sign */ + if (mptr == NULL) /* if the allocation failed */ + return SCPE_MEM; /* report memory exhaustion */ - while (*sptr) { /* parse the command string until it is exhausted */ - sptr = get_range (NULL, sptr, &low, &high, /* get a semicolon-separated device number range */ + strcpy (mptr, cptr); /* copy over the existing command string */ + tptr = strcat (mptr, ";"); /* and append a semicolon to make parsing easier */ + + while (*tptr) { /* parse the command string until it is exhausted */ + tptr = get_range (NULL, tptr, &low, &high, /* get a semicolon-separated device number range */ 10, 127, ';'); /* in radix 10 with a maximum value of 127 */ - if (sptr == NULL || low > 127 || high > 127) { /* if a parsing error occurred or a number was out of range */ + if (tptr == NULL || low > 127 || high > 127) { /* if a parsing error occurred or a number was out of range */ result = SCPE_ARG; /* then report an "Invalid argument" error */ break; /* and quit at this point */ } @@ -760,6 +763,8 @@ if (value == 1) { /* if we are setting the else for (dev = low; dev <= high; dev++) /* otherwise loop through the range of device numbers */ new_filter [dev / 32] &= ~(1 << dev % 32); /* and clear each corresponding bit in the array */ } + + free (mptr); /* deallocate the temporary string */ } else if (cptr != NULL) /* otherwise we are clearing the filter */ @@ -788,7 +793,7 @@ return result; /* return the result of in the filter is encountered. */ -static t_stat iop_show_filter (FILE *st, UNIT *uptr, int32 value, void *desc) +static t_stat iop_show_filter (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { int32 group, low, high; uint32 test_filter; diff --git a/HP3000/hp3000_ms.c b/HP3000/hp3000_ms.c index 9d429a9c..1717b5ac 100644 --- a/HP3000/hp3000_ms.c +++ b/HP3000/hp3000_ms.c @@ -25,6 +25,7 @@ MS HP 30215A Magnetic Tape Controller Interface + 13-May-16 JDB Modified for revised SCP API function parameter types 10-Nov-15 JDB First release version 26-Oct-14 JDB Passes the magnetic tape diagnostic (D433A) 10-Feb-13 JDB Created @@ -457,8 +458,8 @@ static CNTLR_INTRF ms_interface; static t_stat ms_service (UNIT *uptr); static t_stat ms_reset (DEVICE *dptr); static t_stat ms_boot (int32 unit_number, DEVICE *dptr); -static t_stat ms_attach (UNIT *uptr, char *cptr); -static t_stat ms_onoffline (UNIT *uptr, int32 value, char *cptr, void *desc); +static t_stat ms_attach (UNIT *uptr, CONST char *cptr); +static t_stat ms_onoffline (UNIT *uptr, int32 value, CONST char *cptr, void *desc); /* Interface local utility routines */ @@ -1087,7 +1088,7 @@ else { /* otherwise */ changed by the controller, so the unit will not request attention. */ -static t_stat ms_attach (UNIT *uptr, char *cptr) +static t_stat ms_attach (UNIT *uptr, CONST char *cptr) { t_stat result; @@ -1120,7 +1121,7 @@ else /* otherwise */ becomes idle. */ -static t_stat ms_onoffline (UNIT *uptr, int32 value, char *cptr, void *desc) +static t_stat ms_onoffline (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { const t_bool online = (value != UNIT_OFFLINE); /* TRUE if the drive is being put online */ t_stat result; diff --git a/HP3000/hp3000_scmb.c b/HP3000/hp3000_scmb.c index eb2e4085..286bd55d 100644 --- a/HP3000/hp3000_scmb.c +++ b/HP3000/hp3000_scmb.c @@ -25,6 +25,7 @@ SCMB1,SCMB2 HP 30033A Selector Channel Maintenance Board + 13-May-16 JDB Modified for revised SCP API function parameter types 21-Sep-15 JDB First release version 27-Jan-15 JDB Passes the selector channel diagnostic (D429A) 12-Jan-15 JDB Passes the SCMB diagnostic (D429A) @@ -383,7 +384,7 @@ static SCMB_STATE scmb [2]; /* per-card state variables */ static CNTLR_INTRF scmb_interface; static t_stat scmb_service (UNIT *uptr); static t_stat scmb_reset (DEVICE *dptr); -static t_stat scmb_set_bus (UNIT *uptr, int32 value, char *cptr, void *desc); +static t_stat scmb_set_bus (UNIT *uptr, int32 value, CONST char *cptr, void *desc); /* SCMB local utility routines */ @@ -1134,7 +1135,7 @@ return SCPE_OK; multiplexer initialization won't pick it up by mistake. */ -static t_stat scmb_set_bus (UNIT *uptr, int32 value, char *cptr, void *desc) +static t_stat scmb_set_bus (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { const CARD_ID card = (CARD_ID) (uptr == &scmb_unit [card2]); diff --git a/HP3000/hp3000_sys.c b/HP3000/hp3000_sys.c index 87ca1c19..6a826032 100644 --- a/HP3000/hp3000_sys.c +++ b/HP3000/hp3000_sys.c @@ -23,6 +23,7 @@ in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the author. + 13-May-16 JDB Modified for revised SCP API function parameter types 23-Nov-15 JDB First release version 11-Dec-12 JDB Created @@ -45,9 +46,6 @@ #include #include -#include "sim_defs.h" -#include "scp.h" - #include "hp3000_defs.h" #include "hp3000_cpu.h" #include "hp3000_cpu_ims.h" @@ -748,12 +746,12 @@ static const OP_TABLE mlb_ops = { static void one_time_init (void); static t_bool fprint_stopped (FILE *st, t_stat reason); static void fprint_addr (FILE *st, DEVICE *dptr, t_addr addr); -static t_addr parse_addr (DEVICE *dptr, const char *cptr, const char **tptr); +static t_addr parse_addr (DEVICE *dptr, CONST char *cptr, CONST char **tptr); -static t_stat hp_cold_cmd (int32 arg, char *buf); -static t_stat hp_exdep_cmd (int32 arg, char *buf); -static t_stat hp_run_cmd (int32 arg, char *buf); -static t_stat hp_brk_cmd (int32 arg, char *buf); +static t_stat hp_cold_cmd (int32 arg, CONST char *buf); +static t_stat hp_exdep_cmd (int32 arg, CONST char *buf); +static t_stat hp_run_cmd (int32 arg, CONST char *buf); +static t_stat hp_brk_cmd (int32 arg, CONST char *buf); /* System interface local utility routines */ @@ -762,7 +760,7 @@ static t_stat fprint_order (FILE *ofile, t_value *val, uint32 radix); static t_stat fprint_instruction (FILE *ofile, const OP_TABLE ops, t_value *instruction, t_value mask, uint32 shift, uint32 radix); -static t_stat parse_cpu (char *cptr, t_addr address, UNIT *uptr, t_value *value, int32 switches); +static t_stat parse_cpu (CONST char *cptr, t_addr address, UNIT *uptr, t_value *value, int32 switches); /* System interface state */ @@ -961,7 +959,7 @@ static CTAB aux_cmds [] = { the SCP module. */ -t_stat sim_load (FILE *fptr, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fptr, CONST char *cptr, CONST char *fnam, int flag) { return SCPE_ARG; /* return an error if called inadvertently */ } @@ -1162,7 +1160,7 @@ else { /* otherwise display data radix values, rather than the disc's values. */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { while (isspace ((int) *cptr)) /* skip over any leading spaces */ cptr++; /* that are present in the line */ @@ -1223,7 +1221,7 @@ else /* otherwise */ it may be changed. */ -t_stat hp_set_dib (UNIT *uptr, int32 code, char *cptr, void *desc) +t_stat hp_set_dib (UNIT *uptr, int32 code, CONST char *cptr, void *desc) { DIB *const dibptr = (DIB *) desc; /* a pointer to the associated DIB */ t_stat status = SCPE_OK; @@ -1314,10 +1312,10 @@ return status; /* return the validation 0177777, respectively. */ -t_stat hp_show_dib (FILE *st, UNIT *uptr, int32 code, void *desc) +t_stat hp_show_dib (FILE *st, UNIT *uptr, int32 code, CONST void *desc) { -DIB *const dibptr = (DIB *) desc; /* a pointer to the associated DIB */ -uint32 mask, value; +const DIB *const dibptr = (const DIB *) desc; /* a pointer to the associated DIB */ +uint32 mask, value; switch (code) { /* display the requested value */ @@ -2122,9 +2120,9 @@ return; only allows an implied offset from PBANK. */ -static t_addr parse_addr (DEVICE *dptr, const char *cptr, const char **tptr) +static t_addr parse_addr (DEVICE *dptr, CONST char *cptr, CONST char **tptr) { -const char *sptr; +CONST char *sptr; uint32 overrides; t_addr bank; t_addr address = 0; @@ -2204,11 +2202,12 @@ return address; /* return the linear add value of the CPX2 register to be saved as part of the dump. */ -static t_stat hp_cold_cmd (int32 arg, char *buf) +static t_stat hp_cold_cmd (int32 arg, CONST char *buf) { -char *cptr, gbuf [CBUFSIZE]; -t_stat status; -t_value value; +const char *cptr; +char gbuf [CBUFSIZE]; +t_stat status; +t_value value; if (*buf != '\0') { /* if more characters exist on the command line */ cptr = get_glyph (buf, gbuf, 0); /* then get the next glyph */ @@ -2245,7 +2244,7 @@ return run_cmd (RU_RUN, ""); /* reset and execute the handler. */ -static t_stat hp_exdep_cmd (int32 arg, char *buf) +static t_stat hp_exdep_cmd (int32 arg, CONST char *buf) { parse_config = apcBank_Offset | /* allow the . address form */ apcBank_Override | /* allow bank override switches */ @@ -2278,7 +2277,7 @@ return exdep_cmd (arg, buf); /* return the result of resident in memory. */ -static t_stat hp_run_cmd (int32 arg, char *buf) +static t_stat hp_run_cmd (int32 arg, CONST char *buf) { parse_config = apcDefault_PBANK; /* set the default bank register to PBANK */ @@ -2309,7 +2308,7 @@ return run_cmd (RU_GO, buf); /* return the result of routine to parse the offset. */ -static t_stat hp_brk_cmd (int32 arg, char *buf) +static t_stat hp_brk_cmd (int32 arg, CONST char *buf) { static uint32 PC; static REG PR = { ORDATA (PP, PC, 32) }; @@ -2902,7 +2901,7 @@ return SCPE_OK; /* Parse a CPU instruction */ -static t_stat parse_cpu (char *cptr, t_addr address, UNIT *uptr, t_value *value, int32 switches) +static t_stat parse_cpu (CONST char *cptr, t_addr address, UNIT *uptr, t_value *value, int32 switches) { return SCPE_ARG; /* mnemonic support is not present in this release */ } diff --git a/HP3000/hp_disclib.c b/HP3000/hp_disclib.c index 36a0a2cc..8b903d78 100644 --- a/HP3000/hp_disclib.c +++ b/HP3000/hp_disclib.c @@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the authors. + 13-May-16 JDB Modified for revised SCP API function parameter types 27-Jul-15 JDB First revised release version 21-Feb-15 JDB Revised for new controller interface model 24-Dec-14 JDB Added casts for explicit downward conversions @@ -2682,7 +2683,7 @@ else /* otherwise the status unit. If the attach was successful, the heads are loaded on the drive. */ -t_stat dl_attach (CVPTR cvptr, UNIT *uptr, char *cptr) +t_stat dl_attach (CVPTR cvptr, UNIT *uptr, CONST char *cptr) { t_stat result; @@ -2803,7 +2804,7 @@ return SCPE_OK; /* return normal complet ensure that both protect bits are set so that all heads are protected. */ -t_stat dl_set_model (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat dl_set_model (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) /* if the unit is currently attached */ return SCPE_ALATT; /* then the disc model cannot be changed */ @@ -2844,7 +2845,7 @@ return SCPE_OK; PROTECT, then both upper and lower heads are (un)protected. */ -t_stat dl_set_protect (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat dl_set_protect (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { const uint32 model = uptr->flags & UNIT_MODEL; char gbuf [CBUFSIZE]; @@ -2897,7 +2898,7 @@ return SCPE_OK; bits set, indicating that the entire drive is protected. */ -t_stat dl_show_protect (FILE *st, UNIT *uptr, int32 value, void *desc) +t_stat dl_show_protect (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { const uint32 model = uptr->flags & UNIT_MODEL; @@ -2986,7 +2987,7 @@ return SCPE_OK; number of configurable entries is one less than the defined table size. */ -t_stat dl_set_diag (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat dl_set_diag (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { typedef struct { t_value max; /* maximum allowed value */ @@ -3158,30 +3159,34 @@ return SCPE_OK; contained in a 32-bit unsigned array element. To print it properly, we convert the latter to a 16-bit signed value and then sign-extend to "int" size for fprintf. + + 2. The explicit use of "const CNTLR_VARS *" is necessary to declare a + pointer to a constant structure. Using "const CVPTR" declares a constant + pointer instead. */ -t_stat dl_show_diag (FILE *st, UNIT *uptr, int32 value, void *desc) +t_stat dl_show_diag (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { -const CVPTR cvptr = (CVPTR) desc; +const CNTLR_VARS *cvptr = (const CNTLR_VARS *) desc; /* the controller pointer is supplied */ DIAG_ENTRY *entry; -if (cvptr->dop_base == NULL) /* if the table isn't defined */ - return SCPE_NOFNC; /* then the command is illegal */ +if (cvptr->dop_base == NULL) /* if the table isn't defined */ + return SCPE_NOFNC; /* then the command is illegal */ -else if (cvptr->dop == NULL) { /* otherwise if overrides are currently disabled */ - fputs ("override disabled", st); /* then report it */ +else if (cvptr->dop == NULL) { /* otherwise if overrides are currently disabled */ + fputs ("override disabled", st); /* then report it */ - if (value > 0) /* if we were invoked by a SHOW DIAG command */ - fputc ('\n', st); /* then we must add the line terminator */ + if (value > 0) /* if we were invoked by a SHOW DIAG command */ + fputc ('\n', st); /* then we must add the line terminator */ } -else if (value < 0) /* otherwise if we were invoked by a SHOW command */ - fputs ("override enabled", st); /* then print the table status instead of the details */ +else if (value < 0) /* otherwise if we were invoked by a SHOW command */ + fputs ("override enabled", st); /* then print the table status instead of the details */ -else for (entry = cvptr->dop_base; /* otherwise print each table entry */ - entry->cylinder != DL_OVEND && value > 0; /* until the end-of-table marker or count exhaustion */ +else for (entry = cvptr->dop_base; /* otherwise print each table entry */ + entry->cylinder != DL_OVEND && value > 0; /* until the end-of-table marker or count exhaustion */ entry++, value--) { - fprintf (st, "%3d %1d %2d %*s %c%c%c %*s\n", /* print the entry */ + fprintf (st, "%3d %1d %2d %*s %c%c%c %*s\n", /* print the entry */ entry->cylinder, entry->head, entry->sector, - OPCODE_LENGTH, dl_opcode_name (cvptr->type, entry->opcode), (entry->spd & CM_SPARE ? 'S' : ' '), @@ -3189,10 +3194,10 @@ else for (entry = cvptr->dop_base; /* otherwise print e (entry->spd & CM_DEFECTIVE ? 'D' : ' '), - STATUS_LENGTH, dl_status_name (entry->status)); - if (entry->opcode == Request_Syndrome /* if the current entry is a syndrome request */ - && entry->status == Correctable_Data_Error) { /* for a correctable data error */ - entry++; /* then the next entry contains the values */ - value = value - 1; /* drop the entry count to account for it */ + if (entry->opcode == Request_Syndrome /* if the current entry is a syndrome request */ + && entry->status == Correctable_Data_Error) { /* for a correctable data error */ + entry++; /* then the next entry contains the values */ + value = value - 1; /* drop the entry count to account for it */ fprintf (st, " %3d %06o %06o %06o\n", /* print the displacement and syndrome values */ (int) INT16 (entry->spd), @@ -3230,7 +3235,7 @@ return SCPE_OK; is common to every controller in the array. */ -t_stat dl_set_timing (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat dl_set_timing (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { CVPTR cvptr = (CVPTR) desc; /* the controller pointer is supplied */ const DELAY_PROPS *dpptr; @@ -3281,11 +3286,18 @@ return SCPE_OK; This display routine is called to show the timing mode for the disc subsystem. The "value" parameter is unused; the "desc" parameter is a pointer to the controller. + + + Implementation notes: + + 1. The explicit use of "const CNTLR_VARS *" is necessary to declare a + pointer to a constant structure. Using "const CVPTR" declares a constant + pointer instead. */ -t_stat dl_show_timing (FILE *st, UNIT *uptr, int32 value, void *desc) +t_stat dl_show_timing (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { -CVPTR const cvptr = (CVPTR) desc; /* the controller pointer is supplied */ +const CNTLR_VARS *cvptr = (const CNTLR_VARS *) desc; /* the controller pointer is supplied */ if (cvptr->device->flags & DEV_REALTIME) /* if the real time flag is set */ fputs ("realistic timing", st); /* then we're using realistic timing */ diff --git a/HP3000/hp_disclib.h b/HP3000/hp_disclib.h index fca5a2f1..d54634ea 100644 --- a/HP3000/hp_disclib.h +++ b/HP3000/hp_disclib.h @@ -24,6 +24,7 @@ in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the authors. + 13-May-16 JDB Modified for revised SCP API function parameter types 27-Jul-15 JDB First revised release version 21-Feb-15 JDB Revised for new controller interface model 24-Oct-12 JDB Changed CNTLR_OPCODE to title case to avoid name clash @@ -538,14 +539,14 @@ extern const char *dl_status_name (CNTLR_STATUS status); /* Disc library global SCP support routines */ -extern t_stat dl_attach (CVPTR cvptr, UNIT *uptr, char *cptr); +extern t_stat dl_attach (CVPTR cvptr, UNIT *uptr, CONST char *cptr); extern t_stat dl_detach (CVPTR cvptr, UNIT *uptr); -extern t_stat dl_set_model (UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat dl_set_protect (UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat dl_set_diag (UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat dl_set_timing (UNIT *uptr, int32 value, char *cptr, void *desc); +extern t_stat dl_set_model (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat dl_set_protect (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat dl_set_diag (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat dl_set_timing (UNIT *uptr, int32 value, CONST char *cptr, void *desc); -extern t_stat dl_show_protect (FILE *st, UNIT *uptr, int32 value, void *desc); -extern t_stat dl_show_diag (FILE *st, UNIT *uptr, int32 value, void *desc); -extern t_stat dl_show_timing (FILE *st, UNIT *uptr, int32 value, void *desc); +extern t_stat dl_show_protect (FILE *st, UNIT *uptr, int32 value, CONST void *desc); +extern t_stat dl_show_diag (FILE *st, UNIT *uptr, int32 value, CONST void *desc); +extern t_stat dl_show_timing (FILE *st, UNIT *uptr, int32 value, CONST void *desc); diff --git a/HP3000/hp_tapelib.c b/HP3000/hp_tapelib.c index 4af33389..fee40cb0 100644 --- a/HP3000/hp_tapelib.c +++ b/HP3000/hp_tapelib.c @@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the authors. + 13-May-16 JDB Modified for revised SCP API function parameter types 20-Nov-15 JDB First release version 24-Mar-13 JDB Created tape controller common library from MS simulator @@ -1279,7 +1280,7 @@ else /* otherwise */ changed to avoid upsetting the state that was SAVEd. */ -t_stat tl_attach (CVPTR cvptr, UNIT *uptr, char *cptr) +t_stat tl_attach (CVPTR cvptr, UNIT *uptr, CONST char *cptr) { const uint32 unit = uptr - cvptr->device->units; /* the unit number */ t_stat result; @@ -1340,7 +1341,7 @@ return sim_tape_detach (uptr); /* detach the tape image tested in the "start_command" routine. */ -t_stat tl_set_timing (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat tl_set_timing (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { DEVICE *const dptr = ((CVPTR) desc)->device; /* a pointer to the controlling device */ @@ -1361,7 +1362,7 @@ return SCPE_OK; verified before permitting the change. */ -t_stat tl_set_model (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat tl_set_model (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { const CVPTR cvptr = (CVPTR) desc; /* the controller state structure pointer */ const DRIVE_TYPE new_drive = GET_MODEL (value); /* the new model ID */ @@ -1379,7 +1380,7 @@ return validate_drive (cvptr, uptr, new_drive, 0); /* verify the model chan density setting is verified before permitting the change. */ -t_stat tl_set_density (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat tl_set_density (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { const CVPTR cvptr = (CVPTR) desc; /* the controller state structure pointer */ const DRIVE_TYPE model = GET_MODEL (uptr->flags); /* the current drive model ID */ @@ -1424,7 +1425,7 @@ else /* otherwise a numer supplied. */ -t_stat tl_set_reelsize (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat tl_set_reelsize (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { const uint32 tape_bpi = drive_props [PROP_INDEX (uptr)].bpi; /* the tape unit density */ int32 reel; @@ -1489,11 +1490,18 @@ else { /* otherwise a size is s This display routine is called to show the timing mode for the tape controller. The "desc" parameter is a pointer to the controller. + + + Implementation notes: + + 1. The explicit use of "const CNTLR_VARS *" is necessary to declare a + pointer to a constant structure. Using "const CVPTR" declares a constant + pointer instead. */ -t_stat tl_show_timing (FILE *st, UNIT *uptr, int32 value, void *desc) +t_stat tl_show_timing (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { -DEVICE *const dptr = ((CVPTR) desc)->device; /* a pointer to the controlling device */ +DEVICE *const dptr = ((const CNTLR_VARS *) desc)->device; /* a pointer to the controlling device */ if (dptr->flags & DEV_REALTIME) /* if the real time flag is set */ fputs ("realistic timing", st); /* then we're using realistic timing */ @@ -1511,7 +1519,7 @@ return SCPE_OK; to the unit to be queried. */ -t_stat tl_show_density (FILE *st, UNIT *uptr, int32 value, void *desc) +t_stat tl_show_density (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { fprintf (st, "%d bpi", drive_props [PROP_INDEX (uptr)].bpi); @@ -1545,7 +1553,7 @@ return SCPE_OK; respectively, to provide multiplication by 2 ** . */ -t_stat tl_show_reelsize (FILE *st, UNIT *uptr, int32 value, void *desc) +t_stat tl_show_reelsize (FILE *st, UNIT *uptr, int32 value, CONST void *desc) { t_stat status = SCPE_OK; diff --git a/HP3000/hp_tapelib.h b/HP3000/hp_tapelib.h index 8c0a12c2..17930f59 100644 --- a/HP3000/hp_tapelib.h +++ b/HP3000/hp_tapelib.h @@ -24,6 +24,7 @@ in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the authors. + 13-May-16 JDB Modified for revised SCP API function parameter types 11-Nov-15 JDB First release version 24-Mar-13 JDB Created tape controller common library from MS simulator @@ -524,14 +525,14 @@ extern const char *tl_unit_name (uint32 unit); /* Tape library global SCP support routines */ -extern t_stat tl_attach (CVPTR cvptr, UNIT *uptr, char *cptr); +extern t_stat tl_attach (CVPTR cvptr, UNIT *uptr, CONST char *cptr); extern t_stat tl_detach (UNIT *uptr); -extern t_stat tl_set_timing (UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat tl_set_model (UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat tl_set_density (UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat tl_set_reelsize (UNIT *uptr, int32 value, char *cptr, void *desc); +extern t_stat tl_set_timing (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat tl_set_model (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat tl_set_density (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat tl_set_reelsize (UNIT *uptr, int32 value, CONST char *cptr, void *desc); -extern t_stat tl_show_timing (FILE *st, UNIT *uptr, int32 value, void *desc); -extern t_stat tl_show_density (FILE *st, UNIT *uptr, int32 value, void *desc); -extern t_stat tl_show_reelsize (FILE *st, UNIT *uptr, int32 value, void *desc); +extern t_stat tl_show_timing (FILE *st, UNIT *uptr, int32 value, CONST void *desc); +extern t_stat tl_show_density (FILE *st, UNIT *uptr, int32 value, CONST void *desc); +extern t_stat tl_show_reelsize (FILE *st, UNIT *uptr, int32 value, CONST void *desc); diff --git a/I1401/i1401_cd.c b/I1401/i1401_cd.c index 9110a712..0f2a2e8d 100644 --- a/I1401/i1401_cd.c +++ b/I1401/i1401_cd.c @@ -105,19 +105,19 @@ int32 cdp_buf_full = 0; /* punch buf full? */ t_stat cdr_svc (UNIT *uptr); t_stat cdr_boot (int32 unitno, DEVICE *dptr); -t_stat cdr_attach (UNIT *uptr, char *cptr); +t_stat cdr_attach (UNIT *uptr, CONST char *cptr); t_stat cdr_detach (UNIT *uptr); -t_stat cdp_attach (UNIT *uptr, char *cptr); +t_stat cdp_attach (UNIT *uptr, CONST char *cptr); t_stat cdp_detach (UNIT *uptr); -t_stat cdp_npr (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cdp_npr (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat cd_reset (DEVICE *dptr); t_stat cdr_read_file (char *buf, int32 sz); t_stat cdr_read_cons (char *buf, int32 sz); -t_stat cdr_chg_cons (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cdr_chg_cons (UNIT *uptr, int32 val, CONST char *cptr, void *desc); int32 bcd2asc (int32 c, UNIT *uptr); char colbin_to_bcd (uint32 cb); -extern void inq_puts (char *cptr); +extern void inq_puts (const char *cptr); /* Card reader data structures @@ -358,7 +358,7 @@ return SCPE_OK; /* Punch buffered card (also handles non-process runout button) */ -t_stat cdp_npr (UNIT *notused, int32 val, char *cptr, void *desc) +t_stat cdp_npr (UNIT *notused, int32 val, CONST char *cptr, void *desc) { UNIT *uptr; @@ -477,7 +477,7 @@ return SCPE_OK; Caller will do actual bit field update on successful return */ -t_stat cdr_chg_cons (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cdr_chg_cons (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val == 0) /* clear? */ cdr_unit.flags |= UNIT_ATTABLE; /* attachable on */ @@ -488,7 +488,7 @@ return SCPE_OK; /* Card reader attach */ -t_stat cdr_attach (UNIT *uptr, char *cptr) +t_stat cdr_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -538,7 +538,7 @@ return SCPE_OK; /* Card punch attach */ -t_stat cdp_attach (UNIT *uptr, char *cptr) +t_stat cdp_attach (UNIT *uptr, CONST char *cptr) { cdp_buf_full = 0; return attach_unit (uptr, cptr); diff --git a/I1401/i1401_cpu.c b/I1401/i1401_cpu.c index 4f1c6839..2c79fee0 100644 --- a/I1401/i1401_cpu.c +++ b/I1401/i1401_cpu.c @@ -211,11 +211,11 @@ extern int32 sim_emax; t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_conv (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_conv (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_conv (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_conv (FILE *st, UNIT *uptr, int32 val, CONST void *desc); int32 store_addr_h (int32 addr); int32 store_addr_t (int32 addr); int32 store_addr_u (int32 addr); @@ -1852,7 +1852,7 @@ return SCPE_OK; /* Memory size change */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -1874,7 +1874,7 @@ return SCPE_OK; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -1905,10 +1905,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 i, k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_value sim_eval[MAX_L + 1]; t_stat r; InstHistory *h; @@ -1945,7 +1945,7 @@ return SCPE_OK; /* Set conversions */ -t_stat cpu_set_conv (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_conv (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { conv_old = val; return SCPE_OK; @@ -1953,7 +1953,7 @@ return SCPE_OK; /* Show conversions */ -t_stat cpu_show_conv (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_conv (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (conv_old) fputs ("Old (pre-3.5-1) conversions\n", st); diff --git a/I1401/i1401_defs.h b/I1401/i1401_defs.h index 680e9823..3f773e35 100644 --- a/I1401/i1401_defs.h +++ b/I1401/i1401_defs.h @@ -300,5 +300,23 @@ int32 bcd2ascii (int32 c, t_bool use_h); int32 ascii2bcd (int32 c); +/* Translation Tables */ + +extern const char ascii_to_bcd_old[128]; +extern char bcd_to_ascii_old[64]; +extern const char ascii_to_bcd[128]; +extern const char bcd_to_ascii_a[64]; +extern const char bcd_to_ascii_h[64]; +extern const char bcd_to_pca[64]; +extern const char bcd_to_pch[64]; +extern const uint32 bcd_to_colbin[64]; +extern const int32 bcd_to_bin[16]; +extern const int32 bin_to_bcd[16]; +extern const int32 one_table[64]; +extern const int32 ten_table[64]; +extern const int32 hun_table[64]; +extern const int32 len_table[9]; +extern const int32 op_table[64]; + #endif diff --git a/I1401/i1401_dp.c b/I1401/i1401_dp.c index 8bc139ed..851f3906 100644 --- a/I1401/i1401_dp.c +++ b/I1401/i1401_dp.c @@ -94,8 +94,8 @@ extern uint8 M[]; /* memory */ extern int32 ind[64]; extern int32 AS, BS, iochk; -extern int32 bcd_to_bin[16]; -extern int32 bin_to_bcd[16]; +extern const int32 bcd_to_bin[16]; +extern const int32 bin_to_bcd[16]; extern UNIT cpu_unit; int32 dp_lastf = 0; /* prior function */ diff --git a/I1401/i1401_iq.c b/I1401/i1401_iq.c index d1e32a5f..f07d2508 100644 --- a/I1401/i1401_iq.c +++ b/I1401/i1401_iq.c @@ -48,7 +48,7 @@ int32 inq_char = 033; /* request inq */ t_stat inq_svc (UNIT *uptr); t_stat inq_reset (DEVICE *dptr); -void inq_puts (char *cptr); +void inq_puts (const char *cptr); /* INQ data structures @@ -180,7 +180,7 @@ return SCPE_OK; /* Output multiple characters */ -void inq_puts (char *cptr) +void inq_puts (const char *cptr) { if (cptr == NULL) return; diff --git a/I1401/i1401_lp.c b/I1401/i1401_lp.c index 788dd9d4..9598638b 100644 --- a/I1401/i1401_lp.c +++ b/I1401/i1401_lp.c @@ -37,9 +37,6 @@ #include "i1401_defs.h" extern uint8 M[]; -extern char bcd_to_ascii_old[64]; -extern char bcd_to_ascii_a[64], bcd_to_ascii_h[64]; -extern char bcd_to_pca[64], bcd_to_pch[64]; extern int32 iochk, ind[64]; extern t_bool conv_old; @@ -47,16 +44,16 @@ int32 cct[CCT_LNT] = { 03 }; int32 cctlnt = 66, cctptr = 0, lines = 0, lflag = 0; t_stat lpt_reset (DEVICE *dptr); -t_stat lpt_attach (UNIT *uptr, char *cptr); +t_stat lpt_attach (UNIT *uptr, CONST char *cptr); t_stat space (int32 lines, int32 lflag); -t_stat lpt_puts (char *buf); +t_stat lpt_puts (const char *buf); -extern void inq_puts (char *buf); +extern void inq_puts (const char *buf); -char *pch_table_old[4] = { +const char *pch_table_old[4] = { bcd_to_ascii_old, bcd_to_ascii_old, bcd_to_pca, bcd_to_pch }; -char *pch_table[4] = { +const char *pch_table[4] = { bcd_to_ascii_a, bcd_to_ascii_h, bcd_to_pca, bcd_to_pch }; @@ -120,7 +117,7 @@ DEVICE lpt_dev = { t_stat write_line (int32 ilnt, int32 mod) { int32 i, t, wm, sup; -char *bcd2asc; +const char *bcd2asc; t_stat r; static char lbuf[LPT_WIDTH + 1]; /* + null */ @@ -240,7 +237,7 @@ return r; Note that if printing to the console, newline must be converted to crlf */ -t_stat lpt_puts (char *buf) +t_stat lpt_puts (const char *buf) { if ((lpt_unit.flags & UNIT_ATT) != 0) { /* attached? */ fputs (buf, lpt_unit.fileref); /* print string */ @@ -278,7 +275,7 @@ return SCPE_OK; /* Attach routine */ -t_stat lpt_attach (UNIT *uptr, char *cptr) +t_stat lpt_attach (UNIT *uptr, CONST char *cptr) { cctptr = 0; /* clear cct ptr */ lines = 0; /* no cc action */ diff --git a/I1401/i1401_sys.c b/I1401/i1401_sys.c index 32dd496e..7d0c3261 100644 --- a/I1401/i1401_sys.c +++ b/I1401/i1401_sys.c @@ -50,8 +50,6 @@ extern DEVICE dp_dev, mt_dev; extern UNIT cpu_unit; extern REG cpu_reg[]; extern uint8 M[]; -extern char ascii_to_bcd_old[128], ascii_to_bcd[128]; -extern char bcd_to_ascii_old[64], bcd_to_ascii_a[64], bcd_to_ascii_h[64]; extern int32 store_addr_h (int32 addr); extern int32 store_addr_t (int32 addr); extern int32 store_addr_u (int32 addr); @@ -126,7 +124,7 @@ const char *sim_stop_messages[] = { number of entries */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 col, rpt, ptr, mask, cctbuf[CCT_LNT]; t_stat r; @@ -190,7 +188,6 @@ const char *opcode[64] = { void fprint_addr (FILE *of, t_value *dig) { int32 addr, xa; -extern int32 hun_table[64], ten_table[64], one_table[64]; addr = hun_table[dig[0] & CHAR] + ten_table[dig[1]] + one_table[dig[2]]; xa = (addr >> V_INDEX) & M_INDEX; @@ -240,7 +237,6 @@ t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, int32 op, flags, ilnt, i, t; int32 wmch = conv_old? '~': '`'; t_bool use_h = sw & SWMASK ('F'); -extern int32 op_table[64], len_table[9]; if (sw & SWMASK ('C')) { /* character? */ t = val[0]; @@ -314,7 +310,7 @@ return -(ilnt - 1); /* return # chars */ /* get_addr - get address + index pair */ -t_stat get_addr (char *cptr, t_value *val) +t_stat get_addr (const char *cptr, t_value *val) { int32 addr, index; t_stat r; @@ -365,11 +361,10 @@ return SCPE_OK; <= 0 -number of extra words */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 i, op, ilnt, t, cflag, wm_seen; int32 wmch = conv_old? '~': '`'; -extern int32 op_table[64], len_table[9]; char gbuf[CBUFSIZE]; cflag = (uptr == NULL) || (uptr == &cpu_unit); diff --git a/I1620/i1620_cd.c b/I1620/i1620_cd.c index d16847e4..346912b3 100644 --- a/I1620/i1620_cd.c +++ b/I1620/i1620_cd.c @@ -53,7 +53,7 @@ char cdr_buf[CD_LEN + 2]; char cdp_buf[CD_LEN + 2]; t_stat cdr_reset (DEVICE *dptr); -t_stat cdr_attach (UNIT *uptr, char *cptr); +t_stat cdr_attach (UNIT *uptr, CONST char *cptr); t_stat cdr_boot (int32 unitno, DEVICE *dptr); t_stat cdr_read (void); t_stat cdp_reset (DEVICE *dptr); @@ -380,7 +380,7 @@ return SCPE_OK; /* Card reader attach */ -t_stat cdr_attach (UNIT *uptr, char *cptr) +t_stat cdr_attach (UNIT *uptr, CONST char *cptr) { ind[IN_LAST] = 0; /* clear last card */ return attach_unit (uptr, cptr); diff --git a/I1620/i1620_cpu.c b/I1620/i1620_cpu.c index 1f2c6ea8..8def7c3d 100644 --- a/I1620/i1620_cpu.c +++ b/I1620/i1620_cpu.c @@ -140,14 +140,14 @@ uint8 ind[NUM_IND] = { 0 }; /* indicators */ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_opt1 (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_opt2 (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_save (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_table (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_opt1 (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_opt2 (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_save (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_table (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); int32 get_2d (uint32 ad); t_stat get_addr (uint32 alast, int32 lnt, t_bool indexok, uint32 *addr); @@ -2140,7 +2140,7 @@ return SCPE_OK; /* Memory size change */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -2159,7 +2159,7 @@ return SCPE_OK; /* Model change */ -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val) cpu_unit.flags = (cpu_unit.flags & (UNIT_SCP | UNIT_BCD | MII_OPT)) | @@ -2170,7 +2170,7 @@ return SCPE_OK; /* Set/clear Model 1 option */ -t_stat cpu_set_opt1 (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_opt1 (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cpu_unit.flags & IF_MII) { sim_printf ("Feature is standard on 1620 Model 2\n"); @@ -2181,7 +2181,7 @@ return SCPE_OK; /* Set/clear Model 2 option */ -t_stat cpu_set_opt2 (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_opt2 (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (!(cpu_unit.flags & IF_MII)) { sim_printf ("Feature is not available on 1620 Model 1\n"); @@ -2192,7 +2192,7 @@ return SCPE_OK; /* Front panel save */ -t_stat cpu_set_save (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_save (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (saved_PC & 1) return SCPE_NOFNC; @@ -2202,7 +2202,7 @@ return SCPE_OK; /* Set standard add/multiply tables */ -t_stat cpu_set_table (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_table (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i; @@ -2217,7 +2217,7 @@ return SCPE_OK; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -2248,10 +2248,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 i, k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_value sim_eval[INST_LEN]; t_stat r; InstHistory *h; diff --git a/I1620/i1620_defs.h b/I1620/i1620_defs.h index 521b5a66..72faac28 100644 --- a/I1620/i1620_defs.h +++ b/I1620/i1620_defs.h @@ -232,4 +232,7 @@ enum opcodes { OP_BBT = 90, OP_BMK, OP_ORF, OP_ANDF, OP_CPLF, /* 90 - 99 */ OP_EORF, OP_OTD, OP_DTO }; +extern const int8 cdr_to_alp[128]; +extern const int8 alp_to_cdp[256]; + #endif diff --git a/I1620/i1620_lp.c b/I1620/i1620_lp.c index 0ff48ad8..d0ff98e9 100644 --- a/I1620/i1620_lp.c +++ b/I1620/i1620_lp.c @@ -57,7 +57,7 @@ int32 lpt_savctrl = 0; /* saved spc ctrl */ t_stat lpt_svc (UNIT *uptr); t_stat lpt_reset (DEVICE *dptr); -t_stat lpt_attach (UNIT *uptr, char *cptr); +t_stat lpt_attach (UNIT *uptr, CONST char *cptr); void lpt_buf_init (void); t_stat lpt_num(uint32 pa, uint32 f1, t_bool dump); /* tfm: length parameter removed, not needed */ t_stat lpt_print (void); @@ -356,7 +356,7 @@ return SCPE_OK; /* Attach routine */ -t_stat lpt_attach (UNIT *uptr, char *cptr) +t_stat lpt_attach (UNIT *uptr, CONST char *cptr) { lpt_reset (&lpt_dev); return attach_unit (uptr, cptr); diff --git a/I1620/i1620_sys.c b/I1620/i1620_sys.c index c2543bca..aa69b95f 100644 --- a/I1620/i1620_sys.c +++ b/I1620/i1620_sys.c @@ -39,7 +39,6 @@ extern DEVICE dp_dev; extern UNIT cpu_unit; extern REG cpu_reg[]; extern uint8 M[MAXMEMSIZE]; -extern int8 cdr_to_alp[128], alp_to_cdp[256]; /* SCP data structures and interface routines @@ -122,7 +121,7 @@ const char *sim_stop_messages[] = { number of entries */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { uint32 col, mask, cctbuf[CCT_LNT]; int32 ptr, rpt; @@ -168,7 +167,7 @@ return SCPE_OK; /* Symbol table */ struct opc { - char *str; /* mnemonic */ + const char *str; /* mnemonic */ uint32 opv; /* opcode & flags */ uint32 qv; /* q field */ }; @@ -476,7 +475,7 @@ return SCPE_OK; <= 0 -number of extra words */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 i, qv, opfl, last; char la, *fptr, gbuf[CBUFSIZE]; diff --git a/I1620/i1620_tty.c b/I1620/i1620_tty.c index d2a029cf..8ba01228 100644 --- a/I1620/i1620_tty.c +++ b/I1620/i1620_tty.c @@ -69,7 +69,7 @@ t_stat tto_num (uint32 pa, uint32 len, t_bool dump); t_stat tto_write (uint32 c); t_stat tty_svc (UNIT *uptr); t_stat tty_reset (DEVICE *dptr); -t_stat tty_set_fixtabs (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tty_set_fixtabs (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* TTY data structures @@ -480,7 +480,7 @@ return; /* Set tab stops at fixed modulus */ -t_stat tty_set_fixtabs (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tty_set_fixtabs (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i; diff --git a/I7094/i7094_binloader.c b/I7094/i7094_binloader.c index a00c5d11..85cc1c6c 100644 --- a/I7094/i7094_binloader.c +++ b/I7094/i7094_binloader.c @@ -89,7 +89,7 @@ extern t_uint64 *M; extern uint32 PC; t_stat -binloader (FILE *fd, char *file, int loadpt) +binloader (FILE *fd, const char *file, int loadpt) { #ifdef DEBUGLOADER FILE *lfd; diff --git a/I7094/i7094_cd.c b/I7094/i7094_cd.c index e0aef9e9..06b9c26f 100644 --- a/I7094/i7094_cd.c +++ b/I7094/i7094_cd.c @@ -84,18 +84,10 @@ t_stat cdp_chwr (uint32 ch, t_uint64 val, uint32 flags); t_stat cdp_reset (DEVICE *dptr); t_stat cdp_svc (UNIT *uptr); t_stat cdp_card_end (UNIT *uptr); -t_stat cd_attach (UNIT *uptr, char *cptr); -t_stat cd_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cd_attach (UNIT *uptr, CONST char *cptr); +t_stat cd_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); char colbin_to_bcd (uint32 cb); -extern uint32 PC; -extern uint32 ind_ioc; -extern char bcd_to_ascii_a[64]; -extern char bcd_to_ascii_h[64]; -extern uint32 bcd_to_colbin[64]; -extern char ascii_to_bcd[128]; -extern t_uint64 bit_masks[36]; -extern uint32 col_masks[12]; /* Card reader data structures @@ -311,7 +303,7 @@ return SCPE_OK; /* Reader/punch attach */ -t_stat cd_attach (UNIT *uptr, char *cptr) +t_stat cd_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -331,7 +323,7 @@ return SCPE_OK; /* Reader/punch set mode - valid only if not attached */ -t_stat cd_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cd_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { return (uptr->flags & UNIT_ATT)? SCPE_NOFNC: SCPE_OK; } @@ -422,7 +414,8 @@ return SCPE_OK; t_stat cdp_card_end (UNIT *uptr) { uint32 i, col, row, bufw, colbin; -char *pch, bcd, cdp_cbuf[(2 * CD_CHRLNT) + 2]; +const char *pch; +char bcd, cdp_cbuf[(2 * CD_CHRLNT) + 2]; t_uint64 dat; if ((uptr->flags & UNIT_ATT) == 0) /* not attached? */ diff --git a/I7094/i7094_com.c b/I7094/i7094_com.c index 94d0c3df..18191fb2 100644 --- a/I7094/i7094_com.c +++ b/I7094/i7094_com.c @@ -221,12 +221,12 @@ t_stat coms_svc (UNIT *uptr); t_stat comti_svc (UNIT *uptr); t_stat comto_svc (UNIT *uptr); t_stat com_reset (DEVICE *dptr); -t_stat com_attach (UNIT *uptr, char *cptr); +t_stat com_attach (UNIT *uptr, CONST char *cptr); t_stat com_detach (UNIT *uptr); -t_stat com_show_ctrl (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat com_show_freeq (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat com_show_allq (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat com_show_oneq (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat com_show_ctrl (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat com_show_freeq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat com_show_allq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat com_show_oneq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void com_reset_ln (uint32 i); uint16 com_get_nexti (uint32 *ln); uint16 com_gethd_free (LISTHD *lh); @@ -1085,7 +1085,7 @@ return SCPE_OK; /* Attach master unit */ -t_stat com_attach (UNIT *uptr, char *cptr) +t_stat com_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -1129,7 +1129,7 @@ return; /* Special show commands */ -uint32 com_show_qsumm (FILE *st, LISTHD *lh, char *name) +uint32 com_show_qsumm (FILE *st, LISTHD *lh, const char *name) { uint32 i, next; @@ -1160,13 +1160,13 @@ if (((ch & 07400) == 0) && (c >= 040) && (c != 0177)) return; } -t_stat com_show_freeq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat com_show_freeq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { com_show_qsumm (st, &com_free, "Free queue"); return SCPE_OK; } -t_stat com_show_oneq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat com_show_oneq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 entc, ln, i, next; LISTHD *lh; @@ -1189,7 +1189,7 @@ if ((entc = com_show_qsumm (st, lh, name))) { return SCPE_OK; } -t_stat com_show_allq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat com_show_allq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 i; @@ -1198,7 +1198,7 @@ for (i = 0; i < COM_TLINES; i++) return SCPE_OK; } -t_stat com_show_ctrl (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat com_show_ctrl (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (!com_enab) fprintf (st, "Controller is not initialized\n"); diff --git a/I7094/i7094_cpu.c b/I7094/i7094_cpu.c index 64c406db..e9f43dc7 100644 --- a/I7094/i7094_cpu.c +++ b/I7094/i7094_cpu.c @@ -217,10 +217,10 @@ extern DEVICE ch_dev[NUM_CHAN]; t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_bool ReadI (uint32 va, t_uint64 *dat); t_bool Read (uint32 va, t_uint64 *dat); t_bool Write (uint32 va, t_uint64 dat); @@ -2281,7 +2281,7 @@ return SCPE_OK; /* Set model */ -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { UNIT *chuptr = mt_dev[CHRONO_CH].units + CHRONO_UNIT; extern DEVICE clk_dev; @@ -2304,7 +2304,7 @@ return SCPE_OK; /* Show CTSS */ -t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (cpu_model & I_CT) fputs ("CTSS", st); @@ -2360,7 +2360,7 @@ return; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -2448,10 +2448,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_stat r; InstHistory *h; diff --git a/I7094/i7094_defs.h b/I7094/i7094_defs.h index 7cf1aae9..2c54b39d 100644 --- a/I7094/i7094_defs.h +++ b/I7094/i7094_defs.h @@ -471,7 +471,7 @@ typedef struct { #define WriteP(p,d) M[p] = d void cpu_ent_hist (uint32 pc, uint32 ea, t_uint64 ir, t_uint64 opnd); -t_stat ch_show_chan (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat ch_show_chan (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat ch6_end_nds (uint32 ch); uint32 ch6_set_flags (uint32 ch, uint32 unit, uint32 flags); t_stat ch6_err_disc (uint32 ch, uint32 unit, uint32 flags); @@ -486,4 +486,19 @@ t_bool ch9_qconn (uint32 ch); void ch_set_map (void); t_bool ch_qidle (void); +extern const uint32 col_masks[12]; +extern const t_uint64 bit_masks[36]; +extern const char nine_to_ascii_a[64]; +extern const char nine_to_ascii_h[64]; +extern const char ascii_to_nine[128]; +extern const char ascii_to_bcd[128]; +extern const char bcd_to_ascii_a[64]; +extern const char bcd_to_ascii_h[64]; +extern const char bcd_to_pca[64]; +extern const char bcd_to_pch[64]; +extern const uint32 bcd_to_colbin[64]; + +extern uint32 PC; +extern uint32 ind_ioc; + #endif diff --git a/I7094/i7094_dsk.c b/I7094/i7094_dsk.c index 96059730..3b9639b7 100644 --- a/I7094/i7094_dsk.c +++ b/I7094/i7094_dsk.c @@ -222,7 +222,7 @@ /* Data and declarations */ typedef struct { - char *name; + const char *name; uint32 accpm; /* acc/module: 1 or 2 */ uint32 wdspt; /* wds/track: 500 or 1000 */ uint32 trkpc; /* trks/cyl: 1 or 40 */ @@ -313,8 +313,8 @@ extern uint32 ch_req; t_stat dsk_svc (UNIT *uptr); t_stat dsk_svc_sns (UNIT *uptr); t_stat dsk_reset (DEVICE *dptr); -t_stat dsk_attach (UNIT *uptr, char *cptr); -t_stat dsk_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat dsk_attach (UNIT *uptr, CONST char *cptr); +t_stat dsk_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat dsk_chsel (uint32 ch, uint32 sel, uint32 unit); t_stat dsk_chwr (uint32 ch, t_uint64 val, uint32 flags); t_stat dsk_new_cmd (uint32 ch, t_uint64 cmd); @@ -326,7 +326,7 @@ t_stat dsk_xfer_done (UNIT *uaptr, uint32 dtyp); t_stat dsk_wr_trk (UNIT *uptr, uint32 trk); t_bool dsk_get_fmtc (uint32 dtyp, uint8 *fc); t_bool dsk_qdone (uint32 ch); -t_stat dsk_show_format (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat dsk_show_format (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* DSK data structures @@ -1094,7 +1094,7 @@ return SCPE_OK; /* Attach routine, test formating */ -t_stat dsk_attach (UNIT *uptr, char *cptr) +t_stat dsk_attach (UNIT *uptr, CONST char *cptr) { uint32 dtyp = GET_DTYPE (uptr->flags); t_stat r; @@ -1111,7 +1111,7 @@ return dsk_show_format (stdout, uptr, 0, NULL); /* Set disk size */ -t_stat dsk_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dsk_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 dtyp = GET_DTYPE (val); uint32 u = uptr - dsk_dev.units; @@ -1134,7 +1134,7 @@ return SCPE_OK; /* Show format */ -t_stat dsk_show_format (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dsk_show_format (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 a, t, k, u, tlim, dtyp, da; uint32 rptr, rlnt, rlim, rec, ctptr, *format; diff --git a/I7094/i7094_io.c b/I7094/i7094_io.c index 92e2b367..d62dacfe 100644 --- a/I7094/i7094_io.c +++ b/I7094/i7094_io.c @@ -53,7 +53,7 @@ #define CHAINC(x) (((x) & ~AMASK) | (((x) + 1) & AMASK)) typedef struct { - char *name; + const char *name; uint32 flags; } DEV_CHAR; @@ -91,9 +91,9 @@ extern DEVICE com_dev; t_stat ch_reset (DEVICE *dptr); t_stat ch6_svc (UNIT *uptr); -t_stat ch_set_enable (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ch_set_disable (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ch_show_type (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat ch_set_enable (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ch_set_disable (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ch_show_type (FILE *st, UNIT *uptr, int32 val, CONST void *desc); DEVICE *ch_find_dev (uint32 ch, uint32 unit); t_stat ch6_sel (uint32 ch, uint32 sel, uint32 unit, uint32 sta); t_bool ch6_rd_putw (uint32 ch); @@ -1770,7 +1770,7 @@ return SCPE_OK; /* Show channel type */ -t_stat ch_show_type (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat ch_show_type (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; @@ -1787,7 +1787,7 @@ return SCPE_OK; /* Enable channel, assign device */ -t_stat ch_set_enable (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ch_set_enable (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr, *dptr1; char gbuf[CBUFSIZE]; @@ -1848,7 +1848,7 @@ return; /* Disable channel, deassign device */ -t_stat ch_set_disable (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ch_set_disable (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr, *dptr1; UNIT *uptr1; @@ -1879,7 +1879,7 @@ return reset_all (0); /* Show channel that device is on (tapes, 7289, 7909 only) */ -t_stat ch_show_chan (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat ch_show_chan (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; uint32 i; diff --git a/I7094/i7094_lp.c b/I7094/i7094_lp.c index 9fb56ee8..cacc5ca2 100644 --- a/I7094/i7094_lp.c +++ b/I7094/i7094_lp.c @@ -114,15 +114,7 @@ static const uint8 echo_map[LPT_BINLNT + LPT_ECHLNT] = { 18+ECHO_F, 19+ECHO_F, 20+ECHO_F, 21+ECHO_F }; -extern uint32 ind_ioc; -extern t_uint64 bit_masks[36]; -extern uint32 col_masks[12]; -extern char bcd_to_ascii_a[64]; -extern char bcd_to_ascii_h[64]; -extern char bcd_to_pca[64]; -extern char bcd_to_pch[64]; - -char *pch_table[4] = { +const char *pch_table[4] = { bcd_to_ascii_h, bcd_to_ascii_a, bcd_to_pch, bcd_to_pca, }; @@ -315,7 +307,8 @@ return SCPE_OK; t_stat lpt_end_line (UNIT *uptr) { uint32 i, col, row, bufw, colbin; -char *pch, bcd, lpt_cbuf[LPT_CHRLNT + 1]; +const char *pch; +char bcd, lpt_cbuf[LPT_CHRLNT + 1]; t_uint64 dat; pch = pch_table[GET_PCHAIN (lpt_unit.flags)]; /* get print chain */ diff --git a/I7094/i7094_mt.c b/I7094/i7094_mt.c index 4c9731af..e5f344d4 100644 --- a/I7094/i7094_mt.c +++ b/I7094/i7094_mt.c @@ -79,7 +79,7 @@ t_stat mt_chwr (uint32 ch, t_uint64 val, uint32 flags); t_stat mt_rec_end (UNIT *uptr); t_stat mt_svc (UNIT *uptr); t_stat mt_reset (DEVICE *dptr); -t_stat mt_attach (UNIT *uptr, char *cptr); +t_stat mt_attach (UNIT *uptr, CONST char *cptr); t_stat mt_boot (int32 unitno, DEVICE *dptr); t_stat mt_map_err (UNIT *uptr, t_stat st); @@ -833,7 +833,7 @@ return SCPE_OK; /* done */ /* Magtape attach */ -t_stat mt_attach (UNIT *uptr, char *cptr) +t_stat mt_attach (UNIT *uptr, CONST char *cptr) { uptr->flags = uptr->flags & ~MTUF_LDN; /* start as hi den */ return sim_tape_attach (uptr, cptr); diff --git a/I7094/i7094_sys.c b/I7094/i7094_sys.c index c31069aa..f996d348 100644 --- a/I7094/i7094_sys.c +++ b/I7094/i7094_sys.c @@ -129,9 +129,9 @@ return STOP_CHBKPT; /* Binary loader, not implemented */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { -extern t_stat binloader (FILE *fd, char *file, int loadpt); +extern t_stat binloader (FILE *fd, const char *file, int loadpt); if (flag == 0) return binloader (fileref, cptr, 0); @@ -702,7 +702,7 @@ else return nine_to_ascii_h[c]; status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { uint32 i, j, c; t_uint64 fld[3]; diff --git a/Ibm1130/ibm1130_cpu.c b/Ibm1130/ibm1130_cpu.c index 7e0a2e02..96c85266 100644 --- a/Ibm1130/ibm1130_cpu.c +++ b/Ibm1130/ibm1130_cpu.c @@ -225,18 +225,18 @@ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); t_stat cpu_svc (UNIT *uptr); -t_stat cpu_set_size (UNIT *uptr, int32 value, char *cptr, void *desc); -t_stat cpu_set_type (UNIT *uptr, int32 value, char *cptr, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 value, CONST char *cptr, void *desc); +t_stat cpu_set_type (UNIT *uptr, int32 value, CONST char *cptr, void *desc); void calc_ints (void); extern t_stat ts_wr (int32 data, int32 addr, int32 access); extern UNIT cr_unit, prt_unit[]; #ifdef ENABLE_BACKTRACE - static void archive_backtrace(char *inst); + static void archive_backtrace(const char *inst); static void reset_backtrace (void); static void show_backtrace (int nshow); - static t_stat backtrace_cmd (int32 flag, char *cptr); + static t_stat backtrace_cmd (int32 flag, CONST char *cptr); #else #define archive_backtrace(inst) #define reset_backtrace() @@ -251,8 +251,8 @@ extern UNIT cr_unit, prt_unit[]; static void init_console_window (void); static void destroy_console_window (void); -static t_stat view_cmd (int32 flag, char *cptr); -static t_stat cpu_attach (UNIT *uptr, char *cptr); +static t_stat view_cmd (int32 flag, CONST char *cptr); +static t_stat cpu_attach (UNIT *uptr, CONST char *cptr); static t_bool bsctest (int32 DSPLC, t_bool reset_V); static void exit_irq (void); static void trace_instruction (void); @@ -452,18 +452,18 @@ void calc_ints (void) #define INCREMENT_IAR IAR = (IAR + 1) & mem_mask -void bail (char *msg) +void bail (const char *msg) { printf("%s\n", msg); exit(1); } -static void weirdop (char *msg) +static void weirdop (const char *msg) { printf("Weird opcode: %s at %04x\n", msg, IAR-1); } -static char *xio_devs[] = { +static const char *xio_devs[] = { "dev-00?", "console", "1442card", "1134ptape", "dsk0", "1627plot", "1132print", "switches", "1231omr", "2501card", "sca", "dev-0b?", @@ -474,7 +474,7 @@ static char *xio_devs[] = { "dev-1c?", "dev-1d?", "dev-1e?", "dev-1f?" }; -static char *xio_funcs[] = { +static const char *xio_funcs[] = { "func0?", "write", "read", "sense_irq", "control", "initw", "initr", "sense" }; @@ -486,7 +486,7 @@ t_stat sim_instr (void) char msg[50]; int cwincount = 0, status; static long ninstr = 0; - static char *intlabel[] = {"INT0","INT1","INT2","INT3","INT4","INT5"}; + static const char *intlabel[] = {"INT0","INT1","INT2","INT3","INT4","INT5"}; /* the F bit indicates a two-word instruction for most instructions except the ones marked FALSE below */ static t_bool F_bit_used[] = { /* FALSE for those few instructions that don't have a long instr version */ @@ -1377,7 +1377,7 @@ t_stat cpu_svc (UNIT *uptr) * Memory allocation * ------------------------------------------------------------------------ */ -t_stat cpu_set_size (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { t_bool used; int32 i; @@ -1406,7 +1406,7 @@ t_stat cpu_set_size (UNIT *uptr, int32 value, char *cptr, void *desc) /* processor type */ -t_stat cpu_set_type (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat cpu_set_type (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { REG *r; @@ -1451,7 +1451,7 @@ void xio_1131_switches (int32 addr, int32 func, int32 modify) * Illegal IO operation. Not yet sure what the actual CPU does in this case * ------------------------------------------------------------------------ */ -void xio_error (char *msg) +void xio_error (const char *msg) { printf("*** XIO error at %04x: %s\n", prev_IAR, msg); if (cgi) /* if this happens in CGI mode, probably best to halt */ @@ -1462,7 +1462,7 @@ void xio_error (char *msg) * register_cmd - add a command to the extensible command table * ------------------------------------------------------------------------ */ -t_stat register_cmd (char *name, t_stat (*action)(int32 flag, char *ptr), int arg, char *help) +t_stat register_cmd (const char *name, t_stat (*action)(int32 flag, CONST char *ptr), int arg, const char *help) { int i; @@ -1495,7 +1495,7 @@ t_stat register_cmd (char *name, t_stat (*action)(int32 flag, char *ptr), int ar * echo_cmd - just echo the command line * ------------------------------------------------------------------------ */ -static t_stat echo_cmd (int32 flag, char *cptr) +static t_stat echo_cmd (int32 flag, CONST char *cptr) { printf("%s\n", cptr); return SCPE_OK; @@ -1542,11 +1542,11 @@ void sim_init (void) static struct tag_arch { int iar; - char *inst; + const char *inst; } arch[MAXARCHIVE]; int narchived = 0, archind = 0; -static void archive_backtrace (char *inst) +static void archive_backtrace (const char *inst) { static int prevind; @@ -1596,7 +1596,7 @@ static void show_backtrace (int nshow) putchar('\n'); } -static t_stat backtrace_cmd (int32 flag, char *cptr) +static t_stat backtrace_cmd (int32 flag, CONST char *cptr) { int n; @@ -1680,9 +1680,9 @@ typedef struct tag_symentry { static PSYMENTRY syms = NULL; static t_bool new_log, log_fac; -static t_stat cpu_attach (UNIT *uptr, char *cptr) +static t_stat cpu_attach (UNIT *uptr, CONST char *cptr) { - char mapfile[200], buf[200], sym[100]; + char mapfile[200], buf[200], sym[100], gbuf[2*CBUFSIZE]; int addr; PSYMENTRY n, prv, s; FILE *fd; @@ -1719,7 +1719,7 @@ static t_stat cpu_attach (UNIT *uptr, char *cptr) break; } - if ((n = malloc(sizeof(SYMENTRY))) == NULL) { + if ((n = (PSYMENTRY)malloc(sizeof(SYMENTRY))) == NULL) { printf("out of memory reading map!\n"); break; } @@ -1741,7 +1741,7 @@ static t_stat cpu_attach (UNIT *uptr, char *cptr) fclose(fd); } - return attach_unit(uptr, quotefix(cptr)); /* fix quotes in filenames & attach */ + return attach_unit(uptr, quotefix(cptr, gbuf)); /* fix quotes in filenames & attach */ } static void trace_instruction (void) @@ -1843,7 +1843,7 @@ static void trace_common (FILE *fout) fprintf(fout, "[IAR %04x IPL %c] ", IAR, (ipl < 0) ? ' ' : ('0' + ipl)); } -void trace_io (char *fmt, ...) +void trace_io (const char *fmt, ...) { va_list args; @@ -1858,7 +1858,7 @@ void trace_io (char *fmt, ...) fputs(CRLF, cpu_unit.fileref); } -void trace_both (char *fmt, ...) +void trace_both (const char *fmt, ...) { va_list args; @@ -1879,7 +1879,7 @@ void trace_both (char *fmt, ...) /* debugging */ -void debug_print (char *fmt, ...) +void debug_print (const char *fmt, ...) { va_list args; FILE *fout = stdout; @@ -1917,7 +1917,7 @@ void debug_print (char *fmt, ...) /* view_cmd - let user view and/or edit a file (e.g. a printer output file, script, or source deck) */ -static t_stat view_cmd (int32 flag, char *cptr) +static t_stat view_cmd (int32 flag, CONST char *cptr) { #ifdef _WIN32 char cmdline[256]; diff --git a/Ibm1130/ibm1130_cr.c b/Ibm1130/ibm1130_cr.c index e7d06beb..1dac3f03 100644 --- a/Ibm1130/ibm1130_cr.c +++ b/Ibm1130/ibm1130_cr.c @@ -369,14 +369,14 @@ extern UNIT cpu_unit; static t_stat cr_svc (UNIT *uptr); static t_stat cr_reset (DEVICE *dptr); -static t_stat cr_set_code (UNIT *uptr, int32 match, char *cptr, void *desc); -static t_stat cr_attach (UNIT *uptr, char *cptr); +static t_stat cr_set_code (UNIT *uptr, int32 match, CONST char *cptr, void *desc); +static t_stat cr_attach (UNIT *uptr, CONST char *cptr); static int32 guess_cr_code (void); static void feedcycle (t_bool load, t_bool punching); static t_stat cp_reset (DEVICE *dptr); -static t_stat cp_set_code (UNIT *uptr, int32 match, char *cptr, void *desc); -static t_stat cp_attach (UNIT *uptr, char *cptr); +static t_stat cp_set_code (UNIT *uptr, int32 match, CONST char *cptr, void *desc); +static t_stat cp_attach (UNIT *uptr, CONST char *cptr); static t_stat cp_detach (UNIT *uptr); static int16 cr_dsw = 0; /* device status word */ @@ -736,7 +736,7 @@ static int any_punched = 0; #define MAXARGS 10 /* max number of arguments to save */ static char list_save[MAXARGS][MAXARGLEN], *list_arg[MAXARGLEN+1]; static int list_nargs = 0; -static char* (*tab_proc)(char* str, int width) = NULL; /* tab reformatting routine */ +static const char* (*tab_proc)(char* str, int width) = NULL; /* tab reformatting routine */ static int tab_width = 8; static uint16 punchstation[80]; @@ -746,7 +746,7 @@ static enum {STATION_EMPTY, STATION_LOADED, STATION_READ, STATION_PUNCHED} punch static t_bool nextdeck (void); static void checkdeck (void); -static t_stat pcr_attach(UNIT *uptr, char *devname); +static t_stat pcr_attach(UNIT *uptr, CONST char *devname); static t_stat pcr_detach(UNIT *uptr); static t_stat pcr_svc(UNIT *uptr); static void pcr_xio_sense(int modify); @@ -806,7 +806,7 @@ t_stat set_active_cr_code (int match) return SCPE_OK; } -static t_stat cr_set_code (UNIT *uptr, int32 match, char *cptr, void *desc) +static t_stat cr_set_code (UNIT *uptr, int32 match, CONST char *cptr, void *desc) { if (match == CODE_AUTO) match = guess_cr_code(); @@ -873,7 +873,7 @@ static int32 guess_cr_code (void) return guess; } -static t_stat cp_set_code (UNIT *uptr, int32 match, char *cptr, void *desc) +static t_stat cp_set_code (UNIT *uptr, int32 match, CONST char *cptr, void *desc) { CPCODE *code; int ncode; @@ -890,7 +890,8 @@ static t_stat cp_set_code (UNIT *uptr, int32 match, char *cptr, void *desc) t_stat load_cr_boot (int32 drvno, int switches) { int i; - char *name, msg[80]; + const char *name; + char msg[80]; t_bool expand; uint16 word, *boot; static uint16 dms_boot_data[] = { /* DMSV2M12, already expanded to 16 bits */ @@ -1038,7 +1039,8 @@ char hollerith_to_ascii (uint16 hol) static void feedcycle (t_bool load, t_bool punching) { - char buf[84], *x, *result; + char buf[84], *x; + const char *result; int i, nread, nwrite, ch; /* write punched card if punch is attached to a file */ @@ -1543,13 +1545,16 @@ t_stat cr_rewind (void) return SCPE_OK; } -static t_stat cr_attach (UNIT *uptr, char *cptr) +static t_stat cr_attach (UNIT *uptr, CONST char *iptr) { t_stat rval; t_bool use_decklist, old_quiet; + char gbuf[4*CBUFSIZE], *cptr = gbuf; char *c, *arg, quote; - cr_detach(uptr); /* detach file and possibly deck file */ + gbuf[sizeof(gbuf)-1] = '\0'; + strncpy(gbuf, iptr, sizeof(gbuf)-1); + cr_detach(uptr); /* detach file and possibly deck file */ CLRBIT(uptr->flags, UNIT_SCRATCH|UNIT_QUIET|UNIT_DEBUG|UNIT_PHYSICAL|UNIT_LOWERCASE); /* set options */ @@ -1624,7 +1629,7 @@ static t_stat cr_attach (UNIT *uptr, char *cptr) if (strcmp(cptr, "(stdin)") == 0 && ! use_decklist) { /* standard input */ if (uptr->flags & UNIT_DIS) return SCPE_UDIS; /* disabled? */ - uptr->filename = calloc(CBUFSIZE, sizeof(char)); + uptr->filename = (char *)calloc(CBUFSIZE, sizeof(char)); strcpy(uptr->filename, "(stdin)"); uptr->fileref = stdin; SETBIT(uptr->flags, UNIT_ATT); @@ -1694,12 +1699,13 @@ t_stat cr_detach (UNIT *uptr) return rval; } -static t_stat cp_attach (UNIT *uptr, char *cptr) +static t_stat cp_attach (UNIT *uptr, CONST char *cptr) { + char gbuf[2*CBUFSIZE]; /* if -d is specified turn on debugging (bit is in card reader UNIT) */ if (sim_switches & SWMASK('D')) SETBIT(cr_unit.flags, UNIT_DEBUG); - return attach_unit(uptr, quotefix(cptr)); /* fix quotes in filenames & attach */ + return attach_unit(uptr, quotefix(cptr, gbuf)); /* fix quotes in filenames & attach */ } static t_stat cp_detach (UNIT *uptr) @@ -1714,7 +1720,7 @@ static t_stat cp_detach (UNIT *uptr) return detach_unit(uptr); } -static void op_done (UNIT *u, char *opname, t_bool issue_intr) +static void op_done (UNIT *u, const char *opname, t_bool issue_intr) { if (u->flags & UNIT_DEBUG) DEBUG_PRINT("!CR %s Op Complete, card %d%s", opname, cr_count, issue_intr ? ", interrupt" : ""); @@ -2088,7 +2094,7 @@ void xio_1442_card (int32 addr, int32 func, int32 modify) /* stub out the physical card reader routines */ - static t_stat pcr_attach (UNIT *uptr, char *devname) {return SCPE_ARG;} + static t_stat pcr_attach (UNIT *uptr, CONST char *devname) {return SCPE_ARG;} static t_stat pcr_detach (UNIT *uptr) {return detach_unit(uptr);} static t_stat pcr_svc (UNIT *uptr) {return SCPE_OK;} static void pcr_xio_sense (int modify) {} @@ -2130,7 +2136,7 @@ static void pcr_trigger_interrupt_0(void); static void begin_pcr_critical_section (void); static void end_pcr_critical_section (void); static void pcr_set_dsw_from_status (BOOL post_pick); -static t_stat pcr_open_controller (char *devname); +static t_stat pcr_open_controller (const char *devname); static PCR_STATE pcr_state = PCR_STATE_CLOSED; /* current state of connection to physical card reader interface */ static char pcr_status = 0; /* last status byte received from the interface */ @@ -2147,7 +2153,7 @@ static char lastcmd = '?'; /* pcr_attach - perform attach function to physical card reader */ -static t_stat pcr_attach (UNIT *uptr, char *devname) +static t_stat pcr_attach (UNIT *uptr, CONST char *devname) { DWORD thread_id; t_stat rval; @@ -2181,7 +2187,7 @@ static t_stat pcr_attach (UNIT *uptr, char *devname) } SETBIT(uptr->flags, UNIT_PHYSICAL|UNIT_ATT); /* mark device as attached */ - uptr->filename = malloc(strlen(devname)+1); + uptr->filename = (char *)malloc(strlen(devname)+1); strcpy(uptr->filename, devname); return SCPE_OK; @@ -2189,7 +2195,7 @@ static t_stat pcr_attach (UNIT *uptr, char *devname) /* pcr_open_controller - open the USB device's virtual COM port and configure the interface */ -static t_stat pcr_open_controller (char *devname) +static t_stat pcr_open_controller (const char *devname) { DCB dcb; COMMTIMEOUTS cto; diff --git a/Ibm1130/ibm1130_defs.h b/Ibm1130/ibm1130_defs.h index 8a6a635e..30c8963b 100644 --- a/Ibm1130/ibm1130_defs.h +++ b/Ibm1130/ibm1130_defs.h @@ -105,7 +105,7 @@ extern t_stat reason; /* CPU execution loop control */ # endif #endif -void debug_print(char *fmt, ...); +void debug_print(const char *fmt, ...); /* ------------------------------------------------------------------------ */ /* memory IO routines */ @@ -265,18 +265,17 @@ void xio_system7 (int32 addr, int32 func, int32 modify); /* system/7 interpr void xio_1403_printer (int32 addr, int32 func, int32 modify); /* alternate high-speed printer */ void xio_2250_display (int32 addr, int32 func, int32 modify); /* vector display processor */ void xio_t2741_terminal (int32 addr, int32 func, int32 modify); /* IO selectric via nonstandard serial interface for APL */ -void xio_error (char *msg); +void xio_error (const char *msg); -void bail (char *msg); +void bail (const char *msg); t_stat load_cr_boot (int32 drv, int switches); t_stat cr_boot (int32 unitno, DEVICE *dptr); t_stat cr_rewind (void); t_stat cr_detach (UNIT *uptr); void calc_ints (void); /* recalculate interrupt bitmask */ -void trace_io (char *fmt, ...); /* debugging printout */ -void trace_both (char *fmt, ...); /* debugging printout */ -t_stat register_cmd (char *name, t_stat (*action)(int32 flag, char *ptr), int arg, char *help); -void scp_panic (char *msg); /* bail out of simulator */ +void trace_io (const char *fmt, ...); /* debugging printout */ +void trace_both (const char *fmt, ...); /* debugging printout */ +void scp_panic (const char *msg); /* bail out of simulator */ char *upcase(char *str); void break_simulation (t_stat reason); /* let a device halt the simulation */ char hollerith_to_ascii (uint16 hol); /* for debugging use only */ @@ -286,9 +285,9 @@ void stuff_cmd (char *cmd); t_bool stuff_and_wait (char *cmd, int timeout, int delay); void update_gui (t_bool force); void sim_init (void); -t_stat register_cmd (char *name, t_stat (*action)(int32 flag, char *ptr), int arg, char *help); -t_stat basic_attach (UNIT *uptr, char *cptr); -char * quotefix (char * cptr); +t_stat register_cmd (const char *name, t_stat (*action)(int32 flag, CONST char *ptr), int arg, const char *help); +t_stat basic_attach (UNIT *uptr, CONST char *cptr); +CONST char * quotefix (CONST char *cptr, char * buf); /* GUI interface routines */ t_bool keyboard_is_busy (void); diff --git a/Ibm1130/ibm1130_disk.c b/Ibm1130/ibm1130_disk.c index 96b86526..e21cf313 100644 --- a/Ibm1130/ibm1130_disk.c +++ b/Ibm1130/ibm1130_disk.c @@ -41,9 +41,9 @@ commands may NOT be accurate. This should probably be fixed. #ifdef TRACE_DMS_IO static int trace_dms = 0; static void tracesector (int iswrite, int nwords, int addr, int sector); -static t_stat where_cmd (int32 flag, char *ptr); -static t_stat phdebug_cmd (int32 flag, char *ptr); -static t_stat fdump_cmd (int32 flags, char *cptr); +static t_stat where_cmd (int32 flag, CONST char *ptr); +static t_stat phdebug_cmd (int32 flag, CONST char *ptr); +static t_stat fdump_cmd (int32 flags, CONST char *cptr); static void enable_dms_tracing (int newsetting); #endif @@ -87,7 +87,7 @@ static t_bool raw_disk_debug = FALSE; static t_stat dsk_svc (UNIT *uptr); static t_stat dsk_reset (DEVICE *dptr); -static t_stat dsk_attach (UNIT *uptr, char *cptr); +static t_stat dsk_attach (UNIT *uptr, CONST char *cptr); static t_stat dsk_detach (UNIT *uptr); static t_stat dsk_boot (int32 unitno, DEVICE *dptr); @@ -494,10 +494,11 @@ static t_stat dsk_reset (DEVICE *dptr) return SCPE_OK; } -static t_stat dsk_attach (UNIT *uptr, char *cptr) +static t_stat dsk_attach (UNIT *uptr, CONST char *cptr) { int drv = uptr - dsk_unit; t_stat rval; + char gbuf[2*CBUFSIZE]; sim_cancel(uptr); /* cancel current IO */ dsk_lastio[drv] = IO_NONE; @@ -525,7 +526,7 @@ static t_stat dsk_attach (UNIT *uptr, char *cptr) SETBIT(uptr->flags, UNIT_ROABLE); /* but don't set the UNIT_RONLY flag so DMS can write to the buffered image */ } - if ((rval = attach_unit(uptr, quotefix(cptr))) != SCPE_OK) { /* mount new disk */ + if ((rval = attach_unit(uptr, quotefix(cptr, gbuf))) != SCPE_OK) { /* mount new disk */ SETBIT(dsk_dsw[drv], DSK_DSW_NOT_READY); return rval; } @@ -583,7 +584,7 @@ static t_stat dsk_boot (int32 unitno, DEVICE *dptr) static struct { int phid; - char *name; + const char *name; } phase[] = { # include "dmsr2v12phases.h" {0xFFFF, ""} @@ -604,7 +605,7 @@ struct tag_slet { #define MAXMSEG 100 struct tag_mseg { - char *name; + const char *name; int addr, offset, len, phid; } mseg[MAXMSEG]; int nseg = 0; @@ -621,7 +622,7 @@ static void enable_dms_tracing (int newsetting) printf("DMS disk tracing is now %sabled\n", trace_dms ? "en" : "dis"); } -char * saywhere (int addr) +const char * saywhere (int addr) { int i; static char buf[150]; @@ -642,7 +643,7 @@ char * saywhere (int addr) static int phdebug_lo = -1, phdebug_hi = -1; -static t_stat phdebug_cmd (int32 flag, char *ptr) +static t_stat phdebug_cmd (int32 flag, CONST char *ptr) { int val1, val2; @@ -669,10 +670,10 @@ static t_stat phdebug_cmd (int32 flag, char *ptr) return SCPE_OK; } -static t_stat where_cmd (int32 flag, char *ptr) +static t_stat where_cmd (int32 flag, CONST char *ptr) { int addr; - char *where; + const char *where; if (! trace_dms) { printf("Tracing is disabled. To enable, attach disk with -d switch\n"); @@ -718,7 +719,7 @@ static void delseg (int i) } } -static void savesector (int addr, int offset, int len, int phid, char *name) +static void savesector (int addr, int offset, int len, int phid, const char *name) { int i; @@ -768,7 +769,7 @@ static void savesector (int addr, int offset, int len, int phid, char *name) static void tracesector (int iswrite, int nwords, int addr, int sector) { int i, phid = 0, offset = 0; - char *name = NULL; + const char *name = NULL; if (nwords < 3 || ! trace_dms) return; @@ -834,7 +835,7 @@ done: savesector(addr, offset, nwords, phid, name); } -static t_stat fdump_cmd (int32 flags, char *cptr) +static t_stat fdump_cmd (int32 flags, CONST char *cptr) { int addr = 0x7a24; /* address of next statement */ int sofst = 0x7a26, symaddr; diff --git a/Ibm1130/ibm1130_fmt.c b/Ibm1130/ibm1130_fmt.c index d6ff70b1..c399d3d8 100644 --- a/Ibm1130/ibm1130_fmt.c +++ b/Ibm1130/ibm1130_fmt.c @@ -164,7 +164,7 @@ char* pszX; /* work pointer */ * EditToAsm - convert tab-formatted text line to 1130 Assembler format */ -char *EditToAsm (char* p_pszEdit, int width) /* convert line to 1130 assembler */ +const char *EditToAsm (char* p_pszEdit, int width) /* convert line to 1130 assembler */ { char pszLine[MAXLINE]; /* source line */ char pszWork[WORKSZ]; /* work buffer */ @@ -230,7 +230,7 @@ size_t iI; /* work integer */ * (a la DEC Fortran) */ -char *EditToFortran(char* p_pszEdit, int width) /* convert line to 1130 assembler */ +const char *EditToFortran(char* p_pszEdit, int width) /* convert line to 1130 assembler */ { char pszLine[MAXLINE]; /* source line */ char* pszWork; /* work pointer */ @@ -287,7 +287,7 @@ int bContinue; /* true if continue */ * EditToWhitespace - expand tabs at n space intervals. */ -char* EditToWhitespace(char *p_pszEdit, int width) +const char* EditToWhitespace(char *p_pszEdit, int width) { int iI; /* work integer */ int iPos; /* work integer for settings tab stops */ diff --git a/Ibm1130/ibm1130_fmt.h b/Ibm1130/ibm1130_fmt.h index 89369d2a..7248e96a 100644 --- a/Ibm1130/ibm1130_fmt.h +++ b/Ibm1130/ibm1130_fmt.h @@ -12,6 +12,6 @@ /* ibm1130_asm.h: definition of routines in ibm1130_asm.c */ -char* EditToAsm(char* str, int width); /* convert edit format to 1130 assembler format */ -char* EditToFortran(char* str, int width); /* convert edit format to Fortran format */ -char* EditToWhitespace(char* str, int width); /* clean white space, tabstops every 8 positions */ +const char* EditToAsm(char* str, int width); /* convert edit format to 1130 assembler format */ +const char* EditToFortran(char* str, int width); /* convert edit format to Fortran format */ +const char* EditToWhitespace(char* str, int width); /* clean white space, tabstops every 8 positions */ diff --git a/Ibm1130/ibm1130_gui.c b/Ibm1130/ibm1130_gui.c index 4603c28a..e17b8f49 100644 --- a/Ibm1130/ibm1130_gui.c +++ b/Ibm1130/ibm1130_gui.c @@ -128,7 +128,7 @@ t_stat console_reset (DEVICE *dptr) /* scp_panic - report fatal internal programming error */ -void scp_panic (char *msg) +void scp_panic (const char *msg) { fprintf(stderr, "%s\n", msg); exit(1); diff --git a/Ibm1130/ibm1130_plot.c b/Ibm1130/ibm1130_plot.c index 208ad2a1..07c39347 100644 --- a/Ibm1130/ibm1130_plot.c +++ b/Ibm1130/ibm1130_plot.c @@ -131,15 +131,15 @@ static t_stat plot_svc (UNIT *uptr); /* activity routine */ static t_stat plot_reset (DEVICE *dptr); /* reset of 1130 */ -static t_stat plot_attach (UNIT *uptr, char *cptr); /* attach, loads plotter */ +static t_stat plot_attach (UNIT *uptr, CONST char *cptr); /* attach, loads plotter */ static t_stat plot_detach (UNIT *uptr); /* detach and save image */ static t_stat plot_examine (UNIT *uptr); /* update file with current canvas */ static t_stat plot_set_length (UNIT *uptr, int32 val, char * ptr, void *desc); /* set paper length */ -static t_stat plot_set_pos (UNIT *uptr, int32 val, char * ptr, void *desc); /* reset current X/Y position */ -static t_stat plot_show_vals(FILE *fp, UNIT *uptr, int32 val, void *descrip); /* print x, y and length */ -static t_stat plot_show_nl(FILE *fp, UNIT *uptr, int32 val, void *descrip); /* overcome wacky simh behavior */ +static t_stat plot_set_pos (UNIT *uptr, int32 val, CONST char * ptr, void *desc); /* reset current X/Y position */ +static t_stat plot_show_vals(FILE *fp, UNIT *uptr, int32 val, CONST void *descrip); /* print x, y and length */ +static t_stat plot_show_nl(FILE *fp, UNIT *uptr, int32 val, CONST void *descrip); /* overcome wacky simh behavior */ static void update_pen(void); /* will ensure pen action is correct when changes made */ -static t_stat plot_validate_change (UNIT *uptr, int32 val, char * ptr, void *desc); /* when set command issued */ +static t_stat plot_validate_change (UNIT *uptr, int32 val, CONST char * ptr, void *desc); /* when set command issued */ static void process_cmd(void); /* does actual drawing for plotter */ static int16 plot_dsw = 0; /* device status word */ @@ -387,7 +387,7 @@ static t_stat plot_reset (DEVICE *dptr) /* plot_attach - attach file to simulated plotter */ -static t_stat plot_attach (UNIT *uptr, char *cptr) +static t_stat plot_attach (UNIT *uptr, CONST char *cptr) { t_stat result; @@ -711,7 +711,7 @@ static void process_cmd (void) /* plot_set_length - validate and store the length of the paper */ -static t_stat plot_set_length (UNIT *uptr, int32 set, char *ptr, void *desc) +static t_stat plot_set_length (UNIT *uptr, int32 set, CONST char *ptr, void *desc) { char *cptr; int32 val; @@ -737,7 +737,7 @@ static t_stat plot_set_length (UNIT *uptr, int32 set, char *ptr, void *desc) /* plot_set_pos - validate and store the new position of the carriage */ -static t_stat plot_set_pos (UNIT *uptr, int32 set, char *ptr, void *desc) +static t_stat plot_set_pos (UNIT *uptr, int32 set, CONST char *ptr, void *desc) { char *cptr; int32 val; @@ -760,7 +760,7 @@ static t_stat plot_set_pos (UNIT *uptr, int32 set, char *ptr, void *desc) * once for device and once for unit */ -static t_stat plot_show_vals (FILE *fp, UNIT *uptr, int32 val, void *descrip) +static t_stat plot_show_vals (FILE *fp, UNIT *uptr, int32 val, CONST void *descrip) { fprintf(fp, "length=%d, Xpos=%d, Ypos=%d",plot_xmax+1, plot_xpos,plot_ypos); return SCPE_OK; @@ -769,7 +769,7 @@ static t_stat plot_show_vals (FILE *fp, UNIT *uptr, int32 val, void *descrip) /* routine to add a terminating NL character when 'show plot length' * or equivalent for xpos or ypos is issued, as simh will not append for us */ -static t_stat plot_show_nl(FILE *fp, UNIT *uptr, int32 val, void *descrip) +static t_stat plot_show_nl(FILE *fp, UNIT *uptr, int32 val, CONST void *descrip) { int32 disp; char *label; @@ -783,7 +783,7 @@ static t_stat plot_show_nl(FILE *fp, UNIT *uptr, int32 val, void *descrip) /* plot_validate_change - force the update_pen routine to be called after user changes pen setting */ -static t_stat plot_validate_change (UNIT *uptr, int32 set, char *ptr, void *desc) +static t_stat plot_validate_change (UNIT *uptr, int32 set, CONST char *ptr, void *desc) { need_update = TRUE; return SCPE_OK; diff --git a/Ibm1130/ibm1130_prt.c b/Ibm1130/ibm1130_prt.c index f807afde..30470ca8 100644 --- a/Ibm1130/ibm1130_prt.c +++ b/Ibm1130/ibm1130_prt.c @@ -89,7 +89,7 @@ static t_stat prt1132_svc(UNIT *uptr); static t_stat prt1403_svc(UNIT *uptr); static t_stat prt_svc (UNIT *uptr); static t_stat prt_reset (DEVICE *dptr); -static t_stat prt_attach (UNIT *uptr, char *cptr); +static t_stat prt_attach (UNIT *uptr, CONST char *cptr); static t_stat prt_detach (UNIT *uptr); static int16 PRT_DSW = 0; /* device status word */ @@ -346,11 +346,11 @@ static void flush_prt_line (FILE *fd, int spacemode, t_bool physical_printer) #define PRT_CMD_MASK 0x00C7 -extern char * saywhere (int addr); +extern const char * saywhere (int addr); -static void mytrace (int start, char *what) +static void mytrace (int start, const char *what) { - char *where; + const char *where; if ((where = saywhere(prev_IAR)) == NULL) where = "?"; trace_io("%s %s at %04x: %s", start ? "start" : "stop", what, prev_IAR, where); @@ -650,7 +650,7 @@ static t_stat prt1403_svc(UNIT *uptr) /* delete_cmd - SCP command to delete a file */ -static t_stat delete_cmd (int32 flag, char *cptr) +static t_stat delete_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; int status; @@ -721,9 +721,10 @@ static t_stat prt_reset (DEVICE *dptr) return SCPE_OK; } -static t_stat prt_attach (UNIT *uptr, char *cptr) +static t_stat prt_attach (UNIT *uptr, CONST char *cptr) { t_stat rval; + char gbuf[2*CBUFSIZE]; /* assume failure */ SETBIT(PRT_DSW, IS_1132(uptr) ? PRT1132_DSW_NOT_READY : PRT1403_DSW_NOT_READY); formfed = FALSE; @@ -743,14 +744,14 @@ static t_stat prt_attach (UNIT *uptr, char *cptr) if (strcmp(cptr, "(stdout)") == 0) { /* connect printer to stdout */ if (uptr -> flags & UNIT_DIS) return SCPE_UDIS; /* disabled? */ - uptr->filename = calloc(CBUFSIZE, sizeof(char)); + uptr->filename = (char *)calloc(CBUFSIZE, sizeof(char)); strcpy(uptr->filename, "(stdout)"); uptr->fileref = stdout; SETBIT(uptr->flags, UNIT_ATT); uptr->pos = 0; } else { - if ((rval = attach_unit(uptr, quotefix(cptr))) != SCPE_OK) + if ((rval = attach_unit(uptr, quotefix(cptr, gbuf))) != SCPE_OK) return rval; } diff --git a/Ibm1130/ibm1130_ptrp.c b/Ibm1130/ibm1130_ptrp.c index c24a27d4..2af3e64f 100644 --- a/Ibm1130/ibm1130_ptrp.c +++ b/Ibm1130/ibm1130_ptrp.c @@ -35,12 +35,12 @@ static t_stat ptr_svc (UNIT *uptr); static t_stat ptr_reset (DEVICE *dptr); -static t_stat ptr_attach (UNIT *uptr, char *cptr); +static t_stat ptr_attach (UNIT *uptr, CONST char *cptr); static t_stat ptr_detach (UNIT *uptr); static t_stat ptr_boot (int32 unitno, DEVICE *dptr); static t_stat ptp_svc (UNIT *uptr); static t_stat ptp_reset (DEVICE *dptr); -static t_stat ptp_attach (UNIT *uptr, char *cptr); +static t_stat ptp_attach (UNIT *uptr, CONST char *cptr); static t_stat ptp_detach (UNIT *uptr); static int16 ptr_dsw = 0; /* device status word */ @@ -202,7 +202,7 @@ static t_stat ptp_reset (DEVICE *dptr) /* ptr_attach - attach file to simulated paper tape reader */ -static t_stat ptr_attach (UNIT *uptr, char *cptr) +static t_stat ptr_attach (UNIT *uptr, CONST char *cptr) { t_stat rval; @@ -281,7 +281,7 @@ static t_stat ptr_boot (int32 unitno, DEVICE *dptr) /* ptp_attach - attach file to simulated paper tape punch */ -static t_stat ptp_attach (UNIT *uptr, char *cptr) +static t_stat ptp_attach (UNIT *uptr, CONST char *cptr) { t_stat rval; diff --git a/Ibm1130/ibm1130_sca.c b/Ibm1130/ibm1130_sca.c index b58cc194..04309390 100644 --- a/Ibm1130/ibm1130_sca.c +++ b/Ibm1130/ibm1130_sca.c @@ -142,7 +142,7 @@ typedef enum { /* ms m = mode (0 = idle, 1 = send, 2 = receive), s = sub static t_stat sca_svc (UNIT *uptr); /* prototypes */ static t_stat sca_reset (DEVICE *dptr); -static t_stat sca_attach (UNIT *uptr, char *cptr); +static t_stat sca_attach (UNIT *uptr, CONST char *cptr); static t_stat sca_detach (UNIT *uptr); static void sca_start_timer (int n, int msec_now); static void sca_halt_timer (int n); @@ -202,7 +202,7 @@ static int sca_rcvptr = 0; /* index of next byte to take from rcvbuf * #define UNIT_AUTOANSWER (1u << UNIT_V_AUTOANSWER) #define UNIT_LISTEN (1u << UNIT_V_LISTEN) -t_stat sca_set_baud (UNIT *uptr, int32 value, char *cptr, void *desc); +t_stat sca_set_baud (UNIT *uptr, int32 value, CONST char *cptr, void *desc); UNIT sca_unit = { /* default settings */ UDATA (sca_svc, UNIT_ATTABLE|UNIT_BISYNC|UNIT_BAUD4800|UNIT_FULLDUPLEX, 0), @@ -243,7 +243,7 @@ DEVICE sca_dev = { * sca_set_baud - set baud rate handler (SET SCA.BAUD nnn) *********************************************************************************************/ -t_stat sca_set_baud (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat sca_set_baud (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uint32 newbits; @@ -275,15 +275,15 @@ t_stat sca_set_baud (UNIT *uptr, int32 value, char *cptr, void *desc) * mstring - allocate a copy of a string *********************************************************************************************/ -char *mstring (char *str) +char *mstring (const char *str) { int len; char *m; len = strlen(str)+1; - if ((m = malloc(len)) == NULL) { + if ((m = (char *)malloc(len)) == NULL) { printf("Out of memory!"); - return "?"; /* this will of course cause trouble if it's subsequently freed */ + return (char *)"?"; /* this will of course cause trouble if it's subsequently freed */ } strcpy(m, str); return m; @@ -447,7 +447,7 @@ static t_stat sca_reset (DEVICE *dptr) * sca_attach - attach the SCA device *********************************************************************************************/ -static t_stat sca_attach (UNIT *uptr, char *cptr) +static t_stat sca_attach (UNIT *uptr, CONST char *cptr) { char host[CBUFSIZE], port[CBUFSIZE]; t_bool do_listen; diff --git a/Ibm1130/ibm1130_stddev.c b/Ibm1130/ibm1130_stddev.c index adc66f57..d9549b17 100644 --- a/Ibm1130/ibm1130_stddev.c +++ b/Ibm1130/ibm1130_stddev.c @@ -89,7 +89,7 @@ /* ---------------------------------------------------------------------------- */ -static void badio (char *dev) +static void badio (const char *dev) { /* the real 1130 just ignores attempts to use uninstalled devices. They get tested * at times, so it's best to just be quiet about this @@ -138,18 +138,18 @@ static t_stat emit_conout_character(int ch); static t_stat map_conout_character(int ch); static void reset_mapping (void); static void set_conout_mapping(int32 flags); -static t_stat validate_conout_mapping(UNIT *uptr, int32 match, char *cvptr, void *desc); +static t_stat validate_conout_mapping(UNIT *uptr, int32 match, CONST char *cvptr, void *desc); static void set_default_mapping(int32 flags); static void finish_conout_mapping(int32 flags); static void strsort (int n, unsigned char *s); /* sorts an array of n characters */ static int os_map_comp (OS_MAP *a, OS_MAP *b); /* compares two mapping entries */ -static t_stat font_cmd(int32 flag, char *cptr); /* handles font command */ +static t_stat font_cmd(int32 flag, CONST char *cptr); /* handles font command */ static void read_map_file(FILE *fd); /* reads a font map file */ -static t_bool str_match(char *str, char *keyword); /* keyword/string comparison */ -static char * handle_map_ansi_definition(char **pc); /* input line parsers for map file sections */ -static char * handle_map_input_definition(char **pc); -static char * handle_map_output_definition(char **pc); -static char * handle_map_overstrike_definition(char **pc); +static t_bool str_match(const char *str, const char *keyword);/* keyword/string comparison */ +static const char * handle_map_ansi_definition(char **pc); /* input line parsers for map file sections */ +static const char * handle_map_input_definition(char **pc); +static const char * handle_map_output_definition(char **pc); +static const char * handle_map_overstrike_definition(char **pc); #define UNIT_V_CSET (UNIT_V_UF + 0) /* user flag: character set */ #define UNIT_V_LOCKED (UNIT_V_UF + 2) /* user flag: keyboard locked */ @@ -443,31 +443,33 @@ static t_stat tti_reset (DEVICE *dptr) /* basic_attach - fix quotes in filename, then call standard unit attach routine */ -t_stat basic_attach (UNIT *uptr, char *cptr) +t_stat basic_attach (UNIT *uptr, CONST char *cptr) { - return attach_unit(uptr, quotefix(cptr)); /* fix quotes in filenames & attach */ + char gbuf[2*CBUFSIZE]; + + return attach_unit(uptr, quotefix(cptr, gbuf)); /* fix quotes in filenames & attach */ } /* quotefix - strip off quotes around filename, if present */ -char * quotefix (char * cptr) +CONST char * quotefix (CONST char *cptr, char * buf) { -#ifdef WIN32 /* do this only for Windows builds, for the time being */ - char *c; - int quote; + const char *c; + int quote; - if (*cptr == '"' || *cptr == '\'') { - quote = *cptr++; /* remember quote and skip over it */ + while (sim_isspace(*cptr)) + ++cptr; + if (*cptr == '"' || *cptr == '\'') { + quote = *cptr++; /* remember quote and skip over it */ - for (c = cptr; *c && *c != quote; c++) - ; /* find closing quote, or end of string */ + cptr = buf; + for (c = cptr; *c && *c != quote; c++) + *buf++ = *c; /* find closing quote, or end of string */ - if (*c) /* terminate string at closing quote */ - *c = '\0'; - } - -#endif - return cptr; /* return pointer to cleaned-up name */ + if (*c) /* terminate string at closing quote */ + *buf = '\0'; + } + return cptr; /* return pointer to cleaned-up name */ } t_bool keyboard_is_busy (void) /* return TRUE if keyboard is not expecting a character */ @@ -771,7 +773,7 @@ static void finish_conout_mapping (int32 flags) /* validate_conout_mapping - called when set command gets a new value */ -static t_stat validate_conout_mapping (UNIT *uptr, int32 match, char *cvptr, void *desc) +static t_stat validate_conout_mapping (UNIT *uptr, int32 match, CONST char *cvptr, void *desc) { set_conout_mapping(match); return SCPE_OK; @@ -938,11 +940,14 @@ static t_stat map_conout_character (int ch) /* font_cmd - parse a font mapping file. Sets input and output translations */ -static t_stat font_cmd (int32 flag, char *cptr) +static t_stat font_cmd (int32 flag, CONST char *iptr) { char *fname, quote; + char gbuf[4*CBUFSIZE], *cptr = gbuf; FILE *fd; + gbuf[sizeof(gbuf)-1] = '\0'; + strncpy(gbuf, iptr, sizeof(gbuf)-1); while (*cptr && (*cptr <= ' ')) cptr++; /* skip blanks */ if (! *cptr) return SCPE_2FARG; /* argument missing */ @@ -974,7 +979,7 @@ static t_stat font_cmd (int32 flag, char *cptr) /* str_match - compare the string str to the keyword, case insensitive */ -static t_bool str_match (char *str, char *keyword) +static t_bool str_match (const char *str, const char *keyword) { char kch, sch; @@ -996,7 +1001,8 @@ static t_bool str_match (char *str, char *keyword) static void read_map_file (FILE *fd) { - char str[256], *c, *errmsg; + char str[256], *c; + const char *errmsg; int lineno = 0; enum {SECT_UNDEFINED, SECT_DEFAULT, SECT_ANSI, SECT_INPUT, SECT_OUTPUT, SECT_OVERSTRIKE} section = SECT_UNDEFINED; @@ -1086,7 +1092,7 @@ static void read_map_file (FILE *fd) * may be incremented by the caller */ -static char * get_num_char (char **pc, unsigned char *out, int ndigits, int base, char *errmsg) +static const char * get_num_char (char **pc, unsigned char *out, int ndigits, int base, const char *errmsg) { int ch = 0, digit; char *c = *pc; @@ -1119,9 +1125,10 @@ static char * get_num_char (char **pc, unsigned char *out, int ndigits, int base * error encountered. *pc is advanced to next whitespace or whatever followed input. */ -static char * get_characters (char **pc, unsigned char *outstr, int nmax, int *nout) +static const char * get_characters (char **pc, unsigned char *outstr, int nmax, int *nout) { - char *c = *pc, *errstr; + char *c = *pc; + const char *errstr; unsigned char *out = outstr; while (*c && *c <= ' ') /* skip leading whitespace */ @@ -1218,10 +1225,10 @@ static char * get_characters (char **pc, unsigned char *outstr, int nmax, int *n /* handle_map_ansi_definition - process line in [ansi] section */ -static char * handle_map_ansi_definition (char **pc) +static const char * handle_map_ansi_definition (char **pc) { unsigned char *outstr; - char *errmsg; + const char *errmsg; int n; if (str_match(*pc, "black")) { /* find which string we're setting */ @@ -1245,10 +1252,10 @@ static char * handle_map_ansi_definition (char **pc) /* handle_map_input_definition - process line in [input] section */ -static char * handle_map_input_definition (char **pc) +static const char * handle_map_input_definition (char **pc) { unsigned char cin, cout; - char *errmsg; + const char *errmsg; int n; if ((errmsg = get_characters(pc, &cin, 1, &n)) != NULL) /* get input character */ @@ -1269,10 +1276,10 @@ static char * handle_map_input_definition (char **pc) /* handle_map_output_definition - process line in [output] section */ -static char * handle_map_output_definition (char **pc) +static const char * handle_map_output_definition (char **pc) { unsigned char cin, cout; - char *errmsg; + const char *errmsg; int n; if ((errmsg = get_characters(pc, &cin, 1, &n)) != NULL) /* get input character */ @@ -1293,10 +1300,10 @@ static char * handle_map_output_definition (char **pc) /* handle_map_overstrike_definition - process line in [overstrike] section */ -static char * handle_map_overstrike_definition (char **pc) +static const char * handle_map_overstrike_definition (char **pc) { unsigned char ch, inlist[MAX_OS_CHARS]; - char *errmsg; + const char *errmsg; int nin; if (n_os_mappings >= MAX_OS_MAPPINGS) /* os_map is full, no more room */ diff --git a/Ibm1130/ibm1130_sys.c b/Ibm1130/ibm1130_sys.c index 64a358b2..a23fe1d9 100644 --- a/Ibm1130/ibm1130_sys.c +++ b/Ibm1130/ibm1130_sys.c @@ -109,7 +109,7 @@ const char *sim_stop_messages[] = { * but the asm1130 cross assembler may put them there. */ -t_stat my_load (FILE *fileref, char *cptr, char *fnam) +t_stat my_load (FILE *fileref, const char *cptr, const char *fnam) { char line[150], *c; int iaddr = -1, runaddr = -1, val, nwords; @@ -167,7 +167,7 @@ t_stat my_load (FILE *fileref, char *cptr, char *fnam) return SCPE_OK; } -t_stat my_save (FILE *fileref, char *cptr, char *fnam) +t_stat my_save (FILE *fileref, const char *cptr, const char *fnam) { int iaddr, nzeroes = 0, nwords = (int) (MEMSIZE/2), val; @@ -205,7 +205,7 @@ t_stat my_save (FILE *fileref, char *cptr, char *fnam) return SCPE_OK; } -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { if (flag) return my_save(fileref, cptr, fnam); @@ -239,7 +239,7 @@ t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) if < 0, number of extra words retired */ -static char *opcode[] = { +static const char *opcode[] = { "?00 ", "XIO ", "SLA ", "SRA ", "LDS ", "STS ", "WAIT", "?07 ", "BSI ", "BSC ", "?0A ", "?0B ", @@ -261,9 +261,9 @@ static char relative[] = { /*true if short mode displacements are IAR relat TRUE, TRUE, TRUE, FALSE }; -static char *lsopcode[] = {"SLA ", "SLCA ", "SLT ", "SLC "}; -static char *rsopcode[] = {"SRA ", "?188 ", "SRT ", "RTE "}; -static char tagc[] = " 123"; +static const char *lsopcode[] = {"SLA ", "SLCA ", "SLT ", "SLC "}; +static const char *rsopcode[] = {"SRA ", "?188 ", "SRT ", "RTE "}; +static const char tagc[] = " 123"; static int ascii_to_ebcdic_table[128] = { @@ -297,7 +297,8 @@ static int ebcdic_to_ascii (int ch) t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw) { int32 ch, OP, F, TAG, INDIR, DSPLC, IR, eaddr; - char *mnem, tst[12]; + const char *mnem; + char tst[12]; /* if (sw & SWMASK ('A')) { // ASCII? not useful fprintf (of, (c1 < 040)? "<%03o>": "%c", c1); @@ -459,7 +460,7 @@ t_stat get_spec (char *cptr, t_addr addr, int32 n1, int32 *sptr, t_value *dptr, <= 0 -number of extra words */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { return SCPE_ARG; } diff --git a/Ibm1130/ibm1130_t2741.c b/Ibm1130/ibm1130_t2741.c index 7ef37c35..8cb0d6b2 100644 --- a/Ibm1130/ibm1130_t2741.c +++ b/Ibm1130/ibm1130_t2741.c @@ -40,10 +40,10 @@ static TMXR t2741_tmxr = { 1, 0, 0, &t2741_ldsc }; /* line mux for telnet attac static t_stat t2741_svc (UNIT *uptr); static t_stat t2741_reset (DEVICE *dptr); -static t_stat t2741_attach (UNIT *uptr, char *cptr); +static t_stat t2741_attach (UNIT *uptr, CONST char *cptr); static t_stat t2741_detach (UNIT *uptr); static uint16 ascii_to_t2741 (int ascii); -static char * t2741_to_ascii (uint16 code); +static const char * t2741_to_ascii (uint16 code); static void set_transmit_notready (void); static uint16 t2741_dsw = T2741_DSW_TRANSMIT_NOT_READY; /* device status word */ @@ -208,7 +208,7 @@ static t_stat t2741_svc (UNIT *uptr) return SCPE_OK; } -static t_stat t2741_attach (UNIT *uptr, char *cptr) +static t_stat t2741_attach (UNIT *uptr, CONST char *cptr) { int rval; @@ -355,7 +355,7 @@ static uint16 ascii_to_t2741 (int ascii) return CODE_UNKNOWN; } -static char * t2741_to_ascii (uint16 code) +static const char * t2741_to_ascii (uint16 code) { int i; static char string[2] = {'?', '\0'}; diff --git a/Intel-Systems/common/i8080.c b/Intel-Systems/common/i8080.c index 9ff06975..3a979222 100644 --- a/Intel-Systems/common/i8080.c +++ b/Intel-Systems/common/i8080.c @@ -206,7 +206,7 @@ extern uint32 sim_brk_types, sim_brk_dflt, sim_brk_summ; /* breakpoint info */ struct idev { - int32 (*routine)(); + int32 (*routine)(int32, int32); }; /* This is the I/O configuration table. There are 256 possible @@ -290,7 +290,7 @@ DEVICE i8080_dev = { }; /* tables for the disassembler */ -char *opcode[] = { +const char *opcode[] = { "NOP", "LXI B,", "STAX B", "INX B", /* 0x00 */ "INR B", "DCR B", "MVI B,", "RLC", "???", "DAD B", "LDAX B", "DCX B", @@ -1278,7 +1278,7 @@ t_stat i8080_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw) starts at the current value of the PC. */ -int32 sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +int32 sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 i, addr = 0, cnt = 0; @@ -1354,7 +1354,7 @@ t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 cflag, i = 0, j, r; char gbuf[CBUFSIZE]; diff --git a/Intel-Systems/common/i8251.c b/Intel-Systems/common/i8251.c index 269fcea5..fbc19bb2 100644 --- a/Intel-Systems/common/i8251.c +++ b/Intel-Systems/common/i8251.c @@ -119,7 +119,7 @@ #define TXE 0x04 #define SD 0x40 -extern int32 reg_dev(int32 (*routine)(), int32 port); +extern int32 reg_dev(int32 (*routine)(int32, int32), int32 port); /* function prototypes */ diff --git a/Intel-Systems/common/i8255.c b/Intel-Systems/common/i8255.c index d24ecd17..51a03b43 100644 --- a/Intel-Systems/common/i8255.c +++ b/Intel-Systems/common/i8255.c @@ -100,7 +100,7 @@ t_stat i8255_reset (DEVICE *dptr, int32 base); /* external function prototypes */ -extern int32 reg_dev(int32 (*routine)(), int32 port); +extern int32 reg_dev(int32 (*routine)(int32, int32), int32 port); /* globals */ diff --git a/Intel-Systems/common/i8259.c b/Intel-Systems/common/i8259.c index 1477900a..2b73d000 100644 --- a/Intel-Systems/common/i8259.c +++ b/Intel-Systems/common/i8259.c @@ -47,7 +47,7 @@ t_stat i8259_reset (DEVICE *dptr, int32 base); /* external function prototypes */ -extern int32 reg_dev(int32 (*routine)(), int32 port); +extern int32 reg_dev(int32 (*routine)(int32, int32), int32 port); /* globals */ diff --git a/Intel-Systems/common/ieprom.c b/Intel-Systems/common/ieprom.c index 3d0b5e27..a5730426 100644 --- a/Intel-Systems/common/ieprom.c +++ b/Intel-Systems/common/ieprom.c @@ -44,7 +44,7 @@ /* function prototypes */ -t_stat EPROM_attach (UNIT *uptr, char *cptr); +t_stat EPROM_attach (UNIT *uptr, CONST char *cptr); t_stat EPROM_reset (DEVICE *dptr, int32 size); int32 EPROM_get_mbyte(uint32 addr); @@ -100,7 +100,7 @@ DEVICE EPROM_dev = { /* EPROM attach */ -t_stat EPROM_attach (UNIT *uptr, char *cptr) +t_stat EPROM_attach (UNIT *uptr, CONST char *cptr) { uint16 j; int c; diff --git a/Intel-Systems/common/isbc208.c b/Intel-Systems/common/isbc208.c index 56c23392..7ab2da88 100644 --- a/Intel-Systems/common/isbc208.c +++ b/Intel-Systems/common/isbc208.c @@ -473,8 +473,8 @@ t_stat isbc208_svc (UNIT *uptr); t_stat isbc208_reset (DEVICE *dptr); void isbc208_reset1 (void); -t_stat isbc208_attach (UNIT *uptr, char *cptr); -t_stat isbc208_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat isbc208_attach (UNIT *uptr, CONST char *cptr); +t_stat isbc208_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); int32 isbc208_r0(int32 io, int32 data); int32 isbc208_r1(int32 io, int32 data); int32 isbc208_r2(int32 io, int32 data); @@ -502,7 +502,7 @@ int32 isbc208_r15(int32 io, int32 data); extern void set_irq(int32 int_num); extern void clr_irq(int32 int_num); -extern int32 reg_dev(int32 (*routine)(), int32 port); +extern int32 reg_dev(int32 (*routine)(int32, int32), int32 port); extern void multibus_put_mbyte(int32 addr, int32 val); extern int32 multibus_get_mbyte(int32 addr); @@ -1137,7 +1137,7 @@ void isbc208_reset1 (void) /* isbc208 attach - attach an .IMG file to a FDD */ -t_stat isbc208_attach (UNIT *uptr, char *cptr) +t_stat isbc208_attach (UNIT *uptr, CONST char *cptr) { t_stat r; FILE *fp; @@ -1159,7 +1159,7 @@ t_stat isbc208_attach (UNIT *uptr, char *cptr) flen = ftell(fp); fseek(fp, 0, SEEK_SET); if (isbc208_buf[uptr->u6] == NULL) { /* no buffer allocated */ - isbc208_buf[uptr->u6] = malloc(flen); + isbc208_buf[uptr->u6] = (uint8 *)malloc(flen); if (isbc208_buf[uptr->u6] == NULL) { sim_printf(" iSBC208_attach: Malloc error\n"); return SCPE_MEM; @@ -1199,7 +1199,7 @@ t_stat isbc208_attach (UNIT *uptr, char *cptr) /* isbc208 set mode = 8- or 16-bit data bus */ -t_stat isbc208_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat isbc208_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { sim_debug (DEBUG_flow, &isbc208_dev, " isbc208_set_mode: Entered with val=%08XH uptr->flags=%08X\n", val, uptr->flags); diff --git a/Intel-Systems/common/multibus.c b/Intel-Systems/common/multibus.c index 0ca42800..159967a3 100644 --- a/Intel-Systems/common/multibus.c +++ b/Intel-Systems/common/multibus.c @@ -49,7 +49,7 @@ t_stat multibus_reset(DEVICE *dptr); void set_irq(int32 int_num); void clr_irq(int32 int_num); int32 nulldev(int32 io, int32 data); -int32 reg_dev(int32 (*routine)(), int32 port); +int32 reg_dev(int32 (*routine)(int32, int32), int32 port); t_stat multibus_reset (DEVICE *dptr); int32 multibus_get_mbyte(int32 addr); int32 multibus_get_mword(int32 addr); @@ -166,7 +166,7 @@ device addresses, if a device is plugged to a port it's routine address is here, 'nulldev' means no device is available */ struct idev { - int32 (*routine)(); + int32 (*routine)(int32, int32); }; struct idev dev_table[256] = { @@ -244,7 +244,7 @@ int32 nulldev(int32 flag, int32 data) return 0; } -int32 reg_dev(int32 (*routine)(), int32 port) +int32 reg_dev(int32 (*routine)(int32, int32), int32 port) { if (dev_table[port].routine != &nulldev) { /* port already assigned */ // sim_printf("Multibus: I/O Port %02X is already assigned\n", port); diff --git a/Intel-Systems/common/pata.c b/Intel-Systems/common/pata.c index 230af10c..0d68d4d9 100644 --- a/Intel-Systems/common/pata.c +++ b/Intel-Systems/common/pata.c @@ -68,7 +68,7 @@ #include "system_defs.h" -extern int32 reg_dev(int32 (*routine)(), int32 port); +extern int32 reg_dev(int32 (*routine)(int32, int32), int32 port); /* function prototypes */ diff --git a/Interdata/id16_cpu.c b/Interdata/id16_cpu.c index c67545da..1b762541 100644 --- a/Interdata/id16_cpu.c +++ b/Interdata/id16_cpu.c @@ -237,11 +237,11 @@ uint32 display (uint32 dev, uint32 op, uint32 dat); t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_consint (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_consint (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern t_bool devtab_init (void); extern void int_eval (void); @@ -1920,7 +1920,7 @@ return SCPE_OK; /* Change memory size */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -1940,7 +1940,7 @@ return SCPE_OK; /* Change CPU model */ -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i; @@ -1955,7 +1955,7 @@ return SCPE_OK; /* Set console interrupt */ -t_stat cpu_set_consint (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_consint (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if ((uptr->flags & (UNIT_716 | UNIT_816 | UNIT_816E)) == 0) return SCPE_NOFNC; @@ -1966,7 +1966,7 @@ return SCPE_OK; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i, lnt; t_stat r; @@ -1997,10 +1997,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 op, k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_value sim_eval[2]; t_stat r; InstHistory *h; diff --git a/Interdata/id16_dboot.c b/Interdata/id16_dboot.c index a4a38fec..6a2d1c20 100644 --- a/Interdata/id16_dboot.c +++ b/Interdata/id16_dboot.c @@ -305,7 +305,7 @@ static uint8 dboot_rom[] = { */ struct dboot_id { - char *name; + const char *name; uint32 sw; uint32 cap; uint32 dtype; diff --git a/Interdata/id16_sys.c b/Interdata/id16_sys.c index 35cd01f4..712c2388 100644 --- a/Interdata/id16_sys.c +++ b/Interdata/id16_sys.c @@ -48,9 +48,9 @@ extern REG cpu_reg[]; extern uint16 *M; t_stat fprint_sym_m (FILE *of, t_addr addr, t_value *val); -t_stat parse_sym_m (char *cptr, t_addr addr, t_value *val); -extern t_stat lp_load (FILE *fileref, char *cptr, char *fnam); -extern t_stat pt_dump (FILE *of, char *cptr, char *fnam); +t_stat parse_sym_m (const char *cptr, t_addr addr, t_value *val); +extern t_stat lp_load (FILE *fileref, CONST char *cptr, CONST char *fnam); +extern t_stat pt_dump (FILE *of, CONST char *cptr, CONST char *fnam); /* SCP data structures and interface routines @@ -98,7 +98,7 @@ const char *sim_stop_messages[] = { /* Binary loader -- load carriage control tape Binary dump -- paper tape dump */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { if (flag) return pt_dump (fileref, cptr, fnam); @@ -489,7 +489,7 @@ return SCPE_OK; /* Symbolic input */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 bflag, by, rdx, num; t_stat r; @@ -571,7 +571,7 @@ return -1; <= 0 -number of extra words */ -t_stat parse_sym_m (char *cptr, t_addr addr, t_value *val) +t_stat parse_sym_m (const char *cptr, t_addr addr, t_value *val) { uint32 i, j, t, df, db, inst; int32 r1, r2; diff --git a/Interdata/id32_cpu.c b/Interdata/id32_cpu.c index f9eb0416..1927f8ec 100644 --- a/Interdata/id32_cpu.c +++ b/Interdata/id32_cpu.c @@ -268,10 +268,10 @@ uint32 display (uint32 dev, uint32 op, uint32 dat); t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_consint (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_consint (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void set_r_display (uint32 *rbase); extern t_bool devtab_init (void); @@ -2310,7 +2310,7 @@ return SCPE_OK; /* Change memory size */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 mc = 0; uint32 i; @@ -2344,7 +2344,7 @@ return; /* Set console interrupt */ -t_stat cpu_set_consint (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_consint (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (PSW & PSW_EXI) SET_INT (v_DS); @@ -2353,7 +2353,7 @@ return SCPE_OK; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i, lnt; t_stat r; @@ -2384,10 +2384,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 op, k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_value sim_eval[3]; t_stat r; InstHistory *h; diff --git a/Interdata/id32_dboot.c b/Interdata/id32_dboot.c index 133f59e2..d63b1b14 100644 --- a/Interdata/id32_dboot.c +++ b/Interdata/id32_dboot.c @@ -267,7 +267,7 @@ static uint8 dboot_rom[] = { */ struct dboot_id { - char *name; + const char *name; uint32 sw; uint32 cap; uint32 dtype; diff --git a/Interdata/id32_sys.c b/Interdata/id32_sys.c index 1f02bd23..5aef8a75 100644 --- a/Interdata/id32_sys.c +++ b/Interdata/id32_sys.c @@ -52,9 +52,9 @@ extern REG cpu_reg[]; extern uint32 *M; t_stat fprint_sym_m (FILE *of, t_addr addr, t_value *val); -t_stat parse_sym_m (char *cptr, t_addr addr, t_value *val); -extern t_stat lp_load (FILE *fileref, char *cptr, char *fnam); -extern t_stat pt_dump (FILE *of, char *cptr, char *fnam); +t_stat parse_sym_m (const char *cptr, t_addr addr, t_value *val); +extern t_stat lp_load (FILE *fileref, CONST char *cptr, CONST char *fnam); +extern t_stat pt_dump (FILE *of, CONST char *cptr, CONST char *fnam); /* SCP data structures and interface routines @@ -102,7 +102,7 @@ const char *sim_stop_messages[] = { /* Binary loader -- load carriage control tape Binary dump -- paper tape dump */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { if (flag) return pt_dump (fileref, cptr, fnam); @@ -591,7 +591,7 @@ return SCPE_OK; /* Symbolic input */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 bflag, by, rdx, num; t_stat r; @@ -672,7 +672,7 @@ return -3; <= 0 -number of extra words */ -t_stat parse_sym_m (char *cptr, t_addr addr, t_value *val) +t_stat parse_sym_m (const char *cptr, t_addr addr, t_value *val) { uint32 i, j, df, db, t, inst; int32 st, r1, r2, rx2; diff --git a/Interdata/id_defs.h b/Interdata/id_defs.h index d4f37df0..c3a2370b 100644 --- a/Interdata/id_defs.h +++ b/Interdata/id_defs.h @@ -483,11 +483,14 @@ t_bool sch_actv (uint32 sch, uint32 devno); void sch_stop (uint32 sch); uint32 sch_wrmem (uint32 sch, uint8 *buf, uint32 cnt); uint32 sch_rdmem (uint32 sch, uint8 *buf, uint32 cnt); -t_stat set_sch (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat set_dev (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_sch (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat show_dev (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_sch (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat set_dev (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_sch (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat show_dev (FILE *st, UNIT *uptr, int32 val, CONST void *desc); int32 lfc_cosched (int32 wait); +extern uint32 PC, dec_flgs; +extern const uint16 decrom[256]; + #endif diff --git a/Interdata/id_dp.c b/Interdata/id_dp.c index 65887b04..0e6ff328 100644 --- a/Interdata/id_dp.c +++ b/Interdata/id_dp.c @@ -156,14 +156,13 @@ int32 dp_rtime = 100; /* rotate latency */ int32 dp_wtime = 1; /* word time */ uint8 dp_tplte[(2 * DP_NUMDR) + 2]; /* fix/rmv + ctrl + end */ -DEVICE dp_dev; uint32 dp (uint32 dev, uint32 op, uint32 dat); void dp_ini (t_bool dtpl); t_stat dp_svc (UNIT *uptr); t_stat dp_reset (DEVICE *dptr); -t_stat dp_attach (UNIT *uptr, char *cptr); +t_stat dp_attach (UNIT *uptr, CONST char *cptr); t_stat dp_detach (UNIT *uptr); -t_stat dp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat dp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat dp_rds (UNIT *uptr); t_stat dp_wds (UNIT *uptr); t_bool dp_dter (UNIT *uptr, uint32 first); @@ -564,7 +563,7 @@ return SCPE_OK; /* Attach routine (with optional autosizing) */ -t_stat dp_attach (UNIT *uptr, char *cptr) +t_stat dp_attach (UNIT *uptr, CONST char *cptr) { uint32 i, p; t_stat r; @@ -603,7 +602,7 @@ return detach_unit (uptr); /* Set size command validation routine */ -t_stat dp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; diff --git a/Interdata/id_fd.c b/Interdata/id_fd.c index d4944394..d0fe57a4 100644 --- a/Interdata/id_fd.c +++ b/Interdata/id_fd.c @@ -132,7 +132,6 @@ static uint32 ctab[16] = { 0, 0, 0, 0 }; -DEVICE fd_dev; uint32 fd (uint32 dev, uint32 op, uint32 dat); t_stat fd_svc (UNIT *uptr); t_stat fd_reset (DEVICE *dptr); @@ -516,9 +515,6 @@ static uint8 boot_rom[] = { t_stat fd_boot (int32 unitno, DEVICE *dptr) { -extern uint32 PC, dec_flgs; -extern uint16 decrom[]; - if (decrom[0xD5] & dec_flgs) /* AL defined? */ return SCPE_NOFNC; IOWriteBlk (BOOT_START, BOOT_LEN, boot_rom); /* copy boot */ diff --git a/Interdata/id_fp.c b/Interdata/id_fp.c index b9cf028a..e97c8758 100644 --- a/Interdata/id_fp.c +++ b/Interdata/id_fp.c @@ -115,7 +115,6 @@ struct ufp { /* unpacked fp */ extern uint32 *R; extern uint32 F[8]; extern dpr_t D[8]; -extern uint16 decrom[]; extern uint32 fp_in_hwre; extern uint32 ReadF (uint32 loc, uint32 rel); extern void WriteF (uint32 loc, uint32 dat, uint32 rel); @@ -318,7 +317,7 @@ return StoreFPR (&fop1, op, r1, Q_RND_AS (op)); /* store result */ - Double precision multiply generates 56b with no guard bits */ -int32 f_m (uint32 op, uint32 r1, uint32 r2, uint32 ea) +uint32 f_m (uint32 op, uint32 r1, uint32 r2, uint32 ea) { struct ufp fop1, fop2; struct ufp res = { 0, 0, 0, 0 }; @@ -366,7 +365,7 @@ return StoreFPR (&res, op, r1, Q_RND (op)); /* store */ /* Floating point divide - see overflow/underflow notes for multiply */ -int32 f_d (uint32 op, uint32 r1, uint32 r2, uint32 ea) +uint32 f_d (uint32 op, uint32 r1, uint32 r2, uint32 ea) { struct ufp fop1, fop2; struct ufp quo = { 0, 0, 0, 0 }; diff --git a/Interdata/id_idc.c b/Interdata/id_idc.c index dae22f3e..5e458772 100644 --- a/Interdata/id_idc.c +++ b/Interdata/id_idc.c @@ -219,12 +219,11 @@ int32 idc_rtime = 100; /* rotate latency */ int32 idc_ctime = 5; /* command latency */ uint8 idc_tplte[] = { 0, 1, 2, 3, 4, TPL_END }; /* ctrl + drive */ -DEVICE idc_dev; uint32 id (uint32 dev, uint32 op, uint32 dat); t_stat idc_svc (UNIT *uptr); t_stat idc_reset (DEVICE *dptr); -t_stat idc_attach (UNIT *uptr, char *cptr); -t_stat idc_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat idc_attach (UNIT *uptr, CONST char *cptr); +t_stat idc_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void idc_wd_byte (uint32 dat); t_stat idc_rds (UNIT *uptr); t_stat idc_wds (UNIT *uptr); @@ -770,7 +769,7 @@ return SCPE_OK; /* Attach routine (with optional autosizing) */ -t_stat idc_attach (UNIT *uptr, char *cptr) +t_stat idc_attach (UNIT *uptr, CONST char *cptr) { uint32 i, p; t_stat r; @@ -796,7 +795,7 @@ return SCPE_OK; /* Set size command validation routine */ -t_stat idc_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat idc_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; diff --git a/Interdata/id_io.c b/Interdata/id_io.c index a97cf813..f73569cb 100644 --- a/Interdata/id_io.c +++ b/Interdata/id_io.c @@ -81,9 +81,9 @@ uint8 sch_tplte[SCH_NUMCH + 1]; /* dnum template */ uint32 sch (uint32 dev, uint32 op, uint32 dat); void sch_ini (t_bool dtpl); t_stat sch_reset (DEVICE *dptr); -t_stat sch_set_nchan (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sch_show_nchan (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat sch_show_reg (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat sch_set_nchan (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sch_show_nchan (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat sch_show_reg (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* Selector channel data structures @@ -341,7 +341,7 @@ return SCPE_OK; /* Set number of channels */ -t_stat sch_set_nchan (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sch_set_nchan (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -372,7 +372,7 @@ return SCPE_OK; /* Show number of channels */ -t_stat sch_show_nchan (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sch_show_nchan (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "channels=%d", sch_max); return SCPE_OK; @@ -380,7 +380,7 @@ return SCPE_OK; /* Show channel registers */ -t_stat sch_show_reg (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sch_show_reg (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (val < 0) return SCPE_IERR; @@ -513,7 +513,7 @@ return cnt; /* Change selector channel for a device */ -t_stat set_sch (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_sch (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -539,7 +539,7 @@ return SCPE_OK; /* Show selector channel for a device */ -t_stat show_sch (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_sch (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; DIB *dibp; @@ -558,7 +558,7 @@ return SCPE_OK; /* Change device number for a device */ -t_stat set_dev (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_dev (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -586,7 +586,7 @@ return SCPE_OK; /* Show device number for a device */ -t_stat show_dev (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_dev (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; DIB *dibp; diff --git a/Interdata/id_lp.c b/Interdata/id_lp.c index 18754c08..687f57bd 100644 --- a/Interdata/id_lp.c +++ b/Interdata/id_lp.c @@ -67,11 +67,10 @@ int32 lpt_stopioe = 0; /* stop on err */ extern uint32 int_req[INTSZ], int_enb[INTSZ]; -DEVICE lpt_dev; uint32 lpt (uint32 dev, uint32 op, uint32 dat); t_stat lpt_svc (UNIT *uptr); t_stat lpt_reset (DEVICE *dptr); -t_stat lpt_attach (UNIT *uptr, char *cptr); +t_stat lpt_attach (UNIT *uptr, CONST char *cptr); t_stat lpt_bufout (UNIT *uptr); t_stat lpt_vfu (UNIT *uptr, int32 ch); t_stat lpt_spc (UNIT *uptr, int32 cnt); @@ -283,7 +282,7 @@ return SCPE_OK; /* Attach routine */ -t_stat lpt_attach (UNIT *uptr, char *cptr) +t_stat lpt_attach (UNIT *uptr, CONST char *cptr) { lpt_vfup = 0; /* top of form */ return attach_unit (uptr, cptr); @@ -291,7 +290,7 @@ return attach_unit (uptr, cptr); /* Carriage control load routine */ -t_stat lp_load (FILE *fileref, char *cptr, char *fnam) +t_stat lp_load (FILE *fileref, CONST char *cptr, CONST char *fnam) { int32 col, ptr, mask, vfubuf[VFU_LNT]; uint32 rpt; diff --git a/Interdata/id_mt.c b/Interdata/id_mt.c index f9209d82..fb2e708d 100644 --- a/Interdata/id_mt.c +++ b/Interdata/id_mt.c @@ -101,11 +101,10 @@ static const uint8 bad_cmd[64] = { 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 }; -DEVICE mt_dev; uint32 mt (uint32 dev, uint32 op, uint32 dat); t_stat mt_svc (UNIT *uptr); t_stat mt_reset (DEVICE *dptr); -t_stat mt_attach (UNIT *uptr, char *cptr); +t_stat mt_attach (UNIT *uptr, CONST char *cptr); t_stat mt_detach (UNIT *uptr); t_stat mt_boot (int32 unitno, DEVICE *dptr); t_stat mt_map_err (UNIT *uptr, t_stat st); @@ -483,7 +482,7 @@ return SCPE_OK; /* Attach routine */ -t_stat mt_attach (UNIT *uptr, char *cptr) +t_stat mt_attach (UNIT *uptr, CONST char *cptr) { int32 u = uptr - mt_dev.units; t_stat r; @@ -527,8 +526,6 @@ static uint8 boot_rom[] = { t_stat mt_boot (int32 unitno, DEVICE *dptr) { -extern uint32 PC, dec_flgs; -extern uint16 decrom[]; extern DIB sch_dib; uint32 sch_dev; diff --git a/Interdata/id_pas.c b/Interdata/id_pas.c index 9874b7df..257d1daa 100644 --- a/Interdata/id_pas.c +++ b/Interdata/id_pas.c @@ -113,10 +113,10 @@ void pas_ini (t_bool dtpl); t_stat pasi_svc (UNIT *uptr); t_stat paso_svc (UNIT *uptr); t_stat pas_reset (DEVICE *dptr); -t_stat pas_attach (UNIT *uptr, char *cptr); +t_stat pas_attach (UNIT *uptr, CONST char *cptr); t_stat pas_detach (UNIT *uptr); int32 pas_par (int32 cmd, int32 c); -t_stat pas_vlines (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat pas_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void pas_reset_ln (int32 i); /* PAS data structures @@ -479,7 +479,7 @@ return SCPE_OK; /* Attach master unit */ -t_stat pas_attach (UNIT *uptr, char *cptr) +t_stat pas_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -506,7 +506,7 @@ return r; /* Change number of lines */ -t_stat pas_vlines (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat pas_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; diff --git a/Interdata/id_pt.c b/Interdata/id_pt.c index 36b9d75f..99a8821e 100644 --- a/Interdata/id_pt.c +++ b/Interdata/id_pt.c @@ -54,7 +54,6 @@ uint32 pt_arm = 0; /* int arm */ uint32 pt_sta = STA_BSY; /* status */ uint32 ptr_stopioe = 0, ptp_stopioe = 0; /* stop on error */ -DEVICE pt_dev; uint32 pt (uint32 dev, uint32 op, uint32 dat); t_stat ptr_svc (UNIT *uptr); t_stat ptp_svc (UNIT *uptr); @@ -285,9 +284,6 @@ static uint8 boot3_rom[] = { t_stat pt_boot (int32 unitno, DEVICE *dptr) { -extern uint32 PC, dec_flgs; -extern uint16 decrom[]; - if (decrom[0xD5] & dec_flgs) /* AL defined? */ IOWriteBlk (BOOT3_START, BOOT3_LEN, boot3_rom); /* no, 50 seq */ else IOWriteBlk (BOOT_START, BOOT_LEN, boot_rom); /* copy AL boot */ @@ -342,7 +338,7 @@ static uint8 load_rom[] = { 0x22, 0x03 /* BS .-6 */ }; -t_stat pt_dump (FILE *of, char *cptr, char *fnam) +t_stat pt_dump (FILE *of, CONST char *cptr, CONST char *fnam) { uint32 i, lo, hi, cs; const char *tptr; diff --git a/Interdata/id_tt.c b/Interdata/id_tt.c index 64bdc3f3..8a6e605d 100644 --- a/Interdata/id_tt.c +++ b/Interdata/id_tt.c @@ -64,9 +64,9 @@ uint32 tt (uint32 dev, uint32 op, uint32 dat); t_stat tti_svc (UNIT *uptr); t_stat tto_svc (UNIT *uptr); t_stat tt_reset (DEVICE *dptr); -t_stat tt_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat tt_set_break (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat tt_set_enbdis (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tt_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat tt_set_break (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat tt_set_enbdis (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* TT data structures @@ -254,7 +254,7 @@ return SCPE_OK; /* Make mode flags uniform */ -t_stat tt_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tt_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { tt_unit[TTO].flags = (tt_unit[TTO].flags & ~TT_MODE) | val; if (val == TT_MODE_7P) @@ -265,7 +265,7 @@ return SCPE_OK; /* Set input break */ -t_stat tt_set_break (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tt_set_break (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (tt_dev.flags & DEV_DIS) return SCPE_NOFNC; @@ -282,7 +282,7 @@ return SCPE_OK; /* Set enabled/disabled */ -t_stat tt_set_enbdis (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tt_set_enbdis (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { extern DEVICE ttp_dev; extern t_stat ttp_reset (DEVICE *dptr); diff --git a/Interdata/id_ttp.c b/Interdata/id_ttp.c index eb9fd393..ad6fcddf 100644 --- a/Interdata/id_ttp.c +++ b/Interdata/id_ttp.c @@ -69,9 +69,9 @@ uint32 ttp (uint32 dev, uint32 op, uint32 dat); t_stat ttpi_svc (UNIT *uptr); t_stat ttpo_svc (UNIT *uptr); t_stat ttp_reset (DEVICE *dptr); -t_stat ttp_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ttp_set_break (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ttp_set_enbdis (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat ttp_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ttp_set_break (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ttp_set_enbdis (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* TTP data structures */ @@ -253,7 +253,7 @@ return SCPE_OK; /* Make mode flags uniform */ -t_stat ttp_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttp_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { ttp_unit[TTO].flags = (ttp_unit[TTO].flags & ~TT_MODE) | val; if (val == TT_MODE_7P) @@ -264,7 +264,7 @@ return SCPE_OK; /* Set input break */ -t_stat ttp_set_break (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttp_set_break (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (ttp_dev.flags & DEV_DIS) return SCPE_NOFNC; @@ -278,7 +278,7 @@ return SCPE_OK; /* Set enabled/disabled */ -t_stat ttp_set_enbdis (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttp_set_enbdis (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { extern DEVICE tt_dev; extern t_stat tt_reset (DEVICE *dptr); diff --git a/Interdata/id_uvc.c b/Interdata/id_uvc.c index 0d1d9451..1c3b1b0e 100644 --- a/Interdata/id_uvc.c +++ b/Interdata/id_uvc.c @@ -70,7 +70,6 @@ static int32 pic_map[16] = { /* map rate to delay */ 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 }; -DEVICE pic_dev; uint32 pic (uint32 dev, uint32 op, uint32 dat); t_stat pic_svc (UNIT *uptr); t_stat pic_reset (DEVICE *dptr); @@ -81,12 +80,11 @@ int32 lfc_tps = 120; /* ticks per */ int32 lfc_poll = 8000; uint32 lfc_arm = 0; /* int arm */ -DEVICE lfc_dev; uint32 lfc (uint32 dev, uint32 op, uint32 dat); t_stat lfc_svc (UNIT *uptr); t_stat lfc_reset (DEVICE *dptr); -t_stat lfc_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat lfc_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat lfc_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat lfc_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* PIC data structures @@ -376,7 +374,7 @@ return SCPE_OK; /* Set frequency */ -t_stat lfc_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat lfc_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -388,7 +386,7 @@ return SCPE_OK; /* Show frequency */ -t_stat lfc_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat lfc_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, (lfc_tps == 100)? "50Hz": "60Hz"); return SCPE_OK; diff --git a/LGP/lgp_cpu.c b/LGP/lgp_cpu.c index b91d6b82..50d83187 100644 --- a/LGP/lgp_cpu.c +++ b/LGP/lgp_cpu.c @@ -150,13 +150,13 @@ REG *pcq_r = NULL; /* PC queue reg ptr */ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_30opt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_30opt_i (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_30opt_o (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_fill (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_exec (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_30opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_30opt_i (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_30opt_o (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_fill (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_exec (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat cpu_one_inst (uint32 opc, uint32 ir); uint32 Mul64 (uint32 a, uint32 b, uint32 *low); t_bool Div32 (uint32 dvd, uint32 dvr, uint32 *q); @@ -641,7 +641,7 @@ return SCPE_OK; /* Validate option, must be LGP30 */ -t_stat cpu_set_30opt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_30opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (Q_LGP21) return SCPE_ARG; @@ -650,7 +650,7 @@ return SCPE_OK; /* Validate input option, must be LGP30 */ -t_stat cpu_set_30opt_i (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_30opt_i (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (Q_LGP21 || (cptr == NULL)) return SCPE_ARG; @@ -664,7 +664,7 @@ return SCPE_OK; /* Validate output option, must be LGP30 */ -t_stat cpu_set_30opt_o (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_30opt_o (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (Q_LGP21 || (cptr == NULL)) return SCPE_ARG; @@ -678,7 +678,7 @@ return SCPE_OK; /* Set CPU to LGP21 or LPG30 */ -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val) uptr->flags = uptr->flags & ~(UNIT_IN4B|UNIT_INPT|UNIT_OUTPT); @@ -687,7 +687,7 @@ return reset_all (0); /* Show CPU type and all options */ -t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fputs (Q_LGP21? "LGP-21": "LGP-30", st); if (uptr->flags & UNIT_TTSS_D) @@ -726,7 +726,7 @@ return SCPE_OK; /* Execute */ -t_stat cpu_set_exec (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_exec (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 inst; t_stat r; @@ -747,7 +747,7 @@ return r; /* Fill */ -t_stat cpu_set_fill (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_fill (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 inst; t_stat r; diff --git a/LGP/lgp_defs.h b/LGP/lgp_defs.h index fdff4d02..9dab36f3 100644 --- a/LGP/lgp_defs.h +++ b/LGP/lgp_defs.h @@ -138,4 +138,9 @@ enum opcodes { uint32 Read (uint32 ea); void Write (uint32 ea, uint32 dat); +/* Translation Tables */ + +extern const int32 flex_to_ascii[128]; +extern const int32 ascii_to_flex[128]; + #endif diff --git a/LGP/lgp_stddev.c b/LGP/lgp_stddev.c index c527dd77..278d3cf8 100644 --- a/LGP/lgp_stddev.c +++ b/LGP/lgp_stddev.c @@ -58,14 +58,14 @@ t_stat ptr_svc (UNIT *uptr); t_stat ptp_svc (UNIT *uptr); t_stat ptr_reset (DEVICE *uptr); t_stat ptp_reset (DEVICE *uptr); -t_stat tap_attach (UNIT *uptr, char *cptr); -t_stat tap_attable (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tap_attach (UNIT *uptr, CONST char *cptr); +t_stat tap_attable (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat read_reader (UNIT *uptr, int32 stop, int32 *c); t_stat write_tto (int32 flex); t_stat write_punch (UNIT *uptr, int32 flex); -t_stat tti_rdrss (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat punch_feed (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat send_start (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tti_rdrss (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat punch_feed (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat send_start (UNIT *uptr, int32 val, CONST char *cptr, void *desc); extern uint32 shift_in (uint32 a, uint32 dat, uint32 sh4); @@ -614,7 +614,7 @@ return SCPE_OK; /* Attach paper tape unit */ -t_stat tap_attach (UNIT *uptr, char *cptr) +t_stat tap_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -629,7 +629,7 @@ return SCPE_OK; /* Validate unit is attachable */ -t_stat tap_attable (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tap_attable (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATTABLE) return SCPE_OK; @@ -638,7 +638,7 @@ return SCPE_NOFNC; /* Typewriter reader start/stop */ -t_stat tti_rdrss (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tti_rdrss (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val) { if ((tti_unit[1].flags & UNIT_ATT) == 0) @@ -651,7 +651,7 @@ return SCPE_OK; /* Punch feed routine */ -t_stat punch_feed (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat punch_feed (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 cnt; t_stat r; @@ -674,7 +674,7 @@ return SCPE_OK; /* Send start signal */ -t_stat send_start (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat send_start (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (inp_strt) inp_done = 1; diff --git a/LGP/lgp_sys.c b/LGP/lgp_sys.c index 589f88e8..73410c53 100644 --- a/LGP/lgp_sys.c +++ b/LGP/lgp_sys.c @@ -29,7 +29,7 @@ #include "lgp_defs.h" #include -t_stat parse_sym_m (char *cptr, t_value *val, int32 sw); +t_stat parse_sym_m (CONST char *cptr, t_value *val, int32 sw); void lgp_init (void); extern DEVICE cpu_dev; @@ -40,7 +40,6 @@ extern REG cpu_reg[]; extern uint32 M[]; extern uint32 PC; extern uint32 ts_flag; -extern int32 flex_to_ascii[128], ascii_to_flex[128]; /* SCP data structures and interface routines @@ -135,7 +134,7 @@ return SCPE_OK; /* Loader proper */ -t_stat sim_load (FILE *fi, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fi, CONST char *cptr, CONST char *fnam, int flag) { uint32 wd, origin, amod, csum, cnt, tr, sc, ad, cmd; @@ -237,7 +236,7 @@ else fprint_val (st, addr, dptr->aradix, dptr->awidth, PV_LEFT); return; } -t_addr lgp_parse_addr (DEVICE *dptr, const char *cptr, const char **tptr) +t_addr lgp_parse_addr (DEVICE *dptr, CONST char *cptr, CONST char **tptr) { t_addr ad, ea; @@ -330,10 +329,10 @@ return SCPE_ARG; status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 i, c; -char *tptr; +const char *tptr; while (isspace (*cptr)) /* absorb spaces */ cptr++; @@ -376,10 +375,10 @@ return SCPE_ARG; /* Instruction parse */ -t_stat parse_sym_m (char *cptr, t_value *val, int32 sw) +t_stat parse_sym_m (CONST char *cptr, t_value *val, int32 sw) { uint32 ea, sgn; -const char *tptr; +CONST char *tptr; char gbuf[CBUFSIZE]; if (*cptr == '-') { diff --git a/NOVA/eclipse_cpu.c b/NOVA/eclipse_cpu.c index e5be3c62..e40002de 100644 --- a/NOVA/eclipse_cpu.c +++ b/NOVA/eclipse_cpu.c @@ -501,9 +501,9 @@ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); t_stat cpu_boot (int32 unitno, DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat Debug_Dump (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat Dump_History (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat Debug_Dump (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat Dump_History (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat map_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat map_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat map_reset (DEVICE *dptr); @@ -5763,7 +5763,7 @@ return SCPE_OK; /* Alter memory size */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; t_addr i; @@ -5952,12 +5952,12 @@ int32 Debug_Entry(int32 PC, int32 inst, int32 inst2, int32 AC0, int32 AC1, int32 return 0; } -t_stat Debug_Dump(UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat Debug_Dump(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { return SCPE_OK; } -t_stat Dump_History (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat Dump_History (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { char debmap[4], debion[4]; t_value simeval[20]; diff --git a/NOVA/eclipse_tt.c b/NOVA/eclipse_tt.c index 49c350d7..fdb2f347 100644 --- a/NOVA/eclipse_tt.c +++ b/NOVA/eclipse_tt.c @@ -48,7 +48,7 @@ t_stat tti_svc (UNIT *uptr); t_stat tto_svc (UNIT *uptr); t_stat tti_reset (DEVICE *dptr); t_stat tto_reset (DEVICE *dptr); -t_stat ttx_setmod (UNIT *uptr, int32 value, char *cptr, void *desc); +t_stat ttx_setmod (UNIT *uptr, int32 value, CONST char *cptr, void *desc); void translate_in(); int32 translate_out(int32 c); int32 putseq(char *seq); @@ -422,7 +422,7 @@ sim_cancel (&tto_unit); /* deactivate unit */ return SCPE_OK; } -t_stat ttx_setmod (UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat ttx_setmod (UNIT *uptr, int32 value, CONST char *cptr, void *desc) { tti_unit.flags = (tti_unit.flags & ~UNIT_DASHER) | value; tto_unit.flags = (tto_unit.flags & ~UNIT_DASHER) | value; diff --git a/NOVA/nova_clk.c b/NOVA/nova_clk.c index 59bc0af9..fcab4cdd 100644 --- a/NOVA/nova_clk.c +++ b/NOVA/nova_clk.c @@ -49,8 +49,8 @@ int32 tmxr_poll = 16000; /* tmxr poll */ int32 clk (int32 pulse, int32 code, int32 AC); t_stat clk_svc (UNIT *uptr); t_stat clk_reset (DEVICE *dptr); -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* CLK data structures @@ -166,7 +166,7 @@ return SCPE_OK; /* Set line frequency */ -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -178,7 +178,7 @@ return SCPE_OK; /* Show line frequency */ -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, (clk_tps[0] == 50)? "50Hz": "60Hz"); return SCPE_OK; diff --git a/NOVA/nova_cpu.c b/NOVA/nova_cpu.c index b69c5757..f29d21ea 100644 --- a/NOVA/nova_cpu.c +++ b/NOVA/nova_cpu.c @@ -320,12 +320,12 @@ static Hist_entry * hist = NULL ; /* instruction history * t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat cpu_boot (int32 unitno, DEVICE *dptr); t_stat build_devtab (void); -t_stat hist_set( UNIT * uptr, int32 val, char * cptr, void * desc ) ; -t_stat hist_show( FILE * st, UNIT * uptr, int32 val, void * desc ) ; +t_stat hist_set( UNIT * uptr, int32 val, CONST char * cptr, void * desc ) ; +t_stat hist_show( FILE * st, UNIT * uptr, int32 val, CONST void * desc ) ; static int hist_save( int32 pc, int32 our_ir ) ; char * devBitNames( int32 flags, char * ptr, char * sepStr ) ; @@ -1126,7 +1126,7 @@ return SCPE_OK; /* Alter memory size */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; t_addr i; @@ -1330,7 +1330,7 @@ return ( -1 ) ; /* setup history save area (proposed global routine) */ -t_stat hist_set( UNIT * uptr, int32 val, char * cptr, void * desc ) +t_stat hist_set( UNIT * uptr, int32 val, CONST char * cptr, void * desc ) { int32 i, lnt ; t_stat r ; @@ -1420,10 +1420,10 @@ return ( 0 ) ; /* show execution history (proposed global routine) */ -t_stat hist_show( FILE * st, UNIT * uptr, int32 val, void * desc ) +t_stat hist_show( FILE * st, UNIT * uptr, int32 val, CONST void * desc ) { int32 k, di, lnt ; -char * cptr = (char *) desc ; +const char * cptr = (const char *) desc ; t_stat r ; Hist_entry * hptr ; @@ -1467,7 +1467,7 @@ struct Dbits { int32 dBit ; int32 dInvertMask ; - char * dName ; + const char *dName ; } devBits [] = { diff --git a/NOVA/nova_dkp.c b/NOVA/nova_dkp.c index 224d885e..c6076a43 100644 --- a/NOVA/nova_dkp.c +++ b/NOVA/nova_dkp.c @@ -346,14 +346,13 @@ int32 dkp_diagmode = 0; /* diagnostic mode */ int32 dkp_trace = 0 ; -DEVICE dkp_dev; int32 dkp (int32 pulse, int32 code, int32 AC); t_stat dkp_svc (UNIT *uptr); t_stat dkp_reset (DEVICE *dptr); t_stat dkp_boot (int32 unitno, DEVICE *dptr); -t_stat dkp_attach (UNIT *uptr, char *cptr); +t_stat dkp_attach (UNIT *uptr, CONST char *cptr); t_stat dkp_go ( int32 pulse ); -t_stat dkp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat dkp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* DKP data structures @@ -515,9 +514,9 @@ dtype = GET_DTYPE (uptr->flags); /* get drive type */ if ( DKP_TRACE(0) ) { - static char * f[8] = + static const char * f[8] = { "NIO", "DIA", "DOA", "DIB", "DOB", "DIC", "DOC", "SKP" } ; - static char * s[4] = + static const char * s[4] = { " ", "S", "C", "P" } ; printf( " [DKP %s%s %06o ", f[code & 0x07], s[pulse & 0x03], (AC & 0xFFFF) ) ; @@ -989,7 +988,7 @@ return SCPE_OK; /* Attach routine (with optional autosizing) */ -t_stat dkp_attach (UNIT *uptr, char *cptr) +t_stat dkp_attach (UNIT *uptr, CONST char *cptr) { int32 i, p; t_stat r; @@ -1012,7 +1011,7 @@ return SCPE_OK; /* Set size command validation routine */ -t_stat dkp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dkp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; diff --git a/NOVA/nova_dsk.c b/NOVA/nova_dsk.c index 75e83800..0388e0cf 100644 --- a/NOVA/nova_dsk.c +++ b/NOVA/nova_dsk.c @@ -109,13 +109,12 @@ int32 dsk_wlk = 0; /* wrt lock switches */ int32 dsk_stopioe = 0; /* stop on error */ int32 dsk_time = 100; /* time per sector */ -DEVICE dsk_dev; int32 dsk (int32 pulse, int32 code, int32 AC); t_stat dsk_svc (UNIT *uptr); t_stat dsk_reset (DEVICE *dptr); t_stat dsk_boot (int32 unitno, DEVICE *dptr); -t_stat dsk_attach (UNIT *uptr, char *cptr); -t_stat dsk_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat dsk_attach (UNIT *uptr, CONST char *cptr); +t_stat dsk_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* DSK data structures @@ -309,7 +308,7 @@ return SCPE_OK; /* Attach routine */ -t_stat dsk_attach (UNIT *uptr, char *cptr) +t_stat dsk_attach (UNIT *uptr, CONST char *cptr) { uint32 sz, p; uint32 ds_bytes = DSK_DKSIZE * sizeof (int16); @@ -327,7 +326,7 @@ return attach_unit (uptr, cptr); /* Change disk size */ -t_stat dsk_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dsk_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val < 0) return SCPE_IERR; diff --git a/NOVA/nova_mta.c b/NOVA/nova_mta.c index 2305e770..03eede8e 100644 --- a/NOVA/nova_mta.c +++ b/NOVA/nova_mta.c @@ -166,17 +166,16 @@ int32 mta_cwait = 100; /* command latency */ int32 mta_rwait = 100; /* record latency */ uint8 *mtxb = NULL; /* transfer buffer */ -DEVICE mta_dev; int32 mta (int32 pulse, int32 code, int32 AC); t_stat mta_svc (UNIT *uptr); t_stat mta_reset (DEVICE *dptr); t_stat mta_boot (int32 unitno, DEVICE *dptr); -t_stat mta_attach (UNIT *uptr, char *cptr); +t_stat mta_attach (UNIT *uptr, CONST char *cptr); t_stat mta_detach (UNIT *uptr); int32 mta_updcsta (UNIT *uptr); void mta_upddsta (UNIT *uptr, int32 newsta); t_stat mta_map_err (UNIT *uptr, t_stat st); -t_stat mta_vlock (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat mta_vlock (UNIT *uptr, int32 val, CONST char *cptr, void *desc); static const int ctype[32] = { /* c vs r timing */ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, @@ -592,7 +591,7 @@ return SCPE_OK; /* Attach routine */ -t_stat mta_attach (UNIT *uptr, char *cptr) +t_stat mta_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -618,7 +617,7 @@ return sim_tape_detach (uptr); /* Write lock/unlock validate routine */ -t_stat mta_vlock (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat mta_vlock (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if ((uptr->flags & UNIT_ATT) && (val || sim_tape_wrp (uptr))) mta_upddsta (uptr, uptr->USTAT | STA_WLK); diff --git a/NOVA/nova_plt.c b/NOVA/nova_plt.c index 5ded9be2..aad70b24 100644 --- a/NOVA/nova_plt.c +++ b/NOVA/nova_plt.c @@ -48,7 +48,6 @@ extern int32 int_req, dev_busy, dev_done, dev_disable; int32 plt_stopioe = 0; /* stop on error */ -DEVICE plt_dev; int32 plt (int32 pulse, int32 code, int32 AC); t_stat plt_svc (UNIT *uptr); t_stat plt_reset (DEVICE *dptr); diff --git a/NOVA/nova_pt.c b/NOVA/nova_pt.c index b66e5095..c58d1b8a 100644 --- a/NOVA/nova_pt.c +++ b/NOVA/nova_pt.c @@ -1,299 +1,299 @@ -/* nova_pt.c: NOVA paper tape read/punch simulator - - Copyright (c) 1993-2016, Robert M. Supnik - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name of Robert M Supnik shall not be - used in advertising or otherwise to promote the sale, use or other dealings - in this Software without prior written authorization from Robert M Supnik. - - ptr paper tape reader - ptp paper tape punch - - 13-May-16 RMS Lengthened wait time for DCC BASIC timing error - 28-Mar-15 RMS Revised to use sim_printf - 04-Jul-07 BKR added PTR and PTP device DISABLE capability, - added 7B/8B support PTR and PTP (default is 8B), - DEV_SET/CLR macros now used, - PTR and PTP can now be DISABLED - 25-Apr-03 RMS Revised for extended file support - 03-Oct-02 RMS Added DIBs - 30-May-02 RMS Widened POS to 32b - 29-Nov-01 RMS Added read only unit support - - -Notes: - - data masked to 7- or 8- bits, based on 7B or 8B, default is 8-bits - - register TIME is the delay between character read or write operations - - register POS show the number of characters read from or sent to the PTR or PTP - - register STOP_IOE determines return value issued if output to unattached PTR or PTP is attempted -*/ - -#include "nova_defs.h" - -extern int32 int_req, dev_busy, dev_done, dev_disable ; -extern int32 SR ; - -extern t_stat cpu_boot(int32 unitno, DEVICE * dptr ) ; - - -int32 ptr_stopioe = 0, ptp_stopioe = 0; /* stop on error */ - -int32 ptr (int32 pulse, int32 code, int32 AC); -int32 ptp (int32 pulse, int32 code, int32 AC); -t_stat ptr_svc (UNIT *uptr); -t_stat ptp_svc (UNIT *uptr); -t_stat ptr_reset (DEVICE *dptr); -t_stat ptp_reset (DEVICE *dptr); -t_stat ptr_boot (int32 unitno, DEVICE *dptr); - - -/* 7 or 8 bit data mask support for either device */ - -#define UNIT_V_8B (UNIT_V_UF + 0) /* 8b output */ -#define UNIT_8B (1 << UNIT_V_8B) - - -/* PTR data structures - - ptr_dev PTR device descriptor - ptr_unit PTR unit descriptor - ptr_reg PTR register list -*/ - -DIB ptr_dib = { DEV_PTR, INT_PTR, PI_PTR, &ptr }; - -UNIT ptr_unit = { /* 2007-May-30, bkr */ - UDATA (&ptr_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_ROABLE+UNIT_8B, 0), 300 - }; - -REG ptr_reg[] = { - { ORDATA (BUF, ptr_unit.buf, 8) }, - { FLDATA (BUSY, dev_busy, INT_V_PTR) }, - { FLDATA (DONE, dev_done, INT_V_PTR) }, - { FLDATA (DISABLE, dev_disable, INT_V_PTR) }, - { FLDATA (INT, int_req, INT_V_PTR) }, - { DRDATA (POS, ptr_unit.pos, T_ADDR_W), PV_LEFT }, - { DRDATA (TIME, ptr_unit.wait, 24), PV_LEFT }, - { FLDATA (STOP_IOE, ptr_stopioe, 0) }, - { NULL } - }; - -MTAB ptr_mod[] = /* 2007-May-30, bkr */ - { - { UNIT_8B, 0, "7b", "7B", NULL }, - { UNIT_8B, UNIT_8B, "8b", "8B", NULL }, - { 0, 0, NULL, NULL, NULL } - } ; - -DEVICE ptr_dev = { - "PTR", &ptr_unit, ptr_reg, ptr_mod /* 2007-May-30, bkr */, - 1, 10, 31, 1, 8, 8, - NULL, NULL, &ptr_reset, - &ptr_boot, NULL, NULL, - &ptr_dib, DEV_DISABLE /* 2007-May-30, bkr */ - }; - -/* PTP data structures - - ptp_dev PTP device descriptor - ptp_unit PTP unit descriptor - ptp_reg PTP register list -*/ - -DIB ptp_dib = { DEV_PTP, INT_PTP, PI_PTP, &ptp }; - -UNIT ptp_unit = - { - UDATA (&ptp_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_8B, 0), SERIAL_OUT_WAIT - }; - -REG ptp_reg[] = { - { ORDATA (BUF, ptp_unit.buf, 8) }, - { FLDATA (BUSY, dev_busy, INT_V_PTP) }, - { FLDATA (DONE, dev_done, INT_V_PTP) }, - { FLDATA (DISABLE, dev_disable, INT_V_PTP) }, - { FLDATA (INT, int_req, INT_V_PTP) }, - { DRDATA (POS, ptp_unit.pos, T_ADDR_W), PV_LEFT }, - { DRDATA (TIME, ptp_unit.wait, 24), PV_LEFT }, - { FLDATA (STOP_IOE, ptp_stopioe, 0) }, - { NULL } - }; - -MTAB ptp_mod[] = - { - { UNIT_8B, 0, "7b", "7B", NULL }, - { UNIT_8B, UNIT_8B, "8b", "8B", NULL }, - { 0, 0, NULL, NULL, NULL } - } ; - -DEVICE ptp_dev = - { - "PTP", &ptp_unit, ptp_reg, ptp_mod /* 2007-May-30, bkr */, - 1, 10, 31, 1, 8, 8, - NULL, NULL, &ptp_reset, - NULL, NULL, NULL, - &ptp_dib, DEV_DISABLE /* 2007-May-30, bkr */ - }; - - -/* Paper tape reader: IOT routine */ - -int32 ptr (int32 pulse, int32 code, int32 AC) -{ -int32 iodata; - -iodata = (code == ioDIA)? - ptr_unit.buf & 0377 - : 0; -switch (pulse) - { /* decode IR<8:9> */ - case iopS: /* start */ - DEV_SET_BUSY( INT_PTR ) ; - DEV_CLR_DONE( INT_PTR ) ; - DEV_UPDATE_INTR ; - sim_activate (&ptr_unit, ptr_unit.wait); /* activate unit */ - break; - - case iopC: /* clear */ - DEV_CLR_BUSY( INT_PTR ) ; - DEV_CLR_DONE( INT_PTR ) ; - DEV_UPDATE_INTR ; - sim_cancel (&ptr_unit); /* deactivate unit */ - break; - } /* end switch */ - -return iodata; -} - - -/* Unit service */ - -t_stat ptr_svc (UNIT *uptr) -{ -int32 temp; - -if ((ptr_unit.flags & UNIT_ATT) == 0) /* attached? */ - return IORETURN (ptr_stopioe, SCPE_UNATT); -if ((temp = getc (ptr_unit.fileref)) == EOF) { /* end of file? */ - if (feof (ptr_unit.fileref)) { - if (ptr_stopioe) - sim_printf ("PTR end of file\n"); - else return SCPE_OK; - } - else sim_perror ("PTR I/O error"); - clearerr (ptr_unit.fileref); - return SCPE_IOERR; - } - -DEV_CLR_BUSY( INT_PTR ) ; -DEV_SET_DONE( INT_PTR ) ; -DEV_UPDATE_INTR ; -ptr_unit.buf = temp & ((ptr_unit.flags & UNIT_8B)? 0377: 0177); -++(ptr_unit.pos); -return SCPE_OK; -} - - -/* Reset routine */ - -t_stat ptr_reset (DEVICE *dptr) -{ -ptr_unit.buf = 0; /* */ -DEV_CLR_BUSY( INT_PTR ) ; -DEV_CLR_DONE( INT_PTR ) ; -DEV_UPDATE_INTR ; -sim_cancel (&ptr_unit); /* deactivate unit */ -return SCPE_OK; -} - - -/* Boot routine */ - -t_stat ptr_boot (int32 unitno, DEVICE *dptr) -{ -ptr_reset( dptr ) ; -/* set position to 0? */ -cpu_boot( unitno, dptr ) ; -SR = /* low-speed: no high-order bit set */ DEV_PTR ; -return ( SCPE_OK ); -} /* end of 'ptr_boot' */ - - - - - -/* Paper tape punch: IOT routine */ - -int32 ptp (int32 pulse, int32 code, int32 AC) -{ -if (code == ioDOA) - ptp_unit.buf = AC & 0377; - -switch (pulse) - { /* decode IR<8:9> */ - case iopS: /* start */ - DEV_SET_BUSY( INT_PTP ) ; - DEV_CLR_DONE( INT_PTP ) ; - DEV_UPDATE_INTR ; - sim_activate (&ptp_unit, ptp_unit.wait); /* activate unit */ - break; - - case iopC: /* clear */ - DEV_CLR_BUSY( INT_PTP ) ; - DEV_CLR_DONE( INT_PTP ) ; - DEV_UPDATE_INTR ; - sim_cancel (&ptp_unit); /* deactivate unit */ - break; - } /* end switch */ - -return 0; -} - - -/* Unit service */ - -t_stat ptp_svc (UNIT *uptr) -{ -DEV_CLR_BUSY( INT_PTP ) ; -DEV_SET_DONE( INT_PTP ) ; -DEV_UPDATE_INTR ; -if ((ptp_unit.flags & UNIT_ATT) == 0) /* attached? */ - return IORETURN (ptp_stopioe, SCPE_UNATT); -if (putc ((ptp_unit.buf & ((ptp_unit.flags & UNIT_8B)? 0377: 0177)), ptp_unit.fileref) == EOF) { - sim_perror ("PTP I/O error"); - clearerr (ptp_unit.fileref); - return SCPE_IOERR; - } -++(ptp_unit.pos); -return SCPE_OK; -} - - -/* Reset routine */ - -t_stat ptp_reset (DEVICE *dptr) -{ -ptp_unit.buf = 0; /* */ -DEV_CLR_BUSY( INT_PTP ) ; -DEV_CLR_DONE( INT_PTP ) ; -DEV_UPDATE_INTR ; -sim_cancel (&ptp_unit); /* deactivate unit */ -return SCPE_OK; -} +/* nova_pt.c: NOVA paper tape read/punch simulator + + Copyright (c) 1993-2016, Robert M. Supnik + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Robert M Supnik shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from Robert M Supnik. + + ptr paper tape reader + ptp paper tape punch + + 13-May-16 RMS Lengthened wait time for DCC BASIC timing error + 28-Mar-15 RMS Revised to use sim_printf + 04-Jul-07 BKR added PTR and PTP device DISABLE capability, + added 7B/8B support PTR and PTP (default is 8B), + DEV_SET/CLR macros now used, + PTR and PTP can now be DISABLED + 25-Apr-03 RMS Revised for extended file support + 03-Oct-02 RMS Added DIBs + 30-May-02 RMS Widened POS to 32b + 29-Nov-01 RMS Added read only unit support + + +Notes: + - data masked to 7- or 8- bits, based on 7B or 8B, default is 8-bits + - register TIME is the delay between character read or write operations + - register POS show the number of characters read from or sent to the PTR or PTP + - register STOP_IOE determines return value issued if output to unattached PTR or PTP is attempted +*/ + +#include "nova_defs.h" + +extern int32 int_req, dev_busy, dev_done, dev_disable ; +extern int32 SR ; + +extern t_stat cpu_boot(int32 unitno, DEVICE * dptr ) ; + + +int32 ptr_stopioe = 0, ptp_stopioe = 0; /* stop on error */ + +int32 ptr (int32 pulse, int32 code, int32 AC); +int32 ptp (int32 pulse, int32 code, int32 AC); +t_stat ptr_svc (UNIT *uptr); +t_stat ptp_svc (UNIT *uptr); +t_stat ptr_reset (DEVICE *dptr); +t_stat ptp_reset (DEVICE *dptr); +t_stat ptr_boot (int32 unitno, DEVICE *dptr); + + +/* 7 or 8 bit data mask support for either device */ + +#define UNIT_V_8B (UNIT_V_UF + 0) /* 8b output */ +#define UNIT_8B (1 << UNIT_V_8B) + + +/* PTR data structures + + ptr_dev PTR device descriptor + ptr_unit PTR unit descriptor + ptr_reg PTR register list +*/ + +DIB ptr_dib = { DEV_PTR, INT_PTR, PI_PTR, &ptr }; + +UNIT ptr_unit = { /* 2007-May-30, bkr */ + UDATA (&ptr_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_ROABLE+UNIT_8B, 0), 300 + }; + +REG ptr_reg[] = { + { ORDATA (BUF, ptr_unit.buf, 8) }, + { FLDATA (BUSY, dev_busy, INT_V_PTR) }, + { FLDATA (DONE, dev_done, INT_V_PTR) }, + { FLDATA (DISABLE, dev_disable, INT_V_PTR) }, + { FLDATA (INT, int_req, INT_V_PTR) }, + { DRDATA (POS, ptr_unit.pos, T_ADDR_W), PV_LEFT }, + { DRDATA (TIME, ptr_unit.wait, 24), PV_LEFT }, + { FLDATA (STOP_IOE, ptr_stopioe, 0) }, + { NULL } + }; + +MTAB ptr_mod[] = /* 2007-May-30, bkr */ + { + { UNIT_8B, 0, "7b", "7B", NULL }, + { UNIT_8B, UNIT_8B, "8b", "8B", NULL }, + { 0, 0, NULL, NULL, NULL } + } ; + +DEVICE ptr_dev = { + "PTR", &ptr_unit, ptr_reg, ptr_mod /* 2007-May-30, bkr */, + 1, 10, 31, 1, 8, 8, + NULL, NULL, &ptr_reset, + &ptr_boot, NULL, NULL, + &ptr_dib, DEV_DISABLE /* 2007-May-30, bkr */ + }; + +/* PTP data structures + + ptp_dev PTP device descriptor + ptp_unit PTP unit descriptor + ptp_reg PTP register list +*/ + +DIB ptp_dib = { DEV_PTP, INT_PTP, PI_PTP, &ptp }; + +UNIT ptp_unit = + { + UDATA (&ptp_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_8B, 0), SERIAL_OUT_WAIT + }; + +REG ptp_reg[] = { + { ORDATA (BUF, ptp_unit.buf, 8) }, + { FLDATA (BUSY, dev_busy, INT_V_PTP) }, + { FLDATA (DONE, dev_done, INT_V_PTP) }, + { FLDATA (DISABLE, dev_disable, INT_V_PTP) }, + { FLDATA (INT, int_req, INT_V_PTP) }, + { DRDATA (POS, ptp_unit.pos, T_ADDR_W), PV_LEFT }, + { DRDATA (TIME, ptp_unit.wait, 24), PV_LEFT }, + { FLDATA (STOP_IOE, ptp_stopioe, 0) }, + { NULL } + }; + +MTAB ptp_mod[] = + { + { UNIT_8B, 0, "7b", "7B", NULL }, + { UNIT_8B, UNIT_8B, "8b", "8B", NULL }, + { 0, 0, NULL, NULL, NULL } + } ; + +DEVICE ptp_dev = + { + "PTP", &ptp_unit, ptp_reg, ptp_mod /* 2007-May-30, bkr */, + 1, 10, 31, 1, 8, 8, + NULL, NULL, &ptp_reset, + NULL, NULL, NULL, + &ptp_dib, DEV_DISABLE /* 2007-May-30, bkr */ + }; + + +/* Paper tape reader: IOT routine */ + +int32 ptr (int32 pulse, int32 code, int32 AC) +{ +int32 iodata; + +iodata = (code == ioDIA)? + ptr_unit.buf & 0377 + : 0; +switch (pulse) + { /* decode IR<8:9> */ + case iopS: /* start */ + DEV_SET_BUSY( INT_PTR ) ; + DEV_CLR_DONE( INT_PTR ) ; + DEV_UPDATE_INTR ; + sim_activate (&ptr_unit, ptr_unit.wait); /* activate unit */ + break; + + case iopC: /* clear */ + DEV_CLR_BUSY( INT_PTR ) ; + DEV_CLR_DONE( INT_PTR ) ; + DEV_UPDATE_INTR ; + sim_cancel (&ptr_unit); /* deactivate unit */ + break; + } /* end switch */ + +return iodata; +} + + +/* Unit service */ + +t_stat ptr_svc (UNIT *uptr) +{ +int32 temp; + +if ((ptr_unit.flags & UNIT_ATT) == 0) /* attached? */ + return IORETURN (ptr_stopioe, SCPE_UNATT); +if ((temp = getc (ptr_unit.fileref)) == EOF) { /* end of file? */ + if (feof (ptr_unit.fileref)) { + if (ptr_stopioe) + sim_printf ("PTR end of file\n"); + else return SCPE_OK; + } + else sim_perror ("PTR I/O error"); + clearerr (ptr_unit.fileref); + return SCPE_IOERR; + } + +DEV_CLR_BUSY( INT_PTR ) ; +DEV_SET_DONE( INT_PTR ) ; +DEV_UPDATE_INTR ; +ptr_unit.buf = temp & ((ptr_unit.flags & UNIT_8B)? 0377: 0177); +++(ptr_unit.pos); +return SCPE_OK; +} + + +/* Reset routine */ + +t_stat ptr_reset (DEVICE *dptr) +{ +ptr_unit.buf = 0; /* */ +DEV_CLR_BUSY( INT_PTR ) ; +DEV_CLR_DONE( INT_PTR ) ; +DEV_UPDATE_INTR ; +sim_cancel (&ptr_unit); /* deactivate unit */ +return SCPE_OK; +} + + +/* Boot routine */ + +t_stat ptr_boot (int32 unitno, DEVICE *dptr) +{ +ptr_reset( dptr ) ; +/* set position to 0? */ +cpu_boot( unitno, dptr ) ; +SR = /* low-speed: no high-order bit set */ DEV_PTR ; +return ( SCPE_OK ); +} /* end of 'ptr_boot' */ + + + + + +/* Paper tape punch: IOT routine */ + +int32 ptp (int32 pulse, int32 code, int32 AC) +{ +if (code == ioDOA) + ptp_unit.buf = AC & 0377; + +switch (pulse) + { /* decode IR<8:9> */ + case iopS: /* start */ + DEV_SET_BUSY( INT_PTP ) ; + DEV_CLR_DONE( INT_PTP ) ; + DEV_UPDATE_INTR ; + sim_activate (&ptp_unit, ptp_unit.wait); /* activate unit */ + break; + + case iopC: /* clear */ + DEV_CLR_BUSY( INT_PTP ) ; + DEV_CLR_DONE( INT_PTP ) ; + DEV_UPDATE_INTR ; + sim_cancel (&ptp_unit); /* deactivate unit */ + break; + } /* end switch */ + +return 0; +} + + +/* Unit service */ + +t_stat ptp_svc (UNIT *uptr) +{ +DEV_CLR_BUSY( INT_PTP ) ; +DEV_SET_DONE( INT_PTP ) ; +DEV_UPDATE_INTR ; +if ((ptp_unit.flags & UNIT_ATT) == 0) /* attached? */ + return IORETURN (ptp_stopioe, SCPE_UNATT); +if (putc ((ptp_unit.buf & ((ptp_unit.flags & UNIT_8B)? 0377: 0177)), ptp_unit.fileref) == EOF) { + sim_perror ("PTP I/O error"); + clearerr (ptp_unit.fileref); + return SCPE_IOERR; + } +++(ptp_unit.pos); +return SCPE_OK; +} + + +/* Reset routine */ + +t_stat ptp_reset (DEVICE *dptr) +{ +ptp_unit.buf = 0; /* */ +DEV_CLR_BUSY( INT_PTP ) ; +DEV_CLR_DONE( INT_PTP ) ; +DEV_UPDATE_INTR ; +sim_cancel (&ptp_unit); /* deactivate unit */ +return SCPE_OK; +} diff --git a/NOVA/nova_qty.c b/NOVA/nova_qty.c index 5e03e74a..cbea3e6f 100644 --- a/NOVA/nova_qty.c +++ b/NOVA/nova_qty.c @@ -109,9 +109,9 @@ extern int32 int_req, dev_busy, dev_done, dev_disable ; extern int32 tmxr_poll ; /* calibrated delay */ -t_stat qty_setnl ( UNIT * uptr, int32 val, char * cptr, void * desc ) ; +t_stat qty_setnl ( UNIT * uptr, int32 val, CONST char * cptr, void * desc ) ; -t_stat qty_attach ( UNIT * uptr, char * cptr ) ; +t_stat qty_attach ( UNIT * uptr, CONST char * cptr ) ; t_stat qty_detach ( UNIT * uptr ) ; t_stat qty_reset ( DEVICE * dptr ) ; t_stat qty_svc ( UNIT * uptr ) ; @@ -121,7 +121,7 @@ t_stat alm_reset ( DEVICE * dptr ) ; t_stat alm_svc ( UNIT * uptr ) ; int32 alm ( int32 pulse, int32 code, int32 AC ) ; -DEVICE alm_dev ; +extern DEVICE alm_dev ; #define QTY_MAX 64 /* max number of QTY lines - hardware */ @@ -473,7 +473,7 @@ int qty_update_status( DIB * dibp, TMXR * tmxr_desc ) /* qty_attach */ /*--------------------------------------------------------------*/ -t_stat qty_attach( UNIT * unitp, char * cptr ) +t_stat qty_attach( UNIT * unitp, CONST char * cptr ) { t_stat r ; int a ; @@ -751,7 +751,7 @@ int32 qty( int32 pulse, int32 code, int32 AC ) /* qty_setnl */ /*--------------------------------------------------------------*/ -t_stat qty_setnl( UNIT * uptr, int32 val, char * cptr, void * desc ) +t_stat qty_setnl( UNIT * uptr, int32 val, CONST char * cptr, void * desc ) { int32 newln, i, t ; diff --git a/NOVA/nova_sys.c b/NOVA/nova_sys.c index 87a23522..4c19f516 100644 --- a/NOVA/nova_sys.c +++ b/NOVA/nova_sys.c @@ -174,7 +174,7 @@ internal state machine: 8 process 'ignore' (error) block */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 data, csum, count, state, i; int32 origin; @@ -861,7 +861,7 @@ return SCPE_ARG; #define A_SI 020 /* sign seen */ #define A_MI 040 /* - seen */ -char *get_addr (char *cptr, t_addr addr, t_bool ext, int32 cflag, int32 *val) +CONST char *get_addr (CONST char *cptr, t_addr addr, t_bool ext, int32 cflag, int32 *val) { int32 d, x, pflag; t_stat r; @@ -963,7 +963,7 @@ return cptr; NULL if error */ -char *get_2reg (char *cptr, char term, int32 *val) +CONST char *get_2reg (CONST char *cptr, char term, int32 *val) { char gbuf[CBUFSIZE]; t_stat r; @@ -991,7 +991,7 @@ return cptr; status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 cflag, d, i, j, amd[3]; t_stat r, rtn; diff --git a/NOVA/nova_tt.c b/NOVA/nova_tt.c index 4c4acc81..5d362833 100644 --- a/NOVA/nova_tt.c +++ b/NOVA/nova_tt.c @@ -61,8 +61,8 @@ t_stat tti_svc (UNIT *uptr); t_stat tto_svc (UNIT *uptr); t_stat tti_reset (DEVICE *dptr); t_stat tto_reset (DEVICE *dptr); -t_stat ttx_setmod (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ttx_setpar (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat ttx_setmod (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ttx_setpar (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* TTI data structures @@ -261,14 +261,14 @@ sim_cancel (&tto_unit); /* deactivate unit */ return SCPE_OK; } -t_stat ttx_setmod (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttx_setmod (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { tti_unit.flags = (tti_unit.flags & ~UNIT_DASHER) | val; tto_unit.flags = (tto_unit.flags & ~UNIT_DASHER) | val; return SCPE_OK; } -t_stat ttx_setpar (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttx_setpar (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { tti_unit.flags = (tti_unit.flags & ~TT_PAR) | val; tto_unit.flags = (tto_unit.flags & ~TT_PAR) | val; diff --git a/NOVA/nova_tt1.c b/NOVA/nova_tt1.c index 5cb969b8..ff51e927 100644 --- a/NOVA/nova_tt1.c +++ b/NOVA/nova_tt1.c @@ -54,15 +54,14 @@ extern int32 tmxr_poll; /* calibrated poll */ TMLN tt1_ldsc = { 0 }; /* line descriptors */ TMXR tt_desc = { 1, 0, 0, &tt1_ldsc }; /* mux descriptor */ -DEVICE tti1_dev, tto1_dev; int32 tti1 (int32 pulse, int32 code, int32 AC); int32 tto1 (int32 pulse, int32 code, int32 AC); t_stat tti1_svc (UNIT *uptr); t_stat tto1_svc (UNIT *uptr); t_stat tti1_reset (DEVICE *dptr); t_stat tto1_reset (DEVICE *dptr); -t_stat ttx1_setmod (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat tti1_attach (UNIT *uptr, char *cptr); +t_stat ttx1_setmod (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat tti1_attach (UNIT *uptr, CONST char *cptr); t_stat tti1_detach (UNIT *uptr); void ttx1_enbdis (int32 dis); @@ -289,7 +288,7 @@ sim_cancel (&tto1_unit); /* deactivate unit */ return SCPE_OK; } -t_stat ttx1_setmod (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttx1_setmod (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { tti1_unit.flags = (tti1_unit.flags & ~UNIT_DASHER) | val; tto1_unit.flags = (tto1_unit.flags & ~UNIT_DASHER) | val; @@ -298,7 +297,7 @@ return SCPE_OK; /* Attach routine */ -t_stat tti1_attach (UNIT *uptr, char *cptr) +t_stat tti1_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/PDP1/pdp1_cpu.c b/PDP1/pdp1_cpu.c index 38ff0fca..2a8eea73 100644 --- a/PDP1/pdp1_cpu.c +++ b/PDP1/pdp1_cpu.c @@ -340,10 +340,10 @@ InstHistory *hst = NULL; /* inst history */ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_1d (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_1d (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat Ea (int32 IR); t_stat Ea_ch (int32 IR, int32 *byte_num); int32 inc_bp (int32 bp); @@ -1523,7 +1523,7 @@ return SCPE_OK; /* Device set/show SBS level */ -t_stat dev_set_sbs (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dev_set_sbs (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 *lvl = (int32 *) desc; int32 newlvl; @@ -1538,9 +1538,9 @@ if (r != SCPE_OK) return SCPE_OK; } -t_stat dev_show_sbs (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dev_show_sbs (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { -int32 *lvl = (int32 *) desc; +const int32 *lvl = (const int32 *) desc; if (lvl == NULL) return SCPE_IERR; @@ -1602,7 +1602,7 @@ return SCPE_OK; /* Change memory size */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -1621,7 +1621,7 @@ return SCPE_OK; /* Set PDP-1D */ -t_stat cpu_set_1d (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_1d (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uptr->flags |= UNIT_SBS|UNIT_MDV; return SCPE_OK; @@ -1629,7 +1629,7 @@ return SCPE_OK; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -1660,10 +1660,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 ov, pf, op, k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_stat r; t_value sim_eval; InstHistory *h; diff --git a/PDP1/pdp1_dcs.c b/PDP1/pdp1_dcs.c index d133f984..6db6ee3e 100644 --- a/PDP1/pdp1_dcs.c +++ b/PDP1/pdp1_dcs.c @@ -55,9 +55,9 @@ TMXR dcs_desc = { DCS_LINES, 0, 0, dcs_ldsc }; /* mux descriptor */ t_stat dcsi_svc (UNIT *uptr); t_stat dcso_svc (UNIT *uptr); t_stat dcs_reset (DEVICE *dptr); -t_stat dcs_attach (UNIT *uptr, char *cptr); +t_stat dcs_attach (UNIT *uptr, CONST char *cptr); t_stat dcs_detach (UNIT *uptr); -t_stat dcs_vlines (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat dcs_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void dcs_reset_ln (int32 ln); void dcs_scan_next (t_bool unlk); @@ -341,7 +341,7 @@ return SCPE_OK; /* Attach master unit */ -t_stat dcs_attach (UNIT *uptr, char *cptr) +t_stat dcs_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -368,7 +368,7 @@ return r; /* Change number of lines */ -t_stat dcs_vlines (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dcs_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; diff --git a/PDP1/pdp1_defs.h b/PDP1/pdp1_defs.h index 136d4651..8b8d6653 100644 --- a/PDP1/pdp1_defs.h +++ b/PDP1/pdp1_defs.h @@ -197,7 +197,8 @@ /* Device routines */ t_stat dev_req_int (int32 lvl); -t_stat dev_set_sbs (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dev_show_sbs (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat dev_set_sbs (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dev_show_sbs (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern const int32 sc_map[512]; #endif diff --git a/PDP1/pdp1_drm.c b/PDP1/pdp1_drm.c index 415e27e6..c8ad4de1 100644 --- a/PDP1/pdp1_drm.c +++ b/PDP1/pdp1_drm.c @@ -327,7 +327,7 @@ return SCPE_OK; t_stat drp_svc (UNIT *uptr) { uint32 i, lim; -uint32 *fbuf = uptr->filebuf; +uint32 *fbuf = (uint32 *)uptr->filebuf; if ((uptr->flags & UNIT_BUF) == 0) { /* not buf? abort */ drp_err = 1; /* set error */ diff --git a/PDP1/pdp1_dt.c b/PDP1/pdp1_dt.c index 2ed66893..ce01262d 100644 --- a/PDP1/pdp1_dt.c +++ b/PDP1/pdp1_dt.c @@ -268,7 +268,7 @@ static const int32 map_unit[16] = { /* Type 550 unit map */ t_stat dt_svc (UNIT *uptr); t_stat dt_reset (DEVICE *dptr); -t_stat dt_attach (UNIT *uptr, char *cptr); +t_stat dt_attach (UNIT *uptr, CONST char *cptr); t_stat dt_detach (UNIT *uptr); void dt_deselect (int32 oldf); void dt_newsa (int32 newf); @@ -980,7 +980,7 @@ return 0; If 18b/36b, read data into buffer */ -t_stat dt_attach (UNIT *uptr, char *cptr) +t_stat dt_attach (UNIT *uptr, CONST char *cptr) { uint16 pdp8b[D8_NBSIZE]; uint16 pdp11b[D18_BSIZE]; diff --git a/PDP1/pdp1_stddev.c b/PDP1/pdp1_stddev.c index 52728657..57ceab1b 100644 --- a/PDP1/pdp1_stddev.c +++ b/PDP1/pdp1_stddev.c @@ -94,7 +94,7 @@ t_stat ptr_reset (DEVICE *dptr); t_stat ptp_reset (DEVICE *dptr); t_stat tty_reset (DEVICE *dptr); t_stat ptr_boot (int32 unitno, DEVICE *dptr); -t_stat ptr_attach (UNIT *uptr, char *cptr); +t_stat ptr_attach (UNIT *uptr, CONST char *cptr); /* Character translation tables */ @@ -434,7 +434,7 @@ return SCPE_OK; /* Attach routine */ -t_stat ptr_attach (UNIT *uptr, char *cptr) +t_stat ptr_attach (UNIT *uptr, CONST char *cptr) { ptr_leader = PTR_LEADER; /* set up leader */ return attach_unit (uptr, cptr); diff --git a/PDP1/pdp1_sys.c b/PDP1/pdp1_sys.c index b9dc6a60..b8ad5088 100644 --- a/PDP1/pdp1_sys.c +++ b/PDP1/pdp1_sys.c @@ -67,7 +67,6 @@ extern REG cpu_reg[]; extern int32 M[]; extern int32 PC; extern int32 ascii_to_fiodec[], fiodec_to_ascii[]; -extern int32 sc_map[]; /* SCP data structures and interface routines @@ -199,7 +198,7 @@ for (;;) { return SCPE_OK; /* done */ } -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { t_stat sta; int32 fld; @@ -420,13 +419,13 @@ static const int32 opc_val[] = { #define fputs(_s,f) Fprintf(f,"%s",_s) #define fputc(_c,f) Fprintf(f,"%c",_c) -int32 fprint_opr (FILE *of, int32 inst, int32 class, int32 sp) +int32 fprint_opr (FILE *of, int32 inst, int32 Class, int32 sp) { int32 i, j; for (i = 0; opc_val[i] >= 0; i++) { /* loop thru ops */ j = (opc_val[i] >> I_V_FL) & I_M_FL; /* get class */ - if ((j == class) && (opc_val[i] & inst)) { /* same class? */ + if ((j == Class) && (opc_val[i] & inst)) { /* same class? */ inst = inst & ~opc_val[i]; /* mask bit set? */ fprintf (of, (sp? " %s": "%s"), opcode[i]); sp = 1; @@ -580,21 +579,18 @@ return get_uint (cptr, 8, DMASK, status); status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 cflag, d, i, j, k, sign; t_stat r; static int32 sc_enc[10] = { 0, 01, 03, 07, 017, 037, 077, 0177, 0377, 0777 }; -char gbuf[CBUFSIZE]; +char gbuf[CBUFSIZE], cbuf[2*CBUFSIZE]; cflag = (uptr == NULL) || (uptr == &cpu_unit); while (isspace (*cptr)) cptr++; -for (i = 1; (i < 3) && (cptr[i] != 0); i++) { - if (cptr[i] == 0) { - for (j = i + 1; j <= 3; j++) - cptr[j] = 0; - } - } +memset (cbuf, '\0', sizeof(cbuf)); +strncpy (cbuf, cptr, sizeof(cbuf)-4); +cptr = cbuf; if ((sw & SWMASK ('A')) || ((*cptr == '\'') && cptr++)) { /* ASCII char? */ if (cptr[0] == 0) /* must have 1 char */ return SCPE_ARG; diff --git a/PDP10/pdp10_cpu.c b/PDP10/pdp10_cpu.c index 40992db2..3ea20fe6 100644 --- a/PDP10/pdp10_cpu.c +++ b/PDP10/pdp10_cpu.c @@ -210,10 +210,10 @@ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); t_bool cpu_is_pc_a_subroutine_call (t_addr **ret_addrs); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_serial (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_serial (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_serial (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_serial (FILE *st, UNIT *uptr, int32 val, CONST void *desc); d10 adjsp (d10 val, a10 ea); void ibp (a10 ea, int32 pflgs); @@ -253,7 +253,7 @@ int32 test_int (void); void set_ac_display (d10 *acbase); extern t_stat build_dib_tab (void); -extern t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern d10 Read (a10 ea, int32 prv); /* read, read check */ extern d10 ReadM (a10 ea, int32 prv); /* read, write check */ extern d10 ReadE (a10 ea); /* read, exec */ @@ -328,7 +328,7 @@ extern t_bool wrpcst (a10 ea, int32 prv); extern t_bool spm (a10 ea, int32 prv); extern t_bool lpmr (a10 ea, int32 prv); extern int32 pi_ub_vec (int32 lvl, int32 *uba); -extern t_stat tim_set_mod (UNIT *uptr, int32 val, char *cptr, void *desc); +extern t_stat tim_set_mod (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* CPU data structures @@ -2505,7 +2505,7 @@ return; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -2536,10 +2536,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_stat r; t_value sim_eval; InstHistory *h; @@ -2576,7 +2576,7 @@ return SCPE_OK; /* Set serial */ -t_stat cpu_set_serial (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_serial (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 lnt; t_stat r; @@ -2594,7 +2594,7 @@ return SCPE_OK; /* Show serial */ -t_stat cpu_show_serial (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_serial (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "Serial: " ); if( (apr_serial == -1) || (!Q_ITS && apr_serial < 4096) ) { diff --git a/PDP10/pdp10_defs.h b/PDP10/pdp10_defs.h index d30a8808..fa37e24b 100644 --- a/PDP10/pdp10_defs.h +++ b/PDP10/pdp10_defs.h @@ -766,20 +766,24 @@ typedef struct pdp_dib DIB; int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf); int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf); int32 Map_ReadW18 (uint32 ba, int32 bc, uint32 *buf); -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf); -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf); -int32 Map_WriteW18 (uint32 ba, int32 bc, uint32 *buf); +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf); +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf); +int32 Map_WriteW18 (uint32 ba, int32 bc, const uint32 *buf); void uba_debug_dma_in (uint32 ba, a10 pa_start, a10 pa_end); void uba_debug_dma_out (uint32 ba, a10 pa_start, a10 pa_end); void uba_debug_dma_nxm (const char *msg, a10 pa10, uint32 ba, int32 bc); -t_stat set_addr (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat set_addr_flt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_addr (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat set_vec (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_vec (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat show_vec_mux (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_addr (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat set_addr_flt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_addr (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat set_vec (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_vec (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat show_vec_mux (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat auto_config (const char *name, int32 num); +extern d10 *ac_cur; /* current AC block */ +extern int32 flags; /* flags */ +extern const int32 pi_l2bit[8]; +extern const d10 bytemask[64]; #endif diff --git a/PDP10/pdp10_fe.c b/PDP10/pdp10_fe.c index 487493de..603b2877 100644 --- a/PDP10/pdp10_fe.c +++ b/PDP10/pdp10_fe.c @@ -49,7 +49,7 @@ t_stat fei_svc (UNIT *uptr); t_stat feo_svc (UNIT *uptr); static t_stat kaf_svc (UNIT *uptr); t_stat fe_reset (DEVICE *dptr); -t_stat fe_stop_os (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat fe_stop_os (UNIT *uptr, int32 val, CONST char *cptr, void *desc); a10 fe_xct = 0; uint32 fe_bootrh = 0; int32 fe_bootunit = -1; @@ -307,7 +307,7 @@ return SCPE_OK; /* Stop operating system */ -t_stat fe_stop_os (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat fe_stop_os (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { M[FE_SWITCH] = IOBA_RP; /* tell OS to stop */ return SCPE_OK; diff --git a/PDP10/pdp10_ksio.c b/PDP10/pdp10_ksio.c index 229ee0af..5b911b33 100644 --- a/PDP10/pdp10_ksio.c +++ b/PDP10/pdp10_ksio.c @@ -150,10 +150,7 @@ static const int32 ubabr54[UBANUM] = { #define M_WORD1 (~INT64_C (0000000777777)) /* Clear word 1 + XX */ extern d10 *M; /* main memory */ -extern d10 *ac_cur; extern d10 pager_word; -extern int32 flags; -extern const int32 pi_l2bit[8]; extern UNIT cpu_unit; extern jmp_buf save_env; @@ -1036,7 +1033,7 @@ return 0; /* Byte-mode writes */ -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf) +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf) { uint32 ea, ofs, cp, np; int32 seg, ubm = 0; @@ -1183,7 +1180,7 @@ return 0; /* Word mode writes; 16-bit data */ -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf) +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf) { uint32 ea, cp, np; int32 seg, ubm = 0; @@ -1295,7 +1292,7 @@ return 0; /* Word mode writes; 18-bit data */ -int32 Map_WriteW18 (uint32 ba, int32 bc, uint32 *buf) +int32 Map_WriteW18 (uint32 ba, int32 bc, const uint32 *buf) { uint32 ea, cp, np; int32 seg, ubm = 0; @@ -1404,7 +1401,7 @@ return 0; /* Word mode writes; 36-bit data */ -int32 Map_WriteW36 (uint32 ba, int32 bc, a10 *buf) +int32 Map_WriteW36 (uint32 ba, int32 bc, const a10 *buf) { uint32 ea, cp, np; int32 seg, ubm = 0; @@ -1699,7 +1696,7 @@ return SCPE_OK; /* Change device address */ -t_stat set_addr (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_addr (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -1730,7 +1727,7 @@ return SCPE_OK; /* Show device address */ -t_stat show_addr (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_addr (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; DIB *dibp; @@ -1756,7 +1753,7 @@ return SCPE_OK; /* Change device vector */ -t_stat set_vec (UNIT *uptr, int32 arg, char *cptr, void *desc) +t_stat set_vec (UNIT *uptr, int32 arg, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -1785,7 +1782,7 @@ return SCPE_OK; /* Show device vector */ -t_stat show_vec (FILE *st, UNIT *uptr, int32 arg, void *desc) +t_stat show_vec (FILE *st, UNIT *uptr, int32 arg, CONST void *desc) { DEVICE *dptr; DIB *dibp; @@ -1817,9 +1814,9 @@ return SCPE_OK; /* Show vector for terminal multiplexor */ -t_stat show_vec_mux (FILE *st, UNIT *uptr, int32 arg, void *desc) +t_stat show_vec_mux (FILE *st, UNIT *uptr, int32 arg, CONST void *desc) { -TMXR *mp = (TMXR *) desc; +const TMXR *mp = (const TMXR *) desc; if ((mp == NULL) || (arg == 0)) return SCPE_IERR; @@ -1904,7 +1901,7 @@ return SCPE_OK; /* Show dib_tab */ -t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 i, j, done = 0; DEVICE *dptr; @@ -1976,7 +1973,7 @@ return SCPE_OK; typedef struct { - char *dnam[AUTO_MAXC]; + const char *dnam[AUTO_MAXC]; int32 numc; int32 numv; uint32 amod; @@ -2281,7 +2278,7 @@ return SCPE_OK; /* Set address floating */ -t_stat set_addr_flt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_addr_flt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; diff --git a/PDP10/pdp10_lp20.c b/PDP10/pdp10_lp20.c index 6e2e0b28..02e9d47c 100644 --- a/PDP10/pdp10_lp20.c +++ b/PDP10/pdp10_lp20.c @@ -193,7 +193,6 @@ static int32 lpi = DEFAULT_LPI; /* Printer's LPI. */ static int16 txram[TX_SIZE] = { 0 }; /* translation RAM */ static int16 davfu[DV_SIZE] = { 0 }; /* DAVFU */ -DEVICE lp20_dev; static t_stat lp20_rd (int32 *data, int32 pa, int32 access); static t_stat lp20_wr (int32 data, int32 pa, int32 access); static int32 lp20_inta (void); @@ -202,15 +201,15 @@ static t_stat idle_svc (UNIT *uptr); static void set_flush_timer (UNIT *uptr); static t_stat lp20_reset (DEVICE *dptr); static t_stat lp20_init (DEVICE *dptr); -static t_stat lp20_attach (UNIT *uptr, char *ptr); +static t_stat lp20_attach (UNIT *uptr, CONST char *ptr); static t_stat lp20_detach (UNIT *uptr); -static t_stat lp20_set_lpi (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat lp20_show_lpi (FILE *st, UNIT *up, int32 v, void *dp); -static t_stat lp20_set_vfu_type (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat lp20_show_vfu_type (FILE *st, UNIT *up, int32 v, void *dp); -static t_stat lp20_show_vfu (FILE *st, UNIT *up, int32 v, void *dp); -static t_stat lp20_set_tof (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat lp20_clear_vfu (UNIT *uptr, int32 val, char *cptr, void *desc); +static t_stat lp20_set_lpi (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat lp20_show_lpi (FILE *st, UNIT *up, int32 v, CONST void *dp); +static t_stat lp20_set_vfu_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat lp20_show_vfu_type (FILE *st, UNIT *up, int32 v, CONST void *dp); +static t_stat lp20_show_vfu (FILE *st, UNIT *up, int32 v, CONST void *dp); +static t_stat lp20_set_tof (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat lp20_clear_vfu (UNIT *uptr, int32 val, CONST char *cptr, void *desc); static t_bool lp20_print (int32 c); static t_bool lp20_adv (int32 c, t_bool advdvu); static t_bool lp20_davfu (int32 c); @@ -341,14 +340,9 @@ static DIB lp20_dib = { * product'. It's not implemented in this emulation. */ -static UNIT lp20_idle; -static UNIT lp20_unit = { - UDATA (&lp20_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_TEXT, 0), SERIAL_OUT_WAIT, - 0, 0, 0, 0, &lp20_idle, - }; -static UNIT lp20_idle = { - UDATA (&idle_svc, UNIT_DIS, 0), 1000000, LP20_IDLE_TIME, - 0, 0, 0, &lp20_unit, +static UNIT lp20_unit[] = { + {UDATA (&lp20_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_TEXT, 0), SERIAL_OUT_WAIT}, + {UDATA (&idle_svc, UNIT_DIS, 0), 1000000, LP20_IDLE_TIME} }; static REG lp20_reg[] = { @@ -371,8 +365,8 @@ static REG lp20_reg[] = { { FLDATAD (ERR, lpcsa, CSR_V_ERR, "error flag") }, { FLDATAD (DONE, lpcsa, CSR_V_DONE, "done flag") }, { FLDATAD (IE, lpcsa, CSR_V_IE, "interrupt enable flag") }, - { DRDATAD (POS, lp20_unit.pos, T_ADDR_W, "position in output file"), PV_LEFT }, - { DRDATAD (TIME, lp20_unit.wait, 24, "response time"), PV_LEFT }, + { DRDATAD (POS, lp20_unit[0].pos, T_ADDR_W, "position in output file"), PV_LEFT }, + { DRDATAD (TIME, lp20_unit[0].wait, 24, "response time"), PV_LEFT }, { FLDATAD (STOP_IOE, lp20_stopioe, 0, "stop on I/O error") }, { BRDATAD (TXRAM, txram, 8, 13, TX_SIZE, "translation RAM") }, { BRDATAD (DAVFU, davfu, 8, 12, DV_SIZE, "vertical forms unit array") }, @@ -401,8 +395,8 @@ static MTAB lp20_mod[] = { }; DEVICE lp20_dev = { - "LP20", &lp20_unit, lp20_reg, lp20_mod, - 1, 10, 31, 1, 8, 8, + "LP20", lp20_unit, lp20_reg, lp20_mod, + 2, 10, 31, 1, 8, 8, NULL, NULL, &lp20_reset, NULL, &lp20_attach, &lp20_detach, &lp20_dib, DEV_DISABLE | DEV_UBUS, 0, @@ -484,7 +478,7 @@ switch ((pa >> 1) & 07) { /* case on PA<3:1> */ if (data & CSA_ECLR) { /* error clear? */ lpcsa = (lpcsa | CSA_DONE) & ~CSA_GO; /* set done, clr go */ lpcsb = lpcsb & ~CSB_ECLR; /* clear err */ - sim_cancel (&lp20_unit); /* cancel I/O */ + sim_cancel (lp20_unit); /* cancel I/O */ } if (data & CSA_INIT) /* init? */ lp20_init (&lp20_dev); @@ -493,10 +487,10 @@ switch ((pa >> 1) & 07) { /* case on PA<3:1> */ if (lpcsb & CSB_ERR) lpcsb = lpcsb | CSB_GOE; lpcsum = 0; /* clear checksum */ - sim_activate (&lp20_unit, lp20_unit.wait); + sim_activate (lp20_unit, lp20_unit->wait); } } - else sim_cancel (&lp20_unit); /* go clr, stop DMA */ + else sim_cancel (lp20_unit); /* go clr, stop DMA */ lpcsa = (lpcsa & ~CSA_RW) | (data & CSA_RW); if (dvld && (CSA_GETFNC (lpcsa) != FNC_DVU)) { /* DVU load aborted */ change_rdy (0, CSA_DVON); /* Mark DVU off-line and empty */ @@ -598,7 +592,7 @@ lpcsa = lpcsa & ~CSA_GO; ba = CSA_GETUAE (lpcsa) | lpba; fnc = CSA_GETFNC (lpcsa); tbc = 010000 - lpbc; -if (((fnc & FNC_INTERNAL) == 0) && ((lp20_unit.flags & UNIT_ATT) == 0)) { +if (((fnc & FNC_INTERNAL) == 0) && ((uptr->flags & UNIT_ATT) == 0)) { update_lpcs (CSA_ERR); return IORETURN (lp20_stopioe, SCPE_UNATT); } @@ -724,16 +718,16 @@ for (i = 0, cont = TRUE; (i < tbc) && cont; ba++, i++) { } /* end case function */ } /* end for */ if (lpcolc == 0) - set_flush_timer (&lp20_unit); + set_flush_timer (uptr); else - sim_cancel ((UNIT *)lp20_unit.up7); + sim_cancel (uptr+1); lpba = ba & 0177777; lpcsa = (lpcsa & ~CSA_UAE) | ((ba >> (16 - CSA_V_UAE)) & CSA_UAE); lpbc = (lpbc + i) & BC_MASK; if (lpbc) /* intr, but not done */ update_lpcs (CSA_MBZ); else update_lpcs (CSA_DONE); /* intr and done */ -if ((fnc == FNC_PR) && ferror (lp20_unit.fileref)) { +if ((fnc == FNC_PR) && ferror (uptr->fileref)) { sim_perror ("LP I/O error"); clearerr (uptr->fileref); return SCPE_IOERR; @@ -779,8 +773,8 @@ else { r = lp20_adv (1, TRUE); /* adv carriage */ } for (i = 0; i < rpt; i++) - fputc (lppdat, lp20_unit.fileref); -lp20_unit.pos = (t_addr)sim_ftell (lp20_unit.fileref); + fputc (lppdat, lp20_unit->fileref); +lp20_unit->pos = (t_addr)sim_ftell (lp20_unit->fileref); lpcolc = lpcolc + rpt; return r; } @@ -804,7 +798,7 @@ if (lpcsb & CSB_DVOF) lpcolc = 0; /* reset col cntr */ for (i = 0; i < cnt; i++) { /* print 'n' newlines; each can complete a page */ - fputc ('\n', lp20_unit.fileref); + fputc ('\n', lp20_unit->fileref); if (dvuadv) { /* update DAVFU ptr */ dvptr = (dvptr + cnt) % dvlnt; if (davfu[dvptr] & (1 << DV_TOF)) { /* at top of form? */ @@ -816,7 +810,7 @@ for (i = 0; i < cnt; i++) { /* print 'n' newlines; e } /* At TOF */ } /* update pointer */ } -lp20_unit.pos = (t_addr)sim_ftell (lp20_unit.fileref); +lp20_unit->pos = (t_addr)sim_ftell (lp20_unit->fileref); if (stoppc) /* Crossed one or more TOFs? */ return FALSE; @@ -840,8 +834,8 @@ for (i = 0; i < dvlnt; i++) { /* search DAVFU */ return lp20_adv (i + 1, FALSE); if (lpcolc) /* TOF, need newline? */ lp20_adv (1, FALSE); - fputc ('\f', lp20_unit.fileref); /* print form feed */ - lp20_unit.pos = (t_addr)sim_ftell (lp20_unit.fileref); + fputc ('\f', lp20_unit->fileref); /* print form feed */ + lp20_unit->pos = (t_addr)sim_ftell (lp20_unit->fileref); lppagc = (lppagc - 1) & PAGC_MASK; /* decr page cntr */ if (lppagc != 0) return TRUE; @@ -863,7 +857,7 @@ if (flg) /* set int req */ lp20_irq = 1; lpcsa = (lpcsa | flg) & ~(CSA_MBZ | CSA_ERR | CSA_ONL); lpcsb = (lpcsb | CSB_OFFL) & ~CSB_MBZ; -if (lp20_unit.flags & UNIT_ATT) { +if (lp20_unit->flags & UNIT_ATT) { lpcsa = lpcsa | CSA_ONL; lpcsb = lpcsb & ~CSB_OFFL; } @@ -884,7 +878,7 @@ static void change_rdy (int32 setrdy, int32 clrrdy) { int32 newcsa = (lpcsa | setrdy) & ~clrrdy; -if ((newcsa ^ lpcsa) & (CSA_ONL | CSA_DVON) && !sim_is_active (&lp20_unit)) { +if ((newcsa ^ lpcsa) & (CSA_ONL | CSA_DVON) && !sim_is_active (lp20_unit)) { lp20_irq |= 1; if (newcsa & CSA_IE) SET_INT(LP20); @@ -945,16 +939,16 @@ lpcsb = lpcsb & (CSB_OVFU | CSB_DVOF); lpba = lpbc = lppagc = lpcolc = 0; /* clear registers */ lprdat = lppdat = lpcbuf = lpcsum = 0; lp20_irq = 0; /* clear int req */ -sim_cancel (&lp20_unit); /* deactivate unit */ -if (sim_is_active ((UNIT *)lp20_unit.up7)) { - fflush (lp20_unit.fileref); - sim_cancel ((UNIT *)lp20_unit.up7); +sim_cancel (lp20_unit); /* deactivate unit */ +if (sim_is_active (lp20_unit+1)) { + fflush (lp20_unit->fileref); + sim_cancel (lp20_unit+1); } update_lpcs (0); /* update status */ return SCPE_OK; } -static t_stat lp20_attach (UNIT *uptr, char *cptr) +static t_stat lp20_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; @@ -975,7 +969,7 @@ if (lpcsa & CSA_DVON) { } if (lpcsa & CSA_ONL) /* just file chg? */ return reason; -if (sim_is_active (&lp20_unit)) /* busy? no int */ +if (sim_is_active (lp20_unit)) /* busy? no int */ update_lpcs (0); else update_lpcs (CSA_MBZ); /* interrupt */ return reason; @@ -987,12 +981,12 @@ t_stat reason; if (!(uptr->flags & UNIT_ATT)) /* attached? */ return SCPE_OK; -if (sim_is_active ((UNIT *)lp20_unit.up7)) { - fflush (lp20_unit.fileref); - sim_cancel ((UNIT *)lp20_unit.up7); +if (sim_is_active (lp20_unit+1)) { + fflush (lp20_unit->fileref); + sim_cancel (lp20_unit+1); } reason = detach_unit (uptr); -sim_cancel (&lp20_unit); +sim_cancel (lp20_unit); lpcsa = lpcsa & ~CSA_GO; update_lpcs (CSA_MBZ); return reason; @@ -1022,15 +1016,20 @@ fflush (uptr->fileref); return SCPE_OK; } -static t_stat lp20_set_vfu_type (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat lp20_set_vfu_type (UNIT *uptr, int32 val, CONST char *gptr, void *desc) { +char gbuf[CBUFSIZE], *cptr; char *fname, *cp; FILE *vfile; int sum = 0; -if (!cptr || !*cptr) +if (!gptr || !*gptr) return SCPE_ARG; +gbuf[sizeof(gbuf)-1] = '\0'; +strncpy (gbuf, gptr, sizeof(gbuf)-1); +cptr = gbuf; + fname = strchr (cptr, '='); if (fname) *fname++ = '\0'; @@ -1148,7 +1147,7 @@ fclose(vfile); return SCPE_FMT; } -static t_stat lp20_show_vfu_type (FILE *st, UNIT *up, int32 v, void *dp) +static t_stat lp20_show_vfu_type (FILE *st, UNIT *up, int32 v, CONST void *dp) { if (lpcsb & CSB_OVFU) fprintf (st, "optical VFU"); @@ -1163,7 +1162,7 @@ else return SCPE_OK; } -static t_stat lp20_set_lpi (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat lp20_set_lpi (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newlpi; @@ -1186,14 +1185,14 @@ lpi = newlpi; return SCPE_OK; } -static t_stat lp20_show_lpi (FILE *st, UNIT *up, int32 v, void *dp) +static t_stat lp20_show_lpi (FILE *st, UNIT *up, int32 v, CONST void *dp) { fprintf (st, "%u LPI", lpi); return SCPE_OK; } -static t_stat lp20_show_vfu (FILE *st, UNIT *up, int32 v, void *dp) +static t_stat lp20_show_vfu (FILE *st, UNIT *up, int32 v, CONST void *dp) { int l, c, sum; @@ -1231,7 +1230,7 @@ if (!(sum & (1 << DV_BOF))) { return SCPE_OK; } -static t_stat lp20_set_tof (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat lp20_set_tof (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 s_lpcsa = lpcsa; int32 s_lppagc = lppagc; @@ -1262,7 +1261,7 @@ while (value) { return even; } -static t_stat lp20_clear_vfu (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat lp20_clear_vfu (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int i; diff --git a/PDP10/pdp10_mdfp.c b/PDP10/pdp10_mdfp.c index eaeed1d4..ae5cae4d 100644 --- a/PDP10/pdp10_mdfp.c +++ b/PDP10/pdp10_mdfp.c @@ -154,8 +154,6 @@ typedef struct { /* unpacked fp number */ #define UNEG(x) ((~x) + 1) #define DUNEG(x) x.flo = UNEG (x.flo); x.fhi = ~x.fhi + (x.flo == 0) -extern d10 *ac_cur; /* current AC block */ -extern int32 flags; /* flags */ void mul (d10 a, d10 b, d10 *rs); void funpack (d10 h, d10 l, UFP *r, t_bool sgn); void fnorm (UFP *r, t_int64 rnd); diff --git a/PDP10/pdp10_pag.c b/PDP10/pdp10_pag.c index 8bf3b0a5..68ed0ef6 100644 --- a/PDP10/pdp10_pag.c +++ b/PDP10/pdp10_pag.c @@ -97,9 +97,8 @@ extern d10 *M; extern d10 acs[AC_NBLK * AC_NUM]; -extern d10 *ac_cur, *ac_prv, *last_pa; +extern d10 *ac_prv, *last_pa; extern a10 epta, upta; -extern int32 flags; extern d10 pager_word; extern int32 apr_flg; extern d10 ebr, ubr, hsb; diff --git a/PDP10/pdp10_rp.c b/PDP10/pdp10_rp.c index 906a3b33..40701b99 100644 --- a/PDP10/pdp10_rp.c +++ b/PDP10/pdp10_rp.c @@ -370,12 +370,12 @@ int32 rp_inta (void); t_stat rp_svc (UNIT *uptr); t_stat rp_reset (DEVICE *dptr); t_stat rp_boot (int32 unitno, DEVICE *dptr); -t_stat rp_attach (UNIT *uptr, char *cptr); +t_stat rp_attach (UNIT *uptr, CONST char *cptr); t_stat rp_detach (UNIT *uptr); void set_rper (int16 flag, int32 drv); void update_rpcs (int32 flags, int32 drv); void rp_go (int32 drv, int32 fnc); -t_stat rp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* RP data structures @@ -1150,7 +1150,7 @@ return SCPE_OK; /* Device attach */ -t_stat rp_attach (UNIT *uptr, char *cptr) +t_stat rp_attach (UNIT *uptr, CONST char *cptr) { int32 i, p; t_stat r; @@ -1203,7 +1203,7 @@ return detach_unit (uptr); /* Set size command validation routine */ -t_stat rp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 dtype = GET_DTYPE (val); diff --git a/PDP10/pdp10_sys.c b/PDP10/pdp10_sys.c index acdc47a0..6587ca82 100644 --- a/PDP10/pdp10_sys.c +++ b/PDP10/pdp10_sys.c @@ -344,7 +344,7 @@ return SCPE_OK; /* Master loader */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { d10 data; int32 wc, fmt; @@ -782,11 +782,11 @@ return SCPE_ARG; val = output value */ -t_value get_opnd (char *cptr, t_stat *status) +t_value get_opnd (CONST char *cptr, t_stat *status) { int32 sign = 0; t_value val, xr = 0, ind = 0; -const char *tptr; +CONST char *tptr; *status = SCPE_ARG; /* assume fail */ if (*cptr == '@') { @@ -804,14 +804,14 @@ if (val > 0777777) return 0; if (sign) val = (~val + 1) & 0777777; -cptr = (char *)tptr; +cptr = tptr; if (*cptr == '(') { cptr++; xr = strtotv (cptr, &tptr, 8); if ((cptr == tptr) || (*tptr != ')') || (xr > AC_NUM) || (xr == 0)) return 0; - cptr = (char *)++tptr; + cptr = ++tptr; } if (*cptr == 0) *status = SCPE_OK; @@ -830,20 +830,17 @@ return (ind | (xr << 18) | val); status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 i, j; t_value ac, dev; t_stat r; -char gbuf[CBUFSIZE]; +char gbuf[CBUFSIZE], cbuf[2*CBUFSIZE]; while (isspace (*cptr)) cptr++; -for (i = 0; i < 6; i++) { - if (cptr[i] == 0) { - for (j = i + 1; j <= 6; j++) cptr[j] = 0; - break; - } - } +memset (cbuf, '\0', sizeof(cbuf)); +strncpy (cbuf, cptr, sizeof(cbuf)-7); +cptr = cbuf; if ((sw & SWMASK ('A')) || ((*cptr == '\'') && cptr++)) { /* ASCII char? */ if (cptr[0] == 0) /* must have 1 char */ return SCPE_ARG; diff --git a/PDP10/pdp10_tim.c b/PDP10/pdp10_tim.c index 2a56f622..43bee3f0 100644 --- a/PDP10/pdp10_tim.c +++ b/PDP10/pdp10_tim.c @@ -145,7 +145,6 @@ extern d10 pcst; extern a10 pager_PC; extern int32 t20_idlelock; -DEVICE tim_dev; static t_stat tcu_rd (int32 *data, int32 PA, int32 access); static t_stat tim_svc (UNIT *uptr); static t_stat tim_reset (DEVICE *dptr); @@ -378,7 +377,7 @@ return SCPE_OK; /* Set timer parameters from CPU model */ -t_stat tim_set_mod (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tim_set_mod (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val & (UNIT_T20|UNIT_KLAD)) { clk_tps = TIM_TPS_T20; diff --git a/PDP10/pdp10_tu.c b/PDP10/pdp10_tu.c index d298c8b9..4b57d1df 100644 --- a/PDP10/pdp10_tu.c +++ b/PDP10/pdp10_tu.c @@ -328,7 +328,7 @@ int32 reg_in_fmtr1[32] = { /* rmr if write + go */ int32 fmt_test[16] = { /* fmt bytes/10 wd */ 5, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static char *tu_fname[CS1_N_FNC] = { +static const char *tu_fname[CS1_N_FNC] = { "NOP", "UNLD", "2", "REW", "FCLR", "5", "6", "7", "RIP", "11", "ERASE", "WREOF", "SPCF", "SPCR", "16", "17", "20", "21", "22", "23", "WRCHKF", "25", "26", "WRCHKR", @@ -341,7 +341,7 @@ t_stat tu_wr (int32 data, int32 PA, int32 access); int32 tu_inta (void); t_stat tu_svc (UNIT *uptr); t_stat tu_reset (DEVICE *dptr); -t_stat tu_attach (UNIT *uptr, char *cptr); +t_stat tu_attach (UNIT *uptr, CONST char *cptr); t_stat tu_detach (UNIT *uptr); t_stat tu_boot (int32 unitno, DEVICE *dptr); void tu_go (int32 drv); @@ -1179,7 +1179,7 @@ return SCPE_OK; /* Attach routine */ -t_stat tu_attach (UNIT *uptr, char *cptr) +t_stat tu_attach (UNIT *uptr, CONST char *cptr) { int32 drv = uptr - tu_dev.units; t_stat r; diff --git a/PDP10/pdp10_xtnd.c b/PDP10/pdp10_xtnd.c index f60a4512..78b3581e 100644 --- a/PDP10/pdp10_xtnd.c +++ b/PDP10/pdp10_xtnd.c @@ -138,9 +138,6 @@ #define ED_SKPN 0600 /* skip if N */ #define ED_SKPA 0700 /* skip always */ -extern d10 *ac_cur; /* current AC block */ -extern const d10 bytemask[64]; -extern int32 flags; extern int32 rlog; extern jmp_buf save_env; diff --git a/PDP11/pdp11_cis.c b/PDP11/pdp11_cis.c index b0ef550b..67d355a2 100644 --- a/PDP11/pdp11_cis.c +++ b/PDP11/pdp11_cis.c @@ -1371,11 +1371,11 @@ return cy; void SubDstr (DSTR *s1, DSTR *s2, DSTR *ds) { int32 i; -DSTR compl; +DSTR complX; for (i = 0; i < DSTRLNT; i++) - compl.val[i] = 0x99999999 - s1->val[i]; -AddDstr (&compl, s2, ds, 1); /* s1 + ~s2 + 1 */ + complX.val[i] = 0x99999999 - s1->val[i]; +AddDstr (&complX, s2, ds, 1); /* s1 + ~s2 + 1 */ return; } diff --git a/PDP11/pdp11_cpu.c b/PDP11/pdp11_cpu.c index 356f2ff4..b87f933b 100644 --- a/PDP11/pdp11_cpu.c +++ b/PDP11/pdp11_cpu.c @@ -316,9 +316,9 @@ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); t_bool cpu_is_pc_a_subroutine_call (t_addr **ret_addrs); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_show_virt (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_show_virt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); int32 GeteaB (int32 spec); int32 GeteaW (int32 spec); int32 relocR (int32 addr); @@ -347,9 +347,9 @@ extern void fp11 (int32 IR); extern t_stat cis11 (int32 IR); extern t_stat fis11 (int32 IR); extern t_stat build_dib_tab (void); -extern t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat set_autocon (UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat set_autocon (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern t_stat iopageR (int32 *data, uint32 addr, int32 access); extern t_stat iopageW (int32 data, uint32 addr, int32 access); extern int32 calc_ints (int32 nipl, int32 trq); @@ -3197,7 +3197,7 @@ return; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -3228,10 +3228,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 j, k, di, lnt, ir; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_value sim_eval[HIST_ILNT]; t_stat r; InstHistory *h; @@ -3273,10 +3273,10 @@ return SCPE_OK; /* Virtual address translation */ -t_stat cpu_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; uint32 va, pa; if (cptr) { diff --git a/PDP11/pdp11_cpumod.c b/PDP11/pdp11_cpumod.c index 79d7d160..521d6d01 100644 --- a/PDP11/pdp11_cpumod.c +++ b/PDP11/pdp11_cpumod.c @@ -123,8 +123,8 @@ t_stat sys_reset (DEVICE *dptr); int32 toy_read (void); void toy_write (int32 bit); uint8 toy_set (int32 val); -t_stat sys_set_jclk_dflt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sys_show_jclk_dflt (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat sys_set_jclk_dflt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sys_show_jclk_dflt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern t_stat PSW_rd (int32 *data, int32 addr, int32 access); extern t_stat PSW_wr (int32 data, int32 addr, int32 access); @@ -1084,7 +1084,7 @@ return SCPE_OK; /* Set/show CPU model */ -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr != NULL) return SCPE_ARG; @@ -1104,7 +1104,7 @@ reset_all (0); /* reset world */ return SCPE_OK; } -t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 i, all_opt; @@ -1120,7 +1120,7 @@ return SCPE_OK; /* Set/clear CPU option */ -t_stat cpu_set_opt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -1130,7 +1130,7 @@ cpu_opt = cpu_opt | val; return SCPE_OK; } -t_stat cpu_clr_opt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_clr_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -1142,7 +1142,7 @@ return SCPE_OK; /* Memory allocation */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i, clim; @@ -1227,7 +1227,7 @@ return SCPE_OK; /* Set/show JCLK default values */ -t_stat sys_set_jclk_dflt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sys_set_jclk_dflt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i; @@ -1242,7 +1242,7 @@ if ((CPUT (CPUT_JB|CPUT_JE)) && cptr) { return SCPE_ARG; } -t_stat sys_show_jclk_dflt (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sys_show_jclk_dflt (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (CPUT (CPUT_JB|CPUT_JE)) fprintf (st, "JCLK default=%s\n", jcsr_val[CSRJ_LTCSEL (JCSR_dflt)]); diff --git a/PDP11/pdp11_cpumod.h b/PDP11/pdp11_cpumod.h index 9ec38fef..da299814 100644 --- a/PDP11/pdp11_cpumod.h +++ b/PDP11/pdp11_cpumod.h @@ -292,11 +292,11 @@ typedef struct conf_table CNFTAB; /* Prototypes */ -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_opt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_clr_opt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_clr_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat cpu_set_bus (int32 opt); #endif diff --git a/PDP11/pdp11_cr.c b/PDP11/pdp11_cr.c index fd3aa07b..eee6aa94 100644 --- a/PDP11/pdp11_cr.c +++ b/PDP11/pdp11_cr.c @@ -446,19 +446,19 @@ t_stat cr_wr (int32, int32, int32); int32 cr_intac(void); t_stat cr_svc (UNIT *); t_stat cr_reset (DEVICE *); -t_stat cr_attach (UNIT *, char *); +t_stat cr_attach (UNIT *, CONST char *); t_stat cr_detach (UNIT *); -t_stat cr_set_type (UNIT *, int32, char *, void *); -t_stat cr_set_aieco (UNIT *, int32, char *, void *); -t_stat cr_show_format (FILE *, UNIT *, int32, void *); -t_stat cr_set_rate (UNIT *, int32, char *, void *); -t_stat cr_show_rate (FILE *, UNIT *, int32, void *); -t_stat cr_set_reset (UNIT *, int32, char *, void *); -t_stat cr_set_stop (UNIT *, int32, char *, void *); -t_stat cr_set_eof (UNIT *, int32, char *, void *); -t_stat cr_show_eof (FILE *, UNIT *, int32, void *); -t_stat cr_set_trans (UNIT *, int32, char*, void *); -t_stat cr_show_trans (FILE *, UNIT *, int32, void *); +t_stat cr_set_type (UNIT *, int32, CONST char *, void *); +t_stat cr_set_aieco (UNIT *, int32, CONST char *, void *); +t_stat cr_show_format (FILE *, UNIT *, int32, CONST void *); +t_stat cr_set_rate (UNIT *, int32, CONST char *, void *); +t_stat cr_show_rate (FILE *, UNIT *, int32, CONST void *); +t_stat cr_set_reset (UNIT *, int32, CONST char *, void *); +t_stat cr_set_stop (UNIT *, int32, CONST char *, void *); +t_stat cr_set_eof (UNIT *, int32, CONST char *, void *); +t_stat cr_show_eof (FILE *, UNIT *, int32, CONST void *); +t_stat cr_set_trans (UNIT *, int32, CONST char*, void *); +t_stat cr_show_trans (FILE *, UNIT *, int32, CONST void *); static t_stat cr_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *cr_description (DEVICE *dptr); @@ -567,7 +567,7 @@ static MTAB cr_mod[] = { { 0 } }; DEVICE cr_dev = { - "CR", &cr_unit, (REG *) &cr_reg, (MTAB *) &cr_mod, + "CR", &cr_unit, (REG *)&cr_reg, (MTAB *)&cr_mod, 1, 10, 31, 1, DEV_RDX, 8, NULL, NULL, &cr_reset, NULL, &cr_attach, &cr_detach, @@ -1501,7 +1501,7 @@ globals correctly. /* No bits should change, nor an interrupt should be asserted */ /* This is a change of behaviour respect to the previous code */ t_stat cr_attach ( UNIT *uptr, - char *cptr ) + CONST char *cptr ) { t_stat reason; @@ -1535,7 +1535,7 @@ t_stat cr_detach ( UNIT *uptr ) #if defined (CR11_OK) || defined (CD11_OK) || defined (CD20_OK) t_stat cr_set_type ( UNIT *uptr, int32 val, - char *cptr, + CONST char *cptr, void *desc ) { DEVICE *dptr = find_dev_from_unit (uptr); @@ -1563,7 +1563,7 @@ t_stat cr_set_type ( UNIT *uptr, #if defined (AIECO_OK) t_stat cr_set_aieco ( UNIT *uptr, int32 val, - char *cptr, + CONST char *cptr, void *desc ) { /* disallow eco change if currently attached or not CD20 */ @@ -1579,7 +1579,7 @@ t_stat cr_set_aieco ( UNIT *uptr, t_stat cr_show_format ( FILE *st, UNIT *uptr, int32 val, - void *desc ) + CONST void *desc ) { fprintf (st, "%s format", cardFormat); return (SCPE_OK); @@ -1587,7 +1587,7 @@ t_stat cr_show_format ( FILE *st, t_stat cr_set_rate ( UNIT *uptr, int32 val, - char *cptr, + CONST char *cptr, void *desc ) { t_stat status = SCPE_OK; @@ -1614,7 +1614,7 @@ t_stat cr_set_rate ( UNIT *uptr, t_stat cr_show_rate ( FILE *st, UNIT *uptr, int32 val, - void *desc ) + CONST void *desc ) { fprintf (st, "%d cards per minute", cpm); return (SCPE_OK); @@ -1627,7 +1627,7 @@ t_stat cr_show_rate ( FILE *st, t_stat cr_set_reset ( UNIT *uptr, int32 val, - char *cptr, + CONST char *cptr, void *desc ) { if (DEBUG_PRS (cr_dev)) @@ -1683,7 +1683,7 @@ t_stat cr_set_reset ( UNIT *uptr, t_stat cr_set_stop ( UNIT *uptr, int32 val, - char *cptr, + CONST char *cptr, void *desc ) { if (DEBUG_PRS (cr_dev)) @@ -1704,7 +1704,7 @@ t_stat cr_set_stop ( UNIT *uptr, t_stat cr_set_eof ( UNIT *uptr, int32 val, - char *cptr, + CONST char *cptr, void *desc ) { if (DEBUG_PRS (cr_dev)) @@ -1717,7 +1717,7 @@ t_stat cr_set_eof ( UNIT *uptr, t_stat cr_show_eof ( FILE *st, UNIT *uptr, int32 val, - void *desc ) + CONST void *desc ) { fprintf (st, (eofPending? "EOF pending": "no EOF pending")); return (SCPE_OK); @@ -1725,7 +1725,7 @@ t_stat cr_show_eof ( FILE *st, t_stat cr_set_trans ( UNIT *uptr, int32 val, - char *cptr, + CONST char *cptr, void *desc ) { size_t i; @@ -1747,7 +1747,7 @@ t_stat cr_set_trans ( UNIT *uptr, t_stat cr_show_trans ( FILE *st, UNIT *uptr, int32 val, - void *desc ) + CONST void *desc ) { size_t i; diff --git a/PDP11/pdp11_dc.c b/PDP11/pdp11_dc.c index aafe8a20..150dfc64 100644 --- a/PDP11/pdp11_dc.c +++ b/PDP11/pdp11_dc.c @@ -130,9 +130,9 @@ t_stat dcx_wr (int32 data, int32 PA, int32 access); t_stat dcx_reset (DEVICE *dptr); t_stat dci_svc (UNIT *uptr); t_stat dco_svc (UNIT *uptr); -t_stat dcx_attach (UNIT *uptr, char *cptr); +t_stat dcx_attach (UNIT *uptr, CONST char *cptr); t_stat dcx_detach (UNIT *uptr); -t_stat dcx_set_lines (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat dcx_set_lines (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void dcx_enbdis (int32 dis); void dci_clr_int (int32 ln); void dci_set_int (int32 ln); @@ -554,7 +554,7 @@ return; /* Attach master unit */ -t_stat dcx_attach (UNIT *uptr, char *cptr) +t_stat dcx_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -596,7 +596,7 @@ return; /* Change number of lines */ -t_stat dcx_set_lines (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dcx_set_lines (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; diff --git a/PDP11/pdp11_defs.h b/PDP11/pdp11_defs.h index 65a40ccf..deda5fd1 100644 --- a/PDP11/pdp11_defs.h +++ b/PDP11/pdp11_defs.h @@ -807,11 +807,11 @@ typedef struct pdp_dib DIB; int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf); int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf); -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf); -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf); +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf); +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf); int32 mba_rdbufW (uint32 mbus, int32 bc, uint16 *buf); -int32 mba_wrbufW (uint32 mbus, int32 bc, uint16 *buf); +int32 mba_wrbufW (uint32 mbus, int32 bc, const uint16 *buf); int32 mba_chbufW (uint32 mbus, int32 bc, uint16 *buf); int32 mba_get_bc (uint32 mbus); int32 mba_get_csr (uint32 mbus); @@ -819,7 +819,7 @@ void mba_upd_ata (uint32 mbus, uint32 val); void mba_set_exc (uint32 mbus); void mba_set_don (uint32 mbus); void mba_set_enbdis (DEVICE *dptr); -t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat build_dib_tab (void); diff --git a/PDP11/pdp11_dl.c b/PDP11/pdp11_dl.c index 80b237b1..2a07e486 100644 --- a/PDP11/pdp11_dl.c +++ b/PDP11/pdp11_dl.c @@ -97,9 +97,9 @@ t_stat dlx_wr (int32 data, int32 PA, int32 access); t_stat dlx_reset (DEVICE *dptr); t_stat dli_svc (UNIT *uptr); t_stat dlo_svc (UNIT *uptr); -t_stat dlx_attach (UNIT *uptr, char *cptr); +t_stat dlx_attach (UNIT *uptr, CONST char *cptr); t_stat dlx_detach (UNIT *uptr); -t_stat dlx_set_lines (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat dlx_set_lines (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void dlx_enbdis (int32 dis); void dli_clr_int (int32 ln, uint32 wd); void dli_set_int (int32 ln, uint32 wd); @@ -562,7 +562,7 @@ return; /* Attach master unit */ -t_stat dlx_attach (UNIT *uptr, char *cptr) +t_stat dlx_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -635,7 +635,7 @@ return; /* Change number of lines */ -t_stat dlx_set_lines (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dlx_set_lines (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; diff --git a/PDP11/pdp11_dmc.c b/PDP11/pdp11_dmc.c index a7785579..575683d0 100644 --- a/PDP11/pdp11_dmc.c +++ b/PDP11/pdp11_dmc.c @@ -907,28 +907,28 @@ t_stat dmc_svc (UNIT * uptr); t_stat dmc_poll_svc (UNIT * uptr); t_stat dmc_timer_svc (UNIT * uptr); t_stat dmc_reset (DEVICE * dptr); -t_stat dmc_attach (UNIT * uptr, char * cptr); +t_stat dmc_attach (UNIT * uptr, CONST char * cptr); t_stat dmc_detach (UNIT * uptr); int32 dmc_ininta (void); int32 dmc_outinta (void); -t_stat dmc_setnumdevices (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dmc_shownumdevices (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat dmc_setpeer (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat dmc_showpeer (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat dmc_setspeed (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat dmc_showspeed (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat dmc_setcorrupt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dmc_showcorrupt (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat dmc_set_microdiag (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat dmc_show_microdiag (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat dmc_settype (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat dmc_showtype (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat dmc_setstats (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat dmc_showstats (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat dmc_showqueues (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat dmc_setconnectpoll (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat dmc_showconnectpoll (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat dmc_showddcmp (FILE* st, UNIT* uptr, int32 val, void* desc); +t_stat dmc_setnumdevices (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dmc_shownumdevices (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat dmc_setpeer (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat dmc_showpeer (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat dmc_setspeed (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat dmc_showspeed (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat dmc_setcorrupt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dmc_showcorrupt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat dmc_set_microdiag (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat dmc_show_microdiag (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat dmc_settype (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat dmc_showtype (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat dmc_setstats (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat dmc_showstats (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat dmc_showqueues (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat dmc_setconnectpoll (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat dmc_showconnectpoll (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat dmc_showddcmp (FILE* st, UNIT* uptr, int32 val, CONST void* desc); t_stat dmc_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat dmc_help_attach (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *dmc_description (DEVICE *dptr); @@ -1241,7 +1241,7 @@ for (i=0; iunits); @@ -1254,7 +1254,7 @@ else return SCPE_OK; } -t_stat dmc_setpeer (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat dmc_setpeer (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { DEVICE *dptr = (UNIBUS) ? ((&dmc_dev == find_dev_from_unit(uptr)) ? &dmc_dev : &dmp_dev) : &dmv_dev; int32 dmc = (int32)(uptr-dptr->units); @@ -1273,7 +1273,7 @@ strncpy(peer, cptr, PEERSIZE-1); return SCPE_OK; } -t_stat dmc_showspeed (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat dmc_showspeed (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { DEVICE *dptr = (UNIBUS) ? ((&dmc_dev == find_dev_from_unit(uptr)) ? &dmc_dev : &dmp_dev) : &dmv_dev; int32 dmc = (int32)(uptr-dptr->units); @@ -1287,7 +1287,7 @@ return SCPE_OK; } -t_stat dmc_setspeed (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat dmc_setspeed (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { DEVICE *dptr = (UNIBUS) ? ((&dmc_dev == find_dev_from_unit(uptr)) ? &dmc_dev : &dmp_dev) : &dmv_dev; int32 dmc = (int32)(uptr-dptr->units); @@ -1304,7 +1304,7 @@ speeds[dmc] = newspeed; return SCPE_OK; } -t_stat dmc_show_microdiag (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat dmc_show_microdiag (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { int32 dmc = (int32)(uptr-dmc_dev.units); @@ -1316,7 +1316,7 @@ return SCPE_OK; * * See ddcmp_feedCorruptionTroll for usage. */ -t_stat dmc_setcorrupt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dmc_setcorrupt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr = (UNIBUS) ? ((&dmc_dev == find_dev_from_unit(uptr)) ? &dmc_dev : &dmp_dev) : &dmv_dev; int32 dmc = (int32)(uptr-dptr->units); @@ -1338,7 +1338,7 @@ return SCPE_OK; /* Display the corruption troll's appetite */ -t_stat dmc_showcorrupt (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dmc_showcorrupt (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr = (UNIBUS) ? ((&dmc_dev == find_dev_from_unit(uptr)) ? &dmc_dev : &dmp_dev) : &dmv_dev; int32 dmc = (int32)(uptr-dptr->units); @@ -1353,7 +1353,7 @@ else return SCPE_OK; } -t_stat dmc_set_microdiag(UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat dmc_set_microdiag(UNIT* uptr, int32 val, CONST char* cptr, void* desc) { int32 dmc = (int32)(uptr-dmc_dev.units); char gbuf[CBUFSIZE]; @@ -1371,7 +1371,7 @@ else return SCPE_OK; } -t_stat dmc_showtype (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat dmc_showtype (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR *controller = dmc_get_controller_from_unit(uptr); @@ -1392,7 +1392,7 @@ switch (controller->dev_type) { return SCPE_OK; } -t_stat dmc_settype (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat dmc_settype (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { char gbuf[80]; t_stat status = SCPE_OK; @@ -1414,7 +1414,7 @@ else return status; } -t_stat dmc_showstats (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat dmc_showstats (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR *controller = dmc_get_controller_from_unit(uptr); @@ -1510,7 +1510,7 @@ if (detail) { } } -t_stat dmc_showqueues (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat dmc_showqueues (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR *controller = dmc_get_controller_from_unit(uptr); static const char *states[] = {"Uninitialised", "Initialised", "Running", "Halted"}; @@ -1534,7 +1534,7 @@ if (controller->control_out) { return SCPE_OK; } -t_stat dmc_setstats (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat dmc_setstats (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { CTLR *controller = dmc_get_controller_from_unit(uptr); @@ -1551,15 +1551,15 @@ sim_printf("Statistics reset\n"); return SCPE_OK; } -t_stat dmc_showconnectpoll (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat dmc_showconnectpoll (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { -uint32 poll_interval = *((uint32 *)desc); +uint32 poll_interval = *((const uint32 *)desc); fprintf(st, "connectpoll=%u", poll_interval); return SCPE_OK; } -t_stat dmc_setconnectpoll (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat dmc_setconnectpoll (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { t_stat status = SCPE_OK; uint32 *poll_interval = ((uint32 *)desc); @@ -1576,7 +1576,7 @@ return tmxr_connection_poll_interval ((poll_interval == &dmc_connect_poll) ? &dm /* SET LINES processor */ -t_stat dmc_setnumdevices (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dmc_setnumdevices (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln; uint32 i, j; @@ -1621,7 +1621,7 @@ mp->uptr = dptr->units + newln; /* Identify polling unit */ return dmc_reset ((DEVICE *)desc); /* setup devices and auto config */ } -t_stat dmc_shownumdevices (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dmc_shownumdevices (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr = (UNIBUS) ? find_dev_from_unit (uptr) : &dmv_dev; @@ -1629,7 +1629,7 @@ fprintf (st, "lines=%d", dptr->numunits-2); return SCPE_OK; } -t_stat dmc_showddcmp (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat dmc_showddcmp (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR *controller = dmc_get_controller_from_unit(uptr); static const char *states[] = {"Halt", "IStart", "AStart", "Run", "Maintenance"}; @@ -3801,7 +3801,7 @@ if (!(dptr->flags & DEV_DIS)) { return ans; } -t_stat dmc_attach (UNIT *uptr, char *cptr) +t_stat dmc_attach (UNIT *uptr, CONST char *cptr) { DEVICE *dptr = (UNIBUS) ? ((&dmc_dev == find_dev_from_unit(uptr)) ? &dmc_dev : &dmp_dev) : &dmv_dev; int32 dmc = (int32)(uptr-dptr->units); diff --git a/PDP11/pdp11_dup.c b/PDP11/pdp11_dup.c index a43c8a56..d3e85ff1 100644 --- a/PDP11/pdp11_dup.c +++ b/PDP11/pdp11_dup.c @@ -101,7 +101,7 @@ static t_stat dup_svc (UNIT *uptr); static t_stat dup_poll_svc (UNIT *uptr); static t_stat dup_rcv_byte (int32 dup); static t_stat dup_reset (DEVICE *dptr); -static t_stat dup_attach (UNIT *uptr, char *ptr); +static t_stat dup_attach (UNIT *uptr, CONST char *ptr); static t_stat dup_detach (UNIT *uptr); static t_stat dup_clear (int32 dup, t_bool flag); static int32 dup_rxinta (void); @@ -112,17 +112,17 @@ static void dup_clr_rxint (int32 dup); static void dup_set_rxint (int32 dup); static void dup_clr_txint (int32 dup); static void dup_set_txint (int32 dup); -static t_stat dup_setnl (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat dup_setspeed (UNIT* uptr, int32 val, char* cptr, void* desc); -static t_stat dup_showspeed (FILE* st, UNIT* uptr, int32 val, void* desc); -static t_stat dup_setcorrupt (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat dup_showcorrupt (FILE *st, UNIT *uptr, int32 val, void *desc); -static t_stat dup_set_W3 (UNIT* uptr, int32 val, char* cptr, void* desc); -static t_stat dup_show_W3 (FILE* st, UNIT* uptr, int32 val, void* desc); -static t_stat dup_set_W5 (UNIT* uptr, int32 val, char* cptr, void* desc); -static t_stat dup_show_W5 (FILE* st, UNIT* uptr, int32 val, void* desc); -static t_stat dup_set_W6 (UNIT* uptr, int32 val, char* cptr, void* desc); -static t_stat dup_show_W6 (FILE* st, UNIT* uptr, int32 val, void* desc); +static t_stat dup_setnl (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat dup_setspeed (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +static t_stat dup_showspeed (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +static t_stat dup_setcorrupt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat dup_showcorrupt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static t_stat dup_set_W3 (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +static t_stat dup_show_W3 (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +static t_stat dup_set_W5 (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +static t_stat dup_show_W5 (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +static t_stat dup_set_W6 (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +static t_stat dup_show_W6 (FILE* st, UNIT* uptr, int32 val, CONST void* desc); static t_stat dup_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); static t_stat dup_help_attach (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); static const char *dup_description (DEVICE *dptr); @@ -1251,7 +1251,7 @@ if ((r == SCPE_OK) && (attached)) return r; } -static t_stat dup_attach (UNIT *uptr, char *cptr) +static t_stat dup_attach (UNIT *uptr, CONST char *cptr) { t_stat r; DEVICE *dptr = DUPDPTR; @@ -1306,7 +1306,7 @@ return r; /* SET/SHOW SPEED processor */ -static t_stat dup_showspeed (FILE* st, UNIT* uptr, int32 val, void* desc) +static t_stat dup_showspeed (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1318,7 +1318,7 @@ else return SCPE_OK; } -static t_stat dup_setspeed (UNIT* uptr, int32 val, char* cptr, void* desc) +static t_stat dup_setspeed (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1336,7 +1336,7 @@ return SCPE_OK; /* SET/SHOW CORRUPTION processor */ -static t_stat dup_showcorrupt (FILE* st, UNIT* uptr, int32 val, void* desc) +static t_stat dup_showcorrupt (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1348,7 +1348,7 @@ else return SCPE_OK; } -static t_stat dup_setcorrupt (UNIT* uptr, int32 val, char* cptr, void* desc) +static t_stat dup_setcorrupt (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1366,7 +1366,7 @@ return SCPE_OK; /* SET/SHOW W3 processor */ -static t_stat dup_show_W3 (FILE* st, UNIT* uptr, int32 val, void* desc) +static t_stat dup_show_W3 (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1378,7 +1378,7 @@ else return SCPE_OK; } -static t_stat dup_set_W3 (UNIT* uptr, int32 val, char* cptr, void* desc) +static t_stat dup_set_W3 (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1389,7 +1389,7 @@ return SCPE_OK; /* SET/SHOW W5 processor */ -static t_stat dup_show_W5 (FILE* st, UNIT* uptr, int32 val, void* desc) +static t_stat dup_show_W5 (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1401,7 +1401,7 @@ else return SCPE_OK; } -static t_stat dup_set_W5 (UNIT* uptr, int32 val, char* cptr, void* desc) +static t_stat dup_set_W5 (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1412,7 +1412,7 @@ return SCPE_OK; /* SET/SHOW W6 processor */ -static t_stat dup_show_W6 (FILE* st, UNIT* uptr, int32 val, void* desc) +static t_stat dup_show_W6 (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1424,7 +1424,7 @@ else return SCPE_OK; } -static t_stat dup_set_W6 (UNIT* uptr, int32 val, char* cptr, void* desc) +static t_stat dup_set_W6 (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { DEVICE *dptr = DUPDPTR; int32 dup = (int32)(uptr-dptr->units); @@ -1435,7 +1435,7 @@ return SCPE_OK; /* SET LINES processor */ -static t_stat dup_setnl (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat dup_setnl (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, l; uint32 i; diff --git a/PDP11/pdp11_dz.c b/PDP11/pdp11_dz.c index 58b4e630..93a7d32e 100644 --- a/PDP11/pdp11_dz.c +++ b/PDP11/pdp11_dz.c @@ -269,7 +269,7 @@ int32 dz_txinta (void); t_stat dz_svc (UNIT *uptr); t_stat dz_xmt_svc (UNIT *uptr); t_stat dz_reset (DEVICE *dptr); -t_stat dz_attach (UNIT *uptr, char *cptr); +t_stat dz_attach (UNIT *uptr, CONST char *cptr); t_stat dz_detach (UNIT *uptr); t_stat dz_clear (int32 dz, t_bool flag); uint16 dz_getc (int32 dz); @@ -279,10 +279,10 @@ void dz_clr_rxint (int32 dz); void dz_set_rxint (int32 dz); void dz_clr_txint (int32 dz); void dz_set_txint (int32 dz); -t_stat dz_setnl (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dz_set_log (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dz_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dz_show_log (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat dz_setnl (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dz_set_log (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dz_set_nolog (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dz_show_log (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat dz_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat dz_help_attach (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *dz_description (DEVICE *dptr); @@ -348,7 +348,7 @@ MTAB dz_mod[] = { &dz_setnl, &tmxr_show_lines, (void *) &dz_desc, "Display number of lines" }, { MTAB_XTD|MTAB_VDV|MTAB_NC, 0, NULL, "LOG=n=file", &dz_set_log, NULL, &dz_desc }, - { MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, NULL, "NOLOG", + { MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, NULL, "NOLOG=n", &dz_set_nolog, NULL, &dz_desc, "Disable logging on designated line" }, { MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, "LOG", NULL, NULL, &dz_show_log, &dz_desc, "Display logging for all lines" }, @@ -791,7 +791,7 @@ return auto_config (dptr->name, ndev); /* auto config */ /* Attach */ -t_stat dz_attach (UNIT *uptr, char *cptr) +t_stat dz_attach (UNIT *uptr, CONST char *cptr) { int32 dz, muxln; t_stat r; @@ -839,7 +839,7 @@ return r; /* SET LINES processor */ -t_stat dz_setnl (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dz_setnl (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; @@ -876,27 +876,26 @@ return dz_reset (&dz_dev); /* setup lines and auto /* SET LOG processor */ -t_stat dz_set_log (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dz_set_log (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { -char *tptr; t_stat r; +char gbuf[CBUFSIZE]; int32 ln; if (cptr == NULL) return SCPE_ARG; -tptr = strchr (cptr, '='); -if ((tptr == NULL) || (*tptr == 0)) +cptr = get_glyph (cptr, gbuf, '='); +if ((cptr == NULL) || (*cptr == 0) || (gbuf[0] == 0)) return SCPE_ARG; -*tptr++ = 0; -ln = (int32) get_uint (cptr, 10, dz_desc.lines, &r); +ln = (int32) get_uint (gbuf, 10, dz_desc.lines, &r); if ((r != SCPE_OK) || (ln >= dz_desc.lines)) return SCPE_ARG; -return tmxr_set_log (NULL, ln, tptr, desc); +return tmxr_set_log (NULL, ln, cptr, desc); } /* SET NOLOG processor */ -t_stat dz_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dz_set_nolog (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat r; int32 ln; @@ -911,7 +910,7 @@ return tmxr_set_nolog (NULL, ln, NULL, desc); /* SHOW LOG processor */ -t_stat dz_show_log (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dz_show_log (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 i; diff --git a/PDP11/pdp11_hk.c b/PDP11/pdp11_hk.c index a40ae8cb..a6bb4a86 100644 --- a/PDP11/pdp11_hk.c +++ b/PDP11/pdp11_hk.c @@ -559,7 +559,7 @@ t_stat hk_wr (int32 data, int32 PA, int32 access); t_stat hk_svc (UNIT *uptr); t_stat hk_reset (DEVICE *dptr); t_stat hk_boot (int32 unitno, DEVICE *dptr); -t_stat hk_attach (UNIT *uptr, char *cptr); +t_stat hk_attach (UNIT *uptr, CONST char *cptr); t_stat hk_detach (UNIT *uptr); int32 hk_inta (void); int32 hk_rdmr2 (int32 msg); @@ -568,8 +568,8 @@ void update_hkcs (int32 flags, int32 drv); void update_hkds (int32 drv); void hk_err (int32 cs1e, int32 cs2e, int32 drve, int32 drv); void hk_go (int32 drv); -t_stat hk_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat hk_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat hk_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat hk_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat hk_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *hk_description (DEVICE *dptr); @@ -1483,7 +1483,7 @@ return auto_config (0, 0); /* Device attach */ -t_stat hk_attach (UNIT *uptr, char *cptr) +t_stat hk_attach (UNIT *uptr, CONST char *cptr) { uint32 drv, p; t_stat r; @@ -1549,7 +1549,7 @@ return detach_unit (uptr); /* Set size command validation routine */ -t_stat hk_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat hk_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; @@ -1559,7 +1559,7 @@ return SCPE_OK; /* Set bad block routine */ -t_stat hk_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat hk_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { return pdp11_bad_block (uptr, HK_NUMSC, HK_NUMWD); } diff --git a/PDP11/pdp11_io.c b/PDP11/pdp11_io.c index 76c8c93c..7f3585b5 100644 --- a/PDP11/pdp11_io.c +++ b/PDP11/pdp11_io.c @@ -326,7 +326,7 @@ else { /* physical */ } } -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf) +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf) { uint32 alim, lim, ma; @@ -367,7 +367,7 @@ else { /* physical */ } } -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf) +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf) { uint32 alim, lim, ma; diff --git a/PDP11/pdp11_io_lib.c b/PDP11/pdp11_io_lib.c index ff0c7bbd..f6788ca9 100644 --- a/PDP11/pdp11_io_lib.c +++ b/PDP11/pdp11_io_lib.c @@ -66,7 +66,7 @@ static void build_vector_tab (void); /* Enable/disable autoconfiguration */ -t_stat set_autocon (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_autocon (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr != NULL) return SCPE_ARG; @@ -76,7 +76,7 @@ return auto_config (NULL, 0); /* Show autoconfiguration status */ -t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "autoconfiguration "); fprintf (st, autcon_enb? "enabled": "disabled"); @@ -85,7 +85,7 @@ return SCPE_OK; /* Change device address */ -t_stat set_addr (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_addr (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -115,7 +115,7 @@ return SCPE_OK; /* Show device address */ -t_stat show_addr (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_addr (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; DIB *dibp; @@ -156,7 +156,7 @@ return SCPE_OK; /* Set address floating */ -t_stat set_addr_flt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_addr_flt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; @@ -172,7 +172,7 @@ return auto_config (NULL, 0); /* autoconfigure */ /* Change device vector */ -t_stat set_vec (UNIT *uptr, int32 arg, char *cptr, void *desc) +t_stat set_vec (UNIT *uptr, int32 arg, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -201,7 +201,7 @@ return SCPE_OK; /* Show device vector */ -t_stat show_vec (FILE *st, UNIT *uptr, int32 arg, void *desc) +t_stat show_vec (FILE *st, UNIT *uptr, int32 arg, CONST void *desc) { DEVICE *dptr; DIB *dibp; @@ -255,9 +255,9 @@ return SCPE_OK; /* Show vector for terminal multiplexor */ -t_stat show_vec_mux (FILE *st, UNIT *uptr, int32 arg, void *desc) +t_stat show_vec_mux (FILE *st, UNIT *uptr, int32 arg, CONST void *desc) { -TMXR *mp = (TMXR *) desc; +const TMXR *mp = (const TMXR *) desc; if ((mp == NULL) || (arg == 0)) return SCPE_IERR; @@ -411,7 +411,7 @@ return SCPE_OK; /* Show IO space */ -t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 i, j; DEVICE *dptr; diff --git a/PDP11/pdp11_io_lib.h b/PDP11/pdp11_io_lib.h index a5b38f7c..d213e539 100644 --- a/PDP11/pdp11_io_lib.h +++ b/PDP11/pdp11_io_lib.h @@ -27,15 +27,15 @@ #ifndef PDP11_IO_LIB_H_ #define PDP11_IO_LIB_H_ 0 -t_stat set_autocon (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat set_addr (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_addr (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat set_addr_flt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat set_vec (UNIT *uptr, int32 arg, char *cptr, void *desc); -t_stat show_vec (FILE *st, UNIT *uptr, int32 arg, void *desc); -t_stat show_vec_mux (FILE *st, UNIT *uptr, int32 arg, void *desc); -t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_autocon (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat set_addr (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_addr (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat set_addr_flt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat set_vec (UNIT *uptr, int32 arg, CONST char *cptr, void *desc); +t_stat show_vec (FILE *st, UNIT *uptr, int32 arg, CONST void *desc); +t_stat show_vec_mux (FILE *st, UNIT *uptr, int32 arg, CONST void *desc); +t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat auto_config (const char *name, int32 nctrl); t_stat pdp11_bad_block (UNIT *uptr, int32 sec, int32 wds); void init_ubus_tab (void); diff --git a/PDP11/pdp11_kg.c b/PDP11/pdp11_kg.c index 41f571d1..19f6f4ad 100644 --- a/PDP11/pdp11_kg.c +++ b/PDP11/pdp11_kg.c @@ -174,7 +174,7 @@ static t_stat kg_rd (int32 *, int32, int32); static t_stat kg_wr (int32, int32, int32); static t_stat kg_reset (DEVICE *); static void do_poly (int, t_bool); -static t_stat set_units (UNIT *, int32, char *, void *); +static t_stat set_units (UNIT *, int32, CONST char *, void *); t_stat kg_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *kg_description (DEVICE *dptr); @@ -438,7 +438,7 @@ static void do_poly (int unit, t_bool step) } } -static t_stat set_units (UNIT *u, int32 val, char *s, void *desc) +static t_stat set_units (UNIT *u, int32 val, CONST char *s, void *desc) { uint32 i, units; t_stat stat; diff --git a/PDP11/pdp11_kmc.c b/PDP11/pdp11_kmc.c index 56ac14e1..554f651e 100644 --- a/PDP11/pdp11_kmc.c +++ b/PDP11/pdp11_kmc.c @@ -486,12 +486,12 @@ static t_stat kmc_txService(UNIT * txup); static t_stat kmc_rxService(UNIT * rxup); #if KMC_UNITS > 1 -static t_stat kmc_setDeviceCount (UNIT *txup, int32 val, char *cptr, void *desc); -static t_stat kmc_showDeviceCount (FILE *st, UNIT *txup, int32 val, void *desc); +static t_stat kmc_setDeviceCount (UNIT *txup, int32 val, CONST char *cptr, void *desc); +static t_stat kmc_showDeviceCount (FILE *st, UNIT *txup, int32 val, CONST void *desc); #endif -static t_stat kmc_setLineSpeed (UNIT *txup, int32 val, char *cptr, void *desc); -static t_stat kmc_showLineSpeed (FILE *st, UNIT *txup, int32 val, void *desc); -static t_stat kmc_showStatus (FILE *st, UNIT *up, int32 v, void *dp); +static t_stat kmc_setLineSpeed (UNIT *txup, int32 val, CONST char *cptr, void *desc); +static t_stat kmc_showLineSpeed (FILE *st, UNIT *txup, int32 val, CONST void *desc); +static t_stat kmc_showStatus (FILE *st, UNIT *up, int32 v, CONST void *dp); static t_stat kmc_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); @@ -2764,7 +2764,7 @@ static void *remqueue (QH *entry, int32 *count) { */ #if KMC_UNITS > 1 -static t_stat kmc_setDeviceCount (UNIT *txup, int32 val, char *cptr, void *desc) { +static t_stat kmc_setDeviceCount (UNIT *txup, int32 val, CONST char *cptr, void *desc) { int32 newln; uint32 dupidx; t_stat r; @@ -2794,7 +2794,7 @@ static t_stat kmc_setDeviceCount (UNIT *txup, int32 val, char *cptr, void *desc) /* Report number of configured KMCs */ #if KMC_UNITS > 1 -static t_stat kmc_showDeviceCount (FILE *st, UNIT *txup, int32 val, void *desc) { +static t_stat kmc_showDeviceCount (FILE *st, UNIT *txup, int32 val, CONST void *desc) { DEVICE *dev = find_dev_from_unit(txup); if (dev->flags & DEV_DIS) { @@ -2828,7 +2828,7 @@ static t_stat kmc_showDeviceCount (FILE *st, UNIT *txup, int32 val, void *desc) * potential use of that DUP by a KMC. */ -static t_stat kmc_setLineSpeed (UNIT *txup, int32 val, char *cptr, void *desc) { +static t_stat kmc_setLineSpeed (UNIT *txup, int32 val, CONST char *cptr, void *desc) { dupstate *d; int32 dupidx, newspeed; char gbuf[CBUFSIZE]; @@ -2859,7 +2859,7 @@ static t_stat kmc_setLineSpeed (UNIT *txup, int32 val, char *cptr, void *desc) { return SCPE_OK; } -static t_stat kmc_showLineSpeed (FILE *st, UNIT *txup, int32 val, void *desc) { +static t_stat kmc_showLineSpeed (FILE *st, UNIT *txup, int32 val, CONST void *desc) { int dupidx; fprintf (st, "DUP KMC Line Speed\n" @@ -2883,7 +2883,7 @@ static t_stat kmc_showLineSpeed (FILE *st, UNIT *txup, int32 val, void *desc) { /* Show KMC status */ -t_stat kmc_showStatus (FILE *st, UNIT *up, int32 v, void *dp) { +t_stat kmc_showStatus (FILE *st, UNIT *up, int32 v, CONST void *dp) { int32 k = up->unit_kmc; int32 line; t_bool first = TRUE; diff --git a/PDP11/pdp11_lp.c b/PDP11/pdp11_lp.c index 19c4aa58..9180598c 100644 --- a/PDP11/pdp11_lp.c +++ b/PDP11/pdp11_lp.c @@ -60,7 +60,7 @@ t_stat lpt_rd (int32 *data, int32 PA, int32 access); t_stat lpt_wr (int32 data, int32 PA, int32 access); t_stat lpt_svc (UNIT *uptr); t_stat lpt_reset (DEVICE *dptr); -t_stat lpt_attach (UNIT *uptr, char *ptr); +t_stat lpt_attach (UNIT *uptr, CONST char *ptr); t_stat lpt_detach (UNIT *uptr); t_stat lpt_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *lpt_description (DEVICE *dptr); @@ -186,7 +186,7 @@ sim_cancel (&lpt_unit); /* deactivate unit */ return SCPE_OK; } -t_stat lpt_attach (UNIT *uptr, char *cptr) +t_stat lpt_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; diff --git a/PDP11/pdp11_pclk.c b/PDP11/pdp11_pclk.c index 60f04f07..5552eb31 100644 --- a/PDP11/pdp11_pclk.c +++ b/PDP11/pdp11_pclk.c @@ -140,7 +140,7 @@ t_stat pclk_rd (int32 *data, int32 PA, int32 access); t_stat pclk_wr (int32 data, int32 PA, int32 access); t_stat pclk_svc (UNIT *uptr); t_stat pclk_reset (DEVICE *dptr); -t_stat pclk_set_line (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat pclk_set_line (UNIT *uptr, int32 val, CONST char *cptr, void *desc); const char *pclk_description (DEVICE *dptr); void pclk_tick (void); @@ -313,7 +313,7 @@ return auto_config (0, 0); /* Set line frequency */ -t_stat pclk_set_line (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat pclk_set_line (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val == UNIT_LINE50HZ) rate[2] = 50; diff --git a/PDP11/pdp11_pt.c b/PDP11/pdp11_pt.c index db190a44..67beb22c 100644 --- a/PDP11/pdp11_pt.c +++ b/PDP11/pdp11_pt.c @@ -64,7 +64,7 @@ t_stat ptr_svc (UNIT *uptr); t_stat ptr_reset (DEVICE *dptr); t_stat ptr_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *ptr_description (DEVICE *dptr); -t_stat ptr_attach (UNIT *uptr, char *ptr); +t_stat ptr_attach (UNIT *uptr, CONST char *ptr); t_stat ptr_detach (UNIT *uptr); t_stat ptp_rd (int32 *data, int32 PA, int32 access); t_stat ptp_wr (int32 data, int32 PA, int32 access); @@ -72,7 +72,7 @@ t_stat ptp_svc (UNIT *uptr); t_stat ptp_reset (DEVICE *dptr); t_stat ptp_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *ptp_description (DEVICE *dptr); -t_stat ptp_attach (UNIT *uptr, char *ptr); +t_stat ptp_attach (UNIT *uptr, CONST char *ptr); t_stat ptp_detach (UNIT *uptr); /* PTR data structures @@ -268,7 +268,7 @@ sim_cancel (&ptr_unit); return auto_config (dptr->name, 1); } -t_stat ptr_attach (UNIT *uptr, char *cptr) +t_stat ptr_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; @@ -363,7 +363,7 @@ sim_cancel (&ptp_unit); /* deactivate unit */ return auto_config (dptr->name, 1); } -t_stat ptp_attach (UNIT *uptr, char *cptr) +t_stat ptp_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; diff --git a/PDP11/pdp11_rc.c b/PDP11/pdp11_rc.c index d2c15906..d4f62f10 100644 --- a/PDP11/pdp11_rc.c +++ b/PDP11/pdp11_rc.c @@ -168,8 +168,8 @@ static t_stat rc_rd (int32 *, int32, int32); static t_stat rc_wr (int32, int32, int32); static t_stat rc_svc (UNIT *); static t_stat rc_reset (DEVICE *); -static t_stat rc_attach (UNIT *, char *); -static t_stat rc_set_size (UNIT *, int32, char *, void *); +static t_stat rc_attach (UNIT *, CONST char *); +static t_stat rc_set_size (UNIT *, int32, CONST char *, void *); static uint32 update_rccs (uint32, uint32); static const char *rc_description (DEVICE *dptr); @@ -563,7 +563,7 @@ static t_stat rc_reset (DEVICE *dptr) /* Attach routine */ -static t_stat rc_attach (UNIT *uptr, char *cptr) +static t_stat rc_attach (UNIT *uptr, CONST char *cptr) { uint32 sz, p; static const uint32 ds_bytes = RC_DKSIZE * sizeof (int16); @@ -580,7 +580,7 @@ static t_stat rc_attach (UNIT *uptr, char *cptr) /* Change disk size */ -static t_stat rc_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat rc_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val < 0) return (SCPE_IERR); diff --git a/PDP11/pdp11_rf.c b/PDP11/pdp11_rf.c index 54e68b1f..0c561ee8 100644 --- a/PDP11/pdp11_rf.c +++ b/PDP11/pdp11_rf.c @@ -131,8 +131,8 @@ int32 rf_inta (void); t_stat rf_svc (UNIT *uptr); t_stat rf_reset (DEVICE *dptr); t_stat rf_boot (int32 unitno, DEVICE *dptr); -t_stat rf_attach (UNIT *uptr, char *cptr); -t_stat rf_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rf_attach (UNIT *uptr, CONST char *cptr); +t_stat rf_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); uint32 update_rfcs (uint32 newcs, uint32 newdae); t_stat rf_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *rf_description (DEVICE *dptr); @@ -478,7 +478,7 @@ return SCPE_OK; /* Attach routine */ -t_stat rf_attach (UNIT *uptr, char *cptr) +t_stat rf_attach (UNIT *uptr, CONST char *cptr) { uint32 sz, p; uint32 ds_bytes = RF_DKSIZE * sizeof (int16); @@ -496,7 +496,7 @@ return attach_unit (uptr, cptr); /* Change disk size */ -t_stat rf_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rf_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val < 0) return SCPE_IERR; diff --git a/PDP11/pdp11_rh.c b/PDP11/pdp11_rh.c index 716c899e..70f6a352 100644 --- a/PDP11/pdp11_rh.c +++ b/PDP11/pdp11_rh.c @@ -169,8 +169,8 @@ extern t_addr cpu_memsize; t_stat mba_reset (DEVICE *dptr); t_stat mba_rd (int32 *val, int32 pa, int32 access); t_stat mba_wr (int32 val, int32 pa, int32 access); -t_stat mba_set_type (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat mba_show_type (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat mba_set_type (UNIT *uptr, int32 val, char *cptr, CONST void *desc); +t_stat mba_show_type (FILE *st, UNIT *uptr, int32 val, CONST void *desc); int32 mba0_inta (void); int32 mba1_inta (void); int32 mba2_inta (void); @@ -592,7 +592,7 @@ massbus[mb].cs1 = (massbus[mb].cs1 & ~ CS1_UAE) | /* update CS1 */ return i; } -int32 mba_wrbufW (uint32 mb, int32 bc, uint16 *buf) +int32 mba_wrbufW (uint32 mb, int32 bc, const uint16 *buf) { int32 i, j, ba, mbc, pbc; uint32 pa; @@ -870,7 +870,7 @@ if (!(dptr->flags & DEV_DIS)) /* Enabling? */ /* Show Massbus adapter number */ -t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr = find_dev_from_unit (uptr); DIB *dibp; diff --git a/PDP11/pdp11_rl.c b/PDP11/pdp11_rl.c index df36635b..f070985e 100644 --- a/PDP11/pdp11_rl.c +++ b/PDP11/pdp11_rl.c @@ -246,20 +246,20 @@ t_stat rl_svc (UNIT *uptr); t_stat rl_reset (DEVICE *dptr); void rl_set_done (int32 error); t_stat rl_boot (int32 unitno, DEVICE *dptr); -t_stat rl_attach (UNIT *uptr, char *cptr); -t_stat rl_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rl_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rl_attach (UNIT *uptr, CONST char *cptr); +t_stat rl_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rl_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc); static void rlv_maint (void); t_stat rl_detach (UNIT *uptr); -t_stat rl_set_cover (UNIT *, int32, char *, void *); -t_stat rl_show_cover (FILE *, UNIT *, int32, void *); -t_stat rl_set_load (UNIT *, int32, char *, void *); -t_stat rl_show_load (FILE *, UNIT *, int32, void *); -t_stat rl_show_dstate (FILE *, UNIT *, int32, void *); +t_stat rl_set_cover (UNIT *, int32, CONST char *, void *); +t_stat rl_show_cover (FILE *, UNIT *, int32, CONST void *); +t_stat rl_set_load (UNIT *, int32, CONST char *, void *); +t_stat rl_show_load (FILE *, UNIT *, int32, CONST void *); +t_stat rl_show_dstate (FILE *, UNIT *, int32, CONST void *); #if defined (VM_PDP11) -t_stat rl_set_ctrl (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rl_set_ctrl (UNIT *uptr, int32 val, CONST char *cptr, void *desc); #endif -t_stat rl_show_ctrl (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat rl_show_ctrl (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat rl_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *rl_description (DEVICE *dptr); @@ -363,7 +363,7 @@ static const MTAB rl_mod[] = { }; DEVICE rl_dev = { - "RL", (UNIT *) &rl_unit, (REG *) rl_reg, (MTAB *) rl_mod, + "RL", (UNIT *) &rl_unit, (REG *)rl_reg, (MTAB *)rl_mod, RL_NUMDR, DEV_RDX, 24, 1, DEV_RDX, 16, NULL, NULL, &rl_reset, &rl_boot, &rl_attach, &rl_detach, @@ -997,7 +997,7 @@ return auto_config (0, 0); /* Attach routine */ -t_stat rl_attach (UNIT *uptr, char *cptr) +t_stat rl_attach (UNIT *uptr, CONST char *cptr) { uint32 p; t_stat r; @@ -1042,7 +1042,7 @@ return (stat); /* Set size routine */ -t_stat rl_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rl_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; @@ -1052,12 +1052,12 @@ return SCPE_OK; /* Set bad block routine */ -t_stat rl_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rl_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { return pdp11_bad_block (uptr, RL_NUMSC, RL_NUMWD); } -t_stat rl_set_cover (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rl_set_cover (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { /* allowed only if in LOAD state */ if ((uptr->STAT & RLDS_M_STATE) != RLDS_LOAD) @@ -1066,14 +1066,14 @@ t_stat rl_set_cover (UNIT *uptr, int32 val, char *cptr, void *desc) return (SCPE_OK); } -t_stat rl_show_cover (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rl_show_cover (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "cover %s", (uptr->STAT & RLDS_CVO) ? "open" : "closed"); return (SCPE_OK); } /* simulate the LOAD button on the drive */ -t_stat rl_set_load (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rl_set_load (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val == 0) { /* LOAD */ if (uptr->STAT & RLDS_CVO) /* cover open? */ @@ -1095,14 +1095,14 @@ t_stat rl_set_load (UNIT *uptr, int32 val, char *cptr, void *desc) return (SCPE_OK); } -t_stat rl_show_load (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rl_show_load (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "load %s", ((uptr->STAT & RLDS_M_STATE) != RLDS_LOAD) ? "set" : "reset"); return (SCPE_OK); } -t_stat rl_show_dstate (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rl_show_dstate (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 cnt; @@ -1131,7 +1131,7 @@ t_stat rl_show_dstate (FILE *st, UNIT *uptr, int32 val, void *desc) #if defined (VM_PDP11) /* Handle SET RL RLV12|RLV11 */ -t_stat rl_set_ctrl (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rl_set_ctrl (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (UNIBUS) return (SCPE_NOFNC); @@ -1144,7 +1144,7 @@ t_stat rl_set_ctrl (UNIT *uptr, int32 val, char *cptr, void *desc) #endif /* SHOW RL will display the controller type */ -t_stat rl_show_ctrl (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rl_show_ctrl (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { const char *s = "RLV12"; diff --git a/PDP11/pdp11_rp.c b/PDP11/pdp11_rp.c index c2629e0a..79ba69b0 100644 --- a/PDP11/pdp11_rp.c +++ b/PDP11/pdp11_rp.c @@ -573,15 +573,15 @@ t_stat rp_mbrd (int32 *data, int32 ofs, int32 drv); t_stat rp_mbwr (int32 data, int32 ofs, int32 drv); t_stat rp_svc (UNIT *uptr); t_stat rp_reset (DEVICE *dptr); -t_stat rp_attach (UNIT *uptr, char *cptr); +t_stat rp_attach (UNIT *uptr, CONST char *cptr); t_stat rp_detach (UNIT *uptr); t_stat rp_boot (int32 unitno, DEVICE *dptr); void rp_set_er (int16 flg, int32 drv); void rp_clr_as (int32 mask); -void rp_update_ds (int16 flg, int32 drv); +void rp_update_ds (uint16 flg, int32 drv); t_stat rp_go (int32 drv); -t_stat rp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rp_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rp_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc); int32 rp_abort (void); t_stat rp_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *rp_description (DEVICE *dptr); @@ -1302,7 +1302,7 @@ return; /* Drive status update */ -void rp_update_ds (int16 flag, int32 drv) +void rp_update_ds (uint16 flag, int32 drv) { uint16 o_ds = rpds[drv]; @@ -1369,7 +1369,7 @@ return SCPE_OK; /* Device attach */ -t_stat rp_attach (UNIT *uptr, char *cptr) +t_stat rp_attach (UNIT *uptr, CONST char *cptr) { int32 drv, i, p; t_stat r; @@ -1418,7 +1418,7 @@ return sim_disk_detach (uptr); /* Set size command validation routine */ -t_stat rp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 dtype = GET_DTYPE (val); @@ -1430,7 +1430,7 @@ return SCPE_OK; /* Set bad block routine */ -t_stat rp_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rp_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { return pdp11_bad_block (uptr, drv_tab[GET_DTYPE (uptr->flags)].sect, RP_NUMWD); } diff --git a/PDP11/pdp11_rq.c b/PDP11/pdp11_rq.c index 1f680caf..e16c6863 100644 --- a/PDP11/pdp11_rq.c +++ b/PDP11/pdp11_rq.c @@ -839,17 +839,17 @@ t_stat rq_svc (UNIT *uptr); t_stat rq_tmrsvc (UNIT *uptr); t_stat rq_quesvc (UNIT *uptr); t_stat rq_reset (DEVICE *dptr); -t_stat rq_attach (UNIT *uptr, char *cptr); +t_stat rq_attach (UNIT *uptr, CONST char *cptr); t_stat rq_detach (UNIT *uptr); t_stat rq_boot (int32 unitno, DEVICE *dptr); -t_stat rq_set_wlk (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rq_set_type (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rq_set_ctype (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rq_show_type (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat rq_show_ctype (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat rq_show_wlk (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat rq_show_ctrl (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat rq_show_unitq (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat rq_set_wlk (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rq_set_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rq_set_ctype (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rq_show_type (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat rq_show_ctype (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat rq_show_wlk (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat rq_show_ctrl (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat rq_show_unitq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat rq_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *rq_description (DEVICE *dptr); @@ -2740,7 +2740,7 @@ return ERR; /* Set/clear hardware write lock */ -t_stat rq_set_wlk (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rq_set_wlk (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 dtyp = GET_DTYPE (uptr->flags); /* get drive type */ @@ -2751,7 +2751,7 @@ return SCPE_OK; /* Show write lock status */ -t_stat rq_show_wlk (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rq_show_wlk (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 dtyp = GET_DTYPE (uptr->flags); /* get drive type */ @@ -2765,7 +2765,7 @@ return SCPE_OK; /* Set unit type (and capacity if user defined) */ -t_stat rq_set_type (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rq_set_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 cap; uint32 max = sim_toffset_64? RA8U_EMAXC: RA8U_MAXC; @@ -2790,7 +2790,7 @@ return SCPE_OK; /* Show unit type */ -t_stat rq_show_type (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rq_show_type (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "%s", drv_tab[GET_DTYPE (uptr->flags)].name); return SCPE_OK; @@ -2798,7 +2798,7 @@ return SCPE_OK; /* Set controller type */ -t_stat rq_set_ctype (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rq_set_ctype (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { MSC *cp = rq_ctxmap[uptr->cnum]; @@ -2810,7 +2810,7 @@ return SCPE_OK; /* Show controller type */ -t_stat rq_show_ctype (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rq_show_ctype (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { MSC *cp = rq_ctxmap[uptr->cnum]; fprintf (st, "%s", ctlr_tab[cp->ctype].name); @@ -2819,7 +2819,7 @@ return SCPE_OK; /* Device attach */ -t_stat rq_attach (UNIT *uptr, char *cptr) +t_stat rq_attach (UNIT *uptr, CONST char *cptr) { MSC *cp = rq_ctxmap[uptr->cnum]; t_stat r; @@ -3064,7 +3064,7 @@ for (i = 0; i < RQ_SH_MAX; i = i + RQ_SH_PPL) { return; } -t_stat rq_show_unitq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rq_show_unitq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { MSC *cp = rq_ctxmap[uptr->cnum]; DEVICE *dptr = rq_devmap[uptr->cnum]; @@ -3095,7 +3095,7 @@ else fprintf (st, "Unit %d queues are empty\n", u); return SCPE_OK; } -t_stat rq_show_ctrl (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rq_show_ctrl (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { MSC *cp = rq_ctxmap[uptr->cnum]; DEVICE *dptr = rq_devmap[uptr->cnum]; diff --git a/PDP11/pdp11_rs.c b/PDP11/pdp11_rs.c index f58a8ce9..75b26f72 100644 --- a/PDP11/pdp11_rs.c +++ b/PDP11/pdp11_rs.c @@ -177,14 +177,14 @@ t_stat rs_mbrd (int32 *data, int32 ofs, int32 drv); t_stat rs_mbwr (int32 data, int32 ofs, int32 drv); t_stat rs_svc (UNIT *uptr); t_stat rs_reset (DEVICE *dptr); -t_stat rs_attach (UNIT *uptr, char *cptr); +t_stat rs_attach (UNIT *uptr, CONST char *cptr); t_stat rs_detach (UNIT *uptr); t_stat rs_boot (int32 unitno, DEVICE *dptr); void rs_set_er (uint16 flg, int32 drv); void rs_clr_as (int32 mask); void rs_update_ds (uint16 flg, int32 drv); t_stat rs_go (int32 drv); -t_stat rs_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rs_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); int32 rs_abort (void); t_stat rs_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *rs_description (DEVICE *dptr); @@ -596,7 +596,7 @@ return SCPE_OK; /* Device attach */ -t_stat rs_attach (UNIT *uptr, char *cptr) +t_stat rs_attach (UNIT *uptr, CONST char *cptr) { int32 drv, p; t_stat r; @@ -641,7 +641,7 @@ return detach_unit (uptr); /* Set size command validation routine */ -t_stat rs_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rs_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 dtype = GET_DTYPE (val); diff --git a/PDP11/pdp11_ry.c b/PDP11/pdp11_ry.c index 92472d8a..5a14efac 100644 --- a/PDP11/pdp11_ry.c +++ b/PDP11/pdp11_ry.c @@ -163,8 +163,8 @@ t_stat ry_svc (UNIT *uptr); t_stat ry_reset (DEVICE *dptr); t_stat ry_boot (int32 unitno, DEVICE *dptr); void ry_done (int32 esr_flags, uint8 new_ecode); -t_stat ry_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat ry_attach (UNIT *uptr, char *cptr); +t_stat ry_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat ry_attach (UNIT *uptr, CONST char *cptr); t_stat ry_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *ry_description (DEVICE *dptr); @@ -595,7 +595,7 @@ return auto_config (dptr->name, 1); /* run autoconfig */ /* Attach routine */ -t_stat ry_attach (UNIT *uptr, char *cptr) +t_stat ry_attach (UNIT *uptr, CONST char *cptr) { uint32 sz; @@ -610,7 +610,7 @@ return attach_unit (uptr, cptr); /* Set size routine */ -t_stat ry_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ry_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; diff --git a/PDP11/pdp11_stddev.c b/PDP11/pdp11_stddev.c index d7ede448..8e686053 100644 --- a/PDP11/pdp11_stddev.c +++ b/PDP11/pdp11_stddev.c @@ -94,14 +94,14 @@ t_stat tto_rd (int32 *data, int32 PA, int32 access); t_stat tto_wr (int32 data, int32 PA, int32 access); t_stat tto_svc (UNIT *uptr); t_stat tto_reset (DEVICE *dptr); -t_stat tty_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tty_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat clk_rd (int32 *data, int32 PA, int32 access); t_stat clk_wr (int32 data, int32 PA, int32 access); t_stat clk_svc (UNIT *uptr); int32 clk_inta (void); t_stat clk_reset (DEVICE *dptr); -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* TTI data structures @@ -400,7 +400,7 @@ sim_cancel (&tto_unit); /* deactivate unit */ return SCPE_OK; } -t_stat tty_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tty_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { tti_unit.flags = (tti_unit.flags & ~TT_MODE) | val; tto_unit.flags = (tto_unit.flags & ~TT_MODE) | val; @@ -490,7 +490,7 @@ return SCPE_OK; /* Set frequency */ -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -502,7 +502,7 @@ return SCPE_OK; /* Show frequency */ -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "%dHz", clk_tps); return SCPE_OK; diff --git a/PDP11/pdp11_sys.c b/PDP11/pdp11_sys.c index 4ff2ef1a..a8ad2e8c 100644 --- a/PDP11/pdp11_sys.c +++ b/PDP11/pdp11_sys.c @@ -238,7 +238,7 @@ const char *sim_stop_messages[] = { the PC at which to start the program. */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 c[6], d, i, cnt, csum; uint32 org; @@ -932,7 +932,7 @@ switch (pflag) { /* case on syntax */ <= 0 -number of extra words */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 bflag, cflag, d, i, j, reg, spec, n1, n2, disp, pflag; t_value by; diff --git a/PDP11/pdp11_ta.c b/PDP11/pdp11_ta.c index fca9a736..4303206f 100644 --- a/PDP11/pdp11_ta.c +++ b/PDP11/pdp11_ta.c @@ -129,7 +129,7 @@ t_stat ta_rd (int32 *data, int32 PA, int32 access); t_stat ta_wr (int32 data, int32 PA, int32 access); t_stat ta_svc (UNIT *uptr); t_stat ta_reset (DEVICE *dptr); -t_stat ta_attach (UNIT *uptr, char *cptr); +t_stat ta_attach (UNIT *uptr, CONST char *cptr); t_stat ta_detach (UNIT *uptr); t_stat ta_boot (int32 unitno, DEVICE *dptr); void ta_go (void); @@ -594,7 +594,7 @@ return auto_config (0, 0); /* Attach routine */ -t_stat ta_attach (UNIT *uptr, char *cptr) +t_stat ta_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/PDP11/pdp11_tc.c b/PDP11/pdp11_tc.c index bbbdc339..d424c9d6 100644 --- a/PDP11/pdp11_tc.c +++ b/PDP11/pdp11_tc.c @@ -298,7 +298,7 @@ t_stat dt_wr (int32 data, int32 PA, int32 access); t_stat dt_svc (UNIT *uptr); t_stat dt_svcdone (UNIT *uptr); t_stat dt_reset (DEVICE *dptr); -t_stat dt_attach (UNIT *uptr, char *cptr); +t_stat dt_attach (UNIT *uptr, CONST char *cptr); void dt_flush (UNIT *uptr); t_stat dt_detach (UNIT *uptr); t_stat dt_boot (int32 unitno, DEVICE *dptr); @@ -1226,7 +1226,7 @@ return SCPE_NOFNC; If 18b/36b, read data into buffer */ -t_stat dt_attach (UNIT *uptr, char *cptr) +t_stat dt_attach (UNIT *uptr, CONST char *cptr) { uint16 pdp8b[D8_NBSIZE]; uint16 pdp11b[D18_BSIZE]; diff --git a/PDP11/pdp11_td.c b/PDP11/pdp11_td.c index 7f02861b..13a445ba 100644 --- a/PDP11/pdp11_td.c +++ b/PDP11/pdp11_td.c @@ -49,7 +49,7 @@ protocol (RSP), or the modified radial serial protocol (MRSP), and were designed by asynchronous interfaces. 3.1.1 Block Number, Byte Count, and Drive Number -The TU58 uses a drive number, block number, and byte count to write or read data. Figure 1-4 (Chapter 1) +The TU58 uses a drive number, block number, and byte count to write or read data. 1-4 (Chapter 1) shows the locations of blocks on the tape. If all of the desired data is contained within a single 512-byte block, the byte count will be 512 or less. When the host asks for a particular block and a 512-or-Iess byte count, the TU58 positions the specified drive (unit) at that block and transfers the number of bytes specified. @@ -140,7 +140,7 @@ the serial line, which normally switches between two logic states called mark an space condition for at least one character time. This causes the TU58's UART to set its framing error bit. The TU58 interprets the framing error as Break. -If communications break· down, due to any transient problem, the host may restore order by sending +If communications breakdown, due to any transient problem, the host may restore order by sending Break and IN IT as outlined above. The faulty operations are cancelled, and the TU58 reinitializes itself, returns Continue, and waits for instructions. @@ -377,7 +377,7 @@ The TUS8 returns the following end packet. 13 XXXX XXXX CHECKSUM H OP CODE 1 INIT -This instruction causes the TU58 controller to reset itself to· a ready state. No tape positioning results +This instruction causes the TU58 controller to reset itself to a ready state. No tape positioning results from this operation. The command 'packet is tbe same as for NOP except for the op code and the resultant change to the low order checksum byte. The TU58 sends the same end packet as for NOP after reinitializing itself. There are no modifiers to IN IT. @@ -418,7 +418,7 @@ The write operation has to cope with the fact that the TU58 only has 128 bytes o necessary for the host to send a data packet and wait for the TU58 to write it before sending the next data packet. This is accomplished using the continue flag. The continue flag is a single byte response of 000 1 0000 from TU58 to host. The RSP write transaction for both write and write/verify operations is shown in -Figure 3·2. The MRSP write transaction for both write and write/verify operations is shown in Figure 3·3. +Figure 3.2. The MRSP write transaction for both write and write/verify operations is shown in Figure 3.3. OP CODE 4 (Resened) @@ -580,13 +580,13 @@ static const char *tdc_regnam[] = #define TD_BOOTSTRAP 10 /* bootstrap read */ #define TD_POSITION 11 /* position */ -static char *td_states[] = { +static const char *td_states[] = { "IDLE", "READ", "READ1", "READ2", "WRITE", "WRITE1", "WRITE2", "END", "END1", "INIT", "BOOTSTRAP","POSITION" }; -static char *td_ops[] = { +static const char *td_ops[] = { "NOP", "INI", "RD", "WR", "004", "POS", "006", "DIA", "GST", "SST", "MRSP", "013", "014", "015", "016", "017", "020", "021", "022", "023", "024", "025", "026", "027", @@ -598,7 +598,7 @@ static char *td_ops[] = { "END" }; -static char *td_csostates[] = { +static const char *td_csostates[] = { "GETOPC", "GETLEN", "GETDATA" }; @@ -644,8 +644,8 @@ static t_stat td_rd (int32 *data, int32 PA, int32 access); static t_stat td_wr (int32 data, int32 PA, int32 access); static t_stat td_svc (UNIT *uptr); static t_stat td_reset (DEVICE *dptr); -static t_stat td_set_ctrls (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat td_show_ctlrs (FILE *st, UNIT *uptr, int32 val, void *desc); +static t_stat td_set_ctrls (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat td_show_ctlrs (FILE *st, UNIT *uptr, int32 val, CONST void *desc); static t_stat td_boot (int32 unitno, DEVICE *dptr); static t_stat td_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); static void tdi_set_int (int32 ctlr, t_bool val); @@ -836,7 +836,7 @@ return SCPE_OK; } -static char *reg_access[] = {"Read", "ReadC", "Write", "WriteC", "WriteB"}; +static const char *reg_access[] = {"Read", "ReadC", "Write", "WriteC", "WriteB"}; typedef t_stat (*reg_read_routine) (CTLR *ctlr, int32 *data); @@ -892,7 +892,7 @@ static void td_process_packet(CTLR *ctlr) { uint32 unit; int32 opcode = ctlr->ibuf[0]; -char *opcode_name, *command_name; +const char *opcode_name, *command_name; switch (opcode) { case TD_OPDAT: @@ -1020,7 +1020,7 @@ switch (opcode) { sim_debug (TDDEB_TRC, ctlr->dptr, "td_process_packet(OPBOO) Unit=%d\n", ctlr->ibuf[4]); ctlr->unitno = ctlr->ibuf[1]; - fbuf = ctlr->uptr[ctlr->unitno].filebuf; + fbuf = (int8 *)ctlr->uptr[ctlr->unitno].filebuf; ctlr->block = 0; ctlr->txsize = 0; ctlr->p_state = TD_BOOTSTRAP; @@ -1053,7 +1053,7 @@ static t_stat td_svc (UNIT *uptr) int32 i, t, data_size; uint16 c, w; uint32 da; -int8 *fbuf = uptr->filebuf; +int8 *fbuf = (int8 *)uptr->filebuf; CTLR *ctlr = (CTLR *)uptr->up7; sim_debug (TDDEB_TRC, ctlr->dptr, "td_svc(%s, p_state=%s)\n", sim_uname(uptr), td_states[ctlr->p_state]); @@ -1459,7 +1459,7 @@ return "TU58 cartridge"; /* Change number of controllers */ -static t_stat td_set_ctrls (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat td_set_ctrls (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i; t_stat r; @@ -1495,7 +1495,7 @@ return td_reset (&tdc_dev); /* Show number of controllers */ -t_stat td_show_ctlrs (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat td_show_ctlrs (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "controllers=%d", td_ctrls); return SCPE_OK; diff --git a/PDP11/pdp11_tm.c b/PDP11/pdp11_tm.c index 3201dee0..adb815bb 100644 --- a/PDP11/pdp11_tm.c +++ b/PDP11/pdp11_tm.c @@ -170,14 +170,14 @@ t_stat tm_rd (int32 *data, int32 PA, int32 access); t_stat tm_wr (int32 data, int32 PA, int32 access); t_stat tm_svc (UNIT *uptr); t_stat tm_reset (DEVICE *dptr); -t_stat tm_attach (UNIT *uptr, char *cptr); +t_stat tm_attach (UNIT *uptr, CONST char *cptr); t_stat tm_detach (UNIT *uptr); t_stat tm_boot (int32 unitno, DEVICE *dptr); void tm_go (UNIT *uptr); int32 tm_updcsta (UNIT *uptr); void tm_set_done (void); t_stat tm_map_err (UNIT *uptr, t_stat st); -t_stat tm_vlock (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tm_vlock (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat tm_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *tm_description (DEVICE *dptr); @@ -608,7 +608,7 @@ return auto_config (0, 0); /* Attach routine */ -t_stat tm_attach (UNIT *uptr, char *cptr) +t_stat tm_attach (UNIT *uptr, CONST char *cptr) { t_stat r; int32 u = uptr - tm_dev.units; @@ -639,7 +639,7 @@ return sim_tape_detach (uptr); /* Write lock/enable routine */ -t_stat tm_vlock (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tm_vlock (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 u = uptr - tm_dev.units; diff --git a/PDP11/pdp11_tq.c b/PDP11/pdp11_tq.c index 608d3061..41dddeb7 100644 --- a/PDP11/pdp11_tq.c +++ b/PDP11/pdp11_tq.c @@ -45,7 +45,7 @@ - Fixed debug output of tape file positions when they are 64b. Added more debug output after positioning operations. Also, added textual display of the - command being performed (GUS,POS,RD,WR,etc…) + command being performed (GUS,POS,RD,WR,etc@) 18-Jun-07 RMS Added UNIT_IDLE flag to timer thread 16-Feb-06 RMS Revised for new magtape capacity checking 31-Oct-05 RMS Fixed address width for large files @@ -349,13 +349,13 @@ t_stat tq_svc (UNIT *uptr); t_stat tq_tmrsvc (UNIT *uptr); t_stat tq_quesvc (UNIT *uptr); t_stat tq_reset (DEVICE *dptr); -t_stat tq_attach (UNIT *uptr, char *cptr); +t_stat tq_attach (UNIT *uptr, CONST char *cptr); t_stat tq_detach (UNIT *uptr); t_stat tq_boot (int32 unitno, DEVICE *dptr); -t_stat tq_show_ctrl (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat tq_show_unitq (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat tq_set_type (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat tq_show_type (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat tq_show_ctrl (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat tq_show_unitq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat tq_set_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat tq_show_type (FILE *st, UNIT *uptr, int32 val, CONST void *desc); static t_stat tq_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *tq_description (DEVICE *dptr); @@ -2025,7 +2025,7 @@ return ERR; /* Device attach */ -t_stat tq_attach (UNIT *uptr, char *cptr) +t_stat tq_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -2280,7 +2280,7 @@ for (i = 0; i < TQ_SH_MAX; i = i + TQ_SH_PPL) { return; } -t_stat tq_show_unitq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat tq_show_unitq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 pkt, u = uptr - tq_dev.units; @@ -2308,7 +2308,7 @@ else fprintf (st, "Unit %d queues are empty\n", u); return SCPE_OK; } -t_stat tq_show_ctrl (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat tq_show_ctrl (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 i, pkt; @@ -2356,7 +2356,7 @@ return SCPE_OK; /* Set controller type (and capacity for user-defined type) */ -t_stat tq_set_type (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tq_set_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i, cap; uint32 max = sim_taddr_64? TQU_EMAXC: TQU_MAXC; @@ -2382,7 +2382,7 @@ return SCPE_OK; /* Show controller type and capacity */ -t_stat tq_show_type (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat tq_show_type (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "%s (%dMB)", drv_tab[tq_typ].name, (uint32) (drv_tab[tq_typ].cap >> 20)); return SCPE_OK; diff --git a/PDP11/pdp11_ts.c b/PDP11/pdp11_ts.c index 6cf42cce..1727960d 100644 --- a/PDP11/pdp11_ts.c +++ b/PDP11/pdp11_ts.c @@ -289,7 +289,7 @@ t_stat ts_rd (int32 *data, int32 PA, int32 access); t_stat ts_wr (int32 data, int32 PA, int32 access); t_stat ts_svc (UNIT *uptr); t_stat ts_reset (DEVICE *dptr); -t_stat ts_attach (UNIT *uptr, char *cptr); +t_stat ts_attach (UNIT *uptr, CONST char *cptr); t_stat ts_detach (UNIT *uptr); t_stat ts_boot (int32 unitno, DEVICE *dptr); int32 ts_updtssr (int32 t); @@ -1080,7 +1080,7 @@ return auto_config (0, 0); /* Attach */ -t_stat ts_attach (UNIT *uptr, char *cptr) +t_stat ts_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/PDP11/pdp11_tu.c b/PDP11/pdp11_tu.c index 7ab3ca04..067389af 100644 --- a/PDP11/pdp11_tu.c +++ b/PDP11/pdp11_tu.c @@ -244,11 +244,11 @@ t_stat tu_mbrd (int32 *data, int32 PA, int32 fmtr); t_stat tu_mbwr (int32 data, int32 PA, int32 fmtr); t_stat tu_svc (UNIT *uptr); t_stat tu_reset (DEVICE *dptr); -t_stat tu_attach (UNIT *uptr, char *cptr); +t_stat tu_attach (UNIT *uptr, CONST char *cptr); t_stat tu_detach (UNIT *uptr); t_stat tu_boot (int32 unitno, DEVICE *dptr); -t_stat tu_set_fmtr (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat tu_show_fmtr (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat tu_set_fmtr (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat tu_show_fmtr (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat tu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *tu_description (DEVICE *dptr); t_stat tu_go (int32 drv); @@ -947,7 +947,7 @@ return auto_config(0, 0); /* Attach routine */ -t_stat tu_attach (UNIT *uptr, char *cptr) +t_stat tu_attach (UNIT *uptr, CONST char *cptr) { int32 drv = uptr - tu_dev.units, flg; t_stat r; @@ -979,7 +979,7 @@ return sim_tape_detach (uptr); /* Set/show formatter type */ -t_stat tu_set_fmtr (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tu_set_fmtr (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr = find_dev_from_unit (uptr); @@ -993,7 +993,7 @@ else dptr->flags = dptr->flags & ~DEV_TM03; return SCPE_OK; } -t_stat tu_show_fmtr (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat tu_show_fmtr (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr = find_dev_from_unit (uptr); diff --git a/PDP11/pdp11_vh.c b/PDP11/pdp11_vh.c index 5e083935..38cdcdc2 100644 --- a/PDP11/pdp11_vh.c +++ b/PDP11/pdp11_vh.c @@ -346,20 +346,20 @@ static int32 vh_rxinta (void); static int32 vh_txinta (void); static t_stat vh_clear (int32 vh, t_bool flag); static t_stat vh_reset (DEVICE *dptr); -static t_stat vh_attach (UNIT *uptr, char *cptr); +static t_stat vh_attach (UNIT *uptr, CONST char *cptr); static t_stat vh_detach (UNIT *uptr); -static t_stat vh_show_detail (FILE *st, UNIT *uptr, int32 val, void *desc); -static t_stat vh_show_rbuf (FILE *st, UNIT *uptr, int32 val, void *desc); -static t_stat vh_show_txq (FILE *st, UNIT *uptr, int32 val, void *desc); +static t_stat vh_show_detail (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static t_stat vh_show_rbuf (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static t_stat vh_show_txq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); static t_stat vh_putc (int32 vh, TMLX *lp, int32 chan, int32 data); static void vh_set_config (TMLX *lp ); static void doDMA (int32 vh, int32 chan); -static t_stat vh_setmode (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat vh_show_vec (FILE *st, UNIT *uptr, int32 val, void *desc); -static t_stat vh_setnl (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat vh_set_log (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat vh_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat vh_show_log (FILE *st, UNIT *uptr, int32 val, void *desc); +static t_stat vh_setmode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat vh_show_vec (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static t_stat vh_setnl (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat vh_set_log (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat vh_set_nolog (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat vh_show_log (FILE *st, UNIT *uptr, int32 val, CONST void *desc); static t_stat vh_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); static t_stat vh_help_attach (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); static const char *vh_description (DEVICE *dptr); @@ -446,7 +446,7 @@ static const MTAB vh_mod[] = { NULL, &vh_show_txq, NULL, "Display transmit queue for each mux" }, { MTAB_XTD|MTAB_VDV|MTAB_NC, 0, NULL, "LOG=n=file", &vh_set_log, NULL, &vh_desc, "Display logging" }, - { MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, NULL, "NOLOG", + { MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, NULL, "NOLOG=n", &vh_set_nolog, NULL, &vh_desc, "Disable logging on designated line" }, { MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, "LOG", NULL, NULL, &vh_show_log, &vh_desc, "Display logging for all lines" }, @@ -1415,7 +1415,7 @@ static t_stat vh_reset ( DEVICE *dptr ) static t_stat vh_attach ( UNIT *uptr, - char *cptr ) + CONST char *cptr ) { if (uptr == &vh_unit[0]) return (tmxr_attach (&vh_desc, uptr, cptr)); @@ -1427,9 +1427,9 @@ static t_stat vh_detach ( UNIT *uptr ) return (tmxr_detach (&vh_desc, uptr)); } -static t_stat vh_show_vec (FILE *st, UNIT *uptr, int32 arg, void *desc) +static t_stat vh_show_vec (FILE *st, UNIT *uptr, int32 arg, CONST void *desc) { -TMXR *mp = (TMXR *) desc; +const TMXR *mp = (const TMXR *) desc; return show_vec (st, uptr, ((mp->lines * 2) / VH_LINES), desc); } @@ -1454,7 +1454,7 @@ static void vh_detail_line ( FILE *st, static t_stat vh_show_detail ( FILE *st, UNIT *uptr, int32 val, - void *desc ) + CONST void *desc ) { int32 i, j; @@ -1474,7 +1474,7 @@ static t_stat vh_show_detail ( FILE *st, static t_stat vh_show_rbuf ( FILE *st, UNIT *uptr, int32 val, - void *desc ) + CONST void *desc ) { int32 i; @@ -1486,7 +1486,7 @@ static t_stat vh_show_rbuf ( FILE *st, static t_stat vh_show_txq ( FILE *st, UNIT *uptr, int32 val, - void *desc ) + CONST void *desc ) { int32 i; @@ -1497,7 +1497,7 @@ static t_stat vh_show_txq ( FILE *st, /* SET LINES processor */ -static t_stat vh_setnl (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat vh_setnl (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; @@ -1529,7 +1529,7 @@ return vh_reset (&vh_dev); /* SET DHU/DHV mode processor */ -static t_stat vh_setmode (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat vh_setmode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -1540,27 +1540,26 @@ return SCPE_OK; /* SET LOG processor */ -static t_stat vh_set_log (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat vh_set_log (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { -char *tptr; t_stat r; +char gbuf[CBUFSIZE]; int32 ln; if (cptr == NULL) return SCPE_ARG; -tptr = strchr (cptr, '='); -if ((tptr == NULL) || (*tptr == 0)) +cptr = get_glyph (cptr, gbuf, '='); +if ((cptr == NULL) || (*cptr == 0) || (gbuf[0] == 0)) return SCPE_ARG; -*tptr++ = 0; -ln = (int32) get_uint (cptr, 10, (VH_MUXES * VH_LINES), &r); +ln = (int32) get_uint (gbuf, 10, vh_desc.lines, &r); if ((r != SCPE_OK) || (ln >= vh_desc.lines)) return SCPE_ARG; -return tmxr_set_log (NULL, ln, tptr, desc); +return tmxr_set_log (NULL, ln, cptr, desc); } /* SET NOLOG processor */ -static t_stat vh_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat vh_set_nolog (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat r; int32 ln; @@ -1575,7 +1574,7 @@ return tmxr_set_nolog (NULL, ln, NULL, desc); /* SHOW LOG processor */ -static t_stat vh_show_log (FILE *st, UNIT *uptr, int32 val, void *desc) +static t_stat vh_show_log (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 i; diff --git a/PDP11/pdp11_vt.c b/PDP11/pdp11_vt.c index 157dcac5..9309ecc8 100644 --- a/PDP11/pdp11_vt.c +++ b/PDP11/pdp11_vt.c @@ -84,21 +84,20 @@ extern int32 int_req[IPL_HLVL]; extern int32 int_vec[IPL_HLVL][32]; -DEVICE vt_dev; t_stat vt_rd(int32 *data, int32 PA, int32 access); t_stat vt_wr(int32 data, int32 PA, int32 access); t_stat vt_svc(UNIT *uptr); t_stat vt_reset(DEVICE *dptr); t_stat vt_boot(int32 unit, DEVICE *dptr); -t_stat vt_set_crt(UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat vt_show_crt(FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat vt_set_scale(UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat vt_show_scale(FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat vt_set_hspace(UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat vt_show_hspace(FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat vt_set_vspace(UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat vt_show_vspace(FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat vt_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); +t_stat vt_set_crt(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat vt_show_crt(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat vt_set_scale(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat vt_show_scale(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat vt_set_hspace(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat vt_show_hspace(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat vt_set_vspace(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat vt_show_vspace(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat vt_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *vt_description (DEVICE *dptr); /* VT11/VS60 data structures @@ -193,7 +192,7 @@ DEVICE vt_dev = { &vt_description }; -char *vt_regnam[] = { +const char *vt_regnam[] = { "DPC", "MPR", "XPR", @@ -381,7 +380,7 @@ vt_boot(int32 unit, DEVICE *dptr) /* SET/SHOW VT options: */ t_stat -vt_set_crt(UNIT *uptr, int32 val, char *cptr, void *desc) +vt_set_crt(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { char gbuf[CBUFSIZE]; @@ -406,14 +405,14 @@ vt_set_crt(UNIT *uptr, int32 val, char *cptr, void *desc) } t_stat -vt_show_crt(FILE *st, UNIT *uptr, int32 val, void *desc) +vt_show_crt(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "crt=VR%d", (int)vt11_display); return SCPE_OK; } t_stat -vt_set_scale(UNIT *uptr, int32 val, char *cptr, void *desc) +vt_set_scale(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat r; t_value v; @@ -431,14 +430,14 @@ vt_set_scale(UNIT *uptr, int32 val, char *cptr, void *desc) } t_stat -vt_show_scale(FILE *st, UNIT *uptr, int32 val, void *desc) +vt_show_scale(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "scale=%d", (int)vt11_scale); return SCPE_OK; } t_stat -vt_set_hspace(UNIT *uptr, int32 val, char *cptr, void *desc) +vt_set_hspace(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { char gbuf[CBUFSIZE]; if (vt11_init) @@ -456,14 +455,14 @@ vt_set_hspace(UNIT *uptr, int32 val, char *cptr, void *desc) } t_stat -vt_show_hspace(FILE *st, UNIT *uptr, int32 val, void *desc) +vt_show_hspace(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "hspace=%s", vt11_csp_w==12 ? "narrow" : "normal"); return SCPE_OK; } t_stat -vt_set_vspace(UNIT *uptr, int32 val, char *cptr, void *desc) +vt_set_vspace(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { char gbuf[CBUFSIZE]; if (vt11_init) @@ -481,7 +480,7 @@ vt_set_vspace(UNIT *uptr, int32 val, char *cptr, void *desc) } t_stat -vt_show_vspace(FILE *st, UNIT *uptr, int32 val, void *desc) +vt_show_vspace(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "vspace=%s", vt11_csp_h==26 ? "tall" : "normal"); return SCPE_OK; diff --git a/PDP11/pdp11_xq.c b/PDP11/pdp11_xq.c index d09e3da5..3b655086 100644 --- a/PDP11/pdp11_xq.c +++ b/PDP11/pdp11_xq.c @@ -263,24 +263,24 @@ t_stat xq_tmrsvc(UNIT * uptr); t_stat xq_startsvc(UNIT * uptr); t_stat xq_receivesvc(UNIT * uptr); t_stat xq_reset (DEVICE * dptr); -t_stat xq_attach (UNIT * uptr, char * cptr); +t_stat xq_attach (UNIT * uptr, CONST char * cptr); t_stat xq_detach (UNIT * uptr); -t_stat xq_showmac (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xq_setmac (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xq_show_filters (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xq_show_stats (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xq_set_stats (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xq_show_type (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xq_set_type (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xq_show_sanity (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xq_set_sanity (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xq_show_throttle (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xq_set_throttle (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xq_show_lockmode (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xq_set_lockmode (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xq_show_poll (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xq_set_poll (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xq_show_leds (FILE* st, UNIT* uptr, int32 val, void* desc); +t_stat xq_showmac (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xq_setmac (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xq_show_filters (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xq_show_stats (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xq_set_stats (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xq_show_type (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xq_set_type (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xq_show_sanity (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xq_set_sanity (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xq_show_throttle (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xq_set_throttle (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xq_show_lockmode (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xq_set_lockmode (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xq_show_poll (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xq_set_poll (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xq_show_leds (FILE* st, UNIT* uptr, int32 val, CONST void* desc); t_stat xq_process_xbdl(CTLR* xq); t_stat xq_dispatch_xbdl(CTLR* xq); t_stat xq_process_turbo_rbdl(CTLR* xq); @@ -645,7 +645,7 @@ t_stat xq_dep (t_value val, t_addr addr, UNIT* uptr, int32 sw) return SCPE_NOFNC; } -t_stat xq_showmac (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xq_showmac (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xq = xq_unit2ctlr(uptr); char buffer[20]; @@ -678,7 +678,7 @@ void xq_make_checksum(CTLR* xq) xq->var->mac_checksum[1] = (uint8)(checksum >> 8); } -t_stat xq_setmac (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xq_setmac (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { t_stat status; CTLR* xq = xq_unit2ctlr(uptr); @@ -694,7 +694,7 @@ t_stat xq_setmac (UNIT* uptr, int32 val, char* cptr, void* desc) return SCPE_OK; } -t_stat xq_set_stats (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xq_set_stats (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { /* this sets all ints in the stats structure to the integer passed */ CTLR* xq = xq_unit2ctlr(uptr); @@ -714,7 +714,7 @@ t_stat xq_set_stats (UNIT* uptr, int32 val, char* cptr, void* desc) return SCPE_OK; } -t_stat xq_show_stats (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xq_show_stats (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { const char* fmt = " %-15s%d\n"; CTLR* xq = xq_unit2ctlr(uptr); @@ -736,7 +736,7 @@ t_stat xq_show_stats (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xq_show_filters (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xq_show_filters (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xq = xq_unit2ctlr(uptr); char buffer[20]; @@ -767,7 +767,7 @@ t_stat xq_show_filters (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xq_show_type (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xq_show_type (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xq = xq_unit2ctlr(uptr); fprintf(st, "type="); @@ -787,7 +787,7 @@ t_stat xq_show_type (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xq_set_type (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xq_set_type (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { CTLR* xq = xq_unit2ctlr(uptr); if (!cptr) return SCPE_IERR; @@ -805,7 +805,7 @@ t_stat xq_set_type (UNIT* uptr, int32 val, char* cptr, void* desc) return SCPE_OK; } -t_stat xq_show_poll (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xq_show_poll (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xq = xq_unit2ctlr(uptr); if (xq->var->poll) @@ -818,7 +818,7 @@ t_stat xq_show_poll (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xq_set_poll (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xq_set_poll (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { CTLR* xq = xq_unit2ctlr(uptr); if (!cptr) return SCPE_IERR; @@ -851,7 +851,7 @@ t_stat xq_set_poll (UNIT* uptr, int32 val, char* cptr, void* desc) return SCPE_OK; } -t_stat xq_show_sanity (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xq_show_sanity (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xq = xq_unit2ctlr(uptr); @@ -859,7 +859,7 @@ t_stat xq_show_sanity (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xq_set_sanity (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xq_set_sanity (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { CTLR* xq = xq_unit2ctlr(uptr); if (!cptr) return SCPE_IERR; @@ -873,7 +873,7 @@ t_stat xq_set_sanity (UNIT* uptr, int32 val, char* cptr, void* desc) return SCPE_OK; } -t_stat xq_show_throttle (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xq_show_throttle (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xq = xq_unit2ctlr(uptr); @@ -884,11 +884,11 @@ t_stat xq_show_throttle (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xq_set_throttle (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xq_set_throttle (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { CTLR* xq = xq_unit2ctlr(uptr); char tbuf[CBUFSIZE], gbuf[CBUFSIZE]; - char *tptr = cptr; + const char *tptr = cptr; uint32 newval; uint32 set_time = xq->var->throttle_time; uint32 set_burst = xq->var->throttle_burst; @@ -945,7 +945,7 @@ t_stat xq_set_throttle (UNIT* uptr, int32 val, char* cptr, void* desc) return SCPE_OK; } -t_stat xq_show_lockmode (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xq_show_lockmode (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xq = xq_unit2ctlr(uptr); @@ -954,7 +954,7 @@ t_stat xq_show_lockmode (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xq_set_lockmode (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xq_set_lockmode (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { CTLR* xq = xq_unit2ctlr(uptr); if (!cptr) return SCPE_IERR; @@ -970,7 +970,7 @@ t_stat xq_set_lockmode (UNIT* uptr, int32 val, char* cptr, void* desc) return SCPE_OK; } -t_stat xq_show_leds (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xq_show_leds (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xq = xq_unit2ctlr(uptr); @@ -1552,7 +1552,7 @@ t_stat xq_process_xbdl(CTLR* xq) write_success[1] = 0x0860; /* DELQA Setup Packet Transmit Status Word 2 */ } else { /* loopback */ if ((DBG_PCK & xq->dev->dctrl) && xq->var->etherface) { - static char *loopback_modes[] = {"xq-write-loopback-Internal", "", "xq-write-loopback-Internal Extended", "xq-write-loopback-External"}; + static const char *loopback_modes[] = {"xq-write-loopback-Internal", "", "xq-write-loopback-Internal Extended", "xq-write-loopback-External"}; eth_packet_trace_ex(xq->var->etherface, xq->var->write_buffer.msg, xq->var->write_buffer.len, loopback_modes[(xq->var->csr >> 8) & 3], DBG_DAT & xq->dev->dctrl, DBG_PCK); } if (((~xq->var->csr & XQ_CSR_RL) && /* If a buffer descriptor list is good */ @@ -1600,7 +1600,7 @@ t_stat xq_process_xbdl(CTLR* xq) sim_debug(DBG_XBL, xq->dev, "implicitly chaining to buffer descriptor at: 0x%X\n", xq->var->xbdl_ba+12); /* update bdl status words */ - wstatus = Map_WriteW(xq->var->xbdl_ba + 8, 4, (uint16*) implicit_chain_status); + wstatus = Map_WriteW(xq->var->xbdl_ba + 8, 4, implicit_chain_status); if(wstatus) return xq_nxm_error(xq); } @@ -2808,7 +2808,7 @@ t_stat xq_receivesvc(UNIT* uptr) } /* attach device: */ -t_stat xq_attach(UNIT* uptr, char* cptr) +t_stat xq_attach(UNIT* uptr, CONST char* cptr) { t_stat status; char* tptr; diff --git a/PDP11/pdp11_xu.c b/PDP11/pdp11_xu.c index 4d48a66e..db6a191e 100644 --- a/PDP11/pdp11_xu.c +++ b/PDP11/pdp11_xu.c @@ -107,16 +107,16 @@ t_stat xu_wr(int32 data, int32 PA, int32 access); t_stat xu_svc(UNIT * uptr); t_stat xu_tmrsvc(UNIT * uptr); t_stat xu_reset (DEVICE * dptr); -t_stat xu_attach (UNIT * uptr, char * cptr); +t_stat xu_attach (UNIT * uptr, CONST char * cptr); t_stat xu_detach (UNIT * uptr); -t_stat xu_showmac (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xu_setmac (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xu_show_stats (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xu_set_stats (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xu_show_type (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xu_set_type (UNIT* uptr, int32 val, char* cptr, void* desc); -t_stat xu_show_throttle (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat xu_set_throttle (UNIT* uptr, int32 val, char* cptr, void* desc); +t_stat xu_showmac (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xu_setmac (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xu_show_stats (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xu_set_stats (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xu_show_type (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xu_set_type (UNIT* uptr, int32 val, CONST char* cptr, void* desc); +t_stat xu_show_throttle (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat xu_set_throttle (UNIT* uptr, int32 val, CONST char* cptr, void* desc); int32 xu_int (void); t_stat xu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat xu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); @@ -129,7 +129,7 @@ void xu_clrint (CTLR* xu); void xu_process_receive(CTLR* xu); void xu_dump_rxring(CTLR* xu); void xu_dump_txring(CTLR* xu); -t_stat xu_show_filters (FILE* st, UNIT* uptr, int32 val, void* desc); +t_stat xu_show_filters (FILE* st, UNIT* uptr, int32 val, CONST void* desc); t_stat xu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *xu_description (DEVICE *dptr); @@ -363,7 +363,7 @@ t_stat xu_dep (t_value val, t_addr addr, UNIT* uptr, int32 sw) return SCPE_NOFNC; } -t_stat xu_showmac (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xu_showmac (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xu = xu_unit2ctlr(uptr); char buffer[20]; @@ -373,7 +373,7 @@ t_stat xu_showmac (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xu_setmac (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xu_setmac (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { t_stat status; CTLR* xu = xu_unit2ctlr(uptr); @@ -384,7 +384,7 @@ t_stat xu_setmac (UNIT* uptr, int32 val, char* cptr, void* desc) return status; } -t_stat xu_set_stats (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xu_set_stats (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { CTLR* xu = xu_unit2ctlr(uptr); @@ -393,7 +393,7 @@ t_stat xu_set_stats (UNIT* uptr, int32 val, char* cptr, void* desc) return SCPE_OK; } -t_stat xu_show_stats (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xu_show_stats (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { const char* fmt = " %-26s%d\n"; CTLR* xu = xu_unit2ctlr(uptr); @@ -413,7 +413,7 @@ t_stat xu_show_stats (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xu_show_filters (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xu_show_filters (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xu = xu_unit2ctlr(uptr); char buffer[20]; @@ -431,7 +431,7 @@ t_stat xu_show_filters (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xu_show_type (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xu_show_type (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xu = xu_unit2ctlr(uptr); fprintf(st, "type="); @@ -442,7 +442,7 @@ t_stat xu_show_type (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xu_set_type (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xu_set_type (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { CTLR* xu = xu_unit2ctlr(uptr); if (!cptr) return SCPE_IERR; @@ -456,7 +456,7 @@ t_stat xu_set_type (UNIT* uptr, int32 val, char* cptr, void* desc) return SCPE_OK; } -t_stat xu_show_throttle (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat xu_show_throttle (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { CTLR* xu = xu_unit2ctlr(uptr); @@ -467,11 +467,11 @@ t_stat xu_show_throttle (FILE* st, UNIT* uptr, int32 val, void* desc) return SCPE_OK; } -t_stat xu_set_throttle (UNIT* uptr, int32 val, char* cptr, void* desc) +t_stat xu_set_throttle (UNIT* uptr, int32 val, CONST char* cptr, void* desc) { CTLR* xu = xu_unit2ctlr(uptr); char tbuf[CBUFSIZE], gbuf[CBUFSIZE]; - char *tptr = cptr; + const char *tptr = cptr; uint32 newval; uint32 set_time = xu->var->throttle_time; uint32 set_burst = xu->var->throttle_burst; @@ -1152,7 +1152,7 @@ int32 xu_command(CTLR* xu) case FC_RLSA: /* read load server address */ if (memcmp(xu->var->load_server, zeros, sizeof(ETH_MAC))) { /* not set, use default multicast load address */ - wstatus = Map_WriteB(xu->var->pcbb + 2, 6, (uint8*) mcast_load_server); + wstatus = Map_WriteB(xu->var->pcbb + 2, 6, (const uint8*) mcast_load_server); } else { /* is set, use load_server */ wstatus = Map_WriteB(xu->var->pcbb + 2, 6, xu->var->load_server); @@ -1734,7 +1734,7 @@ t_stat xu_wr(int32 data, int32 PA, int32 access) /* attach device: */ -t_stat xu_attach(UNIT* uptr, char* cptr) +t_stat xu_attach(UNIT* uptr, CONST char* cptr) { t_stat status; char* tptr; diff --git a/PDP18B/pdp18b_cpu.c b/PDP18B/pdp18b_cpu.c index 92d0833c..d375cc4b 100644 --- a/PDP18B/pdp18b_cpu.c +++ b/PDP18B/pdp18b_cpu.c @@ -386,9 +386,9 @@ t_bool build_dev_tab (void); t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void cpu_caf (void); void cpu_inst_hist (int32 addr, int32 inst); void cpu_intr_hist (int32 flag, int32 lvl); @@ -2165,7 +2165,7 @@ return SCPE_OK; /* Change memory size */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -2184,7 +2184,7 @@ return SCPE_OK; /* Change device number for a device */ -t_stat set_devno (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_devno (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -2210,7 +2210,7 @@ return SCPE_OK; /* Show device number for a device */ -t_stat show_devno (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_devno (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; DIB *dibp; @@ -2280,7 +2280,7 @@ return FALSE; /* Set in memory 3-cycle databreak register */ -t_stat set_3cyc_reg (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_3cyc_reg (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat r; int32 newv; @@ -2296,16 +2296,16 @@ return SCPE_OK; /* Show in-memory 3-cycle databreak register */ -t_stat show_3cyc_reg (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_3cyc_reg (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { -fprintf (st, "%s=", (char *) desc); +fprintf (st, "%s=", (const char *) desc); fprint_val (st, (t_value) M[val], 8, 18, PV_RZRO); return SCPE_OK; } /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -2336,10 +2336,11 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 l, j, k, di, lnt; -char *cptr = (char *) desc; + +const char *cptr = (const char *) desc; t_value sim_eval[2]; t_stat r; InstHistory *h; diff --git a/PDP18B/pdp18b_defs.h b/PDP18B/pdp18b_defs.h index d9f058df..10903f3f 100644 --- a/PDP18B/pdp18b_defs.h +++ b/PDP18B/pdp18b_defs.h @@ -555,9 +555,14 @@ typedef struct { /* Function prototypes */ -t_stat set_devno (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_devno (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat set_3cyc_reg (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_3cyc_reg (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_devno (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_devno (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat set_3cyc_reg (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_3cyc_reg (FILE *st, UNIT *uptr, int32 val, CONST void *desc); + +/* Translation tables */ +extern const int32 asc_to_baud[128]; +extern const char baud_to_asc[64]; +extern const char fio_to_asc[64]; #endif diff --git a/PDP18B/pdp18b_drm.c b/PDP18B/pdp18b_drm.c index 3976ffb1..860ae74d 100644 --- a/PDP18B/pdp18b_drm.c +++ b/PDP18B/pdp18b_drm.c @@ -76,7 +76,6 @@ int32 drm_wlk = 0; /* write lock */ int32 drm_time = 10; /* inter-word time */ int32 drm_stopioe = 1; /* stop on error */ -DEVICE drm_dev; int32 drm60 (int32 dev, int32 pulse, int32 AC); int32 drm61 (int32 dev, int32 pulse, int32 AC); int32 drm62 (int32 dev, int32 pulse, int32 AC); diff --git a/PDP18B/pdp18b_dt.c b/PDP18B/pdp18b_dt.c index a9c83310..d6158b65 100644 --- a/PDP18B/pdp18b_dt.c +++ b/PDP18B/pdp18b_dt.c @@ -347,13 +347,12 @@ static const int32 map_unit[16] = { /* Type 550 unit map */ 0, -1, -1, -1, -1, -1, -1, -1 }; -DEVICE dt_dev; int32 dt75 (int32 dev, int32 pulse, int32 dat); int32 dt76 (int32 dev, int32 pulse, int32 dat); int32 dt_iors (void); t_stat dt_svc (UNIT *uptr); t_stat dt_reset (DEVICE *dptr); -t_stat dt_attach (UNIT *uptr, char *cptr); +t_stat dt_attach (UNIT *uptr, CONST char *cptr); void dt_flush (UNIT *uptr); t_stat dt_detach (UNIT *uptr); void dt_deselect (int32 oldf); @@ -433,8 +432,8 @@ MTAB dt_mod[] = { { UNIT_8FMT + UNIT_11FMT, UNIT_8FMT, "12b", NULL, NULL }, { UNIT_8FMT + UNIT_11FMT, UNIT_11FMT, "16b", NULL, NULL }, #if defined (TC02) - { MTAB_XTD|MTAB_VDV|MTAB_NMO, DT_WC, "WC", "WC", &set_3cyc_reg, &show_3cyc_reg, "WC" }, - { MTAB_XTD|MTAB_VDV|MTAB_NMO, DT_CA, "CA", "CA", &set_3cyc_reg, &show_3cyc_reg, "CA" }, + { MTAB_XTD|MTAB_VDV|MTAB_NMO, DT_WC, "WC", "WC", &set_3cyc_reg, &show_3cyc_reg, (void *)"WC" }, + { MTAB_XTD|MTAB_VDV|MTAB_NMO, DT_CA, "CA", "CA", &set_3cyc_reg, &show_3cyc_reg, (void *)"CA" }, #endif { MTAB_XTD|MTAB_VDV, 0, "DEVNO", "DEVNO", &set_devno, &show_devno }, { 0 } @@ -1412,7 +1411,7 @@ return 0; If 18b/36b, read data into buffer */ -t_stat dt_attach (UNIT *uptr, char *cptr) +t_stat dt_attach (UNIT *uptr, CONST char *cptr) { uint16 pdp8b[D8_NBSIZE]; uint16 pdp11b[D18_BSIZE]; diff --git a/PDP18B/pdp18b_g2tty.c b/PDP18B/pdp18b_g2tty.c index 17b66804..baf58576 100644 --- a/PDP18B/pdp18b_g2tty.c +++ b/PDP18B/pdp18b_g2tty.c @@ -182,7 +182,7 @@ static void g2out_process_display_list (); static int g2out_send_new (); /* both G2IN/G2OUT: */ -t_stat g2_attach (UNIT *uptr, char *cptr); +t_stat g2_attach (UNIT *uptr, CONST char *cptr); t_stat g2_detach (UNIT *uptr); t_stat g2_reset (DEVICE *dptr); @@ -518,8 +518,8 @@ static void g2out_process_display_list() { */ static int g2out_send_new() { struct dspbuf *old = g2out_dspbufs + OLD; - struct dspbuf *new = g2out_dspbufs + NEW; - char *cp = new->buffer; + struct dspbuf *New = g2out_dspbufs + NEW; + char *cp = New->buffer; int cur = 0; int start; @@ -527,23 +527,23 @@ static int g2out_send_new() { * COULD have had undisplayed stuff on last screen before it was cleared?? * would need to have a transmit queue?? */ - if (new->count == 0) + if (New->count == 0) return 0; if (old->count && /* have old chars */ - memcmp(old->buffer, new->buffer, old->count) == 0) { /* and a prefix */ + memcmp(old->buffer, New->buffer, old->count) == 0) { /* and a prefix */ cur = old->count; cp += cur; } /* loop for chars while connected & tx enabled */ start = cur; - while (cur < new->count && g2_ldsc.conn && g2_ldsc.xmte) { + while (cur < New->count && g2_ldsc.conn && g2_ldsc.xmte) { if (g2out_putchar(*cp)) { cp++; cur++; } } - new->count = cur; /* only remember what's been sent */ + New->count = cur; /* only remember what's been sent */ return cur - start; /* remember number sent */ } @@ -580,7 +580,7 @@ return SCPE_OK; } /* Attach master unit */ -t_stat g2_attach (UNIT *uptr, char *cptr) +t_stat g2_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/PDP18B/pdp18b_lp.c b/PDP18B/pdp18b_lp.c index b024ded7..28f39496 100644 --- a/PDP18B/pdp18b_lp.c +++ b/PDP18B/pdp18b_lp.c @@ -85,7 +85,6 @@ static const char *lp62_cc[] = { "\f" }; -DEVICE lp62_dev; int32 lp62_65 (int32 dev, int32 pulse, int32 dat); int32 lp62_66 (int32 dev, int32 pulse, int32 dat); int32 lp62_iors (void); @@ -269,13 +268,12 @@ static const char *lp647_cc[] = { "\f" }; -DEVICE lp647_dev; int32 lp647_65 (int32 dev, int32 pulse, int32 dat); int32 lp647_66 (int32 dev, int32 pulse, int32 dat); int32 lp647_iors (void); t_stat lp647_svc (UNIT *uptr); t_stat lp647_reset (DEVICE *dptr); -t_stat lp647_attach (UNIT *uptr, char *cptr); +t_stat lp647_attach (UNIT *uptr, CONST char *cptr); t_stat lp647_detach (UNIT *uptr); /* Type 647 LPT data structures @@ -479,7 +477,7 @@ return (lp647_don? IOS_LPT: 0) | (lp647_err? IOS_LPT1: 0); /* Attach routine */ -t_stat lp647_attach (UNIT *uptr, char *cptr) +t_stat lp647_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; @@ -508,13 +506,12 @@ int32 lp09_don = 0; /* ready */ int32 lp09_err = 0; /* error */ int32 lp09_ie = 1; /* int enable */ int32 lp09_stopioe = 0; -DEVICE lp09_dev; int32 lp09_66 (int32 dev, int32 pulse, int32 dat); int32 lp09_iors (void); t_stat lp09_svc (UNIT *uptr); t_stat lp09_reset (DEVICE *dptr); -t_stat lp09_attach (UNIT *uptr, char *cptr); +t_stat lp09_attach (UNIT *uptr, CONST char *cptr); t_stat lp09_detach (UNIT *uptr); /* LP09 LPT data structures @@ -644,7 +641,7 @@ return (lp09_don? IOS_LPT: 0); /* Attach routine */ -t_stat lp09_attach (UNIT *uptr, char *cptr) +t_stat lp09_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; @@ -691,14 +688,13 @@ int32 lp15_lc = 0; int32 lp15_bp = 0; char lp15_buf[LP15_BSIZE + 1] = { 0 }; -DEVICE lp15_dev; int32 lp15_65 (int32 dev, int32 pulse, int32 dat); int32 lp15_66 (int32 dev, int32 pulse, int32 dat); int32 lp15_iors (void); t_stat lp15_svc (UNIT *uptr); t_stat lp15_reset (DEVICE *dptr); -int32 lp15_updsta (int32 new); +int32 lp15_updsta (int32 New); /* LP15 LPT data structures @@ -730,7 +726,7 @@ REG lp15_reg[] = { }; MTAB lp15_mod[] = { - { MTAB_XTD|MTAB_VDV|MTAB_NMO, LPT_CA, "CA", "CA", &set_3cyc_reg, &show_3cyc_reg, "CA" }, + { MTAB_XTD|MTAB_VDV|MTAB_NMO, LPT_CA, "CA", "CA", &set_3cyc_reg, &show_3cyc_reg, (void *)"CA" }, { MTAB_XTD|MTAB_VDV, 0, "DEVNO", "DEVNO", &set_devno, &show_devno }, { 0 } }; @@ -856,9 +852,9 @@ return SCPE_OK; /* Update status */ -int32 lp15_updsta (int32 new) +int32 lp15_updsta (int32 New) { -lp15_sta = (lp15_sta | new) & ~(STA_CLR | STA_ERR | STA_BUSY); +lp15_sta = (lp15_sta | New) & ~(STA_CLR | STA_ERR | STA_BUSY); if (lp15_sta & STA_EFLGS) /* update errors */ lp15_sta = lp15_sta | STA_ERR; if (sim_is_active (&lp15_unit)) diff --git a/PDP18B/pdp18b_mt.c b/PDP18B/pdp18b_mt.c index 82ac6299..18209837 100644 --- a/PDP18B/pdp18b_mt.c +++ b/PDP18B/pdp18b_mt.c @@ -138,12 +138,11 @@ int32 mt_time = 10; /* record latency */ int32 mt_stopioe = 1; /* stop on error */ uint8 *mtxb = NULL; /* transfer buffer */ -DEVICE mt_dev; int32 mt (int32 dev, int32 pulse, int32 dat); int32 mt_iors (void); t_stat mt_svc (UNIT *uptr); t_stat mt_reset (DEVICE *dptr); -t_stat mt_attach (UNIT *uptr, char *cptr); +t_stat mt_attach (UNIT *uptr, CONST char *cptr); t_stat mt_detach (UNIT *uptr); int32 mt_updcsta (UNIT *uptr, int32 val); t_stat mt_map_err (UNIT *uptr, t_stat st); @@ -191,10 +190,9 @@ MTAB mt_mod[] = { &sim_tape_set_fmt, &sim_tape_show_fmt, NULL }, { MTAB_XTD|MTAB_VUN, 0, "TCAPACITY", "TCAPACITY", &sim_tape_set_capac, &sim_tape_show_capac, NULL }, - { MTAB_XTD|MTAB_VDV|MTAB_NMO, MT_WC, "WC", "WC", &set_3cyc_reg, &show_3cyc_reg, "WC" }, - { MTAB_XTD|MTAB_VDV|MTAB_NMO, MT_CA, "CA", "CA", &set_3cyc_reg, &show_3cyc_reg, "CA" }, - { MTAB_XTD|MTAB_VDV, 0, "DEVNO", "DEVNO", - &set_devno, &show_devno, NULL }, + { MTAB_XTD|MTAB_VDV|MTAB_NMO, MT_WC, "WC", "WC", &set_3cyc_reg, &show_3cyc_reg, (void *)"WC" }, + { MTAB_XTD|MTAB_VDV|MTAB_NMO, MT_CA, "CA", "CA", &set_3cyc_reg, &show_3cyc_reg, (void *)"CA" }, + { MTAB_XTD|MTAB_VDV, 0, "DEVNO", "DEVNO", &set_devno, &show_devno, NULL }, { 0 } }; @@ -510,7 +508,7 @@ return (mt_sta & (STA_ERR | STA_DON))? IOS_MTA: 0; /* Attach routine */ -t_stat mt_attach (UNIT *uptr, char *cptr) +t_stat mt_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/PDP18B/pdp18b_rb.c b/PDP18B/pdp18b_rb.c index 56bd08b3..f25f3e7a 100644 --- a/PDP18B/pdp18b_rb.c +++ b/PDP18B/pdp18b_rb.c @@ -91,11 +91,10 @@ int32 rb_time = 10; /* inter-word time */ int32 rb_burst = 1; /* burst mode flag */ int32 rb_stopioe = 1; /* stop on error */ -DEVICE rb_dev; int32 rb71 (int32 dev, int32 pulse, int32 AC); t_stat rb_svc (UNIT *uptr); t_stat rb_reset (DEVICE *dptr); -int32 rb_updsta (int32 new); +int32 rb_updsta (int32 val); int32 rb_make_da (int32 dat); int32 rb_make_bcd (int32 dat); int32 rb_set_da (int32 dat, int32 old); @@ -280,9 +279,9 @@ return SCPE_OK; /* Update status */ -int32 rb_updsta (int32 new) +int32 rb_updsta (int32 val) { -rb_sta = (rb_sta | new) & ~(RBS_ERR | RBS_MBZ); /* clear err, mbz */ +rb_sta = (rb_sta | val) & ~(RBS_ERR | RBS_MBZ); /* clear err, mbz */ if (rb_sta & RBS_EFLGS) /* error? */ rb_sta = rb_sta | RBS_ERR; if (rb_sta & RBS_DON) /* done? clear busy */ diff --git a/PDP18B/pdp18b_rf.c b/PDP18B/pdp18b_rf.c index 1ed17c6e..448ddc3f 100644 --- a/PDP18B/pdp18b_rf.c +++ b/PDP18B/pdp18b_rf.c @@ -124,15 +124,14 @@ int32 rf_time = 10; /* inter-word time */ int32 rf_burst = 1; /* burst mode flag */ int32 rf_stopioe = 1; /* stop on error */ -DEVICE rf_dev; int32 rf70 (int32 dev, int32 pulse, int32 dat); int32 rf72 (int32 dev, int32 pulse, int32 dat); int32 rf_iors (void); t_stat rf_svc (UNIT *uptr); t_stat rf_reset (DEVICE *dptr); -int32 rf_updsta (int32 new); -t_stat rf_attach (UNIT *uptr, char *cptr); -t_stat rf_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +int32 rf_updsta (int32 news); +t_stat rf_attach (UNIT *uptr, CONST char *cptr); +t_stat rf_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* RF data structures @@ -173,8 +172,8 @@ MTAB rf_mod[] = { { UNIT_PLAT, (6 << UNIT_V_PLAT), NULL, "7P", &rf_set_size }, { UNIT_PLAT, (7 << UNIT_V_PLAT), NULL, "8P", &rf_set_size }, { UNIT_AUTO, UNIT_AUTO, "autosize", "AUTOSIZE", NULL }, - { MTAB_XTD|MTAB_VDV|MTAB_NMO, RF_WC, "WC", "WC", &set_3cyc_reg, &show_3cyc_reg, "WC" }, - { MTAB_XTD|MTAB_VDV|MTAB_NMO, RF_CA, "CA", "CA", &set_3cyc_reg, &show_3cyc_reg, "CA" }, + { MTAB_XTD|MTAB_VDV|MTAB_NMO, RF_WC, "WC", "WC", &set_3cyc_reg, &show_3cyc_reg, (void *)"WC" }, + { MTAB_XTD|MTAB_VDV|MTAB_NMO, RF_CA, "CA", "CA", &set_3cyc_reg, &show_3cyc_reg, (void *)"CA" }, { MTAB_XTD|MTAB_VDV, 0, "DEVNO", "DEVNO", &set_devno, &show_devno }, { 0 } }; @@ -346,7 +345,7 @@ return ((rf_sta & (RFS_ERR | RFS_DON))? IOS_RF: 0); /* Attach routine */ -t_stat rf_attach (UNIT *uptr, char *cptr) +t_stat rf_attach (UNIT *uptr, CONST char *cptr) { uint32 p, sz; uint32 ds_bytes = RF_DKSIZE * sizeof (int32); @@ -364,7 +363,7 @@ return attach_unit (uptr, cptr); /* Change disk size */ -t_stat rf_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rf_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val < 0) return SCPE_IERR; diff --git a/PDP18B/pdp18b_rp.c b/PDP18B/pdp18b_rp.c index 13dfe2c4..ff3d1ebe 100644 --- a/PDP18B/pdp18b_rp.c +++ b/PDP18B/pdp18b_rp.c @@ -162,15 +162,14 @@ int32 rp_stopioe = 1; /* stop on error */ int32 rp_swait = 10; /* seek time */ int32 rp_rwait = 10; /* rotate time */ -DEVICE rp_dev; int32 rp63 (int32 dev, int32 pulse, int32 dat); int32 rp64 (int32 dev, int32 pulse, int32 dat); int32 rp_iors (void); t_stat rp_svc (UNIT *uptr); void rp_updsta (int32 newa, int32 newb); -t_stat rp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat rp_reset (DEVICE *dptr); -t_stat rp_attach (UNIT *uptr, char *cptr); +t_stat rp_attach (UNIT *uptr, CONST char *cptr); t_stat rp_detach (UNIT *uptr); /* RP15 data structures @@ -525,7 +524,7 @@ return ((rp_sta & (STA_ERR | STA_DON)) || (rp_stb & STB_ATTN))? IOS_RP: 0; /* Attach unit */ -t_stat rp_attach (UNIT *uptr, char *cptr) +t_stat rp_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; @@ -548,7 +547,7 @@ return reason; /* Set size routine */ -t_stat rp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; diff --git a/PDP18B/pdp18b_stddev.c b/PDP18B/pdp18b_stddev.c index 506e143a..eb48231c 100644 --- a/PDP18B/pdp18b_stddev.c +++ b/PDP18B/pdp18b_stddev.c @@ -153,14 +153,14 @@ t_stat ptr_reset (DEVICE *dptr); t_stat ptp_reset (DEVICE *dptr); t_stat tti_reset (DEVICE *dptr); t_stat tto_reset (DEVICE *dptr); -t_stat ptr_attach (UNIT *uptr, char *cptr); -t_stat ptp_attach (UNIT *uptr, char *cptr); +t_stat ptr_attach (UNIT *uptr, CONST char *cptr); +t_stat ptp_attach (UNIT *uptr, CONST char *cptr); t_stat ptr_detach (UNIT *uptr); t_stat ptp_detach (UNIT *uptr); t_stat ptr_boot (int32 unitno, DEVICE *dptr); -t_stat tty_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat tty_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); int32 clk_task_upd (t_bool clr); extern int32 upd_iors (void); @@ -513,7 +513,7 @@ return SCPE_OK; /* Set frequency */ -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -525,7 +525,7 @@ return SCPE_OK; /* Show frequency */ -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, (clk_tps == 50)? "50Hz": "60Hz"); return SCPE_OK; @@ -647,7 +647,7 @@ return ((TST_INT (PTR)? IOS_PTR: 0) /* Attach routine */ -t_stat ptr_attach (UNIT *uptr, char *cptr) +t_stat ptr_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; @@ -965,7 +965,7 @@ return SCPE_OK; /* Attach routine */ -t_stat ptp_attach (UNIT *uptr, char *cptr) +t_stat ptp_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; @@ -1172,7 +1172,7 @@ return SCPE_OK; /* Set mode */ -t_stat tty_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tty_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { tti_unit.flags = (tti_unit.flags & ~(TTUF_UNIX|TT_PAR|TT_MODE)) | val; tto_unit.flags = (tto_unit.flags & ~(TTUF_UNIX|TT_PAR|TT_MODE)) | val; diff --git a/PDP18B/pdp18b_sys.c b/PDP18B/pdp18b_sys.c index 8e3a64f8..0bcd4719 100644 --- a/PDP18B/pdp18b_sys.c +++ b/PDP18B/pdp18b_sys.c @@ -110,9 +110,6 @@ extern REG cpu_reg[]; extern int32 *M; extern int32 memm; extern int32 PC; -extern const char asc_to_baud[128]; -extern const char baud_to_asc[64]; -extern const char fio_to_asc[64]; /* SCP data structures and interface routines @@ -234,7 +231,7 @@ return word; jmp addr or hlt */ -t_stat rim_load_47 (FILE *fileref, char *cptr) +t_stat rim_load_47 (FILE *fileref, const char *cptr) { int32 origin, val; @@ -271,7 +268,7 @@ return SCPE_OK; /* done */ word to execute (bit 1 of last character set) */ -t_stat hri_load_7915 (FILE *fileref, char *cptr) +t_stat hri_load_7915 (FILE *fileref, const char *cptr) { int32 bits, origin, val; char gbuf[CBUFSIZE]; @@ -317,7 +314,7 @@ return SCPE_OK; endblock/ origin (< 0) */ -t_stat bin_load_915 (FILE *fileref, char *cptr) +t_stat bin_load_915 (FILE *fileref, const char *cptr) { int32 i, val, bits, origin, count, cksum; @@ -359,7 +356,7 @@ return SCPE_OK; /* Binary loader, all formats */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { if (flag != 0) return SCPE_NOFNC; @@ -1149,11 +1146,11 @@ return get_uint (cptr, 8, 0777777, status); Outputs: status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 d, i, j, k, sign, damask, epcmask; t_stat r, sta = SCPE_OK; -char gbuf[CBUFSIZE]; +char gbuf[CBUFSIZE], cbuf[2*CBUFSIZE]; t_bool cflag; DEVICE *dptr; @@ -1165,12 +1162,9 @@ if (dptr == NULL) while (isspace (*cptr)) cptr++; -for (i = 1; (i < 5) && (cptr[i] != 0); i++) { - if (cptr[i] == 0) { - for (j = i + 1; j <= 5; j++) - cptr[j] = 0; - } - } +memset (cbuf, '\0', sizeof(cbuf)); +strcpy (cbuf, cptr); +cptr = cbuf; if ((sw & SWMASK ('A')) || ((*cptr == '\'') && cptr++)) { /* ASCII char? */ if (cptr[0] == 0) /* must have 1 char */ return SCPE_ARG; diff --git a/PDP18B/pdp18b_tt1.c b/PDP18B/pdp18b_tt1.c index 8409bdef..82daba6e 100644 --- a/PDP18B/pdp18b_tt1.c +++ b/PDP18B/pdp18b_tt1.c @@ -80,11 +80,11 @@ t_bool ttox_test_done (int32 ln); void ttox_set_done (int32 ln); void ttox_clr_done (int32 ln); int32 ttx_getln (int32 dev, int32 pulse); -t_stat ttx_attach (UNIT *uptr, char *cptr); +t_stat ttx_attach (UNIT *uptr, CONST char *cptr); t_stat ttx_detach (UNIT *uptr); t_stat ttx_reset (DEVICE *dptr); void ttx_reset_ln (int32 i); -t_stat ttx_vlines (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat ttx_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* TTIx data structures @@ -398,7 +398,7 @@ return; /* Attach master unit */ -t_stat ttx_attach (UNIT *uptr, char *cptr) +t_stat ttx_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -425,7 +425,7 @@ return r; /* Change number of lines */ -t_stat ttx_vlines (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat ttx_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; diff --git a/PDP8/pdp8_clk.c b/PDP8/pdp8_clk.c index a70efdcf..1fcaca0c 100644 --- a/PDP8/pdp8_clk.c +++ b/PDP8/pdp8_clk.c @@ -47,8 +47,8 @@ int32 tmxr_poll = 16000; /* term mux poll */ int32 clk (int32 IR, int32 AC); t_stat clk_svc (UNIT *uptr); t_stat clk_reset (DEVICE *dptr); -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* CLK data structures @@ -171,7 +171,7 @@ return SCPE_OK; /* Set frequency */ -t_stat clk_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat clk_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -183,7 +183,7 @@ return SCPE_OK; /* Show frequency */ -t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat clk_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, (clk_tps == 50)? "50Hz": "60Hz"); return SCPE_OK; diff --git a/PDP8/pdp8_cpu.c b/PDP8/pdp8_cpu.c index 7a2fc3b3..594fc047 100644 --- a/PDP8/pdp8_cpu.c +++ b/PDP8/pdp8_cpu.c @@ -244,9 +244,9 @@ InstHistory *hst = NULL; /* instruction history * t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_bool build_dev_tab (void); /* CPU data structures @@ -1407,7 +1407,7 @@ return SCPE_OK; /* Memory size change */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -1426,7 +1426,7 @@ return SCPE_OK; /* Change device number for a device */ -t_stat set_dev (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_dev (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -1452,7 +1452,7 @@ return SCPE_OK; /* Show device number for a device */ -t_stat show_dev (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_dev (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; DIB *dibp; @@ -1513,7 +1513,7 @@ return FALSE; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -1544,10 +1544,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 l, k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_stat r; t_value sim_eval; InstHistory *h; diff --git a/PDP8/pdp8_ct.c b/PDP8/pdp8_ct.c index 12b3e6e7..1db5942d 100644 --- a/PDP8/pdp8_ct.c +++ b/PDP8/pdp8_ct.c @@ -156,11 +156,10 @@ static uint8 ct_fnc_tab[SRA_M_FNC + 1] = { OP_WRI|OP_FWD, OP_REV, 0, OP_FWD }; -DEVICE ct_dev; int32 ct70 (int32 IR, int32 AC); t_stat ct_svc (UNIT *uptr); t_stat ct_reset (DEVICE *dptr); -t_stat ct_attach (UNIT *uptr, char *cptr); +t_stat ct_attach (UNIT *uptr, CONST char *cptr); t_stat ct_detach (UNIT *uptr); t_stat ct_boot (int32 unitno, DEVICE *dptr); uint32 ct_updsta (UNIT *uptr); @@ -650,7 +649,7 @@ return SCPE_OK; /* Attach routine */ -t_stat ct_attach (UNIT *uptr, char *cptr) +t_stat ct_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/PDP8/pdp8_defs.h b/PDP8/pdp8_defs.h index 086e1ae6..25c02dd3 100644 --- a/PDP8/pdp8_defs.h +++ b/PDP8/pdp8_defs.h @@ -209,8 +209,8 @@ typedef struct { /* Function prototypes */ -t_stat set_dev (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_dev (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_dev (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_dev (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void cpu_set_bootpc (int32 pc); diff --git a/PDP8/pdp8_df.c b/PDP8/pdp8_df.c index aeb226eb..b7b386af 100644 --- a/PDP8/pdp8_df.c +++ b/PDP8/pdp8_df.c @@ -108,7 +108,6 @@ int32 df_time = 10; /* inter-word time */ int32 df_burst = 1; /* burst mode flag */ int32 df_stopioe = 1; /* stop on error */ -DEVICE df_dev; int32 df60 (int32 IR, int32 AC); int32 df61 (int32 IR, int32 AC); int32 df62 (int32 IR, int32 AC); @@ -116,8 +115,8 @@ t_stat df_svc (UNIT *uptr); t_stat pcell_svc (UNIT *uptr); t_stat df_reset (DEVICE *dptr); t_stat df_boot (int32 unitno, DEVICE *dptr); -t_stat df_attach (UNIT *uptr, char *cptr); -t_stat df_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat df_attach (UNIT *uptr, CONST char *cptr); +t_stat df_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* DF32 data structures @@ -353,7 +352,7 @@ return SCPE_OK; /* Attach routine */ -t_stat df_attach (UNIT *uptr, char *cptr) +t_stat df_attach (UNIT *uptr, CONST char *cptr) { uint32 p, sz; uint32 ds_bytes = DF_DKSIZE * sizeof (int16); @@ -371,7 +370,7 @@ return attach_unit (uptr, cptr); /* Change disk size */ -t_stat df_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat df_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val < 0) return SCPE_IERR; diff --git a/PDP8/pdp8_dt.c b/PDP8/pdp8_dt.c index 2e65ad15..8caf47a7 100644 --- a/PDP8/pdp8_dt.c +++ b/PDP8/pdp8_dt.c @@ -276,12 +276,11 @@ int32 dt_substate = 0; int32 dt_logblk = 0; int32 dt_stopoffr = 0; -DEVICE dt_dev; int32 dt76 (int32 IR, int32 AC); int32 dt77 (int32 IR, int32 AC); t_stat dt_svc (UNIT *uptr); t_stat dt_reset (DEVICE *dptr); -t_stat dt_attach (UNIT *uptr, char *cptr); +t_stat dt_attach (UNIT *uptr, CONST char *cptr); void dt_flush (UNIT *uptr); t_stat dt_detach (UNIT *uptr); t_stat dt_boot (int32 unitno, DEVICE *dptr); @@ -1202,7 +1201,7 @@ return SCPE_OK; If 12b, read data into buffer */ -t_stat dt_attach (UNIT *uptr, char *cptr) +t_stat dt_attach (UNIT *uptr, CONST char *cptr) { uint32 pdp18b[D18_NBSIZE]; uint16 pdp11b[D18_NBSIZE], *fbuf; diff --git a/PDP8/pdp8_fpp.c b/PDP8/pdp8_fpp.c index 3109c02e..550f5a3a 100644 --- a/PDP8/pdp8_fpp.c +++ b/PDP8/pdp8_fpp.c @@ -167,7 +167,6 @@ uint32 fpp_last_lockbit = 0; /* last lockbit */ static FPN fpp_zero = { 0, { 0, 0, 0, 0, 0 } }; static FPN fpp_one = { 1, { 02000, 0, 0, 0, 0 } }; -DEVICE fpp_dev; int32 fpp55 (int32 IR, int32 AC); int32 fpp56 (int32 IR, int32 AC); void fpp_load_apt (uint32 apta); diff --git a/PDP8/pdp8_lp.c b/PDP8/pdp8_lp.c index aa2429f2..eeab5a84 100644 --- a/PDP8/pdp8_lp.c +++ b/PDP8/pdp8_lp.c @@ -38,11 +38,10 @@ extern int32 int_req, int_enable, dev_done, stop_inst; int32 lpt_err = 0; /* error flag */ int32 lpt_stopioe = 0; /* stop on error */ -DEVICE lpt_dev; int32 lpt (int32 IR, int32 AC); t_stat lpt_svc (UNIT *uptr); t_stat lpt_reset (DEVICE *dptr); -t_stat lpt_attach (UNIT *uptr, char *cptr); +t_stat lpt_attach (UNIT *uptr, CONST char *cptr); t_stat lpt_detach (UNIT *uptr); /* LPT data structures @@ -165,7 +164,7 @@ return SCPE_OK; /* Attach routine */ -t_stat lpt_attach (UNIT *uptr, char *cptr) +t_stat lpt_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; diff --git a/PDP8/pdp8_mt.c b/PDP8/pdp8_mt.c index 1d54dca2..3a0edb51 100644 --- a/PDP8/pdp8_mt.c +++ b/PDP8/pdp8_mt.c @@ -145,18 +145,17 @@ int32 mt_time = 10; /* record latency */ int32 mt_stopioe = 1; /* stop on error */ uint8 *mtxb = NULL; /* transfer buffer */ -DEVICE mt_dev; int32 mt70 (int32 IR, int32 AC); int32 mt71 (int32 IR, int32 AC); int32 mt72 (int32 IR, int32 AC); t_stat mt_svc (UNIT *uptr); t_stat mt_reset (DEVICE *dptr); -t_stat mt_attach (UNIT *uptr, char *cptr); +t_stat mt_attach (UNIT *uptr, CONST char *cptr); t_stat mt_detach (UNIT *uptr); int32 mt_updcsta (UNIT *uptr); int32 mt_ixma (int32 xma); t_stat mt_map_err (UNIT *uptr, t_stat st); -t_stat mt_vlock (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat mt_vlock (UNIT *uptr, int32 val, CONST char *cptr, void *desc); UNIT *mt_busy (void); void mt_set_done (void); @@ -618,7 +617,7 @@ return SCPE_OK; /* Attach routine */ -t_stat mt_attach (UNIT *uptr, char *cptr) +t_stat mt_attach (UNIT *uptr, CONST char *cptr) { t_stat r; int32 u = uptr - mt_dev.units; /* get unit number */ @@ -649,7 +648,7 @@ return sim_tape_detach (uptr); /* Write lock/enable routine */ -t_stat mt_vlock (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat mt_vlock (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 u = uptr - mt_dev.units; /* get unit number */ diff --git a/PDP8/pdp8_rf.c b/PDP8/pdp8_rf.c index ea1fd9a8..4ea1dc61 100644 --- a/PDP8/pdp8_rf.c +++ b/PDP8/pdp8_rf.c @@ -117,7 +117,6 @@ int32 rf_time = 10; /* inter-word time */ int32 rf_burst = 1; /* burst mode flag */ int32 rf_stopioe = 1; /* stop on error */ -DEVICE rf_dev; int32 rf60 (int32 IR, int32 AC); int32 rf61 (int32 IR, int32 AC); int32 rf62 (int32 IR, int32 AC); @@ -126,8 +125,8 @@ t_stat rf_svc (UNIT *uptr); t_stat pcell_svc (UNIT *uptr); t_stat rf_reset (DEVICE *dptr); t_stat rf_boot (int32 unitno, DEVICE *dptr); -t_stat rf_attach (UNIT *uptr, char *cptr); -t_stat rf_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rf_attach (UNIT *uptr, CONST char *cptr); +t_stat rf_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* RF08 data structures @@ -419,7 +418,7 @@ return SCPE_OK; /* Attach routine */ -t_stat rf_attach (UNIT *uptr, char *cptr) +t_stat rf_attach (UNIT *uptr, CONST char *cptr) { uint32 sz, p; uint32 ds_bytes = RF_DKSIZE * sizeof (int16); @@ -437,7 +436,7 @@ return attach_unit (uptr, cptr); /* Change disk size */ -t_stat rf_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rf_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val < 0) return SCPE_IERR; diff --git a/PDP8/pdp8_rk.c b/PDP8/pdp8_rk.c index 1eec430a..5a350c18 100644 --- a/PDP8/pdp8_rk.c +++ b/PDP8/pdp8_rk.c @@ -138,7 +138,6 @@ int32 rk_ma = 0; /* memory address */ int32 rk_swait = 10, rk_rwait = 10; /* seek, rotate wait */ int32 rk_stopioe = 1; /* stop on error */ -DEVICE rk_dev; int32 rk (int32 IR, int32 AC); t_stat rk_svc (UNIT *uptr); t_stat rk_reset (DEVICE *dptr); diff --git a/PDP8/pdp8_rl.c b/PDP8/pdp8_rl.c index 1cef9d09..d559a58c 100644 --- a/PDP8/pdp8_rl.c +++ b/PDP8/pdp8_rl.c @@ -174,16 +174,15 @@ int32 rl_swait = 10; /* seek wait */ int32 rl_rwait = 10; /* rotate wait */ int32 rl_stopioe = 1; /* stop on error */ -DEVICE rl_dev; int32 rl60 (int32 IR, int32 AC); int32 rl61 (int32 IR, int32 AC); t_stat rl_svc (UNIT *uptr); t_stat rl_reset (DEVICE *dptr); void rl_set_done (int32 error); t_stat rl_boot (int32 unitno, DEVICE *dptr); -t_stat rl_attach (UNIT *uptr, char *cptr); -t_stat rl_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rl_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rl_attach (UNIT *uptr, CONST char *cptr); +t_stat rl_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rl_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* RL8A data structures @@ -573,7 +572,7 @@ return SCPE_OK; /* Attach routine */ -t_stat rl_attach (UNIT *uptr, char *cptr) +t_stat rl_attach (UNIT *uptr, CONST char *cptr) { uint32 p; t_stat r; @@ -604,7 +603,7 @@ return SCPE_OK; /* Set size routine */ -t_stat rl_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rl_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; @@ -628,7 +627,7 @@ return SCPE_OK; sta = status code */ -t_stat rl_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rl_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, da = RL_BBMAP * RL_NUMBY; diff --git a/PDP8/pdp8_rx.c b/PDP8/pdp8_rx.c index aa264c11..6aea2f85 100644 --- a/PDP8/pdp8_rx.c +++ b/PDP8/pdp8_rx.c @@ -137,17 +137,16 @@ int32 rx_stopioe = 0; /* stop on error */ uint8 rx_buf[RX2_NUMBY] = { 0 }; /* sector buffer */ int32 rx_bptr = 0; /* buffer pointer */ -DEVICE rx_dev; int32 rx (int32 IR, int32 AC); t_stat rx_svc (UNIT *uptr); t_stat rx_reset (DEVICE *dptr); t_stat rx_boot (int32 unitno, DEVICE *dptr); -t_stat rx_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rx_attach (UNIT *uptr, char *cptr); +t_stat rx_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rx_attach (UNIT *uptr, CONST char *cptr); void rx_cmd (void); void rx_done (int32 esr_flags, int32 new_ecode); -t_stat rx_settype (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rx_showtype (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat rx_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rx_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* RX8E data structures @@ -593,7 +592,7 @@ return SCPE_OK; /* Attach routine */ -t_stat rx_attach (UNIT *uptr, char *cptr) +t_stat rx_attach (UNIT *uptr, CONST char *cptr) { uint32 sz; @@ -608,7 +607,7 @@ return attach_unit (uptr, cptr); /* Set size routine */ -t_stat rx_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rx_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; @@ -620,7 +619,7 @@ return SCPE_OK; /* Set controller type */ -t_stat rx_settype (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rx_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i; @@ -644,7 +643,7 @@ return SCPE_OK; /* Show controller type */ -t_stat rx_showtype (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rx_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (rx_28) fprintf (st, "RX28"); else fprintf (st, "RX8E"); diff --git a/PDP8/pdp8_sys.c b/PDP8/pdp8_sys.c index 0b45873d..6a351de0 100644 --- a/PDP8/pdp8_sys.c +++ b/PDP8/pdp8_sys.c @@ -68,9 +68,9 @@ extern REG cpu_reg[]; extern uint16 M[]; t_stat fprint_sym_fpp (FILE *of, t_value *val); -t_stat parse_sym_fpp (char *cptr, t_value *val); -char *parse_field (char *cptr, uint32 max, uint32 *val, uint32 c); -char *parse_fpp_xr (char *cptr, uint32 *xr, t_bool inc); +t_stat parse_sym_fpp (CONST char *cptr, t_value *val); +CONST char *parse_field (CONST char *cptr, uint32 max, uint32 *val, uint32 c); +CONST char *parse_fpp_xr (CONST char *cptr, uint32 *xr, t_bool inc); int32 test_fpp_addr (uint32 ad, uint32 max); /* SCP data structures and interface routines @@ -241,7 +241,7 @@ return SCPE_IERR; /* Binary loader Two loader formats are supported: RIM loader (-r) and BIN (-b) loader. */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { if ((*cptr != 0) || (flag != 0)) return SCPE_ARG; @@ -518,7 +518,7 @@ static const int32 fop_val[] = { Inputs: *of = output stream inst = mask bits - class = instruction class code + Class = instruction class code sp = space needed? Outputs: status = space needed @@ -529,13 +529,13 @@ static const int32 fop_val[] = { #define fputs(_s,f) Fprintf(f,"%s",_s) #define fputc(_c,f) Fprintf(f,"%c",_c) -int32 fprint_opr (FILE *of, int32 inst, int32 class, int32 sp) +int32 fprint_opr (FILE *of, int32 inst, int32 Class, int32 sp) { int32 i, j; for (i = 0; opc_val[i] >= 0; i++) { /* loop thru ops */ j = (opc_val[i] >> I_V_FL) & I_M_FL; /* get class */ - if ((j == class) && (opc_val[i] & inst)) { /* same class? */ + if ((j == Class) && (opc_val[i] & inst)) { /* same class? */ inst = inst & ~opc_val[i]; /* mask bit set? */ fprintf (of, (sp? " %s": "%s"), opcode[i]); sp = 1; @@ -678,7 +678,7 @@ return SCPE_ARG; status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { uint32 cflag, d, i, j, k; t_stat r; @@ -868,7 +868,7 @@ return SCPE_ARG; /* FPP8 instruction parse */ -t_stat parse_sym_fpp (char *cptr, t_value *val) +t_stat parse_sym_fpp (CONST char *cptr, t_value *val) { uint32 i, j, ad, xr; int32 broff, nwd; @@ -969,7 +969,7 @@ return -nwd; /* Parse field */ -char *parse_field (char *cptr, uint32 max, uint32 *val, uint32 c) +CONST char *parse_field (CONST char *cptr, uint32 max, uint32 *val, uint32 c) { char gbuf[CBUFSIZE]; t_stat r; @@ -983,7 +983,7 @@ return cptr; /* Parse index register */ -char *parse_fpp_xr (char *cptr, uint32 *xr, t_bool inc) +CONST char *parse_fpp_xr (CONST char *cptr, uint32 *xr, t_bool inc) { char gbuf[CBUFSIZE]; uint32 len; diff --git a/PDP8/pdp8_td.c b/PDP8/pdp8_td.c index c5fef70e..7cfaa942 100644 --- a/PDP8/pdp8_td.c +++ b/PDP8/pdp8_td.c @@ -193,11 +193,10 @@ int32 td_dctime = 40000; /* decel time */ int32 td_stopoffr = 0; static uint8 tdb_mtk[DT_NUMDR][D18_LPERB]; /* mark track bits */ -DEVICE td_dev; int32 td77 (int32 IR, int32 AC); t_stat td_svc (UNIT *uptr); t_stat td_reset (DEVICE *dptr); -t_stat td_attach (UNIT *uptr, char *cptr); +t_stat td_attach (UNIT *uptr, CONST char *cptr); void td_flush (UNIT *uptr); t_stat td_detach (UNIT *uptr); t_stat td_boot (int32 unitno, DEVICE *dptr); @@ -208,7 +207,7 @@ int32 td_trailer (UNIT *uptr, int32 blk, int32 line); int32 td_read (UNIT *uptr, int32 blk, int32 line); void td_write (UNIT *uptr, int32 blk, int32 line, int32 datb); int32 td_set_mtk (int32 code, int32 u, int32 k); -t_stat td_show_pos (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat td_show_pos (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern uint16 M[]; @@ -766,7 +765,7 @@ return SCPE_OK; Set up mark track bit array */ -t_stat td_attach (UNIT *uptr, char *cptr) +t_stat td_attach (UNIT *uptr, CONST char *cptr) { uint32 pdp18b[D18_NBSIZE]; uint16 pdp11b[D18_NBSIZE], *fbuf; @@ -931,7 +930,7 @@ return k; /* Show position */ -t_stat td_show_pos (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat td_show_pos (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if ((uptr->flags & UNIT_ATT) == 0) return SCPE_UNATT; if (uptr->pos < DT_EZLIN) /* rev end zone? */ diff --git a/PDP8/pdp8_tsc.c b/PDP8/pdp8_tsc.c index dba64a86..8ae91948 100644 --- a/PDP8/pdp8_tsc.c +++ b/PDP8/pdp8_tsc.c @@ -60,7 +60,6 @@ extern int32 tsc_enb; /* enable */ #define UNIT_V_SN699 (UNIT_V_UF + 0) /* SN 699 or above */ #define UNIT_SN699 (1 << UNIT_V_SN699) -DEVICE tsc_dev; int32 tsc (int32 IR, int32 AC); t_stat tsc_reset (DEVICE *dptr); diff --git a/PDP8/pdp8_tt.c b/PDP8/pdp8_tt.c index 9de5eef0..af2bc9db 100644 --- a/PDP8/pdp8_tt.c +++ b/PDP8/pdp8_tt.c @@ -54,7 +54,7 @@ t_stat tti_svc (UNIT *uptr); t_stat tto_svc (UNIT *uptr); t_stat tti_reset (DEVICE *dptr); t_stat tto_reset (DEVICE *dptr); -t_stat tty_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tty_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* TTI data structures @@ -273,7 +273,7 @@ sim_cancel (&tto_unit); /* deactivate unit */ return SCPE_OK; } -t_stat tty_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tty_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { tti_unit.flags = (tti_unit.flags & ~TT_MODE) | val; tto_unit.flags = (tto_unit.flags & ~TT_MODE) | val; diff --git a/PDP8/pdp8_ttx.c b/PDP8/pdp8_ttx.c index 9b0643c4..acf3da02 100644 --- a/PDP8/pdp8_ttx.c +++ b/PDP8/pdp8_ttx.c @@ -70,14 +70,13 @@ int32 ttx_tps = 100; /* polls per second */ TMLN ttx_ldsc[TTX_LINES] = { {0} }; /* line descriptors */ TMXR ttx_desc = { TTX_LINES, 0, 0, ttx_ldsc }; /* mux descriptor */ -DEVICE ttix_dev, ttox_dev; int32 ttix (int32 IR, int32 AC); int32 ttox (int32 IR, int32 AC); t_stat ttix_svc (UNIT *uptr); t_stat ttix_reset (DEVICE *dptr); t_stat ttox_svc (UNIT *uptr); t_stat ttox_reset (DEVICE *dptr); -t_stat ttx_attach (UNIT *uptr, char *cptr); +t_stat ttx_attach (UNIT *uptr, CONST char *cptr); t_stat ttx_detach (UNIT *uptr); void ttx_enbdis (int32 dis); @@ -376,7 +375,7 @@ return SCPE_OK; /* Attach master unit */ -t_stat ttx_attach (UNIT *uptr, char *cptr) +t_stat ttx_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/PDQ-3/pdq3_cpu.c b/PDQ-3/pdq3_cpu.c index 78efb30e..5526fd1c 100644 --- a/PDQ-3/pdq3_cpu.c +++ b/PDQ-3/pdq3_cpu.c @@ -52,8 +52,8 @@ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_boot(int32 unitnum, DEVICE *dptr); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_size (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_size (FILE *st, UNIT *uptr, int32 val, const void *desc); /* some forwards */ static t_stat Raise(uint16 err); @@ -68,8 +68,8 @@ static t_stat DoSIGNAL(uint16 sem); static uint16 Get(t_addr addr); static void Put(t_addr addr, uint16 val); static uint16 GetSIB(uint8 segno); -static t_stat cpu_set_flag(UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat cpu_set_noflag(UNIT *uptr, int32 value, char *cptr, void *desc); +static t_stat cpu_set_flag(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat cpu_set_noflag(UNIT *uptr, int32 value, CONST char *cptr, void *desc); static t_stat ssr_read(t_addr ioaddr, uint16 *data); static t_stat ssr_write(t_addr ioaddr, uint16 data); @@ -1600,12 +1600,12 @@ t_stat sim_instr(void) return rc; } -static t_stat cpu_set_flag(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_flag(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uptr->flags |= value; return SCPE_OK; } -static t_stat cpu_set_noflag(UNIT *uptr, int32 value, char *cptr, void *desc) { +static t_stat cpu_set_noflag(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uptr->flags &= ~value; return SCPE_OK; } diff --git a/PDQ-3/pdq3_defs.h b/PDQ-3/pdq3_defs.h index 0d839d1b..0914ed79 100644 --- a/PDQ-3/pdq3_defs.h +++ b/PDQ-3/pdq3_defs.h @@ -291,7 +291,7 @@ #define OP_AB 13 typedef struct _optable { - char* name; + const char* name; int16 flags; } OPTABLE; extern OPTABLE optable[]; @@ -367,7 +367,7 @@ extern t_stat con_binit(); extern t_stat fdc_boot(int32 unitnum, DEVICE *dptr); extern t_stat fdc_read(t_addr ioaddr, uint16 *data); extern t_stat fdc_write(t_addr ioaddr, uint16 data); -extern t_stat fdc_autoload(); +extern t_stat fdc_autoload(int unitnum); extern t_stat fdc_binit(); extern t_stat tim_read(t_addr ioaddr, uint16 *data); extern t_stat tim_write(t_addr ioaddr, uint16 data); @@ -399,11 +399,11 @@ typedef struct _devctxt { extern t_stat pdq3_ioinit(); extern t_stat add_ioh(IOINFO* ioi); extern t_stat del_ioh(IOINFO* ioi); -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat set_iovec(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iovec(FILE *st, UNIT *uptr, int value, void *desc); -extern t_stat set_ioprio(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_ioprio(FILE *st, UNIT *uptr, int value, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat set_iovec(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iovec(FILE *st, UNIT *uptr, int value, CONST void *desc); +extern t_stat set_ioprio(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_ioprio(FILE *st, UNIT *uptr, int value, CONST void *desc); #endif diff --git a/PDQ-3/pdq3_fdc.c b/PDQ-3/pdq3_fdc.c index 0f0ff808..afd334e4 100644 --- a/PDQ-3/pdq3_fdc.c +++ b/PDQ-3/pdq3_fdc.c @@ -162,9 +162,9 @@ extern UNIT cpu_unit; /* forwards */ t_stat fdc_svc (UNIT *uptr); t_stat fdc_reset (DEVICE *uptr); -t_stat fdc_attach(UNIT *uptr, char *cptr); +t_stat fdc_attach(UNIT *uptr, CONST char *cptr); t_stat fdc_detach(UNIT *uptr); -t_stat pdq3_diskCreate(FILE *fileref, char *ctlr_comment); +t_stat pdq3_diskCreate(FILE *fileref, const char *ctlr_comment); t_stat pdq3_diskFormat(DISK_INFO *myDisk); static void dma_reqinterrupt(); @@ -271,7 +271,7 @@ t_stat fdc_boot(int32 unitnum, DEVICE *dptr) { return fdc_autoload(unitnum); } -t_stat fdc_attach(UNIT *uptr, char *cptr) { +t_stat fdc_attach(UNIT *uptr, CONST char *cptr) { t_stat rc; int i = uptr->u_unitno; char header[4]; @@ -811,7 +811,7 @@ static DRVDATA *fdc_select() { return curdrv; } -static char *cmdlist[] = { +static const char *cmdlist[] = { "Restore","Seek","Step","Step+Upd","StepIn","StepIn+Upd", "StepOut","StepOut+Upd","Read","Read+Multi","Write","WriteMulti", "ReadAddr","ForceInt","ReadTrack","WriteTrack" @@ -1076,7 +1076,7 @@ t_stat fdc_read(t_addr ioaddr, uint16 *data) { * * If the IMD file already exists, the user will be given the option of overwriting it. */ -t_stat pdq3_diskCreate(FILE *fileref, char *ctlr_comment) { +t_stat pdq3_diskCreate(FILE *fileref, const char *ctlr_comment) { DISK_INFO *myDisk = NULL; char *comment; char *curptr; @@ -1096,7 +1096,7 @@ t_stat pdq3_diskCreate(FILE *fileref, char *ctlr_comment) { } } - if((curptr = comment = calloc(1, MAX_COMMENT_LEN)) == 0) { + if((curptr = comment = (char *)calloc(1, MAX_COMMENT_LEN)) == 0) { sim_printf("PDQ3_IMD: Memory allocation failure.\n"); return (SCPE_MEM); } diff --git a/PDQ-3/pdq3_mem.c b/PDQ-3/pdq3_mem.c index 2443e976..70fd60a8 100644 --- a/PDQ-3/pdq3_mem.c +++ b/PDQ-3/pdq3_mem.c @@ -87,7 +87,7 @@ t_stat del_ioh(IOINFO* ioi) { /****************************************************************************** * configuration *****************************************************************************/ -t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc) { +t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE* dptr; DEVCTXT* ctxt; IOINFO* ioi; @@ -108,7 +108,7 @@ t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc) { return SCPE_OK; } -t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc) { +t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat rc; DEVICE* dptr; DEVCTXT* ctxt; @@ -124,7 +124,7 @@ t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc) { return rc; } -t_stat set_iovec(UNIT *uptr, int32 val, char *cptr, void *desc) { +t_stat set_iovec(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat rc; DEVICE* dptr; DEVCTXT* ctxt; @@ -140,7 +140,7 @@ t_stat set_iovec(UNIT *uptr, int32 val, char *cptr, void *desc) { return rc; } -t_stat show_iovec(FILE *st, UNIT *uptr, int value, void *desc) { +t_stat show_iovec(FILE *st, UNIT *uptr, int value, CONST void *desc) { DEVICE* dptr; DEVCTXT* ctxt; IOINFO* ioi; @@ -159,7 +159,7 @@ t_stat show_iovec(FILE *st, UNIT *uptr, int value, void *desc) { return SCPE_OK; } -t_stat set_ioprio(UNIT *uptr, int32 val, char *cptr, void *desc) { +t_stat set_ioprio(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat rc; DEVICE* dptr; DEVCTXT* ctxt; @@ -175,7 +175,7 @@ t_stat set_ioprio(UNIT *uptr, int32 val, char *cptr, void *desc) { return rc; } -t_stat show_ioprio(FILE *st, UNIT *uptr, int value, void *desc) { +t_stat show_ioprio(FILE *st, UNIT *uptr, int value, CONST void *desc) { DEVICE* dptr; DEVCTXT* ctxt; IOINFO* ioi; @@ -316,7 +316,7 @@ t_stat WriteB(t_addr base, t_addr boffset, uint16 data, uint32 dctrl) return Write(ea, 0, wdata, 0); } -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc; t_addr i; diff --git a/PDQ-3/pdq3_sys.c b/PDQ-3/pdq3_sys.c index 8919d4c8..f94fc266 100644 --- a/PDQ-3/pdq3_sys.c +++ b/PDQ-3/pdq3_sys.c @@ -35,12 +35,12 @@ t_stat parse_sym_m (char *cptr, t_value *val, int32 sw); void pdq3_vm_init (void); -static t_stat pdq3_cmd_exstack(int32 arg, char *buf); -static t_stat pdq3_cmd_exmscw(int32 arg, char *buf); -static t_stat pdq3_cmd_extib(int32 arg, char *buf); -static t_stat pdq3_cmd_exseg(int32 arg, char *buf); -static t_stat pdq3_cmd_calltree(int32 arg, char *buf); -static t_stat pdq3_cmd_namealias(int32 arg, char *buf); +static t_stat pdq3_cmd_exstack(int32 arg, CONST char *buf); +static t_stat pdq3_cmd_exmscw(int32 arg, CONST char *buf); +static t_stat pdq3_cmd_extib(int32 arg, CONST char *buf); +static t_stat pdq3_cmd_exseg(int32 arg, CONST char *buf); +static t_stat pdq3_cmd_calltree(int32 arg, CONST char *buf); +static t_stat pdq3_cmd_namealias(int32 arg, CONST char *buf); extern DEVICE cpu_dev; extern UNIT cpu_unit; @@ -94,10 +94,10 @@ CTAB pdq3_cmds[] = { { NULL, NULL, 0, NULL } }; -void (*sim_vm_init)(void) = &pdq3_vm_init; +WEAK void (*sim_vm_init)(void) = &pdq3_vm_init; /* Loader proper */ -t_stat sim_load (FILE *fi, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fi, CONST char *cptr, CONST char *fnam, int flag) { int rombase; int c1, c2, i; @@ -155,7 +155,7 @@ void pdq3_fprint_addr (FILE *st, DEVICE *dptr, t_addr addr) return; } -t_addr pdq3_parse_addr (DEVICE *dptr, const char *cptr, const char **tptr) +t_addr pdq3_parse_addr (DEVICE *dptr, CONST char *cptr, CONST char **tptr) { t_addr seg, off; if (cptr[0] == '#') { @@ -188,7 +188,7 @@ void pdq3_vm_init (void) return; } -static t_stat pdq3_cmd_exstack(int32 arg, char *buf) +static t_stat pdq3_cmd_exstack(int32 arg, CONST char *buf) { t_stat rc; uint16 data; @@ -205,24 +205,24 @@ static t_stat pdq3_cmd_exstack(int32 arg, char *buf) return SCPE_OK; } -static t_stat pdq3_cmd_exmscw(int32 arg, char *buf) +static t_stat pdq3_cmd_exmscw(int32 arg, CONST char *buf) { - const char* next; + CONST char* next; return dbg_dump_mscw(stdout, buf[0] ? pdq3_parse_addr(&cpu_dev, buf, &next) : reg_mp); } -static t_stat pdq3_cmd_extib(int32 arg, char *buf) +static t_stat pdq3_cmd_extib(int32 arg, CONST char *buf) { - const char* next; + CONST char* next; return dbg_dump_tib(stdout, buf[0] ? pdq3_parse_addr(&cpu_dev, buf, &next) : reg_ctp); } -static t_stat pdq3_cmd_exseg(int32 arg, char *buf) +static t_stat pdq3_cmd_exseg(int32 arg, CONST char *buf) { t_stat rc; uint16 nsegs; uint16 segnum, segptr; - const char* next; + CONST char* next; FILE* fd = stdout; /* XXX */ if (reg_ssv < 0x2030 || reg_ssv > 0xf000) { @@ -246,17 +246,19 @@ static t_stat pdq3_cmd_exseg(int32 arg, char *buf) return rc; } -static t_stat pdq3_cmd_calltree(int32 arg, char *buf) { +static t_stat pdq3_cmd_calltree(int32 arg, CONST char *buf) { return dbg_calltree(stdout); } -static t_stat pdq3_cmd_namealias(int32 arg, char *buf) { - char* name, *alias; +static t_stat pdq3_cmd_namealias(int32 arg, CONST char *buf) { + char* name, *alias, gbuf[2*CBUFSIZE]; if (buf[0]==0) return dbg_listalias(stdout); - name = strtok(buf, " \t"); + gbuf[sizeof(gbuf)-1] = '\0'; + strncpy (gbuf, buf, sizeof(gbuf)-1); + name = strtok(gbuf, " \t"); alias = strtok(NULL, " \t\n"); return dbg_enteralias(name,alias); } @@ -616,7 +618,7 @@ t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, Outputs: status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { return SCPE_ARG; } diff --git a/S3/s3_cd.c b/S3/s3_cd.c index 0a335164..2fec5bc9 100644 --- a/S3/s3_cd.c +++ b/S3/s3_cd.c @@ -47,7 +47,7 @@ int32 s1sel, s2sel; char rbuf[CBUFSIZE]; /* > CDR_WIDTH */ t_stat cdr_svc (UNIT *uptr); t_stat cdr_boot (int32 unitno, DEVICE *dptr); -t_stat cdr_attach (UNIT *uptr, char *cptr); +t_stat cdr_attach (UNIT *uptr, CONST char *cptr); t_stat cd_reset (DEVICE *dptr); t_stat read_card (int32 ilnt, int32 mod); t_stat punch_card (int32 ilnt, int32 mod); @@ -430,7 +430,7 @@ return SCPE_OK; /* Card reader attach */ -t_stat cdr_attach (UNIT *uptr, char *cptr) +t_stat cdr_attach (UNIT *uptr, CONST char *cptr) { carderr = lastcard = notready = 0; /* clear last card */ return attach_unit (uptr, cptr); diff --git a/S3/s3_cpu.c b/S3/s3_cpu.c index e4a37400..2abe2210 100644 --- a/S3/s3_cpu.c +++ b/S3/s3_cpu.c @@ -386,7 +386,7 @@ FILE *trace; t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); t_stat cpu_boot (int32 unitno, DEVICE *dptr1); extern int32 pkb (int32 op, int32 m, int32 n, int32 data); extern int32 crd (int32 op, int32 m, int32 n, int32 data); @@ -1807,7 +1807,7 @@ M[addr] = val & 0xff; return SCPE_OK; } -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; diff --git a/S3/s3_disk.c b/S3/s3_disk.c index 1faea2e5..feef384c 100644 --- a/S3/s3_disk.c +++ b/S3/s3_disk.c @@ -45,19 +45,19 @@ int32 read_sector(UNIT *uptr, char *dbuf, int32 sect); int32 write_sector(UNIT *uptr, char *dbuf, int32 sect); t_stat r1_svc (UNIT *uptr); t_stat r1_boot (int32 unitno, DEVICE *dptr); -t_stat r1_attach (UNIT *uptr, char *cptr); +t_stat r1_attach (UNIT *uptr, CONST char *cptr); t_stat r1_reset (DEVICE *dptr); t_stat f1_svc (UNIT *uptr); t_stat f1_boot (int32 unitno, DEVICE *dptr); -t_stat f1_attach (UNIT *uptr, char *cptr); +t_stat f1_attach (UNIT *uptr, CONST char *cptr); t_stat f1_reset (DEVICE *dptr); t_stat r2_svc (UNIT *uptr); t_stat r2_boot (int32 unitno, DEVICE *dptr); -t_stat r2_attach (UNIT *uptr, char *cptr); +t_stat r2_attach (UNIT *uptr, CONST char *cptr); t_stat r2_reset (DEVICE *dptr); t_stat f2_svc (UNIT *uptr); t_stat f2_boot (int32 unitno, DEVICE *dptr); -t_stat f2_attach (UNIT *uptr, char *cptr); +t_stat f2_attach (UNIT *uptr, CONST char *cptr); t_stat f2_reset (DEVICE *dptr); extern int32 GetMem(int32 addr); extern int32 PutMem(int32 addr, int32 data); @@ -678,28 +678,28 @@ return SCPE_OK; /* Disk unit attach */ -t_stat r1_attach (UNIT *uptr, char *cptr) +t_stat r1_attach (UNIT *uptr, CONST char *cptr) { diskerr[0] = notrdy[0] = seekbusy[0] = 0; /* clear status */ found[0] = 0; uptr -> u3 = 0; /* cylinder 0 */ return attach_unit (uptr, cptr); } -t_stat f1_attach (UNIT *uptr, char *cptr) +t_stat f1_attach (UNIT *uptr, CONST char *cptr) { diskerr[0] = notrdy[0] = seekbusy[0] = 0; /* clear status */ found[0] = 0; uptr -> u3 = 0; /* cylinder 0 */ return attach_unit (uptr, cptr); } -t_stat r2_attach (UNIT *uptr, char *cptr) +t_stat r2_attach (UNIT *uptr, CONST char *cptr) { diskerr[1] = notrdy[1] = seekbusy[1] = 0; /* clear status */ found[1] = 0; uptr -> u3 = 0; /* cylinder 0 */ return attach_unit (uptr, cptr); } -t_stat f2_attach (UNIT *uptr, char *cptr) +t_stat f2_attach (UNIT *uptr, CONST char *cptr) { diskerr[1] = notrdy[1] = seekbusy[1] = 0; /* clear status */ found[1] = 0; diff --git a/S3/s3_lp.c b/S3/s3_lp.c index ff1fa307..c2921665 100644 --- a/S3/s3_lp.c +++ b/S3/s3_lp.c @@ -38,7 +38,7 @@ extern int32 iochk, ind[64]; int32 cct[CCT_LNT] = { 03 }; int32 cctlnt = 66, cctptr = 0, lines = 0, lflag = 0; t_stat lpt_reset (DEVICE *dptr); -t_stat lpt_attach (UNIT *uptr, char *cptr); +t_stat lpt_attach (UNIT *uptr, CONST char *cptr); t_stat write_line (int32 ilnt, int32 mod); t_stat space (int32 lines, int32 lflag); t_stat carriage_control (int32 action, int32 mod); @@ -354,7 +354,7 @@ return SCPE_OK; /* Attach routine */ -t_stat lpt_attach (UNIT *uptr, char *cptr) +t_stat lpt_attach (UNIT *uptr, CONST char *cptr) { cctptr = 0; /* clear cct ptr */ lines = 0; /* no cc action */ diff --git a/S3/s3_sys.c b/S3/s3_sys.c index 08cd00e4..4a0f351a 100644 --- a/S3/s3_sys.c +++ b/S3/s3_sys.c @@ -44,7 +44,7 @@ extern REG cpu_reg[]; extern unsigned char M[]; extern int32 saved_PC, IAR[]; extern unsigned char ebcdic_to_ascii[]; -char *parse_addr(char *cptr, char *gbuf, t_addr *addr, int32 *addrtype); +CONST char *parse_addr(CONST char *cptr, char *gbuf, t_addr *addr, int32 *addrtype); int32 printf_sym (FILE *of, char *strg, t_addr addr, uint32 *val, UNIT *uptr, int32 sw); @@ -225,7 +225,7 @@ char regname[15][8] = { "(P2IAR)", load starts at the current value of the P1IAR. */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 i, addr = 0, cnt = 0; @@ -506,7 +506,7 @@ return -(oplen - 1); status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 cflag, i = 0, j, r, oplen, addtyp, saveaddr, vptr; char gbuf[CBUFSIZE]; @@ -928,7 +928,7 @@ switch (opcode[j].form) { /* Get operands based on return (-(oplen-1)); } -char *parse_addr(char *cptr, char *gbuf, t_addr *addr, int32 *addrtype) +CONST char *parse_addr(CONST char *cptr, char *gbuf, t_addr *addr, int32 *addrtype) { int32 nybble = 0; char temp[32]; diff --git a/SAGE/chip_defs.h b/SAGE/chip_defs.h index 6a082757..cc86cb65 100644 --- a/SAGE/chip_defs.h +++ b/SAGE/chip_defs.h @@ -97,7 +97,7 @@ typedef struct { UNIT* term; UNIT* poll; } SERMUX; -t_stat mux_attach(UNIT*,char*,SERMUX*); +t_stat mux_attach(UNIT*,CONST char*,SERMUX*); t_stat mux_detach(UNIT*,SERMUX*); /***************************************************************************************** @@ -365,7 +365,7 @@ extern t_stat i8272_reset(I8272* chip); extern void i8272_seldrv(I8272* chip,int drvnum); extern t_stat i8272_abortio(I8272* chip); extern t_stat i8272_finish(I8272* chip); -extern t_stat i8272_attach(UNIT *uptr, char *cptr); +extern t_stat i8272_attach(UNIT *uptr, CONST char *cptr); extern t_stat i8272_detach(UNIT *uptr); extern t_stat i8272_setDMA(I8272* chip, uint32 dma_addr); diff --git a/SAGE/i8253.c b/SAGE/i8253.c index 10070e78..9066b120 100644 --- a/SAGE/i8253.c +++ b/SAGE/i8253.c @@ -37,7 +37,7 @@ DEBTAB i8253_dt[] = { { NULL, 0 } }; -static char* rltype[] = { "latch","8bitL","8bitH", "16bit" }; +static const char* rltype[] = { "latch","8bitL","8bitH", "16bit" }; t_stat i8253_write(I8253* chip, int addr, uint32 value) { diff --git a/SAGE/i8272.c b/SAGE/i8272.c index f67a9495..cc6b5441 100644 --- a/SAGE/i8272.c +++ b/SAGE/i8272.c @@ -87,8 +87,8 @@ int32 find_unit_index (UNIT *uptr); static void i8272_interrupt(I8272* chip,int delay); /* need to be implemented elsewhere */ -extern void PutByteDMA(const uint32 Addr, const uint32 Value); -extern uint8 GetByteDMA(const uint32 Addr); +extern void PutByteDMA(uint32 Addr, uint8 Value); +extern uint8 GetByteDMA(uint32 Addr); #define IMAGE_TYPE_DSK 1 /* Flat binary "DSK" image file. */ #define IMAGE_TYPE_IMD 2 /* ImageDisk "IMD" image file. */ @@ -147,12 +147,12 @@ DEBTAB i8272_dt[] = { { NULL, 0 } }; -static char* states[] = { +static const char* states[] = { "invalid", "S_CMD", "S_CMDREAD", "S_EXEC", "S_DATAWRITE", "S_SECWRITE", "S_SECREAD", "S_DATAREAD", "S_RESULT" }; -static char* messages[] = { +static const char* messages[] = { "Undefined Command 0x0", "Undefined Command 0x1", "Read Track", "Specify", "Sense Drive Status", "Write Data", "Read Data", "Recalibrate", "Sense Interrupt Status","Write Deleted Data", "Read ID", "Undefined Command 0xB", @@ -204,7 +204,7 @@ int32 find_unit_index (UNIT *uptr) } /* Attach routine */ -t_stat i8272_attach(UNIT *uptr, char *cptr) +t_stat i8272_attach(UNIT *uptr, CONST char *cptr) { char header[4]; t_stat rc; diff --git a/SAGE/m68k_cpu.c b/SAGE/m68k_cpu.c index cd902b4f..a6c67c04 100644 --- a/SAGE/m68k_cpu.c +++ b/SAGE/m68k_cpu.c @@ -217,7 +217,7 @@ DEBTAB m68kcpu_dt[] = { { NULL, 0 } }; -static char *condnames[] = { +static const char *condnames[] = { "RA", "SR", "HI", "LS", "CC", "CS", "NE", "EQ", "VC", "VS", "PL", "MI", "GE", "LT", "GT", "LE" }; diff --git a/SAGE/m68k_cpu.h b/SAGE/m68k_cpu.h index a8cf07e9..0d8725dc 100644 --- a/SAGE/m68k_cpu.h +++ b/SAGE/m68k_cpu.h @@ -169,8 +169,8 @@ typedef struct { extern t_stat add_iohandler(UNIT* u,void* ctxt, t_stat (*io)(IOHANDLER* ioh,uint32* value,uint32 rw,uint32 mask)); extern t_stat del_iohandler(void* ctxt); -extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* public memory access routines */ extern t_stat ReadPB(t_addr a, uint32* val); @@ -192,13 +192,13 @@ extern t_stat (*Mem)(t_addr a,uint8** mem); extern t_stat m68k_mem(t_addr a,uint8** mem); /* cpu_mod for alternative implementations */ -extern t_stat m68k_set_cpu(UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat m68k_show_cpu(FILE* st,UNIT *uptr, int32 value, void *desc); -extern t_stat m68k_set_size(UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat m68k_set_fpu(UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat m68k_set_nofpu(UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat m68kcpu_set_flag(UNIT *uptr, int32 value, char *cptr, void *desc); -extern t_stat m68kcpu_set_noflag(UNIT *uptr, int32 value, char *cptr, void *desc); +extern t_stat m68k_set_cpu(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat m68k_show_cpu(FILE* st,UNIT *uptr, int32 value, CONST void *desc); +extern t_stat m68k_set_size(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat m68k_set_fpu(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat m68k_set_nofpu(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat m68kcpu_set_flag(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +extern t_stat m68kcpu_set_noflag(UNIT *uptr, int32 value, CONST char *cptr, void *desc); extern t_stat m68kcpu_reset(DEVICE* dptr); extern t_stat m68kcpu_ex(t_value* eval_array, t_addr addr, UNIT *uptr, int32 switches); extern t_stat m68kcpu_dep(t_value value, t_addr addr, UNIT* uptr, int32 switches); @@ -218,9 +218,9 @@ extern void (*m68kcpu_trapcallback)(DEVICE* cpudev,int trapnum); /* standard MTAB declarations for most 68K CPUs */ #define M68KCPU_STDMOD \ -{ UNIT_CPUTYPE_MASK, CPU_TYPE_68000, "", "68000", &m68k_set_cpu, &m68k_show_cpu, "68000" },\ -{ UNIT_CPUTYPE_MASK, CPU_TYPE_68008, "", "68008", &m68k_set_cpu, &m68k_show_cpu, "68008" },\ -{ UNIT_CPUTYPE_MASK, CPU_TYPE_68010, "", "68010", &m68k_set_cpu, &m68k_show_cpu, "68010" },\ +{ UNIT_CPUTYPE_MASK, CPU_TYPE_68000, "", "68000", &m68k_set_cpu, &m68k_show_cpu, (void *)"68000" },\ +{ UNIT_CPUTYPE_MASK, CPU_TYPE_68008, "", "68008", &m68k_set_cpu, &m68k_show_cpu, (void *)"68008" },\ +{ UNIT_CPUTYPE_MASK, CPU_TYPE_68010, "", "68010", &m68k_set_cpu, &m68k_show_cpu, (void *)"68010" },\ { UNIT_CPU_MSIZE, (1u << 16), NULL, "64K", &m68k_set_size },\ { UNIT_CPU_MSIZE, (1u << 17), NULL, "128K", &m68k_set_size },\ { UNIT_CPU_MSIZE, (1u << 18), NULL, "256K", &m68k_set_size },\ diff --git a/SAGE/m68k_mem.c b/SAGE/m68k_mem.c index 3ba7d8be..ca013692 100644 --- a/SAGE/m68k_mem.c +++ b/SAGE/m68k_mem.c @@ -51,7 +51,7 @@ int m68k_dma = 0; #if 0 /* TODO */ -t_stat m68k_set_mmu(UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat m68k_set_mmu(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uptr->flags |= value; @@ -60,7 +60,7 @@ t_stat m68k_set_mmu(UNIT *uptr, int32 value, char *cptr, void *desc) return SCPE_OK; } -t_stat m68k_set_nommu(UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat m68k_set_nommu(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uptr->flags &= ~value; diff --git a/SAGE/m68k_parse.tab.c b/SAGE/m68k_parse.tab.c index 8e26039c..33bfd2ca 100644 --- a/SAGE/m68k_parse.tab.c +++ b/SAGE/m68k_parse.tab.c @@ -431,7 +431,7 @@ extern int yylex(); static int _genop(t_value arg); static int _genea(struct _ea arg); static int _genbr(t_value arg,t_value,int); -static void yyerror(char* s); +static void yyerror(CONST char* s); #define YYDEBUG 1 @@ -3557,14 +3557,14 @@ yyreturn: #line 440 "m68k_parse.y" -static void yyerror(char* s) +static void yyerror(CONST char* s) { /* do not emit anything, but set error flag */ yyerrc = 1; } struct _optable { - char* mnem; + const char* mnem; int token; }; @@ -3654,7 +3654,7 @@ static void init_ophash() } } -static char* yystream; +static const char* yystream; int yylex() { @@ -3714,7 +3714,7 @@ int yylex() static t_value *yyvalptr; static t_addr yyaddr; -t_stat parse_sym(char* c, t_addr a, UNIT* u, t_value* val, int32 sw) +t_stat parse_sym(CONST char* c, t_addr a, UNIT* u, t_value* val, int32 sw) { char ch; diff --git a/SAGE/m68k_scp.c b/SAGE/m68k_scp.c index 6de4ef3f..e5fd253c 100644 --- a/SAGE/m68k_scp.c +++ b/SAGE/m68k_scp.c @@ -32,11 +32,11 @@ static t_bool symtrace = TRUE; static void m68k_sim_init(void); -static t_stat hdump_cmd(int32 arg,char* buf); -static t_stat symset_cmd(int32 arg,char* buf); -static t_stat symclr_cmd(int32 arg,char* buf); -static t_stat symlist_cmd(int32 arg,char* buf); -static t_stat symtrace_cmd(int32 arg,char* buf); +static t_stat hdump_cmd(int32 arg, CONST char* buf); +static t_stat symset_cmd(int32 arg, CONST char* buf); +static t_stat symclr_cmd(int32 arg, CONST char* buf); +static t_stat symlist_cmd(int32 arg, CONST char* buf); +static t_stat symtrace_cmd(int32 arg, CONST char* buf); static CTAB m68k_sim_cmds[] = { {"STEP", &run_cmd, RU_STEP, @@ -56,7 +56,7 @@ static CTAB m68k_sim_cmds[] = { {0,0,0,0} }; -void (*sim_vm_init)(void) = &m68k_sim_init; +WEAK void (*sim_vm_init)(void) = &m68k_sim_init; typedef struct _symhash { struct _symhash* nnext; @@ -145,7 +145,7 @@ static t_bool sym_enter(const char* name,t_addr val) e = (SYMHASH*)malloc(sizeof(SYMHASH)); e->nnext = n; e->vnext = v; - e->name = malloc(strlen(name)+1); + e->name = (char *)malloc(strlen(name)+1); strcpy(e->name,name); e->val = val; symbyname[nhash].nnext = symbyval[vhash].vnext = e; @@ -177,12 +177,15 @@ static t_bool sym_delete(const char* name) return FALSE; } -static t_stat symset_cmd(int32 arg,char* buf) +static t_stat symset_cmd(int32 arg, CONST char* buf) { - char *name,*vstr; + const char *name,*vstr; + char gbuf[2*CBUFSIZE]; t_addr val; - if ((name = strtok(buf, "= ")) == 0) return SCPE_2FARG; + gbuf[sizeof(gbuf)-1] = '\0'; + strncpy(gbuf, buf, sizeof(gbuf)-1); + if ((name = strtok(gbuf, "= ")) == 0) return SCPE_2FARG; if ((vstr = strtok(NULL, " \t\n")) == 0) return SCPE_2FARG; val = strtol(vstr, 0, 16); if (!sym_enter(name, val)) @@ -190,27 +193,34 @@ static t_stat symset_cmd(int32 arg,char* buf) return SCPE_OK; } -static t_stat symclr_cmd(int32 arg,char* buf) +static t_stat symclr_cmd(int32 arg, CONST char* buf) { char* token; if (buf[0] == '-' && buf[1]=='a') { sym_clearall(); return SCPE_OK; } else { - token = strtok(buf," \t\n"); + char gbuf[2*CBUFSIZE]; + + gbuf[sizeof(gbuf)-1] = '\0'; + strncpy(gbuf, buf, sizeof(gbuf)-1); + token = strtok(gbuf," \t\n"); if (!token) return SCPE_2FARG; return sym_delete(token) ? SCPE_OK : SCPE_ARG; } } -static t_stat symlist_cmd(int32 arg,char* buf) +static t_stat symlist_cmd(int32 arg, CONST char* buf) { int i; SYMHASH* n; + char gbuf[2*CBUFSIZE]; char *name; t_bool found = FALSE; - name = strtok(buf," \t\n"); + gbuf[sizeof(gbuf)-1] = '\0'; + strncpy(gbuf, buf, sizeof(gbuf)-1); + name = strtok(gbuf," \t\n"); if (name) { if (sym_lookupname(name,&n)) printf(" %s = 0x%08x\n",n->name,n->val); @@ -230,7 +240,7 @@ static t_stat symlist_cmd(int32 arg,char* buf) return SCPE_OK; } -static t_stat symtrace_cmd(int32 arg,char* buf) +static t_stat symtrace_cmd(int32 arg, CONST char* buf) { if (!*buf) symtrace = arg ? TRUE : FALSE; @@ -250,10 +260,11 @@ static void putascii(uint32* buf) putchar('|'); } -static t_stat hdump_cmd(int32 arg, char* buf) +static t_stat hdump_cmd(int32 arg, CONST char* buf) { int i; t_addr low, high, base, top; + char gbuf[2*CBUFSIZE]; char *token; uint32 byte[16]; t_bool ascii = FALSE; @@ -266,7 +277,9 @@ static t_stat hdump_cmd(int32 arg, char* buf) } memset(byte,0,sizeof(uint32)*16); - token = strtok(buf,"- \t\n"); + gbuf[sizeof(gbuf)-1] = '\0'; + strncpy(gbuf, buf, sizeof(gbuf)-1); + token = strtok(gbuf,"- \t\n"); if (!token) return SCPE_2FARG; low = strtol(token,0,16); token = strtok(NULL,"- \t\n"); diff --git a/SAGE/m68k_sys.c b/SAGE/m68k_sys.c index 70fc5cee..9e60e583 100644 --- a/SAGE/m68k_sys.c +++ b/SAGE/m68k_sys.c @@ -41,7 +41,7 @@ #include #endif -t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat set_iobase(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { DEVICE* dptr; PNP_INFO* pnp; @@ -69,7 +69,7 @@ t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc) return SCPE_OK; } -t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; PNP_INFO *pnp; @@ -82,7 +82,7 @@ t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc) return SCPE_OK; } -t_stat m68k_set_cpu(UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat m68k_set_cpu(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { if (value < 0 || value > CPU_TYPE_68030) return SCPE_ARG; @@ -93,9 +93,9 @@ t_stat m68k_set_cpu(UNIT *uptr, int32 value, char *cptr, void *desc) return SCPE_OK; } -t_stat m68k_show_cpu(FILE* st,UNIT *uptr, int32 value, void *desc) +t_stat m68k_show_cpu(FILE* st,UNIT *uptr, int32 value, CONST void *desc) { - fprintf(st,"TYPE=%s",(char*)desc); + fprintf(st,"TYPE=%s",(const char *)desc); return SCPE_OK; } @@ -108,7 +108,7 @@ t_stat m68k_alloc_mem() return M == NULL ? SCPE_MEM : SCPE_OK; } -t_stat m68k_set_size(UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat m68k_set_size(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { t_stat rc; uptr->capac = value; @@ -116,24 +116,24 @@ t_stat m68k_set_size(UNIT *uptr, int32 value, char *cptr, void *desc) return SCPE_OK; } -t_stat m68k_set_fpu(UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat m68k_set_fpu(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uptr->flags |= value; return SCPE_OK; } -t_stat m68k_set_nofpu(UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat m68k_set_nofpu(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uptr->flags |= value; return SCPE_OK; } -t_stat m68kcpu_set_flag(UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat m68kcpu_set_flag(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uptr->flags |= value; return SCPE_OK; } -t_stat m68kcpu_set_noflag(UNIT *uptr, int32 value, char *cptr, void *desc) +t_stat m68kcpu_set_noflag(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { uptr->flags &= ~value; return SCPE_OK; @@ -239,7 +239,7 @@ error: return SCPE_FMT; } -t_stat sim_load(FILE* fptr, char* cptr, char* fnam, t_bool flag) +t_stat sim_load(FILE* fptr, CONST char* cptr, CONST char* fnam, t_bool flag) { int i,len,rc; uint16 data; @@ -403,7 +403,7 @@ static t_stat _fsym0(FILE* of,t_value inst,t_addr addr,t_value* rest) int bitnum= DATA_B(rest[0]); int ea = EA_FIELD(inst); int eamod = EAMOD_FIELD(inst); - char* s = 0; + const char* s = 0; switch (inst & 000700) { case 000400: @@ -472,7 +472,7 @@ static t_stat _fsym123(FILE* of,t_value inst,t_addr addr,t_value* rest,char w,in int rc, rc2; int eas = inst & 077; int eat = ((inst>>9)&7)|((inst&0700)>>3); - char *s = ((eat&070)==010) ? "movea" : "move"; + const char *s = ((eat&070)==010) ? "movea" : "move"; fprintf(of,"%s.%c ",s,w); rc = _fsymea(of,addr,eas,oplen,rest); ONERR_QUIT(); rc2 = rc; fputc(',',of); @@ -480,10 +480,10 @@ static t_stat _fsym123(FILE* of,t_value inst,t_addr addr,t_value* rest,char w,in return rc2 + rc -1; } -static char* moveregs[] = { +static const char* moveregs[] = { "d0","d1","d2","d3","d4","d5","d6","d7","a0","a1","a2","a3","a4","a5","a6","a7" }; -static char* moveregsp[] = { +static const char* moveregsp[] = { "a7","a6","a5","a4","a3","a2","a1","a0","d7","d6","d5","d4","d3","d2","d1","d0" }; @@ -499,7 +499,7 @@ static char* moveregsp[] = { static void _fsymregs(FILE* of, int regset,int ispredec) { int lo, hi, bit, sl, i; - char** regs = ispredec ? moveregsp : moveregs; + const char** regs = ispredec ? moveregsp : moveregs; //printf("regset=%x\n",regset); sl = 0; @@ -519,7 +519,7 @@ static t_stat _fsym4(FILE* of,t_value inst,t_addr addr,t_value* rest) int eamod = EAMOD_FIELD(inst); char reg0 = REG0_CHAR(inst); int oplen = OPLEN_FIELD(inst); - char* s; + const char* s; switch (inst & 000700) { case 000600: @@ -669,8 +669,8 @@ static t_stat _fsym4(FILE* of,t_value inst,t_addr addr,t_value* rest) } } -static char* conds[] = { "ra","sr","hi","ls","cc","cs","ne","eq","vc","vs","pl","mi","ge","lt","gt","le" }; -static char* conds2[] = { "t", "f","hi","ls","cc","cs","ne","eq","vc","vs","pl","mi","ge","lt","gt","le" }; +static const char* conds[] = { "ra","sr","hi","ls","cc","cs","ne","eq","vc","vs","pl","mi","ge","lt","gt","le" }; +static const char* conds2[] = { "t", "f","hi","ls","cc","cs","ne","eq","vc","vs","pl","mi","ge","lt","gt","le" }; static t_stat _fsym5(FILE* of,t_value inst,t_addr addr,t_value* rest) { @@ -683,7 +683,7 @@ static t_stat _fsym5(FILE* of,t_value inst,t_addr addr,t_value* rest) t_addr a; if (oplen==3) { - char* cond = conds2[(inst>>8)&0xf]; + const char* cond = conds2[(inst>>8)&0xf]; if (eamod==010) { a = rest[0] & 0xffff; if (a & 0x8000) a |= 0xffff0000; @@ -695,7 +695,7 @@ static t_stat _fsym5(FILE* of,t_value inst,t_addr addr,t_value* rest) } } else { int data = (inst>>9) & 07; - char *s = (inst & 0x0100) ? "subq" : "addq"; + const char *s = (inst & 0x0100) ? "subq" : "addq"; if (data==0) data = 8; fprintf(of,"%s.%c #%d,",s,bwl,data); rc = _fsymea(of,addr,ea,oplen,rest); ONERR_QUIT(); return rc-1; @@ -704,7 +704,7 @@ static t_stat _fsym5(FILE* of,t_value inst,t_addr addr,t_value* rest) } static t_stat _fsym6(FILE* of,t_value inst,t_addr addr,t_value* rest) { - char* cond = conds[(inst>>8)&0xf]; + const char* cond = conds[(inst>>8)&0xf]; t_addr a = inst & 0xff; if (a) { if (a & 0x80) a |= 0xffffff00; @@ -934,7 +934,7 @@ static t_stat _fsyme(FILE* of,t_value inst,t_addr addr,t_value* rest) int ea = EA_FIELD(inst); char reg9 = REG9_CHAR(inst); char reg0 = REG0_CHAR(inst); - char *s; + const char *s; switch (op) { case 0: s = "as"; break; diff --git a/SAGE/sage_cons.c b/SAGE/sage_cons.c index adbc7b0a..92689170 100644 --- a/SAGE/sage_cons.c +++ b/SAGE/sage_cons.c @@ -44,7 +44,7 @@ static t_stat sio_reset(DEVICE* dptr); static t_stat sioterm_svc(UNIT*); static t_stat siopoll_svc(UNIT*); -static t_stat sio_attach(UNIT*,char*); +static t_stat sio_attach(UNIT*, CONST char*); static t_stat sio_detach(UNIT*); static t_stat sio_txint(I8251* chip); static t_stat sio_rxint(I8251* chip); @@ -210,7 +210,7 @@ static t_stat sio_reset(DEVICE* dptr) return SCPE_OK; } -static t_stat sio_attach(UNIT* uptr, char* cptr) +static t_stat sio_attach(UNIT* uptr, CONST char* cptr) { return mux_attach(uptr,cptr,&sio_mux); } @@ -247,7 +247,7 @@ static t_stat cons_txint(I8251* chip); static t_stat cons_rxint(I8251* chip); static t_stat conspoll_svc(UNIT*); static t_stat consterm_svc(UNIT*); -static t_stat cons_attach(UNIT*,char*); +static t_stat cons_attach(UNIT*, CONST char*); static t_stat cons_detach(UNIT*); extern DEVICE sagecons_dev; @@ -432,7 +432,7 @@ static t_stat cons_rxint(I8251* chip) return m68k_raise_autoint(CONSRX_AUTOINT); } -static t_stat cons_attach(UNIT* uptr,char* cptr) +static t_stat cons_attach(UNIT* uptr, CONST char* cptr) { return mux_attach(uptr,cptr,&cons_mux); } @@ -442,7 +442,7 @@ static t_stat cons_detach(UNIT* uptr) return mux_detach(uptr,&cons_mux); } -t_stat mux_attach(UNIT* uptr, char* cptr, SERMUX* mux) +t_stat mux_attach(UNIT* uptr, CONST char* cptr, SERMUX* mux) { t_stat rc; diff --git a/SAGE/sage_cpu.c b/SAGE/sage_cpu.c index d168d0c2..3b3f9610 100644 --- a/SAGE/sage_cpu.c +++ b/SAGE/sage_cpu.c @@ -32,8 +32,8 @@ static t_stat sagecpu_reset(DEVICE* dptr); static t_stat sagecpu_boot(int unit,DEVICE* dptr); static t_stat sage_translateaddr(t_addr in,t_addr* out, IOHANDLER** ioh,int rw,int fc,int dma); static t_stat sage_mem(t_addr addr,uint8** mem); -static t_stat sagecpu_set_bios(UNIT *uptr, int32 value, char *cptr, void *desc); -static t_stat sagecpu_show_bios(FILE *st, UNIT *uptr, int32 val, void *desc); +static t_stat sagecpu_set_bios(UNIT *uptr, int32 value, CONST char *cptr, void *desc); +static t_stat sagecpu_show_bios(FILE *st, UNIT *uptr, int32 val, CONST void *desc); static uint8* ROM = 0; static int rom_enable = TRUE; /* LS74 U51 in CPU schematic */ @@ -45,11 +45,7 @@ extern t_addr AR[]; #define MAX_ROMSIZE 16384 -#ifdef SAGE_IV -char* biosfile = "sage-iv.hex"; -#else -char* biosfile = "sage-ii.hex"; -#endif +char* biosfile = NULL; static MTAB sagecpu_mod[] = { { MTAB_XTD|MTAB_VDV, 0, "BIOS", "BIOS", &sagecpu_set_bios, &sagecpu_show_bios }, @@ -80,14 +76,14 @@ DEVICE sagecpu_dev = { sagecpu_dt, NULL, NULL }; -static t_stat sagecpu_set_bios(UNIT *uptr, int32 value, char *cptr, void *desc) +static t_stat sagecpu_set_bios(UNIT *uptr, int32 value, CONST char *cptr, void *desc) { FILE* fp; if (cptr==NULL) return SCPE_ARG; if ((fp=fopen(cptr,"r"))==0) return SCPE_OPENERR; fclose(fp); - biosfile = malloc(strlen(cptr)+1); + biosfile = (char *)realloc(biosfile, strlen(cptr)+1); strcpy(biosfile,cptr); /* enforce reload of BIOS code on next boot */ @@ -96,7 +92,7 @@ static t_stat sagecpu_set_bios(UNIT *uptr, int32 value, char *cptr, void *desc) return SCPE_OK; } -static t_stat sagecpu_show_bios(FILE *st, UNIT *uptr, int32 val, void *desc) +static t_stat sagecpu_show_bios(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "BIOS=%s", biosfile); return SCPE_OK; @@ -143,6 +139,13 @@ static t_stat sagecpu_reset(DEVICE* dptr) TranslateAddr = &sage_translateaddr; Mem = &sage_mem; + if (!biosfile) +#ifdef SAGE_IV + sagecpu_set_bios(NULL, 0, "sage-iv.hex", NULL); +#else + sagecpu_set_bios(NULL, 0, "sage-ii.hex", NULL); +#endif + if (!ROM) ROM = (uint8*)calloc(MAX_ROMSIZE,1); rom_enable = TRUE; diff --git a/SAGE/sage_hd.c b/SAGE/sage_hd.c index cf615595..713ccd27 100644 --- a/SAGE/sage_hd.c +++ b/SAGE/sage_hd.c @@ -30,7 +30,7 @@ static t_stat sagehd_reset(DEVICE* dptr); static t_stat sagehd_boot(int32 unit_num,DEVICE* dptr); -static t_stat sagehd_attach(UNIT* uptr, char* file); +static t_stat sagehd_attach(UNIT* uptr, CONST char* file); static t_stat sagehd_detach(UNIT* uptr); @@ -71,7 +71,7 @@ static t_stat sagehd_boot(int32 unit_num,DEVICE* dptr) return SCPE_OK; } -static t_stat sagehd_attach(UNIT* uptr, char* file) +static t_stat sagehd_attach(UNIT* uptr, CONST char* file) { printf("sagehd_attach\n"); return SCPE_OK; diff --git a/SAGE/sage_lp.c b/SAGE/sage_lp.c index 698ef078..a0f44d08 100644 --- a/SAGE/sage_lp.c +++ b/SAGE/sage_lp.c @@ -32,7 +32,7 @@ #define UNIT_OFFLINE (1 << UNIT_V_OFFLINE) static t_stat sagelp_reset(DEVICE* dptr); -static t_stat sagelp_attach(UNIT *uptr, char *cptr); +static t_stat sagelp_attach(UNIT *uptr, CONST char *cptr); static t_stat sagelp_detach(UNIT *uptr); static t_stat sagelp_output(UNIT *uptr); static t_stat u39_reset(I8255* chip); @@ -202,7 +202,7 @@ static t_stat u39_reset(I8255* chip) return SCPE_OK; } -static t_stat sagelp_attach (UNIT *uptr, char *cptr) +static t_stat sagelp_attach (UNIT *uptr, CONST char *cptr) { t_stat rc; rc = attach_unit(uptr, cptr); diff --git a/SAGE/sage_stddev.c b/SAGE/sage_stddev.c index 56706c45..d30ff83f 100644 --- a/SAGE/sage_stddev.c +++ b/SAGE/sage_stddev.c @@ -160,10 +160,10 @@ t_stat sage_raiseint(int level) #endif static t_stat sagedip_reset(DEVICE* dptr); -static t_stat set_groupa(UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat show_groupa(FILE *st, UNIT *uptr, int32 val, void *desc); -static t_stat set_groupb(UNIT *uptr, int32 val, char *cptr, void *desc); -static t_stat show_groupb(FILE *st, UNIT *uptr, int32 val, void *desc); +static t_stat set_groupa(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat show_groupa(FILE *st, UNIT *uptr, int32 val, CONST void *desc); +static t_stat set_groupb(UNIT *uptr, int32 val, CONST char *cptr, void *desc); +static t_stat show_groupb(FILE *st, UNIT *uptr, int32 val, CONST void *desc); static t_stat u22_reset(I8255* chip); static t_stat u22_calla(I8255* chip,int rw); static t_stat u22_callb(I8255* chip,int rw); @@ -226,7 +226,7 @@ static t_stat sagedip_reset(DEVICE* dptr) return u22.reset(&u22); } -static t_stat set_gr(char* cptr, uint32* sw) +static t_stat set_gr(const char* cptr, uint32* sw) { int i; char c; @@ -245,17 +245,17 @@ static t_stat set_gr(char* cptr, uint32* sw) return SCPE_OK; } -static t_stat set_groupa(UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat set_groupa(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { return set_gr(cptr,&groupa); } -static t_stat set_groupb(UNIT *uptr, int32 val, char *cptr, void *desc) +static t_stat set_groupb(UNIT *uptr, int32 val, CONST char *cptr, void *desc) { return set_gr(cptr,&groupb); } -static t_stat show_gr(FILE* st, char* prefix, uint32 gr) +static t_stat show_gr(FILE* st, const char* prefix, uint32 gr) { int i; fputs(prefix, st); @@ -264,12 +264,12 @@ static t_stat show_gr(FILE* st, char* prefix, uint32 gr) return SCPE_OK; } -static t_stat show_groupa(FILE *st, UNIT *uptr, int32 val, void *desc) +static t_stat show_groupa(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { return show_gr(st, "GROUPA=", groupa); } -static t_stat show_groupb(FILE *st, UNIT *uptr, int32 val, void *desc) +static t_stat show_groupb(FILE *st, UNIT *uptr, int32 val, CONST void *desc) { return show_gr(st, "GROUPB=", groupb); } @@ -479,14 +479,18 @@ DEVICE sagetimer1_dev = { i8253_dt, NULL, NULL }; -static t_stat sagetimer1_reset(DEVICE* dptr) -{ - t_stat rc; - if (!(rc = (dptr->flags & DEV_DIS) ? - del_iohandler(dptr->ctxt) : - add_iohandler(&sagetimer1_unit,dptr->ctxt,i8253_io)) != SCPE_OK) return rc; - return u75.reset(&u75); -} + static t_stat sagetimer1_reset(DEVICE* dptr) + { + t_stat rc; + + if (dptr->flags & DEV_DIS) + rc = del_iohandler(dptr->ctxt); + else + rc = add_iohandler(&sagetimer1_unit,dptr->ctxt,i8253_io); + if (rc != SCPE_OK) + return rc; + return u75.reset(&u75); + } static t_stat timer1_svc(UNIT* uptr) { diff --git a/SDS/sds_cpu.c b/SDS/sds_cpu.c index 38c47f58..4316c3a4 100644 --- a/SDS/sds_cpu.c +++ b/SDS/sds_cpu.c @@ -199,10 +199,10 @@ t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); t_bool cpu_is_pc_a_subroutine_call (t_addr **ret_addrs); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_type (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat Ea (uint32 wd, uint32 *va); t_stat EaSh (uint32 wd, uint32 *va); t_stat Read (uint32 va, uint32 *dat); @@ -221,8 +221,8 @@ void inst_hist (uint32 inst, uint32 pc, uint32 typ); t_stat rtc_inst (uint32 inst); t_stat rtc_svc (UNIT *uptr); t_stat rtc_reset (DEVICE *dptr); -t_stat rtc_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rtc_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat rtc_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rtc_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern t_bool io_init (void); extern t_stat op_wyim (uint32 inst, uint32 *dat); @@ -1682,7 +1682,7 @@ return SCPE_OK; /* Set memory size */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -1701,7 +1701,7 @@ return SCPE_OK; /* Set system type (1 = Genie, 0 = standard) */ -t_stat cpu_set_type (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { extern t_stat drm_reset (DEVICE *dptr); extern DEVICE drm_dev, mux_dev, muxl_dev; @@ -1779,7 +1779,7 @@ return SCPE_OK; /* Set frequency */ -t_stat rtc_set_freq (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rtc_set_freq (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr) return SCPE_ARG; @@ -1791,7 +1791,7 @@ return SCPE_OK; /* Show frequency */ -t_stat rtc_show_freq (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rtc_show_freq (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, (rtc_tps == 50)? "50Hz": "60Hz"); return SCPE_OK; @@ -1818,7 +1818,7 @@ return; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -1857,15 +1857,15 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 ov, k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_stat r; t_value sim_eval; InstHistory *h; -static char *cyc[] = { " ", " ", "INT", "TRP" }; -static char *modes = "NMU?"; +static const char *cyc[] = { " ", " ", "INT", "TRP" }; +static const char *modes = "NMU?"; if (hst_lnt == 0) /* enabled? */ return SCPE_NOFNC; diff --git a/SDS/sds_defs.h b/SDS/sds_defs.h index 6654a73b..1202e5cb 100644 --- a/SDS/sds_defs.h +++ b/SDS/sds_defs.h @@ -418,9 +418,13 @@ void chan_set_flag (int32 ch, uint32 fl); void chan_set_ordy (int32 ch); void chan_disc (int32 ch); void chan_set_uar (int32 ch, uint32 dev); -t_stat set_chan (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_chan (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_chan (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_chan (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat chan_process (void); t_bool chan_testact (void); +/* Translation tables */ +extern const int8 odd_par[64]; + + #endif diff --git a/SDS/sds_drm.c b/SDS/sds_drm.c index 0a8648ff..71b52398 100644 --- a/SDS/sds_drm.c +++ b/SDS/sds_drm.c @@ -105,7 +105,6 @@ int32 drm_ftime = 3; /* time to fetch */ int32 drm_xtime = 1; /* time to xfr */ int32 drm_stopioe = 1; /* stop on error */ -DEVICE drm_dev; t_stat drm (uint32 fnc, uint32 inst, uint32 *dat); t_stat drm_svc (UNIT *uptr); t_stat drm_reset (DEVICE *dptr); diff --git a/SDS/sds_dsk.c b/SDS/sds_dsk.c index 22d0a7a3..6b170816 100644 --- a/SDS/sds_dsk.c +++ b/SDS/sds_dsk.c @@ -87,7 +87,6 @@ DSPT dsk_tplt[] = { /* template */ { 0, 0 } }; -DEVICE dsk_dev; t_stat dsk_svc (UNIT *uptr); t_stat dsk_reset (DEVICE *dptr); t_stat dsk_fill (uint32 dev); diff --git a/SDS/sds_io.c b/SDS/sds_io.c index dd55afa0..d2489b1e 100644 --- a/SDS/sds_io.c +++ b/SDS/sds_io.c @@ -149,7 +149,7 @@ extern void set_dyn_map (void); support all widths. */ -t_stat chan_show_reg (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat chan_show_reg (FILE *st, UNIT *uptr, int32 val, CONST void *desc); struct aldisp { t_stat (*pin) (uint32 num, uint32 *dat); /* altnum, *dat */ @@ -222,11 +222,11 @@ uint32 dev_map[64][NUM_CHAN]; /* dev_dsp maps device and channel numbers to dispatch routines */ -t_stat (*dev_dsp[64][NUM_CHAN])() = { {NULL} }; +t_stat (*dev_dsp[64][NUM_CHAN])(uint32 fnc, uint32 dev, uint32 *dat) = { {NULL} }; /* dev3_dsp maps system device numbers to dispatch routines */ -t_stat (*dev3_dsp[64])() = { NULL }; +t_stat (*dev3_dsp[64])(uint32 fnc, uint32 dev, uint32 *dat) = { NULL }; /* dev_alt maps alert numbers to dispatch routines */ @@ -902,7 +902,7 @@ return SCPE_OK; /* Channel assignment routines */ -t_stat set_chan (UNIT *uptr, int32 val, char *sptr, void *desc) +t_stat set_chan (UNIT *uptr, int32 val, CONST char *sptr, void *desc) { DEVICE *dptr; DIB *dibp; @@ -929,7 +929,7 @@ for (i = 0; i < NUM_CHAN; i++) { /* match input */ return SCPE_ARG; } -t_stat show_chan (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_chan (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; DIB *dibp; @@ -997,7 +997,7 @@ return FALSE; /* Display channel state */ -t_stat chan_show_reg (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat chan_show_reg (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if ((val < 0) || (val >= NUM_CHAN)) return SCPE_IERR; fprintf (st, "UAR: %02o\n", chan_uar[val]); diff --git a/SDS/sds_lp.c b/SDS/sds_lp.c index 1c961875..c42cbe9f 100644 --- a/SDS/sds_lp.c +++ b/SDS/sds_lp.c @@ -58,10 +58,9 @@ DSPT lpt_tplt[] = { /* template */ { 0, 0 } }; -DEVICE lpt_dev; t_stat lpt_svc (UNIT *uptr); t_stat lpt_reset (DEVICE *dptr); -t_stat lpt_attach (UNIT *uptr, char *cptr); +t_stat lpt_attach (UNIT *uptr, CONST char *cptr); t_stat lpt_crctl (UNIT *uptr, int32 ch); t_stat lpt_space (UNIT *uptr, int32 cnt); t_stat lpt_status (UNIT *uptr); @@ -324,7 +323,7 @@ return SCPE_OK; /* Attach routine */ -t_stat lpt_attach (UNIT *uptr, char *cptr) +t_stat lpt_attach (UNIT *uptr, CONST char *cptr) { lpt_ccp = 0; /* top of form */ return attach_unit (uptr, cptr); diff --git a/SDS/sds_mt.c b/SDS/sds_mt.c index f7fc56d4..151211a0 100644 --- a/SDS/sds_mt.c +++ b/SDS/sds_mt.c @@ -77,11 +77,10 @@ DSPT mt_tplt[] = { /* template */ { 0, 0 } }; -DEVICE mt_dev; t_stat mt_svc (UNIT *uptr); t_stat mt_reset (DEVICE *dptr); t_stat mt_boot (int32 unitno, DEVICE *dptr); -t_stat mt_attach (UNIT *uptr, char *cptr); +t_stat mt_attach (UNIT *uptr, CONST char *cptr); t_stat mt_detach (UNIT *uptr); t_stat mt_readrec (UNIT *uptr); t_mtrlnt mt_readbc (UNIT *uptr); @@ -468,7 +467,7 @@ return SCPE_OK; /* Attach and detach routines */ -t_stat mt_attach (UNIT *uptr, char *cptr) +t_stat mt_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/SDS/sds_mux.c b/SDS/sds_mux.c index 64e22794..189013bb 100644 --- a/SDS/sds_mux.c +++ b/SDS/sds_mux.c @@ -120,11 +120,11 @@ t_stat mux (uint32 fnc, uint32 inst, uint32 *dat); t_stat muxi_svc (UNIT *uptr); t_stat muxo_svc (UNIT *uptr); t_stat mux_reset (DEVICE *dptr); -t_stat mux_attach (UNIT *uptr, char *cptr); +t_stat mux_attach (UNIT *uptr, CONST char *cptr); t_stat mux_detach (UNIT *uptr); -t_stat mux_summ (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat mux_show (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat mux_vlines (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat mux_summ (FILE *st, UNIT *uptr, int32 val, const void *desc); +t_stat mux_show (FILE *st, UNIT *uptr, int32 val, const void *desc); +t_stat mux_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void mux_reset_ln (int32 ln); void mux_scan_next (void); @@ -479,7 +479,7 @@ return SCPE_OK; /* Attach master unit */ -t_stat mux_attach (UNIT *uptr, char *cptr) +t_stat mux_attach (UNIT *uptr, CONST char *cptr) { t_stat r; int32 t; @@ -508,7 +508,7 @@ return r; /* Change number of lines */ -t_stat mux_vlines (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat mux_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; diff --git a/SDS/sds_rad.c b/SDS/sds_rad.c index b8d4e228..b393ae44 100644 --- a/SDS/sds_rad.c +++ b/SDS/sds_rad.c @@ -67,7 +67,6 @@ DSPT rad_tplt[] = { /* template */ { 0, 0 } }; -DEVICE rad_dev; t_stat rad_svc (UNIT *uptr); t_stat rad_reset (DEVICE *dptr); t_stat rad_boot (int32 unitno, DEVICE *dptr); @@ -133,7 +132,7 @@ t_stat rad (uint32 fnc, uint32 inst, uint32 *dat) { int32 t, lun, new_ch; uint32 p; -uint32 *fbuf = rad_unit.filebuf; +uint32 *fbuf = (uint32 *)rad_unit.filebuf; switch (fnc) { /* case function */ @@ -267,7 +266,7 @@ return SCPE_OK; t_stat rad_fill (int32 sba) { uint32 p = rad_da * RAD_NUMWD; -uint32 *fbuf = rad_unit.filebuf; +uint32 *fbuf = (uint32 *)rad_unit.filebuf; int32 wa = (sba + 1) >> 1; /* whole words */ if (sba && (p < rad_unit.capac)) { /* fill needed? */ diff --git a/SDS/sds_stddev.c b/SDS/sds_stddev.c index f9685de2..0931fc42 100644 --- a/SDS/sds_stddev.c +++ b/SDS/sds_stddev.c @@ -47,7 +47,6 @@ int32 ptp_ldr = 0; /* no leader */ int32 ptp_stopioe = 1; DSPT std_tplt[] = { { 1, 0 }, { 0, 0 } }; /* template */ -DEVICE ptr_dev, ptp_dev; t_stat ptr (uint32 fnc, uint32 inst, uint32 *dat); t_stat ptr_svc (UNIT *uptr); t_stat ptr_reset (DEVICE *dptr); @@ -66,7 +65,6 @@ t_stat tto_svc (UNIT *uptr); t_stat tto_reset (DEVICE *dptr); int8 ascii_to_sds(int8 ch); int8 sds_to_ascii(int8 ch); -extern const int8 odd_par[64]; /* PTR data structures diff --git a/SDS/sds_sys.c b/SDS/sds_sys.c index c0413678..cbb55ae2 100644 --- a/SDS/sds_sys.c +++ b/SDS/sds_sys.c @@ -196,7 +196,8 @@ int32 col, rpt, ptr, mask, cctbuf[CCT_LNT]; t_stat r; extern int32 lpt_ccl, lpt_ccp; extern uint8 lpt_cct[CCT_LNT]; -char *cptr, cbuf[CBUFSIZE], gbuf[CBUFSIZE]; +const char *cptr; +char cbuf[CBUFSIZE], gbuf[CBUFSIZE]; ptr = 0; for ( ; (cptr = fgets (cbuf, CBUFSIZE, fileref)) != NULL; ) { /* until eof */ @@ -251,7 +252,7 @@ for (i = wd = 0; i < 4; ) { return wd; } -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 i, wd, buf[8]; int32 ldr = 1; @@ -634,9 +635,10 @@ return SCPE_ARG; cptr = updated pointer to input string */ -char *get_tag (char *cptr, t_value *tag) +CONST char *get_tag (CONST char *cptr, t_value *tag) { -char *tptr, gbuf[CBUFSIZE]; +CONST char *tptr; +char gbuf[CBUFSIZE]; t_stat r; tptr = get_glyph (cptr, gbuf, 0); /* get next field */ @@ -659,20 +661,17 @@ return cptr; /* no change */ status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { int32 i, j, k, ch; t_value d, tag; t_stat r; -char gbuf[CBUFSIZE]; +char gbuf[CBUFSIZE], cbuf[2*CBUFSIZE]; while (isspace (*cptr)) cptr++; -for (i = 1; (i < 4) && (cptr[i] != 0); i++) { - if (cptr[i] == 0) { - for (j = i + 1; j <= 4; j++) - cptr[j] = 0; - } - } +memset (cbuf, '\0', sizeof(cbuf)); +strncpy (cbuf, cptr, sizeof(cbuf)-5); +cptr = cbuf; if ((sw & SWMASK ('A')) || ((*cptr == '\'') && cptr++)) { /* ASCII char? */ if (cptr[0] == 0) /* must have 1 char */ return SCPE_ARG; diff --git a/SSEM/ssem_sys.c b/SSEM/ssem_sys.c index 1e08c4e3..55ef6eb1 100644 --- a/SSEM/ssem_sys.c +++ b/SSEM/ssem_sys.c @@ -106,7 +106,7 @@ return SCPE_OK; return = status code */ -t_stat sim_load (FILE *fi, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fi, CONST char *cptr, CONST char *fnam, int flag) { size_t len; @@ -262,9 +262,9 @@ static const char *opcode[] = { /* Utility function - parses decimal number. */ -t_stat parse_sym_d (char *cptr, t_value *val) +t_stat parse_sym_d (const char *cptr, t_value *val) { -char *start; +const char *start; int n; start = cptr; @@ -275,7 +275,6 @@ while (*cptr >= '0' && *cptr <= '9') { cptr++; } if (*start == '-') n = -n; -if (*start) *start = 'x'; if (*cptr) return SCPE_ARG; /* junk at end? */ @@ -294,15 +293,12 @@ return SCPE_OK; http://www.computer50.org/mark1/prog98/ssemref.html */ -t_stat parse_sym_m (char *cptr, t_value *val) +t_stat parse_sym_m (const char *cptr, t_value *val) { -char *start; uint32 n,a; char gbuf[CBUFSIZE]; -start = cptr; cptr = get_glyph(cptr, gbuf, 0); -if (*start) *start = 'x'; for (n = 0; opcode[n] != NULL && strcmp(opcode[n], gbuf) != 0; n++) ; if (opcode[n] == NULL) return SCPE_ARG; /* invalid mnemonic? */ @@ -331,13 +327,11 @@ return SCPE_OK; /* Utility function - parses binary backward number. */ -t_stat parse_sym_b (char *cptr, t_value *val) +t_stat parse_sym_b (const char *cptr, t_value *val) { -char *start; int count; t_value n; -start = cptr; count = 0; n = 0; while (*cptr == '0' || *cptr == '1') { @@ -345,7 +339,6 @@ while (*cptr == '0' || *cptr == '1') { count++; cptr++; } -if (*start) *start = 'x'; if (*cptr) return SCPE_ARG; /* junk at end? */ @@ -355,13 +348,11 @@ return SCPE_OK; /* Utility function - parses binary backward instruccion. */ -t_stat parse_sym_i (char *cptr, t_value *val) +t_stat parse_sym_i (const char *cptr, t_value *val) { -char *start; int count; t_value a,n; -start = cptr; count = 0; n = 0; while (*cptr == '0' || *cptr == '1') { @@ -369,7 +360,6 @@ while (*cptr == '0' || *cptr == '1') { count++; cptr++; } -if (*start) *start = 'x'; if (!(*cptr) && n > OP_UNDOCUMENTED && n <= OP_STOP) { *val = n << I_V_OP; return SCPE_OK; @@ -409,7 +399,7 @@ return SCPE_OK; status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { if (sw & SWMASK ('H')) return SCPE_ARG; /* hexadecimal? */ diff --git a/TX-0/tx0_cpu.c b/TX-0/tx0_cpu.c index e692adef..4785e57e 100644 --- a/TX-0/tx0_cpu.c +++ b/TX-0/tx0_cpu.c @@ -285,13 +285,13 @@ int32 addr_mask = YMASK; t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); int32 cpu_get_mode (void); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_ext (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_noext (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_ext (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_noext (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat Read (void); t_stat Write (void); @@ -420,7 +420,7 @@ typedef struct { INST_CTRS inst_ctr; -void tx0_dump_regs(char *desc) +void tx0_dump_regs(const char *desc) { TRACE_PRINT(TRACE_MSG, ("%s: AC=%06o, MAR=%05o, MBR=%06o, LR=%06o, XR=%05o\n", desc, AC, MAR, MBR, LR, XR)); @@ -809,7 +809,7 @@ t_stat sim_instr (void) int32 BINDEC = (op & 020); int32 device = op & 03; int32 tape_ord = (op >> 2) & 03; - char *tape_cmd[] = {"Backspace Tape", "Read/Select Tape", "Rewind Tape", "Write/Select Tape" }; + const char *tape_cmd[] = {"Backspace Tape", "Read/Select Tape", "Rewind Tape", "Write/Select Tape" }; TRACE_PRINT(ERROR_MSG, ("[%06o] TODO: SEL (magtape)\n", PC-1)); sim_printf("Device %d: CLRA=%d, BINDEC=%d: %s\n", device, CLRA, BINDEC, tape_cmd[tape_ord]); @@ -1070,7 +1070,7 @@ t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw) /* Change memory size */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i; @@ -1087,7 +1087,7 @@ t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) /* Change CPU Mode (Normal, Test, Readin) */ -t_stat cpu_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val == UNIT_MODE_TEST) { mode_tst = 1; @@ -1106,13 +1106,13 @@ t_stat cpu_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) /* Set TX-0 with Extended Instruction Set */ -t_stat cpu_set_ext (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_ext (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { sim_printf("Set CPU Extended Mode\n"); return SCPE_OK; } -t_stat cpu_set_noext (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_noext (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { sim_printf("Set CPU Non-Extended Mode\n"); return SCPE_OK; @@ -1127,7 +1127,7 @@ int32 cpu_get_mode (void) /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -1155,10 +1155,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 ov, pf, op, k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_stat r; t_value sim_eval; InstHistory *h; @@ -1208,10 +1208,10 @@ cpu_get_switches(void) return TAC; } -t_stat sim_load(FILE *fileref, char *cptr, char *fnam, int flag) { +t_stat sim_load(FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { uint32 word; t_addr j, lo, hi, sz, sz_words; - const char *result; + CONST char *result; if (flag) { /* Dump to file. */ result = get_range(NULL, cptr, &lo, &hi, 8, 0xFFFF, 0); diff --git a/TX-0/tx0_stddev.c b/TX-0/tx0_stddev.c index 563ac41e..9a969e09 100644 --- a/TX-0/tx0_stddev.c +++ b/TX-0/tx0_stddev.c @@ -90,7 +90,7 @@ t_stat petr_reset (DEVICE *dptr); t_stat ptp_reset (DEVICE *dptr); t_stat tty_reset (DEVICE *dptr); t_stat petr_boot (int32 unitno, DEVICE *dptr); -t_stat petr_attach (UNIT *uptr, char *cptr); +t_stat petr_attach (UNIT *uptr, CONST char *cptr); /* Character translation tables */ @@ -395,14 +395,14 @@ t_stat petr_reset (DEVICE *dptr) /* Attach routine */ -t_stat petr_attach (UNIT *uptr, char *cptr) +t_stat petr_attach (UNIT *uptr, CONST char *cptr) { petr_leader = PETR_LEADER; /* set up leader */ return attach_unit (uptr, cptr); } /* Bootstrap routine */ -extern t_stat cpu_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); +extern t_stat cpu_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); extern UNIT cpu_unit; //#define SANITY_CHECK_TAPE diff --git a/TX-0/tx0_sys.c b/TX-0/tx0_sys.c index 0a2721f7..b015545a 100644 --- a/TX-0/tx0_sys.c +++ b/TX-0/tx0_sys.c @@ -119,13 +119,13 @@ return word; /* Symbol tables */ typedef struct { int32 opr; - char *mnemonic; - char *desc; + const char *mnemonic; + const char *desc; } OPMAP; typedef struct { - char *mnemonic; - char *desc; + const char *mnemonic; + const char *desc; } INSTMAP; const INSTMAP instmap[] = { @@ -353,7 +353,7 @@ return get_uint (cptr, 8, DMASK, status); Outputs: status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { #if 0 int32 cflag, d, i, j, k, sign; diff --git a/TX-0/tx0_sys_orig.c b/TX-0/tx0_sys_orig.c index 812b24cd..3f7970eb 100644 --- a/TX-0/tx0_sys_orig.c +++ b/TX-0/tx0_sys_orig.c @@ -41,8 +41,8 @@ typedef struct { int32 opr; - char *mnemonic; - char *desc; + const char *mnemonic; + const char *desc; } OPMAP; const OPMAP opmap_orig [] = { diff --git a/VAX/vax610_defs.h b/VAX/vax610_defs.h index ca5c3a2d..b0930001 100644 --- a/VAX/vax610_defs.h +++ b/VAX/vax610_defs.h @@ -115,7 +115,7 @@ { UNIT_MSIZE, (1u << 21), NULL, "2M", &cpu_set_size, NULL, NULL, "Set Memory to 2M bytes" }, \ { UNIT_MSIZE, (1u << 22), NULL, "4M", &cpu_set_size, NULL, NULL, "Set Memory to 4M bytes" }, \ { MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, "MEMORY", NULL, NULL, &cpu_show_memory, NULL, "Display memory configuration" } -extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc); +extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc); /* Qbus I/O page */ @@ -341,8 +341,8 @@ extern int32 sys_model; int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf); int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf); -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf); -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf); +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf); +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf); /* Function prototypes for system-specific unaligned support */ @@ -351,7 +351,7 @@ int32 ReadRegU (uint32 pa, int32 lnt); void WriteIOU (uint32 pa, int32 val, int32 lnt); void WriteRegU (uint32 pa, int32 val, int32 lnt); -t_stat cpu_show_leds (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_show_leds (FILE *st, UNIT *uptr, int32 val, CONST void *desc); #include "pdp11_io_lib.h" diff --git a/VAX/vax610_io.c b/VAX/vax610_io.c index 7fe6a51b..a45fc176 100644 --- a/VAX/vax610_io.c +++ b/VAX/vax610_io.c @@ -406,7 +406,7 @@ else { return 0; } -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf) +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf) { int32 i; uint32 ma = ba & 0x3FFFFF; @@ -431,7 +431,7 @@ else { return 0; } -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf) +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf) { int32 i; uint32 ma = ba & 0x3FFFFF; diff --git a/VAX/vax610_mem.c b/VAX/vax610_mem.c index 597cee2d..8de615e5 100644 --- a/VAX/vax610_mem.c +++ b/VAX/vax610_mem.c @@ -117,14 +117,14 @@ void rom_wr_B (int32 pa, int32 val) return; } -t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { uint32 memsize = (uint32)(MEMSIZE>>10); uint32 baseaddr = 0; uint32 csraddr = mctl_dib.ba; struct { uint32 capacity; - char *option; + const char *option; } boards[] = { { 4096, "MSV11-QC"}, { 2048, "MSV11-QB"}, diff --git a/VAX/vax610_stddev.c b/VAX/vax610_stddev.c index c0e92234..58f10b46 100644 --- a/VAX/vax610_stddev.c +++ b/VAX/vax610_stddev.c @@ -314,7 +314,7 @@ else } -t_stat cpu_show_leds (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_leds (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "leds=%d(%s,%s,%s)", tto_leds, tto_leds&4 ? "ON" : "OFF", tto_leds&2 ? "ON" : "OFF", diff --git a/VAX/vax610_sysdev.c b/VAX/vax610_sysdev.c index 1887636b..f7417ef1 100644 --- a/VAX/vax610_sysdev.c +++ b/VAX/vax610_sysdev.c @@ -43,8 +43,8 @@ /* MicroVAX I boot device definitions */ struct boot_dev { - char *devname; - char *devalias; + const char *devname; + const char *devalias; int32 code; }; @@ -63,8 +63,8 @@ static struct boot_dev boot_tab[] = { t_stat sysd_reset (DEVICE *dptr); const char *sysd_description (DEVICE *dptr); -t_stat vax610_boot (int32 flag, char *ptr); -t_stat vax610_boot_parse (int32 flag, char *ptr); +t_stat vax610_boot (int32 flag, CONST char *ptr); +t_stat vax610_boot_parse (int32 flag, const char *ptr); extern int32 vc_mem_rd (int32 pa); extern void vc_mem_wr (int32 pa, int32 val, int32 lnt); @@ -359,7 +359,7 @@ return; Sets up R0-R5, calls SCP boot processor with effective BOOT CPU */ -t_stat vax610_boot (int32 flag, char *ptr) +t_stat vax610_boot (int32 flag, CONST char *ptr) { t_stat r; @@ -377,10 +377,11 @@ return run_cmd (flag, "CPU"); /* Parse boot command, set up registers - also used on reset */ -t_stat vax610_boot_parse (int32 flag, char *ptr) +t_stat vax610_boot_parse (int32 flag, const char *ptr) { char gbuf[CBUFSIZE], dbuf[CBUFSIZE], rbuf[CBUFSIZE]; -char *slptr, *regptr; +char *slptr; +const char *regptr; int32 i, r5v, unitno; DEVICE *dptr; UNIT *uptr; @@ -521,7 +522,7 @@ const char *sysd_description (DEVICE *dptr) return "system devices"; } -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { char gbuf[CBUFSIZE]; diff --git a/VAX/vax610_syslist.c b/VAX/vax610_syslist.c index aab1062d..72429994 100644 --- a/VAX/vax610_syslist.c +++ b/VAX/vax610_syslist.c @@ -36,7 +36,7 @@ void vax_init(void) sim_savename = "MicroVAX I (KA610)"; } -void (*sim_vm_init) (void) = &vax_init; +WEAK void (*sim_vm_init) (void) = &vax_init; extern DEVICE cpu_dev; extern DEVICE mctl_dev; @@ -99,7 +99,7 @@ DEVICE *sim_devices[] = { -o for memory, specify origin */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { t_stat r; int32 i; diff --git a/VAX/vax630_defs.h b/VAX/vax630_defs.h index 9bdddcd6..d17ac5e2 100644 --- a/VAX/vax630_defs.h +++ b/VAX/vax630_defs.h @@ -119,7 +119,7 @@ { UNIT_MSIZE, (1u << 23) + (1u << 22) + (1u << 20), NULL, "13M", &cpu_set_size, NULL, NULL, "Set Memory to 13M bytes" }, \ { UNIT_MSIZE, (1u << 24), NULL, "16M", &cpu_set_size, NULL, NULL, "Set Memory to 16M bytes" }, \ { MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, "MEMORY", NULL, NULL, &cpu_show_memory, NULL, "Display memory configuration" } -extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc); +extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc); /* Qbus I/O page */ @@ -393,8 +393,8 @@ extern int32 int_req[IPL_HLVL]; /* intr, IPL 14-17 */ int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf); int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf); -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf); -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf); +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf); +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf); /* Function prototypes for system-specific unaligned support */ @@ -403,11 +403,11 @@ int32 ReadRegU (uint32 pa, int32 lnt); void WriteIOU (uint32 pa, int32 val, int32 lnt); void WriteRegU (uint32 pa, int32 val, int32 lnt); -extern t_stat sysd_set_diag (UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat sysd_show_diag (FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat sysd_set_halt (UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat sysd_show_halt (FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat sysd_show_leds (FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat sysd_set_diag (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat sysd_show_diag (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat sysd_set_halt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat sysd_show_halt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat sysd_show_leds (FILE *st, UNIT *uptr, int32 val, CONST void *desc); #include "pdp11_io_lib.h" diff --git a/VAX/vax630_io.c b/VAX/vax630_io.c index 1c6734ac..22a106b6 100644 --- a/VAX/vax630_io.c +++ b/VAX/vax630_io.c @@ -83,10 +83,10 @@ t_stat qba_ex (t_value *vptr, t_addr exta, UNIT *uptr, int32 sw); t_stat qba_dep (t_value val, t_addr exta, UNIT *uptr, int32 sw); t_bool qba_map_addr (uint32 qa, uint32 *ma); t_bool qba_map_addr_c (uint32 qa, uint32 *ma); -t_stat set_autocon (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat qba_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc); +t_stat set_autocon (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat qba_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc); t_stat qba_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *qba_description (DEVICE *dptr); @@ -613,7 +613,7 @@ else { return 0; } -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf) +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf) { int32 i; uint32 ma, dat; @@ -645,7 +645,7 @@ else { return 0; } -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf) +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf) { int32 i; uint32 ma, dat; @@ -730,10 +730,10 @@ return SCPE_OK; /* Show QBA virtual address */ -t_stat qba_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat qba_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; uint32 qa, pa; if (cptr) { diff --git a/VAX/vax630_sysdev.c b/VAX/vax630_sysdev.c index a5691c87..f5afb070 100644 --- a/VAX/vax630_sysdev.c +++ b/VAX/vax630_sysdev.c @@ -54,7 +54,7 @@ #define UNIT_V_NODELAY (UNIT_V_UF + 0) /* ROM access equal to RAM access */ #define UNIT_NODELAY (1u << UNIT_V_NODELAY) -t_stat vax630_boot (int32 flag, char *ptr); +t_stat vax630_boot (int32 flag, CONST char *ptr); int32 sys_model = 0; /* MicroVAX or VAXstation */ /* Special boot command, overrides regular boot */ @@ -139,15 +139,15 @@ t_bool ka_hltenab = TRUE; /* Halt Enable / Autoboo t_stat rom_ex (t_value *vptr, t_addr exta, UNIT *uptr, int32 sw); t_stat rom_dep (t_value val, t_addr exta, UNIT *uptr, int32 sw); t_stat rom_reset (DEVICE *dptr); -t_stat rom_set_diag (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rom_show_diag (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat rom_set_diag (UNIT *uptr, int32 val, const char *cptr, const void *desc); +t_stat rom_show_diag (FILE *st, UNIT *uptr, int32 val, const void *desc); t_stat rom_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *rom_description (DEVICE *dptr); t_stat nvr_ex (t_value *vptr, t_addr exta, UNIT *uptr, int32 sw); t_stat nvr_dep (t_value val, t_addr exta, UNIT *uptr, int32 sw); t_stat nvr_reset (DEVICE *dptr); t_stat nvr_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); -t_stat nvr_attach (UNIT *uptr, char *cptr); +t_stat nvr_attach (UNIT *uptr, CONST char *cptr); t_stat nvr_detach (UNIT *uptr); const char *nvr_description (DEVICE *dptr); t_stat sysd_reset (DEVICE *dptr); @@ -543,7 +543,7 @@ uint8 nvr_empty_valid[NVRSIZE] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -t_stat nvr_attach (UNIT *uptr, char *cptr) +t_stat nvr_attach (UNIT *uptr, CONST char *cptr) { t_stat r; int32 saved_sim_quiet = sim_quiet; @@ -943,7 +943,7 @@ return 0; /* new cc = 0 */ */ -t_stat vax630_boot (int32 flag, char *ptr) +t_stat vax630_boot (int32 flag, CONST char *ptr) { char gbuf[CBUFSIZE]; @@ -975,31 +975,31 @@ if (*rom == 0) { /* no boot? */ return SCPE_OK; } -t_stat sysd_set_diag (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sysd_set_diag (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr != NULL) ka_diag_full = strcmp(cptr, "MIN"); return SCPE_OK; } -t_stat sysd_show_diag (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sysd_show_diag (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "DIAG=%s", (ka_diag_full ? "full" :"min")); 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, CONST char *cptr, void *desc) { ka_hltenab = val; return SCPE_OK; } -t_stat sysd_show_halt (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sysd_show_halt (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "%s", ka_hltenab ? "NOAUTOBOOT" : "AUTOBOOT"); return SCPE_OK; } -t_stat sysd_show_leds (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sysd_show_leds (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "leds=(%s,%s,%s,%s)", ka_bdr&8 ? "ON" : "OFF", ka_bdr&4 ? "ON" : "OFF", @@ -1041,7 +1041,7 @@ ka_diag_full = 0; return SCPE_OK; } -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { char gbuf[CBUFSIZE]; @@ -1098,13 +1098,13 @@ fprintf (st, " sim> BOOT\n\n"); return SCPE_OK; } -t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { uint32 memsize = (uint32)(MEMSIZE>>20); uint32 baseaddr = 0; struct { uint32 capacity; - char *option; + const char *option; } boards[] = { { 16, "MS630-CA"}, { 4, "MS630-BB"}, diff --git a/VAX/vax630_syslist.c b/VAX/vax630_syslist.c index eef863b8..9d0e5ab6 100644 --- a/VAX/vax630_syslist.c +++ b/VAX/vax630_syslist.c @@ -45,7 +45,7 @@ sim_savename = "MicroVAX II (KA630)"; } #endif -void (*sim_vm_init) (void) = &vax_init; +WEAK void (*sim_vm_init) (void) = &vax_init; extern DEVICE cpu_dev; extern DEVICE tlb_dev; @@ -114,7 +114,7 @@ DEVICE *sim_devices[] = { -o for memory, specify origin */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { t_stat r; int32 i; diff --git a/VAX/vax730_defs.h b/VAX/vax730_defs.h index 5dd08432..28bc233e 100644 --- a/VAX/vax730_defs.h +++ b/VAX/vax730_defs.h @@ -131,7 +131,7 @@ { UNIT_MSIZE, (4u << 20), NULL, "4M", &cpu_set_size, NULL, NULL, "Set Memory to 4M bytes" }, \ { UNIT_MSIZE, (5u << 20), NULL, "5M", &cpu_set_size, NULL, NULL, "Set Memory to 5M bytes" }, \ { MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, "MEMORY", NULL, NULL, &cpu_show_memory, NULL, "Display memory configuration" } -extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc); +extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc); #define CPU_MODEL_MODIFIERS \ { MTAB_XTD|MTAB_VDV, 0, "MODEL", NULL, \ NULL, &cpu_show_model, NULL, "Display the simulator CPU Model" } @@ -368,10 +368,10 @@ extern int32 int_req[IPL_HLVL]; /* intr, IPL 14-17 */ int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf); int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf); -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf); -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf); +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf); +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf); -t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void sbi_set_errcnf (void); diff --git a/VAX/vax730_mem.c b/VAX/vax730_mem.c index 90fdb9d5..c2e1e702 100644 --- a/VAX/vax730_mem.c +++ b/VAX/vax730_mem.c @@ -195,14 +195,14 @@ const char *mctl_description (DEVICE *dptr) return "memory controller"; } -t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { uint32 memsize = (uint32)(MEMSIZE>>20); uint32 baseaddr = 0; uint32 slot = 6; struct { uint32 capacity; - char *option; + const char *option; } boards[] = { { 1, "MS730-CA M8750"}, { 0, NULL}}; diff --git a/VAX/vax730_rb.c b/VAX/vax730_rb.c index 51a196fa..21e118f1 100644 --- a/VAX/vax730_rb.c +++ b/VAX/vax730_rb.c @@ -215,9 +215,9 @@ t_stat rb_svc (UNIT *uptr); t_stat rb_reset (DEVICE *dptr); const char *rb_description (DEVICE *dptr); void rb_set_done (int32 error); -t_stat rb_attach (UNIT *uptr, char *cptr); -t_stat rb_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rb_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat rb_attach (UNIT *uptr, CONST char *cptr); +t_stat rb_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rb_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc); /* RB730 data structures @@ -644,7 +644,7 @@ return "RB730 disk controller"; /* Attach routine */ -t_stat rb_attach (UNIT *uptr, char *cptr) +t_stat rb_attach (UNIT *uptr, CONST char *cptr) { uint32 p; t_stat r; @@ -666,7 +666,7 @@ return SCPE_OK; /* Set size routine */ -t_stat rb_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rb_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (uptr->flags & UNIT_ATT) return SCPE_ALATT; @@ -676,7 +676,7 @@ return SCPE_OK; /* Set bad block routine */ -t_stat rb_set_bad (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rb_set_bad (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { return pdp11_bad_block (uptr, RB_NUMSC(uptr), RB_NUMWD(uptr)); } diff --git a/VAX/vax730_stddev.c b/VAX/vax730_stddev.c index 9a4ba511..e61909c5 100644 --- a/VAX/vax730_stddev.c +++ b/VAX/vax730_stddev.c @@ -200,7 +200,7 @@ const char *td_description (DEVICE *dptr); t_stat tti_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat tto_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat clk_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); -t_stat clk_attach (UNIT *uptr, char *cptr); +t_stat clk_attach (UNIT *uptr, CONST char *cptr); t_stat clk_detach (UNIT *uptr); t_stat tmr_reset (DEVICE *dptr); t_stat td_reset (DEVICE *dptr); @@ -808,7 +808,7 @@ return "time of year clock"; /* CLK attach */ -t_stat clk_attach (UNIT *uptr, char *cptr) +t_stat clk_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/VAX/vax730_sys.c b/VAX/vax730_sys.c index abb3bb5b..a2eadd32 100644 --- a/VAX/vax730_sys.c +++ b/VAX/vax730_sys.c @@ -48,7 +48,7 @@ int32 sys_model = 0; /* VAX-11/730 boot device definitions */ struct boot_dev { - char *name; + const char *name; int32 code; int32 let; }; @@ -72,8 +72,8 @@ extern int32 tmr_int, tti_int, tto_int, csi_int, cso_int; t_stat sysb_reset (DEVICE *dptr); const char *sysb_description (DEVICE *dptr); -t_stat vax730_boot (int32 flag, char *ptr); -t_stat vax730_boot_parse (int32 flag, char *ptr); +t_stat vax730_boot (int32 flag, CONST char *ptr); +t_stat vax730_boot_parse (int32 flag, const char *ptr); extern int32 iccs_rd (void); extern int32 nicr_rd (void); @@ -466,7 +466,7 @@ return cc; Sets up R0-R5, calls SCP boot processor with effective BOOT CPU */ -t_stat vax730_boot (int32 flag, char *ptr) +t_stat vax730_boot (int32 flag, CONST char *ptr) { t_stat r; @@ -484,10 +484,11 @@ return run_cmd (flag, "CPU"); /* Parse boot command, set up registers - also used on reset */ -t_stat vax730_boot_parse (int32 flag, char *ptr) +t_stat vax730_boot_parse (int32 flag, const char *ptr) { char gbuf[CBUFSIZE]; -char *slptr, *regptr; +char *slptr; +const char *regptr; int32 i, r5v, unitno; DEVICE *dptr; UNIT *uptr; @@ -577,7 +578,7 @@ return "system bus controller"; /* Show nexus */ -t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "nexus=%d, address=%X", val, NEXUSBASE + ((1 << REG_V_NEXUS) * val)); return SCPE_OK; diff --git a/VAX/vax730_syslist.c b/VAX/vax730_syslist.c index 3d105f5f..f1d779e3 100644 --- a/VAX/vax730_syslist.c +++ b/VAX/vax730_syslist.c @@ -102,7 +102,7 @@ DEVICE *sim_devices[] = { -o for memory, specify origin */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { t_stat r; int32 val; diff --git a/VAX/vax730_uba.c b/VAX/vax730_uba.c index 731fc546..f34a4526 100644 --- a/VAX/vax730_uba.c +++ b/VAX/vax730_uba.c @@ -105,10 +105,10 @@ int32 uba_get_ubvector (int32 lvl); t_bool uba_eval_int (int32 lvl); void uba_ubpdn (int32 time); t_bool uba_map_addr (uint32 ua, uint32 *ma); -t_stat set_autocon (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat uba_show_virt (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_autocon (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat uba_show_virt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern int32 eval_int (void); extern t_stat build_dib_tab (void); @@ -475,7 +475,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ return 0; } -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf) +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf) { int32 i, j, pbc; uint32 ma, dat; @@ -508,7 +508,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ return 0; } -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf) +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf) { int32 i, j, pbc; uint32 ma, dat; @@ -649,10 +649,10 @@ return SCPE_NXM; /* Show UBA virtual address */ -t_stat uba_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat uba_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; uint32 ua, pa; if (cptr) { diff --git a/VAX/vax750_cmi.c b/VAX/vax750_cmi.c index 2e3ee396..b547730d 100644 --- a/VAX/vax750_cmi.c +++ b/VAX/vax750_cmi.c @@ -89,10 +89,10 @@ extern int32 tmr_int, tti_int, tto_int, csi_int, cso_int; t_stat cmi_reset (DEVICE *dptr); const char *cmi_description (DEVICE *dptr); void cmi_set_tmo (void); -t_stat vax750_boot (int32 flag, char *ptr); -t_stat vax750_boot_parse (int32 flag, char *ptr); -t_stat vax750_set_bootdev (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat vax750_show_bootdev (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat vax750_boot (int32 flag, CONST char *ptr); +t_stat vax750_boot_parse (int32 flag, const char *ptr); +t_stat vax750_set_bootdev (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat vax750_show_bootdev (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern int32 iccs_rd (void); extern int32 nicr_rd (void); @@ -571,9 +571,9 @@ return cc; /* VAX-11/750 boot device definitions */ struct boot_dev { - char *devname; - char *romdevalias; - char *bootcodefile; + const char *devname; + const char *romdevalias; + const char *bootcodefile; int32 bootdev; int32 code; int32 let; @@ -605,7 +605,7 @@ static struct boot_dev boot_tab[] = { Sets up R0-R5, calls SCP boot processor with effective BOOT CPU */ -t_stat vax750_boot (int32 flag, char *ptr) +t_stat vax750_boot (int32 flag, CONST char *ptr) { t_stat r; @@ -623,10 +623,11 @@ return run_cmd (flag, "CPU"); /* Parse boot command, set up registers - also used on reset */ -t_stat vax750_boot_parse (int32 flag, char *ptr) +t_stat vax750_boot_parse (int32 flag, const char *ptr) { char gbuf[CBUFSIZE], dbuf[CBUFSIZE], rbuf[CBUFSIZE]; -char *slptr, *regptr; +char *slptr; +const char *regptr; int32 i, r5v, unitno; DEVICE *dptr; UNIT *uptr; @@ -760,7 +761,7 @@ else /* Boot ROM boot */ return SCPE_OK; } -t_stat vax750_set_bootdev (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat vax750_set_bootdev (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if ((!cptr) || (!*cptr || (*cptr < 'A') || (*cptr > 'D'))) return SCPE_ARG; @@ -768,7 +769,7 @@ vax750_bootdev = *cptr - 'A'; return SCPE_OK; } -t_stat vax750_show_bootdev (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat vax750_show_bootdev (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int i; @@ -801,7 +802,7 @@ return "CPU/Memory interconnect"; /* Show nexus */ -t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "nexus=%d, address=%X", val, NEXUSBASE + ((1 << REG_V_NEXUS) * val)); return SCPE_OK; diff --git a/VAX/vax750_defs.h b/VAX/vax750_defs.h index d080bd2d..16756d7e 100644 --- a/VAX/vax750_defs.h +++ b/VAX/vax750_defs.h @@ -156,13 +156,13 @@ { UNIT_MSIZE, (1u << 23) + (6u << 20), NULL, "14M", &cpu_set_size, NULL, NULL, "Set Memory to 14M bytes" }, \ { UNIT_MSIZE, (1u << 23) + (7u << 20), NULL, "15M", &cpu_set_size, NULL, NULL, "Set Memory to 15M bytes" }, \ { MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, "MEMORY", NULL, NULL, &cpu_show_memory, NULL, "Display memory configuration" } -extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc); +extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc); #define CPU_MODEL_MODIFIERS { MTAB_XTD|MTAB_VDV, 0, "MODEL", NULL, \ NULL, &cpu_show_model, NULL, "Display the simulator CPU Model" }, \ { MTAB_XTD|MTAB_VDV, 0, "BOOTDEV", "BOOTDEV={A|B|C|D}", \ &vax750_set_bootdev, &vax750_show_bootdev, NULL, "Set Boot Device" } -extern t_stat vax750_set_bootdev (UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat vax750_show_bootdev (FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat vax750_set_bootdev (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat vax750_show_bootdev (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* Unibus I/O registers */ @@ -417,20 +417,20 @@ extern int32 int_req[IPL_HLVL]; /* intr, IPL 14-17 */ int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf); int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf); -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf); -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf); +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf); +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf); int32 mba_rdbufW (uint32 mbus, int32 bc, uint16 *buf); -int32 mba_wrbufW (uint32 mbus, int32 bc, uint16 *buf); +int32 mba_wrbufW (uint32 mbus, int32 bc, const uint16 *buf); int32 mba_chbufW (uint32 mbus, int32 bc, uint16 *buf); int32 mba_get_bc (uint32 mbus); void mba_upd_ata (uint32 mbus, uint32 val); void mba_set_exc (uint32 mbus); void mba_set_don (uint32 mbus); void mba_set_enbdis (DEVICE *dptr); -t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, CONST void *desc); -t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void sbi_set_errcnf (void); diff --git a/VAX/vax750_mem.c b/VAX/vax750_mem.c index c742b0de..ec0e9f43 100644 --- a/VAX/vax750_mem.c +++ b/VAX/vax750_mem.c @@ -257,12 +257,12 @@ const char *mctl_description (DEVICE *dptr) return "Memory controller"; } -t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { uint32 baseaddr = 0; struct { uint32 capacity; - char *option; + const char *option; } boards[] = { { 4096, "MS750-JD M7199"}, { 1024, "MS750-CA M8750"}, diff --git a/VAX/vax750_stddev.c b/VAX/vax750_stddev.c index 0d344ce8..03aeadb0 100644 --- a/VAX/vax750_stddev.c +++ b/VAX/vax750_stddev.c @@ -188,7 +188,7 @@ const char *clk_description (DEVICE *dptr); t_stat tti_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat tto_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat clk_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); -t_stat clk_attach (UNIT *uptr, char *cptr); +t_stat clk_attach (UNIT *uptr, CONST char *cptr); t_stat clk_detach (UNIT *uptr); t_stat tmr_reset (DEVICE *dptr); const char *tmr_description (DEVICE *dptr); @@ -802,7 +802,7 @@ return "time of year clock"; /* CLK attach */ -t_stat clk_attach (UNIT *uptr, char *cptr) +t_stat clk_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/VAX/vax750_syslist.c b/VAX/vax750_syslist.c index 936e5a0d..9c409a31 100644 --- a/VAX/vax750_syslist.c +++ b/VAX/vax750_syslist.c @@ -105,7 +105,7 @@ DEVICE *sim_devices[] = { -o for memory, specify origin */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { t_stat r; int32 val; diff --git a/VAX/vax750_uba.c b/VAX/vax750_uba.c index bd789037..db5f6642 100644 --- a/VAX/vax750_uba.c +++ b/VAX/vax750_uba.c @@ -111,10 +111,10 @@ int32 uba_get_ubvector (int32 lvl); void uba_eval_int (void); void uba_ioreset (void); t_bool uba_map_addr (uint32 ua, uint32 *ma); -t_stat set_autocon (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat uba_show_virt (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_autocon (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat uba_show_virt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern int32 eval_int (void); extern t_stat build_dib_tab (void); @@ -523,7 +523,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ return 0; } -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf) +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf) { int32 i, j, pbc; uint32 ma, dat; @@ -556,7 +556,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ return 0; } -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf) +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf) { int32 i, j, pbc; uint32 ma, dat; @@ -705,10 +705,10 @@ return SCPE_NXM; /* Show UBA virtual address */ -t_stat uba_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat uba_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; uint32 ua, pa; if (cptr) { diff --git a/VAX/vax780_defs.h b/VAX/vax780_defs.h index 73c4b04a..24b64aa5 100644 --- a/VAX/vax780_defs.h +++ b/VAX/vax780_defs.h @@ -172,7 +172,7 @@ { UNIT_MSIZE, (1u << 26), NULL, "64M", &cpu_set_size, NULL, NULL, "Set Memory to 64M bytes" }, \ { UNIT_MSIZE, (1u << 27), NULL, "128M", &cpu_set_size, NULL, NULL, "Set Memory to 128M bytes" }, \ { MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, "MEMORY", NULL, NULL, &cpu_show_memory, NULL, "Display memory configuration" } -extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc); +extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc); #define CPU_MODEL_MODIFIERS \ { MTAB_XTD|MTAB_VDV, 0, "MODEL", "MODEL={780|785}", \ &cpu_set_model, &cpu_show_model, NULL, "Set/Show the simulator CPU Model" } @@ -429,20 +429,20 @@ extern int32 int_req[IPL_HLVL]; /* intr, IPL 14-17 */ int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf); int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf); -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf); -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf); +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf); +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf); int32 mba_rdbufW (uint32 mbus, int32 bc, uint16 *buf); -int32 mba_wrbufW (uint32 mbus, int32 bc, uint16 *buf); +int32 mba_wrbufW (uint32 mbus, int32 bc, const uint16 *buf); int32 mba_chbufW (uint32 mbus, int32 bc, uint16 *buf); int32 mba_get_bc (uint32 mbus); void mba_upd_ata (uint32 mbus, uint32 val); void mba_set_exc (uint32 mbus); void mba_set_don (uint32 mbus); void mba_set_enbdis (DEVICE *dptr); -t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, CONST void *desc); -t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void sbi_set_errcnf (void); diff --git a/VAX/vax780_fload.c b/VAX/vax780_fload.c index c66779a8..6b003acf 100644 --- a/VAX/vax780_fload.c +++ b/VAX/vax780_fload.c @@ -87,7 +87,7 @@ uint32 rtfile_find (uint32 block, uint32 sector); /* FLOAD file_name {file_origin} */ -t_stat vax780_fload (int32 flag, char *cptr) +t_stat vax780_fload (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; uint16 file_name[3], blkbuf[BLK_SIZE]; @@ -169,8 +169,8 @@ return TRUE; uint32 rtfile_ator50 (uint32 ascii) { -static char *r50 = " ABCDEFGHIJKLMNOPQRSTUVWXYZ$._0123456789"; -char *fptr; +static const char *r50 = " ABCDEFGHIJKLMNOPQRSTUVWXYZ$._0123456789"; +const char *fptr; ascii = toupper (ascii); if ((fptr = strchr (r50, toupper (ascii))) != NULL) @@ -211,7 +211,7 @@ t_stat rtfile_read (uint32 block, uint32 count, uint16 *buffer) { uint32 i, j; uint32 pos; -uint8 *fbuf = fl_unit.filebuf; +uint8 *fbuf = (uint8 *)fl_unit.filebuf; for (; count > 0; count--, block++) { for (i = 0; i < 4; i++) { /* 4 sectors/block */ diff --git a/VAX/vax780_mem.c b/VAX/vax780_mem.c index 8e02631a..49febb6a 100644 --- a/VAX/vax780_mem.c +++ b/VAX/vax780_mem.c @@ -289,11 +289,11 @@ sprintf (buf, "Memory controller %d", (int)(dptr-mctl_dev)); return buf; } -t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { struct { uint32 capacity; - char *option; + const char *option; } boards[] = { { 4096, "MS780-JD M8374 array"}, { 1024, "MS780-FD M8373 array"}, diff --git a/VAX/vax780_sbi.c b/VAX/vax780_sbi.c index 95088575..339a8a02 100644 --- a/VAX/vax780_sbi.c +++ b/VAX/vax780_sbi.c @@ -96,7 +96,7 @@ /* VAX-11/780 boot device definitions */ struct boot_dev { - char *name; + const char *name; int32 code; int32 let; }; @@ -134,10 +134,10 @@ t_stat sbi_reset (DEVICE *dptr); const char *sbi_description (DEVICE *dptr); void sbi_set_tmo (int32 pa); void uba_eval_int (void); -t_stat vax780_boot (int32 flag, char *ptr); -t_stat vax780_boot_parse (int32 flag, char *ptr); +t_stat vax780_boot (int32 flag, CONST char *ptr); +t_stat vax780_boot_parse (int32 flag, const char *ptr); -extern t_stat vax780_fload (int32 flag, char *cptr); +extern t_stat vax780_fload (int32 flag, CONST char *cptr); extern int32 iccs_rd (void); extern int32 nicr_rd (void); extern int32 icr_rd (void); @@ -618,7 +618,7 @@ return cc; Sets up R0-R5, calls SCP boot processor with effective BOOT CPU */ -t_stat vax780_boot (int32 flag, char *ptr) +t_stat vax780_boot (int32 flag, CONST char *ptr) { t_stat r; @@ -636,10 +636,11 @@ return run_cmd (flag, "CPU"); /* Parse boot command, set up registers - also used on reset */ -t_stat vax780_boot_parse (int32 flag, char *ptr) +t_stat vax780_boot_parse (int32 flag, const char *ptr) { char gbuf[CBUFSIZE]; -char *slptr, *regptr; +char *slptr; +const char *regptr; int32 i, r5v, unitno; uint32 ba; DEVICE *dptr; @@ -738,7 +739,7 @@ return "Synchronous Backplane Interconnect"; /* Show nexus */ -t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "nexus=%d, address=%X", val, NEXUSBASE + ((1 << REG_V_NEXUS) * val)); return SCPE_OK; @@ -822,7 +823,7 @@ for (i = 0; (dptr = sim_devices[i]) != NULL; i++) { /* loop thru dev */ return SCPE_OK; } -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr == NULL) return SCPE_ARG; if (strcmp(cptr, "780") == 0) { diff --git a/VAX/vax780_stddev.c b/VAX/vax780_stddev.c index cb028068..a4053d1b 100644 --- a/VAX/vax780_stddev.c +++ b/VAX/vax780_stddev.c @@ -234,7 +234,7 @@ const char *fl_description (DEVICE *dptr); t_stat tti_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat tto_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat clk_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); -t_stat clk_attach (UNIT *uptr, char *cptr); +t_stat clk_attach (UNIT *uptr, CONST char *cptr); t_stat clk_detach (UNIT *uptr); t_stat tmr_reset (DEVICE *dptr); t_stat fl_svc (UNIT *uptr); @@ -734,7 +734,7 @@ return "time of year clock"; /* CLK attach */ -t_stat clk_attach (UNIT *uptr, char *cptr) +t_stat clk_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -963,7 +963,7 @@ t_stat fl_svc (UNIT *uptr) { int32 i, t; uint32 da; -int8 *fbuf = uptr->filebuf; +int8 *fbuf = (int8 *)uptr->filebuf; switch (fl_state) { /* case on state */ diff --git a/VAX/vax780_syslist.c b/VAX/vax780_syslist.c index 36ab6533..81dbdbae 100644 --- a/VAX/vax780_syslist.c +++ b/VAX/vax780_syslist.c @@ -36,7 +36,7 @@ void vax_init(void) sim_savename = "VAX780"; } -void (*sim_vm_init) (void) = &vax_init; +WEAK void (*sim_vm_init) (void) = &vax_init; extern DEVICE cpu_dev; extern DEVICE tlb_dev; @@ -115,7 +115,7 @@ DEVICE *sim_devices[] = { -o for memory, specify origin */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { t_stat r; int32 val; diff --git a/VAX/vax780_uba.c b/VAX/vax780_uba.c index 43d445c4..7997b75f 100644 --- a/VAX/vax780_uba.c +++ b/VAX/vax780_uba.c @@ -197,10 +197,10 @@ void uba_adap_clr_int (); void uba_set_dpr (uint32 ua, t_bool wr); void uba_ubpdn (int32 time); t_bool uba_map_addr (uint32 ua, uint32 *ma); -t_stat set_autocon (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat uba_show_virt (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat set_autocon (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat uba_show_virt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern int32 eval_int (void); extern t_stat build_dib_tab (void); @@ -683,7 +683,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ return 0; } -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf) +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf) { int32 i, j, pbc; uint32 ma, dat; @@ -717,7 +717,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ return 0; } -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf) +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf) { int32 i, j, pbc; uint32 ma, dat; @@ -984,10 +984,10 @@ return SCPE_NXM; /* Show UBA virtual address */ -t_stat uba_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat uba_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; uint32 ua, pa; if (cptr) { diff --git a/VAX/vax7x0_mba.c b/VAX/vax7x0_mba.c index bb2ff53d..8f5ac257 100644 --- a/VAX/vax7x0_mba.c +++ b/VAX/vax7x0_mba.c @@ -49,7 +49,7 @@ #define MBA_EXTDRV(x) (((x) >> MBA_V_DRV) & MBA_M_DRV) #define MBA_EXTOFS(x) (((x) >> MBA_V_DEVOFS) & MBA_M_DEVOFS) -char *mba_regnames[] = {"CNF", "CR", "SR", "VA", "BC", "DR", "SMR", "CMD"}; +const char *mba_regnames[] = {"CNF", "CR", "SR", "VA", "BC", "DR", "SMR", "CMD"}; /* Massbus configuration register */ @@ -262,7 +262,6 @@ t_bool mba_map_addr (uint32 va, uint32 *ma, uint32 mb); void mba_set_int (uint32 mb); void mba_clr_int (uint32 mb); void mba_upd_sr (uint32 set, uint32 clr, uint32 mb); -DIB mba0_dib, mba1_dib; /* Massbus register dispatches */ @@ -643,7 +642,7 @@ mba_va[mb] = (mba_va[mb] + i) & MBAVA_WR; return i; } -int32 mba_wrbufW (uint32 mb, int32 bc, uint16 *buf) +int32 mba_wrbufW (uint32 mb, int32 bc, const uint16 *buf) { int32 i, j, ba, mbc, pbc; uint32 pa, dat; @@ -896,7 +895,7 @@ return buf; /* Show Massbus adapter number */ -t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr = find_dev_from_unit (uptr); DIB *dibp; diff --git a/VAX/vax860_abus.c b/VAX/vax860_abus.c index f4d44ba9..7e76219c 100644 --- a/VAX/vax860_abus.c +++ b/VAX/vax860_abus.c @@ -81,7 +81,7 @@ /* VAX 8600 boot device definitions */ struct boot_dev { - char *name; + const char *name; int32 code; int32 let; }; @@ -113,8 +113,8 @@ extern uint32 sbi_er; void uba_eval_int (void); t_stat abus_reset (DEVICE *dptr); const char *abus_description (DEVICE *dptr); -t_stat vax860_boot (int32 flag, char *ptr); -t_stat vax860_boot_parse (int32 flag, char *ptr); +t_stat vax860_boot (int32 flag, CONST char *ptr); +t_stat vax860_boot_parse (int32 flag, const char *ptr); void init_pamm (void); extern t_stat (*nexusR[NEXUS_NUM])(int32 *dat, int32 ad, int32 md); @@ -233,13 +233,13 @@ for (i=0; i<32; i++) pamm[512+i] = PAMM_IOA0; } -t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { int32 slot[32]; int32 base[32]; struct { int capacity; - char *option; + const char *option; } boards[] = { { 4, "MS86-B"}, { 16, "MS86-C"}, @@ -681,7 +681,7 @@ return cc; Sets up R0-R5, calls SCP boot processor with effective BOOT CPU */ -t_stat vax860_boot (int32 flag, char *ptr) +t_stat vax860_boot (int32 flag, CONST char *ptr) { t_stat r; @@ -699,10 +699,11 @@ return run_cmd (flag, "CPU"); /* Parse boot command, set up registers - also used on reset */ -t_stat vax860_boot_parse (int32 flag, char *ptr) +t_stat vax860_boot_parse (int32 flag, const char *ptr) { char gbuf[CBUFSIZE]; -char *slptr, *regptr; +char *slptr; +const char *regptr; int32 i, r5v, unitno; DEVICE *dptr; UNIT *uptr; @@ -825,7 +826,7 @@ for (i = 0; (dptr = sim_devices[i]) != NULL; i++) { /* loop thru dev */ return SCPE_OK; } -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr == NULL) return SCPE_ARG; if (strcmp(cptr, "8600") == 0) { diff --git a/VAX/vax860_defs.h b/VAX/vax860_defs.h index eb86d71d..7f054f92 100644 --- a/VAX/vax860_defs.h +++ b/VAX/vax860_defs.h @@ -194,7 +194,7 @@ { UNIT_MSIZE, (1u << 28) + (1u << 22), NULL, "260M", &cpu_set_size, NULL, NULL, "Set Memory to 260M bytes" }, \ { UNIT_MSIZE, (1u << 29), NULL, "512M", &cpu_set_size, NULL, NULL, "Set Memory to 512M bytes" }, \ { MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, "MEMORY", NULL, NULL, &cpu_show_memory, NULL, "Display memory configuration" } -extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc); +extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc); #define CPU_MODEL_MODIFIERS \ { MTAB_XTD|MTAB_VDV, 0, "MODEL", "MODEL={8600|8650}", \ @@ -459,20 +459,20 @@ extern int32 int_req[IPL_HLVL]; /* intr, IPL 14-17 */ int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf); int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf); -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf); -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf); +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf); +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf); int32 mba_rdbufW (uint32 mbus, int32 bc, uint16 *buf); -int32 mba_wrbufW (uint32 mbus, int32 bc, uint16 *buf); +int32 mba_wrbufW (uint32 mbus, int32 bc, const uint16 *buf); int32 mba_chbufW (uint32 mbus, int32 bc, uint16 *buf); int32 mba_get_bc (uint32 mbus); void mba_upd_ata (uint32 mbus, uint32 val); void mba_set_exc (uint32 mbus); void mba_set_don (uint32 mbus); void mba_set_enbdis (DEVICE *dptr); -t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat mba_show_num (FILE *st, UNIT *uptr, int32 val, CONST void *desc); -t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void sbi_set_errcnf (void); diff --git a/VAX/vax860_sbia.c b/VAX/vax860_sbia.c index be1b3107..6f5dcdd1 100644 --- a/VAX/vax860_sbia.c +++ b/VAX/vax860_sbia.c @@ -72,7 +72,7 @@ #define SBIQC_MBZ 0xC0000007 /* MBZ */ -uint32 nexus_req[NEXUS_HLVL]; /* nexus int req */ +extern uint32 nexus_req[NEXUS_HLVL]; /* nexus int req */ uint32 sbi_fs = 0; /* SBI fault status */ uint32 sbi_sc = 0; /* SBI silo comparator */ uint32 sbi_mt = 0; /* SBI maintenance */ @@ -298,7 +298,7 @@ return "SBI adapter"; /* Show nexus */ -t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat show_nexus (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "nexus=%d, address=%X", val, NEXUSBASE + ((1 << REG_V_NEXUS) * val)); return SCPE_OK; diff --git a/VAX/vax860_stddev.c b/VAX/vax860_stddev.c index 9ec923f2..00fccd09 100644 --- a/VAX/vax860_stddev.c +++ b/VAX/vax860_stddev.c @@ -250,11 +250,11 @@ const char *rlcs_description (DEVICE *dptr); t_stat tti_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat tto_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat clk_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); -t_stat clk_attach (UNIT *uptr, char *cptr); +t_stat clk_attach (UNIT *uptr, CONST char *cptr); t_stat clk_detach (UNIT *uptr); t_stat tmr_reset (DEVICE *dptr); t_stat rlcs_reset (DEVICE *dptr); -t_stat rlcs_attach (UNIT *uptr, char *cptr); +t_stat rlcs_attach (UNIT *uptr, CONST char *cptr); int32 icr_rd (t_bool interp); void tmr_incr (uint32 inc); void tmr_sched (void); @@ -907,7 +907,7 @@ return "time of year clock"; /* CLK attach */ -t_stat clk_attach (UNIT *uptr, char *cptr) +t_stat clk_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -1238,7 +1238,7 @@ const char *rlcs_description (DEVICE *dptr) return "Console RL02 disk"; } -t_stat rlcs_attach (UNIT *uptr, char *cptr) +t_stat rlcs_attach (UNIT *uptr, CONST char *cptr) { uint32 p; t_stat r; diff --git a/VAX/vax860_syslist.c b/VAX/vax860_syslist.c index b74410c9..a0c6f3db 100644 --- a/VAX/vax860_syslist.c +++ b/VAX/vax860_syslist.c @@ -36,7 +36,7 @@ void vax_init(void) sim_savename = "VAX 8600"; } -void (*sim_vm_init) (void) = &vax_init; +WEAK void (*sim_vm_init) (void) = &vax_init; extern DEVICE cpu_dev; extern DEVICE tlb_dev; @@ -112,7 +112,7 @@ DEVICE *sim_devices[] = { -o for memory, specify origin */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { t_stat r; int32 val; diff --git a/VAX/vax_2681.c b/VAX/vax_2681.c index d8b82510..079e2830 100644 --- a/VAX/vax_2681.c +++ b/VAX/vax_2681.c @@ -381,54 +381,54 @@ return t ^ 0xff; void ua2681_ip0_wr (UART2681 *ctx, uint32 set) { -uint8 new = (ctx->iport & ~1) | (set ? 1 : 0); +uint8 new_val = (ctx->iport & ~1) | (set ? 1 : 0); -if (new != ctx->iport) { +if (new_val != ctx->iport) { ctx->ipcr &= ~0x0f; - ctx->ipcr |= (new & 0x0f); + ctx->ipcr |= (new_val & 0x0f); ctx->ipcr |= 0x10; } -ctx->iport = new; +ctx->iport = new_val; } void ua2681_ip1_wr (UART2681 *ctx, uint32 set) { -uint8 new = (ctx->iport & ~2) | (set ? 2 : 0); +uint8 new_val = (ctx->iport & ~2) | (set ? 2 : 0); -if (new != ctx->iport) { +if (new_val != ctx->iport) { ctx->ipcr &= ~0x0f; - ctx->ipcr |= (new & 0x0f); + ctx->ipcr |= (new_val & 0x0f); ctx->ipcr |= 0x20; } -ctx->iport = new; +ctx->iport = new_val; } void ua2681_ip2_wr (UART2681 *ctx, uint32 set) { -uint8 new = (ctx->iport & ~4) | (set ? 4 : 0); +uint8 new_val = (ctx->iport & ~4) | (set ? 4 : 0); -if (new != ctx->iport) { +if (new_val != ctx->iport) { ctx->ipcr &= ~0x0f; - ctx->ipcr |= (new & 0x0f); + ctx->ipcr |= (new_val & 0x0f); ctx->ipcr |= 0x40; } -ctx->iport = new; +ctx->iport = new_val; } void ua2681_ip3_wr (UART2681 *ctx, uint32 set) { -uint8 new = (ctx->iport & ~8) | (set ? 8 : 0); +uint8 new_val = (ctx->iport & ~8) | (set ? 8 : 0); -if (new != ctx->iport) { +if (new_val != ctx->iport) { ctx->ipcr &= ~0x0f; - ctx->ipcr |= (new & 0x0f); + ctx->ipcr |= (new_val & 0x0f); ctx->ipcr |= 0x80; } -ctx->iport = new; +ctx->iport = new_val; } /**/ diff --git a/VAX/vax_cis.c b/VAX/vax_cis.c index 23521aed..2eb2e803 100644 --- a/VAX/vax_cis.c +++ b/VAX/vax_cis.c @@ -1392,11 +1392,11 @@ return cy; void SubDstr (DSTR *s1, DSTR *s2, DSTR *ds) { int32 i; -DSTR compl; +DSTR complX; for (i = 0; i < DSTRLNT; i++) /* 10's comp s2 */ - compl.val[i] = 0x99999999 - s1->val[i]; -AddDstr (&compl, s2, ds, 1); /* s1 + ~s2 + 1 */ + complX.val[i] = 0x99999999 - s1->val[i]; +AddDstr (&complX, s2, ds, 1); /* s1 + ~s2 + 1 */ return; } diff --git a/VAX/vax_cpu.c b/VAX/vax_cpu.c index 58195946..2a4e8ed3 100644 --- a/VAX/vax_cpu.c +++ b/VAX/vax_cpu.c @@ -320,12 +320,12 @@ t_stat cpu_reset (DEVICE *dptr); t_bool cpu_is_pc_a_subroutine_call (t_addr **ret_addrs); t_stat cpu_ex (t_value *vptr, t_addr exta, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr exta, UNIT *uptr, int32 sw); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_show_virt (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_idle (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_idle (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_show_virt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_idle (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_idle (FILE *st, UNIT *uptr, int32 val, CONST void *desc); const char *cpu_description (DEVICE *dptr); int32 cpu_get_vsw (int32 sw); static SIM_INLINE int32 get_istr (int32 lnt, int32 acc); @@ -460,7 +460,7 @@ DEVICE cpu_dev = { &cpu_description }; -t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "model="); return cpu_print_model (st); @@ -3319,7 +3319,7 @@ return SCPE_NXM; /* Memory allocation */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 mc = 0; uint32 i, clim, uval = (uint32)val; @@ -3346,10 +3346,10 @@ return SCPE_OK; /* Virtual address translation */ -t_stat cpu_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; uint32 va, pa; int32 st; static const char *mm_str[] = { @@ -3398,7 +3398,7 @@ return ACC_MASK (md); /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; char gbuf[CBUFSIZE]; @@ -3454,10 +3454,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_stat r; if (hst_lnt == 0) /* enabled? */ @@ -3630,7 +3630,7 @@ static struct os_idle os_tab[] = { /* Set and show idle */ -t_stat cpu_set_idle (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_idle (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i; char gbuf[CBUFSIZE]; @@ -3649,7 +3649,7 @@ if (cptr != NULL) { return sim_set_idle (uptr, val, cptr, desc); } -t_stat cpu_show_idle (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_idle (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (sim_idle_enab && (cpu_idle_type != 0)) fprintf (st, "idle=%s, ", os_tab[cpu_idle_type - 1].name); @@ -3683,7 +3683,6 @@ fprintf (st, "The ");cpu_print_model (st);fprintf (st, " CPU help\n\n"); fprintf (st, "CPU options include the size of main memory.\n\n"); if (dptr->modifiers) { MTAB *mptr; - extern t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); for (mptr = dptr->modifiers; mptr->mask != 0; mptr++) if (mptr->valid == &cpu_set_size) diff --git a/VAX/vax_cpu1.c b/VAX/vax_cpu1.c index 1476f5bc..868b501b 100644 --- a/VAX/vax_cpu1.c +++ b/VAX/vax_cpu1.c @@ -82,8 +82,6 @@ static const uint8 rcnt[128] = { 12,16,16,20,16,20,20,24,16,20,20,24,20,24,24,28 /* 70 - 7F */ }; -extern const uint32 byte_mask[33]; - extern int32 ReadIPR (int32 rg); extern void WriteIPR (int32 rg, int32 val); extern t_bool BadCmPSL (int32 newpsl); diff --git a/VAX/vax_defs.h b/VAX/vax_defs.h index 41334c8e..a62bfdc6 100644 --- a/VAX/vax_defs.h +++ b/VAX/vax_defs.h @@ -893,9 +893,10 @@ extern void rom_wr_B (int32 pa, int32 val); extern t_stat cpu_load_bootcode (const char *filename, const unsigned char *builtin_code, size_t size, t_bool rom, t_addr offset); extern t_stat cpu_print_model (FILE *st); -extern t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, void *desc); -extern t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc); +extern t_stat cpu_show_model (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +extern t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc); extern t_stat cpu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); extern t_stat cpu_model_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); +extern const uint32 byte_mask[33]; #endif /* _VAX_DEFS_H */ diff --git a/VAX/vax_io.c b/VAX/vax_io.c index 68b225a4..0b46f595 100644 --- a/VAX/vax_io.c +++ b/VAX/vax_io.c @@ -130,10 +130,10 @@ t_stat qba_ex (t_value *vptr, t_addr exta, UNIT *uptr, int32 sw); t_stat qba_dep (t_value val, t_addr exta, UNIT *uptr, int32 sw); t_bool qba_map_addr (uint32 qa, uint32 *ma); t_bool qba_map_addr_c (uint32 qa, uint32 *ma); -t_stat set_autocon (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat qba_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc); +t_stat set_autocon (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat show_autocon (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat qba_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc); t_stat qba_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *qba_description (DEVICE *dptr); @@ -793,7 +793,7 @@ else { return 0; } -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf) +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf) { int32 i; uint32 ma, dat; @@ -825,7 +825,7 @@ else { return 0; } -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf) +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf) { int32 i; uint32 ma, dat; @@ -909,10 +909,10 @@ return SCPE_OK; /* Show QBA virtual address */ -t_stat qba_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat qba_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; uint32 qa, pa; if (cptr) { diff --git a/VAX/vax_lk.c b/VAX/vax_lk.c index 0e9c522b..6f81a316 100644 --- a/VAX/vax_lk.c +++ b/VAX/vax_lk.c @@ -50,7 +50,7 @@ typedef struct { int8 group; - int8 code; + uint8 code; } LK_KEYDATA; LK_KEYDATA LK_KEY_UNKNOWN = { 0, 0 }; diff --git a/VAX/vax_stddev.c b/VAX/vax_stddev.c index db4a1def..ca9c6196 100644 --- a/VAX/vax_stddev.c +++ b/VAX/vax_stddev.c @@ -114,7 +114,7 @@ t_stat clk_svc (UNIT *uptr); t_stat tti_reset (DEVICE *dptr); t_stat tto_reset (DEVICE *dptr); t_stat clk_reset (DEVICE *dptr); -t_stat clk_attach (UNIT *uptr, char *cptr); +t_stat clk_attach (UNIT *uptr, CONST char *cptr); t_stat clk_detach (UNIT *uptr); t_stat todr_resync (void); const char *tti_description (DEVICE *dptr); @@ -612,7 +612,7 @@ return "time of year clock"; /* CLK attach */ -t_stat clk_attach (UNIT *uptr, char *cptr) +t_stat clk_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/VAX/vax_sys.c b/VAX/vax_sys.c index 0c42dff6..70feae99 100644 --- a/VAX/vax_sys.c +++ b/VAX/vax_sys.c @@ -57,18 +57,18 @@ extern REG cpu_reg[]; t_stat fprint_sym_m (FILE *of, uint32 addr, t_value *val); int32 fprint_sym_qoimm (FILE *of, t_value *val, int32 vp, int32 lnt); -t_stat parse_char (char *cptr, t_value *val, int32 lnt); -t_stat parse_sym_m (char *cptr, uint32 addr, t_value *val); -int32 parse_brdisp (char *cptr, uint32 addr, t_value *val, +t_stat parse_char (const char *cptr, t_value *val, int32 lnt); +t_stat parse_sym_m (const char *cptr, uint32 addr, t_value *val); +int32 parse_brdisp (const char *cptr, uint32 addr, t_value *val, int32 vp, int32 lnt, t_stat *r); -int32 parse_spec (char *cptr, uint32 addr, t_value *val, +int32 parse_spec (CONST char *cptr, uint32 addr, t_value *val, int32 vp, int32 disp, t_stat *r); -char *parse_rnum (char *cptr, int32 *rn); +CONST char *parse_rnum (CONST char *cptr, int32 *rn); int32 parse_sym_qoimm (int32 *lit, t_value *val, int32 vp, int lnt, int32 minus); extern t_stat fprint_sym_cm (FILE *of, t_addr addr, t_value *bytes, int32 sw); -extern t_stat parse_sym_cm (char *cptr, t_addr addr, t_value *bytes, int32 sw); +extern t_stat parse_sym_cm (const char *cptr, t_addr addr, t_value *bytes, int32 sw); /* SCP data structures and interface routines @@ -964,7 +964,7 @@ return vp; <= 0 -number of extra words */ -t_stat parse_sym (char *cptr, t_addr exta, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr exta, UNIT *uptr, t_value *val, int32 sw) { uint32 addr = (uint32) exta; int32 k, rdx, lnt, num, vp; @@ -1031,7 +1031,7 @@ return -(lnt - 1); <= 0 -number of extra words */ -t_stat parse_char (char *cptr, t_value *val, int32 lnt) +t_stat parse_char (const char *cptr, t_value *val, int32 lnt) { int32 vp; @@ -1055,7 +1055,7 @@ return -(vp - 1); /* return # chars */ <= 0 -number of extra words */ -t_stat parse_sym_m (char *cptr, uint32 addr, t_value *val) +t_stat parse_sym_m (const char *cptr, uint32 addr, t_value *val) { int32 i, numspec, disp, opc, vp; t_stat r; @@ -1112,7 +1112,7 @@ return -(vp - 1); vp = updated output pointer */ -int32 parse_brdisp (char *cptr, uint32 addr, t_value *val, int32 vp, +int32 parse_brdisp (const char *cptr, uint32 addr, t_value *val, int32 vp, int32 lnt, t_stat *r) { int32 k, dest, num; @@ -1167,13 +1167,14 @@ return vp; } #define SEL_LIM(p,m,u) ((fl & SP_PLUS)? (p): ((fl & SP_MINUS)? (m): (u))) -int32 parse_spec (char *cptr, uint32 addr, t_value *val, int32 vp, int32 disp, t_stat *r) +int32 parse_spec (CONST char *cptr, uint32 addr, t_value *val, int32 vp, int32 disp, t_stat *r) { int32 i, k, litsize, rn, index; int32 num, dispsize, mode; int32 lit[4] = { 0 }; int32 fl = 0; -char c, *tptr; +char c; +const char *tptr; const char *force[] = { "S^", "I^", "B^", "W^", "L^", NULL }; *r = SCPE_OK; /* assume ok */ @@ -1424,11 +1425,11 @@ if (*cptr != 0) /* must be done */ return vp; } -char *parse_rnum (char *cptr, int32 *rn) +CONST char *parse_rnum (CONST char *cptr, int32 *rn) { int32 i, lnt; t_value regnum; -char *tptr; +CONST char *tptr; *rn = 0; for (i = 15; i >= 0; i--) { /* chk named reg */ @@ -1440,7 +1441,7 @@ for (i = 15; i >= 0; i--) { /* chk named reg */ } if (*cptr++ != 'R') /* look for R */ return NULL; -regnum = strtotv (cptr, (const char **)&tptr, 10); /* look for reg # */ +regnum = strtotv (cptr, &tptr, 10); /* look for reg # */ if ((cptr == tptr) || (regnum > 15)) return NULL; *rn = (int32) regnum; diff --git a/VAX/vax_syscm.c b/VAX/vax_syscm.c index 7cbb8d28..e46042f0 100644 --- a/VAX/vax_syscm.c +++ b/VAX/vax_syscm.c @@ -565,7 +565,7 @@ switch (pflag) { /* case on syntax */ <= 0 -number of extra words */ -t_stat parse_sym_cm (char *cptr, t_addr addr, t_value *bytes, int32 sw) +t_stat parse_sym_cm (const char *cptr, t_addr addr, t_value *bytes, int32 sw) { int32 d, i, j, reg, spec, n1, n2, disp, pflag; int32 val[3]; diff --git a/VAX/vax_sysdev.c b/VAX/vax_sysdev.c index 7a886625..1cc7eff0 100644 --- a/VAX/vax_sysdev.c +++ b/VAX/vax_sysdev.c @@ -65,7 +65,7 @@ #define UNIT_V_NODELAY (UNIT_V_UF + 0) /* ROM access equal to RAM access */ #define UNIT_NODELAY (1u << UNIT_V_NODELAY) -t_stat vax_boot (int32 flag, char *ptr); +t_stat vax_boot (int32 flag, CONST char *ptr); int32 sys_model = 0; /* Special boot command, overrides regular boot */ @@ -228,7 +228,7 @@ const char *rom_description (DEVICE *dptr); t_stat nvr_ex (t_value *vptr, t_addr exta, UNIT *uptr, int32 sw); t_stat nvr_dep (t_value val, t_addr exta, UNIT *uptr, int32 sw); t_stat nvr_reset (DEVICE *dptr); -t_stat nvr_attach (UNIT *uptr, char *cptr); +t_stat nvr_attach (UNIT *uptr, CONST char *cptr); t_stat nvr_detach (UNIT *uptr); t_stat nvr_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *nvr_description (DEVICE *dptr); @@ -685,7 +685,7 @@ return SCPE_OK; /* NVR attach */ -t_stat nvr_attach (UNIT *uptr, char *cptr) +t_stat nvr_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -1164,13 +1164,13 @@ switch (rg) { return; } -t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { uint32 memsize = (uint32)(MEMSIZE>>20); uint32 baseaddr = 0; struct { uint32 capacity; - char *option; + const char *option; } boards[] = { { 16, "MS650-BA"}, { 0, NULL}}; @@ -1617,7 +1617,7 @@ int32 tmr1_inta (void) return tmr_tivr[1]; } -char *tmr_description (DEVICE *dptr) +const char *tmr_description (DEVICE *dptr) { return "non-volatile memory"; } @@ -1682,7 +1682,7 @@ return 0; /* new cc = 0 */ */ -t_stat vax_boot (int32 flag, char *ptr) +t_stat vax_boot (int32 flag, CONST char *ptr) { char gbuf[CBUFSIZE]; @@ -1715,7 +1715,7 @@ sysd_powerup (); 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, CONST char *cptr, void *desc) { ka_hltenab = val; if (ka_hltenab) @@ -1725,7 +1725,7 @@ else return SCPE_OK; } -t_stat sysd_show_halt (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sysd_show_halt (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "%s", ka_hltenab ? "NOAUTOBOOT" : "AUTOBOOT"); return SCPE_OK; @@ -1800,7 +1800,7 @@ const char *sysd_description (DEVICE *dptr) return "system devices"; } -t_stat cpu_set_model (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_model (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { char gbuf[CBUFSIZE]; diff --git a/VAX/vax_syslist.c b/VAX/vax_syslist.c index 8759b347..c66bd4df 100644 --- a/VAX/vax_syslist.c +++ b/VAX/vax_syslist.c @@ -37,7 +37,7 @@ void vax_init(void) sim_savename = "VAX"; } -void (*sim_vm_init) (void) = &vax_init; +WEAK void (*sim_vm_init) (void) = &vax_init; extern DEVICE cpu_dev; extern DEVICE tlb_dev; @@ -109,7 +109,7 @@ DEVICE *sim_devices[] = { -o for memory, specify origin */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { t_stat r; int32 i; diff --git a/VAX/vax_vc.c b/VAX/vax_vc.c index e7d8359c..7c1956c5 100644 --- a/VAX/vax_vc.c +++ b/VAX/vax_vc.c @@ -235,9 +235,9 @@ t_stat vc_wr (int32 data, int32 PA, int32 access); t_stat vc_svc (UNIT *uptr); t_stat vc_reset (DEVICE *dptr); t_stat vc_detach (UNIT *dptr); -t_stat vc_set_enable (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat vc_set_capture (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat vc_show_capture (FILE* st, UNIT* uptr, int32 val, void* desc); +t_stat vc_set_enable (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat vc_set_capture (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat vc_show_capture (FILE* st, UNIT* uptr, int32 val, CONST void* desc); void vc_setint (int32 src); int32 vc_inta (void); void vc_clrint (int32 src); @@ -1060,12 +1060,12 @@ if ((vc_dev.flags & DEV_DIS) == 0) { return SCPE_OK; } -t_stat vc_set_enable (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat vc_set_enable (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { return cpu_set_model (NULL, 0, (val ? "VAXSTATION" : "MICROVAX"), NULL); } -t_stat vc_set_capture (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat vc_set_capture (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (vid_active) return sim_messagef (SCPE_ALATT, "Capture Mode Can't be changed with device enabled\n"); @@ -1073,7 +1073,7 @@ vc_input_captured = val; return SCPE_OK; } -t_stat vc_show_capture (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat vc_show_capture (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { if (vc_input_captured) { fprintf (st, "Captured Input Mode, "); diff --git a/VAX/vax_watch.c b/VAX/vax_watch.c index e69ca610..03ee3207 100644 --- a/VAX/vax_watch.c +++ b/VAX/vax_watch.c @@ -107,8 +107,8 @@ int32 wtc_csrc = 0; int32 wtc_csrd = 0; int32 wtc_mode = WTC_MODE_VMS; -t_stat wtc_set (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat wtc_show (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat wtc_set (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat wtc_show (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat wtc_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); const char *wtc_description (DEVICE *dptr); t_stat wtc_reset (DEVICE *dptr); @@ -149,7 +149,7 @@ DEVICE wtc_dev = { }; /* Register names for Debug tracing */ -static char *wtc_regs[] = +static const char *wtc_regs[] = {"SEC ", "SECA", "MIN ", "MINA", "HR ", "HRA ", "DOW ", "DOM ", "MON ", "YEAR", "CSRA", "CSRB", @@ -294,13 +294,13 @@ if (sim_switches & SWMASK ('P')) { /* powerup? */ return SCPE_OK; } -t_stat wtc_set (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat wtc_set (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (cptr != NULL) wtc_mode = strcmp(cptr, "STD"); return SCPE_OK; } -t_stat wtc_show (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat wtc_show (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf(st, "time=%s", (wtc_mode ? "vms" :"std")); return SCPE_OK; diff --git a/VAX/vaxmod_defs.h b/VAX/vaxmod_defs.h index 2b1bb13e..da46ca4d 100644 --- a/VAX/vaxmod_defs.h +++ b/VAX/vaxmod_defs.h @@ -127,7 +127,7 @@ { UNIT_MSIZE, (1u << 28), NULL, "256M", &cpu_set_size, NULL, NULL, "Set Memory to 256M bytes" }, \ { UNIT_MSIZE, (1u << 29), NULL, "512M", &cpu_set_size, NULL, NULL, "Set Memory to 512M bytes" }, \ { MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, "MEMORY", NULL, NULL, &cpu_show_memory, NULL, "Display memory configuration" } -extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc); +extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, CONST void* desc); #define CPU_MODEL_MODIFIERS { MTAB_XTD|MTAB_VDV, 0, "MODEL", "MODEL={VAXServer|MicroVAX|VAXStation}", \ &cpu_set_model, &cpu_show_model, NULL, "Set/Display processor model" }, \ { MTAB_XTD|MTAB_VDV, 0, "AUTOBOOT", "AUTOBOOT", \ @@ -443,13 +443,13 @@ extern int32 int_req[IPL_HLVL]; /* intr, IPL 14-17 */ int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf); int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf); -int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf); -int32 Map_WriteW (uint32 ba, int32 bc, uint16 *buf); +int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf); +int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf); #include "pdp11_io_lib.h" -extern t_stat sysd_set_halt (UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat sysd_show_halt (FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat sysd_set_halt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat sysd_show_halt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* Function prototypes for system-specific unaligned support */ diff --git a/alpha/alpha_cpu.c b/alpha/alpha_cpu.c index 7d91d9b3..d48dff78 100644 --- a/alpha/alpha_cpu.c +++ b/alpha/alpha_cpu.c @@ -199,10 +199,10 @@ t_stat cpu_reset (DEVICE *dptr); t_stat cpu_boot (int32 unitno, DEVICE *dptr); t_stat cpu_ex (t_value *vptr, t_addr exta, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr exta, UNIT *uptr, int32 sw); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc); t_stat cpu_fprint_one_inst (FILE *st, uint32 ir, t_uint64 pc, t_uint64 ra, t_uint64 rb); extern t_uint64 op_ldf (t_uint64 op); @@ -221,7 +221,7 @@ extern t_stat pal_1d (uint32 ir); extern t_stat pal_1e (uint32 ir); extern t_stat pal_1f (uint32 ir); extern t_uint64 trans_c (t_uint64 va); -extern t_stat cpu_show_tlb (FILE *of, UNIT *uptr, int32 val, void *desc); +extern t_stat cpu_show_tlb (FILE *of, UNIT *uptr, int32 val, CONST void *desc); extern uint32 pal_eval_intr (uint32 flag); extern t_stat pal_proc_excp (uint32 type); extern t_stat pal_proc_trap (uint32 type); @@ -1701,7 +1701,7 @@ return SCPE_NXM; /* Memory allocation */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_uint64 mc = 0; uint32 i, clim; @@ -1722,10 +1722,10 @@ return SCPE_OK; /* Show virtual address */ -t_stat cpu_show_virt (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_virt (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_uint64 va, pa; if (cptr) { @@ -1752,7 +1752,7 @@ return SCPE_OK; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i, lnt; t_stat r; @@ -1832,10 +1832,10 @@ return SCPE_OK; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 k, di, lnt; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; t_stat r; InstHistory *h; diff --git a/alpha/alpha_ev5_pal.c b/alpha/alpha_ev5_pal.c index 8519e4fa..919873f5 100644 --- a/alpha/alpha_ev5_pal.c +++ b/alpha/alpha_ev5_pal.c @@ -115,7 +115,7 @@ extern uint32 pal_type; extern t_uint64 pcq[PCQ_SIZE]; /* PC queue */ extern int32 pcq_p; /* PC queue ptr */ -extern int32 parse_reg (char *cptr); +extern int32 parse_reg (const char *cptr); /* EV5PAL data structures @@ -839,7 +839,7 @@ return; /* Parse options for hardware PAL instruction */ -char *parse_opt_ev5 (char *cptr, uint32 *val, struct pal_opt opt[]) +CONST char *parse_opt_ev5 (CONST char *cptr, uint32 *val, struct pal_opt opt[]) { uint32 i; char *tptr, gbuf[CBUFSIZE]; @@ -900,11 +900,11 @@ return -3; /* Parse PAL hardware opcode symbolically */ -t_stat parse_pal_hwre (char *cptr, t_value *inst) +t_stat parse_pal_hwre (CONST char *cptr, t_value *inst) { uint32 i, d, val = 0; int32 reg; -const char *tptr; +CONST char *tptr; char gbuf[CBUFSIZE]; t_stat r; diff --git a/alpha/alpha_ev5_tlb.c b/alpha/alpha_ev5_tlb.c index ff73e56f..ddfa355f 100644 --- a/alpha/alpha_ev5_tlb.c +++ b/alpha/alpha_ev5_tlb.c @@ -474,8 +474,8 @@ return; int tlb_comp (const void *e1, const void *e2) { -TLBENT *t1 = (TLBENT *) e1; -TLBENT *t2 = (TLBENT *) e2; +const TLBENT *t1 = (const TLBENT *) e1; +const TLBENT *t2 = (const TLBENT *) e2; if (t1->asn > t2->asn) return +1; if (t1->asn < t2->asn) return -1; @@ -532,13 +532,13 @@ return SCPE_OK; /* Show TLB entry or entries */ -t_stat cpu_show_tlb (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_tlb (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_addr lo, hi; uint32 lnt; TLBENT *tlbp; DEVICE *dptr; -const char *cptr = (char *) desc; +CONST char *cptr = (CONST char *) desc; lnt = (val)? DTLB_SIZE: ITLB_SIZE; dptr = find_dev_from_unit (uptr); diff --git a/alpha/alpha_sys.c b/alpha/alpha_sys.c index 7d91f832..a1f13532 100644 --- a/alpha/alpha_sys.c +++ b/alpha/alpha_sys.c @@ -32,11 +32,11 @@ extern REG cpu_reg[]; extern uint32 pal_type; t_stat fprint_sym_m (FILE *of, t_addr addr, uint32 inst); -t_stat parse_sym_m (char *cptr, t_addr addr, t_value *inst); -int32 parse_reg (char *cptr); +t_stat parse_sym_m (CONST char *cptr, t_addr addr, t_value *inst); +int32 parse_reg (const char *cptr); extern t_stat fprint_pal_hwre (FILE *of, uint32 inst); -extern t_stat parse_pal_hwre (char *cptr, t_value *inst); +extern t_stat parse_pal_hwre (CONST char *cptr, t_value *inst); extern t_bool rom_wr (t_uint64 pa, t_uint64 val, uint32 lnt); /* SCP data structures and interface routines @@ -71,7 +71,7 @@ const char *sim_stop_messages[] = { -o specify origin */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { t_stat r; int32 i; @@ -631,7 +631,7 @@ return SCPE_ARG; <= 0 -number of extra words */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { t_value num; uint32 i, sc, rdx; @@ -715,13 +715,13 @@ return -7; <= 0 -number of extra words */ -t_stat parse_sym_m (char *cptr, t_addr addr, t_value *inst) +t_stat parse_sym_m (CONST char *cptr, t_addr addr, t_value *inst) { t_uint64 bra, df, db; uint32 i, k, lit8, fl; int32 reg; t_stat r; -const char *tptr; +CONST char *tptr; char gbuf[CBUFSIZE]; if ((r = parse_pal_hwre (cptr, inst)) < 0) return r; /* PAL hardware? */ @@ -805,7 +805,7 @@ return -3; /* Parse a register */ -int32 parse_reg (char *cptr) +int32 parse_reg (const char *cptr) { t_stat r; int32 reg; diff --git a/display/carbon.c b/display/carbon.c index 2d2c5a55..673b5866 100644 --- a/display/carbon.c +++ b/display/carbon.c @@ -148,7 +148,7 @@ static pascal OSStatus doKbdEvent ( EventHandlerCallRef handlerRef, return (noErr); } -int ws_init ( char *crtname, /* crt type name */ +int ws_init ( const char *crtname, /* crt type name */ int xp, /* screen size in pixels */ int yp, int colors, /* colors to support (not used) */ diff --git a/display/display.c b/display/display.c index 38a7245a..714fd802 100644 --- a/display/display.c +++ b/display/display.c @@ -98,7 +98,7 @@ struct color { struct display { enum display_type type; - char *name; + const char *name; struct color *color0, *color1; short xpoints, ypoints; }; diff --git a/display/sim_ws.c b/display/sim_ws.c index eddb8ba8..7c88f242 100644 --- a/display/sim_ws.c +++ b/display/sim_ws.c @@ -57,7 +57,7 @@ int ws_lp_y = -1; static int xpixels, ypixels; static int pix_size = PIX_SIZE; -static char *window_name; +static const char *window_name; static uint32 *colors = NULL; static uint32 ncolors = 0, size_colors = 0; static uint32 *surface = NULL; @@ -281,7 +281,7 @@ for (row=0; rowdata = data; result->mask = mask; @@ -308,7 +308,7 @@ free (cursor); /* called from display layer on first display op */ int -ws_init(char *name, int xp, int yp, int colors, void *dptr) +ws_init(const char *name, int xp, int yp, int colors, void *dptr) { int i; int ret; @@ -318,10 +318,10 @@ ws_init(char *name, int xp, int yp, int colors, void *dptr) xpixels = xp; ypixels = yp; window_name = name; - surface = realloc (surface, xpixels*ypixels*sizeof(*surface)); + surface = (uint32 *)realloc (surface, xpixels*ypixels*sizeof(*surface)); for (i=0; iwidth, arrow_cursor->height, arrow_cursor->data, arrow_cursor->mask, arrow_cursor->hot_x, arrow_cursor->hot_y); return ret; @@ -346,7 +346,7 @@ ws_color_rgb(int r, int g, int b) return &colors[i]; } if (ncolors == size_colors) { - colors = realloc (colors, (ncolors + 1000) * sizeof (*colors)); + colors = (uint32 *)realloc (colors, (ncolors + 1000) * sizeof (*colors)); size_colors += 1000; if (size_colors == 1000) { colors[0] = vid_mono_palette[0]; @@ -382,7 +382,7 @@ ws_display_point(int x, int y, void *color) y = ypixels - 1 - y; /* invert y, top left origin */ if (brush == NULL) - brush = ws_color_black (); + brush = (uint32 *)ws_color_black (); if (pix_size > 1) { int i, j; @@ -408,15 +408,15 @@ vid_beep (); unsigned long os_elapsed(void) { -static int new; +static int tnew; unsigned long ret; static uint32 t[2]; -t[new] = sim_os_msec(); -if (t[!new] == 0) +t[tnew] = sim_os_msec(); +if (t[!tnew] == 0) ret = ~0L; /* +INF */ else - ret = (t[new] - t[!new]) * 1000;/* usecs */ -new = !new; /* Ecclesiastes III */ + ret = (t[tnew] - t[!tnew]) * 1000;/* usecs */ +tnew = !tnew; /* Ecclesiastes III */ return ret; } diff --git a/display/vt11.c b/display/vt11.c index 0a452bea..2d5c6ee0 100644 --- a/display/vt11.c +++ b/display/vt11.c @@ -135,18 +135,24 @@ static int vt11_dbit; #include +#if defined(__cplusplus) +extern "C" { +#endif #define DEVICE void #define DBG_CALL 1 int vt11_debug; #if defined(VM_PDP11) -extern void _sim_debug (int dbits, DEVICE* dptr, const char* fmt, ...); +extern void _sim_debug (unsigned int dbits, DEVICE* dptr, const char* fmt, ...); #define DEBUGF(...) _sim_debug (vt11_dbit, vt11_dptr, ## __VA_ARGS__) #else /* DEBUG_VT11 */ #define DEBUGF(...) do {if (vt11_debug & DBG_CALL) { printf(## __VA_ARGS__); fflush(stdout); };} while (0) #endif /* defined(DEBUG_VT11) || defined(VM_PDP11) */ +#if defined(__cplusplus) +} +#endif #else #define DEBUGF(...) @@ -249,7 +255,7 @@ static uint16 bdb = 0; /* Buffered Data Bits register; static unsigned char internal_stop = 0; /* 1 bit: stop display */ static unsigned char mode_field = 0; /* copy of control instr. bits 14-11 */ #define graphic_mode stack[8]._mode /* 4 bits: sets type for graphic data */ -enum mode { CHAR=0, SVECTOR, LVECTOR, POINT, GRAPHX, GRAPHY, RELPOINT, /* all */ +enum gmode { CHAR=0, SVECTOR, LVECTOR, POINT, GRAPHX, GRAPHY, RELPOINT, /* all */ BSVECT, CIRCLE, ABSVECTOR /* VS60 only */ }; @@ -424,7 +430,7 @@ static struct frame { vt11word _dpc; /* Display Program Counter (even) */ unsigned _name; /* (11-bit) name from display file */ - enum mode _mode; /* 4 bits: sets type for graphic data */ + enum gmode _mode; /* 4 bits: sets type for graphic data */ unsigned char _vscale; /* non-character scale factor * 4 */ unsigned char _csi; /* character scale index 0..3 */ unsigned char _cscale; /* character scale factor * 4 */ @@ -448,24 +454,24 @@ static struct frame enum scolor _color; /* scope display color (option) */ unsigned char _zdata; /* flag: display file has Z coords */ unsigned char _depth; /* flag: display Z using depth cue */ - } stack[9] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + } stack[9] = { { 0, 0, CHAR, 0, 0, 0, 0, 0, SOLID, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GREEN, 0, 0 }, + { 0, 0, CHAR, 0, 0, 0, 0, 0, SOLID, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GREEN, 0, 0 }, + { 0, 0, CHAR, 0, 0, 0, 0, 0, SOLID, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GREEN, 0, 0 }, + { 0, 0, CHAR, 0, 0, 0, 0, 0, SOLID, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GREEN, 0, 0 }, + { 0, 0, CHAR, 0, 0, 0, 0, 0, SOLID, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GREEN, 0, 0 }, + { 0, 0, CHAR, 0, 0, 0, 0, 0, SOLID, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GREEN, 0, 0 }, + { 0, 0, CHAR, 0, 0, 0, 0, 0, SOLID, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GREEN, 0, 0 }, + { 0, 0, CHAR, 0, 0, 0, 0, 0, SOLID, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GREEN, 0, 0 }, { 0, 0, CHAR, 4, 1, 4, 0, 4, SOLID, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, GREEN, 0, 0 }, }; #define char_scale stack[8]._cscale /* character scale factor * 4 */ @@ -3158,7 +3164,7 @@ vt11_cycle(int us, int slowdown) case 5: /* Set Graphic Mode 0101 */ case 6: /* Set Graphic Mode 0110 */ DEBUGF("Set Graphic Mode %u", (unsigned)mode_field); - graphic_mode = mode_field; + graphic_mode = (enum gmode)mode_field; offset = 0; shift_out = 0; /* seems to be right */ if (TESTBIT(inst,10)) { @@ -3174,7 +3180,7 @@ vt11_cycle(int us, int slowdown) DEBUGF(" blink=%d", (int)blink_ena); } if (TESTBIT(inst,2)) { - line_type = GETFIELD(inst,1,0); + line_type = (enum linetype)GETFIELD(inst,1,0); DEBUGF(" line_type=%d", (int)line_type); } DEBUGF("\r\n"); @@ -3412,7 +3418,7 @@ vt11_cycle(int us, int slowdown) } else { /* 11110: Load Status B */ DEBUGF("Load Status B"); if (VS60 && TESTBIT(inst,9)) { - color = GETFIELD(inst,8,7); + color = (enum scolor)GETFIELD(inst,8,7); DEBUGF(" color=%d", (int)color); } if (TESTBIT(inst,6)) { diff --git a/display/vt11.h b/display/vt11.h index 5510abf5..c3ff63ad 100644 --- a/display/vt11.h +++ b/display/vt11.h @@ -34,10 +34,13 @@ * from the authors. */ +#if defined(__cplusplus) +extern "C" { +#endif #ifndef SIM_DEFS_H_ typedef unsigned short uint16; -typedef long int32; -typedef unsigned long uint32; +typedef int int32; +typedef unsigned int uint32; #endif /* SIM_DEFS_H_ */ /* @@ -135,3 +138,7 @@ extern void vt_stop_intr(void); /* post a display-stop interrupt */ extern void vt_lpen_intr(void); /* post a surface-related interrupt */ extern void vt_char_intr(void); /* post a bad-char./timeout interrupt */ extern void vt_name_intr(void); /* post a name-match interrupt */ + +#if defined(__cplusplus) +} +#endif diff --git a/display/win32.c b/display/win32.c index aa3211cc..145d9dad 100644 --- a/display/win32.c +++ b/display/win32.c @@ -66,7 +66,7 @@ int ws_lp_y = -1; static HWND static_wh; static HINSTANCE static_inst; static int xpixels, ypixels; -static char *window_name; +static const char *window_name; static HBRUSH white_brush; static HBRUSH black_brush; #ifdef SWITCH_CURSORS @@ -317,7 +317,7 @@ ws_thread_init(void) /* called from display layer on first display op */ int -ws_init(char *name, int xp, int yp, int colors, void *dptr) +ws_init(const char *name, int xp, int yp, int colors, void *dptr) { xpixels = xp; ypixels = yp; diff --git a/display/ws.h b/display/ws.h index 21c83a85..edf61141 100644 --- a/display/ws.h +++ b/display/ws.h @@ -31,7 +31,7 @@ /* unless you're writing a new driver, you shouldn't be looking here! */ -extern int ws_init(char *, int, int, int, void *); +extern int ws_init(const char *, int, int, int, void *); void ws_shutdown(void); extern void *ws_color_rgb(int, int, int); extern void *ws_color_black(void); diff --git a/display/x11.c b/display/x11.c index 471e3a71..1a09d552 100644 --- a/display/x11.c +++ b/display/x11.c @@ -205,7 +205,7 @@ handle_exposure(w, d, e, b) } int -ws_init(char *crtname, /* crt type name */ +ws_init(const char *crtname, /* crt type name */ int xp, int yp, /* screen size in pixels */ int colors, /* colors to support (not used) */ void *dptr) diff --git a/doc/simh.doc b/doc/simh.doc index 5be752c1..5508a1cd 100644 Binary files a/doc/simh.doc and b/doc/simh.doc differ diff --git a/makefile b/makefile index 05d455e2..cfdc35c7 100644 --- a/makefile +++ b/makefile @@ -151,7 +151,11 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) endif endif else - CC_STD = -std=gnu99 + ifeq (,$(findstring ++,$(GCC))) + CC_STD = -std=gnu99 + else + CPP_BUILD = 1 + endif endif else ifeq (Apple,$(shell $(GCC) -v /dev/null 2>&1 | grep 'Apple' | awk '{ print $$1 }')) @@ -165,7 +169,11 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) CLANG_VERSION = $(word 4,$(COMPILER_NAME)) endif endif - CC_STD = -std=c99 + ifeq (,$(findstring ++,$(GCC))) + CC_STD = -std=c99 + else + CPP_BUILD = 1 + endif endif ifeq (git-repo,$(shell if $(TEST) -d ./.git; then echo git-repo; fi)) ifeq (need-hooks,$(shell if $(TEST) ! -e ./.git/hooks/post-checkout; then echo need-hooks; fi)) @@ -1440,7 +1448,7 @@ ALL = pdp1 pdp4 pdp7 pdp8 pdp9 pdp15 pdp11 pdp10 \ nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri \ i7094 ibm1130 id16 id32 sds lgp h316 \ swtp6800mp-a swtp6800mp-a2 tx-0 ssem isys8010 isys8020 \ - b5500 + b5500 all : ${ALL} @@ -1597,14 +1605,22 @@ ${BIN}h316${EXE} : ${H316} ${SIM} hp2100 : ${BIN}hp2100${EXE} ${BIN}hp2100${EXE} : ${HP2100} ${SIM} +ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) ${MKDIRBIN} ${CC} ${HP2100} ${SIM} ${HP2100_OPT} $(CC_OUTSPEC) ${LDFLAGS} +else + $(info hp2100 can't be built using C++) +endif hp3000 : ${BIN}hp3000${EXE} ${BIN}hp3000${EXE} : ${HP3000} ${SIM} +ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) ${MKDIRBIN} ${CC} ${HP3000} ${SIM} ${HP3000_OPT} $(CC_OUTSPEC) ${LDFLAGS} +else + $(info hp3000 can't be built using C++) +endif i1401 : ${BIN}i1401${EXE} @@ -1627,6 +1643,7 @@ ${BIN}i7094${EXE} : ${I7094} ${SIM} ibm1130 : ${BIN}ibm1130${EXE} ${BIN}ibm1130${EXE} : ${IBM1130} +ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) ${MKDIRBIN} ifneq ($(WIN32),) windres ${IBM1130D}/ibm1130.rc $(BIN)ibm1130.o @@ -1634,7 +1651,10 @@ ifneq ($(WIN32),) del BIN\ibm1130.o else ${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} $(CC_OUTSPEC) ${LDFLAGS} -endif +endif +else + $(info ibm1130 can't be built using C++) +endif s3 : ${BIN}s3${EXE} @@ -1700,14 +1720,22 @@ ${BIN}swtp6800mp-a2${EXE} : ${SWTP6800MP-A2} ${SIM} ${BUILD_ROMS} isys8010: ${BIN}isys8010${EXE} ${BIN}isys8010${EXE} : ${ISYS8010} ${SIM} ${BUILD_ROMS} +ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) ${MKDIRBIN} ${CC} ${ISYS8010} ${SIM} ${ISYS8010_OPT} $(CC_OUTSPEC) ${LDFLAGS} +else + $(info isys8010 can't be built using C++) +endif isys8020: ${BIN}isys8020${EXE} ${BIN}isys8020${EXE} : ${ISYS8020} ${SIM} ${BUILD_ROMS} +ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) ${MKDIRBIN} ${CC} ${ISYS8020} ${SIM} ${ISYS8020_OPT} $(CC_OUTSPEC) ${LDFLAGS} +else + $(info isys8020 can't be built using C++) +endif tx-0 : ${BIN}tx-0${EXE} @@ -1724,8 +1752,12 @@ ${BIN}ssem${EXE} : ${SSEM} ${SIM} besm6 : ${BIN}besm6${EXE} ${BIN}besm6${EXE} : ${BESM6} ${SIM} +ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) ${MKDIRBIN} ${CC} ${BESM6} ${SIM} ${BESM6_OPT} $(CC_OUTSPEC) ${LDFLAGS} +else + $(info besm6 can't be built using C++) +endif sigma : ${BIN}sigma${EXE} diff --git a/pdp8.ini.save b/pdp8.ini.save new file mode 100644 index 00000000..d62949c1 --- /dev/null +++ b/pdp8.ini.save @@ -0,0 +1,15 @@ +set verify +att -u ttix 2222 +! nohup xterm -e 'telnet localhost 2222' & +#! start PuTTY telnet://localhost:2222 +! sleep 1 +reset -p +load d:\downloads\bootloader.bin +set debug stdout +set ttix debug +set ttix nodebug=trc +set cpu hist=200 +dep pc 20 +bre 26 +step 20 + diff --git a/scp.c b/scp.c index d155cebc..cbbc45f0 100644 --- a/scp.c +++ b/scp.c @@ -328,7 +328,6 @@ pthread_t sim_asynch_main_threadid; UNIT * volatile sim_asynch_queue; UNIT * volatile sim_wallclock_queue; UNIT * volatile sim_wallclock_entry; -UNIT * volatile sim_clock_cosched_queue[SIM_NTIMERS]; t_bool sim_asynch_enabled = TRUE; int32 sim_asynch_check; int32 sim_asynch_latency = 4000; /* 4 usec interrupt latency */ @@ -340,12 +339,12 @@ t_bool sim_asynch_enabled = FALSE; /* The per-simulator init routine is a weak global that defaults to NULL The other per-simulator pointers can be overrriden by the init routine */ -void (*sim_vm_init) (void); +WEAK void (*sim_vm_init) (void); char* (*sim_vm_read) (char *ptr, int32 size, FILE *stream) = NULL; void (*sim_vm_post) (t_bool from_scp) = NULL; CTAB *sim_vm_cmd = NULL; void (*sim_vm_fprint_addr) (FILE *st, DEVICE *dptr, t_addr addr) = NULL; -t_addr (*sim_vm_parse_addr) (DEVICE *dptr, const char *cptr, const char **tptr) = NULL; +t_addr (*sim_vm_parse_addr) (DEVICE *dptr, CONST char *cptr, CONST char **tptr) = NULL; t_value (*sim_vm_pc_value) (void) = NULL; t_bool (*sim_vm_is_subroutine_call) (t_addr **ret_addrs) = NULL; t_bool (*sim_vm_fprint_stopped) (FILE *st, t_stat reason) = NULL; @@ -354,57 +353,57 @@ t_bool (*sim_vm_fprint_stopped) (FILE *st, t_stat reason) = NULL; /* Set and show command processors */ -t_stat set_dev_radix (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat set_dev_enbdis (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat set_dev_debug (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat set_unit_enbdis (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat ssh_break (FILE *st, char *cptr, int32 flg); -t_stat show_cmd_fi (FILE *ofile, int32 flag, char *cptr); -t_stat show_config (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_queue (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_time (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_mod_names (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_show_commands (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_log_names (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_dev_radix (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_dev_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_dev_logicals (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_dev_modifiers (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_dev_show_commands (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_version (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_default (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_break (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_on (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_send (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_expect (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); +t_stat set_dev_radix (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat set_dev_enbdis (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat set_dev_debug (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat set_unit_enbdis (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat ssh_break (FILE *st, const char *cptr, int32 flg); +t_stat show_cmd_fi (FILE *ofile, int32 flag, CONST char *cptr); +t_stat show_config (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_queue (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_time (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_mod_names (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_show_commands (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_log_names (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_dev_radix (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_dev_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_dev_logicals (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_dev_modifiers (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_dev_show_commands (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_version (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_default (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_break (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_on (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_send (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_expect (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); t_stat show_device (FILE *st, DEVICE *dptr, int32 flag); t_stat show_unit (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag); t_stat show_all_mods (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flg, int32 *toks); -t_stat show_one_mod (FILE *st, DEVICE *dptr, UNIT *uptr, MTAB *mptr, char *cptr, int32 flag); +t_stat show_one_mod (FILE *st, DEVICE *dptr, UNIT *uptr, MTAB *mptr, CONST char *cptr, int32 flag); t_stat sim_save (FILE *sfile); t_stat sim_rest (FILE *rfile); /* Breakpoint package */ t_stat sim_brk_init (void); -t_stat sim_brk_set (t_addr loc, int32 sw, int32 ncnt, char *act); +t_stat sim_brk_set (t_addr loc, int32 sw, int32 ncnt, CONST char *act); t_stat sim_brk_clr (t_addr loc, int32 sw); t_stat sim_brk_clrall (int32 sw); t_stat sim_brk_show (FILE *st, t_addr loc, int32 sw); t_stat sim_brk_showall (FILE *st, int32 sw); -char *sim_brk_getact (char *buf, int32 size); +CONST char *sim_brk_getact (char *buf, int32 size); void sim_brk_npc (uint32 cnt); BRKTAB *sim_brk_new (t_addr loc); FILE *stdnul; /* Command support routines */ -SCHTAB *get_rsearch (const char *cptr, int32 radix, SCHTAB *schptr); -SCHTAB *get_asearch (const char *cptr, int32 radix, SCHTAB *schptr); +SCHTAB *get_rsearch (CONST char *cptr, int32 radix, SCHTAB *schptr); +SCHTAB *get_asearch (CONST char *cptr, int32 radix, SCHTAB *schptr); int32 test_search (t_value *val, SCHTAB *schptr); static const char *get_glyph_gen (const char *iptr, char *optr, char mchar, t_bool uc, t_bool quote, char escape_char); -int32 get_switches (char *cptr); -char *get_sim_sw (char *cptr); +int32 get_switches (const char *cptr); +CONST char *get_sim_sw (CONST char *cptr); t_stat get_aval (t_addr addr, DEVICE *dptr, UNIT *uptr); t_value get_rval (REG *rptr, uint32 idx); void put_rval (REG *rptr, uint32 idx, t_value val); @@ -414,43 +413,43 @@ void fprint_capac (FILE *st, DEVICE *dptr, UNIT *uptr); void fprint_sep (FILE *st, int32 *tokens); char *read_line (char *ptr, int32 size, FILE *stream); char *read_line_p (const char *prompt, char *ptr, int32 size, FILE *stream); -REG *find_reg_glob (const char *ptr, const char **optr, DEVICE **gdptr); +REG *find_reg_glob (CONST char *ptr, CONST char **optr, DEVICE **gdptr); char *sim_trim_endspc (char *cptr); /* Forward references */ -t_stat scp_attach_unit (DEVICE *dptr, UNIT *uptr, char *cptr); +t_stat scp_attach_unit (DEVICE *dptr, UNIT *uptr, const char *cptr); t_stat scp_detach_unit (DEVICE *dptr, UNIT *uptr); t_bool qdisable (DEVICE *dptr); t_stat attach_err (UNIT *uptr, t_stat stat); t_stat detach_all (int32 start_device, t_bool shutdown); -t_stat assign_device (DEVICE *dptr, char *cptr); +t_stat assign_device (DEVICE *dptr, const char *cptr); t_stat deassign_device (DEVICE *dptr); -t_stat ssh_break_one (FILE *st, int32 flg, t_addr lo, int32 cnt, char *aptr); -t_stat exdep_reg_loop (FILE *ofile, SCHTAB *schptr, int32 flag, char *cptr, +t_stat ssh_break_one (FILE *st, int32 flg, t_addr lo, int32 cnt, CONST char *aptr); +t_stat exdep_reg_loop (FILE *ofile, SCHTAB *schptr, int32 flag, CONST char *cptr, REG *lowr, REG *highr, uint32 lows, uint32 highs); t_stat ex_reg (FILE *ofile, t_value val, int32 flag, REG *rptr, uint32 idx); -t_stat dep_reg (int32 flag, char *cptr, REG *rptr, uint32 idx); -t_stat exdep_addr_loop (FILE *ofile, SCHTAB *schptr, int32 flag, char *cptr, +t_stat dep_reg (int32 flag, CONST char *cptr, REG *rptr, uint32 idx); +t_stat exdep_addr_loop (FILE *ofile, SCHTAB *schptr, int32 flag, const char *cptr, t_addr low, t_addr high, DEVICE *dptr, UNIT *uptr); t_stat ex_addr (FILE *ofile, int32 flag, t_addr addr, DEVICE *dptr, UNIT *uptr); -t_stat dep_addr (int32 flag, char *cptr, t_addr addr, DEVICE *dptr, +t_stat dep_addr (int32 flag, const char *cptr, t_addr addr, DEVICE *dptr, UNIT *uptr, int32 dfltinc); void fprint_fields (FILE *stream, t_value before, t_value after, BITFIELD* bitdefs); t_stat step_svc (UNIT *ptr); t_stat expect_svc (UNIT *ptr); t_stat shift_args (char *do_arg[], size_t arg_count); -t_stat set_on (int32 flag, char *cptr); -t_stat set_verify (int32 flag, char *cptr); -t_stat set_message (int32 flag, char *cptr); -t_stat set_quiet (int32 flag, char *cptr); -t_stat set_asynch (int32 flag, char *cptr); -t_stat sim_show_asynch (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat do_cmd_label (int32 flag, char *cptr, char *label); +t_stat set_on (int32 flag, CONST char *cptr); +t_stat set_verify (int32 flag, CONST char *cptr); +t_stat set_message (int32 flag, CONST char *cptr); +t_stat set_quiet (int32 flag, CONST char *cptr); +t_stat set_asynch (int32 flag, CONST char *cptr); +t_stat sim_show_asynch (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat do_cmd_label (int32 flag, CONST char *cptr, CONST char *label); void int_handler (int signal); -t_stat set_prompt (int32 flag, char *cptr); -t_stat sim_set_asynch (int32 flag, char *cptr); -t_stat sim_set_environment (int32 flag, char *cptr); +t_stat set_prompt (int32 flag, CONST char *cptr); +t_stat sim_set_asynch (int32 flag, CONST char *cptr); +t_stat sim_set_environment (int32 flag, CONST char *cptr); static const char *get_dbg_verb (uint32 dbits, DEVICE* dptr); /* Global data */ @@ -507,8 +506,8 @@ static int32 sim_do_depth = 0; static int32 sim_on_check[MAX_DO_NEST_LVL+1]; static char *sim_on_actions[MAX_DO_NEST_LVL+1][SCPE_MAX_ERR+1]; static char sim_do_filename[MAX_DO_NEST_LVL+1][CBUFSIZE]; -static char *sim_do_ocptr[MAX_DO_NEST_LVL+1]; -static char *sim_do_label[MAX_DO_NEST_LVL+1]; +static const char *sim_do_ocptr[MAX_DO_NEST_LVL+1]; +static const char *sim_do_label[MAX_DO_NEST_LVL+1]; t_stat sim_last_cmd_stat; /* Command Status */ @@ -1991,7 +1990,7 @@ else if (*argv[0]) { /* sim name arg? */ char *np; /* "path.ini" */ nbuf[0] = '"'; /* starting " */ strncpy (nbuf + 1, argv[0], PATH_MAX + 1); /* copy sim name */ - if ((np = match_ext (nbuf, "EXE"))) /* remove .exe */ + if ((np = (char *)match_ext (nbuf, "EXE"))) /* remove .exe */ *np = 0; strcat (nbuf, ".ini\""); /* add .ini" */ stat = do_cmd (-1, nbuf) & ~SCPE_NOMESSAGE; /* proc default cmd file */ @@ -2025,7 +2024,8 @@ return 0; t_stat process_stdin_commands (t_stat stat, char *argv[]) { -char cbuf[4*CBUFSIZE], gbuf[CBUFSIZE], *cptr; +char cbuf[4*CBUFSIZE], gbuf[CBUFSIZE]; +CONST char *cptr; t_stat stat_nomessage; CTAB *cmdp; @@ -2073,9 +2073,9 @@ return stat; /* Set prompt routine */ -t_stat set_prompt (int32 flag, char *cptr) +t_stat set_prompt (int32 flag, CONST char *cptr) { -char gbuf[CBUFSIZE]; +char gbuf[CBUFSIZE], *gptr; if ((!cptr) || (*cptr == '\0')) return SCPE_ARG; @@ -2084,9 +2084,9 @@ cptr = get_glyph_nc (cptr, gbuf, '"'); /* get quote delimited t if (gbuf[0] == '\0') { /* Token started with quote */ gbuf[sizeof (gbuf)-1] = '\0'; strncpy (gbuf, cptr, sizeof (gbuf)-1); - cptr = strchr (gbuf, '"'); - if (cptr) - *cptr = '\0'; + gptr = strchr (gbuf, '"'); + if (gptr) + *gptr = '\0'; } sim_prompt = (char *)realloc (sim_prompt, strlen (gbuf) + 2); /* nul terminator and trailing blank */ sprintf (sim_prompt, "%s ", gbuf); @@ -2108,7 +2108,7 @@ return cmdp; /* Exit command */ -t_stat exit_cmd (int32 flag, char *cptr) +t_stat exit_cmd (int32 flag, CONST char *cptr) { return SCPE_EXIT; } @@ -2190,7 +2190,7 @@ t_bool found = FALSE; t_bool all_unique = TRUE; size_t max_namelen = 0; DEVICE *tdptr; -const char *tptr; +CONST char *tptr; char *namebuf; char rangebuf[32]; @@ -2409,13 +2409,13 @@ void fprint_show_help (FILE *st, DEVICE *dptr) fprint_show_help_ex (st, dptr, TRUE); } -t_stat help_dev_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat help_dev_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) { char gbuf[CBUFSIZE]; CTAB *cmdp; if (*cptr) { - char *gptr = get_glyph (cptr, gbuf, 0); + const char *gptr = get_glyph (cptr, gbuf, 0); if ((cmdp = find_cmd (gbuf))) { if (cmdp->action == &exdep_cmd) { if (dptr->help) /* Shouldn't this pass cptr so the device knows which command invoked? */ @@ -2481,7 +2481,7 @@ switch (help[0]) { return SCPE_OK; } -t_stat help_cmd (int32 flag, char *cptr) +t_stat help_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; CTAB *cmdp; @@ -2607,7 +2607,7 @@ return SCPE_OK; /* Spawn command */ -t_stat spawn_cmd (int32 flag, char *cptr) +t_stat spawn_cmd (int32 flag, CONST char *cptr) { t_stat status; if ((cptr == NULL) || (strlen (cptr) == 0)) @@ -2633,7 +2633,7 @@ return status; /* Screenshot command */ -t_stat screenshot_cmd (int32 flag, char *cptr) +t_stat screenshot_cmd (int32 flag, CONST char *cptr) { if ((cptr == NULL) || (strlen (cptr) == 0)) return SCPE_ARG; @@ -2647,7 +2647,7 @@ return SCPE_UNK|SCPE_NOMESSAGE; /* Echo command */ -t_stat echo_cmd (int32 flag, char *cptr) +t_stat echo_cmd (int32 flag, CONST char *cptr) { sim_printf ("%s\n", cptr); return SCPE_OK; @@ -2679,7 +2679,7 @@ return SCPE_OK; >1 = nested "DO" command */ -t_stat do_cmd (int32 flag, char *fcptr) +t_stat do_cmd (int32 flag, CONST char *fcptr) { return do_cmd_label (flag, fcptr, NULL); } @@ -2692,9 +2692,10 @@ sprintf (cbuf, "%s%s%s-%d", sim_do_filename[sim_do_depth], sim_do_label[sim_do_d return cbuf; } -t_stat do_cmd_label (int32 flag, char *fcptr, char *label) +t_stat do_cmd_label (int32 flag, CONST char *fcptr, CONST char *label) { -char *cptr, cbuf[4*CBUFSIZE], gbuf[CBUFSIZE], *c, quote, *do_arg[11]; +char cbuf[4*CBUFSIZE], gbuf[CBUFSIZE], abuf[4*CBUFSIZE], quote, *c, *do_arg[11]; +CONST char *cptr; FILE *fpin; CTAB *cmdp = NULL; int32 echo, nargs, errabort, i; @@ -2715,7 +2716,9 @@ sim_on_inherit =(sim_switches & SWMASK ('O')) || sim_on_inherit; /* -o means inh errabort = sim_switches & SWMASK ('E'); /* -e means abort on error */ -c = fcptr; +abuf[sizeof(abuf)-1] = '\0'; +strncpy (abuf, fcptr, sizeof(abuf)-1); +c = abuf; do_arg[10] = NULL; /* make sure the argument list always ends with a NULL */ for (nargs = 0; nargs < 10; ) { /* extract arguments */ while (sim_isspace (*c)) /* skip blanks */ @@ -2947,7 +2950,8 @@ return stat | SCPE_NOMESSAGE; /* suppress message sinc void sim_sub_args (char *instr, size_t instr_size, char *do_arg[]) { char gbuf[CBUFSIZE]; -char *ip = instr, *op, *ap, *oend, *istart, *tmpbuf; +char *ip = instr, *op, *oend, *istart, *tmpbuf; +const char *ap; char rbuf[CBUFSIZE]; int i; time_t now; @@ -3245,27 +3249,28 @@ return 1; >= - greater than or equal GEQ - greater than or equal */ -t_stat assert_cmd (int32 flag, char *cptr) +t_stat assert_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE], gbuf2[CBUFSIZE]; -const char *tptr, *gptr; +CONST char *tptr, *gptr; REG *rptr; uint32 idx; t_value val; t_stat r; -t_bool not = FALSE; +t_bool Not = FALSE; t_bool result; t_addr addr; t_stat reason; -cptr = get_sim_opt (CMD_OPT_SW|CMD_OPT_DFT, cptr, &r); /* get sw, default */ +cptr = (CONST char *)get_sim_opt (CMD_OPT_SW|CMD_OPT_DFT, (CONST char *)cptr, &r); + /* get sw, default */ sim_stabr.boolop = sim_staba.boolop = -1; /* no relational op dflt */ if (*cptr == 0) /* must be more */ return SCPE_2FARG; tptr = get_glyph (cptr, gbuf, 0); /* get token */ if (!strcmp (gbuf, "NOT")) { /* Conditional Inversion? */ - not = TRUE; /* remember that, and */ - cptr = (char *)tptr; + Not = TRUE; /* remember that, and */ + cptr = (CONST char *)tptr; } if (*cptr == '"') { /* quoted string comparison? */ char op[CBUFSIZE]; @@ -3285,12 +3290,13 @@ if (*cptr == '"') { /* quoted string compari {"<=", 0, -1, FALSE}, {"LEQ", 0, -1, FALSE}, {">", 1, 1, FALSE}, - {"GTR", 1, 1, FALSE}, + {"GTR", 1, 1, FALSE}, {">=", 0, 1, FALSE}, {"GEQ", 0, 1, FALSE}, {NULL}}; - tptr = (char *)get_glyph_gen (cptr, gbuf, '=', (sim_switches & SWMASK ('I')), TRUE, '\\');/* get first string */ + tptr = (CONST char *)get_glyph_gen (cptr, gbuf, '=', (sim_switches & SWMASK ('I')), TRUE, '\\'); + /* get first string */ if (!*tptr) return SCPE_2FARG; cptr += strlen (gbuf); @@ -3305,7 +3311,8 @@ if (*cptr == '"') { /* quoted string compari cptr += strlen (op); while (sim_isspace (*cptr)) /* skip spaces */ ++cptr; - cptr = (char *)get_glyph_gen (cptr, gbuf2, 0, (sim_switches & SWMASK ('I')), TRUE, '\\');/* get second string */ + cptr = (CONST char *)get_glyph_gen (cptr, gbuf2, 0, (sim_switches & SWMASK ('I')), TRUE, '\\'); + /* get second string */ if (*cptr) { /* more? */ if (flag) /* ASSERT has no more args */ return SCPE_2MARG; @@ -3374,7 +3381,7 @@ else { result = test_search (sim_eval, &sim_staba); /* test condition */ } } -if (not ^ result) { +if (Not ^ result) { if (!flag) sim_brk_setact (cptr); /* set up IF actions */ } @@ -3417,9 +3424,10 @@ return SCPE_OK; \xh{h} where each h is a hex digit (0-9A-Fa-f) */ -t_stat send_cmd (int32 flag, char *cptr) +t_stat send_cmd (int32 flag, CONST char *cptr) { -char gbuf[CBUFSIZE], *tptr; +char gbuf[CBUFSIZE]; +CONST char *tptr; uint8 dbuf[CBUFSIZE]; uint32 dsize = 0; uint32 delay = 0; @@ -3475,9 +3483,10 @@ if ((dsize == 0) && (delay == 0) && (after == 0)) return sim_send_input (snd, dbuf, dsize, after, delay); } -t_stat sim_show_send (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_send (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { -char gbuf[CBUFSIZE], *tptr; +char gbuf[CBUFSIZE]; +CONST char *tptr; t_stat r; SEND *snd; @@ -3495,9 +3504,10 @@ if (*cptr) return sim_show_send_input (st, snd); } -t_stat expect_cmd (int32 flag, char *cptr) +t_stat expect_cmd (int32 flag, CONST char *cptr) { -char gbuf[CBUFSIZE], *tptr; +char gbuf[CBUFSIZE]; +CONST char *tptr; t_stat r; EXPECT *exp; @@ -3517,9 +3527,10 @@ else return sim_set_noexpect (exp, cptr); } -t_stat sim_show_expect (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_expect (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { -char gbuf[CBUFSIZE], *tptr; +char gbuf[CBUFSIZE]; +CONST char *tptr; t_stat r; EXPECT *exp; @@ -3545,9 +3556,10 @@ return sim_exp_show (st, exp, gbuf); /* Goto command */ -t_stat goto_cmd (int32 flag, char *fcptr) +t_stat goto_cmd (int32 flag, CONST char *fcptr) { -char *cptr, cbuf[CBUFSIZE], gbuf[CBUFSIZE], gbuf1[CBUFSIZE]; +char cbuf[CBUFSIZE], gbuf[CBUFSIZE], gbuf1[CBUFSIZE]; +const char *cptr; long fpos; int32 saved_do_echo = sim_do_echo; int32 saved_goto_line = sim_goto_line[sim_do_depth]; @@ -3588,7 +3600,7 @@ return SCPE_ARG; /* and not dispatched here, so if we get here a return has been issued from */ /* interactive input */ -t_stat return_cmd (int32 flag, char *fcptr) +t_stat return_cmd (int32 flag, CONST char *fcptr) { return SCPE_UNK; /* only valid inside of do_cmd */ } @@ -3600,7 +3612,7 @@ return SCPE_UNK; /* only valid inside of /* interactive input (it is not valid interactively since it would have to */ /* mess with the program's argv which is owned by the C runtime library */ -t_stat shift_cmd (int32 flag, char *fcptr) +t_stat shift_cmd (int32 flag, CONST char *fcptr) { return SCPE_UNK; /* only valid inside of do_cmd */ } @@ -3611,9 +3623,10 @@ return SCPE_UNK; /* only valid inside of /* and not dispatched here, so if we get here a call has been issued from */ /* interactive input */ -t_stat call_cmd (int32 flag, char *fcptr) +t_stat call_cmd (int32 flag, CONST char *fcptr) { -char *cptr, cbuf[CBUFSIZE], gbuf[CBUFSIZE]; +char cbuf[CBUFSIZE], gbuf[CBUFSIZE]; +const char *cptr; if (NULL == sim_gotofile) return SCPE_UNK; /* only valid inside of do_cmd */ cptr = get_glyph (fcptr, gbuf, 0); @@ -3625,7 +3638,7 @@ return do_cmd_label (flag, cbuf, gbuf); /* On command */ -t_stat on_cmd (int32 flag, char *cptr) +t_stat on_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; t_stat cond; @@ -3651,7 +3664,7 @@ return SCPE_OK; /* noop command */ /* The noop command (IGNORE, PROCEED) does nothing */ -t_stat noop_cmd (int32 flag, char *cptr) +t_stat noop_cmd (int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) /* now eol? */ return SCPE_2MARG; @@ -3660,7 +3673,7 @@ return SCPE_OK; /* we're happy doing not /* Set on/noon routine */ -t_stat set_on (int32 flag, char *cptr) +t_stat set_on (int32 flag, CONST char *cptr) { if ((flag) && (cptr) && (*cptr)) { /* Set ON with arg */ char gbuf[CBUFSIZE]; @@ -3696,7 +3709,7 @@ return SCPE_OK; /* Set verify/noverify routine */ -t_stat set_verify (int32 flag, char *cptr) +t_stat set_verify (int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) /* now eol? */ return SCPE_2MARG; @@ -3708,7 +3721,7 @@ return SCPE_OK; /* Set message/nomessage routine */ -t_stat set_message (int32 flag, char *cptr) +t_stat set_message (int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) /* now eol? */ return SCPE_2MARG; @@ -3720,7 +3733,7 @@ return SCPE_OK; /* Set quiet/noquiet routine */ -t_stat set_quiet (int32 flag, char *cptr) +t_stat set_quiet (int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) /* now eol? */ return SCPE_2MARG; @@ -3732,7 +3745,7 @@ return SCPE_OK; /* Set asynch/noasynch routine */ -t_stat sim_set_asynch (int32 flag, char *cptr) +t_stat sim_set_asynch (int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) /* now eol? */ return SCPE_2MARG; @@ -3773,7 +3786,7 @@ return SCPE_NOFNC; /* Show asynch routine */ -t_stat sim_show_asynch (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_asynch (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) return SCPE_2MARG; @@ -3793,7 +3806,7 @@ return SCPE_OK; /* Set environment routine */ -t_stat sim_set_environment (int32 flag, char *cptr) +t_stat sim_set_environment (int32 flag, CONST char *cptr) { char varname[CBUFSIZE]; @@ -3806,11 +3819,12 @@ return SCPE_OK; /* Set command */ -t_stat set_cmd (int32 flag, char *cptr) +t_stat set_cmd (int32 flag, CONST char *cptr) { uint32 lvl = 0; t_stat r; -char gbuf[CBUFSIZE], *cvptr, *svptr; +char gbuf[CBUFSIZE], *cvptr; +CONST char *svptr; DEVICE *dptr; UNIT *uptr; MTAB *mptr; @@ -3956,7 +3970,7 @@ return NULL; /* Set device data radix routine */ -t_stat set_dev_radix (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat set_dev_radix (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { if (cptr) return SCPE_ARG; @@ -3966,7 +3980,7 @@ return SCPE_OK; /* Set device enabled/disabled routine */ -t_stat set_dev_enbdis (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat set_dev_enbdis (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { UNIT *up; uint32 i; @@ -3997,7 +4011,7 @@ else return SCPE_OK; /* Set unit enabled/disabled routine */ -t_stat set_unit_enbdis (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat set_unit_enbdis (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { if (cptr) return SCPE_ARG; @@ -4016,7 +4030,7 @@ return SCPE_OK; /* Set device debug enabled/disabled routine */ -t_stat set_dev_debug (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat set_dev_debug (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; DEBTAB *dep; @@ -4051,11 +4065,12 @@ return SCPE_OK; /* Show command */ -t_stat show_cmd (int32 flag, char *cptr) +t_stat show_cmd (int32 flag, CONST char *cptr) { t_stat r; -cptr = get_sim_opt (CMD_OPT_SW|CMD_OPT_OF, cptr, &r); /* get sw, ofile */ +cptr = get_sim_opt (CMD_OPT_SW|CMD_OPT_OF, cptr, &r); + /* get sw, ofile */ if (!cptr) /* error? */ return r; if (sim_ofile) { /* output file? */ @@ -4072,10 +4087,11 @@ else { return r; } -t_stat show_cmd_fi (FILE *ofile, int32 flag, char *cptr) +t_stat show_cmd_fi (FILE *ofile, int32 flag, CONST char *cptr) { uint32 lvl = 0xFFFFFFFF; -char gbuf[CBUFSIZE], *cvptr, *svptr; +char gbuf[CBUFSIZE], *cvptr; +CONST char *svptr; DEVICE *dptr; UNIT *uptr; MTAB *mptr; @@ -4314,10 +4330,16 @@ return; /* Show processors */ -t_stat show_version (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_version (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { int32 vmaj = SIM_MAJOR, vmin = SIM_MINOR, vpat = SIM_PATCH, vdelt = SIM_DELTA; +const char *cpp; +#ifdef __cplusplus +cpp = "C++"; +#else +cpp = "C"; +#endif if (cptr && (*cptr != 0)) return SCPE_2MARG; fprintf (st, "%s simulator V%d.%d-%d", sim_name, vmaj, vmin, vpat); @@ -4369,7 +4391,7 @@ if (flag) { #undef S_xstr #endif #if defined (__DATE__) && defined (__TIME__) - fprintf (st, "\n\t\tSimulator Compiled: %s at %s", __DATE__, __TIME__); + fprintf (st, "\n\t\tSimulator Compiled as %s: %s at %s", cpp, __DATE__, __TIME__); #endif fprintf (st, "\n\t\tMemory Access: %s Endian", sim_end ? "Little" : "Big"); fprintf (st, "\n\t\tMemory Pointer Size: %d bits", (int)sizeof(dptr)*8); @@ -4456,7 +4478,7 @@ fprintf (st, "\n"); return SCPE_OK; } -t_stat show_config (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, char *cptr) +t_stat show_config (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, CONST char *cptr) { int32 i; DEVICE *dptr; @@ -4471,7 +4493,7 @@ for (i = 0; (dptr = sim_devices[i]) != NULL; i++) return SCPE_OK; } -t_stat show_log_names (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, char *cptr) +t_stat show_log_names (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, CONST char *cptr) { int32 i; DEVICE *dptr; @@ -4483,7 +4505,7 @@ for (i = 0; (dptr = sim_devices[i]) != NULL; i++) return SCPE_OK; } -t_stat show_dev_logicals (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_dev_logicals (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { if (dptr->lname) fprintf (st, "%s -> %s\n", dptr->lname, dptr->name); @@ -4492,7 +4514,7 @@ else if (!flag) return SCPE_OK; } -t_stat show_queue (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, char *cptr) +t_stat show_queue (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, CONST char *cptr) { DEVICE *dptr; UNIT *uptr; @@ -4549,7 +4571,7 @@ pthread_mutex_unlock (&sim_asynch_lock); return SCPE_OK; } -t_stat show_time (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_time (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) return SCPE_2MARG; @@ -4557,7 +4579,7 @@ fprintf (st, "Time:\t%.0f\n", sim_gtime()); return SCPE_OK; } -t_stat show_break (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_break (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { t_stat r; @@ -4567,13 +4589,13 @@ else r = sim_brk_showall (st, sim_switches); return r; } -t_stat show_dev_radix (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_dev_radix (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { fprintf (st, "Radix=%d\n", dptr->dradix); return SCPE_OK; } -t_stat show_dev_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_dev_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { int32 any = 0; DEBTAB *dep; @@ -4602,7 +4624,7 @@ else return SCPE_NOFNC; /* Show On actions */ -t_stat show_on (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_on (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { int32 lvl, i; @@ -4630,7 +4652,7 @@ return SCPE_OK; /* Show modifiers */ -t_stat show_mod_names (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, char *cptr) +t_stat show_mod_names (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, CONST char *cptr) { int32 i; DEVICE *dptr; @@ -4644,7 +4666,7 @@ for (i = 0; sim_internal_device_count && (dptr = sim_internal_devices[i]); ++i) return SCPE_OK; } -t_stat show_dev_modifiers (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_dev_modifiers (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { fprint_set_help (st, dptr); return SCPE_OK; @@ -4675,13 +4697,13 @@ return SCPE_OK; } t_stat show_one_mod (FILE *st, DEVICE *dptr, UNIT *uptr, MTAB *mptr, - char *cptr, int32 flag) + CONST char *cptr, int32 flag) { t_stat r = SCPE_OK; //t_value val; if (mptr->disp) - r = mptr->disp (st, uptr, mptr->match, cptr? cptr: mptr->desc); + r = mptr->disp (st, uptr, mptr->match, (CONST void *)(cptr? cptr: mptr->desc)); //else if ((mptr->mask & MTAB_XTD) && (mptr->mask & MTAB_VAL)) { // REG *rptr = (REG *) mptr->desc; // fprintf (st, "%s=", mptr->pstring); @@ -4697,7 +4719,7 @@ return r; /* Show show commands */ -t_stat show_show_commands (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, char *cptr) +t_stat show_show_commands (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, CONST char *cptr) { int32 i; DEVICE *dptr; @@ -4711,7 +4733,7 @@ for (i = 0; sim_internal_device_count && (dptr = sim_internal_devices[i]); ++i) return SCPE_OK; } -t_stat show_dev_show_commands (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_dev_show_commands (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { fprint_show_help (st, dptr); return SCPE_OK; @@ -4719,7 +4741,7 @@ return SCPE_OK; /* Show/change the current working directiory commands */ -t_stat show_default (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat show_default (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { char buffer[PATH_MAX]; char *wd = getcwd(buffer, PATH_MAX); @@ -4727,26 +4749,30 @@ fprintf (st, "%s\n", wd); return SCPE_OK; } -t_stat set_default_cmd (int32 flg, char *cptr) +t_stat set_default_cmd (int32 flg, CONST char *cptr) { +char gbuf[4*CBUFSIZE]; + if (sim_is_running) return SCPE_INVREM; if ((!cptr) || (*cptr == 0)) return SCPE_2FARG; -sim_trim_endspc(cptr); -if (chdir(cptr) != 0) - return sim_messagef(SCPE_IOERR, "Unable to directory change to: %s\n", cptr); +gbuf[sizeof(gbuf)-1] = '\0'; +strncpy (gbuf, cptr, sizeof(gbuf)-1); +sim_trim_endspc(gbuf); +if (chdir(gbuf) != 0) + return sim_messagef(SCPE_IOERR, "Unable to directory change to: %s\n", gbuf); return SCPE_OK; } -t_stat pwd_cmd (int32 flg, char *cptr) +t_stat pwd_cmd (int32 flg, CONST char *cptr) { return show_cmd (0, "DEFAULT"); } #if defined (_WIN32) -t_stat dir_cmd (int32 flg, char *cptr) +t_stat dir_cmd (int32 flg, CONST char *cptr) { HANDLE hFind; WIN32_FIND_DATAA File; @@ -4763,10 +4789,11 @@ if ((hFind = FindFirstFileA (cptr, &File)) != INVALID_HANDLE_VALUE) { t_int64 FileSize, TotalSize = 0; int DirCount = 0, FileCount = 0; char DirName[PATH_MAX + 1], FileName[PATH_MAX + 1]; - char *c, pathsep = '/'; + const char *c; + char pathsep = '/'; struct tm *local; - GetFullPathNameA(cptr, sizeof(DirName), DirName, &c); + GetFullPathNameA(cptr, sizeof(DirName), DirName, (char **)&c); c = strrchr(DirName, pathsep); if (NULL == c) { pathsep = '\\'; @@ -4826,7 +4853,7 @@ return SCPE_OK; #endif #endif /* defined (HAVE_GLOB) */ -t_stat dir_cmd (int32 flg, char *cptr) +t_stat dir_cmd (int32 flg, CONST char *cptr) { #if defined (HAVE_GLOB) glob_t paths; @@ -4838,8 +4865,9 @@ char *c; char DirName[PATH_MAX + 1], WholeName[PATH_MAX + 1], WildName[PATH_MAX + 1]; if (*cptr == '\0') - cptr = "./*"; -strcpy (WildName, cptr); + strcpy (WildName, "./*"); +else + strcpy (WildName, cptr); cptr = WildName; while (strlen(WildName) && sim_isspace(WildName[strlen(WildName)-1])) WildName[strlen(WildName)-1] = '\0'; @@ -4959,15 +4987,17 @@ return SCPE_OK; #endif /* !defined(_WIN32) */ -t_stat type_cmd (int32 flg, char *cptr) +t_stat type_cmd (int32 flg, CONST char *cptr) { FILE *file; -char lbuf[CBUFSIZE*2]; +char lbuf[4*CBUFSIZE]; if ((!cptr) || (*cptr == 0)) return SCPE_2FARG; -sim_trim_endspc(cptr); -file = sim_fopen (cptr, "r"); +lbuf[sizeof(lbuf)-1] = '\0'; +strncpy (lbuf, cptr, sizeof(lbuf)-1); +sim_trim_endspc(lbuf); +file = sim_fopen (lbuf, "r"); if (file == NULL) /* open failed? */ return SCPE_OPENERR; lbuf[sizeof(lbuf)-1] = '\0'; @@ -4979,16 +5009,16 @@ return SCPE_OK; /* Breakpoint commands */ -t_stat brk_cmd (int32 flg, char *cptr) +t_stat brk_cmd (int32 flg, CONST char *cptr) { GET_SWITCHES (cptr); /* get switches */ return ssh_break (NULL, cptr, flg); /* call common code */ } -t_stat ssh_break (FILE *st, char *cptr, int32 flg) +t_stat ssh_break (FILE *st, const char *cptr, int32 flg) { -char gbuf[CBUFSIZE], *aptr; -const char *tptr, *t1ptr; +char gbuf[CBUFSIZE], *aptr, abuf[4*CBUFSIZE]; +CONST char *tptr, *t1ptr; DEVICE *dptr = sim_dflt_dev; UNIT *uptr = dptr->units; t_stat r; @@ -4999,7 +5029,10 @@ if (sim_brk_types == 0) return SCPE_NOFNC; if ((dptr == NULL) || (uptr == NULL)) return SCPE_IERR; -if ((aptr = strchr (cptr, ';'))) { /* ;action? */ +abuf[sizeof(abuf)-1] = '\0'; +strncpy (abuf, cptr, sizeof(abuf)-1); +cptr = abuf; +if ((aptr = strchr (abuf, ';'))) { /* ;action? */ if (flg != SSH_ST) /* only on SET */ return SCPE_ARG; *aptr++ = 0; /* separate strings */ @@ -5040,7 +5073,7 @@ while (*cptr) { return SCPE_OK; } -t_stat ssh_break_one (FILE *st, int32 flg, t_addr lo, int32 cnt, char *aptr) +t_stat ssh_break_one (FILE *st, int32 flg, t_addr lo, int32 cnt, CONST char *aptr) { switch (flg) { @@ -5068,7 +5101,7 @@ switch (flg) { re[set] device reset specific device */ -t_stat reset_cmd (int32 flag, char *cptr) +t_stat reset_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; DEVICE *dptr; @@ -5179,7 +5212,7 @@ else } -t_stat load_cmd (int32 flag, char *cptr) +t_stat load_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; FILE *loadfile = NULL; @@ -5195,7 +5228,7 @@ if (!mem_data) { return SCPE_OPENERR; } GET_SWITCHES (cptr); /* get switches */ -reason = sim_load (loadfile, cptr, gbuf, flag); /* load or dump */ +reason = sim_load (loadfile, (CONST char *)cptr, gbuf, flag);/* load or dump */ if (loadfile) fclose (loadfile); return reason; @@ -5206,9 +5239,9 @@ return reason; at[tach] unit file attach specified unit to file */ -t_stat attach_cmd (int32 flag, char *cptr) +t_stat attach_cmd (int32 flag, CONST char *cptr) { -char gbuf[CBUFSIZE]; +char gbuf[4*CBUFSIZE]; DEVICE *dptr; UNIT *uptr; t_stat r; @@ -5237,22 +5270,24 @@ if (uptr->flags & UNIT_ATT) { /* already attached? */ return SCPE_ALATT; /* Already attached */ } } -sim_trim_endspc (cptr); /* trim trailing spc */ -return scp_attach_unit (dptr, uptr, cptr); /* attach */ +gbuf[sizeof(gbuf)-1] = '\0'; +strncpy (gbuf, cptr, sizeof(gbuf)-1); +sim_trim_endspc (gbuf); /* trim trailing spc */ +return scp_attach_unit (dptr, uptr, gbuf); /* attach */ } /* Call device-specific or file-oriented attach unit routine */ -t_stat scp_attach_unit (DEVICE *dptr, UNIT *uptr, char *cptr) +t_stat scp_attach_unit (DEVICE *dptr, UNIT *uptr, const char *cptr) { if (dptr->attach != NULL) /* device routine? */ - return dptr->attach (uptr, cptr); /* call it */ -return attach_unit (uptr, cptr); /* no, std routine */ + return dptr->attach (uptr, (CONST char *)cptr); /* call it */ +return attach_unit (uptr, (CONST char *)cptr); /* no, std routine */ } /* Attach unit to file */ -t_stat attach_unit (UNIT *uptr, char *cptr) +t_stat attach_unit (UNIT *uptr, CONST char *cptr) { DEVICE *dptr; @@ -5350,7 +5385,7 @@ return stat; det[ach] unit detach specified unit */ -t_stat detach_cmd (int32 flag, char *cptr) +t_stat detach_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; DEVICE *dptr; @@ -5468,7 +5503,7 @@ return SCPE_OK; as[sign] device name assign logical name to device */ -t_stat assign_cmd (int32 flag, char *cptr) +t_stat assign_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; DEVICE *dptr; @@ -5492,12 +5527,12 @@ deassign_device (dptr); /* release current */ return assign_device (dptr, gbuf); } -t_stat assign_device (DEVICE *dptr, char *cptr) +t_stat assign_device (DEVICE *dptr, const char *cptr) { -dptr->lname = (char *) calloc (CBUFSIZE, sizeof (char)); +dptr->lname = (char *) calloc (1 + strlen (cptr), sizeof (char)); if (dptr->lname == NULL) return SCPE_MEM; -strncpy (dptr->lname, cptr, CBUFSIZE); +strcpy (dptr->lname, cptr); return SCPE_OK; } @@ -5506,7 +5541,7 @@ return SCPE_OK; dea[ssign] device deassign logical name */ -t_stat deassign_cmd (int32 flag, char *cptr) +t_stat deassign_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; DEVICE *dptr; @@ -5525,8 +5560,7 @@ return deassign_device (dptr); t_stat deassign_device (DEVICE *dptr) { -if (dptr->lname) - free (dptr->lname); +free (dptr->lname); dptr->lname = NULL; return SCPE_OK; } @@ -5558,15 +5592,19 @@ return uname; sa[ve] filename save state to specified file */ -t_stat save_cmd (int32 flag, char *cptr) +t_stat save_cmd (int32 flag, CONST char *cptr) { FILE *sfile; t_stat r; +char gbuf[4*CBUFSIZE]; + GET_SWITCHES (cptr); /* get switches */ if (*cptr == 0) /* must be more */ return SCPE_2FARG; -sim_trim_endspc (cptr); -if ((sfile = sim_fopen (cptr, "wb")) == NULL) +gbuf[sizeof(gbuf)-1] = '\0'; +strncpy (gbuf, cptr, sizeof(gbuf)-1); +sim_trim_endspc (gbuf); +if ((sfile = sim_fopen (gbuf, "wb")) == NULL) return SCPE_OPENERR; r = sim_save (sfile); fclose (sfile); @@ -5706,16 +5744,19 @@ return (ferror (sfile))? SCPE_IOERR: SCPE_OK; /* error during save? */ re[store] filename restore state from specified file */ -t_stat restore_cmd (int32 flag, char *cptr) +t_stat restore_cmd (int32 flag, CONST char *cptr) { FILE *rfile; t_stat r; +char gbuf[4*CBUFSIZE]; GET_SWITCHES (cptr); /* get switches */ if (*cptr == 0) /* must be more */ return SCPE_2FARG; -sim_trim_endspc (cptr); -if ((rfile = sim_fopen (cptr, "rb")) == NULL) +gbuf[sizeof(gbuf)-1] = '\0'; +strncpy (gbuf, cptr, sizeof(gbuf)-1); +sim_trim_endspc (gbuf); +if ((rfile = sim_fopen (gbuf, "rb")) == NULL) return SCPE_OPENERR; r = sim_rest (rfile); fclose (rfile); @@ -6037,10 +6078,10 @@ return r; be a number of microseconds to run for */ -t_stat run_cmd (int32 flag, char *cptr) +t_stat run_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; -const char *tptr; +CONST char *tptr; uint32 i, j; int32 sim_next; int32 unitno; @@ -6408,11 +6449,11 @@ return; STATE all registers */ -t_stat exdep_cmd (int32 flag, char *cptr) +t_stat exdep_cmd (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; -const char *gptr; -const char *tptr = NULL; +CONST char *gptr; +CONST char *tptr = NULL; int32 opt; t_addr low, high; t_stat reason; @@ -6499,7 +6540,7 @@ return reason; exdep_addr_loop examine/deposit range of addresses */ -t_stat exdep_reg_loop (FILE *ofile, SCHTAB *schptr, int32 flag, char *cptr, +t_stat exdep_reg_loop (FILE *ofile, SCHTAB *schptr, int32 flag, CONST char *cptr, REG *lowr, REG *highr, uint32 lows, uint32 highs) { t_stat reason; @@ -6585,7 +6626,7 @@ for (rptr = lowr; rptr <= highr; rptr++) { return SCPE_OK; } -t_stat exdep_addr_loop (FILE *ofile, SCHTAB *schptr, int32 flag, char *cptr, +t_stat exdep_addr_loop (FILE *ofile, SCHTAB *schptr, int32 flag, const char *cptr, t_addr low, t_addr high, DEVICE *dptr, UNIT *uptr) { t_addr i, mask; @@ -6731,12 +6772,12 @@ return val; return = error status */ -t_stat dep_reg (int32 flag, char *cptr, REG *rptr, uint32 idx) +t_stat dep_reg (int32 flag, CONST char *cptr, REG *rptr, uint32 idx) { t_stat r; t_value val, mask; int32 rdx; -const char *tptr; +CONST char *tptr; char gbuf[CBUFSIZE]; if ((cptr == NULL) || (rptr == NULL)) @@ -6761,7 +6802,7 @@ if ((rptr->flags & REG_VMAD) && sim_vm_parse_addr) { /* address form? */ } else if (!(rptr->flags & REG_VMFLAGS) || /* dont use sym? */ - (parse_sym (cptr, (rptr->flags & REG_UFMASK) | rdx, NULL, + (parse_sym ((CONST char *)cptr, (rptr->flags & REG_UFMASK) | rdx, NULL, &val, sim_switches | SIM_SW_REG) > SCPE_OK)) { val = get_uint (cptr, rdx, mask, &r); if (r != SCPE_OK) @@ -6966,7 +7007,7 @@ return SCPE_OK; if <= 0, -number of extra address units retired */ -t_stat dep_addr (int32 flag, char *cptr, t_addr addr, DEVICE *dptr, +t_stat dep_addr (int32 flag, const char *cptr, t_addr addr, DEVICE *dptr, UNIT *uptr, int32 dfltinc) { int32 i, count, rdx; @@ -6992,7 +7033,7 @@ if (uptr->flags & UNIT_RO) /* read only? */ mask = width_mask[dptr->dwidth]; GET_RADIX (rdx, dptr->dradix); -if ((reason = parse_sym (cptr, addr, uptr, sim_eval, sim_switches)) > 0) { +if ((reason = parse_sym ((CONST char *)cptr, addr, uptr, sim_eval, sim_switches)) > 0) { sim_eval[0] = get_uint (cptr, rdx, mask, &reason); if (reason != SCPE_OK) return reason; @@ -7036,7 +7077,7 @@ return reason; /* Evaluate command */ -t_stat eval_cmd (int32 flg, char *cptr) +t_stat eval_cmd (int32 flg, CONST char *cptr) { DEVICE *dptr = sim_dflt_dev; int32 i, rdx, a, lim; @@ -7048,7 +7089,7 @@ for (i = 0; i < sim_emax; i++) sim_eval[i] = 0; if (*cptr == 0) return SCPE_2FARG; -if ((r = parse_sym (cptr, 0, dptr->units, sim_eval, sim_switches)) > 0) { +if ((r = parse_sym ((CONST char *)cptr, 0, dptr->units, sim_eval, sim_switches)) > 0) { sim_eval[0] = get_uint (cptr, rdx, width_mask[dptr->dwidth], &r); if (r != SCPE_OK) return r; @@ -7237,19 +7278,19 @@ while (sim_isspace (*iptr)) /* absorb spaces */ return iptr; } -char *get_glyph (const char *iptr, char *optr, char mchar) +CONST char *get_glyph (const char *iptr, char *optr, char mchar) { -return (char *)get_glyph_gen (iptr, optr, mchar, TRUE, FALSE, 0); +return (CONST char *)get_glyph_gen (iptr, optr, mchar, TRUE, FALSE, 0); } -char *get_glyph_nc (const char *iptr, char *optr, char mchar) +CONST char *get_glyph_nc (const char *iptr, char *optr, char mchar) { -return (char *)get_glyph_gen (iptr, optr, mchar, FALSE, FALSE, 0); +return (CONST char *)get_glyph_gen (iptr, optr, mchar, FALSE, FALSE, 0); } -char *get_glyph_quoted (const char *iptr, char *optr, char mchar) +CONST char *get_glyph_quoted (const char *iptr, char *optr, char mchar) { -return (char *)get_glyph_gen (iptr, optr, mchar, FALSE, TRUE, '\\'); +return (CONST char *)get_glyph_gen (iptr, optr, mchar, FALSE, TRUE, '\\'); } /* Trim trailing spaces from a string @@ -7316,7 +7357,8 @@ return (c & 0x80) ? 0 : isalnum (c); t_stat get_yn (const char *ques, t_stat deflt) { -char cbuf[CBUFSIZE], *cptr; +char cbuf[CBUFSIZE]; +const char *cptr; if (sim_switches & SWMASK ('Y')) return TRUE; @@ -7346,10 +7388,10 @@ return FALSE; t_value get_uint (const char *cptr, uint32 radix, t_value max, t_stat *status) { t_value val; -const char *tptr; +CONST char *tptr; *status = SCPE_OK; -val = strtotv (cptr, &tptr, radix); +val = strtotv ((CONST char *)cptr, &tptr, radix); if ((cptr == tptr) || (val > max)) *status = SCPE_ARG; else { @@ -7375,10 +7417,10 @@ return val; NULL if error */ -const char *get_range (DEVICE *dptr, const char *cptr, t_addr *lo, t_addr *hi, +CONST char *get_range (DEVICE *dptr, CONST char *cptr, t_addr *lo, t_addr *hi, uint32 rdx, t_addr max, char term) { -const char *tptr; +CONST char *tptr; if (max && strncmp (cptr, "ALL", strlen ("ALL")) == 0) { /* ALL? */ tptr = cptr + strlen ("ALL"); @@ -7803,7 +7845,7 @@ return (dptr->flags & DEV_DIS? TRUE: FALSE); *gdptr = pointer to device where found */ -REG *find_reg_glob (const char *cptr, const char **optr, DEVICE **gdptr) +REG *find_reg_glob (CONST char *cptr, CONST char **optr, DEVICE **gdptr) { int32 i; DEVICE *dptr; @@ -7834,9 +7876,9 @@ return srptr; *optr = pointer to next character in input string */ -REG *find_reg (const char *cptr, const char **optr, DEVICE *dptr) +REG *find_reg (CONST char *cptr, CONST char **optr, DEVICE *dptr) { -const char *tptr; +CONST char *tptr; REG *rptr; size_t slnt; @@ -7867,7 +7909,7 @@ return NULL; 0 if no switches, -1 if error */ -int32 get_switches (char *cptr) +int32 get_switches (const char *cptr) { int32 sw; @@ -7891,7 +7933,7 @@ return sw; NULL if error */ -char *get_sim_sw (char *cptr) +CONST char *get_sim_sw (CONST char *cptr) { int32 lsw; char gbuf[CBUFSIZE]; @@ -7916,10 +7958,11 @@ return cptr; *stat = error status */ -char *get_sim_opt (int32 opt, char *cptr, t_stat *st) +CONST char *get_sim_opt (int32 opt, CONST char *cptr, t_stat *st) { int32 t; -char *svptr, gbuf[CBUFSIZE]; +char gbuf[CBUFSIZE]; +CONST char *svptr; DEVICE *tdptr; UNIT *tuptr; @@ -7996,9 +8039,9 @@ return cptr; cp = pointer to final '.' if match, NULL if not */ -char *match_ext (char *fnam, const char *ext) +CONST char *match_ext (CONST char *fnam, const char *ext) { -char *pptr, *fptr; +CONST char *pptr, *fptr; const char *eptr; if ((fnam == NULL) || (ext == NULL)) /* bad arguments? */ @@ -8032,12 +8075,12 @@ return pptr; schptr if valid search specification */ -SCHTAB *get_rsearch (const char *cptr, int32 radix, SCHTAB *schptr) +SCHTAB *get_rsearch (CONST char *cptr, int32 radix, SCHTAB *schptr) { int32 c, logop, cmpop; t_value logval, cmpval; const char *sptr; -const char *tptr; +CONST char *tptr; const char logstr[] = "|&^", cmpstr[] = "=!><"; logval = cmpval = 0; @@ -8093,12 +8136,12 @@ return schptr; schptr if valid search specification */ -SCHTAB *get_asearch (const char *cptr, int32 radix, SCHTAB *schptr) +SCHTAB *get_asearch (CONST char *cptr, int32 radix, SCHTAB *schptr) { int32 c, logop, cmpop; t_value *logval, *cmpval; t_stat reason; -const char *ocptr = cptr; +CONST char *ocptr = cptr; const char *sptr; char gbuf[CBUFSIZE]; const char logstr[] = "|&^", cmpstr[] = "=!><"; @@ -8257,7 +8300,7 @@ return ret; On an error, the endptr will equal the inptr. */ -t_value strtotv (const char *inptr, const char **endptr, uint32 radix) +t_value strtotv (CONST char *inptr, CONST char **endptr, uint32 radix) { int32 nodigit; t_value val; @@ -8853,7 +8896,7 @@ return bp; /* Set a breakpoint of type sw */ -t_stat sim_brk_set (t_addr loc, int32 sw, int32 ncnt, char *act) +t_stat sim_brk_set (t_addr loc, int32 sw, int32 ncnt, CONST char *act) { BRKTAB *bp; @@ -9014,14 +9057,14 @@ return 0; /* Get next pending action, if any */ -char *sim_brk_getact (char *buf, int32 size) +CONST char *sim_brk_getact (char *buf, int32 size) { char *ep; size_t lnt; if (sim_brk_act[sim_do_depth] == NULL) /* any action? */ return NULL; -while (sim_isspace (*sim_brk_act[sim_do_depth])) /* skip spaces */ +while (sim_isspace (*sim_brk_act[sim_do_depth])) /* skip spaces */ sim_brk_act[sim_do_depth]++; if (*sim_brk_act[sim_do_depth] == 0) { /* now empty? */ return sim_brk_clract (); @@ -9131,10 +9174,11 @@ return SCPE_OK; /* Set expect */ -t_stat sim_set_expect (EXPECT *exp, const char *cptr) +t_stat sim_set_expect (EXPECT *exp, CONST char *cptr) { -char gbuf[CBUFSIZE], *tptr; -const char *c1ptr; +char gbuf[CBUFSIZE]; +CONST char *tptr; +CONST char *c1ptr; uint32 after = exp->after; int32 cnt = 0; t_stat r; @@ -9181,7 +9225,7 @@ return sim_exp_clr (exp, gbuf); /* clear one rule */ /* Search for an expect rule in an expect context */ -EXPTAB *sim_exp_fnd (EXPECT *exp, const char *match) +CONST EXPTAB *sim_exp_fnd (CONST EXPECT *exp, const char *match) { int32 i; @@ -9220,7 +9264,7 @@ return SCPE_OK; t_stat sim_exp_clr (EXPECT *exp, const char *match) { -return sim_exp_clr_tab (exp, sim_exp_fnd (exp, match)); +return sim_exp_clr_tab (exp, (EXPTAB *)sim_exp_fnd (exp, match)); } /* Clear all expect rules */ @@ -9296,7 +9340,7 @@ else { } } free (match_buf); -ep = sim_exp_fnd (exp, match); /* present? */ +ep = (EXPTAB *)sim_exp_fnd (exp, match); /* present? */ if (ep) /* no, allocate */ sim_exp_clr_tab (exp, ep); /* clear it */ if (after && exp->size) @@ -9357,7 +9401,7 @@ return SCPE_OK; /* Show an expect rule */ -t_stat sim_exp_show_tab (FILE *st, EXPECT *exp, EXPTAB *ep) +t_stat sim_exp_show_tab (FILE *st, const EXPECT *exp, const EXPTAB *ep) { if (!ep) return SCPE_OK; @@ -9379,9 +9423,9 @@ fprintf (st, "\n"); return SCPE_OK; } -t_stat sim_exp_show (FILE *st, EXPECT *exp, const char *match) +t_stat sim_exp_show (FILE *st, CONST EXPECT *exp, const char *match) { -EXPTAB *ep = sim_exp_fnd (exp, match); +CONST EXPTAB *ep = (CONST EXPTAB *)sim_exp_fnd (exp, match); if (exp->buf_size) { char *bstr = sim_encode_quoted_string (exp->buf, exp->buf_ins); @@ -9404,7 +9448,7 @@ return sim_exp_show_tab (st, exp, ep); /* Show all expect rules */ -t_stat sim_exp_showall (FILE *st, EXPECT *exp) +t_stat sim_exp_showall (FILE *st, const EXPECT *exp) { int32 i; @@ -9618,7 +9662,7 @@ return SCPE_OK; /* Display console Queued input data status */ -t_stat sim_show_send_input (FILE *st, SEND *snd) +t_stat sim_show_send_input (FILE *st, const SEND *snd) { if (snd->extoff < snd->insoff) { fprintf (st, "%d bytes of pending input Data:\n ", snd->insoff-snd->extoff); @@ -9682,7 +9726,7 @@ sprintf(msgbuf, "Error %d", stat); return msgbuf; } -t_stat sim_string_to_stat (char *cptr, t_stat *stat) +t_stat sim_string_to_stat (const char *cptr, t_stat *stat) { char gbuf[CBUFSIZE]; int32 cond; @@ -9991,9 +10035,13 @@ return stat | SCPE_NOMESSAGE; Callers should be calling sim_debug() which is a macro defined in scp.h which evaluates the action condition before incurring call overhead. */ - -void _sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...) +#if defined(__cplusplus) +void _sim_debug (uint32 dbits, void* vdptr, const char* fmt, ...) +#else +void _sim_debug (uint32 dbits, DEVICE* vdptr, const char* fmt, ...) +#endif { +DEVICE *dptr = (DEVICE *)vdptr; if (sim_deb && dptr && (dptr->dctrl & dbits)) { char stackbuf[STACKBUFSIZE]; @@ -10073,7 +10121,7 @@ if (sim_deb && (dptr->dctrl & reason)) { char outbuf[80], strbuf[28], rad50buf[36], ebcdicbuf[32]; static char hex[] = "0123456789ABCDEF"; static char rad50[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ$._0123456789"; - static char ebcdic2ascii[] = { + static unsigned char ebcdic2ascii[] = { 0000,0001,0002,0003,0234,0011,0206,0177, 0227,0215,0216,0013,0014,0015,0016,0017, 0020,0021,0022,0023,0235,0205,0010,0207, @@ -10275,7 +10323,7 @@ size_t n, ilvl; #define VSMAX 100 char *vstrings[VSMAX]; size_t vsnum = 0; -char *astrings[VSMAX+1]; +char * astrings[VSMAX+1]; size_t asnum = 0; char *const *hblock; const char *ep; @@ -10287,8 +10335,8 @@ t_bool excluded = FALSE; * If you try to violate this, there ARE machines that WILL break. */ -memset (vstrings, 0, VSMAX * sizeof (char *)); -memset (astrings, 0, VSMAX * sizeof (char *)); +memset (vstrings, 0, sizeof (vstrings)); +memset (astrings, 0, sizeof (astrings)); astrings[asnum++] = (char *) htext; for (hblock = astrings; (htext = *hblock) != NULL; hblock++) { @@ -10962,7 +11010,7 @@ if (fp == NULL) { * of the executable. Failing that, we're out of luck. */ strncpy (fbuf, sim_argv[0], sizeof (fbuf)); - if ((p = match_ext (fbuf, "EXE"))) + if ((p = (char *)match_ext (fbuf, "EXE"))) *p = '\0'; if ((p = strrchr (fbuf, '\\'))) { p[1] = '\0'; diff --git a/scp.h b/scp.h index 7fe16b7b..e8493261 100644 --- a/scp.h +++ b/scp.h @@ -37,6 +37,10 @@ #ifndef SIM_SCP_H_ #define SIM_SCP_H_ 0 +#ifdef __cplusplus +extern "C" { +#endif + /* run_cmd parameters */ #define RU_RUN 0 /* run */ @@ -67,40 +71,40 @@ /* Command processors */ -t_stat reset_cmd (int32 flag, char *ptr); -t_stat exdep_cmd (int32 flag, char *ptr); -t_stat eval_cmd (int32 flag, char *ptr); -t_stat load_cmd (int32 flag, char *ptr); -t_stat run_cmd (int32 flag, char *ptr); +t_stat reset_cmd (int32 flag, CONST char *ptr); +t_stat exdep_cmd (int32 flag, CONST char *ptr); +t_stat eval_cmd (int32 flag, CONST char *ptr); +t_stat load_cmd (int32 flag, CONST char *ptr); +t_stat run_cmd (int32 flag, CONST char *ptr); void run_cmd_message (const char *unechod_cmdline, t_stat r); -t_stat attach_cmd (int32 flag, char *ptr); -t_stat detach_cmd (int32 flag, char *ptr); -t_stat assign_cmd (int32 flag, char *ptr); -t_stat deassign_cmd (int32 flag, char *ptr); -t_stat save_cmd (int32 flag, char *ptr); -t_stat restore_cmd (int32 flag, char *ptr); -t_stat exit_cmd (int32 flag, char *ptr); -t_stat set_cmd (int32 flag, char *ptr); -t_stat show_cmd (int32 flag, char *ptr); -t_stat set_default_cmd (int32 flg, char *cptr); -t_stat pwd_cmd (int32 flg, char *cptr); -t_stat dir_cmd (int32 flg, char *cptr); -t_stat type_cmd (int32 flg, char *cptr); -t_stat brk_cmd (int32 flag, char *ptr); -t_stat do_cmd (int32 flag, char *ptr); -t_stat goto_cmd (int32 flag, char *ptr); -t_stat return_cmd (int32 flag, char *ptr); -t_stat shift_cmd (int32 flag, char *ptr); -t_stat call_cmd (int32 flag, char *ptr); -t_stat on_cmd (int32 flag, char *ptr); -t_stat noop_cmd (int32 flag, char *ptr); -t_stat assert_cmd (int32 flag, char *ptr); -t_stat send_cmd (int32 flag, char *ptr); -t_stat expect_cmd (int32 flag, char *ptr); -t_stat help_cmd (int32 flag, char *ptr); -t_stat screenshot_cmd (int32 flag, char *ptr); -t_stat spawn_cmd (int32 flag, char *ptr); -t_stat echo_cmd (int32 flag, char *ptr); +t_stat attach_cmd (int32 flag, CONST char *ptr); +t_stat detach_cmd (int32 flag, CONST char *ptr); +t_stat assign_cmd (int32 flag, CONST char *ptr); +t_stat deassign_cmd (int32 flag, CONST char *ptr); +t_stat save_cmd (int32 flag, CONST char *ptr); +t_stat restore_cmd (int32 flag, CONST char *ptr); +t_stat exit_cmd (int32 flag, CONST char *ptr); +t_stat set_cmd (int32 flag, CONST char *ptr); +t_stat show_cmd (int32 flag, CONST char *ptr); +t_stat set_default_cmd (int32 flg, CONST char *cptr); +t_stat pwd_cmd (int32 flg, CONST char *cptr); +t_stat dir_cmd (int32 flg, CONST char *cptr); +t_stat type_cmd (int32 flg, CONST char *cptr); +t_stat brk_cmd (int32 flag, CONST char *ptr); +t_stat do_cmd (int32 flag, CONST char *ptr); +t_stat goto_cmd (int32 flag, CONST char *ptr); +t_stat return_cmd (int32 flag, CONST char *ptr); +t_stat shift_cmd (int32 flag, CONST char *ptr); +t_stat call_cmd (int32 flag, CONST char *ptr); +t_stat on_cmd (int32 flag, CONST char *ptr); +t_stat noop_cmd (int32 flag, CONST char *ptr); +t_stat assert_cmd (int32 flag, CONST char *ptr); +t_stat send_cmd (int32 flag, CONST char *ptr); +t_stat expect_cmd (int32 flag, CONST char *ptr); +t_stat help_cmd (int32 flag, CONST char *ptr); +t_stat screenshot_cmd (int32 flag, CONST char *ptr); +t_stat spawn_cmd (int32 flag, CONST char *ptr); +t_stat echo_cmd (int32 flag, CONST char *ptr); /* Allow compiler to help validate printf style format arguments */ #if !defined __GNUC__ @@ -128,9 +132,9 @@ t_stat sim_run_boot_prep (void); double sim_gtime (void); uint32 sim_grtime (void); int32 sim_qcount (void); -t_stat attach_unit (UNIT *uptr, char *cptr); +t_stat attach_unit (UNIT *uptr, CONST char *cptr); t_stat detach_unit (UNIT *uptr); -t_stat assign_device (DEVICE *dptr, char *cptr); +t_stat assign_device (DEVICE *dptr, const char *cptr); t_stat deassign_device (DEVICE *dptr); t_stat reset_all (uint32 start_device); t_stat reset_all_p (uint32 start_device); @@ -144,17 +148,17 @@ int sim_isprint (char c); int sim_isdigit (char c); int sim_isgraph (char c); int sim_isalnum (char c); -char *get_sim_opt (int32 opt, char *cptr, t_stat *st); -char *get_glyph (const char *iptr, char *optr, char mchar); -char *get_glyph_nc (const char *iptr, char *optr, char mchar); -char *get_glyph_quoted (const char *iptr, char *optr, char mchar); +CONST char *get_sim_opt (int32 opt, CONST char *cptr, t_stat *st); +CONST char *get_glyph (const char *iptr, char *optr, char mchar); +CONST char *get_glyph_nc (const char *iptr, char *optr, char mchar); +CONST char *get_glyph_quoted (const char *iptr, char *optr, char mchar); t_value get_uint (const char *cptr, uint32 radix, t_value max, t_stat *status); -const char *get_range (DEVICE *dptr, const char *cptr, t_addr *lo, t_addr *hi, +CONST char *get_range (DEVICE *dptr, CONST char *cptr, t_addr *lo, t_addr *hi, uint32 rdx, t_addr max, char term); t_stat sim_decode_quoted_string (const char *iptr, uint8 *optr, uint32 *osize); char *sim_encode_quoted_string (const uint8 *iptr, uint32 size); void fprint_buffer_string (FILE *st, const uint8 *buf, uint32 size); -t_value strtotv (const char *cptr, const char **endptr, uint32 radix); +t_value strtotv (CONST char *cptr, CONST char **endptr, uint32 radix); int Fprintf (FILE *f, const char* fmt, ...) GCC_FMT_ATTR(2, 3); t_stat sim_set_memory_load_file (const unsigned char *data, size_t size); int Fgetc (FILE *f); @@ -170,7 +174,7 @@ DEVICE *find_unit (const char *ptr, UNIT **uptr); DEVICE *find_dev_from_unit (UNIT *uptr); t_stat sim_register_internal_device (DEVICE *dptr); void sim_sub_args (char *in_str, size_t in_str_size, char *do_arg[]); -REG *find_reg (const char *ptr, const char **optr, DEVICE *dptr); +REG *find_reg (CONST char *ptr, CONST char **optr, DEVICE *dptr); CTAB *find_ctab (CTAB *tab, const char *gbuf); C1TAB *find_c1tab (C1TAB *tab, const char *gbuf); SHTAB *find_shtab (SHTAB *tab, const char *gbuf); @@ -181,23 +185,23 @@ void sim_brk_clrspc (uint32 spc); char *sim_brk_clract (void); void sim_brk_setact (const char *action); t_stat sim_send_input (SEND *snd, uint8 *data, size_t size, uint32 after, uint32 delay); -t_stat sim_show_send_input (FILE *st, SEND *snd); +t_stat sim_show_send_input (FILE *st, const SEND *snd); t_bool sim_send_poll_data (SEND *snd, t_stat *stat); t_stat sim_send_clear (SEND *snd); -t_stat sim_set_expect (EXPECT *exp, const char *cptr); +t_stat sim_set_expect (EXPECT *exp, CONST char *cptr); t_stat sim_set_noexpect (EXPECT *exp, const char *cptr); t_stat sim_exp_set (EXPECT *exp, const char *match, int32 cnt, uint32 after, int32 switches, const char *act); t_stat sim_exp_clr (EXPECT *exp, const char *match); t_stat sim_exp_clrall (EXPECT *exp); -t_stat sim_exp_show (FILE *st, EXPECT *exp, const char *match); -t_stat sim_exp_showall (FILE *st, EXPECT *exp); +t_stat sim_exp_show (FILE *st, CONST EXPECT *exp, const char *match); +t_stat sim_exp_showall (FILE *st, const EXPECT *exp); t_stat sim_exp_check (EXPECT *exp, uint8 data); -char *match_ext (char *fnam, const char *ext); -t_stat show_version (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat set_dev_debug (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat show_dev_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); +CONST char *match_ext (CONST char *fnam, const char *ext); +t_stat show_version (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat set_dev_debug (DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_dev_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); const char *sim_error_text (t_stat stat); -t_stat sim_string_to_stat (char *cptr, t_stat *cond); +t_stat sim_string_to_stat (const char *cptr, t_stat *cond); t_stat sim_cancel_step (void); void sim_printf (const char* fmt, ...) GCC_FMT_ATTR(1, 2); void sim_perror (const char* msg); @@ -210,6 +214,15 @@ void sim_debug_bits (uint32 dbits, DEVICE* dptr, BITFIELD* bitdefs, #if defined (__DECC) && defined (__VMS) && (defined (__VAX) || (__DECC_VER < 60590001)) #define CANT_USE_MACRO_VA_ARGS 1 #endif +#if defined(__cplusplus) +#ifdef CANT_USE_MACRO_VA_ARGS +#define _sim_debug sim_debug +void sim_debug (uint32 dbits, void* dptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4); +#else +void _sim_debug (uint32 dbits, void* dptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4); +#define sim_debug(dbits, dptr, ...) do { if (sim_deb && dptr && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__);} while (0) +#endif +#else #ifdef CANT_USE_MACRO_VA_ARGS #define _sim_debug sim_debug void sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4); @@ -217,6 +230,7 @@ void sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...) GCC_FMT_ATTR(3 void _sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4); #define sim_debug(dbits, dptr, ...) do { if (sim_deb && dptr && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__);} while (0) #endif +#endif void fprint_stopped_gen (FILE *st, t_stat v, REG *pc, DEVICE *dptr); #define SCP_HELP_FLAT (1u << 31) /* Force flat help when prompting is not possible */ #define SCP_HELP_ONECMD (1u << 30) /* Display one topic, do not prompt */ @@ -268,24 +282,28 @@ extern DEVICE *sim_devices[]; extern REG *sim_PC; extern const char *sim_stop_messages[]; extern t_stat sim_instr (void); -extern t_stat sim_load (FILE *ptr, char *cptr, char *fnam, int flag); +extern t_stat sim_load (FILE *ptr, CONST char *cptr, CONST char *fnam, int flag); extern int32 sim_emax; extern t_stat fprint_sym (FILE *ofile, t_addr addr, t_value *val, UNIT *uptr, int32 sw); -extern t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, +extern t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw); /* The per-simulator init routine is a weak global that defaults to NULL The other per-simulator pointers can be overrriden by the init routine */ -extern void (*sim_vm_init) (void); +WEAK extern void (*sim_vm_init) (void); extern char* (*sim_vm_read) (char *ptr, int32 size, FILE *stream); extern void (*sim_vm_post) (t_bool from_scp); extern CTAB *sim_vm_cmd; extern void (*sim_vm_fprint_addr) (FILE *st, DEVICE *dptr, t_addr addr); -extern t_addr (*sim_vm_parse_addr) (DEVICE *dptr, const char *cptr, const char **tptr); +extern t_addr (*sim_vm_parse_addr) (DEVICE *dptr, CONST char *cptr, CONST char **tptr); extern t_bool (*sim_vm_fprint_stopped) (FILE *st, t_stat reason); extern t_value (*sim_vm_pc_value) (void); extern t_bool (*sim_vm_is_subroutine_call) (t_addr **ret_addrs); +#ifdef __cplusplus +} +#endif + #endif diff --git a/sigma/sigma_cis.c b/sigma/sigma_cis.c index 3205ac05..bb23ed97 100644 --- a/sigma/sigma_cis.c +++ b/sigma/sigma_cis.c @@ -163,7 +163,7 @@ switch (op) { /* case on opcode */ if (src1.sign ^ src2.sign) /* signs differ? */ CC = src1.sign? CC4: CC3; /* set < or > */ else { /* same signs */ - t = CmpDstr (&src1, &src2); /* compare strings */ + int32 t = CmpDstr (&src1, &src2); /* compare strings */ if (t < 0) CC = (src1.sign? CC3: CC4); else if (t > 0) @@ -717,11 +717,11 @@ return cy; void SubDstr (dstr_t *s1, dstr_t *s2, dstr_t *ds) { uint32 i; -dstr_t compl; +dstr_t Compl; for (i = 0; i < DSTRLNT; i++) /* 9's comp s2 */ - compl.val[i] = 0x99999999 - s1->val[i]; -AddDstr (&compl, s2, ds, 1); /* s1 + ~s2 + 1 */ + Compl.val[i] = 0x99999999 - s1->val[i]; +AddDstr (&Compl, s2, ds, 1); /* s1 + ~s2 + 1 */ return; } @@ -838,7 +838,7 @@ uint32 NibbleRshift (dstr_t *dsrc, uint32 sc, uint32 cin) int32 i; uint32 s, nc; -if (s = sc * 4) { +if ((s = sc * 4)) { for (i = DSTRLNT - 1; (int32) i >= 0; i--) { nc = (dsrc->val[i] << (32 - s)) & WMASK; dsrc->val[i] = ((dsrc->val[i] >> s) | @@ -862,7 +862,7 @@ uint32 NibbleLshift (dstr_t *dsrc, uint32 sc, uint32 cin) { uint32 i, s, nc; -if (s = sc * 4) { +if ((s = sc * 4)) { for (i = 0; i < DSTRLNT; i++) { nc = dsrc->val[i] >> (32 - s); dsrc->val[i] = ((dsrc->val[i] << s) | diff --git a/sigma/sigma_coc.c b/sigma/sigma_coc.c index 800fbee8..5f4826d0 100644 --- a/sigma/sigma_coc.c +++ b/sigma/sigma_coc.c @@ -98,9 +98,9 @@ t_stat muxc_svc (UNIT *uptr); t_stat muxo_svc (UNIT *uptr); t_stat muxi_rtc_svc (UNIT *uptr); t_stat mux_reset (DEVICE *dptr); -t_stat mux_attach (UNIT *uptr, char *cptr); +t_stat mux_attach (UNIT *uptr, CONST char *cptr); t_stat mux_detach (UNIT *uptr); -t_stat mux_vlines (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat mux_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void mux_reset_ln (int32 ln); void mux_scan_next (t_bool clr); t_stat muxi_put_char (uint32 c, uint32 ln); @@ -418,7 +418,7 @@ if ((newln >= 0) && (mux_sta[newln] & MUXL_REP)) { /* rcv enb pending? */ tmxr_poll_rx (&mux_desc); /* poll for input */ for (ln = 0; ln < MUX_NUMLIN; ln++) { /* loop thru lines */ if (mux_ldsc[ln].conn) { /* connected? */ - if (c = tmxr_getc_ln (&mux_ldsc[ln])) { /* get char */ + if ((c = tmxr_getc_ln (&mux_ldsc[ln]))) { /* get char */ if (c & SCPE_BREAK) /* break? */ mux_sta[ln] |= MUXL_RBP; /* set rcv brk */ else { /* normal char */ @@ -545,7 +545,7 @@ return SCPE_OK; /* Attach master unit */ -t_stat mux_attach (UNIT *uptr, char *cptr) +t_stat mux_attach (UNIT *uptr, CONST char *cptr) { t_stat r; @@ -573,7 +573,7 @@ return r; /* Change number of lines */ -t_stat mux_vlines (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat mux_vlines (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 newln, i, t; t_stat r; diff --git a/sigma/sigma_cpu.c b/sigma/sigma_cpu.c index 0b3fc9e6..974d3bf8 100644 --- a/sigma/sigma_cpu.c +++ b/sigma/sigma_cpu.c @@ -190,17 +190,17 @@ t_stat cpu_svc (UNIT *uptr); t_stat cpu_ex (t_value *vptr, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_dep (t_value val, t_addr addr, UNIT *uptr, int32 sw); t_stat cpu_reset (DEVICE *dptr); -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_type (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_opt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_clr_opt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_set_rblks (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_rblks (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_set_alarm (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat cpu_show_alarm (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat cpu_show_addr (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_clr_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_set_rblks (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_rblks (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_set_alarm (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat cpu_show_alarm (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat cpu_show_addr (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void set_rf_display (uint32 *rfbase); void inst_hist (uint32 ir, uint32 pc, uint32 typ); uint32 cpu_one_inst (uint32 real_pc, uint32 IR); @@ -248,12 +248,12 @@ extern uint32 io_tio (uint32 rn, uint32 bva); extern uint32 io_tdv (uint32 rn, uint32 bva); extern uint32 io_hio (uint32 rn, uint32 bva); extern uint32 io_aio (uint32 rn, uint32 bva); -extern uint32 int_reset (DEVICE *dev); +extern t_stat int_reset (DEVICE *dev); extern void io_set_eimax (uint32 lnt); extern void io_sclr_req (uint32 inum, uint32 val); extern void io_sclr_arm (uint32 inum, uint32 val); -extern t_stat io_set_nchan (UNIT *uptr, int32 val, char *cptr, void *desc); -extern t_stat io_show_nchan (FILE *st, UNIT *uptr, int32 val, void *desc); +extern t_stat io_set_nchan (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +extern t_stat io_show_nchan (FILE *st, UNIT *uptr, int32 val, CONST void *desc); /* CPU data structures @@ -433,7 +433,7 @@ while (reason == 0) { /* loop until stop */ } if (sim_interval <= 0) { /* event queue? */ - if (reason = sim_process_event ()) /* process */ + if ((reason = sim_process_event ())) /* process */ break; int_hireq = io_eval_int (); /* re-evaluate intr */ } @@ -2570,7 +2570,7 @@ return SCPE_OK; /* Set CPU type */ -t_stat cpu_set_type (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_type (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 model = CPUF_GETMOD (val); @@ -2588,7 +2588,7 @@ return SCPE_OK; /* Set memory size */ -t_stat cpu_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 mc = 0; uint32 i; @@ -2609,7 +2609,7 @@ return SCPE_OK; /* Set and clear options */ -t_stat cpu_set_opt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if ((val & (cpu_tab[cpu_model].std | cpu_tab[cpu_model].opt)) == 0) return SCPE_NOFNC; @@ -2617,7 +2617,7 @@ cpu_unit.flags |= val; return SCPE_OK; } -t_stat cpu_clr_opt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_clr_opt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { if (val & cpu_tab[cpu_model].std) return SCPE_NOFNC; @@ -2627,7 +2627,7 @@ return SCPE_OK; /* Set/show register blocks */ -t_stat cpu_set_rblks (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_rblks (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 invmask, lnt, i, j; t_stat r; @@ -2651,7 +2651,7 @@ for (i = rf_bmax; i < RF_NBLK; i++) { /* zero unused */ return SCPE_OK; } -t_stat cpu_show_rblks (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_rblks (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "register blocks=%d", rf_bmax); return SCPE_OK; @@ -2673,13 +2673,13 @@ return; /* Front panael alarm */ -t_stat cpu_set_alarm (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_alarm (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { cons_alarm_enb = val; return SCPE_OK; } -t_stat cpu_show_alarm (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_alarm (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fputs (cons_alarm_enb? "alarm enabled\n": "alarm disabled\n", st); return SCPE_OK; @@ -2696,10 +2696,10 @@ return SCPE_OK; /* Virtual address translation */ -t_stat cpu_show_addr (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_addr (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; uint32 ad, bpa, dlnt, virt; static const char *lnt_str[] = { "byte", @@ -2752,7 +2752,7 @@ return; /* Set history */ -t_stat cpu_set_hist (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat cpu_set_hist (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, lnt; t_stat r; @@ -2815,11 +2815,11 @@ return; /* Show history */ -t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat cpu_show_hist (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 k, di, lnt; t_stat r; -char *cptr = (char *) desc; +const char *cptr = (const char *) desc; InstHistory *h; if (hst_lnt == 0) /* enabled? */ diff --git a/sigma/sigma_defs.h b/sigma/sigma_defs.h index b31fd413..362616a2 100644 --- a/sigma/sigma_defs.h +++ b/sigma/sigma_defs.h @@ -322,7 +322,7 @@ typedef struct { #define MMC_M_CNT 0xFF #define MMC_CNT (MMC_M_CNT << MMC_V_CNT) #define MMC_V_CS 9 /* start of page */ -/* /* map 1: 2b locks, per model */ + /* map 1: 2b locks, per model */ #define MMC_M_CS2 0xFC /* map 2: access controls */ #define MMC_M_CS3 0x7FE /* map 3: 4b locks */ #define MMC_M_CS4 0xFF /* map 4: 8b relocation */ diff --git a/sigma/sigma_dp.c b/sigma/sigma_dp.c index 0990ed72..9657e0ca 100644 --- a/sigma/sigma_dp.c +++ b/sigma/sigma_dp.c @@ -250,10 +250,10 @@ t_bool dp_end_sec (UNIT *uptr, uint32 lnt, uint32 exp, uint32 st); int32 dp_clr_int (uint32 cidx); void dp_set_ski (uint32 cidx, uint32 un); void dp_clr_ski (uint32 cidx, uint32 un); -t_stat dp_attach (UNIT *uptr, char *cptr); -t_stat dp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dp_set_ctl (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat dp_show_ctl (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat dp_attach (UNIT *uptr, CONST char *cptr); +t_stat dp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dp_set_ctl (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat dp_show_ctl (FILE *st, UNIT *uptr, int32 val, CONST void *desc); static DP_TYPE dp_tab[] = { { DP_ENT (7242, 7270) }, @@ -748,7 +748,7 @@ switch (uptr->UCMD) { else wd = 0; dp_buf[i] = wd; /* store in buffer */ } - if (r = dp_write (uptr, da)) /* write buf, err? */ + if ((r = dp_write (uptr, da))) /* write buf, err? */ return r; if (dp_end_sec (uptr, DP_WDSC, DP_WDSC, st)) /* transfer done? */ return SCPE_OK; /* err or cont */ @@ -790,7 +790,7 @@ switch (uptr->UCMD) { chan_uen (dva); /* uend */ return SCPE_OK; } - if (r = dp_read (uptr, da)) /* read buf, error? */ + if ((r = dp_read (uptr, da))) /* read buf, error? */ return r; for (i = 0, st = 0; (i < (DP_WDSC * 4)) && (st != CHS_ZBC); i++) { st = chan_RdMemB (dva, &wd); /* read byte */ @@ -815,7 +815,7 @@ switch (uptr->UCMD) { chan_uen (dva); /* uend */ return SCPE_OK; } - if (r = dp_read (uptr, da)) /* read buf, error? */ + if ((r = dp_read (uptr, da))) /* read buf, error? */ return r; for (i = 0, st = 0; (i < DP_WDSC) && (st != CHS_ZBC); i++) { st = chan_WrMemW (dva, dp_buf[i]); /* store in mem */ @@ -1191,7 +1191,7 @@ return SCPE_OK; /* Device attach */ -t_stat dp_attach (UNIT *uptr, char *cptr) +t_stat dp_attach (UNIT *uptr, CONST char *cptr) { uint32 i, p; t_stat r; @@ -1215,7 +1215,7 @@ return SCPE_OK; /* Set drive type command validation routine */ -t_stat dp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dp_set_size (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 dtype = GET_DTYPE (val); uint32 cidx = uptr->UCTX; @@ -1232,7 +1232,7 @@ return SCPE_OK; /* Set controller type command validation routine */ -t_stat dp_set_ctl (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat dp_set_ctl (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i, cidx = uptr->UCTX; DP_CTX *ctx = &dp_ctx[cidx]; @@ -1265,7 +1265,7 @@ for (i = 0; i < DP_NUMDR; i++) { return SCPE_OK; } -t_stat dp_show_ctl (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat dp_show_ctl (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 cidx = uptr->UCTX; diff --git a/sigma/sigma_io.c b/sigma/sigma_io.c index c24d063d..451aa416 100644 --- a/sigma/sigma_io.c +++ b/sigma/sigma_io.c @@ -99,8 +99,8 @@ t_bool io_init_inst (uint32 ad, uint32 rn, uint32 ch, uint32 dev, uint32 r0); uint32 io_set_status (uint32 rn, uint32 ch, uint32 dev, uint32 dvst, t_bool tdv); uint32 io_rwd_m0 (uint32 op, uint32 rn, uint32 ad); uint32 io_rwd_m1 (uint32 op, uint32 rn, uint32 ad); -t_stat io_set_eiblks (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat io_show_eiblks (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat io_set_eiblks (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat io_show_eiblks (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat int_reset (DEVICE *dptr); t_stat chan_reset (DEVICE *dptr); uint32 chan_new_cmd (uint32 ch, uint32 dev, uint32 clc); @@ -1052,7 +1052,7 @@ if (op == OP_RD) { /* read direct? */ } else if (QCPU_S89 && (fnc == 0x045)) { /* S89 only */ if (rn) - R[rn] = s9_marg & 0x00C00000 | /* <8,9> = margins */ + R[rn] = (s9_marg & 0x00C00000) | /* <8,9> = margins */ (QCPU_S9? 0x00100000: 0x00200000); /* S8 sets 10, S9 11 */ } else if (QCPU_S89 && (fnc == 0x049)) { /* S89 only */ @@ -1317,7 +1317,7 @@ return SCPE_OK; /* Set/show external interrupt blocks */ -t_stat io_set_eiblks (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat io_set_eiblks (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 lnt; t_stat r; @@ -1332,7 +1332,7 @@ io_set_eimax (lnt); return SCPE_OK; } -t_stat io_show_eiblks (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat io_show_eiblks (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "eiblks=%d", ei_bmax); return SCPE_OK; @@ -1368,7 +1368,7 @@ return; /* Set or show number of channels */ -t_stat io_set_nchan (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat io_set_nchan (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { int32 i, num; t_stat r; @@ -1388,7 +1388,7 @@ for (i = 0; i < CHAN_N_CHAN; i++) { return SCPE_OK; } -t_stat io_show_nchan (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat io_show_nchan (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, "channels=%d", chan_num); return SCPE_OK; @@ -1396,7 +1396,7 @@ return SCPE_OK; /* Set or show device channel assignment */ -t_stat io_set_dvc (UNIT* uptr, int32 val, char *cptr, void *desc) +t_stat io_set_dvc (UNIT* uptr, int32 val, CONST char *cptr, void *desc) { int32 num; DEVICE *dptr; @@ -1414,7 +1414,7 @@ dibp->dva = (dibp->dva & ~DVA_CHAN) | (num << DVA_V_CHAN); return SCPE_OK; } -t_stat io_show_dvc (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat io_show_dvc (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; dib_t *dibp; @@ -1428,7 +1428,7 @@ return SCPE_OK; /* Set or show device address */ -t_stat io_set_dva (UNIT* uptr, int32 val, char *cptr, void *desc) +t_stat io_set_dva (UNIT* uptr, int32 val, CONST char *cptr, void *desc) { int32 num; DEVICE *dptr; @@ -1449,7 +1449,7 @@ else dibp->dva = (dibp->dva & ~DVA_DEVSU) | ((num & DVA_M_DEVSU) << DVA_V_DEVSU) return SCPE_OK; } -t_stat io_show_dva (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat io_show_dva (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; dib_t *dibp; @@ -1463,7 +1463,7 @@ return SCPE_OK; /* Show channel state */ -t_stat io_show_cst (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat io_show_cst (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { DEVICE *dptr; dib_t *dibp; diff --git a/sigma/sigma_io_defs.h b/sigma/sigma_io_defs.h index 0a24b810..875cfaa6 100644 --- a/sigma/sigma_io_defs.h +++ b/sigma/sigma_io_defs.h @@ -260,17 +260,17 @@ uint32 chan_WrMemW (uint32 dva, uint32 dat); t_stat chan_reset_dev (uint32 dva); void io_sclr_req (uint32 inum, uint32 val); void io_sclr_arm (uint32 inum, uint32 val); -t_stat io_set_dvc (UNIT* uptr, int32 val, char *cptr, void *desc); -t_stat io_show_dvc (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat io_set_dva (UNIT* uptr, int32 val, char *cptr, void *desc); -t_stat io_show_dva (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat io_show_cst (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat io_set_dvc (UNIT* uptr, int32 val, CONST char *cptr, void *desc); +t_stat io_show_dvc (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat io_set_dva (UNIT* uptr, int32 val, CONST char *cptr, void *desc); +t_stat io_show_dva (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat io_show_cst (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat io_boot (int32 u, DEVICE *dptr); /* Internal real-time event scheduler */ -t_stat rtc_set_tps (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rtc_show_tps (FILE *of, UNIT *uptr, int32 val, void *desc); +t_stat rtc_set_tps (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rtc_show_tps (FILE *of, UNIT *uptr, int32 val, CONST void *desc); t_stat rtc_register (uint32 tm, uint32 idx, UNIT *uptr); #endif \ No newline at end of file diff --git a/sigma/sigma_lp.c b/sigma/sigma_lp.c index e125be04..cfcddd49 100644 --- a/sigma/sigma_lp.c +++ b/sigma/sigma_lp.c @@ -103,10 +103,10 @@ uint32 lp_tdv_status (void); t_stat lp_chan_err (uint32 st); t_stat lp_svc (UNIT *uptr); t_stat lp_reset (DEVICE *dptr); -t_stat lp_attach (UNIT *uptr, char *cptr); -t_stat lp_settype (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat lp_showtype (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat lp_load_cct (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat lp_attach (UNIT *uptr, CONST char *cptr); +t_stat lp_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat lp_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat lp_load_cct (UNIT *uptr, int32 val, CONST char *cptr, void *desc); uint32 lp_fmt (UNIT *uptr); uint32 lp_skip (UNIT *uptr, uint32 ch); uint32 lp_space (UNIT *uptr, uint32 lines, t_bool skp); @@ -459,7 +459,7 @@ return SCPE_OK; /* Attach routine */ -t_stat lp_attach (UNIT *uptr, char *cptr) +t_stat lp_attach (UNIT *uptr, CONST char *cptr) { lp_cctp = 0; /* clear cct ptr */ lp_pass = 0; @@ -468,7 +468,7 @@ return attach_unit (uptr, cptr); /* Set carriage control tape */ -t_stat lp_load_cct (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat lp_load_cct (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 col, rpt, ptr, mask; uint8 cctbuf[CCT_LNT]; @@ -514,7 +514,7 @@ return SCPE_OK; /* Set controller type */ -t_stat lp_settype (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat lp_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { lp_model = val; lp_reset (&lp_dev); @@ -523,7 +523,7 @@ return SCPE_OK; /* Show controller type */ -t_stat lp_showtype (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat lp_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, lp_model? "7450": "7440"); return SCPE_OK; diff --git a/sigma/sigma_mt.c b/sigma/sigma_mt.c index 268977f2..9174f609 100644 --- a/sigma/sigma_mt.c +++ b/sigma/sigma_mt.c @@ -130,7 +130,7 @@ t_stat mt_chan_err (uint32 st); t_stat mtu_svc (UNIT *uptr); t_stat mtr_svc (UNIT *uptr); t_stat mt_reset (DEVICE *dptr); -t_stat mt_attach (UNIT *uptr, char *cptr); +t_stat mt_attach (UNIT *uptr, CONST char *cptr); t_stat mt_detach (UNIT *uptr); t_stat mt_flush_buf (UNIT *uptr); t_stat mt_map_err (UNIT *uptr, t_stat r); @@ -334,12 +334,12 @@ r = SCPE_OK; switch (cmd) { /* case on command */ case MCM_SFWR: /* space forward */ - if (r = sim_tape_sprecf (uptr, &tbc)) /* spc rec fwd, err? */ + if ((r = sim_tape_sprecf (uptr, &tbc))) /* spc rec fwd, err? */ r = mt_map_err (uptr, r); /* map error */ break; case MCM_SBKR: /* space reverse */ - if (r = sim_tape_sprecr (uptr, &tbc)) /* spc rec rev, err? */ + if ((r = sim_tape_sprecr (uptr, &tbc))) /* spc rec rev, err? */ r = mt_map_err (uptr, r); /* map error */ break; @@ -358,7 +358,7 @@ switch (cmd) { /* case on command */ break; case MCM_WTM: /* write eof */ - if (r = sim_tape_wrtmk (uptr)) /* write tmk, err? */ + if ((r = sim_tape_wrtmk (uptr))) /* write tmk, err? */ r = mt_map_err (uptr, r); /* map error */ uptr->UST |= MTDV_EOF; /* set eof */ break; @@ -369,7 +369,7 @@ switch (cmd) { /* case on command */ case MCM_REW: /* rewind */ case MCM_RWI: /* rewind and int */ - if (r = sim_tape_rewind (uptr)) /* rewind */ + if ((r = sim_tape_rewind (uptr))) /* rewind */ r = mt_map_err (uptr, r); /* map error */ mt_unit[un + MT_REW].UCMD = uptr->UCMD; /* copy command */ sim_activate (uptr + MT_REW, mt_rwtime); /* sched compl */ @@ -459,7 +459,7 @@ t_stat st; if (mt_blim == 0) /* any output? */ return SCPE_OK; -if (st = sim_tape_wrrecf (uptr, mt_xb, mt_blim)) /* write, err? */ +if ((st = sim_tape_wrrecf (uptr, mt_xb, mt_blim))) /* write, err? */ return mt_map_err (uptr, st); /* map error */ return SCPE_OK; } @@ -623,7 +623,7 @@ return SCPE_OK; /* Attach routine */ -t_stat mt_attach (UNIT *uptr, char *cptr) +t_stat mt_attach (UNIT *uptr, CONST char *cptr) { t_stat r; diff --git a/sigma/sigma_pt.c b/sigma/sigma_pt.c index 1ffe60ed..9b6a6342 100644 --- a/sigma/sigma_pt.c +++ b/sigma/sigma_pt.c @@ -61,7 +61,7 @@ uint32 pt_tdv_status (void); t_stat pt_chan_err (uint32 st); t_stat pt_svc (UNIT *uptr); t_stat pt_reset (DEVICE *dptr); -t_stat pt_attach (UNIT *uptr, char *cptr); +t_stat pt_attach (UNIT *uptr, CONST char *cptr); /* PT data structures @@ -208,7 +208,7 @@ switch (pt_cmd) { /* case on state */ sim_activate (uptr, pt_unit[PTP].wait); /* continue thread */ if ((pt_unit[PTP].flags & UNIT_ATT) == 0) /* not attached? */ return ptp_stopioe? SCPE_UNATT: SCPE_OK; - st = chan_RdMemB (pt_dib.dva, &c); /* read from channel */ + st = chan_RdMemB (pt_dib.dva, (uint32 *)&c); /* read from channel */ if (CHS_IFERR (st)) /* channel error? */ return pt_chan_err (st); if (putc (c, pt_unit[PTP].fileref) == EOF) { @@ -286,7 +286,7 @@ return SCPE_OK; /* Attach routine */ -t_stat pt_attach (UNIT *uptr, char *cptr) +t_stat pt_attach (UNIT *uptr, CONST char *cptr) { t_stat st; diff --git a/sigma/sigma_rad.c b/sigma/sigma_rad.c index 1b904a44..4c14ad31 100644 --- a/sigma/sigma_rad.c +++ b/sigma/sigma_rad.c @@ -124,8 +124,8 @@ uint32 rad_tdv_status (uint32 un); t_stat rad_chan_err (uint32 st); t_stat rad_svc (UNIT *uptr); t_stat rad_reset (DEVICE *dptr); -t_stat rad_settype (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat rad_showtype (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat rad_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat rad_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_bool rad_inv_ad (uint32 *da); t_bool rad_inc_ad (void); t_bool rad_end_sec (UNIT *uptr, uint32 lnt, uint32 exp, uint32 st); @@ -508,7 +508,7 @@ return SCPE_OK; /* Set controller type */ -t_stat rad_settype (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rad_settype (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 i; @@ -525,7 +525,7 @@ return SCPE_OK; /* Show controller type */ -t_stat rad_showtype (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat rad_showtype (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { fprintf (st, (rad_model == RAD_7212)? "7211/7212": "7231/7232"); return SCPE_OK; diff --git a/sigma/sigma_rtc.c b/sigma/sigma_rtc.c index 34982fa3..c3c643d2 100644 --- a/sigma/sigma_rtc.c +++ b/sigma/sigma_rtc.c @@ -74,7 +74,7 @@ static rtcdef_t rtc_tab[RTC_NUM_HZ] = { t_stat rtc_svc (UNIT *uptr); t_stat rtc_cntr_svc (UNIT *uptr); t_stat rtc_reset (DEVICE *dptr); -t_stat rtc_show_events (FILE *of, UNIT *uptr, int32 val, void *desc); +t_stat rtc_show_events (FILE *of, UNIT *uptr, int32 val, CONST void *desc); /* Clock data structures @@ -184,7 +184,7 @@ return SCPE_OK; /* Set timer ticks */ -t_stat rtc_set_tps (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat rtc_set_tps (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 newval, i; t_stat r; @@ -211,7 +211,7 @@ return SCPE_ARG; /* Show timer ticks */ -t_stat rtc_show_tps (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat rtc_show_tps (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { uint32 idx; @@ -252,7 +252,7 @@ return SCPE_OK; /* Show events */ -t_stat rtc_show_events (FILE *of, UNIT *uptr, int32 val, void *desc) +t_stat rtc_show_events (FILE *of, UNIT *uptr, int32 val, CONST void *desc) { uint32 i; diff --git a/sigma/sigma_sys.c b/sigma/sigma_sys.c index f9822c65..c84a61f8 100644 --- a/sigma/sigma_sys.c +++ b/sigma/sigma_sys.c @@ -47,7 +47,7 @@ extern uint32 *M; extern UNIT cpu_unit; t_stat fprint_sym_m (FILE *of, uint32 inst); -t_stat parse_sym_m (char *cptr, t_value *val); +t_stat parse_sym_m (const char *cptr, t_value *val); void fprint_ebcdic (FILE *of, uint32 c); /* SCP data structures and interface routines @@ -164,7 +164,7 @@ uint8 ebcdic_to_ascii[256] = { /* Binary loader */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { return SCPE_NOFNC; } @@ -376,7 +376,7 @@ if (sw & SWMASK ('C')) { /* char format? */ if (sw & SWMASK ('A')) { /* ASCII? */ sc = 24 - ((addr & 0x3) * 8); /* shift count */ c = (inst >> sc) & 0x7F; - fprintf (of, "%c", FMTASC (c)); + fprintf (of, FMTASC (c)); return 0; } if (sw & SWMASK ('E')) { /* EBCDIC? */ @@ -465,7 +465,7 @@ return; status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { t_value num; uint32 i, sc, rdx, c; @@ -540,7 +540,7 @@ if (r != SCPE_OK) return 0; } -t_stat parse_sym_m (char *cptr, t_value *val) +t_stat parse_sym_m (const char *cptr, t_value *val) { uint32 i, sgn; t_stat r; @@ -548,7 +548,7 @@ char *sep; char gbuf[CBUFSIZE]; cptr = get_glyph (cptr, gbuf, 0); /* get opcode+reg*/ -if (sep = strchr (gbuf, ',')) /* , in middle? */ +if ((sep = strchr (gbuf, ','))) /* , in middle? */ *sep++ = 0; /* split strings */ for (i = 0; opcode[i] != NULL; i++) { /* loop thru ops */ if (strcmp (opcode[i], gbuf) == 0) { /* string match? */ @@ -584,7 +584,7 @@ for (i = 0; opcode[i] != NULL; i++) { /* loop thru ops */ sgn = 1; else sgn = 0; /* else + */ cptr = get_glyph (cptr, gbuf, 0); /* get rest */ - if (sep = strchr (gbuf, ',')) /* , in middle? */ + if ((sep = strchr (gbuf, ','))) /* , in middle? */ *sep++ = 0; /* split strings */ ad = get_uint (gbuf, 16, mask, &r); if (r != SCPE_OK) diff --git a/sigma/sigma_tt.c b/sigma/sigma_tt.c index 97d32d3c..f595e02e 100644 --- a/sigma/sigma_tt.c +++ b/sigma/sigma_tt.c @@ -71,7 +71,7 @@ t_stat tti_rtc_svc (uint32 tm); t_stat tti_svc (UNIT *uptr); t_stat tto_svc (UNIT *uptr); t_stat tt_reset (DEVICE *dptr); -t_stat tt_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc); +t_stat tt_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc); void tto_echo (int32 c); extern t_stat io_set_pint (void); @@ -214,7 +214,7 @@ return SCPE_OK; t_stat tto_svc (UNIT *uptr) { -int32 c, cmd; +uint32 c, cmd; uint32 st; switch (tt_cmd) { /* case on state */ @@ -321,7 +321,7 @@ return SCPE_OK; /* Make mode flags uniform */ -t_stat tt_set_mode (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tt_set_mode (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { tt_unit[TTO].flags = (tt_unit[TTO].flags & ~TT_MODE) | val; if (val == TT_MODE_7P) diff --git a/sim_console.c b/sim_console.c index 8a27195b..5b030553 100644 --- a/sim_console.c +++ b/sim_console.c @@ -146,15 +146,15 @@ static t_stat sim_os_ttcmd (void); static t_stat sim_os_ttclose (void); static t_bool sim_os_ttisatty (void); -static t_stat sim_set_rem_telnet (int32 flag, char *cptr); -static t_stat sim_set_rem_connections (int32 flag, char *cptr); -static t_stat sim_set_rem_timeout (int32 flag, char *cptr); -static t_stat sim_set_rem_master (int32 flag, char *cptr); +static t_stat sim_set_rem_telnet (int32 flag, CONST char *cptr); +static t_stat sim_set_rem_connections (int32 flag, CONST char *cptr); +static t_stat sim_set_rem_timeout (int32 flag, CONST char *cptr); +static t_stat sim_set_rem_master (int32 flag, CONST char *cptr); /* Deprecated CONSOLE HALT, CONSOLE RESPONSE and CONSOLE DELAY support */ -static t_stat sim_set_halt (int32 flag, char *cptr); -static t_stat sim_set_response (int32 flag, char *cptr); -static t_stat sim_set_delay (int32 flag, char *cptr); +static t_stat sim_set_halt (int32 flag, CONST char *cptr); +static t_stat sim_set_response (int32 flag, CONST char *cptr); +static t_stat sim_set_delay (int32 flag, CONST char *cptr); #define KMAP_WRU 0 @@ -337,7 +337,7 @@ static int32 *cons_kmap[] = { /* SET CONSOLE command */ -t_stat sim_set_console (int32 flag, char *cptr) +t_stat sim_set_console (int32 flag, CONST char *cptr) { char *cvptr, gbuf[CBUFSIZE]; CTAB *ctptr; @@ -362,7 +362,7 @@ return SCPE_OK; /* SHOW CONSOLE command */ -t_stat sim_show_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; SHTAB *shptr; @@ -427,7 +427,7 @@ static t_offset sim_rem_cmd_log_start = 0; /* Log File saved position */ /* SET REMOTE CONSOLE command */ -t_stat sim_set_remote_console (int32 flag, char *cptr) +t_stat sim_set_remote_console (int32 flag, CONST char *cptr) { char *cvptr, gbuf[CBUFSIZE]; CTAB *ctptr; @@ -452,7 +452,7 @@ return SCPE_OK; /* SHOW REMOTE CONSOLE command */ -t_stat sim_show_remote_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_remote_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { int32 i, connections; TMLN *lp; @@ -529,22 +529,22 @@ if (sim_con_ldsc.conn) return SCPE_OK; } -static t_stat x_continue_cmd (int32 flag, char *cptr) +static t_stat x_continue_cmd (int32 flag, CONST char *cptr) { return SCPE_IERR; /* This routine should never be called */ } -static t_stat x_step_cmd (int32 flag, char *cptr) +static t_stat x_step_cmd (int32 flag, CONST char *cptr) { return SCPE_IERR; /* This routine should never be called */ } -static t_stat x_run_cmd (int32 flag, char *cptr) +static t_stat x_run_cmd (int32 flag, CONST char *cptr) { return SCPE_IERR; /* This routine should never be called */ } -static t_stat x_help_cmd (int32 flag, char *cptr); +static t_stat x_help_cmd (int32 flag, CONST char *cptr); static CTAB allowed_remote_cmds[] = { { "EXAMINE", &exdep_cmd, EX_E }, @@ -610,7 +610,7 @@ static CTAB allowed_single_remote_cmds[] = { { NULL, NULL } }; -static t_stat x_help_cmd (int32 flag, char *cptr) +static t_stat x_help_cmd (int32 flag, CONST char *cptr) { CTAB *cmdp, *cmdph; @@ -675,7 +675,8 @@ if (sim_log) { void sim_remote_process_command (void) { -char cbuf[4*CBUFSIZE], gbuf[CBUFSIZE], *cptr, *argv[1] = {NULL}; +char cbuf[4*CBUFSIZE], gbuf[CBUFSIZE], *argv[1] = {NULL}; +CONST char *cptr; int32 saved_switches = sim_switches; t_stat stat; @@ -710,7 +711,8 @@ t_bool was_active_command = (sim_rem_cmd_active_line != -1); t_bool got_command; t_bool close_session = FALSE; TMLN *lp; -char cbuf[4*CBUFSIZE], gbuf[CBUFSIZE], *cptr, *argv[1] = {NULL}; +char cbuf[4*CBUFSIZE], gbuf[CBUFSIZE], *argv[1] = {NULL}; +CONST char *cptr; CTAB *cmdp = NULL; CTAB *basecmdp = NULL; uint32 read_start_time = 0; @@ -1113,7 +1115,7 @@ if (sim_rem_con_tmxr.lines) { return SCPE_OK; } -static t_stat sim_set_rem_telnet (int32 flag, char *cptr) +static t_stat sim_set_rem_telnet (int32 flag, CONST char *cptr) { t_stat r; @@ -1150,7 +1152,7 @@ else { return SCPE_OK; } -static t_stat sim_set_rem_connections (int32 flag, char *cptr) +static t_stat sim_set_rem_connections (int32 flag, CONST char *cptr) { int32 lines; t_stat r; @@ -1183,7 +1185,7 @@ memset (sim_rem_command_buf, 0, 4*CBUFSIZE+1); return SCPE_OK; } -static t_stat sim_set_rem_timeout (int32 flag, char *cptr) +static t_stat sim_set_rem_timeout (int32 flag, CONST char *cptr) { int32 timeout; t_stat r; @@ -1208,7 +1210,7 @@ return SCPE_OK; mode or the simulator exits */ -static t_stat sim_set_rem_master (int32 flag, char *cptr) +static t_stat sim_set_rem_master (int32 flag, CONST char *cptr) { t_stat stat = SCPE_OK; @@ -1267,7 +1269,7 @@ return stat; /* Set keyboard map */ -t_stat sim_set_kmap (int32 flag, char *cptr) +t_stat sim_set_kmap (int32 flag, CONST char *cptr) { DEVICE *dptr = sim_devices[0]; int32 val, rdx; @@ -1287,7 +1289,7 @@ return SCPE_OK; /* Show keyboard map */ -t_stat sim_show_kmap (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_kmap (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { if (sim_devices[0]->dradix == 16) fprintf (st, "%s = %X\n", show_con_tab[flag].name, *(cons_kmap[flag & KMAP_MASK])); @@ -1297,7 +1299,7 @@ return SCPE_OK; /* Set printable characters */ -t_stat sim_set_pchar (int32 flag, char *cptr) +t_stat sim_set_pchar (int32 flag, CONST char *cptr) { DEVICE *dptr = sim_devices[0]; uint32 val, rdx; @@ -1317,16 +1319,16 @@ return SCPE_OK; /* Show printable characters */ -t_stat sim_show_pchar (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_pchar (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { if (sim_devices[0]->dradix == 16) fprintf (st, "pchar mask = %X", sim_tt_pchar); else fprintf (st, "pchar mask = %o", sim_tt_pchar); if (sim_tt_pchar) { - static char *pchars[] = {"NUL(^@)", "SOH(^A)", "STX(^B)", "ETX(^C)", "EOT(^D)", "ENQ(^E)", "ACK(^F)", "BEL(^G)", - "BS(^H)" , "HT(^I)", "LF(^J)", "VT(^K)", "FF(^L)", "CR(^M)", "SO(^N)", "SI(^O)", - "DLE(^P)", "DC1(^Q)", "DC2(^R)", "DC3(^S)", "DC4(^T)", "NAK(^U)", "SYN(^V)", "ETB(^W)", - "CAN(^X)", "EM(^Y)", "SUB(^Z)", "ESC", "FS", "GS", "RS", "US"}; + static const char *pchars[] = {"NUL(^@)", "SOH(^A)", "STX(^B)", "ETX(^C)", "EOT(^D)", "ENQ(^E)", "ACK(^F)", "BEL(^G)", + "BS(^H)" , "HT(^I)", "LF(^J)", "VT(^K)", "FF(^L)", "CR(^M)", "SO(^N)", "SI(^O)", + "DLE(^P)", "DC1(^Q)", "DC2(^R)", "DC3(^S)", "DC4(^T)", "NAK(^U)", "SYN(^V)", "ETB(^W)", + "CAN(^X)", "EM(^Y)", "SUB(^Z)", "ESC", "FS", "GS", "RS", "US"}; int i; t_bool found = FALSE; @@ -1344,12 +1346,12 @@ return SCPE_OK; /* Set input speed (bps) */ -t_stat sim_set_cons_speed (int32 flag, char *cptr) +t_stat sim_set_cons_speed (int32 flag, CONST char *cptr) { return tmxr_set_line_speed (&sim_con_ldsc, cptr); } -t_stat sim_show_cons_speed (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_cons_speed (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { if (sim_con_ldsc.rxbps) { fprintf (st, "Speed = %d", sim_con_ldsc.rxbps); @@ -1362,7 +1364,7 @@ return SCPE_OK; /* Set log routine */ -t_stat sim_set_logon (int32 flag, char *cptr) +t_stat sim_set_logon (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; t_stat r; @@ -1389,7 +1391,7 @@ return SCPE_OK; /* Set nolog routine */ -t_stat sim_set_logoff (int32 flag, char *cptr) +t_stat sim_set_logoff (int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) /* now eol? */ return SCPE_2MARG; @@ -1405,7 +1407,7 @@ return SCPE_OK; /* Show log status */ -t_stat sim_show_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) return SCPE_2MARG; @@ -1418,7 +1420,7 @@ return SCPE_OK; /* Set debug routine */ -t_stat sim_set_debon (int32 flag, char *cptr) +t_stat sim_set_debon (int32 flag, CONST char *cptr) { char gbuf[CBUFSIZE]; t_stat r; @@ -1488,7 +1490,7 @@ return SCPE_OK; /* Set nodebug routine */ -t_stat sim_set_deboff (int32 flag, char *cptr) +t_stat sim_set_deboff (int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) /* now eol? */ return SCPE_2MARG; @@ -1504,7 +1506,7 @@ return SCPE_OK; /* Show debug routine */ -t_stat sim_show_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { int32 i; @@ -1544,7 +1546,7 @@ return SCPE_OK; /* Set console to Telnet port (and parameters) */ -t_stat sim_set_telnet (int32 flag, char *cptr) +t_stat sim_set_telnet (int32 flag, CONST char *cptr) { char *cvptr, gbuf[CBUFSIZE]; CTAB *ctptr; @@ -1577,7 +1579,7 @@ return SCPE_OK; /* Close console Telnet port */ -t_stat sim_set_notelnet (int32 flag, char *cptr) +t_stat sim_set_notelnet (int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) /* too many arguments? */ return SCPE_2MARG; @@ -1588,7 +1590,7 @@ return tmxr_close_master (&sim_con_tmxr); /* close master socket * /* Show console Telnet status */ -t_stat sim_show_telnet (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, char *cptr) +t_stat sim_show_telnet (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) return SCPE_2MARG; @@ -1615,7 +1617,7 @@ return SCPE_OK; /* Set console to Buffering */ -t_stat sim_set_cons_buff (int32 flg, char *cptr) +t_stat sim_set_cons_buff (int32 flg, CONST char *cptr) { char cmdbuf[CBUFSIZE]; @@ -1625,7 +1627,7 @@ return tmxr_open_master (&sim_con_tmxr, cmdbuf); /* open master socket */ /* Set console to NoBuffering */ -t_stat sim_set_cons_unbuff (int32 flg, char *cptr) +t_stat sim_set_cons_unbuff (int32 flg, CONST char *cptr) { char cmdbuf[CBUFSIZE]; @@ -1635,7 +1637,7 @@ return tmxr_open_master (&sim_con_tmxr, cmdbuf); /* open master socket */ /* Set console to Logging */ -t_stat sim_set_cons_log (int32 flg, char *cptr) +t_stat sim_set_cons_log (int32 flg, CONST char *cptr) { char cmdbuf[CBUFSIZE]; @@ -1645,7 +1647,7 @@ return tmxr_open_master (&sim_con_tmxr, cmdbuf); /* open master socket */ /* Set console to NoLogging */ -t_stat sim_set_cons_nolog (int32 flg, char *cptr) +t_stat sim_set_cons_nolog (int32 flg, CONST char *cptr) { char cmdbuf[CBUFSIZE]; @@ -1653,7 +1655,7 @@ sprintf(cmdbuf, "NOLOG%c%s", cptr ? '=' : '\0', cptr ? cptr : ""); return tmxr_open_master (&sim_con_tmxr, cmdbuf); /* open master socket */ } -t_stat sim_show_cons_log (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, char *cptr) +t_stat sim_show_cons_log (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) return SCPE_2MARG; @@ -1664,7 +1666,7 @@ else return SCPE_OK; } -t_stat sim_show_cons_buff (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, char *cptr) +t_stat sim_show_cons_buff (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) return SCPE_2MARG; @@ -1677,12 +1679,12 @@ return SCPE_OK; /* Set console Debug Mode */ -t_stat sim_set_cons_debug (int32 flg, char *cptr) +t_stat sim_set_cons_debug (int32 flg, CONST char *cptr) { return set_dev_debug (&sim_con_telnet, &sim_con_unit, flg, cptr); } -t_stat sim_show_cons_debug (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, char *cptr) +t_stat sim_show_cons_debug (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) return SCPE_2MARG; @@ -1691,7 +1693,7 @@ return show_dev_debug (st, &sim_con_telnet, &sim_con_unit, flag, cptr); /* Set console to Serial port (and parameters) */ -t_stat sim_set_serial (int32 flag, char *cptr) +t_stat sim_set_serial (int32 flag, CONST char *cptr) { char *cvptr, gbuf[CBUFSIZE], ubuf[CBUFSIZE]; CTAB *ctptr; @@ -1734,7 +1736,7 @@ return SCPE_OK; /* Close console Serial port */ -t_stat sim_set_noserial (int32 flag, char *cptr) +t_stat sim_set_noserial (int32 flag, CONST char *cptr) { if (cptr && (*cptr != 0)) /* too many arguments? */ return SCPE_2MARG; @@ -1745,7 +1747,7 @@ return tmxr_close_master (&sim_con_tmxr); /* close master socket * /* Show the console expect rules and state */ -t_stat sim_show_cons_expect (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, char *cptr) +t_stat sim_show_cons_expect (FILE *st, DEVICE *dunused, UNIT *uunused, int32 flag, CONST char *cptr) { return sim_exp_show (st, &sim_con_expect, cptr); } @@ -1754,9 +1756,10 @@ return sim_exp_show (st, &sim_con_expect, cptr); /* Open log file */ -t_stat sim_open_logfile (char *filename, t_bool binary, FILE **pf, FILEREF **pref) +t_stat sim_open_logfile (const char *filename, t_bool binary, FILE **pf, FILEREF **pref) { -char *tptr, gbuf[CBUFSIZE]; +char gbuf[CBUFSIZE]; +const char *tptr; if ((filename == NULL) || (*filename == 0)) /* too few arguments? */ return SCPE_2FARG; @@ -1938,7 +1941,7 @@ return &sim_con_expect; /* Display console Queued input data status */ -t_stat sim_show_cons_send_input (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_cons_send_input (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { return sim_show_send_input (st, &sim_con_send); } @@ -2091,7 +2094,7 @@ return c; Columns with tabs set are non-zero; columns without tabs are 0 */ -t_stat sim_tt_settabs (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sim_tt_settabs (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint8 *temptabs, *tabs = (uint8 *) desc; int32 i, d; @@ -2121,9 +2124,9 @@ free (temptabs); return SCPE_OK; } -t_stat sim_tt_showtabs (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sim_tt_showtabs (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { -uint8 *tabs = (uint8 *) desc; +const uint8 *tabs = (const uint8 *) desc; int32 i, any; if ((st == NULL) || (val == 0) || (desc == NULL)) @@ -3185,7 +3188,7 @@ return; /* Set console halt */ -static t_stat sim_set_halt (int32 flag, char *cptr) +static t_stat sim_set_halt (int32 flag, CONST char *cptr) { if (flag == 0) /* no halt? */ sim_exp_clrall (&sim_con_expect); /* disable halt checks */ @@ -3218,7 +3221,7 @@ return SCPE_OK; /* Set console response */ -static t_stat sim_set_response (int32 flag, char *cptr) +static t_stat sim_set_response (int32 flag, CONST char *cptr) { if (flag == 0) /* no response? */ sim_send_clear (&sim_con_send); @@ -3240,7 +3243,7 @@ return SCPE_OK; /* Set console delay */ -static t_stat sim_set_delay (int32 flag, char *cptr) +static t_stat sim_set_delay (int32 flag, CONST char *cptr) { int32 val; t_stat r; diff --git a/sim_console.h b/sim_console.h index a1ff8f62..a36d452e 100644 --- a/sim_console.h +++ b/sim_console.h @@ -35,6 +35,10 @@ #ifndef SIM_CONSOLE_H_ #define SIM_CONSOLE_H_ 0 +#ifdef __cplusplus +extern "C" { +#endif + #define TTUF_V_MODE (UNIT_V_UF + 0) #define TTUF_W_MODE 2 #define TTUF_MODE_7B 0 @@ -67,47 +71,47 @@ since they together are passed into sim_tt_inpcvt() */ #define TT_GET_MODE(x) (((x) >> TTUF_V_MODE) & (TTUF_M_MODE | (TTUF_M_PAR << TTUF_W_MODE))) -t_stat sim_set_console (int32 flag, char *cptr); -t_stat sim_set_remote_console (int32 flag, char *cptr); +t_stat sim_set_console (int32 flag, CONST char *cptr); +t_stat sim_set_remote_console (int32 flag, CONST char *cptr); void sim_remote_process_command (void); -t_stat sim_set_kmap (int32 flag, char *cptr); -t_stat sim_set_telnet (int32 flag, char *cptr); -t_stat sim_set_notelnet (int32 flag, char *cptr); -t_stat sim_set_serial (int32 flag, char *cptr); -t_stat sim_set_noserial (int32 flag, char *cptr); -t_stat sim_set_logon (int32 flag, char *cptr); -t_stat sim_set_logoff (int32 flag, char *cptr); -t_stat sim_set_debon (int32 flag, char *cptr); -t_stat sim_set_cons_debug (int32 flg, char *cptr); -t_stat sim_set_cons_buff (int32 flg, char *cptr); -t_stat sim_set_cons_unbuff (int32 flg, char *cptr); -t_stat sim_set_cons_log (int32 flg, char *cptr); -t_stat sim_set_cons_nolog (int32 flg, char *cptr); -t_stat sim_set_deboff (int32 flag, char *cptr); -t_stat sim_set_cons_expect (int32 flg, char *cptr); -t_stat sim_set_cons_noexpect (int32 flg, char *cptr); +t_stat sim_set_kmap (int32 flag, CONST char *cptr); +t_stat sim_set_telnet (int32 flag, CONST char *cptr); +t_stat sim_set_notelnet (int32 flag, CONST char *cptr); +t_stat sim_set_serial (int32 flag, CONST char *cptr); +t_stat sim_set_noserial (int32 flag, CONST char *cptr); +t_stat sim_set_logon (int32 flag, CONST char *cptr); +t_stat sim_set_logoff (int32 flag, CONST char *cptr); +t_stat sim_set_debon (int32 flag, CONST char *cptr); +t_stat sim_set_cons_debug (int32 flg, CONST char *cptr); +t_stat sim_set_cons_buff (int32 flg, CONST char *cptr); +t_stat sim_set_cons_unbuff (int32 flg, CONST char *cptr); +t_stat sim_set_cons_log (int32 flg, CONST char *cptr); +t_stat sim_set_cons_nolog (int32 flg, CONST char *cptr); +t_stat sim_set_deboff (int32 flag, CONST char *cptr); +t_stat sim_set_cons_expect (int32 flg, CONST char *cptr); +t_stat sim_set_cons_noexpect (int32 flg, CONST char *cptr); t_stat sim_debug_flush (void); -t_stat sim_set_pchar (int32 flag, char *cptr); -t_stat sim_set_cons_speed (int32 flag, char *cptr); -t_stat sim_show_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_remote_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_kmap (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_telnet (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_pchar (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_cons_speed (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_cons_buff (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_cons_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_cons_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); -t_stat sim_show_cons_expect (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); +t_stat sim_set_pchar (int32 flag, CONST char *cptr); +t_stat sim_set_cons_speed (int32 flag, CONST char *cptr); +t_stat sim_show_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_remote_console (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_kmap (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_telnet (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_pchar (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_cons_speed (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_cons_buff (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_cons_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_cons_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat sim_show_cons_expect (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); t_stat sim_check_console (int32 sec); -t_stat sim_open_logfile (char *filename, t_bool binary, FILE **pf, FILEREF **pref); +t_stat sim_open_logfile (const char *filename, t_bool binary, FILE **pf, FILEREF **pref); t_stat sim_close_logfile (FILEREF **pref); const char *sim_logfile_name (FILE *st, FILEREF *ref); SEND *sim_cons_get_send (void); EXPECT *sim_cons_get_expect (void); -t_stat sim_show_cons_send_input (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); +t_stat sim_show_cons_send_input (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); t_stat sim_set_noconsole_port (void); t_stat sim_poll_kbd (void); t_stat sim_putchar (int32 c); @@ -119,8 +123,8 @@ t_stat sim_ttclose (void); t_bool sim_ttisatty (void); int32 sim_tt_inpcvt (int32 c, uint32 mode); int32 sim_tt_outcvt (int32 c, uint32 mode); -t_stat sim_tt_settabs (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sim_tt_showtabs (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat sim_tt_settabs (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sim_tt_showtabs (FILE *st, UNIT *uptr, int32 val, CONST void *desc); extern int32 sim_rem_cmd_active_line; /* command in progress on line # */ @@ -129,4 +133,8 @@ extern int32 sim_brk_char; /* break character * extern int32 sim_tt_pchar; /* printable character mask */ extern int32 sim_del_char; /* delete character */ +#ifdef __cplusplus +} +#endif + #endif diff --git a/sim_defs.h b/sim_defs.h index 9cca1b79..37dea61c 100644 --- a/sim_defs.h +++ b/sim_defs.h @@ -135,6 +135,10 @@ #define USE_REGEX 1 #endif +#ifdef __cplusplus +extern "C" { +#endif + /* avoid macro names collisions */ #ifdef MAX #undef MAX @@ -158,6 +162,18 @@ #define FALSE 0 #endif +/* SCP API shim. + + The SCP API for version 4.0 introduces a number of "pointer-to-const" + parameter qualifiers that were not present in the 3.x versions. To maintain + compatibility with the earlier versions, the new qualifiers are expressed as + "CONST" rather than "const". This allows macro removal of the qualifiers + when compiling for SIMH 3.x. +*/ +#ifndef CONST +#define CONST const +#endif + /* Length specific integer declarations */ #if defined (VMS) @@ -257,6 +273,20 @@ typedef uint32 t_addr; #define SIM_INLINE #endif +/* Storage class modifier for weak link definition for sim_vm_init() */ + +#if defined(__cplusplus) +#if defined(__GNUC__) +#define WEAK __attribute__((weak)) +#elif defined(_MSC_VER) +#define WEAK __declspec(selectany) +#else +#define WEAK extern +#endif +#else +#define WEAK +#endif + /* System independent definitions */ #define FLIP_SIZE (1 << 16) /* flip buf size */ @@ -417,14 +447,14 @@ struct DEVICE { t_stat (*reset)(DEVICE *dp); /* reset routine */ t_stat (*boot)(int32 u, DEVICE *dp); /* boot routine */ - t_stat (*attach)(UNIT *up, char *cp); + t_stat (*attach)(UNIT *up, CONST char *cp); /* attach routine */ t_stat (*detach)(UNIT *up); /* detach routine */ void *ctxt; /* context */ uint32 flags; /* flags */ uint32 dctrl; /* debug control */ DEBTAB *debflags; /* debug flags */ - t_stat (*msize)(UNIT *up, int32 v, char *cp, void *dp); + t_stat (*msize)(UNIT *up, int32 v, CONST char *cp, void *dp); /* mem size routine */ char *lname; /* logical name */ t_stat (*help)(FILE *st, DEVICE *dptr, @@ -434,8 +464,7 @@ struct DEVICE { UNIT *uptr, int32 flag, const char *cptr); /* attach help */ void *help_ctx; /* Context available to help routines */ - const char *(*description)(DEVICE *dptr); - /* Device Description */ + const char *(*description)(DEVICE *dptr); /* Device Description */ }; /* Device flags */ @@ -578,7 +607,7 @@ struct BITFIELD { /* Register data structure */ struct REG { - const char *name; /* name */ + CONST char *name; /* name */ void *loc; /* location */ uint32 radix; /* radix */ uint32 width; /* width */ @@ -613,7 +642,7 @@ struct REG { struct CTAB { const char *name; /* name */ - t_stat (*action)(int32 flag, char *cptr); + t_stat (*action)(int32 flag, CONST char *cptr); /* action routine */ int32 arg; /* argument */ const char *help; /* help string/structured locator */ @@ -625,7 +654,7 @@ struct CTAB { struct C1TAB { const char *name; /* name */ t_stat (*action)(DEVICE *dptr, UNIT *uptr, - int32 flag, char *cptr); /* action routine */ + int32 flag, CONST char *cptr);/* action routine */ int32 arg; /* argument */ const char *help; /* help string */ }; @@ -633,7 +662,7 @@ struct C1TAB { struct SHTAB { const char *name; /* name */ t_stat (*action)(FILE *st, DEVICE *dptr, - UNIT *uptr, int32 flag, char *cptr); + UNIT *uptr, int32 flag, CONST char *cptr); int32 arg; /* argument */ const char *help; /* help string */ }; @@ -645,9 +674,9 @@ struct MTAB { uint32 match; /* match */ const char *pstring; /* print string */ const char *mstring; /* match string */ - t_stat (*valid)(UNIT *up, int32 v, char *cp, void *dp); + t_stat (*valid)(UNIT *up, int32 v, CONST char *cp, void *dp); /* validation routine */ - t_stat (*disp)(FILE *st, UNIT *up, int32 v, void *dp); + t_stat (*disp)(FILE *st, UNIT *up, int32 v, CONST void *dp); /* display routine */ void *desc; /* value descriptor */ /* REG * if MTAB_VAL */ @@ -866,7 +895,6 @@ struct FILEREF { #define STRDATADF(nm,loc,rdx,wd,off,dep,siz,fl,desc,flds) \ REGDATA(nm,(loc),(rdx),(wd),(off),(dep),(desc),(flds),((fl) | REG_STRUCT),0,(siz)) - /* Function prototypes */ #include "scp.h" @@ -1177,8 +1205,8 @@ extern int32 sim_asynch_inst_latency; #else #error "Implementation of function InterlockedCompareExchangePointer() is needed to build with USE_AIO_INTRINSICS" #endif -#define AIO_QUEUE_VAL (UNIT *)(InterlockedCompareExchangePointer(&sim_asynch_queue, sim_asynch_queue, NULL)) -#define AIO_QUEUE_SET(val, queue) (UNIT *)(InterlockedCompareExchangePointer(&sim_asynch_queue, val, queue)) +#define AIO_QUEUE_VAL (UNIT *)(InterlockedCompareExchangePointer((void * volatile *)&sim_asynch_queue, (void *)sim_asynch_queue, NULL)) +#define AIO_QUEUE_SET(val, queue) (UNIT *)(InterlockedCompareExchangePointer((void * volatile *)&sim_asynch_queue, (void *)val, queue)) #define AIO_UPDATE_QUEUE \ if (AIO_QUEUE_VAL != QUEUE_LIST_END) { /* List !Empty */ \ UNIT *q, *uptr; \ @@ -1402,4 +1430,8 @@ extern int32 sim_asynch_inst_latency; #define AIO_TLS #endif /* SIM_ASYNCH_IO */ +#ifdef __cplusplus +} +#endif + #endif diff --git a/sim_disk.c b/sim_disk.c index bbda60da..5bc0de8a 100644 --- a/sim_disk.c +++ b/sim_disk.c @@ -309,7 +309,7 @@ static struct sim_disk_fmt fmts[DKUF_N_FMT] = { /* Set disk format */ -t_stat sim_disk_set_fmt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sim_disk_set_fmt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 f; @@ -331,7 +331,7 @@ return SCPE_ARG; /* Show disk format */ -t_stat sim_disk_show_fmt (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sim_disk_show_fmt (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 f = DK_GET_FMT (uptr); size_t i; @@ -347,7 +347,7 @@ return SCPE_OK; /* Set disk capacity */ -t_stat sim_disk_set_capac (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sim_disk_set_capac (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_offset cap; t_stat r; @@ -366,7 +366,7 @@ return SCPE_OK; /* Show disk capacity */ -t_stat sim_disk_show_capac (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sim_disk_show_capac (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { const char *cap_units = "B"; DEVICE *dptr = find_dev_from_unit (uptr); @@ -842,11 +842,12 @@ return stat; } -t_stat sim_disk_attach (UNIT *uptr, char *cptr, size_t sector_size, size_t xfer_element_size, t_bool dontautosize, +t_stat sim_disk_attach (UNIT *uptr, const char *cptr, size_t sector_size, size_t xfer_element_size, t_bool dontautosize, uint32 dbit, const char *dtype, uint32 pdp11tracksize, int completion_delay) { struct disk_context *ctx; DEVICE *dptr; +char tbuf[4*CBUFSIZE]; FILE *(*open_function)(const char *filename, const char *mode) = sim_fopen; FILE *(*create_function)(const char *filename, t_offset desiredsize) = NULL; t_offset (*size_function)(FILE *file); @@ -1010,7 +1011,9 @@ if (sim_switches & SWMASK ('C')) { /* create vhd disk & cop if (r == SCPE_OK) { created = TRUE; copied = TRUE; - strcpy (cptr, gbuf); + tbuf[sizeof(tbuf)-1] = '\0'; + strncpy (tbuf, gbuf, sizeof(tbuf)-1); + cptr = tbuf; sim_disk_set_fmt (uptr, 0, "VHD", NULL); sim_switches = saved_sim_switches; } @@ -1781,7 +1784,7 @@ if (strchr (openmode, 'w') || strchr (openmode, '+')) We handle the RAW device name case here by prepending paths beginning with \.\ with an extra \. */ if (!memcmp ("\\.\\", rawdevicename, 3)) { - char *tmpname = malloc (2 + strlen (rawdevicename)); + char *tmpname = (char *)malloc (2 + strlen (rawdevicename)); if (tmpname == NULL) return NULL; diff --git a/sim_disk.h b/sim_disk.h index a95ff36d..b8cf5f87 100644 --- a/sim_disk.h +++ b/sim_disk.h @@ -30,6 +30,10 @@ #ifndef SIM_DISK_H_ #define SIM_DISK_H_ 0 +#ifdef __cplusplus +extern "C" { +#endif + /* SIMH/Disk format */ typedef uint32 t_seccnt; /* disk sector count */ @@ -64,7 +68,7 @@ typedef void (*DISK_PCALLBACK)(UNIT *unit, t_stat status); /* Prototypes */ -t_stat sim_disk_attach (UNIT *uptr, char *cptr, size_t sector_size, size_t xfer_element_size, t_bool dontautosize, +t_stat sim_disk_attach (UNIT *uptr, const char *cptr, size_t sector_size, size_t xfer_element_size, t_bool dontautosize, uint32 debugbit, const char *drivetype, uint32 pdp11_tracksize, int completion_delay); t_stat sim_disk_detach (UNIT *uptr); t_stat sim_disk_attach_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); @@ -73,10 +77,10 @@ t_stat sim_disk_rdsect_a (UNIT *uptr, t_lba lba, uint8 *buf, t_seccnt *sectsread t_stat sim_disk_wrsect (UNIT *uptr, t_lba lba, uint8 *buf, t_seccnt *sectswritten, t_seccnt sects); t_stat sim_disk_wrsect_a (UNIT *uptr, t_lba lba, uint8 *buf, t_seccnt *sectswritten, t_seccnt sects, DISK_PCALLBACK callback); t_stat sim_disk_unload (UNIT *uptr); -t_stat sim_disk_set_fmt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sim_disk_show_fmt (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat sim_disk_set_capac (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sim_disk_show_capac (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat sim_disk_set_fmt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sim_disk_show_fmt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat sim_disk_set_capac (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sim_disk_show_capac (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat sim_disk_set_asynch (UNIT *uptr, int latency); t_stat sim_disk_clr_asynch (UNIT *uptr); t_stat sim_disk_reset (UNIT *uptr); @@ -90,4 +94,8 @@ t_bool sim_disk_vhd_support (void); t_bool sim_disk_raw_support (void); void sim_disk_data_trace (UNIT *uptr, const uint8 *data, size_t lba, size_t len, const char* txt, int detail, uint32 reason); +#ifdef __cplusplus +} +#endif + #endif diff --git a/sim_ether.c b/sim_ether.c index 54d0966e..1fe49ee5 100644 --- a/sim_ether.c +++ b/sim_ether.c @@ -374,7 +374,7 @@ /* OS-independant ethernet routines */ /*============================================================================*/ -t_stat eth_mac_scan (ETH_MAC* mac, char* strmac) +t_stat eth_mac_scan (ETH_MAC* mac, const char* strmac) { unsigned int a0, a1, a2, a3, a4, a5; const ETH_MAC zeros = {0,0,0,0,0,0}; @@ -406,9 +406,9 @@ t_stat eth_mac_scan (ETH_MAC* mac, char* strmac) return SCPE_OK; } -void eth_mac_fmt(ETH_MAC* mac, char* buff) +void eth_mac_fmt(const ETH_MAC* mac, char* buff) { - uint8* m = (uint8*) mac; + const uint8* m = (const uint8*) mac; sprintf(buff, "%02X:%02X:%02X:%02X:%02X:%02X", m[0], m[1], m[2], m[3], m[4], m[5]); return; } @@ -519,16 +519,16 @@ void eth_packet_trace_ex(ETH_DEV* dev, const uint8 *msg, int len, const char* tx if (dev->dptr->dctrl & reason) { char src[20]; char dst[20]; - unsigned short* proto = (unsigned short*) &msg[12]; + const unsigned short* proto = (const unsigned short*) &msg[12]; uint32 crc = eth_crc32(0, msg, len); - eth_mac_fmt((ETH_MAC*)&msg[0], dst); - eth_mac_fmt((ETH_MAC*)&msg[6], src); + eth_mac_fmt((const ETH_MAC*)msg, dst); + eth_mac_fmt((const ETH_MAC*)(msg+6), src); sim_debug(reason, dev->dptr, "%s dst: %s src: %s proto: 0x%04X len: %d crc: %X\n", txt, dst, src, ntohs(*proto), len, crc); if (detail) { int i, same, group, sidx, oidx; char outbuf[80], strbuf[18]; - static char hex[] = "0123456789ABCDEF"; + static const char hex[] = "0123456789ABCDEF"; for (i=same=0; i 0) && (0 == memcmp(&msg[i], &msg[i-16], 16))) { @@ -570,7 +570,7 @@ void eth_packet_trace_detail(ETH_DEV* dev, const uint8 *msg, int len, const char eth_packet_trace_ex(dev, msg, len, txt, 1 , dev->dbit); } -char* eth_getname(int number, char* name, char *desc) +const char* eth_getname(int number, char* name, char *desc) { ETH_LIST list[ETH_MAX_DEVICE]; int count = eth_devices(ETH_MAX_DEVICE, list); @@ -582,7 +582,7 @@ char* eth_getname(int number, char* name, char *desc) return name; } -char* eth_getname_bydesc(char* desc, char* name, char *ndesc) +const char* eth_getname_bydesc(const char* desc, char* name, char *ndesc) { ETH_LIST list[ETH_MAX_DEVICE]; int count = eth_devices(ETH_MAX_DEVICE, list); @@ -609,7 +609,7 @@ char* eth_getname_bydesc(char* desc, char* name, char *ndesc) } /* strncasecmp() is not available on all platforms */ -int eth_strncasecmp(char* string1, char* string2, size_t len) +int eth_strncasecmp(const char* string1, const char* string2, size_t len) { size_t i; unsigned char s1, s2; @@ -629,7 +629,7 @@ int eth_strncasecmp(char* string1, char* string2, size_t len) return 0; } -char* eth_getname_byname(char* name, char* temp, char *desc) +char* eth_getname_byname(const char* name, char* temp, char *desc) { ETH_LIST list[ETH_MAX_DEVICE]; int count = eth_devices(ETH_MAX_DEVICE, list); @@ -702,7 +702,7 @@ for (i=0; ioversize ? pack->oversize : pack->msg, pack->u #if !defined (USE_NETWORK) && !defined (USE_SHARED) const char *eth_capabilities(void) {return "no Ethernet";} -t_stat eth_open(ETH_DEV* dev, char* name, DEVICE* dptr, uint32 dbit) +t_stat eth_open(ETH_DEV* dev, const char* name, DEVICE* dptr, uint32 dbit) {return SCPE_NOFNC;} t_stat eth_close (ETH_DEV* dev) {return SCPE_NOFNC;} @@ -952,7 +952,13 @@ typedef void * pcap_t; /* Pseudo Type to avoid compiler errors */ #endif /* HAVE_TAP_NETWORK */ #ifdef HAVE_VDE_NETWORK +#ifdef __cplusplus +extern "C" { +#endif #include +#ifdef __cplusplus +} +#endif #endif /* HAVE_VDE_NETWORK */ #ifdef HAVE_SLIRP_NETWORK @@ -1277,7 +1283,7 @@ typedef struct _PACKET_OID_DATA PACKET_OID_DATA, *PPACKET_OID_DATA; typedef void **LPADAPTER; #define OID_802_3_CURRENT_ADDRESS 0x01010102 /* Extracted from ntddmdis.h */ -static int pcap_mac_if_win32(char *AdapterName, unsigned char MACAddress[6]) +static int pcap_mac_if_win32(const char *AdapterName, unsigned char MACAddress[6]) { LPADAPTER lpAdapter; PPACKET_OID_DATA OidData; @@ -1289,13 +1295,13 @@ static int pcap_mac_if_win32(char *AdapterName, unsigned char MACAddress[6]) static void *hDll = NULL; /* handle to Library */ typedef int BOOLEAN; #endif - LPADAPTER (*p_PacketOpenAdapter)(char *AdapterName); + LPADAPTER (*p_PacketOpenAdapter)(const char *AdapterName); void (*p_PacketCloseAdapter)(LPADAPTER lpAdapter); int (*p_PacketRequest)(LPADAPTER AdapterObject,BOOLEAN Set,PPACKET_OID_DATA OidData); #ifdef _WIN32 hDll = LoadLibraryA("packet.dll"); - p_PacketOpenAdapter = (LPADAPTER (*)(char *AdapterName))GetProcAddress(hDll, "PacketOpenAdapter"); + p_PacketOpenAdapter = (LPADAPTER (*)(const char *AdapterName))GetProcAddress(hDll, "PacketOpenAdapter"); p_PacketCloseAdapter = (void (*)(LPADAPTER lpAdapter))GetProcAddress(hDll, "PacketCloseAdapter"); p_PacketRequest = (int (*)(LPADAPTER AdapterObject,BOOLEAN Set,PPACKET_OID_DATA OidData))GetProcAddress(hDll, "PacketRequest"); #else @@ -1444,7 +1450,7 @@ static int pcap_mac_if_vms(char *AdapterName, unsigned char MACAddress[6]) } #endif /* defined (__VMS) && !defined(__VAX) */ -static void eth_get_nic_hw_addr(ETH_DEV* dev, char *devname) +static void eth_get_nic_hw_addr(ETH_DEV* dev, const char *devname) { memset(&dev->host_nic_phy_hw_addr, 0, sizeof(dev->host_nic_phy_hw_addr)); dev->have_host_nic_phy_addr = 0; @@ -1724,7 +1730,7 @@ static void * _eth_writer(void *arg) { ETH_DEV* volatile dev = (ETH_DEV*)arg; -struct write_request *request; +ETH_WRITE_REQUEST *request; int sched_policy; struct sched_param sched_priority; @@ -1832,7 +1838,7 @@ memset(errbuf, 0, PCAP_ERRBUF_SIZE); if (0 == strncmp("tap:", savname, 4)) { int tun = -1; /* TUN/TAP Socket */ int on = 1; - char *devname = savname + 4; + const char *devname = savname + 4; while (isspace(*devname)) ++devname; @@ -1919,7 +1925,7 @@ else { /* !tap: */ if (0 == strncmp("vde:", savname, 4)) { #if defined(HAVE_VDE_NETWORK) struct vde_open_args voa; - char *devname = savname + 4; + const char *devname = savname + 4; memset(&voa, 0, sizeof(voa)); if (!strcmp(savname, "vde:vdedevice")) { @@ -1928,7 +1934,7 @@ else { /* !tap: */ } while (isspace(*devname)) ++devname; - if (!(*handle = (void*) vde_open(devname, "simh", &voa))) + if (!(*handle = (void*) vde_open((char *)devname, (char *)"simh", &voa))) strncpy(errbuf, strerror(errno), PCAP_ERRBUF_SIZE-1); else { *eth_api = ETH_API_VDE; @@ -1941,7 +1947,7 @@ else { /* !tap: */ else { /* !vde: */ if (0 == strncmp("nat:", savname, 4)) { #if defined(HAVE_SLIRP_NETWORK) - char *devname = savname + 4; + const char *devname = savname + 4; while (isspace(*devname)) ++devname; @@ -1959,7 +1965,7 @@ else { /* !tap: */ if (0 == strncmp("udp:", savname, 4)) { char localport[CBUFSIZE], host[CBUFSIZE], port[CBUFSIZE]; char hostport[2*CBUFSIZE]; - char *devname = savname + 4; + const char *devname = savname + 4; if (!strcmp(savname, "udp:sourceport:remotehost:remoteport")) { sim_printf ("Eth: Must specify actual udp host and ports(i.e. udp:1224:somehost.com:2234)\r\n"); @@ -2067,13 +2073,14 @@ if (bpf_filter && (*eth_api == ETH_API_PCAP)) { return SCPE_OK; } -t_stat eth_open(ETH_DEV* dev, char* name, DEVICE* dptr, uint32 dbit) +t_stat eth_open(ETH_DEV* dev, const char* name, DEVICE* dptr, uint32 dbit) { t_stat r; int bufsz = (BUFSIZ < ETH_MAX_PACKET) ? ETH_MAX_PACKET : BUFSIZ; char errbuf[PCAP_ERRBUF_SIZE]; char temp[1024], desc[1024] = ""; -char* savname = name; +const char* savname = name; +char namebuf[4*CBUFSIZE]; int num; if (bufsz < ETH_MAX_JUMBO_FRAME) @@ -2107,7 +2114,10 @@ else { } } -r = _eth_open_port(savname, &dev->eth_api, &dev->handle, &dev->fd_handle, errbuf, NULL, (void *)dev, dptr, dbit); +namebuf[sizeof(namebuf)-1] = '\0'; +strncpy (namebuf, savname, sizeof(namebuf)-1); +savname = namebuf; +r = _eth_open_port(namebuf, &dev->eth_api, &dev->handle, &dev->fd_handle, errbuf, NULL, (void *)dev, dptr, dbit); if (errbuf[0]) { sim_printf ("Eth: open error - %s\r\n", errbuf); @@ -2215,7 +2225,7 @@ pthread_mutex_destroy (&dev->self_lock); pthread_mutex_destroy (&dev->writer_lock); pthread_cond_destroy (&dev->writer_cond); if (1) { - struct write_request *buffer; + ETH_WRITE_REQUEST *buffer; while (NULL != (buffer = dev->write_buffers)) { dev->write_buffers = buffer->next; free(buffer); @@ -2369,7 +2379,7 @@ eth_filter(dev, 1, (ETH_MAC *)mac, 0, 0); /* send the packet */ status = _eth_write (dev, &send, NULL); if (status != SCPE_OK) { - char *msg; + const char *msg; msg = (dev->eth_api == ETH_API_PCAP) ? "Eth: Error Transmitting packet: %s\r\n" "You may need to run as root, or install a libpcap version\r\n" @@ -2607,7 +2617,7 @@ return ((status == 0) ? SCPE_OK : SCPE_IOERR); t_stat eth_write(ETH_DEV* dev, ETH_PACK* packet, ETH_PCALLBACK routine) { #ifdef USE_READER_THREAD -struct write_request *request; +ETH_WRITE_REQUEST *request; int write_queue_size = 1; /* make sure device exists */ @@ -2619,7 +2629,7 @@ if (NULL != (request = dev->write_buffers)) dev->write_buffers = request->next; pthread_mutex_unlock (&dev->writer_lock); if (NULL == request) - request = (struct write_request *)malloc(sizeof(*request)); + request = (ETH_WRITE_REQUEST *)malloc(sizeof(*request)); /* Copy buffer contents */ request->packet.len = packet->len; @@ -2633,7 +2643,7 @@ memcpy(request->packet.msg, packet->msg, packet->len); pthread_mutex_lock (&dev->writer_lock); request->next = NULL; if (dev->write_requests) { - struct write_request *last_request = dev->write_requests; + ETH_WRITE_REQUEST *last_request = dev->write_requests; ++write_queue_size; while (last_request->next) { @@ -2844,9 +2854,9 @@ return (uint16)(~sum); } static void -_eth_fix_ip_jumbo_offload(ETH_DEV* dev, const u_char* msg, int len) +_eth_fix_ip_jumbo_offload(ETH_DEV* dev, u_char* msg, int len) { -unsigned short* proto = (unsigned short*) &msg[12]; +const unsigned short* proto = (const unsigned short*) &msg[12]; struct IPHeader *IP; struct TCPHeader *TCP = NULL; struct UDPHeader *UDP; @@ -3035,7 +3045,7 @@ switch (IP->proto) { static void _eth_fix_ip_xsum_offload(ETH_DEV* dev, const u_char* msg, int len) { -unsigned short* proto = (unsigned short*) &msg[12]; +const unsigned short* proto = (const unsigned short*) &msg[12]; struct IPHeader *IP; struct TCPHeader *TCP; struct UDPHeader *UDP; @@ -3235,8 +3245,12 @@ if ((LOOPBACK_SELF_FRAME(dev->physical_addr, data)) || if (bpf_used ? to_me : (to_me && !from_me)) { if (header->len > ETH_MIN_JUMBO_FRAME) { - if (header->len <= header->caplen) /* Whole Frame captured? */ - _eth_fix_ip_jumbo_offload(dev, data, header->len); + if (header->len <= header->caplen) {/* Whole Frame captured? */ + u_char *datacopy = (u_char *)malloc(header->len); + memcpy(datacopy, data, header->len); + _eth_fix_ip_jumbo_offload(dev, datacopy, header->len); + free(datacopy); + } else ++dev->jumbo_truncated; return; diff --git a/sim_ether.h b/sim_ether.h index e0460107..75b70d11 100644 --- a/sim_ether.h +++ b/sim_ether.h @@ -69,6 +69,10 @@ #include "sim_defs.h" #include "sim_sock.h" +#ifdef __cplusplus +extern "C" { +#endif + /* make common BSD code a bit easier to read in this file */ /* OS/X seems to define and compile using one of these BSD types */ #if defined(__NetBSD__) || defined (__OpenBSD__) || defined (__FreeBSD__) @@ -235,6 +239,11 @@ typedef void (*ETH_PCALLBACK)(int status); typedef struct eth_list ETH_LIST; typedef struct eth_queue ETH_QUE; typedef struct eth_item ETH_ITEM; +struct eth_write_request { + struct eth_write_request *next; + ETH_PACK packet; + }; +typedef struct eth_write_request ETH_WRITE_REQUEST; struct eth_device { char* name; /* name of ethernet device */ @@ -303,12 +312,9 @@ struct eth_device { pthread_mutex_t writer_lock; pthread_mutex_t self_lock; pthread_cond_t writer_cond; - struct write_request { - struct write_request *next; - ETH_PACK packet; - } *write_requests; + ETH_WRITE_REQUEST *write_requests; int write_queue_peak; - struct write_request *write_buffers; + ETH_WRITE_REQUEST *write_buffers; t_stat write_status; #endif }; @@ -317,7 +323,7 @@ typedef struct eth_device ETH_DEV; /* prototype declarations*/ -t_stat eth_open (ETH_DEV* dev, char* name, /* open ethernet interface */ +t_stat eth_open (ETH_DEV* dev, const char* name, /* open ethernet interface */ DEVICE* dptr, uint32 dbit); t_stat eth_close (ETH_DEV* dev); /* close ethernet interface */ t_stat eth_attach_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); @@ -346,13 +352,13 @@ uint32 eth_crc32(uint32 crc, const void* vbuf, size_t len); /* Compute Ethernet void eth_packet_trace (ETH_DEV* dev, const uint8 *msg, int len, const char* txt); /* trace ethernet packet header+crc */ void eth_packet_trace_ex (ETH_DEV* dev, const uint8 *msg, int len, const char* txt, int detail, uint32 reason); /* trace ethernet packet */ t_stat eth_show (FILE* st, UNIT* uptr, /* show ethernet devices */ - int32 val, void* desc); + int32 val, CONST void* desc); t_stat eth_show_devices (FILE* st, DEVICE *dptr, /* show ethernet devices */ - UNIT* uptr, int32 val, char* desc); + UNIT* uptr, int32 val, CONST char* desc); void eth_show_dev (FILE*st, ETH_DEV* dev); /* show ethernet device state */ -void eth_mac_fmt (ETH_MAC* add, char* buffer); /* format ethernet mac address */ -t_stat eth_mac_scan (ETH_MAC* mac, char* strmac); /* scan string for mac, put in mac */ +void eth_mac_fmt (const ETH_MAC* add, char* buffer); /* format ethernet mac address */ +t_stat eth_mac_scan (ETH_MAC* mac, const char* strmac); /* scan string for mac, put in mac */ t_stat ethq_init (ETH_QUE* que, int max); /* initialize FIFO queue */ void ethq_clear (ETH_QUE* que); /* clear FIFO queue */ @@ -366,4 +372,8 @@ t_stat ethq_destroy(ETH_QUE* que); /* release FIFO queue */ const char *eth_capabilities(void); +#ifdef __cplusplus +} +#endif + #endif /* _SIM_ETHER_H */ diff --git a/sim_fio.c b/sim_fio.c index e6a96089..008db86d 100644 --- a/sim_fio.c +++ b/sim_fio.c @@ -125,11 +125,11 @@ sim_buf_swap_data (bptr, size, count); return c; } -void sim_buf_copy_swapped (void *dbuf, void *sbuf, size_t size, size_t count) +void sim_buf_copy_swapped (void *dbuf, const void *sbuf, size_t size, size_t count) { size_t j; int32 k; -unsigned char *sptr = (unsigned char *)sbuf; +const unsigned char *sptr = (const unsigned char *)sbuf; unsigned char *dptr = (unsigned char *)dbuf; if (sim_end || (size == sizeof (char))) { @@ -143,11 +143,11 @@ for (j = 0; j < count; j++) { /* loop on items */ } } -size_t sim_fwrite (void *bptr, size_t size, size_t count, FILE *fptr) +size_t sim_fwrite (const void *bptr, size_t size, size_t count, FILE *fptr) { size_t c, nelem, nbuf, lcnt, total; int32 i; -unsigned char *sptr; +const unsigned char *sptr; unsigned char *sim_flip; if ((size == 0) || (count == 0)) /* check arguments */ @@ -163,7 +163,7 @@ lcnt = count % nelem; /* count in last buf */ if (lcnt) nbuf = nbuf + 1; else lcnt = nelem; total = 0; -sptr = (unsigned char *) bptr; /* init input ptr */ +sptr = (const unsigned char *) bptr; /* init input ptr */ for (i = (int32)nbuf; i > 0; i--) { /* loop on buffers */ c = (i == 1)? lcnt: nelem; sim_buf_copy_swapped (sim_flip, sptr, size, c); @@ -198,7 +198,7 @@ sim_fseeko (fp, pos, SEEK_SET); return sz; } -t_offset sim_fsize_name_ex (char *fname) +t_offset sim_fsize_name_ex (const char *fname) { FILE *fp; t_offset sz; @@ -210,7 +210,7 @@ fclose (fp); return sz; } -uint32 sim_fsize_name (char *fname) +uint32 sim_fsize_name (const char *fname) { return (uint32)(sim_fsize_name_ex (fname)); } diff --git a/sim_fio.h b/sim_fio.h index 01ee0791..32d5ce8a 100644 --- a/sim_fio.h +++ b/sim_fio.h @@ -33,6 +33,10 @@ #ifndef SIM_FIO_H_ #define SIM_FIO_H_ 0 +#ifdef __cplusplus +extern "C" { +#endif + #define FLIP_SIZE (1 << 16) /* flip buf size */ #define fxread(a,b,c,d) sim_fread (a, b, c, d) #define fxwrite(a,b,c,d) sim_fwrite (a, b, c, d) @@ -56,14 +60,14 @@ int sim_fseeko (FILE *st, t_offset offset, int whence); int sim_set_fsize (FILE *fptr, t_addr size); int sim_set_fifo_nonblock (FILE *fptr); size_t sim_fread (void *bptr, size_t size, size_t count, FILE *fptr); -size_t sim_fwrite (void *bptr, size_t size, size_t count, FILE *fptr); +size_t sim_fwrite (const void *bptr, size_t size, size_t count, FILE *fptr); uint32 sim_fsize (FILE *fptr); -uint32 sim_fsize_name (char *fname); +uint32 sim_fsize_name (const char *fname); t_offset sim_ftell (FILE *st); t_offset sim_fsize_ex (FILE *fptr); -t_offset sim_fsize_name_ex (char *fname); +t_offset sim_fsize_name_ex (const char *fname); void sim_buf_swap_data (void *bptr, size_t size, size_t count); -void sim_buf_copy_swapped (void *dptr, void *bptr, size_t size, size_t count); +void sim_buf_copy_swapped (void *dptr, const void *bptr, size_t size, size_t count); typedef struct SHMEM SHMEM; t_stat sim_shmem_open (const char *name, size_t size, SHMEM **shmem, void **addr); void sim_shmem_close (SHMEM *shmem); @@ -72,4 +76,8 @@ extern t_bool sim_taddr_64; /* t_addr is > 32b and Large File Support av extern t_bool sim_toffset_64; /* Large File (>2GB) file I/O support */ extern t_bool sim_end; /* TRUE = little endian, FALSE = big endian */ +#ifdef __cplusplus +} +#endif + #endif diff --git a/sim_imd.c b/sim_imd.c index 71a8c919..b1d09499 100644 --- a/sim_imd.c +++ b/sim_imd.c @@ -339,7 +339,7 @@ t_stat diskClose(DISK_INFO **myDisk) * * If the IMD file already exists, the user will be given the option of overwriting it. */ -t_stat diskCreate(FILE *fileref, char *ctlr_comment) +t_stat diskCreate(FILE *fileref, const char *ctlr_comment) { DISK_INFO *myDisk = NULL; char *comment; @@ -361,7 +361,7 @@ t_stat diskCreate(FILE *fileref, char *ctlr_comment) } } - if((curptr = comment = calloc(1, MAX_COMMENT_LEN)) == 0) { + if((curptr = comment = (char *)calloc(1, MAX_COMMENT_LEN)) == 0) { sim_printf("Memory allocation failure.\n"); return (SCPE_MEM); } @@ -735,7 +735,7 @@ t_stat trackWrite(DISK_INFO *myDisk, * data with the fillbyte. */ dataLen = sectorLen + 1; - sectorData = malloc(dataLen); + sectorData = (uint8 *)malloc(dataLen); memset(sectorData, fillbyte, dataLen); sectorData[0] = SECT_RECORD_NORM; diff --git a/sim_imd.h b/sim_imd.h index f02388b4..2c72972e 100644 --- a/sim_imd.h +++ b/sim_imd.h @@ -122,7 +122,7 @@ typedef struct { extern DISK_INFO *diskOpen(FILE *fileref, uint32 isVerbose); extern DISK_INFO *diskOpenEx(FILE *fileref, uint32 isVerbose, DEVICE *device, uint32 debugmask, uint32 verbosedebugmask); extern t_stat diskClose(DISK_INFO **myDisk); -extern t_stat diskCreate(FILE *fileref, char *ctlr_comment); +extern t_stat diskCreate(FILE *fileref, const char *ctlr_comment); extern uint32 imdGetSides(DISK_INFO *myDisk); extern uint32 imdIsWriteLocked(DISK_INFO *myDisk); diff --git a/sim_serial.c b/sim_serial.c index 2cce47bf..b7251d62 100644 --- a/sim_serial.c +++ b/sim_serial.c @@ -115,7 +115,7 @@ enumerates the available host serial ports - t_stat sim_show_serial (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, void* desc) + t_stat sim_show_serial (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, const void* desc) --------------------------------- displays the available host serial ports @@ -352,7 +352,7 @@ for (i=0; i @@ -126,4 +130,8 @@ int sim_getnames_sock (SOCKET sock, char **socknamebuf, char **peernamebuf); void sim_init_sock (void); void sim_cleanup_sock (void); +#ifdef __cplusplus +} +#endif + #endif diff --git a/sim_tape.c b/sim_tape.c index 09f54cf6..9d9139a2 100644 --- a/sim_tape.c +++ b/sim_tape.c @@ -438,12 +438,12 @@ fflush (uptr->fileref); /* Attach tape unit */ -t_stat sim_tape_attach (UNIT *uptr, char *cptr) +t_stat sim_tape_attach (UNIT *uptr, CONST char *cptr) { return sim_tape_attach_ex (uptr, cptr, 0, 0); } -t_stat sim_tape_attach_ex (UNIT *uptr, char *cptr, uint32 dbit, int completion_delay) +t_stat sim_tape_attach_ex (UNIT *uptr, const char *cptr, uint32 dbit, int completion_delay) { struct tape_context *ctx; uint32 objc; @@ -465,7 +465,7 @@ if (sim_switches & SWMASK ('F')) { /* format spec? */ } if (MT_GET_FMT (uptr) == MTUF_F_TPC) sim_switches |= SWMASK ('R'); /* Force ReadOnly attach for TPC tapes */ -r = attach_unit (uptr, cptr); /* attach unit */ +r = attach_unit (uptr, (CONST char *)cptr); /* attach unit */ if (r != SCPE_OK) /* error? */ return sim_messagef (r, "Can't open tape image: %s\n", cptr); switch (MT_GET_FMT (uptr)) { /* case on format */ @@ -2108,7 +2108,7 @@ return MTSE_IOERR; /* Set tape format */ -t_stat sim_tape_set_fmt (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sim_tape_set_fmt (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 f; @@ -2130,7 +2130,7 @@ return SCPE_ARG; /* Show tape format */ -t_stat sim_tape_show_fmt (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sim_tape_show_fmt (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 f = MT_GET_FMT (uptr); @@ -2156,8 +2156,8 @@ DEVICE *dptr = find_dev_from_unit (uptr); if ((uptr == NULL) || (uptr->fileref == NULL)) return 0; -countmap = calloc (65536, sizeof(*countmap)); -recbuf = malloc (65536); +countmap = (uint32 *)calloc (65536, sizeof(*countmap)); +recbuf = (uint8 *)malloc (65536); tape_size = (t_addr)sim_fsize (uptr->fileref); sim_debug (MTSE_DBG_STR, dptr, "tpc_map: tape_size: %" T_ADDR_FMT "u\n", tape_size); for (objc = 0, sizec = 0, tpos = 0;; ) { @@ -2265,7 +2265,7 @@ return ((p == 0)? map[p]: map[p - 1]); /* Set tape capacity */ -t_stat sim_tape_set_capac (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sim_tape_set_capac (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_addr cap; t_stat r; @@ -2283,7 +2283,7 @@ return SCPE_OK; /* Show tape capacity */ -t_stat sim_tape_show_capac (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sim_tape_show_capac (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (uptr->capac) { if (uptr->capac >= (t_addr) 1000000) @@ -2319,7 +2319,7 @@ return SCPE_OK; structure, and SCPE_OK is returned. */ -t_stat sim_tape_set_dens (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sim_tape_set_dens (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { uint32 density, new_bpi; t_stat result = SCPE_OK; @@ -2345,7 +2345,7 @@ else { /* otherwise a v else for (density = 0; density < BPI_COUNT; density++) /* otherwise validate the density */ if (new_bpi == bpi [density] /* if it matches a value in the list */ - && ((1 << density) & *(int32 *) desc)) { /* and it's an allowed value */ + && ((1 << density) & *(const int32 *) desc)) { /* and it's an allowed value */ uptr->dynflags = (uptr->dynflags & ~MTVF_DENS_MASK) /* then store the index of the value */ | density << UNIT_V_DF_TAPE; /* in the unit flags */ return SCPE_OK; /* and return success */ @@ -2359,7 +2359,7 @@ return result; /* return the re /* Show the tape density */ -t_stat sim_tape_show_dens (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sim_tape_show_dens (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { uint32 tape_density; diff --git a/sim_tape.h b/sim_tape.h index 629ab176..c1cf6a0a 100644 --- a/sim_tape.h +++ b/sim_tape.h @@ -34,6 +34,10 @@ #ifndef SIM_TAPE_H_ #define SIM_TAPE_H_ 0 +#ifdef __cplusplus +extern "C" { +#endif + /* SIMH/E11 tape format */ typedef uint32 t_mtrlnt; /* magtape rec lnt */ @@ -148,8 +152,8 @@ typedef void (*TAPE_PCALLBACK)(UNIT *unit, t_stat status); /* Prototypes */ -t_stat sim_tape_attach_ex (UNIT *uptr, char *cptr, uint32 dbit, int completion_delay); -t_stat sim_tape_attach (UNIT *uptr, char *cptr); +t_stat sim_tape_attach_ex (UNIT *uptr, const char *cptr, uint32 dbit, int completion_delay); +t_stat sim_tape_attach (UNIT *uptr, CONST char *cptr); t_stat sim_tape_detach (UNIT *uptr); t_stat sim_tape_attach_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); t_stat sim_tape_rdrecf (UNIT *uptr, uint8 *buf, t_mtrlnt *bc, t_mtrlnt max); @@ -190,13 +194,17 @@ t_stat sim_tape_reset (UNIT *uptr); t_bool sim_tape_bot (UNIT *uptr); t_bool sim_tape_wrp (UNIT *uptr); t_bool sim_tape_eot (UNIT *uptr); -t_stat sim_tape_set_fmt (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sim_tape_show_fmt (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat sim_tape_set_capac (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sim_tape_show_capac (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat sim_tape_set_dens (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sim_tape_show_dens (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat sim_tape_set_fmt (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sim_tape_show_fmt (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat sim_tape_set_capac (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sim_tape_show_capac (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat sim_tape_set_dens (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sim_tape_show_dens (FILE *st, UNIT *uptr, int32 val, CONST void *desc); t_stat sim_tape_set_asynch (UNIT *uptr, int latency); t_stat sim_tape_clr_asynch (UNIT *uptr); +#ifdef __cplusplus +} +#endif + #endif diff --git a/sim_timer.c b/sim_timer.c index 8188a6b5..ce3b6f12 100644 --- a/sim_timer.c +++ b/sim_timer.c @@ -103,7 +103,7 @@ static uint32 sim_throt_state = 0; static uint32 sim_throt_sleep_time = 0; static int32 sim_throt_wait = 0; static UNIT *sim_clock_unit[SIM_NTIMERS] = {NULL}; -UNIT *sim_clock_cosched_queue[SIM_NTIMERS] = {NULL}; +UNIT * volatile sim_clock_cosched_queue[SIM_NTIMERS] = {NULL}; t_bool sim_asynch_timer = #if defined (SIM_ASYNCH_CLOCKS) TRUE; @@ -760,7 +760,7 @@ return (sim_idle_rate_ms != 0); /* sim_show_timers - show running timer information */ -t_stat sim_show_timers (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, char* desc) +t_stat sim_show_timers (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, CONST char* desc) { int tmr, clocks; @@ -800,7 +800,7 @@ if (clocks == 0) return SCPE_OK; } -t_stat sim_show_clock_queues (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) +t_stat sim_show_clock_queues (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) { #if defined (SIM_ASYNCH_IO) int tmr; @@ -999,7 +999,7 @@ return TRUE; /* Set idling - implicitly disables throttling */ -t_stat sim_set_idle (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sim_set_idle (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { t_stat r; uint32 v; @@ -1024,7 +1024,7 @@ return SCPE_OK; /* Clear idling */ -t_stat sim_clr_idle (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat sim_clr_idle (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { sim_idle_enab = FALSE; return SCPE_OK; @@ -1032,7 +1032,7 @@ return SCPE_OK; /* Show idling */ -t_stat sim_show_idle (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat sim_show_idle (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { if (sim_idle_enab) fprintf (st, "idle enabled"); @@ -1045,9 +1045,9 @@ return SCPE_OK; /* Throttling package */ -t_stat sim_set_throt (int32 arg, char *cptr) +t_stat sim_set_throt (int32 arg, CONST char *cptr) { -const char *tptr; +CONST char *tptr; char c; t_value val, val2 = 0; @@ -1098,7 +1098,7 @@ else { return SCPE_OK; } -t_stat sim_show_throt (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, char *cptr) +t_stat sim_show_throt (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, CONST char *cptr) { if (sim_idle_rate_ms == 0) fprintf (st, "Throttling not available\n"); diff --git a/sim_timer.h b/sim_timer.h index 4de825e3..1dc28a30 100644 --- a/sim_timer.h +++ b/sim_timer.h @@ -31,6 +31,11 @@ #ifndef SIM_TIMER_H_ #define SIM_TIMER_H_ 0 + +#ifdef __cplusplus +extern "C" { +#endif + /* Pick up a struct timespec definition if it is available */ #include #if defined(__struct_timespec_defined) @@ -106,14 +111,14 @@ void sim_rtcn_init_all (void); int32 sim_rtcn_calb (int32 ticksper, int32 tmr); int32 sim_rtc_init (int32 time); int32 sim_rtc_calb (int32 ticksper); -t_stat sim_show_timers (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, char* desc); -t_stat sim_show_clock_queues (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); +t_stat sim_show_timers (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, CONST char* desc); +t_stat sim_show_clock_queues (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); t_bool sim_idle (uint32 tmr, t_bool sin_cyc); -t_stat sim_set_throt (int32 arg, char *cptr); -t_stat sim_show_throt (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, char *cptr); -t_stat sim_set_idle (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sim_clr_idle (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat sim_show_idle (FILE *st, UNIT *uptr, int32 val, void *desc); +t_stat sim_set_throt (int32 arg, CONST char *cptr); +t_stat sim_show_throt (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, CONST char *cptr); +t_stat sim_set_idle (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sim_clr_idle (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat sim_show_idle (FILE *st, UNIT *uptr, int32 val, CONST void *desc); void sim_throt_sched (void); void sim_throt_cancel (void); uint32 sim_os_msec (void); @@ -136,5 +141,11 @@ extern t_bool sim_idle_enab; /* idle enabled flag */ extern volatile t_bool sim_idle_wait; /* idle waiting flag */ extern t_bool sim_asynch_timer; extern DEVICE sim_timer_dev; +extern UNIT * volatile sim_clock_cosched_queue[SIM_NTIMERS]; +extern const t_bool rtc_avail; + +#ifdef __cplusplus +} +#endif #endif diff --git a/sim_tmxr.c b/sim_tmxr.c index edfee4b2..4397b76e 100644 --- a/sim_tmxr.c +++ b/sim_tmxr.c @@ -746,7 +746,7 @@ return; at each call, rather than depending on the DEVICE pointer stored in the TMXR. */ -static TMLN *tmxr_find_ldsc (UNIT *uptr, int32 val, TMXR *mp) +static TMLN *tmxr_find_ldsc (UNIT *uptr, int32 val, const TMXR *mp) { if (mp == NULL) /* invalid multiplexer descriptor? */ return NULL; /* programming error! */ @@ -778,7 +778,7 @@ return mp->ldsc + val; /* line descriptor */ invalid pointer or an invalid unit). */ -static TMLN *tmxr_get_ldsc (UNIT *uptr, char *cptr, TMXR *mp, t_stat *status) +static TMLN *tmxr_get_ldsc (UNIT *uptr, const char *cptr, TMXR *mp, t_stat *status) { t_value ln; TMLN *lp = NULL; @@ -1601,7 +1601,7 @@ t_bool tmxr_get_line_halfduplex (TMLN *lp) return (lp->halfduplex != FALSE); } -t_stat tmxr_set_config_line (TMLN *lp, const char *config) +t_stat tmxr_set_config_line (TMLN *lp, CONST char *config) { t_stat r; @@ -1989,7 +1989,7 @@ return; /* Return count of available characters for line */ -int32 tmxr_rqln_bare (TMLN *lp, t_bool speed) +int32 tmxr_rqln_bare (const TMLN *lp, t_bool speed) { if ((speed) && (lp->rxbps)) { /* consider speed and rate limiting? */ if (sim_gtime () < lp->rxnexttime) /* too soon? */ @@ -2000,7 +2000,7 @@ if ((speed) && (lp->rxbps)) { /* consider speed and rate limit return (lp->rxbpi - lp->rxbpr + ((lp->rxbpi < lp->rxbpr)? lp->rxbsz: 0)); } -int32 tmxr_rqln (TMLN *lp) +int32 tmxr_rqln (const TMLN *lp) { return tmxr_rqln_bare (lp, TRUE); } @@ -2198,21 +2198,21 @@ return tmxr_tqln(lp) + tmxr_tpqln(lp); /* Return count of buffered characters for line */ -int32 tmxr_tqln (TMLN *lp) +int32 tmxr_tqln (const TMLN *lp) { return (lp->txbpi - lp->txbpr + ((lp->txbpi < lp->txbpr)? lp->txbsz: 0)); } /* Return count of buffered packet characters for line */ -int32 tmxr_tpqln (TMLN *lp) +int32 tmxr_tpqln (const TMLN *lp) { return (lp->txppsize - lp->txppoffset); } /* Return transmit packet busy status for line */ -t_bool tmxr_tpbusyln (TMLN *lp) +t_bool tmxr_tpbusyln (const TMLN *lp) { return (0 != (lp->txppsize - lp->txppoffset)); } @@ -2273,7 +2273,7 @@ if (uptr && uptr->filename) { return SCPE_OK; } -static int32 _tmln_speed_delta (const char *cptr) +static int32 _tmln_speed_delta (CONST char *cptr) { struct { const char *bps; @@ -2319,10 +2319,10 @@ while (1) { return -1; } -t_stat tmxr_set_line_speed (TMLN *lp, const char *speed) +t_stat tmxr_set_line_speed (TMLN *lp, CONST char *speed) { UNIT *uptr; -const char *cptr; +CONST char *cptr; t_stat r; if (!speed || !*speed) @@ -2361,7 +2361,7 @@ return SCPE_OK; */ -t_stat tmxr_open_master (TMXR *mp, char *cptr) +t_stat tmxr_open_master (TMXR *mp, CONST char *cptr) { int32 i, line, nextline = -1; char tbuf[CBUFSIZE], listen[CBUFSIZE], destination[CBUFSIZE], @@ -2369,7 +2369,7 @@ char tbuf[CBUFSIZE], listen[CBUFSIZE], destination[CBUFSIZE], port[CBUFSIZE], option[CBUFSIZE], speed[CBUFSIZE]; SOCKET sock; SERHANDLE serport; -char *tptr = cptr; +CONST char *tptr = cptr; t_bool nolog, notelnet, listennotelnet, modem_control, loopback, datagram, packet; TMLN *lp; t_stat r = SCPE_OK; @@ -2408,7 +2408,7 @@ while (*tptr) { cptr = tbuf; if (!isdigit(*cptr)) { char gbuf[CBUFSIZE]; - char *init_cptr = cptr; + CONST char *init_cptr = cptr; cptr = get_glyph (cptr, gbuf, '='); if (0 == MATCH_CMD (gbuf, "LINE")) { @@ -2502,14 +2502,15 @@ while (*tptr) { if (sim_parse_addr (port, NULL, 0, NULL, NULL, 0, NULL, NULL)) return sim_messagef (SCPE_ARG, "Invalid Port Specifier: %s\n", port); if (cptr) { - get_glyph (cptr, cptr, 0); /* upcase this string */ + char *tptr = gbuf + (cptr - gbuf); + get_glyph (cptr, tptr, 0); /* upcase this string */ if (0 == MATCH_CMD (cptr, "NOTELNET")) listennotelnet = TRUE; else if (0 == MATCH_CMD (cptr, "TELNET")) listennotelnet = FALSE; else - return sim_messagef (SCPE_ARG, "Invalid Specifier: %s\n", cptr); + return sim_messagef (SCPE_ARG, "Invalid Specifier: %s\n", tptr); } cptr = init_cptr; } @@ -2542,22 +2543,24 @@ while (*tptr) { return sim_messagef (SCPE_ARG, "Serial line parameters must be set within simulated OS: %s\n", 1 + strchr (destination, ';')); } else { + char *eptr; + memset (hostport, '\0', sizeof(hostport)); strncpy (hostport, destination, sizeof(hostport)-1); - if ((cptr = strchr (hostport, ';'))) - *(cptr++) = '\0'; - if (cptr) { - get_glyph (cptr, cptr, 0); /* upcase this string */ - if (0 == MATCH_CMD (cptr, "NOTELNET")) + if ((eptr = strchr (hostport, ';'))) + *(eptr++) = '\0'; + if (eptr) { + get_glyph (eptr, eptr, 0); /* upcase this string */ + if (0 == MATCH_CMD (eptr, "NOTELNET")) notelnet = TRUE; else - if (0 == MATCH_CMD (cptr, "TELNET")) + if (0 == MATCH_CMD (eptr, "TELNET")) if (datagram) return sim_messagef (SCPE_ARG, "Telnet invalid on Datagram socket\n"); else notelnet = FALSE; else - return sim_messagef (SCPE_ARG, "Unexpected specifier: %s\n", cptr); + return sim_messagef (SCPE_ARG, "Unexpected specifier: %s\n", eptr); } sock = sim_connect_sock_ex (NULL, hostport, "localhost", NULL, (datagram ? SIM_SOCK_OPT_DATAGRAM : 0) | (packet ? SIM_SOCK_OPT_NODELAY : 0)); if (sock != INVALID_SOCKET) @@ -3612,7 +3615,7 @@ return SCPE_OK; /* Attach unit to master socket */ -t_stat tmxr_attach_ex (TMXR *mp, UNIT *uptr, char *cptr, t_bool async) +t_stat tmxr_attach_ex (TMXR *mp, UNIT *uptr, CONST char *cptr, t_bool async) { t_stat r; int32 i; @@ -3665,7 +3668,7 @@ if (tmxr_open_device_count) return SCPE_OK; } -t_stat tmxr_show_open_devices (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, char* desc) +t_stat tmxr_show_open_devices (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, CONST char* desc) { int i, j; @@ -4249,7 +4252,7 @@ return; /* Print connections - used only in named SHOW command */ -void tmxr_fconns (FILE *st, TMLN *lp, int32 ln) +void tmxr_fconns (FILE *st, const TMLN *lp, int32 ln) { int32 hr, mn, sc; uint32 ctime; @@ -4318,7 +4321,7 @@ return; /* Print statistics - used only in named SHOW command */ -void tmxr_fstats (FILE *st, TMLN *lp, int32 ln) +void tmxr_fstats (FILE *st, const TMLN *lp, int32 ln) { static const char *enab = "on"; static const char *dsab = "off"; @@ -4380,7 +4383,7 @@ return; 1. This function is usually called as an MTAB processing routine. */ -t_stat tmxr_dscln (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tmxr_dscln (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { TMXR *mp = (TMXR *) desc; TMLN *lp; @@ -4408,7 +4411,7 @@ return SCPE_OK; /* Enable logging for line */ -t_stat tmxr_set_log (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tmxr_set_log (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { TMXR *mp = (TMXR *) desc; TMLN *lp; @@ -4437,7 +4440,7 @@ return SCPE_OK; /* Disable logging for line */ -t_stat tmxr_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc) +t_stat tmxr_set_nolog (UNIT *uptr, int32 val, CONST char *cptr, void *desc) { TMXR *mp = (TMXR *) desc; TMLN *lp; @@ -4460,9 +4463,9 @@ return SCPE_OK; /* Show logging status for line */ -t_stat tmxr_show_log (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat tmxr_show_log (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { -TMXR *mp = (TMXR *) desc; +const TMXR *mp = (const TMXR *) desc; TMLN *lp; lp = tmxr_find_ldsc (uptr, val, mp); /* find line desc */ @@ -4503,12 +4506,12 @@ return SCPE_OK; If an error occurs, the original line order is not disturbed. */ -t_stat tmxr_set_lnorder (UNIT *uptr, int32 val, char *carg, void *desc) +t_stat tmxr_set_lnorder (UNIT *uptr, int32 val, CONST char *carg, void *desc) { TMXR *mp = (TMXR *) desc; char *tbuf; char *tptr; -const char *cptr; +CONST char *cptr; t_addr low, high, max = (t_addr) mp->lines - 1; int32 *list; t_bool *set; @@ -4602,10 +4605,10 @@ return result; where possible to shorten the output. */ -t_stat tmxr_show_lnorder (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat tmxr_show_lnorder (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { int32 i, j, low, last; -TMXR *mp = (TMXR *) desc; +const TMXR *mp = (const TMXR *) desc; int32 *iptr = mp->lnorder; t_bool first = TRUE; @@ -4654,9 +4657,9 @@ return SCPE_OK; /* Show summary processor */ -t_stat tmxr_show_summ (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat tmxr_show_summ (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { -TMXR *mp = (TMXR *) desc; +const TMXR *mp = (const TMXR *) desc; int32 i, t; if (mp == NULL) @@ -4673,9 +4676,9 @@ return SCPE_OK; /* Show conn/stat processor */ -t_stat tmxr_show_cstat (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat tmxr_show_cstat (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { -TMXR *mp = (TMXR *) desc; +const TMXR *mp = (const TMXR *) desc; int32 i, any; if (mp == NULL) @@ -4699,9 +4702,9 @@ return SCPE_OK; /* Show number of lines */ -t_stat tmxr_show_lines (FILE *st, UNIT *uptr, int32 val, void *desc) +t_stat tmxr_show_lines (FILE *st, UNIT *uptr, int32 val, CONST void *desc) { -TMXR *mp = (TMXR *) desc; +const TMXR *mp = (const TMXR *) desc; if (mp == NULL) return SCPE_IERR; diff --git a/sim_tmxr.h b/sim_tmxr.h index 4ecef785..b90b3f4e 100644 --- a/sim_tmxr.h +++ b/sim_tmxr.h @@ -47,6 +47,10 @@ #ifndef SIM_TMXR_H_ #define SIM_TMXR_H_ 0 +#ifdef __cplusplus +extern "C" { +#endif + #ifndef SIMH_SERHANDLE_DEFINED #define SIMH_SERHANDLE_DEFINED 0 #if defined (_WIN32) /* Windows definitions */ @@ -234,10 +238,10 @@ t_stat tmxr_put_packet_ln (TMLN *lp, const uint8 *buf, size_t size); t_stat tmxr_put_packet_ln_ex (TMLN *lp, const uint8 *buf, size_t size, uint8 frame_byte); void tmxr_poll_tx (TMXR *mp); int32 tmxr_send_buffered_data (TMLN *lp); -t_stat tmxr_open_master (TMXR *mp, char *cptr); +t_stat tmxr_open_master (TMXR *mp, CONST char *cptr); t_stat tmxr_close_master (TMXR *mp); t_stat tmxr_connection_poll_interval (TMXR *mp, uint32 seconds); -t_stat tmxr_attach_ex (TMXR *mp, UNIT *uptr, char *cptr, t_bool async); +t_stat tmxr_attach_ex (TMXR *mp, UNIT *uptr, CONST char *cptr, t_bool async); t_stat tmxr_detach (TMXR *mp, UNIT *uptr); t_stat tmxr_attach_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr); char *tmxr_line_attach_string(TMLN *lp); @@ -248,8 +252,8 @@ t_stat tmxr_set_line_loopback (TMLN *lp, t_bool enable_loopback); t_bool tmxr_get_line_loopback (TMLN *lp); t_stat tmxr_set_line_halfduplex (TMLN *lp, t_bool enable_loopback); t_bool tmxr_get_line_halfduplex (TMLN *lp); -t_stat tmxr_set_line_speed (TMLN *lp, const char *speed); -t_stat tmxr_set_config_line (TMLN *lp, const char *config); +t_stat tmxr_set_line_speed (TMLN *lp, CONST char *speed); +t_stat tmxr_set_config_line (TMLN *lp, CONST char *config); t_stat tmxr_set_line_unit (TMXR *mp, int line, UNIT *uptr_poll); t_stat tmxr_set_line_output_unit (TMXR *mp, int line, UNIT *uptr_poll); t_stat tmxr_set_console_units (UNIT *rxuptr, UNIT *txuptr); @@ -259,22 +263,22 @@ void tmxr_msg (SOCKET sock, const char *msg); void tmxr_linemsg (TMLN *lp, const char *msg); void tmxr_linemsgf (TMLN *lp, const char *fmt, ...); void tmxr_linemsgvf (TMLN *lp, const char *fmt, va_list args); -void tmxr_fconns (FILE *st, TMLN *lp, int32 ln); -void tmxr_fstats (FILE *st, TMLN *lp, int32 ln); -t_stat tmxr_set_log (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat tmxr_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat tmxr_show_log (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat tmxr_dscln (UNIT *uptr, int32 val, char *cptr, void *desc); -int32 tmxr_rqln (TMLN *lp); -int32 tmxr_tqln (TMLN *lp); -int32 tmxr_tpqln (TMLN *lp); -t_bool tmxr_tpbusyln (TMLN *lp); -t_stat tmxr_set_lnorder (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat tmxr_show_lnorder (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat tmxr_show_summ (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat tmxr_show_cstat (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat tmxr_show_lines (FILE *st, UNIT *uptr, int32 val, void *desc); -t_stat tmxr_show_open_devices (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, char* desc); +void tmxr_fconns (FILE *st, const TMLN *lp, int32 ln); +void tmxr_fstats (FILE *st, const TMLN *lp, int32 ln); +t_stat tmxr_set_log (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat tmxr_set_nolog (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat tmxr_show_log (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat tmxr_dscln (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +int32 tmxr_rqln (const TMLN *lp); +int32 tmxr_tqln (const TMLN *lp); +int32 tmxr_tpqln (const TMLN *lp); +t_bool tmxr_tpbusyln (const TMLN *lp); +t_stat tmxr_set_lnorder (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat tmxr_show_lnorder (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat tmxr_show_summ (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat tmxr_show_cstat (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat tmxr_show_lines (FILE *st, UNIT *uptr, int32 val, CONST void *desc); +t_stat tmxr_show_open_devices (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, CONST char* desc); t_stat tmxr_activate (UNIT *uptr, int32 interval); t_stat tmxr_activate_after (UNIT *uptr, uint32 usecs_walltime); t_stat tmxr_activate_after_abs (UNIT *uptr, uint32 usecs_walltime); @@ -314,4 +318,8 @@ void _tmxr_debug (uint32 dbits, TMLN *lp, const char *msg, char *buf, int bufsiz #endif +#ifdef __cplusplus +} +#endif + #endif /* _SIM_TMXR_H_ */ diff --git a/sim_video.c b/sim_video.c index e4ddd4a6..a5193921 100644 --- a/sim_video.c +++ b/sim_video.c @@ -46,7 +46,7 @@ vid_quit_callback = callback; return SCPE_OK; } -t_stat vid_show (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, char* desc) +t_stat vid_show (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, CONST char* desc) { return vid_show_video (st, uptr, val, desc); } @@ -1420,7 +1420,7 @@ int vid_video_events (void) { SDL_Event event; #if SDL_MAJOR_VERSION == 1 -static char *eventtypes[] = { +static const char *eventtypes[] = { "NOEVENT", /**< Unused (do not remove) */ "ACTIVEEVENT", /**< Application loses/gains visibility */ "KEYDOWN", /**< Keys pressed */ @@ -1819,19 +1819,19 @@ else return (const char *)SDLVersion; } -t_stat vid_set_release_key (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat vid_set_release_key (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { return SCPE_NOFNC; } -t_stat vid_show_release_key (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat vid_show_release_key (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { if (vid_flags & SIM_VID_INPUTCAPTURED) fprintf (st, "ReleaseKey=%s", vid_release_key); return SCPE_OK; } -static t_stat _vid_show_video (FILE* st, UNIT* uptr, int32 val, void* desc) +static t_stat _vid_show_video (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { int i; @@ -2073,14 +2073,14 @@ static t_stat _show_stat; static FILE *_show_st; static UNIT *_show_uptr; static int32 _show_val; -static void *_show_desc; +static CONST void *_show_desc; void vid_show_video_event (void) { _show_stat = _vid_show_video (_show_st, _show_uptr, _show_val, _show_desc); } -t_stat vid_show_video (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat vid_show_video (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { SDL_Event user_event; @@ -2114,7 +2114,7 @@ if (!vid_active) { sim_printf ("No video display is active\n"); return SCPE_UDIS | SCPE_NOMESSAGE; } -fullname = malloc (strlen(filename) + 5); +fullname = (char *)malloc (strlen(filename) + 5); if (!filename) return SCPE_MEM; #if SDL_MAJOR_VERSION == 1 @@ -2320,20 +2320,20 @@ const char *vid_version (void) return "No Video Support"; } -t_stat vid_set_release_key (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat vid_set_release_key (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { return SCPE_NOFNC; } -t_stat vid_show_release_key (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat vid_show_release_key (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { fprintf (st, "no release key"); return SCPE_OK; } -t_stat vid_show_video (FILE* st, UNIT* uptr, int32 val, void* desc) +t_stat vid_show_video (FILE* st, UNIT* uptr, int32 val, CONST void* desc) { -fprintf (st, "video support unavailable\n"); +fprintf (st, "video support unavailable"); return SCPE_OK; } diff --git a/sim_video.h b/sim_video.h index 365ffd85..815507a7 100644 --- a/sim_video.h +++ b/sim_video.h @@ -32,6 +32,10 @@ #include "sim_defs.h" +#ifdef __cplusplus +extern "C" { +#endif + #define SIM_KEYPRESS_DOWN 0 /* key states */ #define SIM_KEYPRESS_UP 1 #define SIM_KEYPRESS_REPEAT 2 @@ -184,10 +188,10 @@ void vid_beep (void); void vid_refresh (void); const char *vid_version (void); t_stat vid_set_cursor (t_bool visible, uint32 width, uint32 height, uint8 *data, uint8 *mask, uint32 hot_x, uint32 hot_y); -t_stat vid_set_release_key (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat vid_show_release_key (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat vid_show_video (FILE* st, UNIT* uptr, int32 val, void* desc); -t_stat vid_show (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, char* desc); +t_stat vid_set_release_key (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat vid_show_release_key (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat vid_show_video (FILE* st, UNIT* uptr, int32 val, CONST void* desc); +t_stat vid_show (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, CONST char* desc); t_stat vid_screenshot (const char *filename); extern t_bool vid_active; @@ -204,6 +208,10 @@ void vid_set_cursor_position (int32 x, int32 y); /* cursor position (set #define SIM_VID_DBG_KEY 0x04000000 #define SIM_VID_DBG_VIDEO 0x08000000 +#ifdef __cplusplus +} +#endif + #if defined(USE_SIM_VIDEO) && defined(HAVE_LIBSDL) #include #endif /* HAVE_LIBSDL */ diff --git a/slirp/arp_table.c b/slirp/arp_table.c index 372f748b..e7a18e93 100644 --- a/slirp/arp_table.c +++ b/slirp/arp_table.c @@ -24,7 +24,7 @@ #include "slirp.h" -void arp_table_add(Slirp *slirp, uint32_t ip_addr, uint8_t ethaddr[ETH_ALEN]) +void arp_table_add(Slirp *slirp, uint32_t ip_addr, const uint8_t ethaddr[ETH_ALEN]) { const uint32_t broadcast_addr = ~slirp->vnetwork_mask.s_addr | slirp->vnetwork_addr.s_addr; diff --git a/slirp/debug.h b/slirp/debug.h index 243717fe..26edcc91 100644 --- a/slirp/debug.h +++ b/slirp/debug.h @@ -1,5 +1,6 @@ #ifndef SLIRP_DEBUG_H #define SLIRP_DEBUG_H + /* * Copyright (c) 1995 Danny Gasparovski. * @@ -42,10 +43,13 @@ extern int slirp_debug; #include #define DEVICE void +#if defined(__cplusplus) +extern "C" { +#endif extern void *slirp_dptr; extern unsigned int slirp_dbit; -extern void _sim_debug (int dbits, DEVICE* dptr, const char* fmt, ...); +extern void _sim_debug (unsigned int dbits, DEVICE* dptr, const char* fmt, ...); #define DEBUG_CALL(x) do {if (slirp_debug & DBG_CALL) { _sim_debug (slirp_dbit, slirp_dptr, "%s...\n", x); };} while (0) #define DEBUG_ARG(x, y) do {if (slirp_debug & DBG_CALL) {_sim_debug (slirp_dbit, slirp_dptr, x, y); _sim_debug (slirp_dbit, slirp_dptr, "\n"); };} while (0) @@ -54,6 +58,10 @@ extern void _sim_debug (int dbits, DEVICE* dptr, const char* fmt, ...); #define DEBUG_ERROR(...) do {if (slirp_debug & DBG_ERROR) { _sim_debug (slirp_dbit, slirp_dptr, ## __VA_ARGS__); };} while (0) #define DPRINTF(fmt, ...) do {if (slirp_debug & DBG_CALL) { _sim_debug (slirp_dbit, slirp_dptr, fmt, ## __VA_ARGS__); };} while (0) +#if defined(__cplusplus) +} +#endif + #endif #endif diff --git a/slirp/dnssearch.c b/slirp/dnssearch.c index b6ff28d4..71d2f382 100644 --- a/slirp/dnssearch.c +++ b/slirp/dnssearch.c @@ -61,7 +61,7 @@ domain_suffix_diffoff(const CompactDomain *a, const CompactDomain *b) static int domain_suffix_ord(const void *cva, const void *cvb) { - const CompactDomain *a = cva, *b = cvb; + const CompactDomain *a = (const CompactDomain *)cva, *b = (const CompactDomain *)cvb; size_t la = a->len, lb = b->len; size_t doff = domain_suffix_diffoff(a, b); uint8_t ca = a->labels[la - doff]; @@ -252,7 +252,7 @@ int translate_dnssearch(Slirp *s, const char **names) return -2; } - domains = g_malloc(num_domains * sizeof(*domains)); + domains = (CompactDomain *)g_malloc(num_domains * sizeof(*domains)); for (i = 0; i < num_domains; i++) { size_t nlen = strlen(names[i]); @@ -265,7 +265,7 @@ int translate_dnssearch(Slirp *s, const char **names) /* reserve extra 2 header bytes for each 255 bytes of output */ memreq += ((memreq + MAX_OPT_LEN - 1) / MAX_OPT_LEN) * OPT_HEADER_LEN; - result = g_malloc(memreq * sizeof(*result)); + result = (uint8_t *)g_malloc(memreq * sizeof(*result)); outptr = result; for (i = 0; i < num_domains; i++) { diff --git a/slirp/ip_input.c b/slirp/ip_input.c index ba43d7a8..a5b6dcb2 100644 --- a/slirp/ip_input.c +++ b/slirp/ip_input.c @@ -152,8 +152,8 @@ ip_input(struct mbuf *m) * Look for queue of fragments * of this datagram. */ - for (l = slirp->ipq.ip_link.next; l != &slirp->ipq.ip_link; - l = l->next) { + for (l = (struct qlink *)slirp->ipq.ip_link.next; l != &slirp->ipq.ip_link; + l = (struct qlink *)l->next) { fp = container_of(l, struct ipq, ip_link); if (ip->ip_id == fp->ipq_id && ip->ip_src.s_addr == fp->ipq_src.s_addr && @@ -268,8 +268,8 @@ ip_reass(Slirp *slirp, struct ip *ip, struct ipq *fp) /* * Find a segment which begins after this one does. */ - for (q = fp->frag_link.next; q != (struct ipasfrag *)&fp->frag_link; - q = q->ipf_next) + for (q = (struct ipasfrag *)fp->frag_link.next; q != (struct ipasfrag *)&fp->frag_link; + q = (struct ipasfrag *)q->ipf_next) if (q->ipf_off > ip->ip_off) break; @@ -279,7 +279,7 @@ ip_reass(Slirp *slirp, struct ip *ip, struct ipq *fp) * segment. If it provides all of our data, drop us. */ if (q->ipf_prev != &fp->frag_link) { - struct ipasfrag *pq = q->ipf_prev; + struct ipasfrag *pq = (struct ipasfrag *)q->ipf_prev; i = pq->ipf_off + pq->ipf_len - ip->ip_off; if (i > 0) { if (i >= ip->ip_len) @@ -303,9 +303,9 @@ ip_reass(Slirp *slirp, struct ip *ip, struct ipq *fp) m_adj(dtom(slirp, q), i); break; } - q = q->ipf_next; + q = (struct ipasfrag *)q->ipf_next; m_free(dtom(slirp, q->ipf_prev)); - ip_deq(q->ipf_prev); + ip_deq((struct ipasfrag*)q->ipf_prev); } insert: @@ -313,10 +313,10 @@ insert: * Stick new segment in its place; * check for complete reassembly. */ - ip_enq(iptofrag(ip), q->ipf_prev); + ip_enq(iptofrag(ip), (struct ipasfrag*)q->ipf_prev); next = 0; - for (q = fp->frag_link.next; q != (struct ipasfrag*)&fp->frag_link; - q = q->ipf_next) { + for (q = (struct ipasfrag*)fp->frag_link.next; q != (struct ipasfrag*)&fp->frag_link; + q = (struct ipasfrag*)q->ipf_next) { if (q->ipf_off != next) return NULL; next += q->ipf_len; @@ -327,7 +327,7 @@ insert: /* * Reassembly is complete; concatenate fragments. */ - q = fp->frag_link.next; + q = (struct ipasfrag*)fp->frag_link.next; m = dtom(slirp, q); q = (struct ipasfrag *) q->ipf_next; @@ -343,7 +343,7 @@ insert: * dequeue and discard fragment reassembly header. * Make header visible. */ - q = fp->frag_link.next; + q = (struct ipasfrag*)fp->frag_link.next; /* * If the fragments concatenated to an mbuf that's @@ -383,8 +383,8 @@ ip_freef(Slirp *slirp, struct ipq *fp) { register struct ipasfrag *q, *p; - for (q = fp->frag_link.next; q != (struct ipasfrag*)&fp->frag_link; q = p) { - p = q->ipf_next; + for (q = (struct ipasfrag*)fp->frag_link.next; q != (struct ipasfrag*)&fp->frag_link; q = p) { + p = (struct ipasfrag*)q->ipf_next; ip_deq(q); m_free(dtom(slirp, q)); } @@ -429,14 +429,14 @@ ip_slowtimo(Slirp *slirp) DEBUG_CALL("ip_slowtimo"); - l = slirp->ipq.ip_link.next; + l = (struct qlink*)slirp->ipq.ip_link.next; if (l == NULL) return; while (l != &slirp->ipq.ip_link) { struct ipq *fp = container_of(l, struct ipq, ip_link); - l = l->next; + l = (struct qlink*)l->next; if (--fp->ipq_ttl == 0) { ip_freef(slirp, fp); } diff --git a/slirp/misc.c b/slirp/misc.c index b39eb511..8575ec23 100644 --- a/slirp/misc.c +++ b/slirp/misc.c @@ -24,7 +24,7 @@ struct quehead { struct quehead *qh_rlink; }; -inline void +void insque(void *a, void *b) { register struct quehead *element = (struct quehead *) a; @@ -36,7 +36,7 @@ insque(void *a, void *b) = (struct quehead *)element; } -inline void +void remque(void *a) { register struct quehead *element = (struct quehead *) a; @@ -45,7 +45,7 @@ remque(void *a) element->qh_rlink = NULL; } -int add_exec(struct ex_list **ex_ptr, int do_pty, char *exec, +int add_exec(struct ex_list **ex_ptr, int do_pty, const char *exec, struct in_addr addr, int port) { struct ex_list *tmp_ptr; @@ -58,7 +58,7 @@ int add_exec(struct ex_list **ex_ptr, int do_pty, char *exec, } tmp_ptr = *ex_ptr; - *ex_ptr = g_new(struct ex_list, 1); + *ex_ptr = (struct ex_list *)g_new(struct ex_list, 1); (*ex_ptr)->ex_fport = port; (*ex_ptr)->ex_addr = addr; (*ex_ptr)->ex_pty = do_pty; @@ -195,7 +195,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty) } while (c); argv[i] = NULL; - execvp(argv[0], (char **)argv); + execvp(argv[0], (char * const *)argv); /* Ooops, failed, let's tell the user why */ fprintf(stderr, "Error: execvp of %s failed: %s\n", diff --git a/slirp/misc.h b/slirp/misc.h index 83d5f321..c4f77dbc 100644 --- a/slirp/misc.h +++ b/slirp/misc.h @@ -8,6 +8,8 @@ #ifndef _MISC_H_ #define _MISC_H_ +#include "socket.h" + struct ex_list { int ex_pty; /* Do we want a pty? */ struct in_addr ex_addr; /* Server address */ @@ -47,7 +49,7 @@ struct emu_t { void slirp_insque(void *, void *); void slirp_remque(void *); -int add_exec(struct ex_list **, int, char *, struct in_addr, int); +int add_exec(struct ex_list **, int, const char *, struct in_addr, int); int fork_exec(struct socket *so, const char *ex, int do_pty); #endif diff --git a/slirp/slirp.c b/slirp/slirp.c index 8bccef88..0f77771e 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -73,7 +73,7 @@ int get_dns_addr(struct in_addr *pdns_addr) GlobalFree(FixedInfo); FixedInfo = NULL; } - FixedInfo = GlobalAlloc(GPTR, BufLen); + FixedInfo = (FIXED_INFO *)GlobalAlloc(GPTR, BufLen); } if ((ret = GetNetworkParams(FixedInfo, &BufLen)) != ERROR_SUCCESS) { @@ -204,7 +204,7 @@ Slirp *slirp_init(int restricted, struct in_addr vnetwork, struct in_addr vnameserver, const char **vdnssearch, void *opaque) { - Slirp *slirp = g_malloc0(sizeof(Slirp)); + Slirp *slirp = (Slirp *)g_malloc0(sizeof(Slirp)); slirp_init_once(); @@ -544,7 +544,7 @@ void slirp_pollfds_poll(GArray *pollfds, int select_error) /* Connected */ so->so_state &= ~SS_ISFCONNECTING; - ret = send(so->s, (const void *) &ret, 0, 0); + ret = send(so->s, (const char *) &ret, 0, 0); if (ret < 0) { /* XXXXX Must fix, zero bytes is a NOP */ if (errno == EAGAIN || errno == EWOULDBLOCK || @@ -666,7 +666,7 @@ void slirp_pollfds_poll(GArray *pollfds, int select_error) static void arp_input(Slirp *slirp, const uint8_t *pkt, int pkt_len) { - struct arphdr *ah = (struct arphdr *)(pkt + ETH_HLEN); + const struct arphdr *ah = (const struct arphdr *)(pkt + ETH_HLEN); uint8_t arp_reply[max(ETH_HLEN + sizeof(struct arphdr), 64)]; struct ethhdr *reh = (struct ethhdr *)arp_reply; struct arphdr *rah = (struct arphdr *)(arp_reply + ETH_HLEN); @@ -731,7 +731,7 @@ void slirp_input(Slirp *slirp, const uint8_t *pkt, int pkt_len) if (pkt_len < ETH_HLEN) return; - proto = ntohs(*(uint16_t *)(pkt + 12)); + proto = ntohs(*(const uint16_t *)(pkt + 12)); switch(proto) { case ETH_P_ARP: arp_input(slirp, pkt, pkt_len); @@ -888,11 +888,11 @@ int slirp_add_exec(Slirp *slirp, int do_pty, const void *args, ssize_t slirp_send(struct socket *so, const void *buf, size_t len, int flags) { if (so->s == -1 && so->extra) { - qemu_chr_fe_write(so->extra, buf, len); + qemu_chr_fe_write((CharDriverState*)so->extra, (const uint8_t *)buf, len); return len; } - return send(so->s, buf, len, flags); + return send(so->s, (const char *)buf, len, flags); } static struct socket * @@ -1031,7 +1031,7 @@ static void slirp_bootp_save(QEMUFile *f, Slirp *slirp) static void slirp_state_save(QEMUFile *f, void *opaque) { - Slirp *slirp = opaque; + Slirp *slirp = (Slirp *)opaque; struct ex_list *ex_ptr; for (ex_ptr = slirp->exec_list; ex_ptr; ex_ptr = ex_ptr->ex_next) @@ -1158,7 +1158,7 @@ static void slirp_bootp_load(QEMUFile *f, Slirp *slirp) static int slirp_state_load(QEMUFile *f, void *opaque, int version_id) { - Slirp *slirp = opaque; + Slirp *slirp = (Slirp *)opaque; struct ex_list *ex_ptr; while (qemu_get_byte(f)) { diff --git a/slirp/slirp.h b/slirp/slirp.h index 8bd4c99d..f0be1aab 100644 --- a/slirp/slirp.h +++ b/slirp/slirp.h @@ -200,7 +200,7 @@ typedef struct ArpTable { int next_victim; } ArpTable; -void arp_table_add(Slirp *slirp, uint32_t ip_addr, uint8_t ethaddr[ETH_ALEN]); +void arp_table_add(Slirp *slirp, uint32_t ip_addr, const uint8_t ethaddr[ETH_ALEN]); bool arp_table_search(Slirp *slirp, uint32_t ip_addr, uint8_t out_ethaddr[ETH_ALEN]); diff --git a/slirp/socket.c b/slirp/socket.c index 4a60a550..7ed7b9f3 100644 --- a/slirp/socket.c +++ b/slirp/socket.c @@ -65,7 +65,7 @@ sofree(struct socket *so) Slirp *slirp = so->slirp; if (so->so_emu==EMU_RSH && so->extra) { - sofree(so->extra); + sofree((struct socket *)so->extra); so->extra=NULL; } if (so == slirp->tcp_last_so) { diff --git a/slirp/tftp.c b/slirp/tftp.c index 25066ba3..71665486 100644 --- a/slirp/tftp.c +++ b/slirp/tftp.c @@ -136,7 +136,7 @@ static int tftp_send_oack(struct tftp_session *spt, memset(m->m_data, 0, m->m_size); m->m_data += IF_MAXLINKHDR; - tp = (void *)m->m_data; + tp = (struct tftp_t *)m->m_data; m->m_data += sizeof(struct udpiphdr); tp->tp_op = htons(TFTP_OACK); @@ -177,7 +177,7 @@ static void tftp_send_error(struct tftp_session *spt, memset(m->m_data, 0, m->m_size); m->m_data += IF_MAXLINKHDR; - tp = (void *)m->m_data; + tp = (struct tftp_t *)m->m_data; m->m_data += sizeof(struct udpiphdr); tp->tp_op = htons(TFTP_ERROR); @@ -216,7 +216,7 @@ static void tftp_send_next_block(struct tftp_session *spt, memset(m->m_data, 0, m->m_size); m->m_data += IF_MAXLINKHDR; - tp = (void *)m->m_data; + tp = (struct tftp_t *)m->m_data; m->m_data += sizeof(struct udpiphdr); tp->tp_op = htons(TFTP_DATA); @@ -291,7 +291,7 @@ static void tftp_handle_rrq(Slirp *slirp, struct tftp_t *tp, int pktlen) /* prepend tftp_prefix */ prefix_len = strlen(slirp->tftp_prefix); - spt->filename = g_malloc(prefix_len + TFTP_FILENAME_MAX + 2); + spt->filename = (char *)g_malloc(prefix_len + TFTP_FILENAME_MAX + 2); memcpy(spt->filename, slirp->tftp_prefix, prefix_len); spt->filename[prefix_len] = '/'; diff --git a/slirp_glue/config-host.h b/slirp_glue/config-host.h index 67050469..1e737d65 100644 --- a/slirp_glue/config-host.h +++ b/slirp_glue/config-host.h @@ -1,50 +1,53 @@ -#ifndef CONFIG_HOST_H -#define CONFIG_HOST_H - -#include -#include -#include -#ifdef _WIN32 -#include -#else -typedef int SOCKET; -#endif - -typedef int bool; -#ifdef _MSC_VER -#include -#else -#include -#endif -#include -#define qemu_add_child_watch(pid) -int qemu_setsockopt (int s, int level, int optname, void *optval, int optlen); -int qemu_recv (int s, void *buf, size_t len, int flags); -#ifdef _MSC_VER -#define snprintf _snprintf -#define strcasecmp stricmp -#else -#ifndef _WIN32 -#define CONFIG_IOVEC 1 -#endif -#endif -#define register_savevm(p1, p2, p3, p4, p5, p6, p7) -#define unregister_savevm(p1, p2, p3) -#define qemu_put_be16(p1, p2) -#define qemu_put_sbe16(p1, p2) -#define qemu_put_be32(p1, p2) -#define qemu_put_sbe32(p1, p2) -#define qemu_put_byte(p1, p2) -#define qemu_put_sbyte(p1, p2) -#define qemu_put_buffer(p1, p2, p3) - -#define qemu_get_be16(p1) 0 -#define qemu_get_sbe16(p1) 0 -#define qemu_get_be32(p1) 0 -#define qemu_get_sbe32(p1) 0 -#define qemu_get_byte(p1) 0 -#define qemu_get_sbyte(p1) 0 -#define qemu_get_buffer(p1, p2, p3) -#define error_report(...) fprintf(stderr, __VA_ARGS__) - -#endif +#ifndef CONFIG_HOST_H +#define CONFIG_HOST_H + +#include +#include +#include +#ifdef _WIN32 +#include +#else +typedef int SOCKET; +#endif + +#ifndef __cplusplus +typedef int bool; +#endif +#ifdef _MSC_VER +#include +#else +#include +#endif +#include +#define qemu_add_child_watch(pid) +int qemu_setsockopt (int s, int level, int optname, void *optval, int optlen); +int qemu_recv (int s, void *buf, size_t len, int flags); +#ifdef _MSC_VER +#define snprintf _snprintf +#define strcasecmp stricmp +#define inline +#else +#ifndef _WIN32 +#define CONFIG_IOVEC 1 +#endif +#endif +#define register_savevm(p1, p2, p3, p4, p5, p6, p7) +#define unregister_savevm(p1, p2, p3) +#define qemu_put_be16(p1, p2) +#define qemu_put_sbe16(p1, p2) +#define qemu_put_be32(p1, p2) +#define qemu_put_sbe32(p1, p2) +#define qemu_put_byte(p1, p2) +#define qemu_put_sbyte(p1, p2) +#define qemu_put_buffer(p1, p2, p3) + +#define qemu_get_be16(p1) 0 +#define qemu_get_sbe16(p1) 0 +#define qemu_get_be32(p1) 0 +#define qemu_get_sbe32(p1) 0 +#define qemu_get_byte(p1) 0 +#define qemu_get_sbyte(p1) 0 +#define qemu_get_buffer(p1, p2, p3) +#define error_report(...) fprintf(stderr, __VA_ARGS__) + +#endif diff --git a/slirp_glue/glib_qemu_stubs.c b/slirp_glue/glib_qemu_stubs.c index ec7e5779..ab1e5a32 100644 --- a/slirp_glue/glib_qemu_stubs.c +++ b/slirp_glue/glib_qemu_stubs.c @@ -48,7 +48,7 @@ gpointer g_malloc (gsize n_bytes) { -gpointer ret = malloc (n_bytes); +gpointer ret = (gpointer)malloc (n_bytes); if (!ret) exit (errno); @@ -58,7 +58,7 @@ return ret; gpointer g_malloc0 (gsize n_bytes) { -gpointer ret = calloc (1, n_bytes); +gpointer ret = (gpointer)calloc (1, n_bytes); if (!ret) exit (errno); @@ -68,7 +68,7 @@ return ret; gpointer g_realloc (gpointer mem, gsize n_bytes) { -gpointer ret = realloc (mem, n_bytes); +gpointer ret = (gpointer)realloc (mem, n_bytes); if (!ret) exit (errno); @@ -129,7 +129,7 @@ return setsockopt ((SOCKET)s, level, optname, (char *)optval, optlen); int qemu_recv (int s, void *buf, size_t len, int flags) { -return recv ((SOCKET)s, buf, len, flags); +return recv ((SOCKET)s, (char *)buf, len, flags); } int socket_set_nodelay(int fd) @@ -165,6 +165,9 @@ int socket_set_fast_reuse(int fd) return ret; } +#if defined(__cplusplus) +extern "C" { +#endif #include #ifdef _WIN32 int64_t qemu_clock_get_ns(int type) @@ -193,6 +196,9 @@ int64_t qemu_clock_get_ns(int type) return tv.tv_sec * 1000000000LL + tv.tv_nsec; } #endif +#if defined(__cplusplus) +} +#endif void monitor_printf(Monitor *mon, const char *fmt, ...) { @@ -226,35 +232,6 @@ void qemu_notify_event(void) { } -#if defined(_MSC_VER) - -struct quehead { - struct quehead *qh_link; - struct quehead *qh_rlink; -}; - -void -slirp_insque(void *a, void *b) -{ - register struct quehead *element = (struct quehead *) a; - register struct quehead *head = (struct quehead *) b; - element->qh_link = head->qh_link; - head->qh_link = (struct quehead *)element; - element->qh_rlink = (struct quehead *)head; - ((struct quehead *)(element->qh_link))->qh_rlink - = (struct quehead *)element; -} - -void -slirp_remque(void *a) -{ - register struct quehead *element = (struct quehead *) a; - ((struct quehead *)(element->qh_link))->qh_rlink = element->qh_rlink; - ((struct quehead *)(element->qh_rlink))->qh_link = element->qh_link; - element->qh_rlink = NULL; -} -#endif - #if defined(_WIN32) int inet_aton(const char *arg, struct in_addr *addr) @@ -282,15 +259,15 @@ g_array_sized_new (gboolean zero_terminated, guint element_size, guint reserved_size) { -GArrayInternal *ar = g_malloc (sizeof (*ar)); +GArrayInternal *ar = (GArrayInternal *)g_malloc (sizeof (*ar)); ar->_zero_terminated = zero_terminated ? 1 : 0; ar->_clear = clear ? 1 : 0; ar->_element_size = element_size; ar->_size = reserved_size; ar->len = 0; -ar->data = clear ? g_malloc0 (element_size*(reserved_size + zero_terminated)) : - g_malloc (element_size*(reserved_size + zero_terminated)); +ar->data = clear ? (gchar *)g_malloc0 (element_size*(reserved_size + zero_terminated)) : + (gchar *)g_malloc (element_size*(reserved_size + zero_terminated)); if (ar->_zero_terminated && !ar->_clear) memset (ar->data + (ar->len * ar->_element_size), 0, ar->_element_size); return (GArray *)ar; @@ -317,7 +294,7 @@ g_array_set_size (GArray *array, GArrayInternal *ar = (GArrayInternal *)array; if (length > ar->_size) { - ar->data = g_realloc (ar->data, (length + ar->_zero_terminated) * ar->_element_size); + ar->data = (gchar *)g_realloc (ar->data, (length + ar->_zero_terminated) * ar->_element_size); if (ar->_clear) memset (ar->data + (ar->len * ar->_element_size), 0, (length + ar->_zero_terminated - ar->len) * ar->_element_size); ar->_size = length; @@ -336,7 +313,7 @@ g_array_append_vals (GArray *array, GArrayInternal *ar = (GArrayInternal *)array; if ((ar->len + len) > ar->_size) { - ar->data = g_realloc (ar->data, (ar->len + len + ar->_zero_terminated) * ar->_element_size); + ar->data = (gchar *)g_realloc (ar->data, (ar->len + len + ar->_zero_terminated) * ar->_element_size); ar->_size = ar->len + len; } memcpy (ar->data + (ar->len * ar->_element_size), data, len * ar->_element_size); diff --git a/slirp_glue/qemu/timer.h b/slirp_glue/qemu/timer.h index d8b90462..2a429139 100644 --- a/slirp_glue/qemu/timer.h +++ b/slirp_glue/qemu/timer.h @@ -70,7 +70,13 @@ typedef enum { * * Returns: the clock value in nanoseconds */ +#if defined(__cplusplus) +extern "C" { +#endif int64_t qemu_clock_get_ns(QEMUClockType type); +#if defined(__cplusplus) +} +#endif /** * qemu_clock_get_ms; diff --git a/slirp_glue/sim_slirp.c b/slirp_glue/sim_slirp.c index 0bd5dacf..339d260f 100644 --- a/slirp_glue/sim_slirp.c +++ b/slirp_glue/sim_slirp.c @@ -66,16 +66,19 @@ struct redir_tcp_udp { }; static int -_parse_redirect_port (struct redir_tcp_udp **head, char *buff, int is_udp) +_parse_redirect_port (struct redir_tcp_udp **head, const char *buff, int is_udp) { +char gbuf[4*CBUFSIZE]; uint32 inaddr = 0; int port = 0; int lport = 0; char *ipaddrstr = NULL; char *portstr = NULL; -struct redir_tcp_udp *new; - -if (((ipaddrstr = strchr(buff, ':')) == NULL) || (*(ipaddrstr+1) == 0)) { +struct redir_tcp_udp *newp; + +gbuf[sizeof(gbuf)-1] = '\0'; +strncpy (gbuf, buff, sizeof(gbuf)-1); +if (((ipaddrstr = strchr(gbuf, ':')) == NULL) || (*(ipaddrstr+1) == 0)) { sim_printf ("redir %s syntax error\n", tcpudp[is_udp]); return -1; } @@ -87,7 +90,7 @@ if (((portstr = strchr (ipaddrstr, ':')) == NULL) || (*(portstr+1) == 0)) { } *portstr++ = 0; -sscanf (buff, "%d", &lport); +sscanf (gbuf, "%d", &lport); sscanf (portstr, "%d", &port); if (ipaddrstr) inaddr = inet_addr (ipaddrstr); @@ -97,15 +100,15 @@ if (!inaddr) { return -1; } -if ((new = g_malloc (sizeof(struct redir_tcp_udp))) == NULL) +if ((newp = (struct redir_tcp_udp *)g_malloc (sizeof(struct redir_tcp_udp))) == NULL) return -1; else { - inet_aton (ipaddrstr, &new->inaddr); - new->is_udp = is_udp; - new->port = port; - new->lport = lport; - new->next = *head; - *head = new; + inet_aton (ipaddrstr, &newp->inaddr); + newp->is_udp = is_udp; + newp->port = port; + newp->lport = lport; + newp->next = *head; + *head = newp; return 0; } } @@ -127,6 +130,11 @@ if (head) { return ret; } +struct slirp_write_request { + struct slirp_write_request *next; + char msg[1518]; + size_t len; + }; struct sim_slirp { Slirp *slirp; @@ -145,12 +153,8 @@ struct sim_slirp { struct redir_tcp_udp *rtcp; GArray *gpollfds; SOCKET db_chime; /* write packet doorbell */ - struct write_request { - struct write_request *next; - char msg[1518]; - size_t len; - } *write_requests; - struct write_request *write_buffers; + struct slirp_write_request *write_requests; + struct slirp_write_request *write_buffers; pthread_mutex_t write_buffer_lock; void *opaque; /* opaque value passed during packet delivery */ packet_callback callback; /* slirp arriving packet delivery callback */ @@ -158,16 +162,22 @@ struct sim_slirp { uint32 dbit; }; +#if defined(__cplusplus) +extern "C" { +#endif DEVICE *slirp_dptr; uint32 slirp_dbit; +#if defined(__cplusplus) +} +#endif SLIRP *sim_slirp_open (const char *args, void *opaque, packet_callback callback, DEVICE *dptr, uint32 dbit) { SLIRP *slirp = (SLIRP *)g_malloc0(sizeof(*slirp)); char *targs = g_strdup (args); -char *tptr = targs; -char *cptr; -char tbuf[CBUFSIZE], gbuf[CBUFSIZE]; +const char *tptr = targs; +const char *cptr; +char tbuf[CBUFSIZE], gbuf[CBUFSIZE], abuf[CBUFSIZE]; int err; slirp_dptr = dptr; @@ -231,7 +241,7 @@ while (*tptr && !err) { name = slirp->dns_search; do { ++count; - slirp->dns_search_domains = realloc (slirp->dns_search_domains, (count + 1)*sizeof(char *)); + slirp->dns_search_domains = (char **)realloc (slirp->dns_search_domains, (count + 1)*sizeof(char *)); slirp->dns_search_domains[count] = NULL; slirp->dns_search_domains[count-1] = name; name = strchr (name, ':'); @@ -249,12 +259,10 @@ while (*tptr && !err) { } if (0 == MATCH_CMD (gbuf, "GATEWAY")) { if (cptr && *cptr) { - char *slash = strchr (cptr, '/'); - if (slash) { - slirp->maskbits = atoi (slash+1); - *slash = '\0'; - } - inet_aton (cptr, &slirp->vgateway); + cptr = get_glyph (cptr, abuf, '/'); + if (cptr && *cptr) + slirp->maskbits = atoi (cptr); + inet_aton (abuf, &slirp->vgateway); } else { sim_printf ("Missing host\n"); @@ -264,12 +272,10 @@ while (*tptr && !err) { } if (0 == MATCH_CMD (gbuf, "NETWORK")) { if (cptr && *cptr) { - char *slash = strchr (cptr, '/'); - if (slash) { - slirp->maskbits = atoi (slash+1); - *slash = '\0'; - } - inet_aton (cptr, &slirp->vnetwork); + cptr = get_glyph (cptr, abuf, '/'); + if (cptr && *cptr) + slirp->maskbits = atoi (cptr); + inet_aton (abuf, &slirp->vnetwork); } else { sim_printf ("Missing network\n"); @@ -328,7 +334,7 @@ if (_do_redirects (slirp->slirp, slirp->rtcp)) { else { char db_host[32]; GPollFD pfd; - int64_t rnd_val = qemu_clock_get_ns (0) / 1000000; + int64_t rnd_val = qemu_clock_get_ns ((QEMUClockType)0) / 1000000; pthread_mutex_init (&slirp->write_buffer_lock, NULL); slirp->gpollfds = g_array_new(FALSE, FALSE, sizeof(GPollFD)); @@ -375,7 +381,7 @@ if (slirp) { if (slirp->db_chime != INVALID_SOCKET) closesocket (slirp->db_chime); if (1) { - struct write_request *buffer; + struct slirp_write_request *buffer; while (NULL != (buffer = slirp->write_buffers)) { slirp->write_buffers = buffer->next; @@ -442,7 +448,7 @@ return SCPE_OK; int sim_slirp_send (SLIRP *slirp, const char *msg, size_t len, int flags) { -struct write_request *request; +struct slirp_write_request *request; int wake_needed = 0; /* Get a buffer */ @@ -451,7 +457,7 @@ if (NULL != (request = slirp->write_buffers)) slirp->write_buffers = request->next; pthread_mutex_unlock (&slirp->write_buffer_lock); if (NULL == request) - request = (struct write_request *)g_malloc(sizeof(*request)); + request = (struct slirp_write_request *)g_malloc(sizeof(*request)); /* Copy buffer contents */ request->len = len; @@ -462,7 +468,7 @@ memcpy(request->msg, msg, len); pthread_mutex_lock (&slirp->write_buffer_lock); request->next = NULL; if (slirp->write_requests) { - struct write_request *last_request = slirp->write_requests; + struct slirp_write_request *last_request = slirp->write_requests; while (last_request->next) { last_request = last_request->next; @@ -623,7 +629,7 @@ return select_ret + 1; /* Force dispatch even on timeout */ void sim_slirp_dispatch (SLIRP *slirp) { -struct write_request *request; +struct slirp_write_request *request; /* first deliver any transmit packets which are pending */ diff --git a/swtp6800/common/bootrom.c b/swtp6800/common/bootrom.c index 426d91f1..d081c749 100644 --- a/swtp6800/common/bootrom.c +++ b/swtp6800/common/bootrom.c @@ -66,8 +66,8 @@ /* function prototypes */ t_stat BOOTROM_svc (UNIT *uptr); -t_stat BOOTROM_config (UNIT *uptr, int32 val, char *cptr, void *desc); -t_stat BOOTROM_attach (UNIT *uptr, char *cptr); +t_stat BOOTROM_config (UNIT *uptr, int32 val, CONST char *cptr, void *desc); +t_stat BOOTROM_attach (UNIT *uptr, CONST char *cptr); t_stat BOOTROM_reset (DEVICE *dptr); int32 BOOTROM_get_mbyte(int32 offset); @@ -130,7 +130,7 @@ DEVICE BOOTROM_dev = { /* BOOTROM_attach - attach file to EPROM unit */ -t_stat BOOTROM_attach (UNIT *uptr, char *cptr) +t_stat BOOTROM_attach (UNIT *uptr, CONST char *cptr) { t_stat r; t_addr image_size, capac; @@ -155,7 +155,7 @@ t_stat BOOTROM_attach (UNIT *uptr, char *cptr) /* BOOTROM_config = None, 2704, 2708, 2716, 2732 or 2764 */ -t_stat BOOTROM_config (UNIT *uptr, int32 val, 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? */ diff --git a/swtp6800/common/i2716.c b/swtp6800/common/i2716.c index 8db16414..85907866 100644 --- a/swtp6800/common/i2716.c +++ b/swtp6800/common/i2716.c @@ -53,7 +53,7 @@ extern int32 get_base(void); /* function prototypes */ -t_stat i2716_attach (UNIT *uptr, char *cptr); +t_stat i2716_attach (UNIT *uptr, CONST char *cptr); t_stat i2716_reset (DEVICE *dptr); int32 i2716_get_mbyte(int32 offset); @@ -110,7 +110,7 @@ DEVICE i2716_dev = { /* i2716_attach - attach file to EPROM unit force EPROM reset at completion */ -t_stat i2716_attach (UNIT *uptr, char *cptr) +t_stat i2716_attach (UNIT *uptr, CONST char *cptr) { int32 j, c; t_stat r; diff --git a/swtp6800/common/m6800.c b/swtp6800/common/m6800.c index 8018c62c..9e998fdc 100644 --- a/swtp6800/common/m6800.c +++ b/swtp6800/common/m6800.c @@ -1924,7 +1924,7 @@ t_stat m6800_reset (DEVICE *dptr) takes the address from the hex record or the current PC for binary. */ -t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag) +t_stat sim_load (FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { int32 i, addr = 0, cnt = 0; @@ -2011,7 +2011,7 @@ t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw) status = error status */ -t_stat parse_sym (char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) +t_stat parse_sym (CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { return (-2); }