Część czwarta - konwertujemy grafikę.
Z przyczyn częściowo niezależnych i z powodu różnych kolei losu długo mnie nie było, tym niemniej postanowiłem, że należy dociągnąć kurs do końca.Zacznijmy więc ;)
Na początek postanowiłem za głosami ludu stworzyć jednego większego ATR-a do kursu. Nazwałem go roboczy_big.atr - i proszę o używanie tej wersji podczas kursu (lub zgranie odpowiednich plików na pojedyńczą dyskietkę do użycia w prawdziwej stacji dysków). Dziś zajmiemy się konwersją grafiki - w załączniku do dzisiejszej części będzie też obraz pod nazwą roboczy_big_po.atr - czyli obraz po zmianach.
Po konwersji dodamy sobie wszystko do pliku dane.dat i napiszemy krótki programik do przeglądania całości. Taki króciutki powrót do realiów kursu.
Na początek - uruchamiamy naszą dyskietkę i wgrywamy jv:
Kolej na ustawienie sobie do konwersji trybu 8 basica (powtórka z części 3): klawisz M do ustawienia Mode Gr.8 BW, teraz L i wgranie pliku do konwersji (P1.GIF), jeśli parametry się zgadzają - to Return i patrzymy, czy wszystko w porządku. Powinien nam się pojawić obrazek jak w grafice p1 (załącznik). Wciskamy klawisz START i potem S (zapis), podajemy nazwę (P1.8) i zapisujemy.
Tak samo postępujemy z resztą grafik (nie modyfikowałem ich, są Lopeza). Przydatny może nam być w tym klawisz D - katalog dysku (proponuję zastosować maskę *gif lub *.gif dla innych dosów niż MyDos). Proszę to wykonać jako własne ćwiczenie (pamiętamy o zmianie nazwy z *.GIF na *.8 dla naszych potrzeb).
Jeśli wszystko nam poszło w porządku - mamy 6 plików graficznych w 8-mym trybie, ale pełnoekranowych. Wychodzimy z JV i użyjemy narzędzia, które sobie kiedyś napisałem (w załączniku plik pdf z instukcją w języku polskim i angielskim - dzięki Miker). Oczywiście w naszym przypadku równie dobrze można by napisać prostą procedurę, ale programik radzi sobie także z innymi obrazami.
Ok, do dzieła. Wczytujemy sobie narzędzie BLOCKCUT.XEX, po dłuższej chwili powinno nam się pojawić menu. Najpierw ustawmy sobie tryb graficzny (klawisz M - mode, na dole musi być Actual Graphics Mode: 24), potem ustawiamy plik do odczytu i zapisu (klawisz F, potem pełna ścieżka pliku wejściowego i wyjściowego oraz ilość bajtów "do przeskoczenia), u nas odpowiednio:
Po chwili powinna nam się wgrać nasza grafika (można podejrzeć klawiszem V). Musimy teraz ustawić nasze parametry wycinania (standardowe "nieco się różnią" od naszych docelowych. Wybieramy ustawienie parametrów (P), a następnie:
W i ustawiamy 10 (10 bajtów to 80 pikseli)
H i ustawiamy 80 (80 linii)
E - wyjście do menu (nic nie pomijamy w naszym przypadku)
W opisie na dole widać: tryb graficzny 24, 10 bajtów szerokości, 80 linii, w sumie 800 bajtów na dane obrazka - pasuje nam ;) Wybieramy C i wycinamy nasz kawałek (dowolny klawisz po pokazaniu grafiki). Program nam pokaże grafikę przed wycięciem i po wycięciu (widać to dobrze na większych obrazkach, u nas praktycznie bez zmian). Jak wszystko ok - naciskamy Y i blok nam się zapisze, jak nie - N i ustawiamy parametry.
Czynności powtarzamy dla kolejnych obrazków, z tym - że parametry mamy już przygotowane (więc tylko ustawiamy pliki i cięcie obrazka). Dla chcących trochę rozrywki można sobie posłuchać muzyki w CMC (odsyłam do instrukcji). W ramach nauki proszę sobie wyciąć resztę grafiki (opcje F oraz C najbardziej przydatne).
Po zapisaniu sobie grafik w wersji wyciętej przejdźmy do Super Packera i dodajmy wszystko do naszego bloku danych. Wczytujemy (L=>sp**, potem L=>DANE.DAT). Teraz należy wczytać nasze kawałki. Mamy ich 6 po 800 bajtów, więc liczymy:
Pod ten adres wczytujemy nasze grafiki (przypominam, opcja F i nadawanie adresu), moja kolejność to: P1, T4, T5, T6, T7, T9 - proponuję ją zachować. Ja w swoim pliku podjechałem strzałkami tak, aby wszystko było od góry, ale nie ma to znaczenia. Zapisujemy wszystko (S=>DANE.DAT) i wychodzimy z Super Packera (Q). Teraz wczytajmy nasz Turbo Basic i wczytajmy nasze dane (L=>TB**, BLOAD"D:DANE.DAT).
Na zakończenie naszego odcinka napiszemy sobie procedurkę do sprawdzenia naszej grafiki. Proszę starannie przepisać kod (Uwaga! Można użyć kodu z instrukcji!):
10 GRAPHICS 8:POKE 710,0
20 ADRES=$8240
21 FOR I=0 TO 79
22 MOVE ADRES+I*10,DPEEK(88)+I*40,10
23 NEXT I
24 ADRES=ADRES+800:GET KEY
25 IF ADRES>=$9500 THEN GOTO 20
26 GOTO 21
Pokrótce opiszę co nasz program robi - proponuję go zapisać jako testgr.tb.
Linia 10 - włączenie 8-go trybu graficznego i ustawienie koloru na czarny
Linia 20 - ustawienie bazowego adresu naszej pierwszej grafiki
Linie 21-23 to pętla wyświetlająca nasze "bloki". Instrukcja MOVE przenosi nam dane spod adresu pomnożonego przez skok pętli i ilość bajtów, miejsce docelowe to początek ekranu i z każdą linią zmienia się o długość linii w bajtach, ostatni parametr to ilość bajtów do przeniesienia (szerokość naszego obrazka). Tutaj uwaga - proszę się pobawić linią 22 i na przykład dać jakieś wartości po dpeek(88), na przykład:
22 MOVE ADRES+I*10,DPEEK(88)+25+I*40,10
Określi nam to co do bajtu położenie obrazka na ekranie.
Linia 24 to zmiana adresu bazowego i czekanie na wciśnięcie klawisza
Linia 25 - jeżeli adres bazowy jest równy (dla bezpieczeństwa zawsze zaznaczam większy bądź równy) od adresu ostatniego obrazka - jedziemy na nowo
linia 26 - w przeciwnym wypadku - kolejny obrazek
O.K. Nasz "program" ma za zadanie po prostu testować naszą grafikę i ją wyświetlić, nic ponadto. Tylko tyle i aż tyle. Kończymy go klawiszem Break.
Wychodzimy do DOSu i usuwamy nasze zbędne pliki (*gif, *8, *d) - nie będą nam już potrzebne. Na dzisiaj tyle - o uwagi proszę w komentarzach. Wkrótce postaram się napisać kolejną część.
==============
edit: dodana jedna grafika
Post's attachmentsgr_block_cutter_manual_en.pdf 134.04 kb, liczba pobrań: 9 (od 2019-11-07)
gr_block_cutter_manual_pl_.pdf 134.64 kb, liczba pobrań: 10 (od 2019-11-07)
p1.png 5.18 kb, liczba pobrań: 3 (od 2019-11-07)
roboczy_big.7z 66.79 kb, liczba pobrań: 10 (od 2019-11-07)
roboczy_big_po.7z 72.51 kb, liczba pobrań: 10 (od 2019-11-07)
Tylko zalogowani mogą pobierać załączniki.
Sikor umarł...