Google
 

Trailing-Edge - PDP-10 Archives - AP-4178E-RM - swskit-documentation/rom11.fnc
There are no other files named rom11.fnc in the archive.


+---------------+
! d i g i t a l !   I N T E R O F F I C E  M E M O R A N D U M
+---------------+

TO:  KL10 Front End Group
                                       DATE:  23 Jun 75

                                       FROM:  T. Porcher

                                       DEPT:  DEC10 S. E. Dept.

                                       LOC:   MB-2   EXT:  6877

                                       FILE:  [DOC-FRONT-END]
                                               ROM11.SPC

                                       PDM #: 200-205-014-02

                                       DISTRIBUTED:  

                                       REVIEWED:  

SUBJ:  Functional Specification for KL10 Bootstrap ROM



This document supercedes and replaces PDM# 200-205-014-01.


BM873 Hardware

The BM873 is a hardware bootstrap ROM with  256  words  of  -11
code  starting at location 773000.  Associated with the ROM are
four "push-buttons" which start  the  ROM  code  at  hard-wired
locations.  These "push-buttons" may be either external contact
closures or internal  logic.   Starting  of  the  ROM  code  is
implemented  by  simulating power-fail.  Two power fail vectors
are required in the ROM:  one at 773024  (for  power-fail)  and
one  at  773224  (for  power-up  with  volatile  memory).   the
programmed ROM for the KL-10 front-end bootstrap is  designated
BM873-YK.


Functions of KL-10 Front-End Bootstrap ROM

The basic functions of the BM873-YD ROM are as follows:

    1.  To bootstrap the -11 (and subsequently  the  -10)  from
        the  RX11 Floppy Disk or the RP04 Disk at the push of a
        button.

    2.  To dump the first 28K of -11 memory to either the  RX11
        or the RP04.

    3.  To (optionally) dump -11 memory to the -10 through  the
to:  KL10 Front End Group                                Page 2
Subj: Functional Specification for KL10 Bootstrap ROM


        DTE20, then bootstrap the -11 through the DTE20, at the
        request of the -10.

    4.  To  do  any   bootstrap   operation,   with   different
        parameters, selected in the Switch Register.


Button 1 -- Examine Switch Register

The interpretation of the switch register is given in  Appendix
A.  Bit 0 of the switch register is tested;  if it is zero, the
general registers are saved in locations 40-56 and  control  is
transferred  to the address specified in the switches.  This is
to allow starting of dump routines easily.   Otherwise,  bit  7
selects  the  bootstrap device (0= RX11, 1= RP04) and bits 10-8
select the unit number.  Bit 15 on means to retry  indefinitely
on encountering an error.


Button 2 -- Bootstrap from RP04 Disk

Pressing this button does a bootstrap  from  the  RP04  with  a
default  unit  number of zero.  This is the same operation that
would occur if bit 7 were set in the switches when button 1 was
pressed.


Button 3 -- Bootstrap from RX11 Floppy Disk.

Pressing this button does a bootstrap  from  the  RX11  with  a
default  unit  number of zero.  This is the same operation that
would occur if bit 7 was not set in the switches when button  1
was pressed.


Button 4 -- Reload -11 from -10.

This is not a true "button" but invoked by the DTE20  when  the
-10  sets  the Reload -11 bit SR11B.  This can be set by any of
the four DTE20's connected to the -11.  The  general  registers
are  saved  in  locations  40-56,  then which DTE20 pressed the
reload button is found by locating the first  DTE20  which  has
both  rung the -11's doorbell and has the value 1365 (octal) in
it's To -10 Byte Count register TO10BC.   The  first  12  DTE20
registers  DLYCNT to TO11DT are saved starting at location 130.
The -11 memory is optionally dumped to the -10, then a 256 word
bootstrap  is loaded into the first 256 words of -11 memory and
control is transferred to the loaded bootstrap at  location  0.
The protocol of this operation is described in Appendix B.


Bootstrap operations

Bootstrapping from any device implies loading  256  words  from
to:  KL10 Front End Group                                Page 3
Subj: Functional Specification for KL10 Bootstrap ROM


the  device  (usually  the  first 256 words available) into the
first 256 words of -11 memory, starting at location 0.  Control
is  transferred  to  location  0  on  successful  completion of
loading.  A parameter word is passed to the secondary bootstrap
in  R5,  which indicates how the bootstrap was invoked and from
which device.  R5 contains one of the following:

    Bit 0= 1    Bootstrap initiated by pressing button  1.   R5
                contains  a  copy  of the switch register.  See
                Appendix A for a description of remaining bits.

    Bit 7= 0    Bootstrap  from  RX11  Floppy  Disk  (button  3
                pressed if bit 0= 0).

    Bit 7= 1    Bootstrap from RP04 Disk (button 2  pressed  if
                bit 0= 0).

    Bit 15= 1   (only if bit 0=  0)  Bootstrap  through  DTE20,
                button 4 pressed.

R1 will be left pointing to the contol and status  register  of
the  bootstrap  device.   R0  will  contain  the unit number in
position for the device's unit select register.

Bootstrap from RX11 Floppy Disk

Logical block 0, which consists of track 1, sectors 1, 3, 5, 7,
is  read into the first 256 words of -11 memory.  If any errors
occur,  the  entire  operation  is   retried   10   times   (or
indefinitely  if  bit  15  of  the  switch register was on when
button 1 was pressed).  With no errors, control is  transferred
to location 0.


Bootstrap from RP04 Disk

Block 0 (track 0, sector 0, cylinder 0) is read into the  first
256  words  of  -11  memory.   If  any errors occur, the entire
operation is retried 10 times (or indefinitely if bit 15 of the
switch  register  was  on  when button 1 was pressed).  With no
errors, control is transferred to location 0.


