Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_1_19910112 - 7/ft3/monitor/stanford/comnd.dif
There are no other files named comnd.dif in the archive.

; COMND.MAC.1 & <MONITOR>COMND.MAC.1 24-Feb-89 1709	PAGE 1



LINE 1, PAGE 1
1)	;[MACBETH]SRC:<7.FT2.MONITOR.STANFORD>COMND.MAC.2,  6-Apr-88 00:50:40, Edit by A.APPLEHACKS
1)	; FT7.2 Merge
1)	; UPD ID= 8494, RIP:<7.MONITOR>COMND.MAC.9,   9-Feb-88 12:18:22 by GSCOTT
LINE 1, PAGE 1
2)	;[SRI-NIC]SRC:<7.MONITOR>COMND.MAC.2,  9-Nov-88 15:28:41, Edit by MKL
2)	; v7 merge
2)	;[SRI-NIC]SRC:<6-1-MONITOR>VERSIO.MAC.5, 28-Mar-88 22:02:49, Edit by IAN
2)	;[NIC7341] Make CHKBP in COMND pass global 7-bit pointers.
2)	;[SRI-NIC]XS:<SU-61SU>COMND.MAC.2,  5-Dec-86 13:27:39, Edit by MKL
2)	;;[SRI-NIC]SS:<6-MONITOR>COMND.MAC.2, 24-Jul-85 16:31:01, Edit by MKL
2)	;;[NIC6400] make ^L clear screen and do a ^R in COMND
2)	;;  based on MIT monitor edit 999
2)	;;[SRI-NIC]SRC:<5-3-MONITOR>COMND.MAC.11, 10-Jul-84 12:57:08, Edit by IAN
2)	;; NIC021 - Kludge * so it's treated as safe re KLWORD
2)	;;[SRI-NIC]SRC:<5-3-MONITOR>COMND.MAC.10,  2-Jul-84 11:45:45, Edit by IAN
2)	;; NIC018 - Fix the way ^W words
2)	;<6-1-MONITOR.FT6>COMND.MAC.2, 11-Aug-85 19:15:15, Edit by WHP4
2)	;Stanford changes:
2)	; If TT%WK0 is set, allow breaking on editing characters, accept nulls
2)	; Rubout is accepted as alternative redo character
2)	; Convert ^F to space in indirect file; don't convert LF
2)	; Tie off line in indirect file with null
2)	; Compensate for Datamedia 2500 misfeature that CR is newline that ignores
2)	;  following LF.  Output CR LF LS instead of bare CR
2)	
2)	; UPD ID= 8494, RIP:<7.MONITOR>COMND.MAC.9,   9-Feb-88 12:18:22 by GSCOTT


LINE 14, PAGE 1
1)	;[MACBETH]SRC:<7.FT1.MONITOR>COMND.MAC.1, 20-Jan-88 22:54:56, Edit by A.APPLEHACKS
1)	; FT7 Merge with Stanford stuff
1)	;
1)	;[MACBETH.STANFORD.EDU]SRC:<6.1.MONITOR.STANFORD>COMND.MAC.5, 15-Dec-87 14:24:41, Edit by A.ALDERSON
1)	; Install Crispin's OWGBP fix to STCMP% at STRC2
1)	;SRC:<6.1.MONITOR.STANFORD>COMND.MAC.4, 17-Dec-86 17:59:46, Edit by ALDERSON
1)	; Stanford change:  Change JRST CMGJE to ERJMP CMGJE following internal call to
1)	; .GTJFN to avoid MONNEJ BUGCHK.
1)	;
1)	; UPD ID= 95, RIP:<7.MONITOR>COMND.MAC.4,   1-Sep-87 14:50:55 by RASPUZZI
LINE 33, PAGE 1
2)	; UPD ID= 95, RIP:<7.MONITOR>COMND.MAC.4,   1-Sep-87 14:50:55 by RASPUZZI

; COMND.MAC.1 & <MONITOR>COMND.MAC.1 24-Feb-89 1709	PAGE 2



LINE 53, PAGE 1
1)	;------------------------- Autopatch Tape # 13 -------------------------
1)	; *** Edit 7241 to COMND.MAC by WAGNER on 13-Feb-86
LINE 63, PAGE 1
2)	; *** Edit 7241 to COMND.MAC by WAGNER on 13-Feb-86


