barsik, чем вам не нравится rst#38 и DI при старте?
barsik, чем вам не нравится rst#38 и DI при старте?
С уважением,
Jerri / Red Triangle.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Почему не нравится? Нравится и поначалу так и сделаю. Просто возникла красивая идея, я и поделился.
Вариант когда прерывания по RST можно использовать только в конкретной программе, которая грузится на адрес 0000, подставляя свой обработчик прерывания на адрес RST.
А вариант с прерываниями по CALL, т.е с ВН59 (или с его более простой имитацией на буфере) позволяют всегда иметь включённые прерывания при любых прогоняемых программах. Тогда можно на прерываниях подключить и Kempston-Mouse и с клавиатурой избежать потери нажатий. Пригодится, когда выполняется обслуживание линии связи с IBM PC в реальном времени, а с 0 надо загружать другие программы.
Во вложении тест прерываний. Замеряет число тактов CPU между прерываниями. Это позволяет проверить точно ли в эмуляторе реализован период 50 Гц. Для нахождения периода надо умножить число тактов на период клока CPU.
на данный момент прерывания никак не используются специалистом
соответственно нет и программ использующих прерывания.
соответственно чтобы не было проблем нельзя использовать старые программы с включенными прерываниями
иначе могут быть неприятности различного плана.
для использования прерывания должны быть написаны новые программы.
а там уже и адрес #0038 имеет смысл. и прочее
С уважением,
Jerri / Red Triangle.
Нет, не могут. Потому что старые программы Специалиста уже проверены на отсутствие кода DI, так как, если встречается команда DI, то при наличии журнальной схемы 8 цветов, ОЗУ целиком отключается и компьютер улетает.
Так что, если сделать прерывания по CALL (обработчик в области, которую не использует ни одна программа), то при этом не возникнет конфликта ни с одной программой.
Как Вы не поймёте, что именно для того, чтобы не было проблем с старыми программами из-за прерываний и нужен контроллер прерываний, чтобы поиметь прерывания с CALL, а не с RST.
Последний раз редактировалось barsik; 12.03.2018 в 19:47.
barsik, что произойдет если в момент забора графики со стека придет прерывание?
- - - Добавлено - - -
ну вот
только хотелось восхититься гениальностью авторов Специалиста и вдруг оказалось что какой то "альтернативно одаренный" инженер вместо колес прибил двумя гвоздями к велосипеду три пирамиды.
что там такое с DI/EI?
С уважением,
Jerri / Red Triangle.
Ничего не произойдёт. Данные ведь передаются выше текущей позиции стека, а при CALL или RST по прерыванию будет испорчено 2 байта ниже, где не хранится ничего полезного.
Да Вы и без того знаете, об этом писалось множество раз. Но повторю.
В Специалисте А.Волкова было всего 4 цвета полученные установкой всего двух 565 РУ3-их на имеющиеся РУ3-тьи вторым этажом. На входы этих двух РУ3-тих подавались два свободных бита с ППА клавиатуры.
Таким образом регистр цвета, из которого цвет автоматически переписывается в ОЗУ, находится внутри ППА. Эти два бита на каждый видеобайт давали 4 цвета для цвета INK, цвет PAPER всегда чёрный.
А в августе 1990 изобретатели Иванов и Медведков решили удвоить часло цветов, напаяв вторым этажом ещё одну РУ3. Но свободных битов в ППА уже не было. Тогда они решили поиметь этот бит в ППА, за счёт того, что бит PC4 освободили от функции формирования сигнала начальный пуск НП. А в качесте сигнала начальный пуск они решили задействовать выход INTE. Для отключения НП, одной из первых команд КР580 выполняет команду EI и ОЗУ включается убирая ПЗУ из всего адресного пространства. Тем самым они освободили PC4 для целей цвета (и цветов стало 8), но истратили прерывания на цели начального сброса машины.
Потому, если при 8-ми цветной схеме цветовой приставки включить прерывания, то из адресного пространства совсем исчезает ОЗУ и компьютер улетает. Хуже того, если на Специалисте не имеющем 8-ми цветов запустить 8-ми цветную программу, то компьютер тоже улетает.
Это же идиотизм и поэтому совершенно справедливо считать этих авторов дибилами. Предельно глупо делать такие доработки, что приводят к полному улету цветных программ на монохромной базовой конструкции.
Но по-крайней мере для прерываний это легко исправляется, если схему сброса сделать по схеме от РК86. Ставится RS-триггер, который взводится по /RESET, а сбрасывается сигналоv /WR процессора.
Тогда до первой записи CPU во всём адресном пространстве включено ПЗУ и процессор читает с адреса 0 первую команду JMP C000 и уходит на C000. Программа на C000 четвёртой командой записывает байт 82 в ППА+3, а возниший при этом сигнал /WR сбрасывает триггер, включая ОЗУ. RS-триггер легко сделать из двух вентилей из 155 ЛА3 или из половинки 155 ТМ2.
Последний раз редактировалось barsik; 12.03.2018 в 23:25.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)