fix for crash due to logging changes
This commit is contained in:
parent
1dfb1ab325
commit
a000df36b8
3 changed files with 32 additions and 16 deletions
|
@ -104,11 +104,11 @@ void setBootLoader(bus *const b, const bootloader_t which)
|
||||||
c -> setRegister(7, offset);
|
c -> setRegister(7, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t loadTape(bus *const b, const char *const file)
|
uint16_t loadTape(bus *const b, const std::string & file)
|
||||||
{
|
{
|
||||||
FILE *fh = fopen(file, "rb");
|
FILE *fh = fopen(file.c_str(), "rb");
|
||||||
if (!fh) {
|
if (!fh) {
|
||||||
DOLOG(ll_error, true, "Cannot open %s", file);
|
DOLOG(ll_error, true, "Cannot open %s", file.c_str());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,5 +8,5 @@ typedef enum { BL_NONE, BL_RK05, BL_RL02 } bootloader_t;
|
||||||
|
|
||||||
void loadbin(bus *const b, uint16_t base, const char *const file);
|
void loadbin(bus *const b, uint16_t base, const char *const file);
|
||||||
void setBootLoader(bus *const b, const bootloader_t which);
|
void setBootLoader(bus *const b, const bootloader_t which);
|
||||||
uint16_t loadTape(bus *const b, const char *const file);
|
uint16_t loadTape(bus *const b, const std::string & file);
|
||||||
void load_p11_x11(bus *const b, const std::string & file);
|
void load_p11_x11(bus *const b, const std::string & file);
|
||||||
|
|
40
main.cpp
40
main.cpp
|
@ -57,15 +57,6 @@ int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
//setlocale(LC_ALL, "");
|
//setlocale(LC_ALL, "");
|
||||||
|
|
||||||
bus *b = new bus();
|
|
||||||
|
|
||||||
cpu *c = new cpu(b, &event);
|
|
||||||
b->add_cpu(c);
|
|
||||||
|
|
||||||
kw11_l *lf = new kw11_l(b);
|
|
||||||
|
|
||||||
c -> setEmulateMFPT(true);
|
|
||||||
|
|
||||||
std::vector<std::string> rk05_files;
|
std::vector<std::string> rk05_files;
|
||||||
std::vector<std::string> rl02_files;
|
std::vector<std::string> rl02_files;
|
||||||
|
|
||||||
|
@ -79,6 +70,13 @@ int main(int argc, char *argv[])
|
||||||
log_level_t ll_screen = none;
|
log_level_t ll_screen = none;
|
||||||
log_level_t ll_file = none;
|
log_level_t ll_file = none;
|
||||||
|
|
||||||
|
bool mode_34 = false;
|
||||||
|
|
||||||
|
uint16_t start_addr= 01000;
|
||||||
|
bool sa_set = false;
|
||||||
|
|
||||||
|
std::string tape;
|
||||||
|
|
||||||
int opt = -1;
|
int opt = -1;
|
||||||
while((opt = getopt(argc, argv, "hm:T:r:R:p:ndtL:b:l:3")) != -1)
|
while((opt = getopt(argc, argv, "hm:T:r:R:p:ndtL:b:l:3")) != -1)
|
||||||
{
|
{
|
||||||
|
@ -88,7 +86,7 @@ int main(int argc, char *argv[])
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
case '3':
|
case '3':
|
||||||
c->set_34(true); // switch from 11/70 to 11/34
|
mode_34 = true; // switch from 11/70 to 11/34
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'b':
|
case 'b':
|
||||||
|
@ -114,7 +112,7 @@ int main(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'T':
|
case 'T':
|
||||||
c->setRegister(7, loadTape(b, optarg));
|
tape = optarg;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'R':
|
case 'R':
|
||||||
|
@ -126,7 +124,8 @@ int main(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'p':
|
case 'p':
|
||||||
c->setRegister(7, atoi(optarg));
|
start_addr = atoi(optarg);
|
||||||
|
sa_set = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'L': {
|
case 'L': {
|
||||||
|
@ -154,8 +153,25 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
setlog(logfile, ll_file, ll_screen);
|
setlog(logfile, ll_file, ll_screen);
|
||||||
|
|
||||||
|
bus *b = new bus();
|
||||||
|
|
||||||
|
cpu *c = new cpu(b, &event);
|
||||||
|
b->add_cpu(c);
|
||||||
|
|
||||||
|
c->set_34(mode_34);
|
||||||
|
|
||||||
|
kw11_l *lf = new kw11_l(b);
|
||||||
|
|
||||||
|
c->setEmulateMFPT(true);
|
||||||
|
|
||||||
std::atomic_bool interrupt_emulation { false };
|
std::atomic_bool interrupt_emulation { false };
|
||||||
|
|
||||||
|
if (tape.empty() == false)
|
||||||
|
c->setRegister(7, loadTape(b, tape));
|
||||||
|
|
||||||
|
if (sa_set)
|
||||||
|
c->setRegister(7, start_addr);
|
||||||
|
|
||||||
if (withUI)
|
if (withUI)
|
||||||
cnsl = new console_ncurses(&event, b);
|
cnsl = new console_ncurses(&event, b);
|
||||||
else {
|
else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue