Калькулятор ВК-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 (многоканальный) |