В последнее время чтение документации у меня не вызывает энтузиазма. По той причине, что мало чего понятно из описания. И мало что получается.
Добрался я до графического режима 320х200х16 цветов.Включается он как
POKE 53272,PEEK(53272)OR8 : POKE 53265,PEEK(53265)OR32
53272(D018) - указывает, что данные о пикселях размещаются по адресу $2000.
53265(D011) - включают режим пикселей(или bitmap)
Другая дока подсказывает, что
(You'd generally set this up with: $d011=$3b, $d016=8)
Путаница, блин.
Формат пикселей описан как
ичсх никаких функций kernal не описано - ни очистки, ни построения точек. Решил попробовать сам. Очистка? пфф, это реализуется одной процедурой.
;set memory
lda #4
sta $FB
lda #0
sta $FA
ldx #4
lda #$10
jsr fillm
lda #$20
sta $FB
lda #0
ldx #$40
jsr fillm
....
fillm
ldy #0
fm sta($FA),y
iny
bne fm
inc $FB
dex
bne fm
rts
lda #4
sta $FB
lda #0
sta $FA
ldx #4
lda #$10
jsr fillm
lda #$20
sta $FB
lda #0
ldx #$40
jsr fillm
....
fillm
ldy #0
fm sta($FA),y
iny
bne fm
inc $FB
dex
bne fm
rts
Гугл подсказал, что очистка используется как PRINT CHR$(147), но я не нашел как.
Еще одна статья подсказала, как считаются адреса. Решил для начала глянуть на крэктро:
Алгоритм мне известен, но на построение точек неплохо бы взглянуть. Написал код генерации таблиц, и при изучении программы я увидел, что программа использовала координаты 8бит. Да и весь код вырос за 200 байт - ясно, что для интро не подойдет такой подход. Вернулся к началу и написал построение точек заново, только использовал 8бит для координат
Итого 145 байт - есть, куда стремиться.Сырки
Дополнение. Обнаружилась ошибка
plot: ;reg Y=Yc,reg X=Xc
lda #0
sta $FA
lda #$20
sta $FB
tya
pha
and #248
beq nomul
tay
add40:
lda #40
jsr addfa
dey
bne add40
nomul:
pla
; tay
and #7
tay
jsr addfa
txa
and #$F8
jsr addfa
txa
and #7
tay
ldx #0
lda ($FA,x)
ora bw,y
sta ($fa,x)
rts
lda #0
sta $FA
lda #$20
sta $FB
tya
pha
and #248
beq nomul
tay
add40:
lda #40
jsr addfa
dey
bne add40
nomul:
pla
; tay
and #7
tay
jsr addfa
txa
and #$F8
jsr addfa
txa
and #7
tay
ldx #0
lda ($FA,x)
ora bw,y
sta ($fa,x)
rts
Комментарии
Отправить комментарий