--- 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 machineScripts: 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) ------------------------------------- From the [PDP-11 Diagnostic Handbook (1988)](http://archive.pcjs.org/pubs/dec/pdp11/diags/PDP11_DiagnosticHandbook_1988.pdf), p. 1-6: 11/70 CPU DIAGNOSTIC PART 1 ABSTRACT: This diagnostic is the first part of the 11/70 CPU, it designed to detect and report logic faults in the CPU. Any fault detected in this program causes the program to "HALT". After this, run the second part of the CPU test, EKBBF0. OPERATING PROCEDURES: Set the switch register by (RD console) CON = xxxxxxWZ (W = deposit xxxxxx into console switch register) (R = read and type console switch settings) (Z = switch console terminal back to program) .R EKBAD0 SWITCH SETTINGS SW15 = 1 halt on error SW14 = 1 loop on test SW13 = 1 inhibit error typeouts SW12 = 1 inhibit T-bit trapping SW11 = 1 inhibit iterations SW10 = 1 ring bell on error SW09 = 1 loop on error SW08 = 1 loop on test in SWR <07:00> SW07 = 1 not used SW06 = 1 skip bus request 6 test SW05 = 1 skip bus request 5 test SW04 = 1 skip bus request 4 test 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/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' %}