Replaced SWTBUG.BIN, fixed error in common/mp-s.c, and removed debugging

statements from common.m6800.c.  This version works in GIT release 4.0.
This commit is contained in:
Bill Beech 2012-07-08 15:50:41 -07:00
parent 567a304c37
commit e0d8de9de7
2 changed files with 18 additions and 8 deletions

View file

@ -318,8 +318,10 @@ int32 sim_instr (void)
while (reason == 0) { /* loop until halted */ while (reason == 0) { /* loop until halted */
// dump_regs1(); // dump_regs1();
if (sim_interval <= 0) /* check clock queue */ if (sim_interval <= 0) /* check clock queue */
if (reason = sim_process_event ()) if (reason = sim_process_event ()) {
// printf("sim_process_event()=%08X\n", reason);
break; break;
}
if (mem_fault) { /* memory fault? */ if (mem_fault) { /* memory fault? */
mem_fault = 0; /* reset fault flag */ mem_fault = 0; /* reset fault flag */
reason = STOP_MEMORY; reason = STOP_MEMORY;

View file

@ -1,6 +1,6 @@
/* mp-s.c: SWTP MP-S serial I/O card emulator /* mp-s.c: SWTP MP-S serial I/O card simulator
Copyright (c) 2005-2011, William Beech Copyright (c) 2005-2012, William Beech
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@ -136,6 +136,7 @@ DEVICE ptr_dev = {
UNIT ptp_unit = { UDATA (&ptp_svc, UNIT_SEQ + UNIT_ATTABLE, 0), KBD_POLL_WAIT UNIT ptp_unit = { UDATA (&ptp_svc, UNIT_SEQ + UNIT_ATTABLE, 0), KBD_POLL_WAIT
}; };
DEVICE ptp_dev = { DEVICE ptp_dev = {
"PTP", &ptp_unit, NULL, NULL, "PTP", &ptp_unit, NULL, NULL,
1, 10, 31, 1, 8, 8, 1, 10, 31, 1, 8, 8,
@ -149,13 +150,17 @@ int32 sio_svc (UNIT *uptr)
{ {
int32 temp; int32 temp;
// printf("+++sio_svc() sio_unit.wait=%08X\n", sio_unit.wait);
sim_activate (&sio_unit, sio_unit.wait); // continue poll sim_activate (&sio_unit, sio_unit.wait); // continue poll
if ((temp = sim_poll_kbd ()) < SCPE_KFLAG) if ((temp = sim_poll_kbd ()) < SCPE_KFLAG) {
// printf("sim_poll_kbd()=%08X\n", temp);
return temp; // no char or error? return temp; // no char or error?
}
sio_unit.buf = temp & 0xFF; // Save char sio_unit.buf = temp & 0xFF; // Save char
sio_unit.u3 |= 0x01; // Set RXF flag sio_unit.u3 |= 0x01; // Set RXF flag
/* Do any special character handling here */ /* Do any special character handling here */
sio_unit.pos++; // step character count sio_unit.pos++; // step character count
// printf("SCPE_OK with sio_unit.pos=%08X\n", sio_unit.pos);
return SCPE_OK; return SCPE_OK;
} }
@ -165,6 +170,7 @@ int32 ptr_svc (UNIT *uptr)
{ {
int32 temp; int32 temp;
// printf("+++ptr_svc()\n");
sim_activate (&ptr_unit, ptr_unit.wait); // continue poll sim_activate (&ptr_unit, ptr_unit.wait); // continue poll
if ((temp = sim_poll_kbd ()) < SCPE_KFLAG) if ((temp = sim_poll_kbd ()) < SCPE_KFLAG)
return temp; // no char or error? return temp; // no char or error?
@ -179,6 +185,7 @@ int32 ptr_svc (UNIT *uptr)
int32 ptp_svc (UNIT *uptr) int32 ptp_svc (UNIT *uptr)
{ {
// printf("+++ptp_svc()\n");
return SCPE_OK; return SCPE_OK;
} }
@ -188,6 +195,7 @@ int32 sio_reset (DEVICE *dptr)
{ {
sio_unit.buf = 0; // Data buffer sio_unit.buf = 0; // Data buffer
sio_unit.u3 = 0x02; // Status buffer sio_unit.u3 = 0x02; // Status buffer
sio_unit.wait = 10000;
sim_activate (&sio_unit, sio_unit.wait); // activate unit sim_activate (&sio_unit, sio_unit.wait); // activate unit
return SCPE_OK; return SCPE_OK;
} }
@ -198,8 +206,8 @@ int32 ptr_reset (DEVICE *dptr)
{ {
ptr_unit.buf = 0; ptr_unit.buf = 0;
ptr_unit.u3 = 0x02; ptr_unit.u3 = 0x02;
sim_activate (&ptr_unit, ptr_unit.wait); // activate unit // sim_activate (&ptr_unit, ptr_unit.wait); // activate unit
// sim_cancel (&ptr_unit); // deactivate unit sim_cancel (&ptr_unit); // deactivate unit
return SCPE_OK; return SCPE_OK;
} }
@ -209,8 +217,8 @@ int32 ptp_reset (DEVICE *dptr)
{ {
ptp_unit.buf = 0; ptp_unit.buf = 0;
ptp_unit.u3 = 0x02; ptp_unit.u3 = 0x02;
sim_activate (&ptp_unit, ptp_unit.wait); // activate unit // sim_activate (&ptp_unit, ptp_unit.wait); // activate unit
// sim_cancel (&ptp_unit); // deactivate unit sim_cancel (&ptp_unit); // deactivate unit
return SCPE_OK; return SCPE_OK;
} }