MiniM. Saving time.


| About | Download | Tools | Knowledge Base | How to Buy |

MiniM Overview

Getting Started

Download

Documentation

Tools

Cache Tools

GT.M Tools

Knowledge Base

FAQ

Contacts

Copyrights

MiniM Additional Tools | ENG | Jun 11, 2010

Универсальный MUMPS-commander AltNC

Download anc414.zip (zip, 1.75Mb)

Download anc412.zip (zip, 685Kb)

Download anc406.zip (zip, 160Kb)

О программе

Менеджер для работы с рутинами и глобалами в MUMPS системах. Работает под следующими MUMPS системами: MSM (4 версия и выше), Cache, M21, M3-Lite, GT.M, Mumps 1.47, MiniM. Программа выполнена в алфавитно-цифровом интерфейсе и может работать как в консоли, так и в телнете, в том числе удаленно.

Весь инструментарий основан на идеях Османова Р.М (комплекс ^%WM*). Все коды AltNC, включая сам инструментарий ^%aWM*, написаны с нуля.

В текущее время инструментарий находится в разработке.

Панели AltNC

Редактор кода рутин

Встроенная справка

Инсталляция

Импортировать рутины программы стандартными утилитами в системные (% области)
MiniMФайл anc.rtn утилитой ^%RI (в базу данных %SYS) или с помошью MiniM Control Center или с помощью MiniM Routine Editor
MSMФайл аnc.rtn утилитой ^%RR (обычно в MGR,SYS)
CacheФайл аnc.rtn утилитой ^%RI (0 тип (cache) в область %CACHELIB
M3-LiteФайл аnc.rtn утилитой RR^%M3(или rr) в область 1 в M3-Lite восстановление производить только в встроеном терминале
M21Файл аnc.rtn утилитой ^%RI или ^%RR (обычно в MGR,SYS) в M21 рекомендую selective restoring с восстановлением всех программ.
GT.MФайл аnc.gtm утилитой ^%RI. Тут системной области нет поэтому в каталог указанный в переменной gtmroutines в запускаемом профиле желательно изменить пераметры
в ^GDE change REGION DEFAULT -RECORDSIZE=511 
-KEYSIZE=255
Mumps1.47 (R.Newman www.mumps.org) Файл аnc.rtn утилитой ^%RR. Поскольку размер routines в mumps1.47 зависит от размера блока а максимальный размер моих программ около 12kb необходимо использовать блоки в 24kb. Примерно так создается база
mumps -s SYS -b 24 -s 2000 db.dat
  1. параметр - имя области
  2. параметр - размер блока
  3. параметр - размер базы в блоках
  4. параметр - имя базы данных

Для msm должен быть открыт доступ к не % глобалам (non % globals) в системной области (W/R) иначе при переходе в не системный кип возникает ошибка PROT если после этого возникает таже ошибка - удалить все глобалы ^a* в системном кипе программой ^%GCH открыть доступ (R) или (R/W) к глобалу ^SYS

Запуск

d ^%aNC

Терминалы

Для всех систем описаны консоли а так же некоторые терминалы которыми я пользуюсь сам. Описание терминала заключается в присвоении кодов клавиш терминала мнемоникам клавиш. Естествено описать все варианты просто невозможно. Поэтому описывать клавиши в большинстве случаев придется самим.

Если ^%aNC не знает терминал в котором находится то он просто не реагирует на нажатие клавиш (доступны только Enter и Ctrl+X и символьные) (Если попали в панельный экран и нет никакой реакции на клавиши не спешите насильно закрывать окно терминала или отрубать M-систему там тоже работает Ctrl-X или же вы можете в командной строке набрать команду Halt - символьные клавиши и Ent работают)

Для описания клавиатуры нужно нажать клавишу Ctrl+X Первыми нужно описать 4 клавиши Esc, Enter, ArrowUP, ArrowDown просто нажатием соответствующих клавиш. Их достаточно для последующего описания. Подчеркиваю если например при запросе ESC вы нажмете любую другую клавишу то эта и только эта клавиша будет воспринимаится как ESC. Нажатие на разных мнемониках одной и той же клавиши воспринимается как отказ от описания клавиатуры.

После описания основных четырех клавиш можно описывать остальные Подводите псевдокурсор на мнемонику - нажимете Enter -появится приглашение Press key=> далее нажимаете клавишу соответствующую этой мнемонике Тут же высвечивается код термнала соответствующей этой клавише. И так описываем все клавиши.

Некоторые клавиши могут не описываться или совпадать - например в большинстве терминалов коды F1 и Ctrl+F1 совпадают - ничего страшного - немного пострадает функциональность ^%aNC и все. Кстати именно поэтому у меня все Ctrl функции можно вызывать через Shift Shift клавиши описываются в значительно большем количестве терминалов чем Ctrl.

После описания клавиш запускается генератор инициализирующих программ ^%aINI* doinit^%aZ который включает ваше описание в инициализацию. Если хотите перенести ^%aNC в другое место с уже описанными вами терминалами переносите все программы ^%a* стандартными средствами или используйте мой генератор

d RS^%aZ 
который экспортирует все нужные программы в
c:\anc.rtn c:\anc.gtm в DOS
/anc.rtn /anc.gtm в Linux

Естествено этот вариант будет отличатся от моего стандартного на ваше описание. Если хотите что-бы я включил описание вашего терминала в свою поставку шлите мне ветку ^aaWin("t",ваш терминал) Я описываю это все так подробно потому что описание терминала это основополагающий момент работы продукта. Немного о терминалах которыми пользуюсь сам. Это

  • ttermpro
  • esctermpro
  • irlex
Для телнет соединений. Выбор их в первую очередь обусловлен тем, что в них можно самому описывать коды генерируемых клавиш и расширять их на Ctrl, Shift клавиши. Ну и они для меня очень удобны. Тип терминала я определяю по answerback (умолчания разработчиков) по w $c(5) Так что если вы измените например answerback для esctermpro с YES на что-то другое то это будет определяться уже как незнакомый терминал. для linux использую Putty SSH-client и линуксовый графический xterm. Все указанное выше в продукте описано (опять же в установках по умолчанию)

Работа

Для знакомых с Far или norton cоmmander работа не вызовет затруднений: все комбинации клавиш (насколько возможно) максимально приближены к ним. К тому же во всех основных режимах доступна интерактивная помощь по F1.

Доступны 7 и 8 битный режим работы. При регистрации их можно изменять нажатием клавиши TAB. Рамки прорисованы в стандартной досовской кодировке типа CP866 или CP437. Например во встороеном терминале М3 при использовании 8-битного режима вместо рамки - крокозяблики. Поэтому тут лучше использовать 7-битный режим. То же самое относится ко многим линуксовым терминалам. В некоторых при использовании 8-битного режима даже экран сыплется . Какой режим использовать - выбирайте сами.

Строковые блочные функции доступны почти во всех режимах редактирования там где осуществляется любой набор. То есть из редактора глобалов можно переносить блок в редактор программ и обратно и т.д. исключение составляет разве что командная строка В редакторе по Ctrl+U или Ctrl+F5 доступен режим UNDO.

Старый код редактируемых программ при записи, копировании на ее место другой и т.д записывается в буфер "deleted routines", так что всегда можно посмотреть старый код по Ctrl+F8 и при необходимости вернуть - не напрямую -а через блочные функции. - я в свое время очень страдал от невозможности вернуть старый код.

Подчеркиваю - все блочные функции (строковые и многострочные) начинаются с установки псевдомаркера по Ctrl+B Очень удобно пользоваться фильтром по Ctrl+F для панелей Недавно сочинил утилиты для записи программ.глоблов в HFS и восстановления их оттуда - вызываются по Ctrl+F4, Ctrl+F5 соответственно. Очень удобно для миграции между системами.

Все форматы определяются автоматически, понимает все стандартные форматы всех систем кроме zwr для глобалов в gtm. Для глобалов сочинил свой формат - anc. Если глобалы в индексах или в данных имеют управляющие символы то в большом количестве систем проблемы с восстановлением этих глобалов - формат anc их решает.

Старайтесь не использовать в коммандной строке команду [b]reak-вы прервете выполнение alt-NC и что-бы вернуться в ^%aNC нужно набрать соответвующую команду - например в msm - zgo, в gtm zgo $zl-1, в каше [g]oto без параметров

Кроме того у некоторых своя система записи в файл - строка заканчивается $c(10) (линуксовый формат файла) вместо $c(13,10) как обычно. Попробуйте например программы выгнанные утилитой ^%RO из gtm востановить в msm - не получится и наоборот тоже мои утилиты это автоматически определяют.

Терминалы, выбор кодовой страницы

При запуске ^%aNC появляется окно с предложением ввести идентификатор пользователя. Идентификотор пользователя - это любой символьный набор, различный для каждого пользователя (Если просто нажать Enter без набора,то по умолчанию пользователю присвоится идентификатор "0" при работе с ^%aNC сохраняются индивидуальные настройки пользователя (в ветку ^aNC(id)) (в какой area работал, c какими программами, в какой кодировке, места редактируемых программ при выходе из редактора (при повторном входе в программу возвращаемся в то же место (если включена соответствующая опция) также записываются блоки копирвания, сохраняются старые версии программ и тд - в общем все, относящееся к работе конкретного пользователя)

Там же указано "клавишей TAB можно сменить кодировку" Что это значит? Следует понимать что с M-системой можно работать, подключаясь через множество различных терминалов в этих терминалах чаще всего можно выбирать кодировку в которой работаешь, можно по разному задавать раскладку клавиатуры, задавать любые комбинации esc-последовательностей, возвращаемые при нажатии функциональных клавиш и тд) в общем вариантов великое множество Для того что-бы ^%aNC работал корректно используемый терминал должен быть "знаком" ^%aNC - то.есть должено быть произведено описанание терминала) Некоторые терминалы, используемые мной описаны в поставке ^%aNC, но если ^%aNC не реагирует на клавиши, или реагирует не корректно, то вам нужно описать терминал самим - нажимаем Ctrl-X - и в простенькой програмке знакомим ^%aNC с вашим терминалом - там все просто - становимся на мнемонику клавиши - нажимаем Enter и нажимаем ту клавишу на клавиатуре которая будет соответствовать этой мнемонике)

