Калькулятор ВК-6 |
Главная / ЭКВМ / ПО |
Калькулятор ВК-6 поддерживает систему команд, набор функций и формат файлов ЭКВМ. Может использоваться в качестве эмулятора ЭКВМ для отладки программ пользователя. Информация о калькуляторе ВК-6 размещена в коммуне mk-152 ЖЖ: 29700.html, 30164.html, 30285.html, 30620.html, 31178.html и далее. Копия файла README.TXT из пакета ВК-6 v0.32 |
ВК-6 представляет из себя свободный калькулятор, написанный на языке Си. Калькулятор ВК-6 совместим с ПМК серии "Электроника Б3-34", ЭКВМ серии "Электроника МК-161" и может использоваться для интерпретации и отладки на компьютере программ, написанных для этих ЭВМ. В качестве референс-модели использовалась ЭКВМ МК-161, заводской № 77. На сайте НПП "СЕМИКО" можно найти неплохие средства программирования, пригодные для разработки программ для калькулятора ВК-6. Тем не менее в ВК-6 нет электронного блокнота, редактора текста, файловой системы и работы с внешними устройствами. Для этого придётся приобрести железную ЭКВМ. Я не поставляю откомпилированные файлы ВК-6, но заинтересован в добровольцах, которые смогут собирать и поддерживать бинарники, а также пакеты под разные платформы. ВК-6 версии 0.29 и выше содержит шрифты МК-161, предоставленные НПП "СЕМИКО" по лицензии BSD и предоставлен вам по лицензии GNU GPL v3. Авторские и исключительные права на ВК-6 (за исключением упомянутого знакогенератора МК-161) принадлежат мне, Васильеву И.В., г. Москва. Мой электронный адрес: softkey@rambler.ru ПРЕДУПРЕЖДЕНИЕ! --------------- ВК-6 версии 0.32 представляет собой рабочую (незавершённую, предварительную) версию калькулятора. Её работоспособность и безошибочность не гарантируется. Даже наоборот, данная версия ВК-6 распространяется в надежде на ваши сообщения об ошибках, которые помогают совершенствовать калькулятор. Ваше активное участие в обнаружении ошибок поможет мне быстрее выпустить первую версию калькулятора ВК-6. Помните, только отдельная железная ЭКВМ, выпущенная НПП "СЕМИКО" (http://mk.semico.ru/) гарантирует вам надёжные вычисления, не зависящие от эпидемий компьютерных вирусов и прочих "закладок"! Запуск ВК-6 ----------- При запуске ВК-6 из командной строки операционной системы калькулятору можно передать ряд параметров. Во-первых, можно перечислить MKP, MKD, MKB, MKT и MKI файлы для загрузки программ, регистров данных (десятичных, байтовых и текстовых), а также картинки графического экрана. Распознавание файла производится по расширению файла, проверка правильности распознавания -- по его длине. Если в командной строке не указана опция -i, загруженная программа начинает выполняться автоматически. Также ВК-6 поддерживает ряд опций, задаваемых в командной строке операционной системы: -i Калькулятор ВК-6, после возможной загрузки программы, переходит в диалоговый режим. Без этой опции ВК-6 начнёт выполнять загруженную программу и завершит свою работу после её останова. -c Калькулятор будет очищать экран перед каждым отображением экрана ВК-6. -r Вывод графического экрана в естественном, горизонтальном виде. Чтобы эта опция работала правильно, терминал компьютера должен быть способен отображать более 128 символов в строке. -n Вывод графического экрана в негативе: сброшенные точки заменяются пробелами, а установленные -- закрашенными прямоугольничками. Это позволяет добиться естественного отображения цветов ЭКВМ, если ваш терминал настроен на светлый цвет фона. -x При отображении стека на экран выводится содержимое регистра X1. -h -? Выдаёт краткую подсказку по этим опциям ВК-6. Команды ВК-6 ------------ Стандартная поставка ВК-6 не включает графического интерфейса и работа с калькулятором происходит через команды, набранные пользователем с клавиатуры в ответ на приглашение ВК-6 (знак двоеточия). Калькулятор ВК-6 исполняет команды МК-152, МК-161, МК-52, МК-61 и т.д., поэтому вы можете использовать справочники и руководства по этим калькуляторам. В одной строчке можно ввести сразу несколько команд. Чтобы избегать двусмысленности, допускается разделять команды и клавиши префикса (F, K, P) символом пробела. ВК-6 полностью поддерживает латинскую транскрипцию команд, используемую программой MK.EXE и описанную в Руководствах МК-152 и МК-161. Также вы можете использовать значительную часть русской транскрипции, если в ней не содержатся специальные символы, отсутствующие в кодировке ASCII. Например, ВК-6 исполнит команды ИПА, КБП9, +, К{x}, С/П -- но ввод команд ENT, /, FR, KD->M возможен лишь в латинской транскрипции. При вводе чисел в в калькулятор ВК-6 используются правила ввода чисел в МК-161 и другие ПМК. В отличии от MK.EXE пользователь свободен в выборе русской или латинской транскрипции клавиш /-/ и ВП: : 2600 : 36,6 : 0,03 /-/ : 9,91 ВП 9 : 3,1415 +/- EE 12 +/- Ниже перечислены некоторые команды ВК-6, для которых пришлось вводить свою мнемонику: Q Завершение работы ВК-6. Набранная программа и данные будут потеряны. > "ШГ вправо", клавиша с кодом 23. < "ШГ влево", клавиша с кодом 24. GRAD Переключение градусной меры, клавиша с кодом 31. RUS, LAT, РУС, ЛАТ Переключение латинской и русской транскрипции, клавиша с кодом 31. Команды отладчика ----------------- Калькулятор ВК-6 имеет встроенный отладчик. Все команды отладчика начинаются с символа точки, который вводится в ответ на двоеточие, приглашение ВК-6. : .u адр1 адр2 Команда декомпилирует шаги из памяти программ, начиная с адреса адр1 и заканчивая адресом адр2. Команда "u" без параметров выводит десять следующих шагов. : .d адр1 адр2 Команда выводит содержимое памяти программ в численном виде, начиная с адреса адр1 и заканчивая адресом адр2. Команда "d" без параметров выводит 50 следующих байт. : .r адр1 адр2 Команда выводит содержимое регистров, начиная с адреса адр1 и заканчивая адресом адр2. Также она может использоваться для просмотра содержимого одного регистра. : .g =адр адр1 адр2 .. адр10 Команда запускает выполнение программы, начиная с адреса адр -- предварительно установив до десяти точек останова адр1, адр2,.. адр10. Без параметров аналогична команде С/П. : .t =адр кол Команда выполняет кол шагов, начиная с адреса адр. Без параметров аналогична команде ПП. : .p =адр кол Команда трассировки :p аналогична команде :t, но не заходит внутрь подпрограмм и дожидается завершения циклов L0..L3. : .? Выдаёт краткую подсказку по командам отладчика. Лицензия на русском языке ------------------------- Вам поставляется исходный текст программы ВК-6, включающий свободный знакогенератор (свободные шрифты 0, 1 и 2) со следующими правами: * хранить, компилировать и использовать настоящую программу; * изучать исходный текст и вносить изменения в свою копию программы; * распространять программу, а также основанные на ней работы, бесплатно или нет -- но лишь по аналогичной (свободной копилэфт) лицензии. В частности, вы должны указывать наличие изменений и публиковать их полный исходный текст. При распространении программы вы обязаны сопровождать её исходным текстом или предоставлять его по первому требованию на тех же условиях, на которых распространили программу -- в частности, по меньшей или такой же стоимости. Вы не можете отбирать права, предоставленные вам, у других пользователей этой программы или той, что основана на ней или включает её код. В случае нарушения этого правила ваша лицензия становится юридически ничтожной -- вы лишаетесь всех прав на эту программу и её исходный текст. Таким образом эта программа (включая свободный знакогенератор), а также все другие программы, основанные на ней или включающие её код, должны оставаться свободными. Полную версию Лицензии на английском языке, особенно важную для иностранных лицензиатов, смотрите в файле gpl.txt -- если у вас нет этого файла, обращайтесь за GNU GPL v3 к Free Software Foundation (www.fsf.org). Особенности ВК-6 ---------------- ВК-6 написан на портабельном Си с целью лёгкости компиляции под различные операционки. Калькулятор работает в терминальном режиме и изначально проектировался под кодировку UTF-8. Впрочем, изготовителям двоичных пакетов не составит труда перевести исходные тексты в другую кодировку -- основной движок всё равно работает в том варианте кодовой страницы 866, который использует МК-161. Начиная с версии 0.23, калькулятор ВК-6 способен служить бэк-эндом для графического интерфейса пользователя. От разработчика графического интерфейса требуется создание функций отображения экранов автоматической работы и графического буфера bScreen[1024] (передаются функции TurnOn(), образец см. в файле vk6.c), а также передача калькулятору ВК-6 кодов нажатых и отпущенных клавиш (через функции ButtonPress() и ButtonRelease()). Я заинтересован в работе с теми, кто возьмётся компилировать ВК-6 под всевозможные устройства -- от Макинтошей до мобильников и игровых консолей. Пусть везде будет ЭКВМ! Пожалуйста, сообщайте мне о своих проблемах и просьбах по email'у или в жж-сообществе: http://community.livejournal.com/mk_152 История ------- 15 апр 2012, версия 0.32 * добавлено пропущенное описание MnemoPGOTO в decomp.h * отладочные команды теперь начинаются не с двоеточия, а точки . * при выводе чисел используется десятичная запятая * улучшена совместимость с MinGW при выводе чисел из стека * при загрузке файлов MKP служебный байт может принимать значение 02 16 апр 2010, версия 0.31 * улучшена работа K[x] и K{x} * замечена ошибка вывода символов шрифта 1 12 апр 2010, версия 0.30 * шрифты 0 и 1 МК-161 обновлены до версии 1.01 12 апр 2010, версия 0.29 * расширено описание отладчика в README.TXT * подключены шрифты МК-161, опубликованные НПП "СЕМИКО" * шрифты МК-161 слегка доработаны: добавлены буквы Ё и ё, симметричный ! 3 апр 2010, версия 0.28 * добавлена работа клавиш выбора в Р ПРГ * отладчик выделен в модуль debug.c * добавлена команда g и до 10 точек останова * добавлены команды трассировки t и p 2 апр 2010, версия 0.27 * доработан файл README.TXT, расширены инструкции * модуль draw.c теперь называется display.c * вывод ошибок из exec.c теперь происходит через новую функцию OsAlert() * добавлена загрузка MKP-файлов с начальным адресом, отличным от 0000 * добавлены команды отладчика: u d r * в режиме Р ПРГ заработали команды > и <, а также клавиши ШГ 30 мар 2010, версия 0.26 * поставлен пробел в сообщение "Ошибка ВП ," * обработка переполнения и машинного нуля сделана точнее 30 мар 2010, версия 0.25 * исправлена ошибка ввода команды P ПРГ * добавлен ввод команды Р АВТ для выхода из режима Р ПРГ 30 мар 2010, версия 0.24 * правильно указана дата версии 0.23 * исправлен README.TXT в соответствии с последними изменениями * исправлена ошибка ввода команды ВП 30 мар 2010, версия 0.23 * в шрифт 1 доделаны все символы, кроме букв * старый модуль calc.c получил новое название cpu.c * введена маркировка функциональных узлов * добавлен новый модуль keyboard.c * серьёзно переделан модуль exec.c * улучшена поддержка R9028, R9029 * диалоговый режим изменён на автоматический (F АВТ) * добавлено два новых режима: F ПРГ и P ПРГ * ВК-6 готов для навешивания графической мордочки * R9046 теперь работает на чтение * добавлены советы компиляции под различные целевые ОС 21 мар 2010, версия 0.22 * исправлена ошибка с угловой размерностью тангенса 21 мар 2010, версия 0.21 * шрифт 0 улучшен, добавлены недостающие символы * добавлена большая часть символов шрифта 2 * переход в автоматический режим оформлен через отдельную функцию 19 мар 2010, версия 0.20 * поддержка R9023, R9024, R9035, R9036 * при включении расстояние между символами равно 0 * при включении граф. экран забит шумом * в шрифт 0 добавлены заглавные русские буквы 18 мар 2010, версия 0.19 * приглашение поменялось на ':' * после К ГРФ экран стека не выводится, особенно полезно при -c * поддержка R9021, R9022 * добавлены символы 10h и 13h шрифта 0 18 мар 2010, версия 0.18 * реализована R9020 * написан компилятор знакогенератора * в шрифтах 0, 1 разработаны образы цифр и некоторых других символов * добавлено make clean 16 мар 2010, версия 0.17 * установлены затычки на R9028, R9029 * реализованы R9015, R9016 16 мар 2010, версия 0.16 * опция -n для отображения граф. экрана в негативе * исправлены ошибки в реализации R9013 * поддержка R9012, R9014 15 мар 2010, версия 0.15 * загружаются файлы MKD, MKB, MKT и MKI * поддержка R9050, R9051, R9052, R9053 * поддержка R9055 на чтение * частичная поддержка R9013 * ключ -r для горизонтального вывода граф. экрана * отображение граф. экрана псевдографикой 1x2 10 мар 2010, версия 0.14 * опция -c работает также при выводе графического экрана * поддержка R9037, R9038 * исправлены ошибки в реализации R9103 * ввод цифр работает корректнее, останавливаясь после ввода восьмой 8 мар 2010, версия 0.13 * в автоматическом режиме комментарий PGOTO отображается корректно * исправлена ошибка декодирования команды КПr * разрешена русская команда /-/ для смены знака числа в RX * добавлена поддержка регистров 9007, 9008, 9103 и некоторых других * общая оптимизация кода, с учётом возможной компиляции под Windows 7 мар 2010, версия 0.12 * исправлена ошибка FLn/PFLn * доделаны декомпилятор и поддержка латинской мнемоники * доделана строка комментариев и часть регистров функций * напряжение по R9115 теперь 3,6В -- как в РЭ МК-161 * номер версии по R9117 и в строке заставки теперь ровно 0.12 :-) 6 мар 2010, версия 0.11 Прошлая версия обнуляла программную память после загрузки программы. Исправлено. Также общее "причёсывание" кода. 5 мар 2010, версия 0.10 (первая публичная бета). Реализованы, но пока не отлажены все опкоды. Нет: * системы прерываний * клавиатуры МК-152, АЦП МК-161, интерфейсов, звука, таймера * электронного блокнота * энергонезависимой памяти * универсального буфера * файловой системы * загрузки файлов данных * загрузки/выгрузки файлов программ, данных и т.д. * большинства графических и других функциональных регистров 3 мар 2010, версия 0.01 Создан файл vk6.c, началась работа над проектом. |
Калькулятор доступен для скачивания со страницы "программное обеспечение". |
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |