Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99g-bb - pfh.c08
There is 1 other file named pfh.c08 in the archive. Click here to see a list.
 REP 29/1	;08C1
		PFHEDT==47	;EDIT LEVEL
 WIT
		PFHEDT==53	;EDIT LEVEL
 INS 204/1	;08C2
	;50	Allow indexed or indirected IN/OUT uuo.
	;
	;51	Keep DATEND pointing into page 776. If it overflows a little, it
	;	doesn't matter since first few words of 777 aren't used.
	;
	;52	Fix up GETWRD some more, allow for the uuo itself to be in AC 1.
	;	Don't use EA as an indirect, use only as a pointer. If the word
	;	pointed to by EA is desired, it is available in AT.EA, filled in
	;	by GETWRD.
	;
	;53	Yet another fix to edit 45. Put checks around TSTDM7 to ensure we
	;	don't make multi-page check on last page. Courtesy of Peter Bray.
 REP 11/9	;08C3
		MOVEM	1,EA		;SAVE EFFECTIVE ADR OF THE UUO
		HLLZ	2,@EA		;GET THE UUO
		LDB	1,[POINT 9,2,8];JUST OP CODE
		CAIN	1,256		;XCT INSTRUCTION?
		JRST	[MOVE 	1,@EA	;RESOLVE WITH INDIRECT AND INDEX FOR GETWRD
 WIT
		DMOVEM	1,EA		;SAVE EFFECTIVE ADR OF THE UUO, AND CONTENTS
		HLLZS	2		;GET THE UUO
		LDB	1,[POINT 9,2,8];JUST OP CODE
		CAIN	1,256		;XCT INSTRUCTION?
		JRST	[MOVE 	1,AT.EA	;RESOLVE WITH INDIRECT AND INDEX FOR GETWRD
 REP 34/9	;08C4
		MOVE	1,@EA		;RESOLVE THE ADDR
 WIT
		MOVE	1,AT.EA		;RESOLVE THE ADDR
 INS 12/10	;08C5
		HLRO	3,1		;GET IOWD LENGTH
		ADDI	3,(2)		;ADD NUMBER OF WORDS LEFT IN PAGE
		JUMPG	3,TSTDM8	;IF IOWD FITS IN PAGE, BYPASS MULTIPAGE TEST
 REP 15/10	;08C6
		 JRST [	ADDI 1,1000	;STEP TO NEXT PAGE AGAIN
			MOVEI 2,1000	;SIZE WE JUST STEPPED
			ADDM 2,DMPTMP+1	;BUMP WORDCOUNT AMOUNT WE BUMPED
			JRST TSTDM7]	;AND LOOP
		DMOVE	1,DMPTMP	;GET BACK IOWD AND WORDCOUNT
 WIT
		SKIPA
		JRST	TSTD7A		;INACCESSIBLE, GIVE UP
		ADDI	1,1000	        ;STEP TO NEXT PAGE AGAIN
		MOVEI	2,1000	        ;SIZE WE JUST STEPPED
		ADDM	2,DMPTMP+1	;BUMP WORDCOUNT AMOUNT WE BUMPED
		HLRE	2,DMPTMP	;GET IOWD COUNT
		MOVNS	2		;MAKE POSITIVE COUNT
		CAML	2,DMPTMP+1	;DID WE BUMP BY MORE THAN IOWD HAS LEFT TO DO?
		JRST	TSTDM7		;NOPE, KEEP BUMPING.
	TSTD7A:	DMOVE	1,DMPTMP	;GET BACK IOWD AND WORDCOUNT
 REP 39/10	;08C7
		HLL	3,@EA		;GET ORIGINAL UUO
 WIT
		HLL	3,AT.EA		;GET ORIGINAL UUO
 INS 26/11	;08C8



 DEL 10/12	;08C9
		REPEAT	0, <		;[6]REWORK ENTIRE GETWRD ROUTINE
	GETWRD:	0
		JUMPE	1,@.-1		;IF AC  1 THROUGH 4,
		CAIG	1,4
		ADDI	1,SAVE1-1	;USE SAVED LOCATION
		JRST	@GETWRD
		>

 REP 23/12	;08C10
		MOVEI	1,@COMADR	;LET MACHINE DO ADDR COMPUTATION
 WIT
		MOVE	1,@COMADR	;GET WORD POINTED TO
		MOVEM	1,DMPTMP	;SAVE FOR LATER REFERENCE
		MOVE	1,SAVE1		;GET BACK ORIGINAL AC
		MOVEI	1,@COMADR	;LET MACHINE DO ADDR COMPUTATION
		MOVE	2,DMPTMP	;GET BACK CONTENTS OF WORD
 REP 4/14	;08C11
	DATLEN:	767
	DATEND:	DATA+767
 WIT
	DATLEN:	777-VSIZ-1
	DATEND:	DATA+777-VSIZ-1
 REP 111/15	;08C12
	EA:	BLOCK	1
 WIT
	EA:	BLOCK	1		;FOLLOWING WORD MUST BE ADJACENT!!
	AT.EA:	BLOCK	1		;WORD POINTED TO BY EA
 SUM 131629