head     56.3;
access   paws bayes jws quist brad dew jwh;
symbols  ;
locks    ; strict;
comment  @# @;


56.3
date     93.01.27.13.16.34;  author jwh;  state Exp;
branches ;
next     56.2;

56.2
date     93.01.27.11.58.06;  author jwh;  state Exp;
branches ;
next     56.1;

56.1
date     91.11.05.09.53.37;  author jwh;  state Exp;
branches ;
next     55.3;

55.3
date     91.11.04.13.51.04;  author jwh;  state Exp;
branches ;
next     55.2;

55.2
date     91.11.04.13.00.12;  author jwh;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.28.57;  author jwh;  state Exp;
branches ;
next     54.3;

54.3
date     91.08.21.10.31.40;  author jwh;  state Exp;
branches ;
next     54.2;

54.2
date     91.08.21.09.37.05;  author jwh;  state Exp;
branches ;
next     54.1;

54.1
date     91.03.18.15.31.22;  author jwh;  state Exp;
branches ;
next     53.1;

53.1
date     91.03.11.19.31.16;  author jwh;  state Exp;
branches ;
next     52.1;

52.1
date     91.02.19.09.15.43;  author jwh;  state Exp;
branches ;
next     51.1;

51.1
date     91.01.30.16.15.18;  author jwh;  state Exp;
branches ;
next     50.1;

50.1
date     90.10.29.16.29.58;  author jwh;  state Exp;
branches ;
next     49.1;

49.1
date     90.08.14.14.13.44;  author jwh;  state Exp;
branches ;
next     48.1;

48.1
date     90.07.26.11.20.02;  author jwh;  state Exp;
branches ;
next     47.1;

47.1
date     90.05.14.11.04.10;  author dew;  state Exp;
branches ;
next     46.1;

46.1
date     90.05.07.08.51.18;  author jwh;  state Exp;
branches ;
next     45.1;

45.1
date     90.04.19.15.59.14;  author jwh;  state Exp;
branches ;
next     44.1;

44.1
date     90.04.01.22.16.20;  author jwh;  state Exp;
branches ;
next     43.1;

43.1
date     90.03.20.14.08.46;  author jwh;  state Exp;
branches ;
next     42.1;

42.1
date     90.01.23.17.53.05;  author jwh;  state Exp;
branches ;
next     41.1;

41.1
date     89.12.22.11.35.21;  author jwh;  state Exp;
branches ;
next     40.1;

40.1
date     89.09.29.11.56.39;  author jwh;  state Exp;
branches ;
next     39.1;

39.1
date     89.09.26.16.41.22;  author dew;  state Exp;
branches ;
next     38.1;

38.1
date     89.08.29.11.33.15;  author jwh;  state Exp;
branches ;
next     37.1;

37.1
date     89.05.12.11.46.58;  author dew;  state Exp;
branches ;
next     36.1;

36.1
date     89.02.06.10.24.40;  author dew;  state Exp;
branches ;
next     35.1;

35.1
date     89.02.02.13.39.56;  author dew;  state Exp;
branches ;
next     34.1;

34.1
date     89.01.23.16.15.12;  author jwh;  state Exp;
branches ;
next     33.1;

33.1
date     89.01.16.11.46.51;  author dew;  state Exp;
branches ;
next     32.1;

32.1
date     89.01.10.11.55.47;  author bayes;  state Exp;
branches ;
next     31.1;

31.1
date     88.12.14.18.16.51;  author bayes;  state Exp;
branches ;
next     30.1;

30.1
date     88.12.09.13.53.51;  author dew;  state Exp;
branches ;
next     29.1;

29.1
date     88.10.31.15.38.34;  author bayes;  state Exp;
branches ;
next     28.1;

28.1
date     88.10.06.11.04.50;  author dew;  state Exp;
branches ;
next     27.1;

27.1
date     88.09.29.11.47.26;  author bayes;  state Exp;
branches ;
next     26.1;

26.1
date     88.09.28.13.26.49;  author bayes;  state Exp;
branches ;
next     25.1;

25.1
date     88.03.02.09.40.23;  author bayes;  state Exp;
branches ;
next     24.1;

