Fun with Art

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 22:47, 1 maj 2021
Dracon (Dyskusja | wkład)
(kto uzywał)
← Previous diff
Wersja z dnia 10:51, 6 maj 2021
Seban (Dyskusja | wkład)
(opis formatu pliku, plus viewer w Turbo Basic XL.)
Next diff →
Linia 9: Linia 9:
Format pliku używanego przez program, jest bardzo prosty i został opisany opisany w załączniku (BASIC Programming Notes) dodanym do oryginalnej instrukcji. Plik zapisany przez program, oprócz samych danych obrazu zawiera również [[ANTIC Display List|display listę]] oraz kod przerwań DLI odwzorowujących zmianę kolorów w poszczególnych liniach rastra wprowadzone podczas tworzenia obrazka przez użytkownika. Format został tak pomyślany, aby w prosty sposób można było wyświetlać obrazki stworzone tym programem z poziomu [[Atari BASIC]]. Format pliku używanego przez program, jest bardzo prosty i został opisany opisany w załączniku (BASIC Programming Notes) dodanym do oryginalnej instrukcji. Plik zapisany przez program, oprócz samych danych obrazu zawiera również [[ANTIC Display List|display listę]] oraz kod przerwań DLI odwzorowujących zmianę kolorów w poszczególnych liniach rastra wprowadzone podczas tworzenia obrazka przez użytkownika. Format został tak pomyślany, aby w prosty sposób można było wyświetlać obrazki stworzone tym programem z poziomu [[Atari BASIC]].
-Znaną osobą, który używała ten program do tworzenia grafiki to [[Raven]] z grupy Quasimodos (np. wszystkie całoekranowe obrazki w demie "[[Drunk Tank]]").+Znaną osobą, który używała ten program do tworzenia grafiki to [[Raven]] z grupy Quasimodos (np. wszystkie cało-ekranowe obrazki w demie "[[Drunk Tank]]").
 + 
 +== Technikalia ==
 + 
 +Format pliku FWA:
 +<table border=1 cellpadding="5">
 +<tr><td><b>offset</b></td><td><b>długość</b></td><td><b>opis</b></td></tr>
 +<tr><td>$0000</td><td>$0002</td><td>identyfikator: $FE,$FE</td></tr>
 +<tr><td>$0002</td><td>$0001</td><td>wartość rejestru koloru ramki ($2C8)</td></tr>
 +<tr><td>$0003</td><td>$0003</td><td>wartości pozostałych rejestrów koloru ($2C4...$2C6)</td></tr>
 +<tr><td>$0006</td><td>$0100</td><td>dane dla Display List + kod przerwania VBL, a także kod wspierający obsługę DLI<br>UWAGA! segment danych musi być załadowany na 6-tą stronę pamięci ($0600)</td></tr>
 +<tr><td>$0106</td><td>$1E10</td><td>Dane obrazu</td></tr>
 +<tr><td>$1F16</td><td>$0002</td><td>długość programu DLI (młodszy, starszy)</td></tr>
 +<tr><td>$1F18</td><td>...</td><td>kod zawierający prodecury DLI, maksymalnie 2300 bajtów</td></tr>
 +</table>
 + 
 + 
 +Przykładowy program napisany w [[Turbo BASIC XL]] umożliwiający wyświetlenie obrazka w formacie Fun with Art.
 + 10 DIM N$(32)
 + 11 PICADR=((PEEK($02E6) DIV 16)-2)*16:DLIADR=PICADR-9
 + 12 DO:GRAPHICS 0:TRAP 40
 + 13 ?: ? "--- Fun with Art Viewer v.1.01 ---"
 + 14 ? "- done by: Seban/Code3, (p) 1992 -"
 + 15 ?: ? "Input filename: ";:INPUT N$:OPEN #1,4,0,N$
 + 16 REM - GET & CHECK HEADER DATA -
 + 17 GET #1,A:GET #1,B
 + 18 IF (A<>B) OR (A<>$FE)
 + 19 ?:? N$;": is not an FwA file!":END
 + 20 ENDIF:POKE $22F,0:PAUSE 0
 + 21 REM - GET COLORS
 + 22 BGET #1,$02C8,1:BGET #1,$02C4,3
 + 23 REM - GET DISPLAY LIST
 + 24 BGET #1,$0600,256
 + 25 REM - GET IMAGE DATA
 + 26 BGET #1,PICADR*256,$1E10
 + 27 REM - GET DLI CODE LENGTH
 + 28 GET #1,DLO:GET #1,DLH
 + 29 REM - GET DLI CODE
 + 30 BGET #1,DLIADR*256,256*DLH+DLO
 + 31 CLOSE #1
 + 32 REM - SETUP DL, DLI
 + 33 POKE $0605,PICADR:POKE $066D,PICADR+16
 + 34 POKE $06DE,0:POKE $06E3,DLIADR:DPOKE $0230,$0600
 + 35 POKE $06E8,$C0:POKE $D40E,$00:DPOKE $0222,$06DD:DPOKE $D40E,$C0
 + 36 POKE $022F,$22:GET X:POKE $022F,0:PAUSE 0
 + 37 POKE $06E8,$40:POKE $D40E,$00:DPOKE $0222,$E45F:POKE $D40E,$40
 + 38 LOOP
 + 40 ?:? "Error #";ERR;" at line ";ERL
 + 41 ?:? "Press any key to restart."
 + 42 CLOSE #1:GET K:LOOP