LINE 62, PAGE 1
1)	;------------------------- Autopatch Tape # 12 -------------------------
1)	; UPD ID= 2326, SNARK:<6.1.MONITOR>COMND.MAC.42,   6-Sep-85 12:08:57 by LOMARTIRE
LINE 71, PAGE 1
2)	; UPD ID= 2326, SNARK:<6.1.MONITOR>COMND.MAC.42,   6-Sep-85 12:08:57 by LOMARTIRE


LINE 71, PAGE 1
1)	;<6-1-MONITOR.FT6>COMND.MAC.2, 11-Aug-85 19:15:15, Edit by WHP4
1)	;Stanford changes:
1)	; SUMEX GTJFN ? feature
1)	; If TT%WK0 is set, allow breaking on editing characters, accept nulls
1)	; Rubout is accepted as alternative redo character
1)	; Convert ^F to space in indirect file; don't convert LF
1)	; Tie off line in indirect file with null
1)	; Compensate for Datamedia 2500 misfeature that CR is newline that ignores
1)	;  following LF.  Output CR LF LS instead of bare CR
1)	; Put an ERJMP after the NODE% JSYS call in XCMNOD
1)	;
1)	; UPD ID= 2249, SNARK:<6.1.MONITOR>COMND.MAC.41,  19-Jun-85 20:48:30 by MELOHN
LINE 79, PAGE 1
2)	; UPD ID= 2249, SNARK:<6.1.MONITOR>COMND.MAC.41,  19-Jun-85 20:48:30 by MELOHN


LINE 24, PAGE 25
1)	CHKBP:	HLRZ T2,T1
LINE 24, PAGE 25
2)	IFE NICSW,<
2)	CHKBP:	HLRZ T2,T1


LINE 30, PAGE 25
1)		IBP T1			;INCREMENT AND DECREMENT TO NORMALIZE
LINE 31, PAGE 25
2)	>
2)	IFN NICSW,<
2)	CHKBP:	LDB T2,[POINT 6,T1,5]	;[7116] GET P OR P&S FIELD
2)		CAIL T2,61		;[7116] LEGAL SEVEN BIT
2)		 CAILE T2,66		;[7116]  ONE WORD GLOBAL BYTE POINTER?
2)		  JRST [HLRZ T2,T1	;[NIC7341]
2)			CAIN T2,-1
2)			HRLI T1,(POINT 7,0)

; COMND.MAC.1 & <MONITOR>COMND.MAC.1 24-Feb-89 1709	PAGE 3


2)			LDB T2,[POINT 6,T1,11]	;GET BYTE SIZE
2)			CAIE T2,7		;PROPER?
2)			  RET			;NO
2)			JRST .+1]	;[NIC7341]
2)	>
2)		IBP T1			;INCREMENT AND DECREMENT TO NORMALIZE


LINE 26, PAGE 38
1)	IFN STANSW,<
1)		 ERJMPS [NOPARS DCNX13]	;NODE NOT ACCESSIBLE
1)	>;IFN STANSW
1)		TXNN D,ND%EXM		;EXACT MATCH?
LINE 26, PAGE 38
2)		TXNN D,ND%EXM		;EXACT MATCH?


LINE 11, PAGE 40
1)	IFN STANSW,<
1)		 ERJMP CMGJE		;FAILED
1)	>;IFN STANSW
1)	IFE STANSW,<
1)		 JRST CMGJE		;FAILED
1)	>;IFE STANSW
1)		UMOVEM T1,T2		;RETURN JFN TO CALLER
LINE 11, PAGE 40
2)		 JRST CMGJE		;FAILED
2)		UMOVEM T1,T2		;RETURN JFN TO CALLER


LINE 48, PAGE 45
1)	STRC2:	
1)	IFE STANSW,<
1)	JUMPE T3,[MOVX T1,SC%SUB ;TEST STRING ENDED, IS A SUBSET
1)			ADD T2,[7B5]	;DECREMENT BASE POINTER ONE BYTE
1)			RET]
1)	>;IFE STANSW
1)	IFN STANSW,<
1)		IFE. T3			;TEST STRING ENDED?
1)		  MOVE T1,T2		;YES, PREPARE TO DECREMENT BASE POINTER
1)		  SETO T2,		; BY ONE BYTE
1)		  ADJBP T2,T1		;DO IT SO IT WORKS FOR NON-7BIT AND OWGBP'S
1)		  MOVX T1,SC%SUB	;FLAG TEST STRING IS A SUBSET
1)		  RET
1)		ENDIF.
1)	>;IFN STANSW
1)		CAMG T3,T4		;STRINGS UNEQUAL
LINE 48, PAGE 45
2)	STRC2:	JUMPE T3,[MOVX T1,SC%SUB ;TEST STRING ENDED, IS A SUBSET
2)			ADD T2,[7B5]	;DECREMENT BASE POINTER ONE BYTE
2)			RET]

