Przeglądarki plików FNT, GR8, MIC, SGE
System Sparta DOS X w obecności sterownika RUNEXT.SYS umożliwia zautomatyzowanie podglądu pliku poprzez skojarzenie rozszerzenia z docelowym programem służącym do podglądu. Poniżej moje wprawki w Action! – 4 viewery do różnych typów plików. Programy nie są w żaden sposób zoptymalizowane oraz nie pasiadają żadnych pułapek błędów – zakładam, że użytkownik wie co robi.
Aby wykorzystać viewery wystarczy do pliku RUNEXT.CFG dodać linijki skojarzeń typów pliku z przeglądarkami. W podanym niżej przykładzie przeglądarki umieszczone zostały w folderze A:\DOS
Przeglądarka SGE powstała w celu podglądu ekranów programu do logosów autorstwa kolegi Mono, jednak z powodzeniem obsłuży dowolny plik, którego zawartością jest „zrzut” ekranu Atari w trybie Graphics(0). Bez trudu więc obsłużymy też ekrany programu ARTur kolegi Bocianu.
RUNEXT.CFG:
FNT,A:\DOS\VIEWFNT.COM
GR8,A:\DOS\VIEWGR8.COM
MIC,A:\DOS\VIEWMIC.COM
ASC:SGE,A:\DOS\VIEWSGE.COM
;FNT Viewer, AtariFan, 200614
;Kurs Action!, atarionline.pl
CARD X,Y,BUF=10
CHAR ARRAY F(15),P=0,
DI=[112 112 112 $70$70$70$70$70$70$70$42$00$82 2 2 2 $70$70 2 2 2 2 $41$00$80]
Proc FNT_VIEWER()
Graphics(0) P(559)=33; waski ekran
P(710)=$04 ;szara ramka
MOVEBLOCK($8000,DI,30) POKEC(560,$8000) ;kopiuj i ustaw DL
;rysuj fonty
FOR X=0 TO 255 DO POKE ($8200+X,X) OD
;dekoduj nazwe pliku
X=BUF+$3F DO IF PEEK(X)=$20 THEN EXIT FI X==+1 OD
X==+1 Y=X DO Y==+1 IF PEEK(Y)=$9B THEN EXIT FI OD
Y=Y-X F(0)=Y+2 MOVEBLOCK(F+3,X,Y) F(1)=$44 F(2)=$3A
;wczytaj plik
X=2 CLOSE(X) OPEN(X,F,4,0)
P($362)=7 POKEC($364,30720) POKEC($368,1024)
[$AD X $0A$0A$0A$0A$AA$20$56$E4] CLOSE(X)
P(756)=120; przelacz fonty
P(764)=255; zeruj klawiature
WHILE P(764)=255 DO OD ;czekaj na klawisz
GRAPHICS(0) ;przywroc ekran
P(764)=255 ;zeruj klawiature
[$6C$0A$00] ;wyjscie do SDX
;GR8 Viewer, AtariFan, 200626
;Kurs Action!, atarionline.pl
CARD X,Y,BUF=10,EKR=88
CHAR ARRAY F(15),P=0
PROC NEG() ;odwroc kolory
IF Y=0 THEN Y=1 P(709)=$04 P(710)=$0F
ELSEIF Y=1 THEN Y=0 P(709)=$0F P(710)=$04
FI
RETURN
Proc GR8_VIEWER()
GRAPHICS(24)
P(559)=0 ;wylacz ekran
P(709)=$0F P(710)=$04 ;ustaw kolory
;dekoduj nazwe pliku
X=BUF+$3F DO X==+1 IF PEEK(X)=$20 THEN EXIT FI OD
X==+1 Y=X DO Y==+1 IF PEEK(Y)=$9B THEN EXIT FI OD
Y=Y-X F(0)=Y+2 MOVEBLOCK(F+3,X,Y) F(1)=$44 F(2)=$3A
;wczytaj plik
X=2 CLOSE(X) OPEN(X,F,4,0)
POKE($362,7) POKEC($364,EKR) POKEC($368,7680)
[$AD X $0A$0A$0A$0A$AA$20$56$E4] CLOSE(X)
P(764)=255; zeruj klawisz
Y=0 ;obraz w pozytywie
P(559)=34 ;wlacz ekran
DO
X=P(764) ;sprawdz klawisz
IF X=35 THEN NEG() ;klawisz N odwraca kolory
ELSEIF X<255 THEN EXIT ;kazdy inny konczy program
FI
OD
GRAPHICS(0) ;przywroc ekran
P(764)=255 ;zeruj klawisz
[$6C$0A$00] ;powrot do SDX
BYTE
DMACTLS=$022F,
COLPF0S =$02C4,
COLPF1S =$02C5,
COLPF2S =$02C6,
COLBAKS=$02C8,
KBCODES=$02FC,
ICCMD =$0362
CARD X,Y,
BUF =$000A,
EKR =$0058,
ICBUFA=$0364,
ICBUFL=$0368
;wczytaj plik SGE
X=2 CLOSE(X) OPEN(X,F,4,0)
ICCMD=7 ICBUFA=EKR ICBUFL=960
[$AD X $0A$0A$0A$0A$AA$20$56$E4] CLOSE(X)
DMACTLS=34
KBCODES=255 WHILE KBCODES=255 DO OD KBCODES=255
CLOSE(0) OPEN(0,”E:”,12,0)
[$6C$0A$00] ;powrot do SDX
Biblioteka: