Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0130/strsub.mac
There are 2 other files named strsub.mac in the archive. Click here to see a list.
TITLE		SKP.RT
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

SKP.RT:		ENTRY SKP.RT
AOS		(P)		; INCREMENT RETURN ADDRESS FOR SKIP RETURN
RETURN
NOSYM
PRGEND
TITLE		RST.PC
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

RST.PC:		ENTRY RST.PC
.+1				; CALLED BY RETURN AFTER PUSH P,RST.PC
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-1(P)		; SKIP RETURN, INCREMENT RETURN ADDRESS
POP		P,PC		; RESTORE SAVED PC
HLR		PC,PC		; GET ADDRESS OF CALLER'S SAVED PC
HRR		PC,(PC)		; RESTORE CALLER'S SAVED PC
RETURN
NOSYM
PRGEND
TITLE		RST.LP
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

RST.LP:		ENTRY RST.LP
.+1				; CALLED BY RETURN AFTER PUSH P,RST.LP
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		(LP)		; SKIP RETURN, INCREMENT RETURN ADDRESS
MOVE		P,LP		; RESTORE PUSHDOWN POINTER
MOVE		LP,1(P)		; RESTORE PREVIOUS LOCAL STORAGE POINTER
RETURN
NOSYM
PRGEND
TITLE		CAL.FS
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

CAL.FS:		ENTRY CAL.FS
F=		P1		; FIRST AC TO SAVE
N=		PC-F+1		; NUMBER OF AC'S TO SAVE
ADD		P,[N,,N]	; ALLOCATE SPACE ON PDL TO SAVE AC'S
JUMPG		P,[PUSHJ P,.]	; CAUSE PDL OVERFLOW IF OVERFLOWED
MOVEM		PC,(P)		; SAVE PC ON PDL
MOVSI		PC,F		; GET ADR OF FIRST AC FOR BLT POINTER
HRRI		PC,-<N-1>(P)	; GET ADR OF SAVE AREA ON PDL FOR BLT POINTER
BLT		PC,-1(P)	; SAVE AC'S F THRU PC-1 ON PDL
MOVE		PC,@-N(P)	; GET ARG LIST ADDRESS FROM CALLING PROGRAM
PUSHJ		P,@-1(PC)	; CALL FORTRAN SUBROUTINE
MOVSI		PC,-<N-1>(P)	; GET ADR OF SAVE AREA ON PDL FOR BLT POINTER
HRRI		PC,F		; GET ADR OF FIRST AC FOR BLT POINTER
BLT		PC,PC		; RESTORE AC'S F THRU PC FROM PDL
SUB		P,[N,,N]	; RESTORE PDL POINTER
AOS		(P)		; SKIP ARG LIST POINTER
RETURN
NOSYM
PRGEND
TITLE		S.R0R0
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.R0R0:		ENTRY S.R0R0
N=R0-R0+1
K=0
REPEAT <N>,<PUSH		P,R0+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,R0+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.T1T1
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.T1T1:		ENTRY S.T1T1
N=T1-T1+1
K=0
REPEAT <N>,<PUSH		P,T1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,T1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.T1T2
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.T1T2:		ENTRY S.T1T2
N=T2-T1+1
K=0
REPEAT <N>,<PUSH		P,T1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,T1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.T1T3
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.T1T3:		ENTRY S.T1T3
N=T3-T1+1
K=0
REPEAT <N>,<PUSH		P,T1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,T1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.T1T4
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.T1T4:		ENTRY S.T1T4
N=T4-T1+1
K=0
REPEAT <N>,<PUSH		P,T1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,T1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.P1P1
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.P1P1:		ENTRY S.P1P1
N=P1-P1+1
K=0
REPEAT <N>,<PUSH		P,P1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,P1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.P1P2
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.P1P2:		ENTRY S.P1P2
N=P2-P1+1
K=0
REPEAT <N>,<PUSH		P,P1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,P1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.P1P3
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.P1P3:		ENTRY S.P1P3
N=P3-P1+1
K=0
REPEAT <N>,<PUSH		P,P1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,P1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.P1P4
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.P1P4:		ENTRY S.P1P4
N=P4-P1+1
K=0
REPEAT <N>,<PUSH		P,P1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,P1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.P1R1
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.P1R1:		ENTRY S.P1R1
N=R1-P1+1
K=0
REPEAT <N>,<PUSH		P,P1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,P1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.P1R2
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.P1R2:		ENTRY S.P1R2
N=R2-P1+1
K=0
REPEAT <N>,<PUSH		P,P1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,P1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.P1R3
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.P1R3:		ENTRY S.P1R3
N=R3-P1+1
K=0
REPEAT <N>,<PUSH		P,P1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,P1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.P1R4
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.P1R4:		ENTRY S.P1R4
N=R4-P1+1
K=0
REPEAT <N>,<PUSH		P,P1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,P1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.R1R1
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.R1R1:		ENTRY S.R1R1
N=R1-R1+1
K=0
REPEAT <N>,<PUSH		P,R1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,R1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.R1R2
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.R1R2:		ENTRY S.R1R2
N=R2-R1+1
K=0
REPEAT <N>,<PUSH		P,R1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,R1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.R1R3
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.R1R3:		ENTRY S.R1R3
N=R3-R1+1
K=0
REPEAT <N>,<PUSH		P,R1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,R1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND
TITLE		S.R1R4
SEARCH		STRMAC
.DIRECT		.XTABM
TWOSEG
RELOC		400000

S.R1R4:		ENTRY S.R1R4
N=R4-R1+1
K=0
REPEAT <N>,<PUSH		P,R1+<K=K+1>-1>
PUSHJ		P,@-N(P)	; CALL CALLER BACK
CAIA				; NO SKIP RETURN, SKIP INCREMENT
AOS		-<N+1>(P)	; SKIP RETURN, INCREMENT RETURN ADDRESS
REPEAT <N>,<POP		P,R1+<K=K-1>>
POP		P,(P)		; DISCARD ORIGINAL RETURN ADDRESS
RETURN

NOSYM
PRGEND

END