== Linki == == Linki ==

Wersja z dnia 10:51, 6 maj 2021

Grafika:Fun_with_art.png

Dość zaawansowany program graficzny dla 8-bitowego Atari, wydany w 1983 roku przez firmę Epyx. Jego podstawową zaletą jest prostota obsługi, niestety przy używaniu niektórych funkcji prędkość działania programu jest dość niska. Program pracuje w 15 trybie graficznym Atari-OS, a więc rozdzielczość tworzonej grafiki to 160x192, a więc teoretycznie użytkownik jest ograniczony do 4 kolorów, jednak autorzy programu postanowili ominąć to ograniczenie i dodali możliwość zmiany kolorów w wybrany liniach za pomocą przerwań DLI. Należy dodać że jest to jeden z pierwszych programów (być może nawet pierwszy), który umożliwia zmianę palety kolorów w wybranych liniach rastra. Pozwala to tworzyć grafikę z wykorzystaniem większej ilości kolorów (dostępna paleta barw to 128 kolorów). Zaznaczyć trzeba że funkcję tę zrealizowano w taki sposób że nawet mało doświadczony użytkownik jest w stanie użyć tej funkcjonalności i nie wymaga to od niego znajomości zawiłych technik czy zaawansowanych szczegółów technicznych związanych z funkcjonowaniem podsystemu graficznego komputera Atari. Na ekranie głównym (menu) wystarczy wybrać jeden z dostępnych kolorów z palety (ten na którym chcemy dokonać zmiany), następnie przejść do edycji obrazka (klawisz START), ustawić wskaźnik/kursor w linii w której chcemy dokonać zmiany rejestru koloru, a następnie wcisnąć A, po czym klawiszami SELECT, OPTION dokonujemy zmiany koloru. Zmiana następuje od linii która była wybrana i od tej chwili wybrany kolor ma nową wartość która pozostaje niezmieniona do końca ekranu, chyba że użytkownik dokona ponownej zmiany w innej linii. Na pierwszy rzut oka brzmi to skomplikowanie, jednak po nabyciu pewnej wprawy jest to bardzo intuicyjne i logiczne. Można powiedzieć że to rozwiązanie jest dość innowacyjne biorąc po uwagę rok powstania/wydania tego programu.

Grafika stworzona w tym programie z użyciem zmian kolorów naprawdę robiła wrażenie, można odnieść wrażenie że wręcz wyprzedzała epokę. Ilość kolorów jednocześnie widocznych na ekranie zupełnie nie pasowała do sztampowych 4-kolorowych obrazków, tak licznie występujących w tamtych czasach na platformie Atari 8-bit. Można odnieść wrażenie, iż ów trend tworzenia bogatej w kolory grafiki nie przyjął się, a tworzący w tamtym okresie graficy nie potrafili wykorzystać możliwości jakie dawała im platforma. Zresztą dostępne w tamtym okresie oprogramowanie nie oferowało możliwości zmian kolorów w każdej linii rastra, więc graficy byli ograniczeni do tego co domyślnie oferował im wybrany tryb graficzny. Fun with Art był swego rodzaju wyjątkiem, jednak wydaje się że nie zyskał dużej popularności. Być może był traktowany przez grafików jako narzędzie stworzone do zabawy niż do profesjonalnego tworzenia obrazów. Przykłady grafik stworzonych w programie zdają się temu przeczyć. Niestety na renesans tego rodzaju kolorowej grafiki trzeba było poczekać do czasu stworzenia bardziej zaawansowanych narzędzi i edytorów graficznych, np. takich jak GED czy PowerGraph, a nowa epoka została zapoczątkowana dopiero wraz z pojawieniem się zaawansowanych narzędzi na platformie PC, np. takich jak Graph2Font.