; COMND.MAC.1 & <MONITOR>COMND.MAC.1 24-Feb-89 1709	PAGE 4


2)		CAMG T3,T4		;STRINGS UNEQUAL


LINE 1, PAGE 53
1)	;AC USAGE HEREIN:
LINE 46, PAGE 52
2)	IFN NICSW,<
2)	CRTYP==14			;[NIC6400] CLEAR SCREEN AND RETYPE BUFFER
2)	>
   {Skipped 1 page and 1 line}
2)	;AC USAGE HEREIN:


LINE 29, PAGE 56
1)		ANDCM C,[3B1+3B7+3B9+3B11] ;NO ECHO OF ^R, ^U, ^V, ^W
LINE 29, PAGE 56
2)	IFN NICSW,<
2)		TRZ B,3B25		;[NIC6400] DON'T ECHO ^L
2)	>
2)		ANDCM C,[3B1+3B7+3B9+3B11] ;NO ECHO OF ^R, ^U, ^V, ^W


LINE 65, PAGE 56
1)		TXNE F,RD%EMC		;IF EMACS SPECIFIED IN TEXTI% CALL
1)		 TXO B,TT%WK0		;THEN SET BIT IN MODE WORD
LINE 68, PAGE 56
2)		TXNE F,RD%EMC		;IF EMACS SECIFIED IN TEXTI% CALL
2)		 TXO B,TT%WK0		;THEN SET BIT IN MODE WORD


LINE 1, PAGE 63
1)	;CHARACTER CLASS TABLE
LINE 22, PAGE 62
2)	IFN NICSW,<
2)		CRTYPE,,0		;[NIC6400]
2)	>
   {Skipped 1 page and 1 line}
2)	;CHARACTER CLASS TABLE


LINE 34, PAGE 63
1)		CC1(TOP)		;FF
1)		CC1(RDCRC)		;CR
LINE 35, PAGE 63
2)	IFE NICSW,<
2)		CC1(TOP)		;FF
2)	>
2)	IFN NICSW,<
2)		CCED(CRTYP)		;[NIC6400] FF
2)	>
2)		CC1(RDCRC)		;CR

; COMND.MAC.1 & <MONITOR>COMND.MAC.1 24-Feb-89 1709	PAGE 5




LINE 36, PAGE 64
1)	IFN STANSW,<
1)		TXNE F,RD%EMC		;EMACS MODE ?
1)		CAIE B,.CHCRT		;AND CHARACTER IS A CR ?
1)		IFSKP.
1)		  BIN%			;FLUSH THE LF
1)		  MOVEI B,.CHCRT	;AND PUT A CR BACK
1)		ENDIF.
1)	>;IFN STANSW
1)		TXNN F,RD%RAI		;RAISE INPUT?
LINE 36, PAGE 64
2)		TXNN F,RD%RAI		;RAISE INPUT?


