home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol079 / setkey.pli < prev    next >
Text File  |  1984-04-29  |  940b  |  52 lines

  1. setkey:
  2.     proc;
  3.     /* read key file */
  4. %include 'attrib.dcl';
  5. %include 'key.dcl';
  6.     dcl
  7.         key file,
  8.         key_v  char(max_chr),
  9.         rec_no fixed;
  10.  
  11.     setfmt:
  12.         format(skip,column(12),a,skip,a);
  13.  
  14.     on error(7)
  15.         begin;
  16.         /* free space exhausted */
  17.         put edit('Not Enough Memory for Keys','')
  18.             (r(setfmt));
  19.         stop;
  20.         end;
  21.  
  22.     on undefinedfile(key)
  23.         begin;
  24.         put edit('(No Key File)','')
  25.             (r(setfmt));
  26.         go to end_set;
  27.         end;
  28.  
  29.     on endfile(key)
  30.         go to end_read;
  31.  
  32.     key_hdr = null();
  33.     open file(key) stream;
  34.         do rec_no = 0 by 1;
  35.         get file(key) edit(key_v) (a);
  36.         allocate key_elt set(key_adr);
  37.         key_val = key_v;
  38.         key_loc = rec_no;
  39.         key_lst = key_hdr;
  40.         key_hdr = key_adr;
  41.         end;
  42.     end_read:
  43.     close file(key);
  44.     put skip list('List of Keys:');
  45.         do key_adr = key_hdr repeat(key_lst)
  46.             while(key_adr ^= null());
  47.         put edit(key_val,key_loc)
  48.             (column(4),a(max_chr),f(6));
  49.         end;
  50.     end_set:
  51.     end setkey;
  52.