begin 
dynamicroutinespec  rstrg(stringname  s)
integer  j,n
!
constinteger  stringlen=127
constinteger  topn=100
!
integerarray  x(0:topn)
string (stringlen)array  aa(0:topn)
string (stringlen) s
!
      on  event  9 start ; -> eof; finish 
!
routine  sort files(string (stringlen)arrayname  p,  c 
   integerarrayname  x,integer  num)
! DECLARE INTEGER ARRAY X, BOUNDS 0:NUM-1, IN CALLING ROUTINE
       integer  i, j, hit, n
       for  i=0, 1, num-1 cycle 
          x(i)=i
          repeat 
       for  i=num-2, -1, 0 cycle 
          hit=0
          for  n=0, 1, i cycle 
             if  p(x(n))>p(x(n+1)) start 
                j=x(n)
                x(n)=x(n+1)
                x(n+1)=j
                hit=1
             finish 
          repeat 
          if  hit=0 thenexit 
       repeat 
      end ; ! SORT FILES
!
      select input(3)
      n=0
      cycle 
         rstrg(s)
         aa(n)=s; n=n+1
         repeat 
eof:  select input(0)
      sort files(aa,x,n)
      select output(4)
      j=0
      while  j<n cycle 
         printstring(aa(x(j)))
         newline
         j=j+1
         repeat 
endofprogram