1

Od dłuższego czasu chodziło mi po głowie delikatne poprawienie kilku programików, gierek.
Ponieważ ciężko znaleźć czas i motywację to postanowiłem utworzyć sobie wątek celem zdeterminowania, bo będzie mnie na pewno irytować upływający czas między wpisami.

Nie ukrywałem w innym wątku, spodobaly mi się dwa tytuły Sikora: Błękitne Nimfy i karcianka z dziewczynkami Black Jack. W obydwie grało mi się przyjemnie, notabene BN to chyba trzecia gra paragrafowa w jaką kiedykolwiek grałem.

Piersza gra ma kilka maluczkich błędów, pewne rzeczy możnaby delikatnie zmienić, ale najbardziej brak mi w niej grafiki.
Druga gierka ma wszystko ok, natmiast chciałbym dodać stopnie trudności oraz moduł samouczenia się przeciwniczki jako tryb najtrudniejszy.

Trzeci program to stara gierka w Basicu  Bitwa o Anglię. Przygotowałem dawno temu do niej różne plansze ale nigdy nie było czasu dokończyć. W zasadzie to tylko taka kosmetyka, facelifting jak współcześnie mawiają.

Czwarty temat to program linker do łaczenia skompilowanego kodu Turbo Basic XL z biblioteką RUNTIME2, zaczęty onegdaj na atari8.eu i nigdy nie skończony z racji znacznego pokomplikowania kodu i braku dokumentacji.

Pojawią się tu na pewno jakieś pytania z mojej strony, rad bym gdyby co mądrzejsi ode mnie zechcieli mi co nieco podpowiedzieć, bez obecnych w innych wątkach (nie ma co ukrywać) uszczypliwości, biorąc pod rozwagę moje niezbyt duże doświadczenie, za co z góry dziękuję.

Od razu wyjaśnię, że nie mam zamiaru naruszać jakichkolwiek praw autorów, pozostawiając należne im informacje o twórcach w programach tak ja było w oryginałach, dla mnie pozostanie satysfakcja z zabawy na małym Atari.

2

Runtime2 poprawił chyba Simius i jest w innym  wątku. Mi się marzy linker (nawet kilkuetapowy) który by dołączał tylko używane instrukcje TBXL... Ale to marzenie ściętej głowy.
Dzięki, że podobają się moje gry ;) TQBJ ma kod nad wyraz prosty, bo gra robiona była na szybko przed Wapniakiem.

Sikor umarł...

3

Też kiedyś chciałem taką bibliotekę dynamiczną. Zacząłem  coś takiego robić na pojedyńcze rozkazy. Nawet działało. Przekopałem dyskietki po Twoim wpisie, ale za chiny nie mogę odnaleźć, podejrzewam że nie mogło to być trudne skoro robiłem to za dzieciaka. Za to caly czas wykorzystuję krótki TBXL z którego korzystam pod Spartą. Przerabiałem, bo każdy blok zbędnego kodu dla magnetofonu był dobrodziejstwem.

Ogólnie taka biblioteka jest do zrobienia, ale lepiej byłoby napisać ją na nowo, ja już teraz nie pamiętam dlaczego, ale takie wnioski mi pozostały. Będzie czas to można poanalizować o co chodziło. Moja koncepcja była prosta i polegała na wycięciu potrzebnych bloków kodu i ponownym scaleniu w plik - banalne. Oczywiście nie dawało to więcej przestrzeni dla głównego programu, ale minimalizowało wielkość RUNTIME - przypominam, rzecz robiona pod magnetofon. Obecnie otoczony pamięciami masowymi wogóle nie zauważam czasu wgrywania, dlatego zastanawiam się też nad sensownością.

A jakie Ty masz potrzeby na taką bibliotekę ?

4

Więcej danych - tam, gdzie siedzi runtime możnaby upchnąć nieco danych, na przykład, grafika, muzyka, fonty...

Sikor umarł...

5

Aaa no to tak, ale to co robiłem z RUNTIME nie dawało takich możliwości, niemniej jak pisałem można by się nad tym pochylić.Wydaje mi się też że Simius powinien się wypowiedzieć w tym temacie i coś podpowiedzieć, przecież musiał deasemblować kod biblioteki, żeby naprawić błedy. Ja bym go wywował do tablicy, niech się trochę odpręży od nowego projektu :-)

6

