1 Ostatnio edytowany przez mono (2013-10-23 10:58:18)

Odkurzyłem nieco stary temat - jest to wygaszacz ekranu o nazwie WORM (jakoś się wstydziłem go nazwać jak człowiek wtedy - po imieniu) a jest to implementacja znanego dzięki JBW tzw. "Plemnika".
Poprawiłem instalację - teraz sprawdza ograniczenia ANTICa i poprawnie relokuje dlistę i ekran.
Przy okazji powstała też wersja dla SDX.
A tu wersja dla Atari DOS.
Wiele radości z użytkowania życzy autor.

P.S. Tradycyjnie bugs & feature requests are welcome.

Edit: Zaktualiowałem linki.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

2

A wersja jako demko a nie wygaszacz ekranu?

3

@mono: Fajne. Źródełka będą ?

STYMulator JIL ST YM2149 mjuz:k @ gnu/linux
SIUP (SIo2Usb2Pc) - SIO2PC USB Edition
PIN ready logo
3M / InD: ... na kasetach były zabezpieczenia w postaci tzw. "mikropierdnięcie" ...

4

@grzeniu: Będą.
@xan: Aby zobaczyć demko należy wykonać POKE 77,128 ;P

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

5

A że tak zapytam, bo używam? Co konkretnie poprawiłeś?
Z błędów w oryginalnym wygaszaczu - zauważyłem tylko, że przestaje działać robak (i pojawia się tradycyjna zmiana kolorów) po wpisaniu 'TD ON' (potem TD OFF już nie ma znaczenia).

6 Ostatnio edytowany przez mono (2011-11-25 18:08:33)

Sam kod nie został zmieniony - działa jak poprzednio (więc pewnie ten błąd się pojawi - sprawdzę to tak w ogóle, bo rzadko w SDX używam TD - dzięki za requesta). Poprawiona została instalacja. Poprzednio jeśli dlist lub ekran wypadał na granicy zastrzeżonej przez ANTIC (4k dla ekranu i 1k dla dlist), to dlist/ekran się oczywiście psuł. Teraz powinno być ok (testowałem :D).

Edit: Miło mi powitać użytkownika mojego programu :)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

7

Będzie chyba potrzebna poprawka TD, gdyż zamiast przedłużać/podmieniać i przywracać wektor VBLKD zwyczajnie go zapomina. Stąd część plemnika działająca na VBLKI (odliczanie 3 minut) pracuje poprawnie, a malowanie obrazu działające na VBLKD już nie.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

8

coś mi to nie działa. Czy robię coś źle?

... a - odpalam to w trybie 80 VBXE, może po prostu tak nie zadziała :P

Kontakt: pin@usdk.pl

9 Ostatnio edytowany przez mono (2013-10-23 10:56:37)

No z VBXE nie działa :) W kolejnej wersji będzie wyłączanie XDLISTy.

Edit: A w ogóle to od jakiegoś czasu jest dostępna wersja 1.06.
Z /D ilość_sekund podaje się okres bezczynności ale tylko w SDX.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

10

... da się zrobić z tego sterownik *.sys dla SDX? Pytanie numer dwa, to czy da się kod wywalić do ext ram gdyż plemnik podnosi memlo, że tak powiem - "dość znacznie" :)

Kontakt: pin@usdk.pl

11 Ostatnio edytowany przez mono (2011-12-27 21:23:01)

No kod by można wsadzić (369 bajtów). Bo co do ekranu (200 bajtów) i dlisty (86 bajtów) to już nie ma jak zagwarantować, żeby zawsze włączony był ten sam bank extramu (dla ANTICa).

Edit: Co do sterownika to nie wiem - możliwe, że wystarczy zmienić .COM na .SYS, ale to przecież nie jest sterownik tylko jakaś popierdółka.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

12

Wersja 1.07:
* część w pamięci głównej zajmuje minimum 357 bajtów (granica ruchoma ze względu na ograniczenia w lokacji displaylisty i ekranu) z czego ekran to 200 bajtów, dlista to 86 bajtów, a program to 71 bajtów,
* część w pamięci ext zajmuje dokładnie 313 bajtów,
* dlist i screen układane są w najlepszej optymalnej kolejności i z uszanowaniem ograniczeń ANTICa,
* jest jeszcze jeden fjuczer związany z VBXE, ale na razie o tym sza.
Smacznego i wesołych świąt.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

13 Ostatnio edytowany przez Pin (2013-12-27 21:34:08)

To mi nie działa ;)

To znaczy w warunkach np. takich (czyli pierwsze z brzegu ;) ): tryb 80 znakowy vbxe, plemnik ustawiony na 3 sekundy np. Odpalony spod Sparta Commandera. Po jakiejś chwili zauważyłem go na ramce, ekran 80-znakowy nie został wygaszony.

Sprawa numer dwa, to chciałem sobie sprawdzić w czasie działania worma /mem/ ... no i wyświetlanie stanu pamięci zakończone zostało na:

