home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / SASC6571.LZX / rexx / dbptr.cpr < prev    next >
Encoding:
Text File  |  1996-12-24  |  1.1 KB  |  50 lines

  1. /* 
  2. DBPTR -- Dump memory as bytes for a given BPTR
  3.          (1 byte hex values with text)
  4.   DBPTR (<variable> | <address> | <range>)
  5.    >dbptr var         /* Dumps 64 bytes pointed to by BPTR var   */
  6.    >dbptr var l 10    /* Dumps 10 bytes pointed to by BPTR var   */
  7.    >dbptr 0x82034     /* Dumps 64 bytes from location 0x002080d0 */
  8.    >dbptr 0x82034 l 5 /* Dumps 5 bytes from location 0x002080d0  */
  9. Note that a BPTR is an address shifted right 2.
  10. */
  11. address 'COMMAND'
  12. 'version >nil: exec.library 36 '
  13. lrc = rc
  14.  
  15. if (rc = 0) then
  16.   check = addlib('rexxsupport.library',0,-30,0) 
  17.  
  18. address
  19.  
  20. parse arg expr ' l ' len ' L ' len2
  21. if (expr = '?') then
  22.    do
  23.    do i = 2 to 9
  24.       'd "' strip(sourceline(i),'T', "0a"x) '"'
  25.    end
  26.    exit(0)
  27.    end
  28. options failat 3
  29. options results
  30. 'd ' expr '"%d"'
  31. stat = rc
  32. val = strip(result,'T',"0a"x)
  33. options
  34. if (stat ~= 0) then
  35.    do
  36.    'd "Error: can''t find' expr '"'
  37.    exit(0)
  38.    end
  39. val = strip(val)
  40. if (~datatype(val,'x')) then
  41.    do
  42.    'd "       ^------------should be an ''address''"'
  43.    exit(0)
  44.    end
  45. lenspec = ''
  46. if (len  ~= '') then lenspec = 'l' len
  47. if (len2 ~= '') then lenspec = 'L' len2
  48. 'db ' val*4 lenspec
  49. exit(0)
  50.