Если мне мой склероз изменил, поправьте.
В Векторе, сброс процессора осуществляется двумя специальными кнопками "ВВод" и "Сбр"-сбрс (про схемную блокировку этих кнопок "Блк" можно упустить). Обе эти кнопки одинаково сбрасывают процессор, и заставляют его начать выполнять программу с адреса 0.
Но при нажатии кнопки "ВВод" включается аппаратное микширование памяти ОЗУ и ПЗУ, при котором чтение из памяти происходит из ПЗУ (первоначально было первые 512Байт, дорабатывали до как минимум 2КБ) - по остальным из ОЗУ, а запись по любому адресу в ОЗУ.
При нажатии "Сбр" отключалось ПЗУ, в остальном обычный сброс процессора.
Любые изменения состояния памяти совершает только программа, ну там очистка/заполнение...
Соответственно: При нажатии ВВод - сброс процессора и переход к выполнению программы с адреса 0, при этом подключена ПЗУ.
Когда программа в ПЗУ выполнила свою роль загрузки информации в ОЗУ, в первоначальном варианте Вектора происходило зацикливание исполняемой программы с миганием светодиода - что указывало на успешную загрузку информации. В дальнейшем сделали доработку, которая при мигании светодиода (при подключенном ПЗУ) имитировала нажатие кнопки "Сбр". Это вызывало сброс процессора (с отключением ПЗУ) и соответственно выполнение программы расположенной в ОЗУ. Если программа грузилась с адреса 100h, то процессор по любому сначала выполнял команды с адреса 0 (если загрузчик там чистил, то там NOP-ы и процессор "добегал" до загруженной программы и начинал её выполнять. Но в загрузчике была "закладка" - нажав кнопку "Ус" можно было отменить очистку памяти перед загрузкой инфы. Тогда в ОЗУ оставалась программа которая могла быть расположена с адреса 0. После загрузки инфы и "Сбр" процессора соответственно происходил "перехват" управления старой программой... со всеми вытекающими...




Ответить с цитированием