Google
 

Trailing-Edge - PDP-10 Archives - bb-y390o-bm_tops20_v41_atpch_20 - autopatch/tfrcob.c16
There are 3 other files named tfrcob.c16 in the archive. Click here to see a list.
 REP 18/1	;16C1
	;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY  OF  ITS
 WIT
	;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY  OF  IT
 INS 5/2	;16C2
	;RLF	14-Apr-87	[261] Highest section can't be initialized
	;RLF	08-Apr-87	[260] TFRRD gets blank line for mutiple section
	;RLF	07-Apr-87	[257] Correction to edit 237
	;RLF	20-Mar-87	[256] Accept other terminals as VT100
	;KWS	01-Apr-87	[255] Fix up-arrow and down-arrow to work correctly if 
	;			      no input
	;RAR	31-Dec-86	[254] SECFLG is cleared by TFRRD on a VET forced exit
	;RAR	06-Nov-86	[253] fix for clearing lines in a multiple section
	;RAR	31-Oct-86	[252] fix TFRCHG to change all fields in section
 INS 30/3	;16C3
		;The following defines the terminal types that are not
		;supported on the KS

		IFNDEF .TT102, <.TT102==^D37>	;[256] DEFINE THESE FOR
		IFNDEF .TT131, <.TT131==^D39>	;[256] KS MONITOR 4.1
		IFNDEF .TT200, <.TT200==^D40>	;[256]
		IFNDEF .TT300, <.TT300==^D52>	;[256]
 REP 17/21	;16C4
		CAML	A,MAXSEC		;IF DONE
 WIT
		CAMLE	A,MAXSEC		;[261] IF DONE
 REP 89/40	;16C5
		ADD	A,FSTELM
 WIT
		ADD	A,MLTLOR		;[253] OFFSET TO THE FIRST LINE
 INS 39/44	;16C6
		SETZM	SECFLG			;[254] clear the section flag
 REP 33/54	;16C7
		AOSL	MLTELM			;NO - MORE ELEMENTS?
 WIT
		SKIPN	MLTELM			;[260] NO - MORE ELEMENTS?
 REP 272/58	;16C8
			 SUBI  A,"A"		;OFFSET
			 ADDI  A,TRM.UA		;SET UP RETURN CODE
	;**;[245] At INR.ES+15L
 WIT
			 MOVE  E,INT.C		;[255] COMPUTE NUM. OF CHAR. READ
			 SUB   E,TXTTAB+.RDDBC  ;[255]
			 JUMPE E,INR.14		;[255]IF THERE HAS BEEN A CHAR JUSTIFY
			 SUBI  A,"A"		;OFFSET
			 ADDI  A,TRM.UA		;SET UP RETURN CODE
 REP 15/66	;16C9
		HLRE	D,-1(ARG)		;GET AND SAVE ARGUMENTS FROM CALLER.
		MOVN	D,D
		CAIGE	D,3			;IF NOT AT LEAST 3 ARGUMENTS
		 RET				;  THEN RETURN TO CALLER.
		GETITM	0,ANY			;GET THE FIELD IDENT
	CHG.1:
		SETZ	E,			;POINT TO ATTRIB - 1
		MOVE	C,D
		SUBI	C,2

		PUSH	P,D			;FIND THE CORRECT FIELD.
		PUSH	P,E
		PUSH	P,C
		CALL	FIND			;FIND IT
		 JRST	CHG.3			;NOT THERE.
		 JRST	CHG.4			;DONE
		CALL	GETFLD			;GET FIELD ATTRIBUTES
 WIT
		HLRE	D,-1(ARG)		;GET -(# OF ARGUMENTS FROM CALLER)
		MOVN	D,D			;SAVE +(# OF ARGUMENTS FROM CALLER)
		CAIGE	D,3			;ARE THERE AT LEAST 3 ARGUMENTS?
		RET				;NO

	;	*** for each attribute from 1 to "n" ***

	CHG.1:	GETITM	0,ANY			;[252]get the field identifier
		SETZ	E,			;POINT TO new-attribute-1
		MOVE	C,D			;c <- # of arguments from caller
		SUBI	C,2			;actual # of new attributes

	;	*** get the next field belonging to "field-identifier" ***

		PUSH	P,D
		PUSH	P,E
		PUSH	P,C
		CALL	FIND			;go find the correct field
		JRST	CHG.3			;it's not there
		JRST	CHG.4			;all done
		CALL	GETFLD			;GET THE FIELD ATTRIBUTES
 REP 35/66	;16C10
	CHG.2:
		SOJL	C,CHG.1			;IF NO MORE ATTRIBUTES THEN LOOP
		AOS	INT.A,E			;GET OFFSET OF NEXT ATTRIBUTE
 WIT

	;	*** apply attribute "n" to the field ***

	CHG.2:	AOS	INT.A,E			;[252]get the offset of the next attribute
 REP 63/66	;16C11
		JRST	CHG.2
 WIT

	;	*** do we get another attribute, or try for another field? ***

		SOJG	C,CHG.2			;[252]if there's another att - go handle it
		JRST	CHG.1			;[252]go do the next field

 REP 178/90	;16C12
	;**;[237] At .OUP20+12L
			   RET			;[237] THEN NOTHING TO DO
			 MOVEM	B,.OCSC		; ELSE MARK AS FIRST CHANGED TO SPACE
			 SKIPE	.OLBL		;[237] IF BLANK LINES PRECEED US
			  CALL	.OUP50		;[237] THEN CLEAR PRECEEDING LINES
 WIT
			   SKIPA			;[257] THEN NOTHING TO DO 
			 MOVEM	B,.OCSC		; ELSE MARK AS FIRST CHANGED TO SPACE
 INS 197/90	;16C13
		SKIPE	.OLBL			;[257] IF BLANK LINES PRECEEDING US
		CALL	.OUP50			;[257] THEN CLEAR PRECEEDING LINES
 INS 249/90	;16C14
		PUSH	P,B			;[257] SAVE THE REGISTER
 INS 258/90	;16C15
		POP	P,B			;[257] RESTORE THE REGISTER
 REP 232/94	;16C16
		MOVE	B,[POINT 7,STRBUF]	;GET THE RESPONSE
 WIT

 REP 306/94	;16C17
		CAIN	B,.TT125
		 MOVEI	A,%VT100		;VT125 IS THE SAME AS VT100 HERE
 WIT
		CAIN	B,.TT102		;[256]
		 MOVEI	A,%VT100		;[256] TERMINAL SAME AS VT100
		CAIN	B,.TT125
		 MOVEI	A,%VT100		;VT125 IS THE SAME AS VT100 HERE
		CAIN	B,.TT131		;[256]
		 MOVEI	A,%VT100		;[256] TERMINAL SAME AS VT100
		CAIN	B,.TT200		;[256]
		 MOVEI	A,%VT100		;[256] TERMINAL SAME AS VT100
 SUM 32206