Difference between revisions of "RK11 disk controller"

From Computer History Wiki
Jump to: navigation, search
(777414: Maintenance Register (RKMR))
m (Disk 0: Foymatting)
Line 76: Line 76:
 
{| border=1  
 
{| border=1  
 
! Address !! Data !! Mnemonic !! Description
 
! Address !! Data !! Mnemonic !! Description
|-
+
|- style="background-color: #aaaadd;"
 
|1000||012700||MOV #177406,R0          ||Move the top of the address of the controller into r0
 
|1000||012700||MOV #177406,R0          ||Move the top of the address of the controller into r0
|-
+
|- style="background-color: #aaaaff;"
 
|1002||177406||                        || (constant)
 
|1002||177406||                        || (constant)
|-
+
|- style="background-color: #aaaadd;"
 
|1004||012710||MOV #177400,(R0)        ||Move 177400 into 177406
 
|1004||012710||MOV #177400,(R0)        ||Move 177400 into 177406
|-
+
|- style="background-color: #aaaaff;"
 
|1006||177400||                        || (constant)
 
|1006||177400||                        || (constant)
|-
+
|- style="background-color: #aaaadd;"
 
|1010||012740||MOV #5,-(r0)        ||Move 5 into 177404
 
|1010||012740||MOV #5,-(r0)        ||Move 5 into 177404
|-
+
|- style="background-color: #aaaaff;"
 
|1012||000005||                        || (constant)
 
|1012||000005||                        || (constant)
|-
+
|- style="background-color: #aaaadd;"
 
|1014||105710||TSTB (R0)                ||Test byte at 177404
 
|1014||105710||TSTB (R0)                ||Test byte at 177404
|-
+
|- style="background-color: #aaaaff;"
 
|1016||100376||BPL 1014                  ||Jump backward if positive
 
|1016||100376||BPL 1014                  ||Jump backward if positive
|-
+
|- style="background-color: #aaaadd;"
 
|1020||005007||CLR PC                  ||Jump to zero
 
|1020||005007||CLR PC                  ||Jump to zero
 
|}
 
|}

Revision as of 21:58, 17 May 2007

The RK11 is the UNIBUS controller for the RK05 moving-head magnetic disk drive.

Physical implementation

Todo.

Device registers

Register Abbreviation Address
Drive Status Register RKDS 777400
Error Register RKER 777402
Control Status Register RKCS 777404
Word Count Register RKWC 777406
Current Bus Address Register RKBA 777410
Disk Address Register RKDA 777412
Maintenance Register RKMR 777414
Data Buffer Register RKDB 777416

777400: Drive Status Register (RKDS)

Drive Ident. DPL HDEN DRU SIN SOK DRY ARDY WPS SC=CA Sector Counter
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777402: Error Register (RKER)

DRE OVR WLO SKE PGE NXM DLT RTE NXD NXC NXS CSE WCE
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777404: Control Status Register (RKCS)

ERR H.E. SCP M IBA FMT R/WA SSE RDY IDE EX. MEM FUNCTION GO
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777406: Word Count Register (RKWC)

WC15 <---> WC00
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777410: Current Bus Address Register (RKBA)

BA15 <---> BA00
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777412: Disk Address Register (RKDA)

DRIVE SELECT CYLINDER ADDRESS SUR SECTOR ADDRESS
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777414: Maintenance Register (RKMR)

M. RCP M. RDP M. SPS M. ADA M. LAI M. DRY M. R/W/S MAINT. SECTOR COUNTER
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777416: Data Buffer Register (RKDB)

DB15 <---> DB00
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

PDP-11 bootstraps

Disk 0

I know the octal data is correct, but I'm not sure about the mnemonics and the description.

Address Data Mnemonic Description
1000 012700 MOV #177406,R0 Move the top of the address of the controller into r0
1002 177406 (constant)
1004 012710 MOV #177400,(R0) Move 177400 into 177406
1006 177400 (constant)
1010 012740 MOV #5,-(r0) Move 5 into 177404
1012 000005 (constant)
1014 105710 TSTB (R0) Test byte at 177404
1016 100376 BPL 1014 Jump backward if positive
1020 005007 CLR PC Jump to zero

Disk n

This bootstrap will boot from any disk in a daisy-chained multi-drive configuration. Memory location octal 1006 contains the unit number, as follows:

Address Data Mnemonic Description
1000 012700 MOV #177406, R0 Store the address of the Word Count register in r0
1002 177406 (constant) (Which is 177406)
1004 012760 MOV xxxxxx, 000004(R0) Store the disk ID number in the Disk Address register
1006 xxxxxx (disk ID number) The disk number goes here.
1010 000004 (index)
1012 012700 MOV #177406, R0 Store the addresss of the Word Count register in r0
1014 177406 (constant) (Which is 177406)
1016 012710 MOV #177400, (R0) Store 177400 into the Word Count register,
1020 177400 (constant) meaning that octal 400 words are to be read.
1022 012740 MOV #000005, -(R0) Store 5 into the Control Status register
1024 000005 (constant) selecting the function "read" with 4, and "go" with 1
1026 105710 TSTB (R0) Test the Control Status Register (upper) byte
1030 100376 BPL *-1 Repeat if it's positive, that is Control Ready is cleared
1032 005007 CLR PC If not, clear the Program Counter (essentially, jump to 0)
Value Unit
020000 Unit 1
040000 Unit 2
060000 Unit 3
100000 Unit 4
120000 Unit 5
140000 Unit 6
160000 Unit 7

Documentation

RK11-C manual, 1971

RK11-C schematics, February 1971

EK-RK11D-MM-002, RK11-D Maintenance Manual