LINE 3, PAGE 72
1)	KLWORD:	TXNE C,NDELW 		;IS CTRL/W NOT AN EDITING CHARACTER ?
1)		JRST INSRT		;YES.
1)		CALL BACK		;DELETE AT LEAST ONE CHARACTER
1)		 JRST BNULL		;WASN'T ONE
1)		MOVE D,P4
1)		XCTBU [ILDB B,D]	;GET CHAR JUST DELETED
1)		CAIN B,.CHLFD		;LF OR EOL?
1)		JRST [	CALL DELCR	;YES, DELETE CR AND UPDATE DISPLAY
1)			JRST BWRD1]	;ENTER BACKWARDS-SCAN LOOP
1)	BWRD4:	MOVE C,MOD		;CHECK ECHOS
1)		JXE C,TT%ECO,BWRD1	;NO OUTPUT IF ECHOS OFF
1)		JXE P5,DSPMF,BWRD1	;JUMP IF NOT DISPLAY
1)		XCTBU [LDB A,D]		;GET CHAR
1)		CALL CURBKW		;BACK UP CURSOR BUT DON'T CLEAR SCREEN YET
1)	BWRD1:	CALL BACK		;DELETE NEXT CHARACTER
1)		 JRST BWRD2		;NO MORE LEFT
1)		MOVE D,P4		;LOOK AT CHARACTER JUST DELETED
1)		XCTBU [ILDB B,D]
1)		IDIVI B,CHRWRD		;GET ITS CHARACTER CLASS
1)		LDB B,CCBTAB(C)
1)		CAIN B,SAFE		;IS IT A WORD SEPARATOR?
1)		JRST BWRD4		;NO, KEEP DELETING
1)		IBP P4			;YES, KEEP THAT CHARACTER
1)		SUBI P3,1
1)	BWRD2:	CALL CHKBLP		;CHECK BACKUP LIMIT POINTER
1)		MOVEI B,"_"		;INDICATE WORD DELETION
LINE 3, PAGE 72
2)	IFN NICSW,<			;Start NIC018 edit
2)	;DELETE WORD (CONTROL-W) - KLWRD1 deletes backwards until it runs out
2)	;of characters.  The test instruction is on the stack (underneath the
2)	;return address, as -1(P)), and checks AC B for what class of character.
2)	KLWORD:	CAMN P4,Q2		;Is there anything at all to delete?
2)		  JRST BNULL		;  Nope. (these two instrs taken from BACK)
2)		PUSH P,[CAIN B,SAFE]	;First skip over the non-safe (i.e.

; COMND.MAC.1 & <MONITOR>COMND.MAC.1 24-Feb-89 1709	PAGE 6


2)		CALL KLWRD1		;non-alphanumeric) characters.
2)		  JRST KLWRD0		;  (Ran out of deletables)
2)		MOVE A,[CAIE B,SAFE]
2)		MOVEM A,(P)		;And then skip over the alphanumerics
2)		CALL KLWRD1		;until we find non-alphanumeric again.
2)		  NOP
2)	KLWRD0:	POP P,B			;Flush the test instruction.
2)		CALL CHKBLP		;CHECK BACKUP LIMIT POINTER
2)		MOVEI B,"_"		;INDICATE WORD DELETION


LINE 1, PAGE 73
1)	;RETYPE LINE (CONTROL-R)
LINE 25, PAGE 72
2)	KLWRD1:	CALL BACK		;Get the character we're deleting.
2)		  RET			;  Aren't any more.
2)		MOVE D,P4		;  Yes, so don't delete it after all.
2)		XCTBU [ILDB B,D]	;GET CHAR JUST DELETED
2)		MOVE A,B
2)		IDIVI B,CHRWRD		;GET ITS CHARACTER CLASS
2)		CAIN A,"*"		;[NIC021]
2)		 SKIPA B,[SAFE]		;[NIC021]
2)		  LDB B,CCBTAB(C)
2)		XCT -1(P)
2)		  JRST [IBP P4		;Don't delete that character after all!
2)			SOJA P3,RSKP]
2)		CAIN A,.CHLFD		;LF OR EOL?
2)		  JRST [CALL DELCR	;YES, DELETE CR AND UPDATE DISPLAY
2)			JRST KLWRD1]	;ENTER BACKWARDS-SCAN LOOP
2)		MOVE C,MOD		;CHECK ECHOS
2)		JXE C,TT%ECO,KLWRD1	;NO OUTPUT IF ECHOS OFF
2)		JXE P5,DSPMF,KLWRD1	;JUMP IF NOT DISPLAY
2)		CALL CURBKW		;BACK UP CURSOR BUT DON'T CLEAR SCREEN YET
2)		JRST KLWRD1
2)	>;IFN NICSW			;End NIC018 edit.
2)	IFE NICSW,<
2)	KLWORD:	TXNE C,NDELW 		;IS CTRL/W NOT AN EDITING CHARACTER ?
2)		JRST INSRT		;YES.
2)		CALL BACK		;DELETE AT LEAST ONE CHARACTER
2)		 JRST BNULL		;WASN'T ONE
2)		MOVE D,P4
2)		XCTBU [ILDB B,D]	;GET CHAR JUST DELETED
2)		CAIN B,.CHLFD		;LF OR EOL?
2)		JRST [	CALL DELCR	;YES, DELETE CR AND UPDATE DISPLAY
2)			JRST BWRD1]	;ENTER BACKWARDS-SCAN LOOP
2)	BWRD4:	MOVE C,MOD		;CHECK ECHOS
2)		JXE C,TT%ECO,BWRD1	;NO OUTPUT IF ECHOS OFF
2)		JXE P5,DSPMF,BWRD1	;JUMP IF NOT DISPLAY
2)		XCTBU [LDB A,D]		;GET CHAR
2)		CALL CURBKW		;BACK UP CURSOR BUT DON'T CLEAR SCREEN YET
2)	BWRD1:	CALL BACK		;DELETE NEXT CHARACTER

