Все зависит от частоты переключений старших адресов. Если они не подключены к ПЗУ, как написано, то совершенно будет равнозначно исполнение команд ПЗУ хоть по нулевому адресу, хоть по 8000h( ну я так для примера). Т.е. в нужное время необходимо перегружать программный счетчик (регистр PC)
Последний раз редактировалось Mick; 31.07.2011 в 19:59.
Примерно так - старшие адреса к ПЗУ не подключены и в выборке ПЗУ не задействованы, значит когда процессор переберет подряд все адреса он увидит 32 копии 2-х килобайтной ПЗУ , повторяющиеся одна за другой. Чтобы пошевелить ногой незадействованного старшего адреса надо просто сделать JMP на следующую ячейку, но адрес в этой команде записать с взведенным битом, который хотим взвести.
В результате соответствующая нога адреса взведется, а сбоя программы не будет, так как процессор будет читать следующую по порядку ячейку, просто возьмет её из "верхней копии" ПЗУ.
А как насчет методики копирования ПЗУ с плавающими ячейкми?
Последний раз редактировалось AIS; 31.07.2011 в 20:06.
Это тоже да... В общем перемудрили дядьки... Но если правильно скопировать ПЗУ, то это всё будет пофиг.
Если посмотреть на маркетинговую сторону дела, то сделали они всё неправильно. Не надо было защиты ставить вообще. Хотя , каюсь, понимаю я это только сейчас, а тогда поступил бы точно также как и они.
Вначале надо было добиваться максимально широкого распространения своего компа любой ценой.
Посмотрите как начинал даже такой известный "закрывальщик" как Стив Джобс -В документации к APPLE I есть не только полная схема, но дизассемблер ПЗУ с комментариями.
На счет команд, сейчас точно не помню, но что-то вроде:
Код:LD A,H LD I,A JP (HL)
Да, это все есть, у мну есть несколько наборов дампов (уже ) от КОЕ и от CodeMaster`a. В принципе как оно там работает можно посмотреть в том vhdl проекте что я выкладывал, но опять же нет смысла тратить на это время т.к. проверить результат негде. Разве что в симуляторе, а там посмотрим, может Savelij выложит свои наработки...
Кстати, если кто рассматривал скрин симулятора, то там видно что ВК работает нормально 3.8 секунды, симулятору я подсовывал дамп ПЗУ с линейными адресами.
Последний раз редактировалось Keeper; 31.07.2011 в 20:55.
Эту тему просматривают: 8 (пользователей: 0 , гостей: 8)