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:
|
||||
|
||||
|
|
@ -64,3 +64,112 @@ used to control the device, such as choosing which disks should be "auto-mounted
|
|||
</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".
|
||||
|
|
|
|||
|
|
@ -1410,7 +1410,7 @@ class ComputerPDP11 extends Component {
|
|||
this.fReload = false;
|
||||
} else {
|
||||
this.reset();
|
||||
if (this.cpu) this.cpu.autoStart();
|
||||
if (this.cpu && !this.dbg) this.cpu.autoStart();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -588,6 +588,7 @@ class CPUStatePDP11 extends CPUPDP11 {
|
|||
this.regsGen[0] = bUnit || 0;
|
||||
for (var i = 1; i <= 5; i++) this.regsGen[i] = 0;
|
||||
this.regsGen[6] = addrStack || 0o2000;
|
||||
if (!this.dbg) {
|
||||
if (!this.flags.powered) {
|
||||
this.flags.autoStart = true;
|
||||
}
|
||||
|
|
@ -595,6 +596,7 @@ class CPUStatePDP11 extends CPUPDP11 {
|
|||
this.startCPU();
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (this.dbg && this.flags.powered) {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -920,6 +920,11 @@ class DriveController extends Component {
|
|||
drive.sDiskName = sDiskName;
|
||||
drive.sDiskPath = sDiskPath;
|
||||
|
||||
/*
|
||||
* Inform the controller implementation (eg, RX11) of the disk change.
|
||||
*/
|
||||
this.notifyLoad(drive.iDrive);
|
||||
|
||||
/*
|
||||
* Adding local disk image names to the disk list seems like a nice idea, but it's too confusing,
|
||||
* because then it looks like the "Mount" button should be able to (re)load them, and that can NEVER
|
||||
|
|
@ -1123,6 +1128,11 @@ class DriveController extends Component {
|
|||
this.sDiskSource = DriveController.SOURCE.NONE;
|
||||
this.displayDisk(iDrive);
|
||||
}
|
||||
|
||||
/*
|
||||
* Inform the controller implementation (eg, RX11) of the disk removal.
|
||||
*/
|
||||
this.notifyUnload(iDrive);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1223,6 +1233,30 @@ class DriveController extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* notifyLoad(iDrive)
|
||||
*
|
||||
* Placeholder for subclasses. Called whenever DriveController has loaded a new disk into the specified drive.
|
||||
*
|
||||
* @this {RX11}
|
||||
* @param {number} iDrive
|
||||
*/
|
||||
notifyLoad(iDrive)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* notifyUnload(iDrive)
|
||||
*
|
||||
* Placeholder for subclasses. Called whenever DriveController has unloaded a disk from the specified drive.
|
||||
*
|
||||
* @this {RX11}
|
||||
* @param {number} iDrive
|
||||
*/
|
||||
notifyUnload(iDrive)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* readData(drive, iCylinder, iHead, iSector, nWords, addr, inc, fCheck, done)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -143,6 +143,34 @@ class RX11 extends DriveController {
|
|||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* notifyLoad(iDrive)
|
||||
*
|
||||
* Called whenever DriveController has loaded a new disk into the specified drive.
|
||||
*
|
||||
* We're interested in this so that whenever a disk change occurs for drive 0, we can automatically
|
||||
* refill the sector buffer with the data from sector 1 from track 1.
|
||||
*
|
||||
* @this {RX11}
|
||||
* @param {number} iDrive
|
||||
*/
|
||||
notifyLoad(iDrive)
|
||||
{
|
||||
if (iDrive == 0) this.initController();
|
||||
}
|
||||
|
||||
/**
|
||||
* notifyUnload(iDrive)
|
||||
*
|
||||
* Called whenever DriveController has unloaded a disk from the specified drive.
|
||||
*
|
||||
* @this {RX11}
|
||||
* @param {number} iDrive
|
||||
*/
|
||||
notifyUnload(iDrive)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* processCommand()
|
||||
*
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ title: DEC PDP-11 Publications and Papers
|
|||
permalink: /pubs/dec/pdp11/
|
||||
---
|
||||
|
||||
DEC PDP-11 Publications
|
||||
PDP-11 Hardware Publications
|
||||
---
|
||||
|
||||
This page summarizes PDP-11 documentation that was useful in creating [PDPjs](/modules/pdp11/). In most cases,
|
||||
|
|
@ -29,6 +29,35 @@ directory. If a PDF was not searchable, it was "OCR'ed" before being archived b
|
|||
- [PDP-11/70 Handbook (1976)](http://archive.pcjs.org/pubs/dec/pdp11/1170/PDP1170_Handbook_1976.pdf) [[Original PDF](http://bitsavers.org/pdf/dec/pdp11/1170/PDP-11_70_Handbook_1977-78.pdf)]
|
||||
- [PDP-11/70 Handbook (1979)](http://archive.pcjs.org/pubs/dec/pdp11/1170/PDP1170_Handbook_1979.pdf) [[Original PDF](http://bitsavers.org/pdf/dec/pdp11/handbooks/PDP11_Handbook1979.pdf)]
|
||||
|
||||
[PDP-11 KW11](kw11/)
|
||||
|
||||
- [KW11-L Line Time Clock Manual (Apr 1973)](http://archive.pcjs.org/pubs/dec/pdp11/kw11/KW11L_Apr73.pdf) [[Original PDF](http://bitsavers.org/pdf/dec/unibus/DEC-11-HKWB-D_KW11L_Apr73.pdf)]
|
||||
- [KW11-L Line Time Clock Manual (Jul 1974)](http://archive.pcjs.org/pubs/dec/pdp11/kw11/KW11L_Jul74.pdf) [[Original PDF](http://bitsavers.org/pdf/dec/pdp11/1140/EK-KW11L_TM-002_KW11-L_Line_Time_Clock_Manual_Jul74.pdf)]
|
||||
|
||||
[PDP-11 M9312](m9312/)
|
||||
|
||||
- [M9312 Bootstrap/Terminator Module Technical Manual (Oct 1979)](http://archive.pcjs.org/pubs/dec/pdp11/m9312/M9312_Bootstrap_Terminator_Module_Technical_Manual.pdf)
|
||||
|
||||
[PDP-11 RK11](rk11/)
|
||||
|
||||
- [CXRKAG0 DEC/X11 RK11 MODULE (Sep 1978)](http://archive.pcjs.org/pubs/dec/pdp11/rk11/AC-E676G-MC_CXRKAG0-RK11_Sep78.pdf)
|
||||
- [RK11-D and RK11-E Moving Head Disk Drive Controller Manual (Feb 1975)](http://archive.pcjs.org/pubs/dec/pdp11/rk11/EK-RK11D-MM-002.pdf)
|
||||
|
||||
[PDP-11 RL11](rl11/)
|
||||
|
||||
- [RL01/RL02 User Guide (Sep 1981)](http://archive.pcjs.org/pubs/dec/pdp11/rl11/EK-RL012-UG-005_Sep81.pdf)
|
||||
|
||||
[PDP-11 RX11](rx11/)
|
||||
|
||||
- [RX8/RX11 floppy disk system user's manual (Nov 1976)](http://archive.pcjs.org/pubs/dec/pdp11/rx11/EK-RX01-OP-001_RX11UM_Nov76.pdf)
|
||||
|
||||
[Other PDP-11 Peripherals](other/)
|
||||
|
||||
- [PDP-11 Peripherals Handbook (1976)](http://archive.pcjs.org/pubs/dec/pdp11/other/PDP11_Peripherals_Handbook_1976.pdf)
|
||||
|
||||
PDP-11 Software Publications
|
||||
---
|
||||
|
||||
[PDP-11 BASIC](basic/)
|
||||
|
||||
- [PDP-11 BASIC Programming Manual (1970)](http://archive.pcjs.org/pubs/dec/pdp11/basic/BASIC_Programming_Manual_Dec70.pdf)
|
||||
|
|
@ -53,40 +82,22 @@ directory. If a PDF was not searchable, it was "OCR'ed" before being archived b
|
|||
- [PDP-11 DIAGNOSTIC HANDBOOK (1988)](http://archive.pcjs.org/pubs/dec/pdp11/diags/PDP11_DiagnosticHandbook_1988.pdf)
|
||||
- [Notes for XXDP+ and XXDP V2 Operating Systems (Feb 1993)](http://archive.pcjs.org/pubs/dec/pdp11/diags/XXDP_Notes_Feb93.pdf)
|
||||
|
||||
[PDP-11 KW11](kw11/)
|
||||
|
||||
- [KW11-L Line Time Clock Manual (Apr 1973)](http://archive.pcjs.org/pubs/dec/pdp11/kw11/KW11L_Apr73.pdf) [[Original PDF](http://bitsavers.org/pdf/dec/unibus/DEC-11-HKWB-D_KW11L_Apr73.pdf)]
|
||||
- [KW11-L Line Time Clock Manual (Jul 1974)](http://archive.pcjs.org/pubs/dec/pdp11/kw11/KW11L_Jul74.pdf) [[Original PDF](http://bitsavers.org/pdf/dec/pdp11/1140/EK-KW11L_TM-002_KW11-L_Line_Time_Clock_Manual_Jul74.pdf)]
|
||||
|
||||
[PDP-11 M9312](m9312/)
|
||||
|
||||
- [M9312 Bootstrap/Terminator Module Technical Manual (Oct 1979)](http://archive.pcjs.org/pubs/dec/pdp11/m9312/M9312_Bootstrap_Terminator_Module_Technical_Manual.pdf)
|
||||
|
||||
[PDP-11 MACRO-11](macro11/)
|
||||
[MACRO-11](macro11/)
|
||||
|
||||
- [MACRO-11 Reference Manual (Dec 1975)](http://archive.pcjs.org/pubs/dec/pdp11/macro11/MACRO11_Dec75.pdf)
|
||||
- [MACRO-11 Language Reference Manual (Mar 1983)](http://archive.pcjs.org/pubs/dec/pdp11/macro11/MACRO11_Mar83.pdf)
|
||||
|
||||
[PDP-11 RK11](rk11/)
|
||||
[RT-11](rt11/)
|
||||
|
||||
- [CXRKAG0 DEC/X11 RK11 MODULE (Sep 1978)](http://archive.pcjs.org/pubs/dec/pdp11/rk11/AC-E676G-MC_CXRKAG0-RK11_Sep78.pdf)
|
||||
- [RK11-D and RK11-E Moving Head Disk Drive Controller Manual (Feb 1975)](http://archive.pcjs.org/pubs/dec/pdp11/rk11/EK-RK11D-MM-002.pdf)
|
||||
- [RT-11 v4.0 Installation and System Generation Guide (Mar 1980)](http://archive.pcjs.org/pubs/dec/pdp11/rt11/AA-H376A-TC_RT-11_V4.0_Installation_Manual_Mar81.pdf)
|
||||
|
||||
[PDP-11 RL11](rl11/)
|
||||
|
||||
- [RL01/RL02 User Guide (Sep 1981)](http://archive.pcjs.org/pubs/dec/pdp11/rl11/EK-RL012-UG-005_Sep81.pdf)
|
||||
|
||||
[PDP-11 RX11](rx11/)
|
||||
|
||||
- [RX8/RX11 floppy disk system user's manual (Nov 1976)](http://archive.pcjs.org/pubs/dec/pdp11/rx11/EK-RX01-OP-001_RX11UM_Nov76.pdf)
|
||||
|
||||
---
|
||||
|
||||
[Assorted PDP-11 Handbooks](other/)
|
||||
[Other PDP-11 Software](other/)
|
||||
|
||||
- [LISTING OF PDP-11 ABSOLUTE LOADER (June 1975)](http://archive.pcjs.org/pubs/dec/pdp11/other/DEC-11-UABLA_ABSOLUTE_LOADER_LISTING_Jun75.pdf)
|
||||
- [PDP-11 Paper Tape Software Handbook (1976)](http://archive.pcjs.org/pubs/dec/pdp11/other/PDP11_Paper_Tape_Software_Handbook_1976.pdf)
|
||||
- [PDP-11 Peripherals Handbook (1976)](http://archive.pcjs.org/pubs/dec/pdp11/other/PDP11_Peripherals_Handbook_1976.pdf)
|
||||
- [PDP-11 Software Handbook (1978)](http://archive.pcjs.org/pubs/dec/pdp11/other/PDP11_Software_Handbook_1978.pdf)
|
||||
|
||||
PDP-11 Research Papers
|
||||
---
|
||||
|
||||
[Assorted PDP-11 Papers](papers/)
|
||||
|
|
|
|||
12
pubs/dec/pdp11/rt11/README.md
Normal file
12
pubs/dec/pdp11/rt11/README.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
layout: page
|
||||
title: DEC RT-11 Publications
|
||||
permalink: /pubs/dec/pdp11/rt11/
|
||||
---
|
||||
|
||||
DEC RT-11 Publications
|
||||
---
|
||||
|
||||
### RT-11 v4.0
|
||||
|
||||
- [RT-11 Installation and System Generation Guide (Mar 1980)](http://archive.pcjs.org/pubs/dec/pdp11/rt11/AA-H376A-TC_RT-11_V4.0_Installation_Manual_Mar81.pdf)
|
||||
Loading…
Reference in a new issue