LINUX.ORG.RU

История изменений

Исправление GAMer, (текущая версия) :

Z80 - медленная скотина, и данные из памяти читает медленно. Если делать «как положено», чтение байта LD r,(HL) - 7 тактов. А если загрузить в SP адрес данных, спрайта например, то POP qq - 10 тактов на ДВА байта. Соответственно CALL'ов при этом тебе делать просто так низзя, а если приходит прерывание, данные портятся адресом возврата.
И если хочется держать стек на адресуемых данных долго, то CALL'ы приходится эмулировать, через модифицируемый код, вместо RET'а ставя JP «куда вернуться», а если хочется прерываний, то читать строго определённым порядком, только в одну регистровую пару, чтобы когда прерывание придёт, мы знали, что наши данные, которые в памяти испорчены адресом возврата из прерывания, лежат в определённой регистровой паре. Но так делать мне не нравилось, и я считал такты, и когда прерывание должно придти плюс-минус, возвращал стек на положенное место ) В этот момент можно поделать что-нибудь не реалтаймо-ресурсоёмкое - музыку поиграть, клаву почитать, логику обработать...

Исходная версия GAMer, :

Z80 - медленная скотина, и данные из памяти читает медленно. Если делать «как положено», чтение байта LD r,(HL) - 7 тактов. А если зарузить в SP адрес данных, спрайта например, то POP qq - 10 тактов на ДВА байта. Соответственно CALL'ов при этом тебе делать просто так низзя, а если приходит прерывание, данные портятся адресом возврата.
И если хочется держать стек на адресуемых данных долго, то CALL'ы приходится эмулировать, через модифицируемый код, вместо RET'а ставя JP «куда вернуться», а если хочется прерываний, то читать строго определённым порядком, только в одну регистровую пару, чтобы когда прерывание придёт, мы знали, что наши данные, которые в памяти испорчены адресом возврата из прерывания, лежат в определённой регистровой паре. Но так делать мне нравилось, и я считал такты, и когда прерывание должно придти плюс-минус, возвращал стек на положенное место ) В этот момент можно поделать что-нибудь не реалтаймо-ресурсоёмкое - музыку поиграть, клаву почитать, логику обработать...