Changed the RESET button to *not* autoStart a machine when a Debugger is present, so that the Debugger can "cleanly" load bootstrap sequences and boot without side-effects (eg, unexpected interrupts)
This commit is contained in:
parent
c9d8413a1d
commit
4be8640af8
8 changed files with 250 additions and 54 deletions
|
|
@ -12,7 +12,7 @@ PDP-11 Device Configurations
|
|||
* [Control Panels](panel/)
|
||||
* Serial Interface for Display Terminals [(DL11)](dl11/)
|
||||
* High-Speed Paper Tape Reader/Punch [(PC11)](pc11/)
|
||||
* Disk Controllers ([RK11](rk11/), [RL11](rl11/))
|
||||
* Disk Controllers ([RK11](rk11/), [RL11](rl11/), [RX11](rx11/))
|
||||
* [ROM Images](rom/)
|
||||
|
||||
Sample machines include a
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ bytes, for a total capacity of 250Kb (256,256 bytes).
|
|||
manufacturers, they overstated the capacity by treating "K" as 1000 rather than 1024, which was its traditional meaning
|
||||
within the computer industry at the time. DEC's own processor handbooks, for example, invariably used "K" to mean 1024.
|
||||
|
||||
> However, since 1998, standards organizations have been pushing the term "kibibyte" (abbreviated KiB) to mean 1024 bytes,
|
||||
> Since 1998, standards organizations have been pushing the term "kibibyte" (abbreviated KiB) to mean 1024 bytes,
|
||||
in an effort to redefine the "K" in "Kilobyte" (Kb) as 1000, but that doesn't change what the term commonly meant prior
|
||||
to 1998 (the marketing departments of disk drive manufacturers notwithstanding).
|
||||
to 1998.
|
||||
|
||||
Machines containing the [RX11 Component](/modules/pdp11/lib/rx11.js) include:
|
||||
|
||||
|
|
@ -43,24 +43,133 @@ used to control the device, such as choosing which disks should be "auto-mounted
|
|||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<device id="rx11" type="rx11" pos="left" width="35%" padLeft="8px" padBottom="8px">
|
||||
<name>Disk Drive Controls</name>
|
||||
<control type="container">
|
||||
<control type="list" binding="listDrives"/>
|
||||
<control type="list" binding="listDisks">
|
||||
<disk id="disk01" name="RT-11 V3 SYS (1 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-1.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (2 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-2.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (3 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-3.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (4 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-4.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (5 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-5.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (6 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-6.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (7 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-7.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (8 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-8.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (9 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-9.json"/>
|
||||
</control>
|
||||
<control type="button" binding="loadDisk">Load</control>
|
||||
<control type="button" binding="bootDisk">Boot</control>
|
||||
<control type="description" binding="descDisk" padRight="8px"/>
|
||||
<control type="file" binding="mountDisk"/>
|
||||
</control>
|
||||
<name>Disk Drive Controls</name>
|
||||
<control type="container">
|
||||
<control type="list" binding="listDrives"/>
|
||||
<control type="list" binding="listDisks">
|
||||
<disk id="disk01" name="RT-11 V3 SYS (1 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-1.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (2 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-2.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (3 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-3.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (4 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-4.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (5 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-5.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (6 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-6.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (7 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-7.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (8 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-8.json"/>
|
||||
<disk id="disk01" name="RT-11 V3 SYS (9 OF 9)" path="http://archive.pcjs.org/disks/dec/rx01/RX01-RT11-V03-9.json"/>
|
||||
</control>
|
||||
<control type="button" binding="loadDisk">Load</control>
|
||||
<control type="button" binding="bootDisk">Boot</control>
|
||||
<control type="description" binding="descDisk" padRight="8px"/>
|
||||
<control type="file" binding="mountDisk"/>
|
||||
</control>
|
||||
</device>
|
||||
```
|
||||
|
||||
Loading the RX11 Bootstrap
|
||||
--------------------------
|
||||
|
||||
From the [RT-11 v4.0 Installation Manual (March 1981)](/pubs/dec/pdp11/rt11/), p. E-9:
|
||||
|
||||
The procedure to deposit the RX11 disk bootstrap loader in memory depends on the type of processor you have.
|
||||
If your computer is a PDP-11V/03, PDP-11/03, or LSI-11, see the PDP-11/03 user's manual for instructions.
|
||||
|
||||
1. Set the ENABLE/HALT switch to HALT.
|
||||
|
||||
2. Set the first address, 010000, in the switch register (see Table E-3).
|
||||
|
||||
3. Press the LOAD ADDR switch.
|
||||
|
||||
4. Set the contents for the first address (from Table E-3) in the switch register.
|
||||
|
||||
5. Lift the DEP switch. The computer automatically advances to the next address.
|
||||
|
||||
6. Set the contents for the next address (from Table E-3) in the switch register.
|
||||
|
||||
7. Lift the DEP switch.
|
||||
|
||||
8. Repeat steps 6 and 7 until you have deposited all the instructions.
|
||||
|
||||
Now verify that you deposited the bootstrap program properly.
|
||||
|
||||
1. Set the first address, 001000, in the switch register.
|
||||
|
||||
2. Press the LOAD ADDR switch.
|
||||
|
||||
3. Press the EXAM switch to display the contents of that address in the data register.
|
||||
|
||||
4. Compare the number in the data register with the value for that address in Table E-3.
|
||||
|
||||
5. If the values are the same, press EXAM again to display the contents of the next address.
|
||||
If the values are not the same, repeat the entire procedure for depositing the bootstrap.
|
||||
Verify the contents of all the addresses in this way. If any instruction is incorrect,
|
||||
repeat the entire deposit procedure.
|
||||
|
||||
Once you have correctly deposited the bootstrap in memory, start the computer as follows:
|
||||
|
||||
1. Set the starting address, 001000, in the switch register.
|
||||
|
||||
2. Press the LOAD ADDR switch.
|
||||
|
||||
3. Set the ENABLE/HALT switch to ENABLE.
|
||||
|
||||
4. Press the START switch.
|
||||
|
||||
Table E-3: RX-11 Bootstrap Loader
|
||||
---------------------------------
|
||||
|
||||
Location Contents
|
||||
|
||||
001000 005000
|
||||
001002 012701
|
||||
001004 177170
|
||||
001006 105711
|
||||
001010 001776
|
||||
001012 012711
|
||||
001014 000003
|
||||
001016 005711
|
||||
001020 001776
|
||||
001022 100405
|
||||
001024 105711
|
||||
001026 100004
|
||||
001030 116120
|
||||
001032 000002
|
||||
001034 000770
|
||||
001036 000000
|
||||
001040 005000
|
||||
001042 000110
|
||||
|
||||
Loading the RX-11 Bootstrap Loader
|
||||
----------------------------------
|
||||
|
||||
Any PDP-11 machine using built-in PCjs Debugger makes it easy to enter the bootstrap code above. Paste
|
||||
the following commands into the Debugger's command buffer:
|
||||
|
||||
ew 1000 005000 012701 177170 105711 001776 012711 000003 005711 001776;
|
||||
ew 1022 100405 105711 100004 116120 000002 000770 000000 005000 000110;
|
||||
r pc 1000
|
||||
|
||||
You can then review (eg, disassemble) the bootstrap code:
|
||||
|
||||
>> u 1000 1044
|
||||
001000: 005000 CLR R0
|
||||
001002: 012701 177170 MOV #177170,R1
|
||||
001006: 105711 TSTB @R1
|
||||
001010: 001776 BEQ 001006
|
||||
001012: 012711 000003 MOV #3,@R1
|
||||
001016: 005711 TST @R1
|
||||
001020: 001776 BEQ 001016
|
||||
001022: 100405 BMI 001036
|
||||
001024: 105711 TSTB @R1
|
||||
001026: 100004 BPL 001040
|
||||
001030: 116120 000002 MOVB 2(R1),(R0)+
|
||||
001034: 000770 BR 001016
|
||||
001036: 000000 HALT
|
||||
001040: 005000 CLR R0
|
||||
001042: 000110 JMP @R0
|
||||
|
||||
Last but not least, make sure you have successfully loaded an RX01 diskette image into drive DX0. Then execute the
|
||||
bootstrap code with the Debugger's "g" command.
|
||||
|
||||
Of course, if the machine also includes the RX11 Boot control, then all you *really* need to is select an
|
||||
RX01 diskette, click "Load", wait for the diskette image to be successfully loaded (i.e., downloaded) and then click
|
||||
"Boot".
|
||||
|
|
|
|||
Loading…
Reference in a new issue