Eeee, linker i runtime oryginalny to w którymś Happy Computer było przeca (sam kod TBXL też), ja na początek wyrzuciłbym zbędne dla mnie instrukcje (z których się właściwie nie korzysta - na przykłąd COM, ja zasadniczo korzystam wyłącznie z DIM, w sumie robiąc wersję plikową na pewno można zrezygnować z BLOAD, BRUN, itp. Nad listą trzeba by się dobrze zastanowić. Choć najlepsza sytuacja byłaby wtedy, jakby kompilator połączyć z runtimem i jakby dodawał same używane instrukcje (chodzi o specyficzne dla TBXL). Ale to już marzenie ściętej głowy...

Sikor umarł...

7 Ostatnio edytowany przez Cobol (2019-03-02 22:05:57)

Zgadzam się z Tobą, też chciałem kiedyś mieć swego rodzaju dynamiczny kompilator, dlatego przerabiałem RUNTIME, ale jak już wspomniałem z jakiegoś powodu to nie działało. Teraz przychodzi mi do głowy, że może chodziło o kluczowe i wspólne dla wielu procedur odwołania do bloków kodu, króre były nierekolowalne. Pewien nie jestem bo po prostu nie pamiętam, zostało mi tylko gdzieś w tyle głowy, że lepiej zrobić nowy.

Inna sprawa, że tutaj na forum jest korona programistów niskiego poziomu (lecz wysokiego kunsztu), którzy pewnie śmieją się z takiej błachostki, bo pewnie zrobiliby to za jednym posiedzeniem, czego Tobie, każdemu i sobie życzę. Byłby to projekt przyćmiewający wszystkie inne na lata do przodu.

Jest faktem, że z pewnych instrukcji TBXL nie korzysta się wcale, są też takie, z których należałoby skorzystać, ale programujący tego nie zrobił, bo np przesiadł się z Basca.To już generuje w umyśle dwie biblioteki RUNTIME, osobne dla dwóch opcji programu kompilującego kod, z czego pierwszy już na wstępie będzię dużo mniejszy. To akurat jest proste w implementacji, w kodzie nie będzie specyficznych dla TBXL tokenów. Druga rzecz, że jeśli zaistnieje taki kod dla kompilatora, to powinny się pojawić kolejne dwie opcje: tryb kompatybilności z Atari Basic lub pełna prędkość. Rozważając tryb pierwszy możemy A: wprowadzić pętle opóźniające, B: zamiast korzystać z procedur TBXL zastosować w bibliotce kod z Atari Basic.

To nam na wstępie daje kompilator działający w trybie zgodności z Atari Basic lub natywnie, z kontrolą wykorzystanych w programie słow kluczowych celem minimalizacji zajętego przez kod wyjściowy obszaru RAMU. Ładnie i grzecznie ze strony kompilatora byłoby go okazać. Do tego wyjściowo określić czy A: kod dla DOS, czy B: Sparta, C: pierwsze lub drugie z kompresją.

Co na to społeczność ?

- EDIT: jestem często w terenie i wtedy piszę na smartfonie, to jest nieprzyjemne, słownik często podstawia dziwne wyrazy, albo nie widzę, że jakaś litera nie wchodzi, albo co inne. Piszę o tym dlatego, że później widzę, że w moich postach są błędy literowe, czego zazwyczaj nie robię. To tylko zły wpływ technologii.

- EDIT2: test na moje potrzeby: "Diabeł za kontusz ułapił na takie dictum acerbum". Frazę wyszukuje w internecie Atari 130XE emulowany Altirrą od teraz. Kiedy znajdzie dam znać.

8 Ostatnio edytowany przez Cobol (2019-03-02 23:42:54)

Poniżej link do galerii ekranów z programów, o których mowa na wstępie wątku.

https://tufotki.pl/fNXJe

W trakcie:
Błękitne Nimfy - troszkę inne czcionki jeszcze w fazie zmian, propozycja ekranu startowego.
Black Jack - ekran startowy, czcionki, za niedługo na youtube: filmik z rozgrywką w trybie trudności numer 1.
Bitwa o Anglię - filmik youtube z przerobioną gierką w pierwszym etapie: ekrany, czcionka.
Linker 2.0 - filmik z obsługi linkera w wersji dla Sparta DOS X - wstępna poprawa kodu, bez kompilacji.

9 Ostatnio edytowany przez Cobol (2019-03-02 23:48:42)

No i patrz Pan: dysk co siedział w IDE2.0Plus przestał gadać. Jak nie urok to sraczka.
Trzeba odzyskiwać, ale spoko zajmie mi to góra ze 2 godziny. Akurat testowałem paragrafy BM.

https://tufotki.pl/fNXJe

10

Prawa tego wrednego Pana, co to wszystko psuje... ;P Na szczęście zgodnie z jego prawami jeśli uznamy niedziałającą rzecz za poprawną, wtedy zacznie źle niedziałać i się poprawi ;)

