Google
 

Trailing-Edge - PDP-10 Archives - bb-kl11c-bm_tops20_v6_1_atpch1_16 - autopatch/mscgen.c13
There are 13 other files named mscgen.c13 in the archive. Click here to see a list.
 REP 11/1	;13C1
	COPYRIGHT (C) 1974, 1983, 1984, 1985 BY DIGITAL EQUIPMENT CORPORATION
 WIT
	COPYRIGHT (C) 1974, 1983, 1984, 1986 BY DIGITAL EQUIPMENT CORPORATION
 INS 28/1	;13C2
	;MJC	09-JAN-86	[1622] Refmod offset byte pointer gereration does not
	;				 work for non-sixbit. Use ADJBP to get offset.
 REP 440/56	;13C3
		IDIV	TD,BYTE.W##(TE)	;divide it by bytes/word
		TSWT	FERROR		;if error don't adjust offset (err rtn sets it)
		HRLZM	TD,RMOFF	; else put increment value in LH of offset
		IMUL	TC,BYTE.S##(TE)	;multiply remainder by byte size 
		LDB	TD,DA.RES##	;get current byte residue
		SUB	TD,TC		;subtract offset from it
		JUMPGE	TD,REFM27	;if positive, still in same word
		ADDI	TD,44		;if negative, add 44 bits
		HLRZ	TC,RMOFF	;
		AOS	TC		; and bump the word offset by one
		TSWT	FERROR		;
		HRLM	TC,RMOFF	;
	REFM27:	TSWT	FERROR		;if error, don't adjust offset
		HRRM	TD,RMOFF	;save in RH of offset to adjust byte pointers
 WIT
		SETZ	TB,		;[1622] Zero out AC to build byte pointer
		MOVE	TC,BYTE.S##(TE)	;[1622] Get byte size
		DPB	TC,[POINT 6,TB,11]  ;[1622] Put it in S field in TB
		LDB	TC,DA.RES##	;[1622] Get P field for first byte of field
		DPB	TC,[POINT 6,TB,5]   ;[1622] Put it in TB
		ADJBP	TD,TB		;[1622] Adjust the pointer by offset
		TSWT	FERROR		;[1622] Don't touch RMOFF if error
		HRLZM	TD,RMOFF	;[1622] Stash away the word offset
		LDB	TC,[POINT 6,TD,5]   ;[1622] Pick up new P field
		TSWT	FERROR		;[1622] Don't touch RMOFF if error
		HRRM	TC,RMOFF	;[1622] Put it in offset word
 SUM 11288