Minor PCx86 Debugger-related improvements
This commit is contained in:
parent
aefe2b4b5b
commit
d0052eb7cd
13 changed files with 1081 additions and 1032 deletions
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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" %}
|
||||
|
||||
|
|
|
|||
36
disks/pcx86/apps/ibm/topview/1.01/debugger/README.md
Normal file
36
disks/pcx86/apps/ibm/topview/1.01/debugger/README.md
Normal 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" %}
|
||||
|
|
@ -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" %}
|
||||
|
||||
|
|
|
|||
20
disks/pcx86/apps/ibm/topview/1.10/debugger/README.md
Normal file
20
disks/pcx86/apps/ibm/topview/1.10/debugger/README.md
Normal 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
|
|
@ -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, '.'));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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
Loading…
Reference in a new issue