24.1
date     87.08.31.10.08.12;  author jws;  state Exp;
branches ;
next     23.1;

23.1
date     87.08.26.10.48.27;  author bayes;  state Exp;
branches ;
next     22.1;

22.1
date     87.08.17.11.32.31;  author bayes;  state Exp;
branches ;
next     21.1;

21.1
date     87.08.12.14.16.08;  author bayes;  state Exp;
branches ;
next     20.1;

20.1
date     87.07.30.11.28.29;  author bayes;  state Exp;
branches ;
next     19.1;

19.1
date     87.06.01.08.41.16;  author jws;  state Exp;
branches ;
next     18.1;

18.1
date     87.05.20.15.45.41;  author bayes;  state Exp;
branches ;
next     17.1;

17.1
date     87.04.30.10.52.45;  author jws;  state Exp;
branches ;
next     16.1;

16.1
date     87.04.26.16.03.37;  author jws;  state Exp;
branches ;
next     15.1;

15.1
date     87.04.13.09.42.34;  author jws;  state Exp;
branches ;
next     14.1;

14.1
date     87.04.01.15.50.11;  author jws;  state Exp;
branches ;
next     13.1;

13.1
date     87.02.28.18.47.15;  author jws;  state Exp;
branches ;
next     12.1;

12.1
date     87.02.02.13.39.29;  author jws;  state Exp;
branches ;
next     11.1;

11.1
date     87.01.19.10.06.06;  author jws;  state Exp;
branches ;
next     10.1;

10.1
date     86.12.24.11.20.38;  author jws;  state Exp;
branches ;
next     9.1;

9.1
date     86.12.12.15.03.03;  author bayes;  state Exp;
branches ;
next     8.1;

8.1
date     86.11.27.12.14.52;  author jws;  state Exp;
branches ;
next     7.1;

7.1
date     86.11.20.14.22.16;  author hal;  state Exp;
branches ;
next     6.1;

6.1
date     86.11.04.18.19.06;  author paws;  state Exp;
branches ;
next     5.1;

5.1
date     86.10.28.17.07.13;  author hal;  state Exp;
branches ;
next     4.1;

4.1
date     86.09.30.20.03.54;  author hal;  state Exp;
branches ;
next     3.1;

3.1
date     86.09.01.12.14.01;  author hal;  state Exp;
branches ;
next     2.1;

2.1
date     86.07.30.15.02.19;  author hal;  state Exp;
branches ;
next     1.1;

1.1
date     86.06.30.16.15.15;  author danm;  state tmp;
branches ;
next     ;


desc
@Base file for PWS 3.2 release.

@


56.3
log
@
pws2rcs automatic delta on Wed Jan 27 13:14:25 MST 1993
@
text
@*       procedure alphalist
*               var symtable: array[0..65535] of char; {symbol table}
*               var list:     array[0..N-1]   of 0..65535;
*                   N:        0..65535;
*
*       The N elements of the list are offsets into the symbol table,
*       where strings are found.  The object is to rearrange the list
*       so that the strings are alphabetized.

	rorg    0

	def     alphalist

symtable equ    a0              base of symbol table containing strings
I       equ     a1              index into list
J       equ     a2              index into list
Istr    equ     a3              address of string
Jstr    equ     a4              address of string

Ioffset equ     d0              offset into symbol table
Joffset equ     d1              offset into symbol table
Icount  equ     d2              number of elements processed
Jcount  equ     d3              inner loop counter
N       equ     d4              size of list
len     equ     d5              length of string
comp    equ     d6              condition codes

alphalist equ   *

	movea.l (sp)+,J                 return address
	move.w  (sp)+,N                 size of list
	movea.l (sp)+,I                 address of list
	movea.l (sp)+,symtable          address of symbol table
	move.l  J,-(sp)                 replace return address

	subq.w  #2,N                    list must have least two elements
	bcs.s   done
	addq.l  #2,I                    start with second list element
	clr.l   Ioffset                 sign extend to long
	clr.l   Joffset                 sign extend to long
	clr.w   Icount                  initialize tally of elements processed
