1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        ALPHA:   ALPHANUMERIC SORT
4  REM
5  REM        36292 REV  A   6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  REM:   DAVID BROWN  PROGRAMMER
20  REM:   ALPHABETIZES STRINGS BY CONVERSION
30  REM:   TO PSEUDO EBCDIC CODE
31  REM:   MODIFIED TO ACCEPT 75 WORDS BY E POPE, 5/18/76
40  DIM A[75,62],A$[62],S$[62]
50  S$=" !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ["'92"]^"
60  MAT A=ZER
70  PRINT "HOW MANY WORDS DO YOU WISH TO ALPHABETIZE"
75  PRINT "(LIMIT: 75 WORDS, 60 CHARACTERS)";
80  INPUT L
90  PRINT "PUT EACH WORD ON A LINE."
100  FOR N=1 TO L
110  INPUT A$
120  FOR F=1 TO LEN(A$)
130  FOR X=1 TO LEN(S$)
140  IF A$[F,F]#S$[X,X] THEN 170
150  A[N,F]=X
160  GOTO 180
170  NEXT X
180  NEXT F
190  NEXT N
200  PRINT '10'10'10;
210  Z=1
220  FOR X=1 TO L
230  IF A[X,1]=0 OR X=Z THEN 300
240  FOR M=1 TO LEN(S$)
250  IF A[Z,M]=0 OR A[Z,M]<A[X,M] THEN 300
260  IF A[Z,M]=A[X,M] THEN 290
270  Z=X
280  GOTO 220
290  NEXT M
300  NEXT X
310  FOR P=1 TO LEN(S$)
320  IF A[Z,P]=0 THEN 350
330  PRINT S$[A[Z,P],A[Z,P]];
340  NEXT P
350  A[Z,1]=0
360  PRINT 
370  FOR Z=1 TO L
380  IF A[Z,1]=0 THEN 400
390  GOTO 220
400  NEXT Z
410  END 