; COMND.MAC.1 & <MONITOR>COMND.MAC.1 24-Feb-89 1709	PAGE 7


2)		 JRST BWRD2		;NO MORE LEFT
2)		MOVE D,P4		;LOOK AT CHARACTER JUST DELETED
2)		XCTBU [ILDB B,D]
2)		IDIVI B,CHRWRD		;GET ITS CHARACTER CLASS
2)		LDB B,CCBTAB(C)
2)		CAIN B,SAFE		;IS IT A WORD SEPARATOR?
2)		JRST BWRD4		;NO, KEEP DELETING
2)		IBP P4			;YES, KEEP THAT CHARACTER
2)		SUBI P3,1
2)	BWRD2:	CALL CHKBLP		;CHECK BACKUP LIMIT POINTER
2)		MOVEI B,"_"		;INDICATE WORD DELETION
2)		TXNN P5,DSPMF		;BUT ONLY IF NONDISPLAY
2)		CALL RDBOUT
2)		TXNE P5,DSPMF		;DISPLAY?
2)		CALL CLRLNQ		;YES, THEN CLEAR TO END OF LINE
2)		JRST NINSRT		;CONTINUE INPUT UNLESS BUFFER EMPTY ETC.
2)	>;IFE NICSW
2)	IFN NICSW,<
2)	;[NIC6400] BEGIN ADDITION
2)	;CLEAR SCREEN AND RETYPE BUFFER (CONTROL-L)
2)	
2)	CRTYPE:	JXE P5,DSPMF,[HRROI B,[ASCIZ /
2)	/]
2)			CALL RDSOUT	;NON-DISPLAY, TYPE A CRLF
2)			JRST CRTYP0]	;AND THEN PRINT BUFFER
2)		CALL CLRPAG		;AND CLEAR TO END OF SCREEN
2)	CRTYP0:	CALL RTYPRB		;PRINT ^R BUFFER
2)		MOVE D,Q2		;GET POINTER TO BEGINNING OF BUFFER
2)	CRTYP1:	CAMN D,P4		;AT END OF BUFFER?
2)		 JRST NINSRT		;YES, RETURN TO MAIN LOOP
2)		XCTBU [ILDB B,D]	;GET A BYTE
2)		CALL RDBOUT		;TYPE THE BYTE
2)		JRST CRTYP1		;LOOP UNTIL END OF BUFFER
2)	;[NIC6400] END ADDITION
2)	>;IFN NICSW
   {Skipped 1 page and 1 line}
2)	;RETYPE LINE (CONTROL-R)


LINE 1, PAGE 74
1)	;ROUTINE TO PUT CURSOR AT BEGINNING OF LOGICAL LINE.  WILL DO CURUP'S
LINE 1, PAGE 74
2)	IFN NICSW,<
2)	;[NIC6400] +++ BEGIN MODIFICATION
2)	;TYPE ^R BUFFER, IF EXTANT.
2)	RTYPRB:	SKIPE D,Q1		;GET ^R BFR IF ANY
2)	RTYPR1:	CAMN D,Q2		;UP TO TOP OF BFR?
2)		 RET			;YES, DONE WITH ^R BFR
2)		XCTBU [ILDB B,D]	;GET CHAR FROM ^R BFR
2)		JUMPE B,R		;DONE WHEN NULL PRINTED
2)		CALL RDBOUT		;TYPE IT

; COMND.MAC.1 & <MONITOR>COMND.MAC.1 24-Feb-89 1709	PAGE 8


2)		JRST RTYPR1		;AND GET NEXT CHARACTER
2)	
2)	;[NIC6400] +++ END MODIFICATION
2)	>;IFN NICSW
   {Skipped 1 page and 1 line}
2)	;ROUTINE TO PUT CURSOR AT BEGINNING OF LOGICAL LINE.  WILL DO CURUP'S


LINE 90, PAGE 76
1)	;CLEAR FROM CURSOR TO END OF LINE
LINE 90, PAGE 77
2)	IFN NICSW,<
2)	;[NIC6400] CLEAR SCREEN
2)	CLRPAG:	HRRZ A,P5
2)		MOVE A,.CURBL(A)
2)		CALL DPCTL
2)		HRRZ A,P1
2)		RFPOS
2)		TRZ B,-1		;ZERO COLUMN
2)		SFPOS
2)		RET
2)	;[NIC6400] END CLEAR SCREEN
2)	>;IFN NICSW
2)	
2)	;CLEAR FROM CURSOR TO END OF LINE