Если описание клавиш терминала произвести достаточно просто, то с кодовой страницей, используемой терминалом дело обстоит иначе: M-сервер (за редким исключением) НЕ МОЖЕТ определить в какой кодировке находится подключаемый терминал. Так что предлагая выбрать кодировку в окне регистрации, я реально предлагаю всего лишь указать ^%aNC - в какой кодировке будет работать терминал. выберете неправильно -будут кракозяблики на экране.

Еще раз почеркиваю: Выбирая кодировку в ^%aNC вы говорите что подключаемый терминал находится в этой кодировке - ничего более. Далее M-Сервер через ^%aNC будет посылать на терминал сигналы в той кодировке которую вы указали Так что можно сказать, что выбирая кодировку в ^%aNC, вы говорите, что M-сервер (в среде ^%aNC) установлен в эту кодировку

Теперь о кодировках: ^%aNC поддерживает: DOS CP866 WIDOWOS KOI-8R UTF-8 - для M-систем поддерживающих unicode

Однако , если вы по нажимаете TAB в окне регистрации увидите еще одну чудную кодировку TTERMPRO

Дело в следующем: как известно винтовая CP1251 НЕ ИМЕЕТ ПСЕВДОГРАФИКУ а это значит , что в терминальном режиме в принципе нет возможности в этой кодировке иметь нормальные, например, рамки и еще много чего, все это приходится эмулировать, причем - если вы посмотрите на рамку в кодировке WINDOWS - не самым лучшим образом Поскольку большое количество данных содержится именно в этой кодировке то в среде ^%aNC приходится работать с CP1251 - прямо скажем - не эстетичном виде: работоспособно - но очень не красиво.

