Сигнал НП это аббревиатура от слов "Начальный Пуск". Этот сигнал нужен потому, что КР580 начинает прогон по сбросу с адреса 0, где ОЗУ. А ПЗУ находится по адресу C000. Назначение этого сигнала такое же как у сигнала НП в РК86 и ОРИОНЕ. Чтобы по сбросу во всём адресном пространстве стояло ПЗУ.
Только в РК86 это сделано умнее. Там используется триггер. По сбросу он взводится, формируя НП, а по первой же записи куда-либо (сигналом /WR процессора) сбрасывается и открывается ОЗУ в области с адреса 0 и до RAMTOP. Потому первой командой в ПЗУ в этих компьютерах стоит JMP в область ПЗУ.
В СПЕЦИАЛИСТЕ ради экономии деталей, в качестве сигнала НП используется разряд PC4 порта клавиатуры. По сбросу ВВ55 все порты программируются на ввод, отчего PC4=НП=1. А при программирования портов PC4...PC7 на вывод на разряде PC4 сразу оказывается 0, что и приводит к открытию ОЗУ.
В любом случае при перепрограммировании ППА всегда надо программировать PC4...PC7 на вывод. В противном случае произойдёт улёт, т.к если запрограммировать на ввод, то НП=1 и ОЗУ исчезает. Это удобно использовать для защиты программ от взлома, причём делая JMP или CALL на команду в ПЗУ LD (PPA+3),A и желательно командой JP (HL) или ещё хитрее.
В 1990 году товарищи Медведков и Иванов при расширении цвета с 4-х цветов до 8-ми, с целью освободить разряд PC4 для целей цвета, решили, что прерывания для КР580 это непозволительная роскошь. Они избавили PC4 от функции НП, отдав этот разряд для цвета, а в качестве НП использовали выход INTE процессора КР580. Из-за этого стало невозможно использовать программы от РК86 и ОРИОНА, где звук выдаётся по EI/DI, а также прерывания и возникли сложности при установке Z80, т.к у него не оказалось выхода INTE.
Отчего при Z80 для начального пуска пришлось использовать два вентиля из 155 ЛА3 или половинку триггера 155 ТМ2. Из двух TTL-вентилей делается RS-триггер. На один вход заводится сигнал /RESET, на другой /WR процессора. Эту же переделку разумно делать и при КР580, чтобы освободить INTE для РК-шного звука, прерываний и возможности с его помощью переключать архитектуру, - например, банки ОЗУ.
Т.к команды EI/DI - быстрые 4-х тактовые, это здорово ускоряет, давая при КР580 ВМ80 возможности процессора КР580 ВМ1, у которого для этих же целей изобретён префикс, ровно на одну команду включающий вторую банку ОЗУ, что даёт 64 кб для программ и 64 кб для данных.
Такое в СПЕЦИАЛИСТЕ можно сделать только во вредительских целях. Во все разряды как по вертикали, так и по горизонтали выдаётся только 0, точнее программно туда вообще ничего не выдаётся. Нули на выходах порта возникают сами по себе, когда данный порт программируется на вывод. И уж тем более единицы в порты клавиатуры никогда не выдаются, т.к это не требуется. Единственные единицы которые могут возникать на линиях матрицы возникают за счёт высокомных резисторов привязки и коротить их клавишами можно сколько угодно.
В клавиатуре СПЕЦИАЛИСТА гораздо более грамотный алгоритм, чем классический алгоритм с диодами использованный в РК86 и ОРИОНЕ. Тут не производится сканирование матрицы по одному разряду, так называемым "бегущим нулём".
Сначала по вертикали выводятся все нули и читается байт по горизонтали, затем ППА перепрограммируется, ноль возникает по горизонтали а считывается байт по вертикали. А затем табличным методом высчитывается код нажатой клавиши. Это примерно в 10 раз быстрее, чем алгоритм РК86.
Потому вместо диодов и нужны привязки разрядов ППА резисторами (я ставил 20 ком). Никаких конфликтов в ППА не возникает и в играх программно обнаруживаются двойные нажатия (но п/п-ммы ПЗУ C377 и C81B это не поддерживают).





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

