Trailing-Edge
-
PDP-10 Archives
-
SRI_NIC_PERM_SRC_1_19910112
-
7/ft3/monitor/stanford/phypar.dif
There are no other files named phypar.dif in the archive.
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 1
LINE 1, PAGE 1
1) ;[MACBETH.STANFORD.EDU]SRC:<7.FT3.MONITOR.STANFORD>PHYPAR.MAC.2, 20-Jun-88 15:34:26, Edit by A.APPLEHACKS
1) ; FT7 Clock Merge
1) ;
1) ; UPD ID= 8701, RIP:<7.MONITOR>PHYPAR.MAC.5, 20-Apr-88 10:34:26 by RASPUZZI
1) ;TCO 7.1276 - Add U1.NOL for login structures hang
1) ;
1) ;[MACBETH]SRC:<7.FT2.MONITOR.STANFORD>PHYPAR.MAC.2, 6-Apr-88 15:53:03, Edit by A.APPLEHACKS
1) ; FT7.2 Merge
1) ; UPD ID= 8593, RIP:<7.MONITOR>PHYPAR.MAC.4, 11-Feb-88 16:56:54 by GSCOTT
LINE 1, PAGE 1
2) ; Edit= 8832 to PHYPAR.MAC on 20-Apr-88 by RASPUZZI (TCO 7.1276)
2) ;Install TCO 7.1276 into the autopatch sources.
2) ;TCO 7.1276 - Add U1.NOL for login structures hang
2) ; UPD ID= 8593, RIP:<7.MONITOR>PHYPAR.MAC.4, 11-Feb-88 16:56:54 by GSCOTT
LINE 13, PAGE 1
1) ;[MACBETH]SRC:<7.FT1.MONITOR.STANFORD>PHYPAR.MAC.2, 1-Feb-88 22:50:46, Edit by A.APPLEHACKS
1) ; FT7 Merge
1) ;
1) ;[SIERRA.STANFORD.EDU]SRC:<6.1.MONITOR.STANFORD.MARS>PHYPAR.MAC.8, 13-Mar-87 11:42:27, Edit by ALDERSON
1) ; Assign some DEC device-type numbers to SA10 devices for SC30-M:
1) ; .UTCT1 = .UTT45
1) ; .UTCC1 = .UTRS4
1) ; .UTCC2 = .UTRP5
1) ;[SIERRA.STANFORD.EDU]SRC:<6.1.MONITOR.STANFORD.MARS>PHYPAR.MAC.7, 13-Mar-87 11:41:23, Edit by ALDERSON
1) ; Put SC30-M changes under SC30SW
1) ;
1) ; UPD ID= 133, RIP:<7.MONITOR>PHYPAR.MAC.2, 23-Sep-87 15:46:23 by MCCOLLUM
1) ;TCO 7.1063 - Add U1.SOF to UDBST1
1) ;------------------------- Autopatch Tape # 13 -------------------------
1) ;------------------------- Autopatch Tape # 12 -------------------------
1) ;<6-1-MONITOR.FT6>PHYPAR.MAC.2, 12-Aug-85 16:54:59, Edit by WHP4
1) ; FT6 merge
1) ;Stanford changes:
1) ; Definitions for MEIS iorb offsets and fields
1) ; Define unit and massbus types for the MEIS
1) ; Symbols for MEIS data modes
1) ;
1) ; UPD ID= 2280, SNARK:<6.1.MONITOR>PHYPAR.MAC.61, 25-Jun-85 15:02:51 by GRANT
LINE 8, PAGE 1
2) ; UPD ID= 133, RIP:<7.MONITOR>PHYPAR.MAC.2, 23-Sep-87 15:46:23 by MCCOLLUM
2) ;TCO 7.1063 - Add U1.SOF to UDBST1
2) ; UPD ID= 2280, SNARK:<6.1.MONITOR>PHYPAR.MAC.61, 25-Jun-85 15:02:51 by GRANT
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 2
LINE 20, PAGE 4
1) IFN STANSW&SC30SW,<
1) CS.MUX==1B14 ;MULTIPLEXOR CHANNEL
1) >;IFN STANSW&SC30SW
1) CSSTYP==SIZ.UT ;SIZE OF TYPE FIELD
LINE 20, PAGE 4
2) CSSTYP==SIZ.UT ;SIZE OF TYPE FIELD
LINE 19, PAGE 10
1) U1.NOL==1B14 ;[7.1276] This unit has not been onlined
LINE 19, PAGE 10
2) ;[7.1063] timer to be triggered
2) U1.NOL==1B14 ;[7.1276] This unit has not been onlined
LINE 23, PAGE 10
1) ;[7.1063] timer to be triggered
1)
1) ;UDBCHR
LINE 25, PAGE 10
2) ;UDBCHR
LINE 42, PAGE 10
1) IFN STANSW&SC30SW,<
1) UC.PT==1B11 ;PETIT MODE
1) >;IFN STANSW&SC30SW
1)
1) UC.OLB==777B35 ;ONLINE BITS FOR MSCP SERVICED DISKS
LINE 43, PAGE 10
2) UC.OLB==777B35 ;ONLINE BITS FOR MSCP SERVICED DISKS
LINE 40, PAGE 13
1) IFN STANSW&SC30SW,<
1) IRMPET==6 ;PETIT MODE
1) IRMMAX==6 ;MAXIMUM LEGAL MODE
1) >;IFN STANSW&SC30SW
1) IFE STANSW&SC30SW,<
1) IRMMAX==5 ;MAXIMUM LEGAL MODE
1) >;IFE STANSW&SC30SW
1) ^L SUBTTL IO Request Block -- Bits and Bytes
LINE 40, PAGE 13
2) IRMMAX==5 ;MAXIMUM LEGAL MODE
2) ^L SUBTTL IO Request Block -- Bits and Bytes
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 3
LINE 26, PAGE 14
1) IFN STANSW,<
1) ;THESE DEFINITIONS ARE USED BY PHYMEI AND ITS CALLERS
1)
1) ;IORB EXTENSIONS
1) IRBCC0==7 ;CCW WORD
1) IRBCC1==10 ;CCW WORD
1) IRBCC2==11 ;CCW WORD
1) IRBDUN==12 ;ROUTINES FOR BUFFER HANDLING ON TERMINATION
1) IRBLLN==13 ;LENGTH OF A MEIS IORB
1)
1) ;MEIS IORB FIELD DEFINITIONS
1) DEFSTR IRHDR,IRBADR,0,1 ;HEADER DATA MODE (0 IS .PM16, 1 IS .PM32)
1) DEFSTR IRTRF,IRBADR,1,1 ;TRAILER DATA IS VALID
1) DEFSTR IRPMD,IRBADR,5,4 ;DATA MODE OF DATAGRAM BODY
1) DEFSTR IRHLN,IRBADR,11,6 ;COUNT OF 16-BIT BYTES IN HEADER
1) ;8 FREE BITS BETWEEN IRHLN AND IRCHK
1) DEFSTR IRCHK,IRBADR,35,16 ;16 BITS OF TRAILER DATA
1) DEFSTR IRBUF,IRBLEN,35,36 ;BUFFER'S GLOBAL ADDRESS
1) DEFSTR IRDUN,IRBDUN,35,18 ;PACKET DISPOSAL ROUTINE ON SUCCESS
1) DEFSTR IRBAD,IRBDUN,17,18 ;PACKET DISPOSAL ROUTINE ON ERROR
1)
1) ;MEIS DATA MODES IN CASE NOT DEFINED IN MONSYM
1) .PM16==0
1) .PM32==1
1) .PM36==2
1) .PMASC==3
1) .PM16S==4
1) .PM9==5
1) >;IFN STANSW
1) ^L SUBTTL Parameters - Usually determine maximum # of devices
LINE 1, PAGE 15
2) ^L SUBTTL Parameters - Usually determine maximum # of devices
LINE 20, PAGE 17
1) IFN STANSW&SC30SW,<
1) .CTSSA==6 ;FA10
1) >;IFN STANSW&SC30SW
1)
1) ;UNIT TYPES
LINE 21, PAGE 18
2) ;UNIT TYPES
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 4
LINE 56, PAGE 17
1) IFN STANSW,<
1) .UTMEI==35 ;MEIS CONTROLLER
1) IFN SC30SW,<
1) .UTTAP==:36 ;IBM-COMPATIBLE TAPE
1) .UTDSK==:37 ;IBM-COMPATIBLE DISK
1) .UTCT1==:3 ;ISI SA10 IBM COMPATABLE TAPE
1) .UTCC1==:2 ;ISI SA10 CALCOMP 230 (=IBM 3330 MOD I)
1) .UTCC2==:5 ;ISI SA10 CALCOMP 235 (=IBM 3330 MOD II)
1) >;IFN SC30SW
1) >;IFN STANSW
{Skipped 1 page and 1 line}
1) ;MASSBUS DEVICE TYPES
LINE 1, PAGE 19
2) ;MASSBUS DEVICE TYPES
LINE 21, PAGE 18
1) IFN STANSW,<
1) TY.MEI==700 ;MEIS CONTROLLER
1) >;IFN STANSW
1)
1) ^L SUBTTL KLIPA Parameters
LINE 1, PAGE 20
2) ^L SUBTTL KLIPA Parameters
LINE 1, PAGE 21
1) IFN STANSW&SC30SW,<
1) SUBTTL ISI SA10 parameters
1)
1) ;Parameters for SA10 channel and IBM style devices used on SA10.
1)
1) SSANSC==4 ;number of subchannels on an SA10
1) SA10BF==1 ;all are model "B" SA10s
1)
1) SA0==274 ;device number of 1st SA10
1) SA1==374 ;device number of 2nd SA10
1)
1) SSACHN==:PHYCHN ;PI channel for SA10
1)
1) MAXSAU==^D8 ;maximum units supported on each SA10 subchan.
1)
1) PGSIZ==:1000 ;Better be same as in prolog
1) NWREC==PGSIZ ;size of physical record
1) NBREC==NWREC*9/2 ;number of bytes per record
1) NRECS==5 ;number of records per track, mod I or II
1)
1) ;PARAMETERS USED IN SA10 AND IBM-STYLE DEVICES
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 5
1)
1) ; 8 bit bytes in a word
1)
1) BYTE0==MASKB(0,7)
1) BYTE1==MASKB(8,15)
1) BYTE2==MASKB(16,23)
1) BYTE3==MASKB(24,31)
1)
1) ; bits in an 8 bit byte
1)
1) BB0==200
1) BB1==100
1) BB2==040
1) BB3==020
1) BB4==010
1) BB5==004
1) BB6==002
1) BB7==001
{Skipped 1 page and 1 line}
1) ;CONO TO SSA
1)
1) SA%INI==1B18 ;Initialize whole SA10
1) SA%CME==1B19 ;Clear memory error flags
1) SA%CLK==1B26 ;Clock control in SA10 microprocessor
1) SA%FCN==MASKB(27,29) ;Function selection
1) .SANOP==0 ;NOP=0
1) .SAHIO==2 ;Halt I/O
1) .SARSC==3 ;Reset channel
1) .SAGOF==4 ;Go flag for channel
1) .SASRQ==5 ;Status request flag
1) .SASTS==6 ;Status done flag
1) .SAPIE==7 ;Interrupt enable for a channel
1) SA%SET==1B30 ;Set/do one of above flags/functions.
1) SA%CLR==0B30 ;Clear one of above flags.
1) SA%CHN==MASKB(31,32) ;(Sub)Channel select for above functions
1) .SACH0==0 ;Select channel 0
1) .SACH1==1 ;Select channel 1
1) .SACH2==2 ;Select channel 2
1) .SACH3==3 ;Select channel 3
1) SA%PIA==MASKB(33,35) ;PI assignment for the SA10 as a whole.
1)
1) ;CONI FROM SSA
1)
1) SA%PIR==1B18 ;A PI request is being made
1) SA%MPE==1B19 ;Parity error flag
1) SA%NXM==1B20 ;Non-existent memory flag
1) SA%IEN==MASKB(21,24) ;Interrupt enable bits
1) SA%GON==MASKB(25,28) ;Go flags
1) SA%SFN==MASKB(29,32) ;The status flags
1) ;The following codes apply to SA%IEN, SA%FON,SA%SFN
1) .SACB0==10 ;Bit for channel 0
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 6
1) .SACB1==04 ;Bit for channel 1
1) .SACB2==02 ;Bit for channel 2
1) .SACB3==01 ;Bit for channel 3
1) ;and the PIA comes back in bits 33-35 (SA%PIA)
{Skipped 1 page and 1 line}
1) ; field sizes for 2 models of SA10
1)
1) IFE SA10BF,<
1) WCSIZ==^D15 ;size of word count field
1) ADSIZ==^D20 ;size of address field
1) >
1) IFN SA10BF,<
1) WCSIZ==^D11 ;size of word count field
1) ADSIZ==^D24 ;size of address field
1) >
1)
1) ;Block Multiplexor Control Commands (entries in Device List)
1)
1) IFE SA10BF,<
1) BMX%CM==MASKB(0,3) ;command field
1) BMX%DV==MASKB(8,15) ;device field
1) >
1) IFN SA10BF,<
1) BMX%CM==MASKB(8,11) ;command field
1) BMX%DV==MASKB(0,7) ;device field
1) >
1) BMX%AD==MASKB(36-ADSIZ,35) ;address field (points to CP)
1)
1) ; Commands in the command field
1)
1) .BMXS==^B1101 ;Start this device
1) .BMXW==^B1110 ;Waiting on this device
1) .BMXT==^B1111 ;This device has terminated
1) .BMXE==^B0000 ;End of list
1)
1) ;Channel Program commands
1)
1) TCH==1B1 ;Transfer in Channel program
1) ; (valid in CP or at Base address)
1) BMX.LP==3B1 ;Block multiplexor Device List Pointer
1) ; (only valid at Base address)
{Skipped 1 page and 1 line}
1) ;Device Command Word
1)
1) SC%CCF==BYTE0 ;channel command flags
1) .SCNMX==BB0 ;No Memory Transfer
1) .SCTMM==BB1 ;Transfer mode modifier
1) .SCXCT==BB2 ;execute this word
1) .SCCHN==BB3 ;chain to further words after this one
1) .SCBYT==BB4 ;transfer bytes, not words (byte = 8 bits)
1) ; (for tape, used with .SCTMM to specify mode)
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 7
1) .SCINT==BB5 ;cause an interrupt when this CMD executed
1) .SCILE==BB6 ;ignore length error
1) .SCBOF==BB7 ;byte offset. start 2 bytes over in word.
1) .SCWDM==0*.SCBYT+0*.SCTMM ; Word mode
1) .SCBTM==1*.SCBYT+0*.SCTMM ; Byte mode (SC name) [counts are byte counts]
1) .SCICM==1*.SCBYT+0*.SCTMM ; "Industry Compatible" mode (DEC name) [byte count]
1) .SCNLM==0*.SCBYT+1*.SCTMM ; Natural mode (SC name)
1) .SCHDM==0*.SCBYT+1*.SCTMM ; "High Density" mode (DEC name)
1) .SCTCM==1*.SCBYT+1*.SCTMM ; "Tape Compatibility" mode (SC name)
1) .SCCDM==1*.SCBYT+1*.SCTMM ; "Core Dump" mode (DEC name)
1)
1) SC%CMD=BYTE1 ;device command field
1) SC%DEV=BYTE2 ;device address field
1)
1) DEFINE DCW (BITS,CMD,DEV)<
1) ..CW==0
1) IRP BITS,<..CW==..CW!.SC'BITS>
1) EXP FLD(..CW,SC%CCF)+FLD(CMD,SC%CMD)+FLD(DEV,SC%DEV)>
1)
1)
1) ;Device Chain Word (IOW)
1)
1) SC%LST==1B0 ;last command in chain if on
1) SC%CNT==MASKB(1,WCSIZ) ;word count (negative)
1) SC%ADR==MASKB(36-ADSIZ,35) ;core address
1) SC%PAG==<SC%ADR-<PGSIZ-1>> ;page number portion of address field
1)
1)
1) DEFINE IOW (CNT,ADR,CHN)<+<FLD(-CNT,SC%CNT)&SC%CNT>+FLD(ADR,SC%ADR)! IFB <CHN>,<SC%LST>>
1)
1) ; Halt command
1)
1) DEFINE HLT.H <0B0> ;halt, hanging
1) DEFINE HLT.C <1B0> ;halt, continuing
1) DEFINE HLT <HLT.H> ;default to hang
{Skipped 1 page and 1 line}
1) ;DEVICE CODES ON THE IBM BUS
1)
1) .IDDSK==140 ;Address of Disk drive 0
1) .IDMTA==200 ;Address of Tape drive 0
1)
1) ;Channel status byte -- B0 - B7 of status word one in low core
1)
1) S1%CHS==BYTE0 ;channel status in status word 1
1) S1%STY==MASKB(0,1) ;status type
1) .S1INI==0 ;Initial selection status
1) .S1END==1 ;Ending status
1) .S1ASY==2 ;Asynchronous status
1) .S1DMY==3 ;Dummy status (program requested)
1) .S1SER==040 ;Select err. no such device.
1) .S1BIP==020 ;Bus in parity error on IBM chan bus
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 8
1) .S1CSE==004 ;Control sequence error. Junk on BUS.
1) .S1LNE==002 ;Length error (data xfer word/byte count)
1) .S1PIF==001 ;Prog interrupt flag (req by chan prg)
1)
1) ;IBM-device status byte. Appears in B8-B15 of status wd 1
1)
1) S1%DVS==BYTE1 ;device status in status word 1
1) .S1ATN==200 ;Attention
1) .S1SMD==100 ;Status modifier
1) .S1CUE==040 ;Control unit end
1) .S1BSY==020 ;Busy (device or controller)
1) .S1CHE==010 ;Channel end (data xfr through)
1) .S1DVE==004 ;Device end
1) .S1UCK==002 ;Unit check
1) .S1UEX==001 ;Unit exception (unusual state, not error)
1) S1%DEV==BYTE2 ;device code of unit interrupting
{Skipped 1 page and 1 line}
1) ;IBM command codes - opcodes to tape or disk
1)
1) .ICNOP==003 ;No-operation
1) .ICWRT==001 ;Write data (Tape)
1) .ICRDT==002 ;Read data (Tape)
1) .ICRDD==006 ;Read data area of DSK record
1) .ICWRD==005 ;Write data area of DSK record
1) .ICSNS==004 ;Request sense bytes from device
1) .ICREW==007 ;Rewind (Tape)
1) .ICSEK==007 ;Seek (Disk)
1) .ICRDR==014 ;Read reverse (Tape)
1) .ICRUN==017 ;Rewind-unload (Tape)
1) .ICERG==027 ;Erase gap (Tape)
1) .ICWEF==037 ;Write tape mark (end of file)
1) .ICBSB==047 ;Backspace block
1) .ICBSF==057 ;Backspace file
1) .ICSKB==067 ;Skip block
1) .ICSKF==077 ;Skip file
1) .ICSSC==043 ;Set sector (Disk) wait for right angular pos.
1) .ICSIE==061 ;Search id equal (Disk)
1) .ICRCL==027 ;Recalibrate (restore) (Disk)
1) .ICRDC==022 ;Read count (Disk)
1) .IC962==323 ;Set mode 9-trk, higher density (6250) (Tape)
1) .IC916==303 ;Set mode to 9-track, Hi density (1600) (Tape)
1) .IC908==313 ;Set mode to 9-track, Lo density (800) (Tape)
{Skipped 1 page and 1 line}
1) ; Sense byte bits
1)
1) ;Sense byte 0
1) SN%CRJ==FLD(BB0,BYTE0) ;command reject
1) SN%IRQ==FLD(BB1,BYTE0) ;intervention required
1) SN%BOP==FLD(BB2,BYTE0) ;bus out parity check
1) SN%EQC==FLD(BB3,BYTE0) ;equipment check
1) SN%DC== FLD(BB4,BYTE0) ;data check
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 9
1) SN%OVR==FLD(BB5,BYTE0) ;overrun
1) SN%WCZ==FLD(BB6,BYTE0) ;word count zero (tape)
1) SN%DCC==FLD(BB7,BYTE0) ;data converter check (tape)
1)
1) ;sense byte 1 (disk)
1)
1) SN%PRM==FLD(BB0,BYTE1) ;permanent error
1) SN%ITF==FLD(BB1,BYTE1) ;invalid track format
1) SN%EOC==FLD(BB2,BYTE1) ;end of cylinder
1) ; FLD(BB3,BYTE1)
1) SN%NRF==FLD(BB4,BYTE1) ;no record found
1) SN%FPR==FLD(BB5,BYTE1) ;file protect
1) SN%WIN==FLD(BB6,BYTE1) ;write inhibit
1) SN%OPI==FLD(BB7,BYTE1) ;operation incomplete
1)
1) ;sense byte 2 (disk)
1)
1) SN%COR==FLD(BB1,BYTE2) ;correctable
1) SN%EDP==FLD(BB3,BYTE2) ;environmental data present
1)
1) ;
1) ; macro to generate a channel program for disk
1) ;
1) DEFINE CC1CP(LABEL,SHORT)<
1) ...BEG:
1) ...RCL: DCW <NMX,XCT,CHN,ILE>,.ICRCL,.IDDSK ;recalibrate command
1) LABEL: ;normal channel program begins here
1) ...SKC: DCW <XCT,CHN,BYT>,.ICSEK,.IDDSK ;seek cylinder
1) IOW 6,LABEL+DPOSEK ; address of cylinder
1) ...SSC: DCW <XCT,CHN,BYT>,.ICSSC,.IDDSK ;set sector
1) IOW 1,LABEL+DPOSEK+2 ; address of sector number
1) ...SRC: DCW <XCT,CHN,BYT,BOF>,.ICSIE,.IDDSK ;search ID equal
1) IOW 5,LABEL+DPOSEK ; address of search address
1) ...TCC: TCH .-2 ;keep searching
1) ...OPC: DCW <XCT>,.ICRDD,.IDDSK ;read data or write data
1)
1) IFB <SHORT>,<
1) ...ADR: EXP 0,0,0,0 ;room for up to 3 IOW's + HLT **
1) EXP 0 ;#2 extra halt for safety
1)
1) ...PSK: DCW <XCT,BYT>,.ICSEK,.IDDSK ;#2 seek cylinder (no chaining)
1) IOW 6,LABEL+DPOSEK ;#2 address of cylinder
1) HLT.C ;#2 end of Seek-only program
1) EXP 0 ;#2 extra halt for safety
1)
1) ...SNP:
1) DCW <XCT,CHN,BYT>,.ICSNS,.IDDSK ;sense command
1) IOW ^D24,.-. ;where to store sense bytes
1) HLT.H ;end of sense program (hang when done)
1)
1) ...SEK: EXP 0,0,0 ;seek argument for drive
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 10
1) ...LEN: ;end of CP
1) > ;end of IFB <SHORT>
1)
1) IFB <SHORT>,<
1) DPORCL==:...RCL-LABEL ;displacement to Recalibrate command
1) DPOSKC==:...SKC-LABEL ;displacement to Seek command
1) DPOSSC==:...SSC-LABEL ;displacement to Set sector command
1) DPOSRC==:...SRC-LABEL ;displacement to Search command
1) DPOTCC==:...TCC-LABEL ;displacement to TCH back to Search
1) DPOOPC==:...OPC-LABEL ;displacement to Read/Write command
1) DPOADR==:...ADR-LABEL ;displacement to Read/Write IOW (address)
1) DPOPSK==:...PSK-LABEL ;#2 displacement to Position only Seek cmd
1) DPOSNP==:...SNP-LABEL ;displacement to Sense command
1) DPOSEK==:...SEK-LABEL ;displacement to Seek buffer
1) DPOCPL==:...SNP-...BEG ;length of standard channel program
1) DPOLEN==:...LEN-...BEG ;length of command program
1) > ;end of IFB <SHORT>
1)
1) PURGE ...BEG,...END,...RCL,...OPC,...ADR,...SNP,...SEK
1) PURGE ...SKC,...SSC,...SRC,...TCC
1) >
1) ^L SUBTTL FA10 parameters
1)
1) ; FA10 command block
1)
1) .FAUNS==:0 ; unit/sector
1) DEFSTR (FAUNT,.FAUNS,27,8) ; unit number
1) DEFSTR (FASEC,.FAUNS,35,8) ; sector number
1) .FATSE==:1 ; timer/state code/error control
1) DEFSTR (FATIM,.FATSE,27,8) ; timer
1) DEFSTR (FASTC,.FATSE,31,4) ; state code
1) .FAIDL==:0 ; idle
1) .FAGO==:1 ; go
1) .FADON==:17 ; done
1) DEFSTR (FAERC,.FATSE,35,4) ; error control
1) FA.NSC==:1 ; no stop on correctable error
1) FA.RCL==:10 ; recalibrate
1) .FAPCM==:2 ; priority/command
1) DEFSTR (FAPRI,.FAPCM,27,8) ; priority
1) DEFSTR (FACMD,.FAPCM,35,8) ; command
1) .FANOP==:0 ; no-op, check state of unit
1) .FASEK==:20 ; seek
1) .FARED==:100 ; read data
1) .FAWRT==:200 ; write data
1) .FARCD==:300 ; read/compare data
1) .FACYL==:3 ; cylinder
1) DEFSTR (FACYL,.FACYL,35,16) ; cylinder
1) .FAHRC==:4 ; head/record
1) DEFSTR (FAHED,.FAHRC,27,8) ; head
1) DEFSTR (FAREC,.FAHRC,35,8) ; record
1) .FABCR==:5 ; byte count returned
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 11
1) DEFSTR (FABCR,.FABCR,35,16) ; byte count returned
1) .FADFL==:6 ; low two bytes of DF10 ICW pair
1) DEFSTR (FADFL,.FADFL,35,16) ; DF10 ICW pair low bytes
1) .FADFH==:7 ; transfer mode/high byte of DF10 ICW pair
1) DEFSTR (FAXFM,.FADFH,27,8) ; transfer mode:
1) FA.DFM==:200 ; DF10 mode
1) FA.22B==:100 ; 22-bit mode
1) DEFSTR (FADFH,.FADFH,35,8) ; DF10 ICW pair high
1) .FACBL==.FADFH+1 ; length of FA10 command block
{Skipped 1 page and 1 line}
1) ; FA10 communications page
1)
1) MAXFA==:^D16 ; number of FA10 command blocks
1) FACPSZ==:300 ; size of FA10 communications page
1)
1) ; Helper macro to allocate words in FA10 communications page
1)
1) DEFINE ALOCFA(NAM,VAL) <
1) NAM==:...FAC
1) ...FAC==...FAC+VAL
1) IFLE <FACPSZ-...FAC>,PRINTX ? FA10 communications page overflow!
1) >;DEFINE ALOCFA
1) ...FAC==0 ; initialize mechanism
1)
1) ALOCFA (.FACBA,<MAXFA*.FACBL>) ; command block area
1) ALOCFA (.FASTA,0) ; origin of status area
1) ALOCFA (.FAXXX,2) ; "spare longword"
1) ALOCFA (.FAGFW,1) ; go flag word
1) ALOCFA (.FAGF2,1) ; second go flag word (n.y.i.)
1) ALOCFA (.FASTW,1) ; status word
1) DEFSTR (FASTW,.FASTW,35,16) ; status word
1) .FAOKS==:000001 ; OK status
1) .FARCE==:002000 ; read/compare error
1) .FADCC==:004000 ; correctable data check
1) .FADCU==:001000 ; uncorrectable data check
1) .FAORN==:014000 ; overrun
1) .FAATN==:020000 ; attention
1) .FADNR==:040400 ; drive not ready
1) .FADOL==:041000 ; drive off-line
1) .FACOL==:041400 ; controller off-line
1) .FAHCE==:043000 ; header check end
1) .FANRF==:043400 ; no record found
1) .FAHFE==:044000 ; header format error
1) .FAHNC==:044400 ; header non-compare
1) .FAWLK==:046400 ; write-lock
1) .FASEM==:160000 ; mask for "serious errors"
1) ALOCFA (.FAUSB,.FACBL) ; updated command block
1) ALOCFA (.FAMSC,50) ; miscellaneous status
1)
1) PURGE ALOCFA,...FAC
1) ^L SUBTTL SYSERR definitions
; PHYPAR.MAC.2 & <MONITOR>PHYPAR.MAC.1 24-Feb-89 1906 PAGE 12
1)
1) SEC%SD==121 ;SA10 disk error
1) SD%IOW==34 ;IOW from transfer
1) SD%STS==35 ;Device specific status
1) SD%ES1==47 ;Error status (Base+1)
1) SD%ES2==50 ;More error status (Base+2)
1) SD%SEN==51 ;Sense bytes (6 words)
1) SD%SCP==57 ;Pointer to first channel program
1) SD%XCP==61 ;Pointer to extra channel program
1) SD%CCP==60 ;Current channel program address
1) SD%CP1==62 ;First channel program
1) SD%CP2==77 ;Second channel program
1) SD%CPE==114 ;Extra channel program
1)
1) SEC%SM==122 ;SA10 magtape error
1) SM%DVA==46 ;Device address
1) SM%ES1==47 ;Status word 1 (Base+1)
1) SM%ES2==50 ;Status word 2 (Base+2)
1) SM%SEN==51 ;Sense bytes (6 words)
1)
1) >;IFN STANSW&SC30SW
{Skipped 1 page and 1 line}
1) ^L SUBTTL End of PHYPAR
LINE 1, PAGE 23
2) ^L SUBTTL End of PHYPAR