Minor PCx86 Debugger-related improvements

This commit is contained in:
Jeff Parsons 2017-08-02 19:02:23 -07:00 committed by Jeff Parsons
commit d0052eb7cd
13 changed files with 1081 additions and 1032 deletions

View file

@ -10,7 +10,7 @@
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga-keygrid.xml"/>
<fdc ref="/disks/pcx86/compiled/library.xml"/>
<keyboard ref="/devices/pcx86/keyboard/us83-buttons-minimal.xml"/>
<keyboard ref="/devices/pcx86/keyboard/us83-buttons-arrows.xml"/>
<debugger id="debugger"/>
<panel ref="/devices/pcx86/panel/wide.xml"/>
<hdc ref="/disks/pcx86/fixed/10mb/pcdos200-empty.xml"/>

View file

@ -49,7 +49,7 @@ concurrent execution of multiple applications.
The machine below is configured to automatically start TopView 1.01 on top of PC-DOS 2.00. No mouse driver is loaded,
so you must use TopView's "Keyboard Mouse" support: arrow keys move the cursor and **Home**, **PgUp**, and **Alt**
act as mouse buttons.
act as mouse buttons. The machine is also available with the [PCjs Debugger](debugger/).
{% include machine.html id="ibm5160" %}

View file

@ -0,0 +1,36 @@
---
layout: page
title: "TopView 1.01 (With Debugger)"
permalink: /disks/pcx86/apps/ibm/topview/1.01/debugger/
machines:
- id: ibm5160
type: pcx86
config: /devices/pcx86/machine/5160/cga/640kb/debugger/machine.xml
autoMount:
A:
path: /disks/pcx86/dos/ibm/2.00/PCDOS200-DISK1.json
B:
path: /disks/pcx86/apps/ibm/topview/1.01/TOPVIEW101-PROGRAM.json
autoScript: startKbd
machineScripts:
startKbd: |
wait Keyboard DOS;
type Keyboard "$date\r$time\rB:\rTV\r";
startMouse: |
wait Keyboard DOS;
type Keyboard "$date\r$time\r";
wait Keyboard;
sleep 1000;
select FDC listDrives "A:";
select FDC listDisks "MS Mouse 5.00 (System)";
loadDisk FDC;
wait FDC;
type Keyboard "MOUSE\r";
sleep 5000;
type Keyboard "B:\rTV\r";
---
TopView 1.01 (With Debugger)
----------------------------
{% include machine.html id="ibm5160" %}

View file

@ -18,7 +18,7 @@ TopView 1.10
------------
NOTE: This disk image is from the PCjs disk collection. Presumably, as in [TopView 1.01](../1.01/), there was a
second (Tutorial) disk, but we don't have a copy of it.
second (Tutorial) disk, but we don't have a copy of it. The machine below is also available with the [PCjs Debugger](debugger/).
{% include machine.html id="ibm5160" %}

View file

@ -0,0 +1,20 @@
---
layout: page
title: "TopView 1.10 (With Debugger)"
permalink: /disks/pcx86/apps/ibm/topview/1.10/debugger/
machines:
- id: ibm5160
type: pcx86
config: /devices/pcx86/machine/5160/cga/640kb/debugger/machine.xml
autoMount:
A:
path: /disks/pcx86/dos/ibm/2.00/PCDOS200-DISK1.json
B:
path: /disks/pcx86/apps/ibm/topview/1.10/TOPVIEW110.json
autoType: \r\rb:\rtv\r
---
TopView 1.10 (With Debugger)
----------------------------
{% include machine.html id="ibm5160" %}

File diff suppressed because it is too large Load diff

View file

@ -769,7 +769,7 @@ class Computer extends Component {
* "ibm5160", enabling us to find objects that match the original machine ID
* (eg, "ibm5160.romEGA").
*
* See /devices/pcx86/machine/5160/ega/640kb/array/ for examples of this.
* See /devices/pcx86/machine/5160/ega/640kb/array for examples of this.
*/
data = stateComputer.get(component.id.replace(/-[0-9]+\./i, '.'));
}

View file