Sikor umarł...

11

Cobol napisał/a:

Linker 2.0 - filmik z obsługi linkera w wersji dla Sparta DOS X - wstępna poprawa kodu, bez kompilacji.

Linker można by spokojnie przerobić tak, by pobierał parametr z linii poleceń, a dalej można to zautomatyzować przez runext i sc. Ustawiasz kursor komandera na *.ctb i jako wynik działania programu otrzymujesz *.exe

Poszukam, bo miałem gdzieś źródła linkera. Chyba, że masz?

Kontakt: pin@usdk.pl

12

Nie mam, chętnie obejrzę, wydawało mo się,.że były na pigwie ale nie widzę. Ja to jakimś deasemlerem robiłem i kleiłem swoimi narzędziami.

@Sikor - a mi się takie przypomniało:

- Wnuczku jak się nazywa tem pan co mi tak wszystko chowa ?
- Alzheimer dziadku.

:-)

PS Odzyskaem dane, nie było trudno bo chodziło mi o testowane paragrafy czyli teksty.
Do mistrza KMK - mogę prosić w nowej Sparcie o polecenie sprawdzenia SMART?  Niech wynikowo powie, że Ok, albo nie jest Ok. Można będzie sobie umieścić w configu, chyba że się nie da, to może w Bios? Chyba że się nie da wogóle to nie ma tematu.

13

http://www.tmeyer.de/atari/hc_turbo-basic_compiler.pdf - oryginalny kompilator i runtime, listing chyba można znaleźć na atariwiki, ale... Nawet jeśli, jest to listing runtime-u przed poprawkami.
Btw: piszę PW do Simiusa, może ma jeszcze swój listing...

Sikor umarł...

14

Fajnie, dzięki, poprawka w Runtime2 to drobnostka, ja to mam gdzieś, zresztą było w gazecie jakiejś.

15

Simius nie ma, więc... Liczę na Ciebie ;)

Sikor umarł...

16

Ja natomiast poszukuję linkera i jest słabo. Tzn jego wersji niekompilowanej którą miałem, no i wsysło. Jest pewnie na starym moim atarkowym HDD, tylko do tego musiałbym mieć sprawne KMK/JŻ w pierwszej wersji. A ten interface mi niestety zdechł i nie wiem co mu dolega.

Kontakt: pin@usdk.pl

17

Ja natomiast poszukuję linkera i jest słabo. Tzn jego wersji niekompilowanej którą miałem, no i wsysło. Jest pewnie na starym moim atarkowym HDD, tylko do tego musiałbym mieć sprawne KMK/JŻ w pierwszej wersji. A ten interface mi niestety zdechł i nie wiem co mu dolega.

Kontakt: pin@usdk.pl

18

http://www.atari.org.pl/forum/viewtopic.php?id=11017 - dzięki Mikerowi i naszemu forum odnalezione. Dzięki, Miker!

Sikor umarł...

19

dzięki! Jest nieskompilowany linker. Trza się tym pobawić teraz.

Kontakt: pin@usdk.pl

20

nr 10/88 bajtka - poprawki Simiusa z opisem (listing)

Sikor umarł...

21

https://tufotki.pl/fNXJe

Nieskompilowanym linkerem zlinkowałem skompilowanego linkera :-)

22

Poprosimy plik do testów ;P

Sikor umarł...

23

Coś nowego w linkerze? Ja dziś siadam i przerabiam to tak, by tylko z linii poleceń była możliwość podania nazwy pliku do zlinkowania.

Kontakt: pin@usdk.pl

24

@pin, looknij na fotki.

Sikor umarł...

25 Ostatnio edytowany przez Smaku (2019-03-08 14:15:43)

Nie wiem, czy nie przeszkadzam w temacie, bo mogę nie rozumieć tematu, ale mój pomysł w kwestii poprawiania, to akurat byłby do "Błękitnych Nimf", bo z jakiejś okazji w innych tematach przeglądałem tę grę. I teraz czytając posty niniejszego tematu zadziwiło mnie podejście do poprawiania: jakieś runtime, linkery, etc. - i przestałem rozumieć temat. Myślałem, że chodzi o źródło gry w Turbo BASIC XL, czy w czymkolwiek to jest, obojętne, oczywiste, jednak byłoby to poprawienie kilku linii w kodzie źródłowym i skompilowanie pięknej, gotowej, poprawionej gry i gotowe, oczywiste.

I teraz nie bardzo wiem, czy rozumiem temat, bo po tylu przygotowaniach 'technicznych' nie związanych z kodem gry, zupełnie przeniosło mnie poza temat, hmm... jak można rozumieć poprawianie gry linkerami, itp.?