I_loop  movea.l I,J                     for J := I
	move.w  Icount,Jcount                   downto 0
	move.w  (I)+,Ioffset            ioffset := list[I]
	addq.w  #1,Icount                       I := I + 1
J_loop  move.w  -(J),Joffset            J := J - 1; joffset := list[J]

	lea     0(symtable,Joffset.l),Jstr      standard string comparison:
	lea     0(symtable,Ioffset.l),Istr
	MOVEQ   #0,COMP                                                 (rdq)
	MOVE.B  (ISTR)+,COMP                                            (rdq)
	MOVE.W  COMP,LEN                                                (rdq)
	SWAP    LEN                                                     (rdq)
	MOVE.W  COMP,LEN                DUPLICATE LENGTH FOR LATER USE  (rdq)
	MOVE.B  (JSTR)+,COMP                                            (rdq)
	cmp.b   COMP,len                compare lengths                 (rdq)
	bls.s   str_comp
	MOVE.W  COMP,LEN                get minimum of two string lengths(rdq)
str_comp subq.b #1,len                  loop if at least one character
	bcs.s   cmp_end
cmp_lp  cmpm.b  (Jstr)+,(Istr)+         compare string bodies
	dbne    len,cmp_lp              loop till not equal or end of string
	bne.s   cmp                     if string bodies are equal,
cmp_end SWAP    LEN                             then compare lengths    (rdq)
	CMP.B   COMP,LEN                                                (rdq)
cmp     bcc.s   found                   if string(I) >= string(J), J loop done

	move.w  Joffset,2(J)            list[J+1] := joffset
	dbra    Jcount,J_loop           loop until J = 0
	move.w  Ioffset,(J)             if J = 0 then list[0] := ioffset
	bra.s   next_I

found   move.w  Ioffset,2(J)            list[J+1] := ioffset
next_I  dbra    N,I_loop                loop until N = 0

done    rts                             wasn't that easy?

	end

@


56.2
log
@
pws2rcs automatic delta on Wed Jan 27 11:57:27 MST 1993
@
text
@d1 79
@


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 79
*       procedure alphalist
*               var symtable: array[0..65535] of char; {symbol table}
*               var list:     array[0..N-1]   of 0..65535;
*                   N:        0..65535;
*
*       The N elements of the list are offsets into the symbol table,
*       where strings are found.  The object is to rearrange the list
*       so that the strings are alphabetized.

	rorg    0

	def     alphalist

symtable equ    a0              base of symbol table containing strings
I       equ     a1              index into list
J       equ     a2              index into list
Istr    equ     a3              address of string
Jstr    equ     a4              address of string

Ioffset equ     d0              offset into symbol table
Joffset equ     d1              offset into symbol table
Icount  equ     d2              number of elements processed
Jcount  equ     d3              inner loop counter
N       equ     d4              size of list
len     equ     d5              length of string
comp    equ     d6              condition codes

alphalist equ   *

	movea.l (sp)+,J                 return address
	move.w  (sp)+,N                 size of list
	movea.l (sp)+,I                 address of list
	movea.l (sp)+,symtable          address of symbol table
	move.l  J,-(sp)                 replace return address

	subq.w  #2,N                    list must have least two elements
	bcs.s   done
	addq.l  #2,I                    start with second list element
	clr.l   Ioffset                 sign extend to long
	clr.l   Joffset                 sign extend to long
	clr.w   Icount                  initialize tally of elements processed
I_loop  movea.l I,J                     for J := I
	move.w  Icount,Jcount                   downto 0
	move.w  (I)+,Ioffset            ioffset := list[I]
	addq.w  #1,Icount                       I := I + 1
J_loop  move.w  -(J),Joffset            J := J - 1; joffset := list[J]

	lea     0(symtable,Joffset.l),Jstr      standard string comparison:
	lea     0(symtable,Ioffset.l),Istr
	MOVEQ   #0,COMP                                                 (rdq)
	MOVE.B  (ISTR)+,COMP                                            (rdq)
	MOVE.W  COMP,LEN                                                (rdq)
	SWAP    LEN                                                     (rdq)
	MOVE.W  COMP,LEN                DUPLICATE LENGTH FOR LATER USE  (rdq)
	MOVE.B  (JSTR)+,COMP                                            (rdq)
	cmp.b   COMP,len                compare lengths                 (rdq)
	bls.s   str_comp
	MOVE.W  COMP,LEN                get minimum of two string lengths(rdq)
