Hej!
Nie znałem tej metody, gdy bawiłem się w moje "fly dots", robiłem to metodą dość prymitywną i brutalną... smarowałem wszystko co się dało na ekranie graficznym... czyściłem ekran również metodą "brute force" :P ... pierwsze próby bez żadnych optymalizacji o dziwo "wyrabiały się w ramce", jednak efekt wizualny jaki osiągnąłem nie zachwycał mnie zbytnio... sprawę więc szybko porzuciłem nie mając pomysłu jak to wykorzystać... niby chciałem zrobić z tego scroll-a... zamieniając po drodze grafikę na "fonty", ale jakoś chęci i motywacji zabrakło... wspominajac to wszystko, zajrzałem nawet do bardzo starych dyskietek z QA, które o dziwo się przeczytały... więc pozwalam sobie załączyć te wypociny... jednak darujcie zanęcanie się nade mną za "jakość" i "szybkość" tego kodu ;-) to naprawdę stary kod (z czasów Code3, czyli wczesne lata '90), do tego wszystkiego jestem prawie pewien że miałem jeszcze ten sam kod właśnie wzbogacony o scrolling (na grafice) zamiast "samych latających kropek", ale nie mogę tego znaleźć... tak czy inaczej można to napisać o wiele efektywniej, nawet wykorzystując ekran graficzny :) więc jeżeli ktoś zechce sobie zrobić z tego oldschool-owy scroll, czemu nie :]
Format QA, z użyciem "dta c' ' oraz Atari control-characters", a więc skompiluje to chyba tylko QA. A może ktoś popełnił konwerter? ;) Do obejrzenia źródeł na PC w formacie ATASCII proponuję użyć: Memopad ( http://joyfulcoder.com/memopad/ )
Tego typu "concept idea" czy inne efekty w tamtych czasach pisałem i testowałem bezpośrednio pod QA, asemblując do pamięci oraz uruchamiając z poziomu QA. W tym wypadku wystarczy zmienić OPT na %00010101 i do tego ustawić "MemHi" na $A000 i RUN na $480. Po czym wykonujemy assembly a następnie RUN... efekt uruchamia się bez problemu bezpośrednio z poziomu QA.
Na koniec pliki o których była mowa wyżej:
1) plik ATR zawierający DOS II+, QA oraz źródła i plik .OBJ dostępne tutaj: fly_dots.atr
2) źródło do wglądu (format QA, ATASCII -> na PeCe użyć MemoPad R9 do podglądu) tutaj: fly_dots.asm
3) do kompletu jak ktoś na szybko chce sobie to uruchomić pod emulatorem plik XEX tutaj: fly_dots.xex
ps1) koncepcja względnej szybkości tego efektu polegała jedynie na tym że de-facto nie tam tam żadnej procedury PLOT, a stawiania pixela odbywa się jedynie przy pomocy jednego STA. Założenie jest takie że zawsze zapalony jest tylko jeden bit w obrębie bajtu i ruch punktu odbywa się jedynie w obrębie tego bajtu, w zależności od wartości zapisywanej na ekran (ustawiony tylko jeden z bitów) zmieniamy pozycję poziomą pixela z zakresie 0..7. Ruch w pionie odbywa sie na podstawie tablic adresów. A rysowanie każdego pixela z osobna polega za zapisywaniu innego bajtu z wykorzystaniem trybu indeksowego sta (adr),y gdzie rej. Y zawiera tak naprawdę nr. bajtu (w tym wypadku również pixela). Całości dopełniają dwie pre-kalkulowane wcześniej (Turbo Basic XL) tablice sinusów, dzięki którym uzyskujemy ciekawy wizualnie kształt poruszania się pixeli. To tak w wielkim uproszczeniu.
ps2) poszukam jeszcze jakichś źródeł logo-scrolla z użyciem ring-buffer. Jak coś sensownego znajdę to zamieszczę również tutaj.
