home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol079 / adump.pli < prev    next >
Encoding:
Text File  |  1984-04-29  |  1.6 KB  |  61 lines

  1.   /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
  2.    *                                                     *
  3.    *                       ADUMP                         *
  4.    *                                                     *
  5.    *                  HEX DUMP ROUTINE                   *
  6.    *                                                     *
  7.    * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  8.  
  9.        displays address and data (no offset)
  10.  
  11.        dptr         =  ptr to data to be dumped
  12.        nbytes       =  number of bytes to dump */
  13.  
  14. adump:proc(dptr,nbytes);
  15.       %replace
  16.         true   by  '1'b,
  17.         false  by  '0'b;
  18.  
  19.     declare
  20.         dptr           ptr,
  21.         nbytes         bin fixed (15);
  22.  
  23.     declare
  24.         data(0:127)    bit(8) based (dptr),
  25.         (offset,lngth) fixed,
  26.         aptr           ptr,
  27.         (i,j)          fixed,
  28.         c              char(1),
  29.         chrptr         ptr,
  30.         chr            char(1) based (chrptr);
  31.  
  32.     put skip;
  33.     offset = 0;
  34.     lngth = max (0, nbytes-1);
  35.  
  36.         do while (offset < lngth);
  37.         j = min (offset+15, lngth); 
  38.         put skip;
  39.         aptr = addr (data(offset));
  40.         put edit (unspec (aptr), '') (b4, a(3));
  41.         put edit ((data(i) do i = offset to j)) (8(b4, x(1)), x(1));
  42.         put edit ('') (col(59), a);
  43.  
  44.             do i = offset to j;
  45.             if data(i) > '1f'b4 & data(i) < '7f'b4 then do;
  46.                 chrptr = addr(data(i));
  47.                 c = chr;
  48.                 end;
  49.             else
  50.                 c = '.';
  51.             put edit (c) (a(1));
  52.                 end;
  53.         offset = offset + 16;
  54.         end;
  55.  
  56.     end adump;
  57.  
  58.  
  59.  
  60.  
  61.