Связь адреса аттрибутов с адресом экрана
Материал из SpeccyWiki
Версия от 17:20, 5 января 2013; Goblinish (обсуждение | вклад)
Для пересчета адреса аттрибутов по адресу экрана необходимо знать соответствие двух областей памяти экранной области:
часть 1: #4000-#47FF - экран, #5800-#58ff - аттрибуты часть 2: #4800-#4FFF - экран, #5900-#59ff - аттрибуты часть 3: #5000-#57FF - экран, #5800-#5Aff - аттрибуты
таким образом, бинарное представление выглядит как:
- 40=01.00 0.000 58=0101 1.000
- 48=01.00 1.000 59=0101 1.001
- 50=01.01 0.000 5A=0101 1.010
это старший байт адреса, младший байт адреса не играет роль для аттрибута и знакоместа. Код:
;DE-адрес экранной области,A-цвет аттрибута ;!использует регистр С! push hl ld l,e,c,a;a=attribute ld a,d:and %00111000 rra:rra:rra or %01011000 ld h,a ld (hl),c pop hl ret <pre> [[Категория:Программирование графики]]