
Сообщение от
jerri
Кстати да, а в чем именно причина такого поведения контроллера скорпионовского?
с точке зрения железа там или еще чего
Всё дело в низком быстродействии МК (семейство MSC51) , который используется в Скорпионовском контроллере.
Вот фрагмент кода, завершающего обработку прерывания по запросу от Спектрума:
Код:
movx @DPTR, A ;Снять /WAIT
;---- Восстановление регистров и выход из прерывания
mov DPH, R0 ;1
mov R0, temp_R0 ;1
pop PSW ;2
pop ACC ;2
reti ;2
;8 мксек при 12 Мгц
;----------------------------------
Тоесть после снятия WAIT контроллер еще 8 мксек занят, прежде чем будет выполнять остальные задачи.
За это время Спектрум при тактовой частоте 3.5 Мгц выполнит несколько команд (можете сами прикинуть сколько).
PS. То же самое выполняется на ATTiny2313 на порядок быстрее, что исключает указанную проблему.