Otwarcie ekranu w trybie graficznym (GRAPHICS): Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
hategoria
Lizard (dyskusja | edycje)
Nie podano opisu zmian
 
(Nie pokazano 16 wersji utworzonych przez 6 użytkowników)
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      ldx #$60
=== Metoda najkrótsza ===
        sta icax2,x    ; tryb
 
         lda #$03        ; otworz
W przypadku, gdzie liczy się pamięć, zwartość kodu, a także przy wprawkach i eksperymentach można zastosować metodę:
         sta iccmd,x
 
        lda #<dev      ; co?
         lda     #GRMODE
        sta icbufa,x
         jsr    $ef90
        lda #>dev
 
        sta icbufa+1,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 #%00011100  ; bez okna tekstowego, odczyt/zapis
 
        sta icax1,x
Metoda ta jest hackerska, używanie jej w dzisiejszych programach to proszenie się o kłopoty (głównie u innych użytkowników).
        jmp jciomain


dev    .by "S:" $9b
</pre>


[[Kategoria:Niezbędnik kodera]]
[[Kategoria:Niezbędnik kodera]]

Aktualna wersja z 22 lis 2023, 13:23

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