Попробую прокоментировать, если че поправьте.
Loop: in temp,<порт> - получить состояние шины (1 такт) st Z+,temp - засунуть это значение в оперативку (2 такта) cp ZL,... - если младший байт указателя не переходит границу, то перейти к опросу порта (1 такт) cpc ZH,... - иначе проверить старший байт, если ... - неважно in temp,<порт> - получить состояние шины (1 такт) st Z+,temp - засунуть это значение в оперативку (2 такта) brne Loop - продолжить (если нужно) (1 такт)
Т.е. если не придираться к иногда возникающему CP-CPC, то в среднем по четыре такта на один опрос. Ну в принципе в настоящий момент у меня тоже их четыре А вот как-бы засунуть в сишный файл вот это - in temp,<порт> st Z+,temp in temp,<порт> st Z+,temp in temp,<порт> st Z+,temp ... ???
|