....
....
....
62 banks


.. i zwis prosty, męski. Po resecie, wisi nadal.

No i odnoszę wrażenie, że WORM po ponownym przypadkowym uruchomieniu kolejny raz podnosi MemLo. Nie mógłby sprawdzać przy uruchomieniu, czy nie został czasem wcześniej zainstalowany?

Kontakt: pin@usdk.pl

14

Zrobię.

Zauważono, że ENV.SYS przeszkadza bardzo i nie wiedzieć czemu powoduje zwis plemnika. Dochodzenie w toku...

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

15

ten ENV, to za co w zasadzie odpowiada? ... bo widziałem to w konfigu, tylko wyłączyłem z jakiegoś powodu ;)-

Kontakt: pin@usdk.pl

16

Manual rzecze, jakoby ENV.SYS pozwalał na zdefiniowanie większej ilości zmiennych systemowych, których łączny rozmiar przekracza 256 bajtów (jako zakłada sam SDX), trzyma je albowiem w XRAMie.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

17

Pin napisał/a:

ten ENV, to za co w zasadzie odpowiada?

Dowiesz się, kiedy zobaczysz error 183 ;P

KMK
? HEX$(6670358)

18 Ostatnio edytowany przez mono (2014-01-07 12:36:08)

Dzięki pomocy drac030 okazało się, że problem nie leżał po stronie ENV.SYS, a na styku człowiek-mads.
Wersja 1.08 dostępna, a wraz z nią:
* wykrywanie czy plemnik już zainstalowany (poprzez symbol WORM) opatrzone stosownym komunikatem,
* możliwość zmiany opóźnienia w locie za pomocą:

POKE WORM,V

* /F pozwala na wymuszenie instalacji bez względu na ilość pamięci, którą trzeba zaalokować nadmiarowo aby spełnić wymagania ANTICa (program bez tego przełącznika zainstaluje się wyłącznie kiedy nie trzeba alokować nadmiarowo pamięci - w przeciwnym wypadku wypisze komunikat i wróci do DOSa).
Wartość wstawiana do komórki wskazywanej symbolem WORM obliczona może być ze wzoru:

V=128-D*TV/256

gdzie
V - wartość wpisywana do WORM
D - opóźnienie liczone w sekundach
TV - ilość ramek przypadających na sekundę w danym systemie TV (50=PAL, 60=NTSC)

Smacznego

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

19

:) - po lekturze manuala dopisałem ENV do konfigów :D

Kontakt: pin@usdk.pl

20

Wersja 1.09 (.zip, .atr, .arc, .atr.bz2).
Dodałem obsługę sterowników _RAWCON (S_VBXE.SYS, RC_GR8.SYS) więc poprawnie działa już z VBXE.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

21 Ostatnio edytowany przez Pin (2015-01-12 19:47:38)

no to taką wersję można zainstalować ;)

EDIT:

mały bug rep na priv.

Kontakt: pin@usdk.pl

22

A jakby tak wersję, żeby plemnior latał duchem przed ekranem ? Byłoby fajne dla SC.

23

Byłoby. Obecnie 286 bajtów zajmuje dlist i ekran. Kod w pamięci bazowej to 98 bajtów, w pamięci dodatkowej 313. DLPTR ma rejestr cień, GTIACTL i DMACTL też.
Gdyby wykorzystać sprajty pojawia się problem odtwarzania wartości rejestrów GTIA bo nie mają cieni w systemie dzięki czemu może to kolidować z innymi programami (wygaszacz działa przecież niejako "w tle"). Poza tym wygaszacz ma wygaszać obraz :) a nie malować niewiadomoco :] Obszar sprajtów w najmniejszej konfiguracji to $280 bajtów, które powinny być w podstawowym RAMie (ext nie da się użyć bo RAMBO nie pozwala na oddzielne adresowanie ANTICa i CPU, poza tym nie można zagwarantować, że na całym ekranie będzie włączony odpowiedni bank pamięci). Można zapisywać GRAFPx/M ręcznie, ale trzeba synchronizować się z rastrem co zabierze czas CPU. Jeśli użyjesz DLI, to trzeba analizować displaylistę i ją odpowiednio modyfikować. Same problemy.
Można zrobić wygaszacz dla VBXE - wtedy praktycznie cały kod może być ulokowany w pamięci VBXE (nie mówiąc o grafice).

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

24

A to mam jeszcze pomysł na inny pakiecik: loader wygaszacza wspólny, a właściwy wygaszacz jako osobna binarka. Loader można by po staremu ładować, np:

scr.com /D second /F /S nazwa_wygaszacza.scr

gdzie pliki *.scr to różnego rodzaju wygaszacze.

25

dobra, obecna wersja bangla na Rapidusie po aktualizacji DracOS dla 65c816. Jest jeszcze pewna kwestia nad którą się zastanawiam, ale muszę ustalić warunki zaistnienia pewnej przypadłości ;)

Kontakt: pin@usdk.pl