1

Temat: plemnik

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.

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

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

2

Odp: plemnik

A wersja jako demko a nie wygaszacz ekranu?

3

Odp: plemnik

@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

Odp: plemnik

@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

Odp: plemnik

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

Odp: plemnik

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 :)

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

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

7

Odp: plemnik

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

Odp: plemnik

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

9

Odp: plemnik

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.

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

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

10

Odp: plemnik

... 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" :)

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

11

Odp: plemnik

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.

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

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

12

Odp: plemnik

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

Odp: plemnik

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?

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

14

Odp: plemnik

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

Odp: plemnik

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

16

Odp: plemnik

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

Odp: plemnik

Pin napisał/a:

ten ENV, to za co w zasadzie odpowiada?

Dowiesz się, kiedy zobaczysz error 183 ;P

KMK
? HEX$(6670358)

18

Odp: plemnik

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

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

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

19

Odp: plemnik

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

20

Odp: plemnik

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

Odp: plemnik

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

EDIT:

mały bug rep na priv.

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

22

Odp: plemnik

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

23

Odp: plemnik

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

Odp: plemnik

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

Odp: plemnik

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 ;)

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info