$MACRO Dump;
  {Шестнадцатиричный дамп текущей строки}
  {Л.Г.Бунич 02.11.90 по мотивам Е.Г.Корзуна}

  DEF_INT(n,i,im,l,nc,cc);
  DEF_STR(Tab[16],h1[80],h2[80]);
  DEF_CHAR(h);

  PUSH_UNDO;
  im := INSERT_MODE; INSERT_MODE := 0;
  Tab := '0123456789ABCDEF';
  nc := ASCII(CUR_CHAR);
  l := LENGTH(GET_LINE);
  cc := 1;
  if C_COL > 79 then
    cc := C_COL - 70; l := l - cc + 1;
  end;
  goto_col(cc);
  i := 1; While i <= l do
    n := ASCII(CUR_CHAR);
    h1 := STR_INS(COPY(Tab,n/16+1,1),h1,i);
    h2 := STR_INS(COPY(Tab,(n MOD 16) + 1,1),h2,i);
    right; ++i;
  end;
  goto_col(1); down; Del_Chars(Length(Get_Line));  goto_col(cc); text(h1);
  goto_col(1); down; Del_Chars(Length(Get_Line));  goto_col(cc); text(h2);
  POP_UNDO;
  Make_message('Десятичный код: ' + STR(nc) + '. Нажмите любую клавишу...');
  Read_key;
  UNDO; INSERT_MODE := im;
  Make_message('');
end_macro;
