Przeglądarka plików GR5
Tryb graficzny 5 to prosty, czterokolorowy tryb o rozdzielczości 80×48 pikseli, lub 80×40 pikseli w trybie z oknem tekstowym. Piksel jest kwadratowy i ma wymiary 4×4, kolory piksela określane są rejestrami COLPF0 (COLOR0) do COLPF2 (COLOR2) oraz COLBAK (COLOR4). Podobnie jak przy GR6 nie istnieje format pliku GR5 i podobnie można zakładać konstrukcję pliku zgodną z podobnymi formatami: dane RAW obrazu to 960 bajtów (lub 800 z oknem tekstowym), następnie kolor dla rejestru COLBAKS i 3 kolory dla rejestrów COLPF0-COLPF3.
Poniżej przykładowy kod w Action! wyświetlający obraz pełnoekranowy z zapisanymi kolorami (964 bajty długości pliku). Skojarzenie dla plików GR5 można dołączyć do pliku konfiguracyjnego sterownika RUNEXT.SYS:
RUNEXT.CFG:
GR5,A:\DOS\VIEWGR5.COM
;GR5 Viewer, AtariFan, 240909
;email: atari@atari8.eu, http://atari8.eu
Byte
DMACTLS=$022F,
COLPF0S=$02C4, COLBAKS=$02C8,
ICCMD0 =$0342, ICAX1_0=$034A, ICAX2_0=$034B,
ICCMD2 =$0362, ICAX1_2=$036A, ICAX2_2=$036B,
ICCMD6 =$03A2, ICAX1_6=$03AA, ICAX2_6=$03AB
Card
X, BUF=10,EK=88,
ICBUFA0=$344,ICBUFL0=$348,
ICBUFA2=$364,ICBUFL2=$368,
ICBUFA6=$3A4,ICBUFL6=$3A8
Char Array
P=0, DEVS=[’S’:$9B], DEVE=[’E’:$9B]
Proc CIO =$E456(BYTE A,X)
Proc KBGET=$F302()
Proc GR5_VIEW()
;zamknij kanały
ICCMD0=$C CIO(0,$00)
ICCMD2=$C CIO(0,$20)
ICCMD6=$C CIO(0,$60)
;ekran Graphics 5 bez okna tekstowego
ICCMD6=3 ICBUFA6=DEVS
ICAX1_6=12 ICAX2_6=5 CIO(0,$60)
;wyłącz ekran
DMACTLS=0 ;WYLACZ EKRAN
;obróbka wiersza poleceń
X=BUF+$3F
DO X==+1 IF P(X)=$20 THEN EXIT FI OD
P(X)=’: X==-1 P(X)=’D
;wczytaj dane z pliku *.GR5
ICCMD2=$3 ICBUFA2=X ICAX1_2=4 ICAX2_2=0 CIO(0,$20)
ICCMD2=7 ICBUFA2=EK ICBUFL2=960 CIO(0,$20)
ICBUFA2=COLBAKS ICBUFL2=1 CIO(0,$20)
ICBUFA2=COLPF0S ICBUFL2=3 CIO(0,$20)
ICCMD2=$C CIO(0,$20)
;włącz ekran i czekaj na klawisz
DMACTLS=34
KBGET()
;zamknij Graphics 5
ICCMD6=$C CIO(0,$60) ;CLOSE(6)
;przywróć Graphics 0
ICCMD0=3 ICBUFA0=DEVE ICAX1_0=12 ICAX2_0=0 CIO(0,0)
;powrót do DOS (opcjonalnie)
[$6C$0A$00]
Wszelkie uwagi i wykryte nieprawidłowości w działaniu proszę podsyłać w e-mail.
Biblioteka: