Trailing-Edge
-
PDP-10 Archives
-
decuslib20-06
-
decus/20-153/srttab.mac
There are 9 other files named srttab.mac in the archive.  Click here to see a list.
TITLE	SRTTAB FOR RPGII 1
SUBTTL	SORT DIAGNOSTIC WORDS	AL BLACKINGTON/CAM/BOB CURRIER
;MODIFIED TO RPGII VERSION AUGUST 8, 1975 00:57:37 BOB CURRIER
TWOSEG
RELOC	400000
	ENTRY	SRTERA
	ENTRY	SRTNAM
;THE DATA CONSISTS OF ONE WORD ENTRIES
;THEY ARE SORTED DISREGARDING DIAGNOSTIC NUMBERS, SUCH THAT
;	ALL DIAGS FOR SAME POSITION WILL BE PRINTED IN THE ORDER
;	THAT THEY WERE WRITTEN ONTO ERAFIL
;THE DIAGS ARE CURRENTLY IN CORE, "ERATAB" POINTS TO THE FIRST ITEM,
;	"DT" POINTS TO THE LAST
SRTERA:	HRRZ	TA,ERATAB		; SET TA TO THE FIRST DIAG
	MOVEI	TC,0			; CLEAR FLAG
SRTER1:	CAIN	TA,(DT)			; ARE WE DONE?
	JRST	SRTER8			; YES -
	MOVE	TE,1(TA)
	MOVE	TD,0(TA)
	ANDCMI	TD,DIAGNO		; STRIP OFF DIAG NUMBER
	ANDCMI	TE,DIAGNO
	CAMLE	TD,TE			; ARE THEY IN ORDER?
	JRST	SRT10			; NO - EXCHANGE
	AOJA	TA,SRTER1		; YES - NO EXCHANGE
SRTER8:	JUMPN	TC,SRTERA		; ONE PASS DONE - ANY EXVHANGES?
	POPJ	PP,			; NO - THEY ARE ALL IN ORDER
;SINGLE FOLLOWED BY SINGLE EXCHANGE ROUTINE
SRT10:	MOVE	TB,0(TA)
	EXCH	TB,1(TA)
	MOVEM	TB,0(TA)
SRT11:	MOVNI	TC,1
SRT12:	AOJA	TA,SRTER1
DIAGNO==777				;MASK FOR DIAGNOSTIC NUMBER
EXTERNAL ERATAB
NAMRSV==1B2
SUBTTL	SORT USER NAMES IN NAMTAB		AL BLACKINGTON
;PACK POINTERS TO USER NAME AT TOP OF NM2TAB
SRTNAM:	MOVN	TA,NM12SZ
	MOVSS	TA
	HRR	TA,NM2LOC
	MOVEI	LN,(TA)
	HRRZ	CP,NAMLOC
	MOVSI	TD,CP
SRTN1:	SKIPN	TE,(TA)
	JRST	SRTN2
	HRR	TD,TE
	MOVE	TC,@TD
	TLNN	TC,NAMRSV/1000000
	TRNN	TC,-1
	JRST	SRTN2
	MOVEM	TE,(LN)
	ADDI	LN,1
SRTN2:	AOBJN	TA,SRTN1
;LN NOW POINTS TO LAST ENTRY PLUS 1
	SETZM	(LN)
;SORT NM2TAB ACCORDING TO NAMES IN NAMTAB
	MOVSI	TA,CP
	MOVSI	TB,CP
SRTN3:	HRRZ	TC,NM2LOC		; SET TO TOP OF TABLE
	MOVEI	DT,0
	SUBI	LN,1
SRTN4:	CAIL	TC,(LN)			; DONE WITH THIS PASS?
	JRST	SRTN9			; YES -
	HLRZ	TE,(TC)			; NO - GET SIZE OF ITEM-A
	HLRZ	TD,1(TC)		; GET SIZE OF ITEM-B
	HRR	TA,(TC)			; GET ADDRESS OF ITEM-A
	HRR	TB,1(TC)		; GET ADDRESS OF ITEM-B
SRTN5:	ADDI	TA,1
	ADDI	TB,1
	MOVE	CH,@TA			; GET A WORD FROM ITEM-A
	CAME	CH,@TB			; IS IT EQUAL TO WORD FROM ITEM-B
	JRST	SRTN8			; NO -
	SOJLE	TD,SRTN6		; YES - HAVE WE LOOKED AT ALL OF ITEM-B?
	SOJG	TE,SRTN5		;NO - HAVE WE LOOKED AT ALL ITEM-A?
SRTN5A:	AOJA	TC,SRTN4		; YES - THEY ARE EQUAL
SRTN6:	SOJLE	TE,SRTN5A		; HAVE WE LOOKED AT ALL ITEM-A?
SRTN7:	MOVE	TE,(TC)			; NO - ITEM-A IS LARGER, SO SWAP POINTERS
	EXCH	TE,1(TC)
	MOVEM	TE,(TC)
	HRROI	DT,-1			; SET FLAG
	AOJA	TC,SRTN4		; LOOP TO LOOK AT NEXT PAIR
SRTN8:	CAMG	CH,@TB			; IS ITEM-A > ITEM-B
	AOJA	TC,SRTN4		; NO - LOOP TO LOOK AT NEXT PAIR
	JRST	SRTN7			; YES - GO SWAP THEM
SRTN9:	JUMPN	DT,SRTN3		; ANYTHING SWAPPED ON THAT PASS?
	POPJ	PP,			; NO - RETURN
EXTERNAL	NAMLOC,NM2LOC,NM12SZ
	END