Из этой ситуации есть два выхода:

1. Есть терминалы ttermpro и esctermpro - свободно распространяемые. Так вот в них реализована возможность работая в винтовой кодировке иметь нормальные рамки Делаем следующее Menu->Setup->Terminal и установливаем кодировку Host в Windows ; Client в Windows Далее Menu->Setup->Font и устанавливаем(обязательно) Font ->Terminal Font Char Set ->CP866 и , выбирая уже упомянутую чудную кодировку TTERMPRO в ^%aNC, мы имеем терминал, работающий в кожировке WINDOWS 1251 и симпатишный внешний вид anc.

2. Второй способ работы c %aNC в винтовой кодировке 1521 такой: в окне регистрации указываем кодировку DOS (естественно терминал должен быть настроен принимать данные в CP866) Заходим в редактируемую программу и выбираем (посредством Shift+F8) нужную кодировку и далее все редактирование происходит именно в этой кодировке.

Этот способ предпочтительней первого поскольку работает во всех терминалах и на всех консолях М-систем.

Лицензия

THE UNIVERSAL M(MUMPS)-COMMANDER (ALT-NC) ПОСТАВЛЯЕТСЯ ПО ПРИНЦИПУ "AS IS". НИКАКИХ ОГРАНИЧЕНИЙ В ПРАВАХ НА ИСПОЛЬЗОВАНИЕ ALT-NC НЕТ ALT-NC ПОСТАВЛЯЕТСЯ НА СЛЕДУЮЩИХ УСЛОВИЯХ: НИКАКИХ ГАРАНТИЙ НЕ ПРИЛАГАЕТСЯ И НЕ ПРЕДУСМАТРИВАЕТСЯ. ВЫ ИСПОЛЬЗУЕТЕ ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ НА СВОЙ РИСК. АВТОР НЕ БУДЕТ ОТВЕЧАТЬ НИ ЗА КАКИЕ ПОТЕРИ ИЛИ ИСКАЖЕНИЯ ДАННЫХ, ЛЮБУЮ УПУЩЕННУЮ ВЫГОДУ В ПРОЦЕССЕ ИСПОЛЬЗОВАНИЯ ИЛИ НЕПРАВИЛЬНОГО ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

Download anc414.zip (zip, 1.75Mb)

Download anc412.zip (zip, 685Kb)

Download anc406.zip (zip, 160Kb)

Разработчик

Андрей Вологдин
andrew000999@list.ru


Copyright (C) 2022 Eugene Karataev
Info Support