Fun_with_art_examples_small.png
Przykładowe grafiki stworzone w programie

Spis treści

Parę słów o formacie danych

Format pliku używanego przez program, jest bardzo prosty i został opisany opisany w załączniku (BASIC Programming Notes) dodanym do oryginalnej instrukcji. Plik zapisany przez program, oprócz samych danych obrazu zawiera również display listę oraz kod przerwań DLI odwzorowujących zmianę kolorów w poszczególnych liniach rastra wprowadzone podczas tworzenia obrazka przez użytkownika. Format został tak pomyślany, aby w prosty sposób można było wyświetlać obrazki stworzone tym programem z poziomu Atari BASIC.

Znaną osobą, który używała ten program do tworzenia grafiki to Raven z grupy Quasimodos (np. wszystkie cało-ekranowe obrazki w demie "Drunk Tank").

Technikalia

Format pliku FWA:

offsetdługośćopis
$0000$0002identyfikator: $FE,$FE
$0002$0001wartość rejestru koloru ramki ($2C8)
$0003$0003wartości pozostałych rejestrów koloru ($2C4...$2C6)
$0006$0100dane dla Display List + kod przerwania VBL, a także kod wspierający obsługę DLI
UWAGA! segment danych musi być załadowany na 6-tą stronę pamięci ($0600)
$0106$1E10Dane obrazu
$1F16$0002długość programu DLI (młodszy, starszy)
$1F18...kod zawierający prodecury DLI, maksymalnie 2300 bajtów


Przykładowy program napisany w Turbo BASIC XL umożliwiający wyświetlenie obrazka w formacie Fun with Art.

10 DIM N$(32)
11 PICADR=((PEEK($02E6) DIV 16)-2)*16:DLIADR=PICADR-9
12 DO:GRAPHICS 0:TRAP 40
13 ?: ? "--- Fun with Art Viewer v.1.01 ---"
14 ? "- done by: Seban/Code3, (p) 1992 -"
15 ?: ? "Input filename: ";:INPUT N$:OPEN #1,4,0,N$
16 REM - GET & CHECK HEADER DATA -
17 GET #1,A:GET #1,B
18 IF (A<>B) OR (A<>$FE)
19 ?:? N$;": is not an FwA file!":END 
20 ENDIF:POKE $22F,0:PAUSE 0 
21 REM - GET COLORS
22 BGET #1,$02C8,1:BGET #1,$02C4,3
23 REM - GET DISPLAY LIST
24 BGET #1,$0600,256
25 REM - GET IMAGE DATA
26 BGET #1,PICADR*256,$1E10
27 REM - GET DLI CODE LENGTH
28 GET #1,DLO:GET #1,DLH
29 REM - GET DLI CODE
30 BGET #1,DLIADR*256,256*DLH+DLO
31 CLOSE #1
32 REM - SETUP DL, DLI
33 POKE $0605,PICADR:POKE $066D,PICADR+16
34 POKE $06DE,0:POKE $06E3,DLIADR:DPOKE $0230,$0600
35 POKE $06E8,$C0:POKE $D40E,$00:DPOKE $0222,$06DD:DPOKE $D40E,$C0
36 POKE $022F,$22:GET X:POKE $022F,0:PAUSE 0
37 POKE $06E8,$40:POKE $D40E,$00:DPOKE $0222,$E45F:POKE $D40E,$40
38 LOOP
40 ?:? "Error #";ERR;" at line ";ERL
41 ?:? "Press any key to restart."
42 CLOSE #1:GET K:LOOP

Linki

Zobacz też


Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.

Personal tools