
Сообщение от
b2m
Читал, мало что понятно. Даже про выбор видеопамяти.
- - - Добавлено - - -
Решил попробовать построение точки разного цвета.Но получается, что построение началось не с центра и цвет только один. Может, неправильно заданы флаги в FF45?
Код:
device zxspectrum48
ORG #4000
begin
ld sp,$5000
ld a,0
out ($12),a
ld a,$88; 320x200 color
out ($D8),a
;color
;0 1 2 3 4 5 6 7
ld a,$10; pal 0
out ($D9),a
;set MODE
;76543210
;||||xx+-
;|||| |00 320x200 mono, страница определяется битом 4
;|||| |01 640x200 mono
;|||| |10 320x200 color
;|||| |11 запрещенная комбинация
;|||+---->0 Страница 1(C000..DF3F) 1 Страница 1(E000..FF3F)
;||+--------->1 Включение динамического сдвига маски цвета
;|+---------->0 Режим вывода 20 строк, 1-Режим вывода 25 строк
;+----------->0 Символы нормальной ширины, 1 Символы двойной ширины
ld a,%11110010
ld ($FF45),a
ld a,3
call $2792
ld hl,0,de,hl,b,255
pp:
; push hl
; push bc
; ld a,e
; xor b
; call $2792
; pop bc
; pop hl
push hl,de,bc
call $2798
pop bc,de,hl
inc de,hl,hl
dec b
jp nz,pp
jp $
end
display /d,end-begin
savebin "plotc.rk",begin,end-begin
- - - Добавлено - - -
Разобрался.
Код:
device zxspectrum48
ORG #4000
begin
ld sp,$5000
ld a,0
out ($12),a
ld a,$88; 320x200 color
out ($D8),a
;color
;0 1 2 3 4 5 6 7
ld a,$10; pal 0
out ($D9),a
ld c,$0C ; cls
call $2000 ; CONOUT
;set MODE
;76543210
;||||xx+-
;|||| |00 320x200 mono, страница определяется битом 4
;|||| |01 640x200 mono
;|||| |10 320x200 color
;|||| |11 запрещенная комбинация
;|||+---->0 Страница 1(C000..DF3F) 1 Страница 1(E000..FF3F)
;||+--------->1 Включение динамического сдвига маски цвета
;|+---------->0 Режим вывода 20 строк, 1-Режим вывода 25 строк
;+----------->0 Символы нормальной ширины, 1 Символы двойной ширины
ld a,%11100010
ld ($FF45),a
call $278c; init vars FFC7=$E000
ld hl,0,de,hl,b,255
pp:
push hl
push bc
ld a,e
call $2792
pop bc
pop hl
push hl,de,bc
call $2798
pop bc,de,hl
inc de,hl,hl
dec b
jp nz,pp
jp $
end
display /d,end-begin
savebin "plotc.rk",begin,end-begin