Trailing-Edge
-
PDP-10 Archives
-
bb-kl11f-bm_tops20_v7_0_atpch1_19
-
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