1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-02 01:50:24 +00:00
Files
PDP-10.its/src/system/rh11.defs48

293 lines
9.5 KiB
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; -*- Midas -*-
;;; Copyright (c) 1999 Massachusetts Institute of Technology
;;; See the COPYING file at the top-level directory of this project.
.AUXIL
; Canonical symbol definition macro, FOO==BAR with error check.
IFNDEF DEFSYM,[
DEFINE DEFSYM X/
IRPS Z,,[X]
IFNDEF Z,X
.ELSE [ $$TEM1==Z
X
IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/`
]
.ISTOP
TERMIN TERMIN
$$TEMP==1
] ;IFNDEF DEFSYM
.ELSE, $$TEMP==0
; For now, must have a disk type defined to get the correct register
; definitions.
IFNDEF RP06P,RP06P==0
IFNDEF RP07P,RP07P==0
IFNDEF RM03P,RM03P==0
IFNDEF RM80P,RM80P==0
IFN RP06P+RP07P+RM03P+RM80P-1,.FATAL Only one disk type allowed in RH11 DEFS
;;; Disk RH11 Interrupt vector:
DEFSYM PHVEC==254 ; Interrupts occur on level 6
; (high priority) on UBA #1.
;;; Disk RH11 Unibus register addresses:
DEFSYM %HRCS1=:776700 ;CTRL AND STATUS 1.
DEFSYM %HXSC== 1_15. ; Special Condition
DEFSYM %HXTRE==1_14. ; Transfer Error
DEFSYM %HXMCP==1_13. ; Mass I/O Control Bus Parity Error
DEFSYM %HXDVA==1_11. ; Drive Available
DEFSYM %HXPSE==1_10. ; Port Select
DEFSYM %HXA17==1_9. ; UB Address Extension Bit 17
DEFSYM %HXA16==1_8. ; UB Address Extension Bit 16
DEFSYM %HXRDY==1_7. ; Ready
DEFSYM %HXIE== 1_6. ; Interrupt Enable
DEFSYM $HXCMD==.BP 77 ; Bits 1-5 specify commands.
DEFSYM %HXGO== 1_0. ; GO bit
;;; Commands with bit 0 (GO) included:
DEFSYM %HMNOP==0 ; No Operation
DEFSYM %HMUNL==3 ; Unload ("Standby" -- the pack doesn't fly off).
DEFSYM %HMREC==7 ; Recalibrate
DEFSYM %HMCLR==11 ; Drive clear (reset errors etc.)
DEFSYM %HMRLS==13 ; Drive release (dual port)
DEFSYM %HMSRC==31 ; Search (for r.p.s.)
DEFSYM %HMWCH==51 ; Write Check (?doesn't work)
DEFSYM %HMWCF==53 ; Write Check Format, Header and Data (?doesn't work)
DEFSYM %HMWRT==61 ; Write Data
DEFSYM %HMRED==71 ; Read Data
DEFSYM %HMWHD==63 ; Write Header And Data (format the pack)
DEFSYM %HMRHD==73 ; Read Header and Data
IFN RP07P,[
DEFSYM %HMWTD==65 ; Write Track Descriptor
DEFSYM %HMRTD==75 ; Read Track Descriptor
]
DEFSYM %HMSEK==5 ; Seek to Cylinder
DEFSYM %HMOFS==15 ; Offset Heads Slightly
; Just sets %HSOFS on RP07
DEFSYM %HMCEN==17 ; Return Heads To Centerline
; Just clears %HSOFS on RP07
DEFSYM %HMACK==23 ; Acknowledge mounting of pack (required before I/O)
; No-op on RP07
DEFSYM %HMRDP==21 ; Read-In Preset
DEFSYM %HRWC=:776702 ;WORD COUNT.
DEFSYM %HRBA=:776704 ;UNIBUS ADDRESS.
DEFSYM %HRADR=:776706 ;DESIRED ADDRESS.
DEFSYM $HATRK==.BP 37400 ; Track
DEFSYM $HASEC==.BP 00177 ; Sector
;; These are the sizes on the RP07 -- other drives are smaller.
;; This is OK, as most places calculate this as Track_8+Sector
DEFSYM %HRCS2=:776710 ;CTRL AND STATUS 2.
DEFSYM %HYDLT==1_15. ; Data Late
DEFSYM %HYWCE==1_14. ; Write Check Error
DEFSYM %HYPE== 1_13. ; Parity Error
DEFSYM %HYNED==1_12. ; Non-existant Drive
DEFSYM %HYNEM==1_11. ; %HRBA is NXM during DMA
DEFSYM %HYPGE==1_10. ; Program Error
DEFSYM %HYMXF==1_9. ; Missed Transfer
DEFSYM %HYMDP==1_8. ; Mass Data Bus Parity Error
DEFSYM %HYOR== 1_7. ; Output Ready (for Silo buffer diag.)
DEFSYM %HYIR== 1_6. ; Input Ready (for Silo buffer diag.)
DEFSYM %HYCLR==1_5. ; Controller Clear
DEFSYM %HYPAT==1_4. ; Parity Test
DEFSYM %HYBAI==1_3. ; Unibus Address Increment Inhibit
DEFSYM $HYDSK==.BP 7 ; Bits 2-0 are the Unit Select.
DEFSYM %HRSTS=:776712 ;DRIVE STATUS.
DEFSYM %HSATN==1_15. ; Attention Active
DEFSYM %HSERR==1_14. ; Error
DEFSYM %HSPIP==1_13. ; Positioning In Progress
DEFSYM %HSMOL==1_12. ; Medium On-Line
DEFSYM %HSWRL==1_11. ; Write Locked
DEFSYM %HSLST==1_10. ; Last Sector Transferred
DEFSYM %HSPGM==1_9. ; Programmable
DEFSYM %HSDPR==1_8. ; Drive Present
DEFSYM %HSRDY==1_7. ; Drive Ready
DEFSYM %HSVV== 1_6. ; Volume Valid
; These are RP04-only bits in %HRSTS
; DEFSYM %HSDE1==1_5. ; Difference Equals 1
; DEFSYM %HSL64==1_4. ; Difference Less Than 64
; DEFSYM %HSGRV==1_3. ; Go Reverse
; DEFSYM %HSDIG==1_2. ; Drive To Inner Guard Band
; DEFSYM %HSF20==1_1. ; Drive Forward 20in/sec
; DEFSYM %HSF5== 1_0. ; Drive Forward 5in/sec
IFN RP07P,[
DEFSYM %HSILS==1_2. ; Interleaved Sectors
DEFSYM %HSWRN==1_1. ; Early Warning
DEFSYM %HSOFS==1_0. ; Offset Mode
]
DEFSYM %HRER1=:776714 ;ERROR 1.
DEFSYM %H1ECC==1_15. ; Data Check
DEFSYM %H1UNS==1_14. ; Unsafe
DEFSYM %H1OPI==1_13. ; Operation Incomplete
DEFSYM %H1DTE==1_12. ; Drive Timing Error
DEFSYM %H1WLK==1_11. ; Write Lock Error
DEFSYM %H1IAE==1_10. ; Invalid Address Error
DEFSYM %H1AOE==1_9. ; Address Overflow Error
DEFSYM %H1CRC==1_8. ; Header CRC Error
DEFSYM %H1HCE==1_7. ; Header Compare Error
DEFSYM %H1ECH==1_6. ; ECC Hard Error
DEFSYM %H1WCF==1_5. ; Write Clock Fail
DEFSYM %H1FER==1_4. ; Format Error
DEFSYM %H1PAR==1_3. ; Parity Error
DEFSYM %H1RMR==1_2. ; Register Modification Refused
DEFSYM %H1ILR==1_1. ; Illegal Register
DEFSYM %H1ILF==1_0. ; Illegal Function
DEFSYM %HRATN=:776716 ;ATTENTION SUMMARY.
; Each bit 7-0 corresponds to a drive asserting ATA.
DEFSYM %HRLAH=:776720 ;LOOK AHEAD.
; 2.2 - 1.7 Sector Count.
; 1.6 - 1.5 Encoded Extension Field.
DEFSYM %HRBUF=:776722 ;DATA BUFFER.
DEFSYM %HRMNT=:776724 ;MAINTENANCE.
DEFSYM %HRTYP=:776726 ;DRIVE TYPE.
; 2.7 NOT BLOCK ADDRESSED
; 2.6 TAPE
; 2.5 Moving Head (better be a 1!!)
; 2.3 Drive Request Required
; 1.9 - 1.1 Drive Type Number:
; RP04 = 20, RP05 = 21,
; RP06 = 22, RM03 = 24,
; RM80 = 26, RP07 = 42
DEFSYM %HRSER=:776730 ;SERIAL NUMBER.
DEFSYM %HROFS=:776732 ;OFFSET.
; 2.9-2.8 Unused
; 2.7 Sign Change (RP06 only)
; 2.7 Command Modifier (RP07 only)
; Must be set before %HMWHD, %HMWTD or %HMRTD
; 2.6 Move Track Descriptor (RP07 only)
; 0 = 128. bit track descriptor
; 1 = 344. bit track descriptor
; 2.4 Format Bit (1=16, 0=18)
; 2.3 ECC Inhibit
; 2.2 Header Compare Inhibit
; 2.1 Skip Sector Inhibit (RM 16bit only)
; 1.9 Unused
;
; 1.8 - 1.1 Unused on RP07
; RP07 doesn't support offsets
;
; RP06 Offsets
; 1.8 - 1.1 Offset Info
; +400 u" 00010000
; -400 u" 10010000
; +800 u" 00100000
; -800 u" 10100000
; +1200 u" 00110000
; -1200 u" 10110000
; Centerline 00000000
;
; RMxx Offsets
; 1.1-1.7 Unused
; 1.8 Offset Direction
; 0 - Away from spindle
; 1 - Towards spindle
DEFSYM %HRCYL=:776734 ;DESIRED CYLINDER.
IFN RP06P,[
DEFSYM %HRCCY=:776736 ;CURRENT CYLINDER.
DEFSYM %HRER2=:776740 ;ERROR 2.
DEFSYM %H2NHS==1_10. ; No Head Selection
DEFSYM %H2WRU==1_8. ; Write Ready Unsafe
DEFSYM %HRER3=:776742 ;ERROR 3.
DEFSYM %H3OFC==1_15. ; Off Cylinder
DEFSYM %H3SKI==1_14. ; Seek Incomplete (also sets UNS+ATA+PIP+RDY)
DEFSYM %H3DCL==1_6. ; DC power low (or perhaps AC?)
DEFSYM %H3ACL==1_5. ; AC power low (or perhaps DC?)
; (the documentation is confused about
; which is which.)
];RP06P
IFN RP07P,[
DEFSYM %HRCCY=:776736 ;CURRENT CYLINDER.
DEFSYM %HRER2=:776740 ;ERROR 2.
DEFSYM %H2PRG==1_15. ; Program Error
DEFSYM %H2CRM==1_14. ; Control ROM parity error
DEFSYM %H2H88==1_13. ; 8080 in drive is hung
;; DEC unimaginatively calls the following three bits
;; READ/WRITE UNSAFE 1, 2 and 3.
DEFSYM %H2WU3==1_12. ; Write current when no write in progress
DEFSYM %H2WU2==1_11. ; More than one head selected
DEFSYM %H2WU1==1_10. ; No write transitions during a write
DEFSYM %H2WOV==1_9. ; Write Overrun
DEFSYM %H2WRU==1_8. ; Write Ready Unsafe
DEFSYM $H2COD==.BP 377 ; Error Code
;; Error codes are:
;; 012 Seek operation too long.
;; 013 Guard band detected during seek operation.
;; 014 Seek operation overshoot.
;; 104 Guard band detection failure during recalibrate operation.
;; 105 Reference gap or guard band pattern detection failure during
;; recalibrate operation.
;; 106 Seek error during recalibrate operation.
;; 112 Heads have attempted to land on guard band during recalibrate
;; operation.
DEFSYM %HRER3=:776742 ;ERROR 3.
DEFSYM %H3BDS==1_15. ; Bad Sector
DEFSYM %H3SKI==1_14. ; Seek Incomplete (see error code in ER2)
DEFSYM %H3DSE==1_13. ; Defect Skip Error
DEFSYM %H3WCF==1_12. ; Write Current Failure
DEFSYM %H3LCF==1_11. ; Logic Control Failure
DEFSYM %H3LBC==1_10. ; Loss of Bit Clock
DEFSYM %H3LCE==1_9. ; Loss of Cylinder Error
DEFSYM %H3X88==1_8. ; 8080 in drive failed to respond to a command
DEFSYM %H3DCK==1_7. ; Device Check
DEFSYM %H3WHD==1_6. ; Index Unsafe (Bad %HMWHD)
DEFSYM %H3DCL==1_5. ; DC Low voltage
DEFSYM %H3SDF==1_4. ; Serdes Data (data buffer timing) Failure
DEFSYM %H3PAR==1_3. ; Data Parity Error during write operation
DEFSYM %H3SYB==1_2. ; Sync Byte error
DEFSYM %H3SYC==1_1. ; Sync Clock failure
DEFSYM %H3RTM==1_0. ; Run timeout
];RP07P
IFN RM03P\RM80P,[
; RM has no Current Cylinder Register, the Error 2 Register is
; in a different place with different bits, and there is no
; Error 3 register
DEFSYM %HRER2=:776742 ;ERROR 2.
DEFSYM %H2BSE==1_15. ; Bad Sector (sector marked bad on disk)
DEFSYM %H2SKI==1_14. ; Seek Incomplete (also sets UNS+ATA+PIP+RDY)
DEFSYM %H2OPE==1_13. ; Drive address plug was removed
DEFSYM %H2IVC==1_12. ; Invalid Command (really drive not valid)
DEFSYM %H2LSC==1_11. ; LSC Sucks
DEFSYM %H2LBC==1_10. ; Loss of Bitcheck (hardware lossage)
DEFSYM %H2DVC==1_7 ; Device Check (generic hardware lossage)
DEFSYM %H2SSE==1_5 ; Skip Sector found (can't happen in 18bit)
DEFSYM %H2DPE==1_3 ; Data Parity Error in controller
];RM03P\RM80P
DEFSYM %HRPOS=:776744 ;ECC POSITION.
DEFSYM %HRPAT=:776746 ;ECC PATTERN.
IFN $$TEMP,EXPUNG DEFSYM