diff --git a/devices/pdp11/machine/1170/panel/debugger/xxdp/README.md b/devices/pdp11/machine/1170/panel/debugger/xxdp/README.md index c42462d07..bfb5d9203 100644 --- a/devices/pdp11/machine/1170/panel/debugger/xxdp/README.md +++ b/devices/pdp11/machine/1170/panel/debugger/xxdp/README.md @@ -43,7 +43,9 @@ Step-by-step instructions are included below. Other interesting things to know {% include machine.html id="test1170" %} -Step 1: We need to select a drive to load the [RL02K XXDP+ Diagnostics Disk](/disks/dec/rl02k/xxdp/), and since it is +### Instructions + +We need to select a drive to load the [RL02K XXDP+ Diagnostics Disk](/disks/dec/rl02k/xxdp/), and since it is an RL02K disk, we need to use an RL02 drive. A typical PDP-11 machine with a single [RL11 Disk Controller](/devices/pdp11/rl11/) could contain up to four such drives, which we refer to as RL0 through RL3. diff --git a/disks/dec/rl02k/xxdp/ekbad0/README.md b/disks/dec/rl02k/xxdp/ekbad0/README.md index 92ab89938..e8717ff22 100644 --- a/disks/dec/rl02k/xxdp/ekbad0/README.md +++ b/disks/dec/rl02k/xxdp/ekbad0/README.md @@ -2,6 +2,24 @@ layout: page title: "EKBAD0: 11/70 MEMORY MANAGEMENT DIAGNOSTIC (PART 1)" permalink: /disks/dec/rl02k/xxdp/ekbad0/ +machines: + - id: test1170 + type: pdp11 + config: /devices/pdp11/machine/1170/panel/debugger/machine.xml + debugger: true + autoStart: true + sticky: top +commands: + runEKBAD0: | + selectDrive RL11 RL0; + select RL11 listDisks "XXDP+ Diagnostics"; + loadDisk RL11; + wait RL11; + bootDisk RL11; + sleep 1000; + receiveData SerialPort "\r"; + sleep 500; + receiveData SerialPort "R EKBAD0\r"; --- EKBAD0: 11/70 CPU DIAGNOSTIC (PART 1) @@ -44,10 +62,26 @@ p. 1-6: SW00 = 1 skip operator intervention testing The closest we have to a source code listing of the EKBAD0 diagnostic comes from some -[scanned microfiche](http://archive.pcjs.org/pubs/dec/pdp11/diags/AH-7963D-MC_CEKBAD0_1170_CPU_1_May80.pdf) +[scanned microfiche](http://archive.pcjs.org/pubs/dec/pdp11/diags/AC-7962D-MC_CEKBAD0_1170_CPU_1_May80.pdf) on [bitsavers.org](http://bitsavers.trailing-edge.com/pdf/dec/pdp11/microfiche/ftp.j-hoppe.de/bw/gh/) for: PRODUCT CODE: AC-7962D-MC PRODUCT NAME: CEKBAD0 11/70 CPU #1 DATE CREATED: MAY, 1980 MAINTAINER: DIAGNOSTIC ENGINEERING + +Step-by-step instructions for running EKBAD0 can be found below. + +{% include machine.html id="test1170" %} + +### Instructions For Running EKBAD0 + +1. Select drive RL0 {% include machine-command.html type='button' label='Do It' machine='test1170' command='script' value='selectDrive RL11 RL0' %} +2. Select disk "XXDP+ Diagnostics" for drive RL0 {% include machine-command.html type='button' label='Do It' machine='test1170' command='script' value='select RL11 listDisks "XXDP+ Diagnostics"' %} +3. Click `Load` to load the disk {% include machine-command.html type='button' label='Do It' machine='test1170' command='script' value='loadDisk RL11' %} +4. Wait for message `Loaded disk "XXDP+ Diagnostics" in drive RL0` {% include machine-command.html type='button' label='Do It' machine='test1170' command='script' value='wait RL11' %} +5. Click `Boot` to boot the disk {% include machine-command.html type='button' label='Do It' machine='test1170' command='script' value='bootDisk RL11' %} +6. Wait for a date prompt and then press *Return* {% include machine-command.html type='button' label='Do It' machine='test1170' command='script' value='sleep 1000; receiveData SerialPort "\r"' %} +7. Wait for a `.` prompt and then type `R EKBAD0` and press *Return* {% include machine-command.html type='button' label='Do It' machine='test1170' command='script' value='sleep 500; receiveData SerialPort "R EKBAD0\r"' %} + +To automatically perform all of the above, click this button: {% include machine-command.html type='button' label='Run EKBAD0' machine='test1170' command='runEKBAD0' %} diff --git a/disks/dec/rl02k/xxdp/ekbbf0/README.md b/disks/dec/rl02k/xxdp/ekbbf0/README.md index fe0f7fdd7..c9173cc5e 100644 --- a/disks/dec/rl02k/xxdp/ekbbf0/README.md +++ b/disks/dec/rl02k/xxdp/ekbbf0/README.md @@ -96,7 +96,7 @@ After setting a breakpoint at 020646 and then dumping the instruction history bu 020646: 104241 EMT 241 The closest we have to a source code listing of the EKBBF0 diagnostic comes from some -[scanned microfiche](http://archive.pcjs.org/pubs/dec/pdp11/diags/AH-7968F-MC_CEKBBF0_1170_CPU_2_May80.pdf) +[scanned microfiche](http://archive.pcjs.org/pubs/dec/pdp11/diags/AC-7966F-MC_CEKBBF0_1170_CPU_2_May80.pdf) on [bitsavers.org](http://bitsavers.trailing-edge.com/pdf/dec/pdp11/microfiche/ftp.j-hoppe.de/bw/gh/) for: PRODUCT CODE: AC-7966F-MC diff --git a/modules/markout/lib/markout.js b/modules/markout/lib/markout.js index 0c2b31c30..602c87c16 100644 --- a/modules/markout/lib/markout.js +++ b/modules/markout/lib/markout.js @@ -1309,6 +1309,8 @@ MarkOut.prototype.convertMDMachineLinks = function(sBlock) if (this.aCommandDefs[sCommand]) { sValue = this.aCommandDefs[sCommand]; sCommand = "script"; + } else if (sValue) { + sValue = sValue.replace(/"/g, """); } sReplacement = '<' + sControl + sControlType + ' onclick="commandMachine('; sReplacement += "'" + sMachineID + "',"; diff --git a/modules/shared/lib/component.js b/modules/shared/lib/component.js index 136198c49..7af064d2c 100644 --- a/modules/shared/lib/component.js +++ b/modules/shared/lib/component.js @@ -676,6 +676,9 @@ class Component { } sToken += ch; } + if (sToken) { + aTokens.push(sToken); + } if (aTokens.length) { aaCommands.push(aTokens); }