Google
 

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