Otwarcie ekranu w trybie graficznym (GRAPHICS)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 10:28, 1 paź 2006
KMK (Dyskusja | wkład)

← Previous diff
Aktualna wersja
Lizard (Dyskusja | wkład)

Linia 1: Linia 1:
 +=== 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. 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.
-<pre>+ ;
-;+ ; (K) Lizard
-; (c) Lizard + ;
-;+ iccmd = $0342
-iccmd = $0342+ icbufa = $0344
-icbufa = $0344+ icax1 = $034a
-icax1 = $034a+ icax2 = $034b
-icax2 = $034b+ ciov = $e456
-jciomain = $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
 + 
 +=== Metoda najkrótsza ===
 + 
 +W przypadku, gdzie liczy się pamięć, zwartość kodu, a także przy wprawkach i eksperymentach można zastosować metodę:
-gr9 lda #9+ lda #GRMODE
- bne gr+ jsr $ef90
-gr15 lda #15+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.
-gr pha+Metoda ta jest hackerska, używanie jej w dzisiejszych programach to proszenie się o kłopoty (głównie u innych użytkowników).
- 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 #%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

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

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).

Personal tools