Trailing-Edge
-
PDP-10 Archives
-
BB-H311D-RM
-
documentation/kl873.mem
There are 6 other files named kl873.mem in the archive. Click here to see a list.
PDM #: ???-???-???-??
File: <PORCHER>KL873.MEM
Author: Tom Porcher
Date: 25 January 1977
Subject: KL10 BM873 Bootstrap ROMs
Specification for:
KL10 BM873 Bootstrap ROMs
Copyright (C) 1976, 1977
Digital Equipment Corporation, Maynard, Mass.
This software is furnished under a license for use only on a single
computer system and may be copied only with the inclusion of the above
copyright notice. This software, or any other copies thereof, may not
be provided or otherwise made available to any other person except for
use on such system and to one who agrees to these license terms.
Title to and ownership of the software shall at all times remain in
DEC.
The information in this document is subject to change without notice
and should not be construed as a commitment by Digital Equipment
Corporation.
DEC assumes no responsibility for the use or reliability of its
software on equipment which is not supplied by DEC.
KL10 BM873 Bootstrap ROMs Page 2
1.0 INTRODUCTION
This specification describes the functionality of all the revisions of
the BM873 Bootstrap ROM for KL10 based PDP-11 Front-Ends.
The following BM873 ROMs are covered by this specification:
1. BM873-YD -- obsolete 1080 console
2. BM873-YF -- 2040 console
3. BM873-YG -- DN87 communications
4. BM873-YH -- 10xx/20xx console
5. BM873-YJ -- 10xx/20xx console/communications
All numbers in this specification are decimal unless otherwise noted.
1.1 References
1. KL10 Bootstrap ROM, D. Rosenberg, PDM # 200-205-014-01,
<DOC-FRONT-END>ROM11.M0
2. KL10 Bootstrap ROM, T. Porcher, PDM # 200-205-014-02,
<DOC-FRONT-END>ROM11.MEM
3. Front-End Bootstap procedures, T. Porcher, PDM #
200-205-039-00, <DOC-FRONT-END>FEBOOT.MEM
2.0 BM873 HARDWARE
The BM873 ROM board provides for 256 words of read-only memory,
located at UNIBUS addresses 773000-773777(8).
There are 4 jumper-selectable entry vectors, each of which may be
activated by an external contact closure.
The BM873 gains control of the processor when a "button" is activated
by using a simulated power fail/power restart sequence. To facilitate
this, power fail vectors must exist in the ROM at locations 773024(8)
and 773224(8), with the start of the ROM (773000(8)) as the new PC,
and priority 7 (340(8)) as the new PS.
The 4 buttons have been allocated the following meanings for the KL10:
Button #1 -- Switch Register. Read the console switches and
perform a specified action or bootstrap.
KL10 BM873 Bootstrap ROMs Page 3
Button #2 -- Disk. Bootstrap from RP04/05/06 unit 0.
Button #3 -- Floppy/DECtape/DL11. Bootstrap from unit 0 of
RX11 Floppy Disk or TC11 DECtape or DL11 Asynchronous Line, as
available in ROM capabilities and existence in system
configuration.
Button #4 -- Electronic Finger. Dump and bootstrap via the
associated DTE20, which invoked this button.
3.0 GENERAL ROM CAPABILITIES
This section details the major functionality found in any of the KL10
ROMs.
3.1 Switch Register
The "Switch Register" button (#1) causes the ROM to read the console
switches and perform a specified action. The interpretation of the
switch register is as follows:
Bits Usage
15 Infinite Retry. If set, the ROM will continue
retrying a bootstrap operation on error until aborted
by manual intervention. If clear, the ROM will retry
only a finite number of times.
14-11 (software) Console Line Number. This selects the line
number within a DH11 or DL11 group to be used as the
CTY.
10-8 Boot Unit or (software) Console Unit Number. If bits
6-3 are in the range 0-2(8), then this is the unit
number of the bootstrap device selected (by bit 7).
If bits 6-3 are in the range 3-17(8), then the
bootstrap unit number is 0, and the software
interprets this field as the DH11 unit number of the
CTY. Implemented by software in RSX-20F, TOPS-10, and
TOPS-20.
7 Bootstrap Device. If set, use the RP04/05/06 unit
selected. If clear, use as available one of RX11
Floppy, TC11 DECtape, or DL11 Async Line.
6-3 (software) Console Speed and Fill Class. The ROM uses
bootstrap unit number 0 if this field is in the range
3-17(8). This field selects the device type and
speed/fill class of the console as specified by bits
14-11 and bits 10-8. Value 0(8) means use whatever
console device was built into the software and ignore
KL10 BM873 Bootstrap ROMs Page 4
bits 14-11. Values 1-2(8) are fill classes for the
DL11 line selected by bits 14-11. Values 3-17(8) are
speed/fill class values for the DH11 line selected by
bits 14-11 and bits 10-8. Implemented by software in
RSX-20F, TOPS-10, and TOPS-20.
2-1 (software) Load Select. This field selects one of
four possible load conditions:
00 Complete reload. Do all that is necessary to
bring up TOPS-10 or TOPS-20.
01 Load RSX-20F only. KL10 is assumed down.
10 Load RSX-20F only. KL10 is assumed up.
11 Ask dialogue questions to control loading.
Implemented by software in RSX-20F, TOPS-10, and
TOPS-20.
0 Switch Enable. If set, interpret bits 15-1 as
specified above. If clear, interpret bits 15-0 as an
address, and transfer to that address after saving the
registers R0-R7 in memory locations 40-56(8).
Available on: YD, YF, YH, YJ
Differences:
1. YD: Registers are not saved if bit 0 is clear.
2. YD, YF: Bits 6-3 in the range 16-17(8) imply bootstrap unit
selected by bits 10-8.
3. YJ: Processor halts before reading Switch Register
(dependent on vector jumpers).
3.2 RP04/05/06 Disk Bootstrap
The RP04/05/06 disk bootstrap reads cylinder 0, track 0, sector 0 (512
bytes) from the selected RP04/05/06 in 18-bit mode into memory
starting at location 0, then transfers control to the loaded code at
location 0. Using the "Disk" button (#2) selects unit 0.
Available on: YD, YF, YH, YJ
Differences:
1. YD: Uses cylinder 406, sector 0, track 0.
KL10 BM873 Bootstrap ROMs Page 5
2. YD: Checks for "NOP" 240(8) as first word of bootstrap.
3. YH, YJ: 16-bit format disks can also be read.
3.3 RP04/05/06 Disk Dump
The RP04/05/06 dump writes 28K words onto unit 0 starting at cylinder
409, track 13, sector 8 in 18-bit format. The processor halts
displaying 0 in R0 on successful completion of the dump.
Available on: YD, YF
Differences:
1. YD: Saves R0-R7 in 40-56(8) before dump.
3.4 RX11 Floppy Disk Bootstrap
The RX11 bootstrap reads track 1, sector 1 (128 bytes) from the
selected diskette into memory starting at location 0, then transfers
control to the loaded code at location 0. Using the "Floppy" button
(#3) selects unit 0.
Available on: YF, YH, YJ
Differences:
1. YF: Reads track 1, sectors 1, 3, 5, 7 (512 bytes -- logical
block 0).
3.5 RX11 Floppy Disk Dump
The RX11 dump routine writes 28K words to unit 0, starting at track
59, sector 1, sequentially by physical sector (i.e. 1, 2, 3, ...,
26), sequentialy by track. The processor halts displaying 0 in R0 on
successful completion of the dump.
Available on: YF
KL10 BM873 Bootstrap ROMs Page 6
3.6 TC11 DECtape Bootstrap
The TC11 bootstrap reads block 0 (512 bytes) from the selected unit
into memory starting at location 0, then transfers to the loaded code
at location 0. Using the "DECtape" button (#3) selects unit 0.
Available on: YD, YH, YJ
Differences:
1. YD: Checks for "NOP" 240(8) as first word of bootstrap.
3.7 TC11 DECtape Dump
The TC11 dump routine saves R0-R7 in locations 40-56(8), then writes
28K words from memory to DECtape unit 0, starting at the trailing
end-zone (block 576) and writing in reverse. The processor halts
displaying 0 in R0 on successful completion of the dump.
Available on: YD
3.8 DTE20 Bootstrap And Dump
The DTE20 bootstrap and dump is initiated only by the internal button
(#4) which is connected to the DTE20. The -10 has the ability to
"push" this button under program control of the DTE20. This routine
performs the following functions:
1. Saves R0-R7 in memory locations 40-56(8).
2. Finds the DTE20 which "pushed" the button (it has the to -11
doorbell set and the to -10 byte count = 1365(8)).
3. Saves the first 12 DTE20 registers DLYCNT to TO11DT in
locations 130-162(8).
4. Optionally dumps up to 28K of -11 memory using Word Mode
DTE20 transfers.
5. Loads 512 bytes into -11 memory starting at location 0 using
a single Word Mode transfer.
6. Transfers control to the loaded code at location 0.
The procedure by which the -10 dumps and bootstraps the -11 is as
follows:
1. Clear the DTE20 and press reload -11 button #4.
CONO [SR11B!CL11PT!CLTO11!CLTO10!PILDEN]
KL10 BM873 Bootstrap ROMs Page 7
2. Wait for -11 power fail.
CONI [DEAD11]=1
3. Wait for -11 power recover.
CONI [DEAD11]=0
4. Wait another 300ms.
5. Set to -10 byte count to a special code 1365(octal).
DATAO [1365]
6. Ring the -11's doorbell and clear reload -11 button.
CONO [CR11B!TO11DB]
7. Wait for -11 doorbell to be answered by the -11.
CONI [TO11DB]=0
8. Enable the DTE20 to use PI 0 interrupts.
CONO [PILDEN!P10ENB]
9. If no dump of -11 memory is desired, go to stop 16.
10. Set up to -10 byte pointer in EPT for dump of -11 memory.
11. Set up byte count for 3.5K and start transfer.
DATAO [<-7000>&7777]
12. Wait for "To -10 Done" or "To -10 Error".
CONI [TO10DN!TO10ER]=1
13. Note if there was an error.
CONI [TO10ER]=1
14. Clear "To -10 Done" and "To -10 Error".
CONO [CLTO10]
15. If no errors and not end of 28K, go to step 11.
16. Set up to -11 byte pointer in EPT to 256 word bootstrap code
to be loaded into -11 memory starting at location 0.
17. Ring the -11's doorbell.
CONO [TO11DB]
18. Wait for doorbell to be answered by the -11.
CONI [TO11DB]=0
19. Wait for "To -11 Done" or "To -11 Error".
CONI [TO11DN!TO11ER]=1
20. If there is an error, the entire process must be started
again from step 1.
CONI [TO11ER]=1
KL10 BM873 Bootstrap ROMs Page 8
21. Ring the -11's doorbell and clear "To -11 Done" and "To -11
Error".
CONO [TO11DB!CLTO11]
22. The -11 is loaded and executing the loaded code starting at
location 0. The -10 should now communicate with the -11
following the protocol of this code.
Available on: YD, YF, YG, YH, YJ
Differences:
1. YD: This code does not work.
2. YF, YG: Waits for and clears the to -11 doorbell after the
transfer of the 512 byte bootstrap.
3. YH, YJ: Loaded code is started as soon as transfer
completes.
3.9 DL11 Asynchronous Line Bootstrap
The DL11 bootstrap loads a program into memory starting at location 0
from the console DL11 in 8-bit bytes, then transfers to the loaded
code at location 0. Using the "DL11" button (#3) initiates this
bootstrap.
The format of the received data is as follows:
<DLE><cc1><cc2><fill><fill><fill><fill><fill><data>
where
<DLE> is 220(8).
<cc1> is the low-order 8 bits of byte count.
<cc2> is the high-order 6 bits of byte count. The 2 high-order bits
of this byte are ignored.
<fill> is 1 byte of ignored data.
<data> is the data to be loaded into memory, with the number of bytes
specified by <cc2><cc1>.
Available on: YG, YJ
Differences:
KL10 BM873 Bootstrap ROMs Page 9
1. YG: Invoked by button #1.
2. YG: Uses a completely different format (see diagnostic
documentation).
3.10 Error Retry
If an error occurs during an I/O operation, the operation will be
retried 16 times. If the error persists, the processor will halt. If
the "Switch Register" button was pushed and "Infinite Retry" (bit 15)
was selected, then the operation will be retried until aborted by
manual intervention.
This affects only the RP04/05/06 Disk, RX11 Floppy Disk, and TC11
DECtape.
Available on: YD, YF, YH, YJ
Differences:
1. YD: Retries 20 times.
2. YF: Retries 10 times.
3. YH: Retries 12 times.
4. YF, YH: Displays error or drive status register in R0 when
it halts.
3.11 Bootstrap Parameters In Registers
Some parameters are passed in the registers to the loaded bootstrap
code. These are listed below.
Register Usage
R0 Bootstrap unit number.
R1 Address of control/status or command register for
bootstrap device.
R5 Bootstrap condition word. If bit 0 is set, the
"Switch Register" button was pushed and this is a copy
of the Switch Register. If bit 0 is clear, then
either the "Disk" or "Floppy/DECtape/DL11" button was
pushed. In this case, bits 15-8 will be zero, bit 7
will indicate which button was pushed, and bits 6-0
will be zero. Bits 15-1 of this word should be
interpreted as described above under "Switch Register"
KL10 BM873 Bootstrap ROMs Page 10
in both cases.
Only R1 is supplied by the DTE20 bootstrap.
Only R1 and R5 are supplied by the DL11 bootstrap.
Available on: YD, YF, YG, YH, YJ
Differences:
1. YD: R0 is never supplied. Unit number can be found in
device unit select register.
2. YD: R5 will be zero if either "Disk" or "DECtape" was
pushed, in which case R4 will determine which one it was.
3. YF, YH: RX11 returns read function with unit select bit
set/clear in R0. Note that this is distinguishable from a
unit number by the secondary bootstrap.
4. YG: DL11 bootstrap supplies no parameters.
3.12 Parameter Entry
If the ROM is started at location 773034(8), it will interpret R0 as
described under "Switch Register" above and perform the specified
action or bootstrap. Bit 0 is ignored.
Available on: YF, YH, YJ
3.13 PDP11/34 Support
Due to the lack of fatal stack violation traps in the 11/34 and other
differences in stack operations, most of the ROMs require an 11/40 or
greater processor. This support allows use on the 11/34 as well as
the 11/40.
Available on: YJ
4.0 SPECIFIC ROMS
This section describes the capabilities of each specific ROM.
Notes:
Features are described in detail above.
KL10 BM873 Bootstrap ROMs Page 11
All addresses are in octal.
To start at a given entry location, you can set the specified
address in the console switches and press the "Switch Register"
button. This will save R0-R7 in locations 40-56(8), then start at
the selected address in all ROMs except the YD. This is useful
for the Dump functions of the YF ROM.
4.1 BM873-YD
4.1.1 First Used On - DECsystem-1080 Console Front End.
4.1.2 Current Usability - None.
4.1.3 Summary Of Features -
- Switch Register
- RP04/05/06 Disk Bootstrap
- RP04/05/06 Disk Dump
- TC11 DECtape Bootstrap
- TC11 DECtape Dump
- DTE20 Bootstrap and Dump
- Error Retry
- Bootstrap Parameters
4.1.4 Button Addresses -
#1 773000 Switch Register
#2 773304 Disk
#3 773014 DECtape
#4 773534 DTE20
4.1.5 Other Entry Locations -
773506 RP04/05/06 Disk Dump. Saves registers.
773516 RP04/05/06 Disk Dump. Does not save registers.
773216 TC11 DECtape Dump. Saves registers.
773234 TC11 DECtape Dump. Does not save registers.
KL10 BM873 Bootstrap ROMs Page 12
4.2 BM873-YF
4.2.1 First Used On - DECsystem-2040 Console Front End.
4.2.2 Current Usability - DECsystem-20xx Console Front End.
4.2.3 Summary Of Features -
- Switch Register
- RP04/05/06 Disk Bootstrap
- RP04/05/06 Disk Dump
- RX11 Floppy Disk Bootstrap
- RX11 Floppy Disk Dump
- DTE20 Bootstrap and Dump
- Error Retry
- Bootstrap Parameters
- Parameter Entry
4.2.4 Button Addresses -
#1 773000 Switch Register
#2 773030 Disk
#3 773020 Floppy
#4 773574 DTE20
4.2.5 Other Entry Locations -
773550 RP04/05/06 Disk Dump.
773342 RX11 Floppy Disk Dump.
4.3 BM873-YG
4.3.1 First Used On - DN87 Communications Front End.
4.3.2 Current Usability - DN87 Communications Front End.
KL10 BM873 Bootstrap ROMs Page 13
4.3.3 Summary Of Features -
- DTE20 Bootstrap and Dump
- DL11 Asynchronous Line Bootstrap
- Bootstrap Parameters
4.3.4 Button Addresses -
#1 773000 DL11
#2 (unused)
#3 (unused)
#4 773574 DTE20
4.3.5 Other Entry Locations -
4.4 BM873-YH
4.4.1 First Used On - DECsystem-10xx Console Front End.
4.4.2 Current Usability - DECsystem-10xx Console Front End,
DECsystem-20xx Console Front End.
4.4.3 Summary Of Features -
- Switch Register
- RP04/05/06 Disk Bootstrap
- RX11 Floppy Disk Bootstrap
- TC11 DECtape Bootstrap
- Error Retry
- Bootstrap Parameters
- Parameter Entry
4.4.4 Button Addresses -
#1 773000 Switch Register
#2 773030 Disk
#3 773020 Floppy/DECtape
#4 773554 DTE20
KL10 BM873 Bootstrap ROMs Page 14
4.4.5 Other Entry Locations -
773300 TC11 DECtape Bootstrap. Used if DECtape bootstrap (unit 0)
desired and RX11 Floppy exists in configuration.
4.5 BM873-YJ
4.5.1 First Used On - DECsystem-20xx Communications Front End.
4.5.2 Current Usability - DECsystem-10xx Console Front End,
DECsystem-20xx Console Front End, DECsystem-10xx Communications Front
End, DECsystem-20xx Communications Front End.
4.5.3 Summary Of Features -
- Switch Register
- RP04/05/06 Disk Bootstrap
- RX11 Floppy Disk Bootstrap
- TC11 DECtape Bootstrap
- DTE20 Bootstrap and Dump
- DL11 Asynchronous Line Bootstrap
- Error Retry
- Bootstrap Parameters
- Parameter Entry
- PDP11/34 Support
4.5.4 Button Addresses -
#1 773220 Switch Register (halts)
#1 773000 Switch Register (does not halt)
#2 773030 Disk
#3 773020 Floppy/DECtape/DL11
#4 773230 DTE20
4.5.5 Other Entry Locations -
773214 TC11 DECtape Bootstrap. Used if DECtape bootstrap (unit 0)
desired and RX11 Floppy exists in configuration.
773530 DL11 Asynchronous Line Bootstrap. Used if DL11 bootstrap
desired and either RX11 Floppy Disk or TC11 DECtape exists in
configuration.
KL10 BM873 Bootstrap ROMs Page 15
[End of KL873.MEM]