barsik, попробую нарисовать свою идею псевдографикой.
Когда мы копируем спрайт, то например, читаем байт из адреса (спр1) и пишем его по адресу (с2). В это же время одновременно с ним в памяти маски копируется байт из адреса (спр1) в адрес (с2) байт, который является маской байта пикселей спрайта, который мы сами копируем.Код:[================ФФФФФФФ=========================================] - Память спектрума. Тут сидит экран, который является фоном. /--------------| |---------/ | [ССССССС] | - экран для спрайтов. | | | | [ММММММ==========================================] - Теневая память для масок. |-------------------------| | | (с2) (спр1)
В общем, копируем 1 байт, а на самом деле железом копируется сразу 2 байта в 2 разных банках памяти. И без портов или регистров. По крайней мере, это должно быть прозрачно для программиста.




Ответить с цитированием