ath писал(а):
Прерывания, о которых вы пишете — аппаратные.
Производитель разработал собственную систему прерываний, когда по нажатию кнопки, окончанию счёта таймера, приёму блока по RS-232C или отправке этого блока и т.п. вызываются подпрограммы на входном языке МК-161.
При этом эти прерывания программируют и настраивают также средствами входного языка. Их может разрабатывать не специалист, а прикладник или даже школьник — знания ассемблера или Си не требуется.
Насколько я вижу, вы в этом вопросе не до конца разобрались.
Прерывания напрямую соответствуют своему названию - они аппаратно влияют на выполнение программы процессором. У прерывания есть обработчик, представляющий собой подпрограмму, с фиксированной или настраиваемой точкой входа. Возможен прямой вызов этого обработчика - например, так были устроены сервисы MS-DOS, вызываемые командой процессора int 0x21. Аппаратного запроса, вызывающего переход к обработчику, не было, все прерывания в IBM PC имели меньшие номера.
Микроконтроллеры обычно имеют достаточно развитую систему обработки и генерации аппаратных прерываний, которые характерны для работы периферийного оборудования. Кроме возможности настроить генерацию прерывания просто на внешний вывод (с различной логикой срабатывания), запросы на прерывания генерируют также периферийные устройства процессора - таймер, UART и т.п.
Можно ли из обычного цикла работы программы обеспечить обработку периферии? В принципе можно, это называется поллинг. Основной цикл программы последовательно опрашивает состояние устройств, читая регистры статуса и принимает решение о переходе на тот или иной обработчик событий. Недостаток этого подхода заключается в возникновении проблем при наличии периферии, критичной ко времени отклика, что может усугубиться большим интервалом опроса. Ну например, если в основном цикле процессор эмулирует что-то постороннее, нехарактерное для его основной работы.
Интересно то, что примеры обработчиков прерываний обычно присутствуют в большом количестве в сопроводительной документации, вплоть до автоматической генерации шаблонов, где все настроено и созданы заголовки функций для обработчиков. Почему от этого надо отказываться, непонятно. Из обработчиков без особых проблем можно вызывать слова Форта или функции эмулируемой машины, это просто точка входа в подпрограмму, управление на которую передается аппаратно. Программный поллинг вместо прерываний нуждается как минимум в разъяснении, потому что это никак не достижение разработчиков.
ath писал(а):
Они выражаются в том, что мой МК-161 глючит реже, чем айфон. Точнее вообще не глючит — ни оборудование, ни прошивка.
Ох... да уж. А резистор глючит... да практически никогда не глючит. Берем фокус - пишем для МК-161 некорректную программу. Например, с бесконечным циклом. Зависнет? А ведь айфон это программно-аппаратная платформа, способная запускать сторонние программы, с неизвестным заранее поведением, запросами и взаимодействием с другими программами и службами айфона. Возможно, это и неочевидно, но вокруг нас масса устройств, содержащих внутри чипы, сопоставимые по классу с 8051. Это могут быть часы (я даже не про смарт-часы, а простые с 7-сегментными индикаторами), пульт от телевизора, уличный электронный термометр, и масса устройств в автомобиле. Много ли глючат эти устройства? А они вполне могут быть сопоставимы по объему кода с МК-161.
ath писал(а):
Их действительно можно ставить на обслуживание школьных звонков или АЗС — и всё будет работать, как часы 24/7/365.
А часы что, не работают как часы?
Сейчас большинство электроники имеет масочную память (вместо флеш), так дешевле. Но при этом все равно внутри обычно МК со своим софтом.
ath писал(а):
Очень интересно, спасибо! Именно с расчётом на замену такими чипами и был выбран камень МК-161.
Вот только два соображения:
1. НИИЭТ может и не иметь свободных партий, предназначенных для мелких покупателей. Это керамика, а с учетом температурного диапазона явно с приемкой.
2. Более глубокое соображение: ЗАЧЕМ? Я показал российские процессоры. Они есть. Не надо "спасать российскую микроэлектронику", потому что такой путь выглядит смешно. Катастрофическую отсталость МК-161 еще можно спрятать под лозунгами, но это самообман.
ath писал(а):
Но я надеюсь, что есть что-то отечественное минимум 16-битное с 100МГц и выше, при этом низкого потребления. Форт-процессор было бы идеально! То, что входной язык абстрагирован от ассемблера камня, позволит использовать на новых ПМК весь софт, накопленный для Б3-34 и МК-161.
Был и ушел из открытой продажи. 1894ВГ1Т - 16 бит, форт-процессор (впрочем, скорее форт-ориентированный, чем чисто форт-процессор). Работает в датчиках в качестве скрытого от пользователей контроллера. Это к вопросу о роли таких изделий в современных разработках.