Ну и зачем тогда засорять темы рассуждениями по типу:
Цитата:
Сообщение от Soplik
А если поиграть со стеком на грани вылета из прерывания и посмотреть, в какой памяти на каких значениях процедура вылетает?
Ты извини, если я случайно глупости пишу.
---------- Post added at 17:03 ---------- Previous post was at 17:01 ----------
Есть такой прием -- "свежая голова", человек со стороны. Иногда он неожиданно находит правильное решение.
Вот я и хочу тебе помочь.
Определенное количество раз за прерывание и в определенном порядке ноликов и единичек по определенному алгоритму. На этом сигнале в свое время строилась система защиты плат от пиратского копирования. "Родная" ПЗУ от МикроАРТ была заксорена (так, что даже не просмотришь HEX-эдитором), а в определенной последовательности ноликов и единичек сигнала Z был зашифрован ключ от расксорки. Если ключ не подходил (или контрольная сумма ПЗУ в результате правки не совпадала), комп ругался, что он взломан злобными хакерами и отказывался работать (выхавал надпись "I cracked! I halted! Press RESET to continue!"). Сама ПЛМ 1556ХЛ8 была защищена от считывания, чтобы нельзя было посмотреть, как сформировать такой же сигнал. Само собой, что сигнал Z был разным у разных версий ATM - на ATM-1 - одна последовательность, на ATM-2 версии фирмы ATM - другой, ну уже на ATM-2 и 2+ от МикроАРТ - третий. В современном ПЗУ xBIOS, само собой, эта защита уже не используется...
Но это так - сообщаю для академического саморазвития. Нам все эти последовательности не нужны. Нам нужно просто дать HALT, после чего в течении одного прерывания читать нужный бит. Если он хотя бы ОДИН раз изменит свое значение, значит это та самая модель, которую мы определяем. Вот и все.