str_comp subq.b #1,len                  loop if at least one character
	bcs.s   cmp_end
cmp_lp  cmpm.b  (Jstr)+,(Istr)+         compare string bodies
	dbne    len,cmp_lp              loop till not equal or end of string
	bne.s   cmp                     if string bodies are equal,
cmp_end SWAP    LEN                             then compare lengths    (rdq)
	CMP.B   COMP,LEN                                                (rdq)
cmp     bcc.s   found                   if string(I) >= string(J), J loop done

	move.w  Joffset,2(J)            list[J+1] := joffset
	dbra    Jcount,J_loop           loop until J = 0
	move.w  Ioffset,(J)             if J = 0 then list[0] := ioffset
	bra.s   next_I

found   move.w  Ioffset,2(J)            list[J+1] := ioffset
next_I  dbra    N,I_loop                loop until N = 0

done    rts                             wasn't that easy?

	end

@


55.3
log
@
pws2rcs automatic delta on Mon Nov  4 13:45:04 MST 1991
@
text
@@


55.2
log
@
pws2rcs automatic delta on Mon Nov  4 12:54:35 MST 1991
@
text
@d1 79
@


55.1
log
@Automatic bump of revision number for PWS version 3.25A
@
text
@a0 79
*       procedure alphalist
*               var symtable: array[0..65535] of char; {symbol table}
*               var list:     array[0..N-1]   of 0..65535;
*                   N:        0..65535;
*
*       The N elements of the list are offsets into the symbol table,
*       where strings are found.  The object is to rearrange the list
*       so that the strings are alphabetized.

	rorg    0

	def     alphalist

symtable equ    a0              base of symbol table containing strings
I       equ     a1              index into list
J       equ     a2              index into list
Istr    equ     a3              address of string
Jstr    equ     a4              address of string

Ioffset equ     d0              offset into symbol table
Joffset equ     d1              offset into symbol table
Icount  equ     d2              number of elements processed
Jcount  equ     d3              inner loop counter
N       equ     d4              size of list
len     equ     d5              length of string
comp    equ     d6              condition codes

alphalist equ   *

	movea.l (sp)+,J                 return address
	move.w  (sp)+,N                 size of list
	movea.l (sp)+,I                 address of list
	movea.l (sp)+,symtable          address of symbol table
	move.l  J,-(sp)                 replace return address

	subq.w  #2,N                    list must have least two elements
	bcs.s   done
	addq.l  #2,I                    start with second list element
	clr.l   Ioffset                 sign extend to long
	clr.l   Joffset                 sign extend to long
	clr.w   Icount                  initialize tally of elements processed
I_loop  movea.l I,J                     for J := I
	move.w  Icount,Jcount                   downto 0
	move.w  (I)+,Ioffset            ioffset := list[I]
	addq.w  #1,Icount                       I := I + 1
J_loop  move.w  -(J),Joffset            J := J - 1; joffset := list[J]

	lea     0(symtable,Joffset.l),Jstr      standard string comparison:
	lea     0(symtable,Ioffset.l),Istr
	MOVEQ   #0,COMP                                                 (rdq)
	MOVE.B  (ISTR)+,COMP                                            (rdq)
	MOVE.W  COMP,LEN                                                (rdq)
	SWAP    LEN                                                     (rdq)
	MOVE.W  COMP,LEN                DUPLICATE LENGTH FOR LATER USE  (rdq)
	MOVE.B  (JSTR)+,COMP                                            (rdq)
	cmp.b   COMP,len                compare lengths                 (rdq)
	bls.s   str_comp
	MOVE.W  COMP,LEN                get minimum of two string lengths(rdq)
str_comp subq.b #1,len                  loop if at least one character
	bcs.s   cmp_end
