Consolidate license copies
[its.git] / system / rh10.defs26
1 ;;; Copyright (c) 1999 Massachusetts Institute of Technology
2 ;;;
3 ;;; This program is free software; you can redistribute it and/or
4 ;;; modify it under the terms of the GNU General Public License as
5 ;;; published by the Free Software Foundation; either version 3 of the
6 ;;; License, or (at your option) any later version.
7 ;;;
8 ;;; This program is distributed in the hope that it will be useful,
9 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 ;;; General Public License for more details.
12 ;;;
13 ;;; You should have received a copy of the GNU General Public License
14 ;;; along with this program; if not, write to the Free Software
15 ;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16
17 .AUXIL
18
19 ;ALLOW USER TO USE SYMBOLS IN OTHER WAYS IF HE WISHES.
20 ;BUT NORMALLY, DEFSYM FOO==BAR DOES FOO==BAR WITH ERROR CHECK.
21
22 IFNDEF DEFSYM,[
23 DEFINE DEFSYM X/
24 IRPS Z,,[X]
25 IFNDEF Z,X
26 .ELSE [
27    $$TEM1==Z
28    X
29    IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/`
30 ]
31 .ISTOP
32 TERMIN TERMIN
33
34 IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 1.
35 .MLLIT==1
36 $$TEMP==1
37 ];IF Not DEFined DEFSYM
38 .ELSE $$TEMP==0
39 \f
40
41 ;DISK PHYSICAL PARAMETERS (RH10 CONTROLLER)
42
43 DEFSYM  NCYLS==406.             ;# CYLINDERS NORMALLY USED
44 DEFSYM  XCYLS==411.-NCYLS       ;# CYLINDERS FOR SPARES, HACKS, ETC.
45 DEFSYM  NHEDS==19.              ;# TRACKS/CYLINDER
46 DEFSYM  NSECS==20.              ;# SECTORS/TRACK
47 DEFSYM  SECBLK==8               ;# SECTORS/BLOCK
48 DEFSYM  NBLKSC==NHEDS*NSECS/SECBLK ;# BLOCKS/CYLINDER
49 DEFSYM  NBLKS==NCYLS*NBLKSC     ;# BLOCKS NORMALLY USED
50 DEFSYM  XBLKS==XCYLS*NBLKSC     ;# BLOCKS FOR HACKS
51 DEFSYM  TBLKS==NBLKS+XBLKS      ;TOTAL BLOCKS
52
53 DEFSYM  NTUTBL==2               ;2 BLOCKS PER TUT
54 DEFSYM  DECADE==NBLKSC          ;NUMBER OF BLOCKS TO ALLOCATE AT A TIME
55                                 ;QSWAPA AND QLASTB MUST BE MULTIPLES OF THIS.
56                                 ;DECADE SIZE = CYLINDER SIZE FOR KLFEDR'S SAKE
57 DEFSYM  DSK=270                 ;I/O DEVICE NUMBER OF RH10
58
59 ;CONI - LEFT HALF (ERROR BITS ONLY)
60
61 DEFSYM  %HID22==4000,,  ;4.3 1=>22-BIT DATA CHANNEL, 0=>18-BIT
62 DEFSYM  %HIILF==400,,   ;3.9 ILLEGAL FUNCTION CODE IN CONTROL REGISTER
63 DEFSYM  %HISDE==200,,   ;3.8 SELECTED DRIVE PREVIOUS ERROR NOT RESET
64 DEFSYM  %HIDPE==4,,     ;3.3 CHANNEL DATA PARITY ERROR
65 DEFSYM  %HICPE==2,,     ;3.2 CHANNEL CONTROL WORD PARITY ERROR
66 DEFSYM  %HINXM==1,,     ;3.1 CHANNEL NXM ERROR
67
68 ;CONI - RIGHT HALF
69
70 DEFSYM  %HIBPE==400000  ;2.9 DATA BUSS PARITY ERROR
71 DEFSYM  %HIEXC==200000  ;2.8 "EXCEPTION" IN DRIVE DURING DATA TRANSFER
72 DEFSYM  %HICER==100000  ;2.7 CHANNEL ERROR (OR OF 3 BITS IN LH)
73 DEFSYM  %HICWW==040000  ;2.6 CONTROL WORD HAS BEEN WRITTEN
74 DEFSYM  %HIOVR==020000  ;2.5 OVER-RUN (MEMORY DATA LATE)
75 DEFSYM  %HIDRE==010000  ;2.4 DRIVE RESPONSE ERROR - NO RESPONSE FROM DRIVE
76 DEFSYM  %HIILC==004000  ;2.3 ILLEGAL COMMAND OR REGISTER ACCESS ERROR
77 DEFSYM  %HIPWR==002000  ;2.2 POWER FAIL
78 DEFSYM  %HICOV==000200  ;1.8 CONTROL BUS OVER-RUN
79 DEFSYM  %HIRAE==000100  ;1.7 REGISTER ACCESS ERROR (ONLY IF INTR ENB)
80 DEFSYM  %HIATN==000040  ;1.6 ATTENTION (INTERRUPTS)
81 DEFSYM  %HIBSY==000020  ;1.5 CONTROL BUSY WITH DATA TRANSFER
82 DEFSYM  %HIDON==000010  ;1.4 DATA TRANSFER DONE, NORMAL OR ERROR
83                         ;1.1-1.3 PIA AS USUAL
84 DEFSYM  %HIERR==736300  ;CONI ERROR BITS
85
86 ;CONO
87
88                         ;2.7-2.9 CLEAR CORRESPONDING ERROR BITS
89 DEFSYM  %HOWCW==040000  ;2.6 WRITE CONTROL WORD
90                         ;2.3-2.5 CLEAR CORRESPONDING ERROR BITS
91 DEFSYM  %HORST==002000  ;2.2 RESET THE CONTROLLER
92                         ;1.8 CLEARS CORRESPONDING ERROR BIT
93 DEFSYM  %HORAE==000100  ;1.7 ENABLE RAE TO INTERRUPT
94 DEFSYM  %HOATN==000040  ;1.6 ENABLE ATTENTION TO INTERRUPT
95 DEFSYM  %HOSTP==000020  ;1.5 STOP DATA TRANSFER, CLR BSY, SET DONE
96                         ;1.4 CLEARS CORRESP BIT (DONE)
97                         ;1.1-1.3 SET PIA
98 DEFSYM  %HOCLR==734210  ;CONO TO CLEAR ALL ERROR BITS
99 \f
100 ;CONTROLLER REGISTER NUMBERS (LH OF DATAO)
101
102 DEFSYM  %HRLOD==1_13            ;4.3 BIT TO SAY "LOAD SELECTED REGISTER"
103 DEFSYM  %HRCTL==40_14           ;CONTROL REGISTER
104 DEFSYM   $HCDRV==.BP <7,,>      ;3.1-3.3 DRIVE SELECT FIELD
105 DEFSYM   $HCICWA==.BP 077700    ;1.7-2.6 INITIAL CONTROL WORD ADDR
106                                 ;AS USUAL, 1.7 IS REALLY THE WRITE EVEN PARITY BIT
107                                 ;1.1-1.6 FUNCTION CODE (%HMxxx) AND GO BIT
108 DEFSYM  %HRBUF==50_14           ;DATA BUFFER REGISTER (MAINTENANCE)
109 DEFSYM  %HRIAD==44_14           ;INTERRUPT ADDRESS REGISTER
110                                 ;3.2 1=>KI-10 MODE, 0=>KA-10 MODE
111                                 ;1.1-1.9 9-BIT VECTOR ADDRESS (KI)
112 DEFSYM  %HRRAE==54_14           ;REGISTER ACCESS ERROR REGISTER
113                                 ;DATAI 1.1-1.8 RAE DRIVE 0-7
114                                 ;DATAO 1.1-1.8 CLEAR THAT BIT
115 DEFSYM  %HRCBF==74_14           ;CHANNEL BUFFER
116
117 ;COMMANDS
118 ; COMMANDS THAT DO I/O ARE PUT IN %HRCTL ALONG WITH $HCICWA
119 ; OTHER COMMANDS ARE STORED INTO %HRDCL
120 ; IN EITHER CASE $HCDRV SAYS WHICH DRIVE
121
122 DEFSYM  %HMNOP==0       ;NO OPERATION
123 DEFSYM  %HMUNL==3       ;UNLOAD (DOES PACK FLY OFF?)
124 DEFSYM  %HMREC==7       ;RECALIBRATE
125 DEFSYM  %HMCLR==11      ;DRIVE CLEAR (RESET ERRORS ETC.)
126 DEFSYM  %HMRLS==13      ;DRIVE RELEASE (DUAL PORT)
127 DEFSYM  %HMSRC==31      ;SEARCH (FOR R.P.S.)
128 DEFSYM  %HMWCH==51      ;WRITE CHECK -- DOESN'T WORK (DEC BRAIN DAMAGE)
129 DEFSYM  %HMWCF==53      ;WRITE CHECK FORMAT (HEADER AND DATA) -- DOESN'T WORK
130 DEFSYM  %HMWRT==61      ;WRITE DATA
131 DEFSYM  %HMWHD==63      ;WRITE HEADER AND DATA (FORMAT THE PACK)
132 DEFSYM  %HMRED==71      ;READ DATA
133 DEFSYM  %HMRHD==73      ;READ HEADER AND DATA
134 DEFSYM  %HMSEK==5       ;SEEK TO CYLINDER
135 DEFSYM  %HMOFS==15      ;OFFSET HEADS SLIGHTLY
136 DEFSYM  %HMCEN==17      ;RETURN HEADS TO CENTERLINE
137 DEFSYM  %HMACK==23      ;ACKNOWLEDGE MOUNTING OF PACK (REQUIRED BEFORE I/O)
138 DEFSYM  %HMRDP==21      ;"READ-IN PRESET"
139
140 ;STANDARD FIELDS IN DRIVE REGISTERS
141
142                                 ;3.1-3.3 DRIVE NUMBER ($HCDRV)
143 DEFSYM  %HDCBT==002000          ;4.2 CONTROL BUS TIMEOUT
144 DEFSYM  %HDPAR==001000          ;4.1 MASS BUS CONTROL PARITY ERROR
145 DEFSYM  %HDDLT==000400          ;3.9 DATA LATE (NEED 3 US BETWEEN DATAO AND DATAI)
146 DEFSYM  %HDILC==000200          ;3.8 ILLEGAL COMMAND
147 DEFSYM  %HDERR==003600          ;ALL BITS FOR ERRORS IN TALKING TO DRIVE
148  ;DRIVE-DEPENDENT DATA IS IN LOW 16 BITS (1.1-2.7)
149 \f
150 ;DRIVE REGISTERS (NUMBER IN LH OF DATAO)
151
152 DEFSYM  %HRDCL==0_14    ;DRIVE CONTROL REGISTER
153                         ;1.1-1.6 COMMAND (%HMxxx) 1.1=GO BIT
154 DEFSYM   %HCDVA==1_11.  ;2.3 DRIVE AVAILABLE
155
156 DEFSYM  %HRSTS==1_14    ;STATUS REGISTER
157                         ;1.1-1.6 BITS ON DURING HEAD LOAD SEQUENCE
158 DEFSYM   %HSVV==100     ;1.7 VOLUME VALID.  SET BY %HMACK, CLEARED BY
159                         ;    DRIVE TURN ON.  0 => PACK MAY HAVE BEEN CHANGED
160 DEFSYM   %HSRDY==200    ;1.8 DRIVE READY
161 DEFSYM   %HSDPR==400    ;1.9 "DRIVE PRESET" = CONNECTED TO THIS CONTROLLER
162 DEFSYM   %HSPGM==1000   ;2.1 "PROGRAMMABLE" = EITHER CTRLR CAN CONNECT
163 DEFSYM   %HSLST==2000   ;2.2 LAST SECTOR TRANSFERRED
164 DEFSYM   %HSWRL==4000   ;2.3 WRITE LOCK
165 DEFSYM   %HSMOL==10000  ;2.4 MEDIUM ON-LINE
166 DEFSYM   %HSPIP==20000  ;2.5 POSITIONING IN PROGRESS
167 DEFSYM   %HSERR==40000  ;2.6 BIT ON %HRER1, %HRER2, OR %HRER3
168 DEFSYM   %HSATN==100000 ;2.7 ATTENTION - ERROR, POSITIONING COMPLETE,
169                         ;     STARTUP COMPLETE, OR DRIVE AVAILABLE
170
171 DEFSYM  %HRER1==2_14    ;ERROR REGISTER 1
172                         ;GENERALLY THESE BITS ARE ONLY RESET BY %HMCLR
173                         ;1.1 ILLEGAL COMMAND IN %HRDCL
174                         ;1.2 ATTEMPT TO ACCESS NON-EXISTENT DRIVE REGISTER
175                         ;1.3 ATTEMPT TO WRITE IN DRIVE REGISTER WHILE DRIVE BUSY
176                         ;1.4 PARITY ERROR ON MASSBUS
177                         ;1.5 FORMAT ERROR (PACK & CPU NOT BOTH 16- OR BOTH 18-BIT)
178                         ;1.6 WRITE CLOCK FAIL
179 DEFSYM   %H1ECH==100    ;1.7 ECC HARD ERROR (NOT 11-BIT BURST)
180                         ;1.8 HEADER COMPARE ERROR
181                         ;1.9 HEADER CRC ERROR
182                         ;2.1 ADDRESS OVERFLOW
183                         ;2.2 INVALID ADDRESS
184 DEFSYM   %H1WLK==4000   ;2.3 ATTEMPT TO WRITE WHILE WRITE-LOCKED
185                         ;2.4 DRIVE TIMING ERROR.  MAY DE-FORMAT THE TRACK.
186                         ;2.5 OPERATION NOT COMPLETE (3 REVS NO ACTION)
187                         ;2.6 DRIVE UNSAFE - WRITE LOCK OR FIELD SERVICE
188 DEFSYM   %H1ECC==100000 ;2.7 DATA CHECK, ECC COMPUTATION INITIATED
189 DEFSYM   %H1SOF==110730 ;SOFT ERRORS
190
191 DEFSYM  %HRMNT==3_14    ;MAINTENANCE REGISTER (SEE RP04 MAINT MANUAL)
192
193 DEFSYM  %HRATN==4_14    ;ATTENTION SUMMARY REGISTER (NOT REALLY PER-DRIVE)
194                         ;1.1-1.8 %HSATN DRIVES 0-7
195                         ;CLEARED BY ACCESSING DRIVE OR WRITING A 1
196
197 DEFSYM  %HRADR==5_14            ;DESIRED SECTOR/TRACK ADDRESS
198 DEFSYM   $HATRK==.BP 17400      ;TRACK 0-22 OCTAL
199 DEFSYM   $HASEC==.BP 37         ;SECTOR 0-23 OCTAL (128 WORDS EACH)
200                                  ;NOTE THESE FIELDS ARE 8-BITS EACH
201
202 DEFSYM  %HRLAH==7_14    ;LOOK AHEAD (READ ONLY)
203                         ;NUMBER OF 64'THS OF A SECTOR
204 \f
205 DEFSYM  %HRTYP==6_14    ;DRIVE TYPE (RO)
206                         ;1.1-1.9 DRIVE TYPE NUMBER (20 FOR "RP04")
207                         ;2.3 DUAL-PORT DRIVE
208                         ;2.5 MOVING HEAD
209                         ;2.6 TAPE
210                         ;2.7 NOT BLOCK ADDRESSED
211
212 DEFSYM  %HRSER==10_14   ;DRIVE SERIAL NUMBER (RO)
213
214 DEFSYM  %HROFS==11_14   ;HEAD OFFSET
215                         ;1.1-1.8 OFFSET CODE
216                         ;1.9-2.7 MISC CRUFTIES
217
218 DEFSYM  %HRCYL==12_14   ;DESIRED CYLINDER ADDRESS
219                         ; 0 TO 410 DECIMAL
220
221 DEFSYM  %HRCCY==13_14   ;CURRENT CYLINDER ADDRESS
222
223 DEFSYM  %HRER2==14_14   ;ERROR REGISTER 2
224                         ;MISC UNSAFE CONDITIONS IN DRIVE
225
226 DEFSYM  %HRER3==15_14   ;ERROR REGISTER 3
227                         ;1.1-1.7 MORE MISC UNSAFES IN DRIVE
228 DEFSYM   %H3SKI==40000  ;2.6 SEEK INCOMPLETE
229 DEFSYM   %H3OFC==100000 ;2.7 OFF CYLINDER
230
231 DEFSYM  %HRPOS==16_14   ;ECC POSITION
232                         ;LOCATION OF ERROR BURST WITHIN SECTOR
233
234 DEFSYM  %HRPAT==17_14   ;ECC PATTERN
235                         ;11-BIT ERROR BURST
236
237 ;DF10-C CHANNEL DEFINITIONS (22-BIT- (KI-) MODE)
238
239 DEFSYM  $DFCAD==002600,,        ;CURRENT ADDRESS - 1 (IN CONTROL WORD)
240 DEFSYM  $DFWC==261600,,         ;- WORD COUNT (IN CONTROL WORD)
241 DEFSYM  $DFLAD==002600,,        ;LAST DATA ADDRESS (IN STORED CONTROL WD)
242 DEFSYM  $DFCWA==261600,,        ;LAST CONTROL WORD ADDRESS (IN STORED CONTROL WORD)
243
244
245
246 IFN $$TEMP,EXPUNG DEFSYM