Dump Operations

Dump routines exist in the ROM and are invoked by  setting  the
address  of the desired dump routine in the switch register and
pressing  button  1.   This  saves  the  general  registers  in
locations 40-56 and transfers control to the specified routine.
On successful completion of a dump, the  -11  halts  displaying
zero in R0.


Dump to RX11 Floppy Disk
to:  KL10 Front End Group                                Page 4
Subj: Functional Specification for KL10 Bootstrap ROM


The first 28k of the -11 memory is written onto the diskette in
unit  0,  starting  with  track  59, sector 1, in every sector.
Note that no interleaving of sectors or skewing  of  tracks  is
done.   A  scratch  diskette should be used to avoid destroying
the system files.  If any errors occur, the entire operation is
retried 10 times.  After completion of the dump, the -11 halts.


Dump to RP04 Disk

The first 28K of  the  -11  memory  is  written  onto  unit  0,
cylinder  409,  track  13,  sector 8.  If any errors occur, the
entire operation is retried 10 times.  After completion of  the
dump, the -11 halts.

Errors on Bootstrap and Dump Operations

If a hard error  occurs  the  -11  halts  displaying  an  error
indication  in  R0.   From  the  RX11,  the  Error  Register is
displayed.  From the RP04, the Drive Status  Register  RPDS  is
displayed..
to:  KL10 Front End Group                                Page 5
Subj: Functional Specification for KL10 Bootstrap ROM


                          APPENDIX A

The PDP11  front  panel  switch  register  is  intended  to  be
interpreted as follows:

Bit 0           UNIBUS address or encoded flags

                0 = the  switch  register  contains  a   UNIBUS
                    address.   Jump  to that address instead of
                    interpreting it as described below.

                1 = the switch register contains encoded  flags
                    which  are  to  be interpreted as described
                    below.

Bits 1, 2       Operator dialog or automatic load

                00 = load default system (no dialog)
                01 = load 1080 system (no dialog)
                10 = load 2010 system (no dialog)
                11 = ask dialog questions to control loading

Bits 3-6        The initial console  line  speed  or  interface
                number

                00-02,16,17 = The    console    terminal     is
                              interfaced through the associated
                              DL11.  Use the contents  of  bits
                              8-10 as the bootstrap device unit
                              number and use  the  contents  of
                              bits 11-14 as a code for the fill
                              class for the console terminal.

                03-15 = The  console  terminal  is   interfaced
                        through  a  DH11.   Use the contents of
                        this field as the  speed  setting  (and
                        fill  class)  for the console terminal.
                        Bootstrap from unit number  zero.   Use
                        the  contents  of bits 8-10 as the DH11
                        controller number and use the  contents
                        of  bits  11-14  as  the line number on
                        that DH11.

Bit 7           The bootstrap device

                0 = RX11 Floppy Disk (controller at address 
                    777170
                1 = RH11/RP04 (controller at address 776700)

Bits 8-10       The console terminal DH11 number  or  bootstrap
                unit number

                If the contents of bits 3-6  is  in  the  range
                3-15 (octal), this is the number of the DH11 to
to:  KL10 Front End Group                                Page 6
Subj: Functional Specification for KL10 Bootstrap ROM


                which the console terminal  is  connected.   If
                the  contents  of  bits 3-6 is not in the range
                3-5 (octal) this is the  unit  number  for  the
                bootstrap device.

Bits 11-14      The console terminal line number or fill class

                If the contents of bits 3-6  is  in  the  range
                3-15  (octal),  this is the line number (on the
                DH11 designated by bits 8-10)  of  the  console
                terminal.   If  the contents of bits 3-6 is not
                in the range 3-15 (octal),  this  is  the  fill
                class for the console terminal.

Bits 15         What to do upon detecting an error

                0 = Halt  on  errors   after   at   least   ten
                    unsuccessful retries

                1 = Retry (indefinitely) on errors
to:  KL10 Front End Group                                Page 7
Subj: Functional Specification for KL10 Bootstrap ROM


                          APPENDIX B

Button 4 - Bootstrap and Dump through DTE20

The following is the procedure by which the ROM code dumps  and
bootstraps the -11 through the DTE20.

 1.  Save R0 to R7 in -11 memory locations 40 to 56.

 2.  Find the DTE which is both ringing the -11's doorbell  and
     has 1365 in the to -10 byte count.

 3.  Save the first 12 DTE registers, DLYCNT to TO11DT, in  -11
     memory locations 130 to 156.

 4.  Clear the DTE20 and stop doorbell from ringing

 5.  Set delay count to maximum (zero).

 6.  Set to -10 address to 0 to start transfer of -11 memory to
     -10.

 7.  Wait for doorbell.

 8.  Stop doorbell from ringing.

 9.  Set to -11 address to 0.

10.  Set to -11 byte count to -256 words to start transfer.

11.  Wait for doorbell.

12.  Stop doorbell from ringing.

13.  Set R5 to bit 15=1, bit 0=0 to indicate button 4 pressed.

14.  Go to location 0.

The following is the procedure  by  which  the  -10  dumps  and
bootstraps the -11 through the DTE20.

 1.  Clear the DTE20 and press reload -11 button 4.
     CONO [SR11B!CL11PT!CLTO11!CLTO10!PILDEN]

 2.  Wait for -11 power fail.
     CONI [DEAD11]=1

 3.  Wait for -11 power recover.
     CONI [DEAD11]=0

 4.  Wait another 150ms.

 5.  Set to -10 byte count to a special code 1365(octal).
     DATAO [1365]
to:  KL10 Front End Group                                Page 8
Subj: Functional Specification for KL10 Bootstrap ROM


 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 l