cmp_lp  cmpm.b  (Jstr)+,(Istr)+         compare string bodies
	dbne    len,cmp_lp              loop till not equal or end of string
	bne.s   cmp                     if string bodies are equal,
cmp_end SWAP    LEN                             then compare lengths    (rdq)
	CMP.B   COMP,LEN                                                (rdq)
cmp     bcc.s   found                   if string(I) >= string(J), J loop done

	move.w  Joffset,2(J)            list[J+1] := joffset
	dbra    Jcount,J_loop           loop until J = 0
	move.w  Ioffset,(J)             if J = 0 then list[0] := ioffset
	bra.s   next_I

found   move.w  Ioffset,2(J)            list[J+1] := ioffset
next_I  dbra    N,I_loop                loop until N = 0

done    rts                             wasn't that easy?

	end

@


54.3
log
@
pws2rcs automatic delta on Wed Aug 21 10:27:27 MDT 1991
@
text
@@


54.2
log
@
pws2rcs automatic delta on Wed Aug 21 09:35:48 MDT 1991
@
text
@d1 79
@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
text
@a0 79
*       procedure alphalist
*               var symtable: array[0..65535] of char; {symbol table}
*               var list:     array[0..N-1]   of 0..65535;
*                   N:        0..65535;
*
*       The N elements of the list are offsets into the symbol table,
*       where strings are found.  The object is to rearrange the list
*       so that the strings are alphabetized.

	rorg    0

	def     alphalist

symtable equ    a0              base of symbol table containing strings
I       equ     a1              index into list
J       equ     a2              index into list
Istr    equ     a3              address of string
Jstr    equ     a4              address of string

Ioffset equ     d0              offset into symbol table
Joffset equ     d1              offset into symbol table
Icount  equ     d2              number of elements processed
Jcount  equ     d3              inner loop counter
N       equ     d4              size of list
len     equ     d5              length of string
comp    equ     d6              condition codes

alphalist equ   *

	movea.l (sp)+,J                 return address
	move.w  (sp)+,N                 size of list
	movea.l (sp)+,I                 address of list
	movea.l (sp)+,symtable          address of symbol table
	move.l  J,-(sp)                 replace return address

	subq.w  #2,N                    list must have least two elements
	bcs.s   done
	addq.l  #2,I                    start with second list element
	clr.l   Ioffset                 sign extend to long
	clr.l   Joffset                 sign extend to long
	clr.w   Icount                  initialize tally of elements processed
I_loop  movea.l I,J                     for J := I
	move.w  Icount,Jcount                   downto 0
	move.w  (I)+,Ioffset            ioffset := list[I]
	addq.w  #1,Icount                       I := I + 1
J_loop  move.w  -(J),Joffset            J := J - 1; joffset := list[J]

	lea     0(symtable,Joffset.l),Jstr      standard string comparison:
	lea     0(symtable,Ioffset.l),Istr
	MOVEQ   #0,COMP                                                 (rdq)
	MOVE.B  (ISTR)+,COMP                                            (rdq)
	MOVE.W  COMP,LEN                                                (rdq)
	SWAP    LEN                                                     (rdq)
	MOVE.W  COMP,LEN                DUPLICATE LENGTH FOR LATER USE  (rdq)
	MOVE.B  (JSTR)+,COMP                                            (rdq)
	cmp.b   COMP,len                compare lengths                 (rdq)
	bls.s   str_comp
	MOVE.W  COMP,LEN                get minimum of two string lengths(rdq)
str_comp subq.b #1,len                  loop if at least one character
	bcs.s   cmp_end
cmp_lp  cmpm.b  (Jstr)+,(Istr)+         compare string bodies
	dbne    len,cmp_lp              loop till not equal or end of string
	bne.s   cmp                     if string bodies are equal,
cmp_end SWAP    LEN                             then compare lengths    (rdq)
	CMP.B   COMP,LEN                                                (rdq)
cmp     bcc.s   found                   if string(I) >= string(J), J loop done

	move.w  Joffset,2(J)            list[J+1] := joffset
	dbra    Jcount,J_loop           loop until J = 0
	move.w  Ioffset,(J)             if J = 0 then list[0] := ioffset
	bra.s   next_I