@ -1213,15 +1213,16 @@ class CPU extends Component {
* For use by any component that wants to start the CPU.
*
* @param {boolean} [fUpdateFocus]
* @param {boolean} [fQuiet]
* @return {boolean}
*/
startCPU(fUpdateFocus)
startCPU(fUpdateFocus, fQuiet)
{
if (this.isError()) {
return false;
}
if (this.flags.running) {
this.println(this.toString() + " busy");
if (!fQuiet) this.println(this.toString() + " busy");
return false;
}
/*

View file

@ -2698,15 +2698,16 @@ class DebuggerX86 extends Debugger {
* startCPU(fUpdateFocus, fQuiet)
*
* @this {DebuggerX86}
* @param {boolean} [fUpdateFocus] is true to update focus
* @param {boolean} [fUpdateFocus]
* @param {boolean} [fQuiet]
* @return {boolean} true if run request successful, false if not
*/
startCPU(fUpdateFocus, fQuiet)
{
if (!this.checkCPU(fQuiet)) return false;
this.cpu.startCPU(fUpdateFocus);
return true;
if (this.checkCPU(fQuiet)) {
return this.cpu.startCPU(fUpdateFocus, fQuiet);
}
return false;
}
/**
@ -2769,10 +2770,11 @@ class DebuggerX86 extends Debugger {
*
* @this {DebuggerX86}
* @param {boolean} [fComplete]
* @return {boolean}
*/
stopCPU(fComplete)
{
if (this.cpu) this.cpu.stopCPU(fComplete);
return this.cpu && this.cpu.stopCPU(fComplete) || false;
}
/**
@ -5089,15 +5091,10 @@ class DebuggerX86 extends Debugger {
*/
doHalt(fQuiet)
{
var sMsg;
if (this.flags.running) {
sMsg = "halting";
this.stopCPU();
} else {
if (!this.stopCPU()) {
if (this.isBusy(true)) return;
sMsg = "already halted";
if (!fQuiet) this.println("already halted");
}
if (!fQuiet) this.println(sMsg);
}
/**
@ -5929,9 +5926,7 @@ class DebuggerX86 extends Debugger {
this.parseAddrOptions(dbgAddr, sOptions);
this.setTempBreakpoint(dbgAddr);
}
if (!this.startCPU(true)) {
if (!fQuiet) this.println("cpu busy or unavailable, run command ignored");
}
this.startCPU(true, fQuiet);
}
/**

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -12931,15 +12931,16 @@ class CPU extends Component {
* For use by any component that wants to start the CPU.
*
* @param {boolean} [fUpdateFocus]
* @param {boolean} [fQuiet]
* @return {boolean}
*/
startCPU(fUpdateFocus)
startCPU(fUpdateFocus, fQuiet)
{
if (this.isError()) {
return false;
}
if (this.flags.running) {
this.println(this.toString() + " busy");
if (!fQuiet) this.println(this.toString() + " busy");
return false;
}
/*
@ -69527,15 +69528,16 @@ class DebuggerX86 extends Debugger {
* startCPU(fUpdateFocus, fQuiet)
*
* @this {DebuggerX86}
* @param {boolean} [fUpdateFocus] is true to update focus
* @param {boolean} [fUpdateFocus]
* @param {boolean} [fQuiet]
* @return {boolean} true if run request successful, false if not
*/
startCPU(fUpdateFocus, fQuiet)
{
if (!this.checkCPU(fQuiet)) return false;
this.cpu.startCPU(fUpdateFocus);
return true;
if (this.checkCPU(fQuiet)) {
return this.cpu.startCPU(fUpdateFocus, fQuiet);
}
return false;
}
/**
@ -69598,10 +69600,11 @@ class DebuggerX86 extends Debugger {
*
* @this {DebuggerX86}
* @param {boolean} [fComplete]
* @return {boolean}
*/
stopCPU(fComplete)
{
if (this.cpu) this.cpu.stopCPU(fComplete);
return this.cpu && this.cpu.stopCPU(fComplete) || false;
}
/**
@ -71918,15 +71921,10 @@ class DebuggerX86 extends Debugger {
*/
doHalt(fQuiet)
{
var sMsg;
if (this.flags.running) {
sMsg = "halting";
this.stopCPU();
} else {
if (!this.stopCPU()) {
if (this.isBusy(true)) return;
sMsg = "already halted";
if (!fQuiet) this.println("already halted");
}
if (!fQuiet) this.println(sMsg);
}
/**
@ -72749,6 +72747,7 @@ class DebuggerX86 extends Debugger {
*/
doRun(sCmd, sAddr, sOptions, fQuiet)
{
if (sCmd == "gt") {
this.fIgnoreNextCheckFault = true;
}
@ -72758,9 +72757,7 @@ class DebuggerX86 extends Debugger {
this.parseAddrOptions(dbgAddr, sOptions);
this.setTempBreakpoint(dbgAddr);
}
if (!this.startCPU(true)) {
if (!fQuiet) this.println("cpu busy or unavailable, run command ignored");
}
this.startCPU(true, fQuiet);
}
/**
@ -75423,7 +75420,7 @@ class Computer extends Component {
* "ibm5160", enabling us to find objects that match the original machine ID
* (eg, "ibm5160.romEGA").
*
* See /devices/pcx86/machine/5160/ega/640kb/array/ for examples of this.
* See /devices/pcx86/machine/5160/ega/640kb/array for examples of this.
*/
data = stateComputer.get(component.id.replace(/-[0-9]+\./i, '.'));
}

File diff suppressed because one or more lines are too long