Google
 

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