Przeglądarka plików GR6
Tryb graficzny 6 to prosty, jednokolorowy tryb o rozdzielczości 160×96 pikseli. Piksel ma szerokość 2 punktów, a jego kolor ustala rejestr COLPF0 (COLOR0). W trybie z okienkiem tekstowym rozdzielczość zmniejsza się do 160×80 pikseli. Zasadniczo nie istnieje format pliku GR6, ale jeśli miałby to można pokusić się o nakreślenie: blok danych RAW grafiki to odpowiednio 1920 lub 1600 bajtów, potem bajt COLBAKS oraz COLOR0.
Poniżej przykładowy kod w Action! wyświetlający obraz pełnoekranowy z zapisanymi kolorami (1922 bajty długości pliku). Skojarzenie dla plików GR6 można dołączyć do pliku konfiguracyjnego sterownika RUNEXT.SYS:
RUNEXT.CFG:
GR6,A:\DOS\VIEWGR6.COM
;GR6 Viewer, AtariFan, 240908
;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 GR6_VIEW()
;zamknij kanały
ICCMD0=$C CIO(0,$00)
ICCMD2=$C CIO(0,$20)
ICCMD6=$C CIO(0,$60)
;ekran Graphics 6 bez okna tekstowego
ICCMD6=3 ICBUFA6=DEVS
ICAX1_6=12 ICAX2_6=6 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 *.GR6
ICCMD2=$3 ICBUFA2=X ICAX1_2=4 ICAX2_2=0 CIO(0,$20)
ICCMD2=7 ICBUFA2=EK ICBUFL2=1920 CIO(0,$20)
ICBUFA2=COLBAKS ICBUFL2=1 CIO(0,$20)
ICBUFA2=COLPF0S ICBUFL2=1 CIO(0,$20)
ICCMD2=$C CIO(0,$20)
;włącz ekran i czekaj na klawisz
DMACTLS=34
KBGET()
;zamknij Graphics 6
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: