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