1 ;;; Copyright (c) 1999 Massachusetts Institute of Technology
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 2 of the
6 ;;; License, or (at your option) any later version.
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.
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.
19 ;ALLOW USER TO USE SYMBOLS IN OTHER WAYS IF HE WISHES.
20 ;BUT NORMALLY, DEFSYM FOO==BAR DOES FOO==BAR WITH ERROR CHECK.
29 IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/`
34 IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 1.
37 ];IF Not DEFined DEFSYM
40 ;DISK PHYSICAL PARAMETERS (CENTURY DATA T-300 AND 2561 CONTROLLER)
41 ;SINCE WE HAVE ALSO AN RH10 CONTROLLER, THESE ARE SUFFIXED WITH A 1
43 DEFSYM NCYLS1==812. ;# CYLINDERS NORMALLY USED
44 DEFSYM XCYLS1==815.-NCYLS1 ;# CYLINDERS FOR SPARES, HACKS, ETC.
45 DEFSYM NHEDS1==19. ;# TRACKS/CYLINDER
46 DEFSYM NSECS1==32. ;# SECTORS/TRACK (256. 16-BIT WORDS)
47 DEFSYM SECBL1==12. ;# SECTORS/BLOCK
48 DEFSYM NBLKC1==NHEDS1*NSECS1/SECBL1 ;# BLOCKS/CYLINDER
49 DEFSYM NBLKS1==NCYLS1*NBLKC1 ;# BLOCKS NORMALLY USED
50 DEFSYM XBLKS1==XCYLS1*NBLKC1 ;# BLOCKS FOR HACKS
51 DEFSYM TBLKS1==NBLKS1+XBLKS1 ;TOTAL BLOCKS
53 DEFSYM NTUTB1==4 ;4 BLOCKS PER TUT HERE
54 DEFSYM TUTBL1==MFDBLK-NTUTB1 ;TUT ALSO STARTS AT A DIFFERENT PLACE
56 ;TAKE DECADE FROM RH1O DEFS
57 ;DEFSYM DECADE==NBLKSC ;NUMBER OF BLOCKS TO ALLOCATE AT A TIME
58 ; ;QSWAPA AND QLASTB MUST BE MULTIPLES OF THIS.
59 ; ;DECADE SIZE = CYLINDER SIZE FOR KLFEDR'S SAKE
61 ;10/11 COMMUNICATION AREA IS 14. WORDS STARTING 48. WORDS INTO THE 64.-WORD DL10 AREA
63 DEFSYM DSCCHK=DL10AR+60 ;MUST BE 2561 OCTAL
64 DEFSYM DSCREQ=DL10AR+61 ;SET NON-ZERO BY 10 TO SIGNAL REQUEST TO 11
65 DEFSYM DSCDON=DL10AR+62 ;SET NON-ZERO BY 11 TO SIGNAL DONE TO 10
66 DEFSYM DSCFLT=DL10AR+63 ;0 NO FAULT
67 DEFSYM %DFRST==100000 ;POWER CYCLED OR BROKEN, SO CONTROLLER WAS RESET
68 DEFSYM %DFCQE==10000 ;CONSISTENCY ERROR IN COMMAND QUEUE
69 DEFSYM %DFNXM==4000 ;NXM ERROR IN COMMAND QUEUE
70 DEFSYM %DFPAR==2000 ;PARITY ERROR IN COMMAND QUEUE
71 ; IF ONE OF THESE BITS IS ON, BITS 1-0 AND DSCSTS
72 ; ARE THE ERROR ADDRESS
73 ;BITS 7-0 SYSTEM FAULT CODE IF LEFT BYTE IS ZERO
74 ; SEE THE 2561 OEM MANUAL FOR MEANING OF FAULT CODES
75 DEFSYM DSCSTS=DL10AR+64 ;STATUS BITS AS FOLLOWS
76 DEFSYM %DSRTR==100000 ;COMMAND WAS RETRIED
77 DEFSYM %DSECH==40000 ;UNCORRECTABLE DATA ERROR (ECC HARD)
78 DEFSYM %DSECC==20000 ;CORRECTED DATA ERROR
79 DEFSYM %DSIDE==10000 ;ID ERROR
80 DEFSYM %DSHCE==4000 ;ADDRESS ERROR (HEADER COMPARE ERROR)
81 DEFSYM %DSPRT==2000 ;WRITE-PROTECT STATUS OF SECTOR (ABORTS WRITE COMMAND)
82 DEFSYM %DSALT==1000 ;ALTERNATE-SECTOR STATUS (ABORTS READ, WRITE, AND CHECK)
83 DEFSYM %DSOVR==400 ;FIFO OVER-RUN, NOT CORRECTED BY 1 RETRY
84 DEFSYM %DSSKE==200 ;SEEK ERROR FROM DRIVE
85 DEFSYM %DSOFL==100 ;DRIVE OFF-LINE OR FAULT
86 DEFSYM %DSFLT==20 ;DRIVE FAULT
87 DEFSYM %DSNXM==10 ;NXM ON PDP11 MEMORY
88 DEFSYM %DSPAR==4 ;PARITY ERROR IN PDP11 MEMORY
89 DEFSYM %DSSFL==2 ;SYSTEM FAULT, SEE LOW BYTE OF DSCFLT
90 DEFSYM %DSWLK==1 ;DRIVE WRITE-LOCKED, WRITE ABORTED
92 DEFSYM DSCCMD=DL10AR+65 ;COMMAND CODE AS FOLLOWS
93 DEFSYM %DMSNS==2 ;SENSE DRIVE STATE. DSCSTS GETS CODE FOR DRIVE TYPE IN
94 ; BITS 14-8 (10 FOR T-300), AND %DSWLK, %DSFLT, %DSOFL, %DSSKE
95 DEFSYM %DMTST==3 ;TEST SPECIFIED DRIVE (RUNS DIAGNOSTICS)
96 DEFSYM %DMREC==4 ;RECALIBRATE
97 DEFSYM %DMSEK==5 ;SEEK
98 DEFSYM %DMWRT==6 ;WRITE DATA
99 DEFSYM %DMRED==20 ;READ DATA. ADD 1-10 FOR VARIOUS RECOVERY FEATURES AS
100 ; DOCUMENTED IN THE 2561 OEM MANUAL.
102 DEFSYM DSCDRV=DL10AR+66 ;DRIVE NUMBER (0 IS FIRST DRIVE ON 11)
103 DEFSYM DSCCYL=DL10AR+67 ;CYLINDER NUMBER
104 DEFSYM DSCHED=DL10AR+70 ;HEAD NUMBER
105 DEFSYM DSCSEC=DL10AR+71 ;SECTOR NUMBER
106 DEFSYM DSCPNT=DL10AR+72 ;4 12-BIT BYTE POINTERS TO DATA TO TRANSFER
108 IFN $$TEMP,EXPUNG DEFSYM