Otwarcie ekranu w trybie graficznym (GRAPHICS)
From Atariki
(Różnice między wersjami)
Wersja z dnia 17:49, 19 lip 2006 KMK (Dyskusja | wkład) (Programowanie: Inicjacja trybu graficznego moved to Programowanie: Otwarcie ekranu w trybie graficznym) ← Previous diff |
Aktualna wersja Lizard (Dyskusja | wkład) |
||
Linia 1: | Linia 1: | ||
- | <pre> | + | === Metoda standardowa, polecana === |
- | ; | + | |
- | ; (c) Lizard | + | |
- | ; | + | |
- | iccmd = $0342 | + | |
- | icbufa = $0344 | + | |
- | icax1 = $034a | + | |
- | icax2 = $034b | + | |
- | jciomain = $e456 | + | |
- | gr9 lda #9 | + | Procedura przełącza ekran w wybrany tryb graficzny. W przykładzie może to być tryb Graphics 9 (wywołanie przez JSR GR9) lub Graphics 15 (wywołanie przez JSR GR15). Jako kanał I/O dla grafiki używany jest [[IOCB]] 6, ale równie dobrze może to być dowolny inny. |
- | bne gr | + | |
- | gr15 lda #15 | + | ; |
+ | ; (K) Lizard | ||
+ | ; | ||
+ | iccmd = $0342 | ||
+ | icbufa = $0344 | ||
+ | icax1 = $034a | ||
+ | icax2 = $034b | ||
+ | ciov = $e456 | ||
+ | ; | ||
+ | gr9 lda #9 | ||
+ | bne gr | ||
+ | ; | ||
+ | gr15 lda #15 | ||
+ | ; | ||
+ | gr pha | ||
+ | ldx #$60 ; IOCB #6 | ||
+ | lda #$0c ; zamknij | ||
+ | jsr cioexe | ||
+ | pla | ||
+ | sta icax2,x ; tryb | ||
+ | lda #<dev ; identyfikator urzadzenia | ||
+ | sta icbufa,x | ||
+ | lda #>dev | ||
+ | sta icbufa+1,x | ||
+ | lda #%00001100 ; bez okna tekstowego, odczyt/zapis | ||
+ | sta icax1,x | ||
+ | lda #$03 ; otworz | ||
+ | cioexe sta iccmd,x | ||
+ | jmp [[Tablica skoków#JCIOMAIN|ciov]] | ||
+ | ; | ||
+ | dev .by "S:" $9b | ||
- | gr pha | + | === Metoda najkrótsza === |
- | ldx #$60 ; IOCB #6 | + | |
- | lda #$0c ; zamknij | + | W przypadku, gdzie liczy się pamięć, zwartość kodu, a także przy wprawkach i eksperymentach można zastosować metodę: |
- | jsr cioexe | + | |
- | pla | + | lda #GRMODE |
- | sta icax2,x ; tryb | + | jsr $ef90 |
- | lda #<dev ; identyfikator urzadzenia | + | |
- | sta icbufa,x | + | Metoda ta wiąże się z ograniczeniami (możliwe ustawienia to tryb graficzny 0-15, bez rozszerzeń typu +16,+32) i otwiera ekran graficzny bez dolnego okna tekstowego. |
- | lda #>dev | + | |
- | sta icbufa+1,x | + | Metoda ta jest hackerska, używanie jej w dzisiejszych programach to proszenie się o kłopoty (głównie u innych użytkowników). |
- | lda #%00011100 ; bez okna tekstowego, odczyt/zapis | + | |
- | sta icax1,x | + | |
- | lda #$03 ; otworz | + | |
- | cioexe sta iccmd,x | + | |
- | jmp jciomain | + | |
- | dev .by "S:" $9b | ||
- | </pre> | ||
[[Kategoria:Niezbędnik kodera]] | [[Kategoria:Niezbędnik kodera]] |
Aktualna wersja
[Edytuj]
Metoda standardowa, polecana
Procedura przełącza ekran w wybrany tryb graficzny. W przykładzie może to być tryb Graphics 9 (wywołanie przez JSR GR9) lub Graphics 15 (wywołanie przez JSR GR15). Jako kanał I/O dla grafiki używany jest IOCB 6, ale równie dobrze może to być dowolny inny.
; ; (K) Lizard ; iccmd = $0342 icbufa = $0344 icax1 = $034a icax2 = $034b ciov = $e456 ; gr9 lda #9 bne gr ; gr15 lda #15 ; gr pha ldx #$60 ; IOCB #6 lda #$0c ; zamknij jsr cioexe pla sta icax2,x ; tryb lda #<dev ; identyfikator urzadzenia sta icbufa,x lda #>dev sta icbufa+1,x lda #%00001100 ; bez okna tekstowego, odczyt/zapis sta icax1,x lda #$03 ; otworz cioexe sta iccmd,x jmp ciov ; dev .by "S:" $9b
[Edytuj]
Metoda najkrótsza
W przypadku, gdzie liczy się pamięć, zwartość kodu, a także przy wprawkach i eksperymentach można zastosować metodę:
lda #GRMODE jsr $ef90
Metoda ta wiąże się z ograniczeniami (możliwe ustawienia to tryb graficzny 0-15, bez rozszerzeń typu +16,+32) i otwiera ekran graficzny bez dolnego okna tekstowego.
Metoda ta jest hackerska, używanie jej w dzisiejszych programach to proszenie się o kłopoty (głównie u innych użytkowników).