Programowanie: Definiowanie niestandardowych trybów graficznych
From Atariki
(Różnice między wersjami)
| Wersja z dnia 07:55, 20 kwi 2008 Xxl (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 13:04, 25 kwi 2008 Xxl (Dyskusja | wkład) (prosze dodać spis treści w tej sakładce.) Next diff → |
||
| Linia 19: | Linia 19: | ||
| dta b($41),a(antic) | dta b($41),a(antic) | ||
| </pre> | </pre> | ||
| + | |||
| + | == Definiowanie trybu graficznego układu 6845 == | ||
| + | |||
| + | Przykładowe uruchomienie trybu graficznego "MODE 4" komputera Acorn Electron, BBC Micro i Amstrad CPC na wąskim (32 bajty) obrazie. | ||
| + | |||
| + | Display List: | ||
| + | <pre> | ||
| + | antic dta $70,$70,$70+$80 | ||
| + | |||
| + | :5 dta $42,a(ekr_6845),$2,$2,$2+$80 | ||
| + | |||
| + | dta $41,a(antic) | ||
| + | </pre> | ||
| + | |||
| + | Pamięć ekranu: | ||
| + | <pre> | ||
| + | ldy #0 | ||
| + | _1 tya | ||
| + | sta ekr_6845,y | ||
| + | iny | ||
| + | bpl _1 | ||
| + | ... | ||
| + | |||
| + | ekr_6845 equ * | ||
| + | </pre> | ||
| + | |||
| + | Przerwania DLI: | ||
| + | <pre> | ||
| + | sta _6502_a | ||
| + | ch_cnt lda char | ||
| + | inc ch_cnt+1 | ||
| + | sta wsync | ||
| + | sta chbase | ||
| + | lda _6502_a | ||
| + | rti | ||
| + | char dta b($40),b($44),b($48),b($4c),b($50),b($54) | ||
| + | </pre> | ||
| + | |||
| + | Podczas wygaszania pionowego należy zapisać rejestr "ch_cnt+1" wartością "<char". W tym przypadku dane grafiki do wyświetlenia znajdują się pod adresem $4000. Definiowanie trybu "MODE 5" polega na wpisaniu w DL zamiast $42 wartości $45. | ||
| [[Kategoria:Niezbędnik kodera]] | [[Kategoria:Niezbędnik kodera]] | ||
Wersja z dnia 13:04, 25 kwi 2008
Na stronie znajdują się opisy uzyskania na Atari niestandardowych trybów graficznych.
Definiowanie trybu graficznego ZX Spectrum
Należy zdefiniować obraz wąski (32 bajty) z następującą DL:
zx_bitmap = $4000 ; pamięć obrazu ZX Spectrum zx_bitmap1 = $4800 zx_bitmap2 = $5000 zx_colormap = $5800 ; pamięć koloru antic dta $70,$70,$70 :64 dta $4f,a(zx_bitmap+(#/8)*32+(#&7)*$100) :64 dta $4f,a(zx_bitmap1+(#/8)*32+(#&7)*$100) :64 dta $4f,a(zx_bitmap2+(#/8)*32+(#&7)*$100) dta b($41),a(antic)
Definiowanie trybu graficznego układu 6845
Przykładowe uruchomienie trybu graficznego "MODE 4" komputera Acorn Electron, BBC Micro i Amstrad CPC na wąskim (32 bajty) obrazie.
Display List:
antic dta $70,$70,$70+$80
:5 dta $42,a(ekr_6845),$2,$2,$2+$80
dta $41,a(antic)
Pamięć ekranu:
ldy #0
_1 tya
sta ekr_6845,y
iny
bpl _1
...
ekr_6845 equ *
Przerwania DLI:
sta _6502_a
ch_cnt lda char
inc ch_cnt+1
sta wsync
sta chbase
lda _6502_a
rti
char dta b($40),b($44),b($48),b($4c),b($50),b($54)
Podczas wygaszania pionowego należy zapisać rejestr "ch_cnt+1" wartością "<char". W tym przypadku dane grafiki do wyświetlenia znajdują się pod adresem $4000. Definiowanie trybu "MODE 5" polega na wpisaniu w DL zamiast $42 wartości $45.