found   move.w  Ioffset,2(J)            list[J+1] := ioffset
next_I  dbra    N,I_loop                loop until N = 0

done    rts                             wasn't that easy?

	end

@


53.1
log
@Automatic bump of revision number for PWS version 3.24B
@
text
@@


52.1
log
@Automatic bump of revision number for PWS version 3.24A
@
text
@@


51.1
log
@Automatic bump of revision number for PWS version 3.24d
@
text
@@


50.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


49.1
log
@Automatic bump of revision number for PWS version 3.24b
@
text
@@


48.1
log
@Automatic bump of revision number for PWS version 3.24a
@
text
@@


47.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


46.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


45.1
log
@Automatic bump of revision number for PWS version 3.23C
@
text
@@


44.1
log
@Automatic bump of revision number for PWS version 3.23B
@
text
@@


43.1
log
@Automatic bump of revision number for PWS version 3.23aA
@
text
@@


42.1
log
@Automatic bump of revision number for PWS version 3.23e
@
text
@@


41.1
log
@Automatic bump of revision number for PWS version 3.23d
@
text
@@


40.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


39.1
log
@Automatic bump of revision number for PWS version 3.23b
@
text
@@


38.1
log
@Automatic bump of revision number for PWS version 3.23a
@
text
@@


37.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


36.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


35.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


34.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


33.1
log
@Automatic bump of revision number for PWS version 3.22D
@
text
@@


32.1
log
@Automatic bump of revision number for PWS version 3.22C
@
text
@@


31.1
log
@Automatic bump of revision number for PWS version 3.22B
@
text
@@


30.1
log
@Automatic bump of revision number for PWS version 3.22A
@
text
@@


29.1
log
@Automatic bump of revision number for PWS version 3.22b
@
text
@@


28.1
log
@Automatic bump of revision number for PWS version 3.3b
@
text
@@


27.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


26.1
log
@Automatic bump of revision number for PWS version 3.3 Synch
@
text
@@


25.1
log
@Automatic bump of revision number for PWS version 3.2Y
@
text
@@


24.1
log
@Automatic bump of revision number for PWS version 3.2
@
text
@@


23.1
log
@Automatic bump of revision number for PWS version 3.2P
@
text
@@


22.1
log
@Automatic bump of revision number for PWS version 3.2N
@
text
@@


21.1
log
@Automatic bump of revision number for PWS version 3.2M
@
text
@@


20.1
log
@Automatic bump of revision number for PWS version 3.2L
@
text
@@


19.1
log
@Automatic bump of revision number for PWS version 3.2K
@
text
@@


18.1
log
@Automatic bump of revision number for PWS version 3.2J
@
text
@@


17.1
log
@Automatic bump of revision number for PWS version 3.2I+
@
text
@@


16.1
log
@Automatic bump of revision number for PWS version 3.2I
@
text
@@


15.1
log
@Automatic bump of revision number for PWS version 3.2H
@
text
@@


14.1
log
@Automatic bump of revision number for PWS version 3.2G
@
text
@@


13.1
log
@Automatic bump of revision number for PWS version 3.2F
@
text
@@


12.1
log
@Automatic bump of revision number for PWS version 3.2E
@
text
@@


11.1
log
@Automatic bump of revision number for PWS version 3.2D
@
text
@@


10.1
log
@Automatic bump of revision number for PWS version 3.2C
@
text
@@


9.1
log
@Automatic bump of revision number for PWS version 3.2B
@
text
@@


8.1
log
@Automatic bump of revision number for PWS version 3.2A
@
text
@@


7.1
log
@Automatic bump of revision number for PWS version 3.2l
@
text
@@


6.1
log
@Automatic bump of revision number for PWS version 3.2k
@
text
@@


5.1
log
@Automatic bump of revision number for PWS version 3.2j
@
text
@@


4.1
log
@Automatic bump of revision number for PWS version 3.2i
@
text
@@


3.1
log
@Automatic bump of revision number for PWS version 3.2h
@
text
@@


2.1
log
@Auto bump rev number to 2.1 for sys 3.2e.
@
text
@@


1.1
log
@Initial revision
@
text
@@
