1

Temat: TBXL - linker.

Ano właśnie. Miałem onegdaj linkera do TurboBasic XL w wersji niekompilowanej. Zakichało mi się lata temu sprowadzić to do postaci wykonywalnej ... no i okazało się, że aktualnie nie mam źródła tego programu. A przydało by się niezmiernie.

Wydaje mi się, że linker popełnił....

Simius, to twoje dzieło? :)

Kontakt: pin@usdk.pl

2

Odp: TBXL - linker.

Linker popełnił Fran(e)k Ostrowski, autor turbo basica. Simius jeno runtime poprawił.
Poszukaj na kazowni w bibliotece - to było wydrukowane jako artykuł do któregoś niemiaszkowego magazynu.

Sikor umarł...

3

Odp: TBXL - linker.

Ojjj, chyba w którymś Bajtku był linker (i chyba własnie autorstwa Simiusa), tudzież patch do runtime tegoż. Nie pomnę w tej chwili numeru, ale to wydaje mi się właściwym tropem.

I Ty zostaniesz big endianem...

4

Odp: TBXL - linker.

Dobra, masz linka na atariage sobie leży: http://www.atariage.com/forums/index.ph … _id=266685

Sikor umarł...

5

Odp: TBXL - linker.

... Dzięki Sajkor. O to właśnie chodziło!

Stwierdziłem po prostu, że trzeba będzie pogrzebać w linkerze i uprościć sposób jego działania.

Kontakt: pin@usdk.pl

6

Odp: TBXL - linker.

Jak uprościsz - daj znać ;)

Sikor umarł...

7

Odp: TBXL - linker.

nie będziesz raczej zainteresowany taką funkcjonalnością ;)

Kontakt: pin@usdk.pl

8

Odp: TBXL - linker.

no nie wiem, co pewnie chodzi o Spartę... Chyba, że wersję z rysunkiem pod XBios szykujesz? :)

Sikor umarł...

9

Odp: TBXL - linker.

nieee - po prostu wkurzające jest wieczne wpisywanie pierdół do linkera, więc zakładam że ma to wyglądać tak.

* ustawiasz kursor w SC na pliku *.CTB
* naciskasz return. Koniec ;)

Co mam sprawdzone na chwilę obecną. Linker się bez problemu kompiluje, więc sam w sobie może być binarką pod dos. W tym przypadku potrzeba jest taka, by można mu było z linii poleceń, czy poprzez runext SDX przekazać parametry .. i to się okazało prostym i działającym rozwiązaniem. Klepiąc więc return w komanderze na pliku ze skompilowanym programem system kojarzy, ze należy to przekazać do linkera, ten pobiera parametr i na tej zasadzie określa plik źródłowy i docelowy. Plik źródłowy może być gdziekolwiek w zakresie od D1: do D15: w dowolnym podkatalogu.

Skutkiem ubocznym testów jest program do podglądania (fontów) pod spartę x, bujam się tylko z "Programmende: Dos, Run(m) oder Load". Ktoś wie jak to obejść, by wychodząc do dos ze skompilowanego programu ten durny komunikat się nie wyświetlał? Sorry za głupie pytanie, ale nie pisałem nic chyba od 8 lat i uczę się na nowo w zasadzie :D

Kontakt: pin@usdk.pl

10

Odp: TBXL - linker.

Ale przeca ja od lat używam skompilowanej wersji linkera, więc nie wiem, po co piszesz, że się kompiluje?

Sikor umarł...

11

Odp: TBXL - linker.

piszę przy okazji, bo wystarczy w większym programie zrobić coś takiego, jak w bodaj Kolony i z tą kompilacją to niekoniecznie musi być prosta sprawa.

Kontakt: pin@usdk.pl

12

Odp: TBXL - linker.

Jest bardzo prosta. Zasadniczo wszystkie moje ostatnie programy są w skompilowanym TB ;)

Sikor umarł...

13

Odp: TBXL - linker.

oczywiście :)

To weź skompiluj stare Kolony (mam nadzieję, że to było to), to stawiam na najbliższym party czteropak ;)

Kontakt: pin@usdk.pl

14

Odp: TBXL - linker.

Pin napisał/a:

To weź skompiluj stare Kolony (mam nadzieję, że to było to)..

A coś jest nie tak z wersją 2 xex z Kazowni?

Ostatnio edytowany przez Sikor (2013-03-13 12:59:50)

Sikor umarł...

15

Odp: TBXL - linker.

a tego, to nie powiedziałem.

Kontakt: pin@usdk.pl

16

Odp: TBXL - linker.

Sikor napisał/a:
Pin napisał/a:

To weź skompiluj stare Kolony (mam nadzieję, że to było to)..

A coś jest nie tak z wersją 2 xex z Kazowni?

Jest: nie jest skompilowana!

17

Odp: TBXL - linker.

To poproszę o właściwą wersję do skompilowania, w wolnej chwili w to popatrzę. Znaczy się - w xexie jest zrzut pamięci?

Sikor umarł...

18

Odp: TBXL - linker.

Po uruchomieniu naciśnij CTRL+3 i wpisz LIST :)
Program po kompilacji tak się nie zachowuje.

A właściwa to chyba jest wersja ATR v1.

Edit:
No dobrze, ułatwię Wam zadanie :)
Kolony nie da się skompilować z racji specyficznej budowy programu (np. skoki do linii o numerze wyliczanym w programie bądź też podawanie tych numerów w zmiennych).
No, ale to już było wiadomo od bardzo dawna...

Ostatnio edytowany przez larek (2013-03-13 19:07:04)

19

Odp: TBXL - linker.

aha
Za mały bufor w TBC, ale pierwszy błąd jest:

1285   IF BAZA1(GR,L1)=L0 THEN P2=L0:GOTO -1580

Zły zakres - wskazuje na linię ujemną, co od razu wychwytuje kompilator.
Za to intro (część 1)mam już skompilowaną bezproblemowo.
Aha, stąd problem ;) Już wyjaśniłeś ;)

Ostatnio edytowany przez Sikor (2013-03-13 19:15:04)

Sikor umarł...

20

Odp: TBXL - linker.

larek napisał/a:

Kolony nie da się skompilować z racji specyficznej budowy programu (np. skoki do linii o numerze wyliczanym w programie bądź też podawanie tych numerów w zmiennych).

Sikor. O to mi właśnie chodziło, bo byłem przekonany na 99% że tak właśnie jest .. a ponieważ nie mogę tego teraz sprawdzić to wolałem o tym nie pisać. No i Larek mnie wyręczył ;)

Kontakt: pin@usdk.pl

21

Odp: TBXL - linker.

to się da obejść - ale zabija długość kodu. W kompilator się nie mieści :/ Trzeba by mieć źródła dokompilatora, a tych nie mam.

Sikor umarł...

22

Odp: TBXL - linker.

Tak w sumie, to ten ciulowy kompilator można by "zeźródlić" wreszcie i nieco poprawić.

Kontakt: pin@usdk.pl

23

Odp: TBXL - linker.

Pin: do dzieła!
Przy okazji jeśli faktycznie jest zamieszanie z procedurami FP to można i samego TBXL poprawić. ;)

24

Odp: TBXL - linker.

Są, bo TBXL nie działa do końca poprawnie na modyfikowanym o szybkie FP osie, a szkoda - bo jeśli korzysta z procedur systemowych to mógłby niektóre obliczenia przeprowadzić znacznie szybciej:

Tu jest opis FP i FastCHIP:

http://atariki.krap.pl/index.php/Pakiet_matematyczny

Kontakt: pin@usdk.pl

25

Odp: TBXL - linker.

Linker robi jedno fopa: dodany przez niego kod, oprócz różnych bez wątpienia pożytecznych rzeczy, przestawia też wektor DOSINI ($0c/d) tak żeby wskazywał adres $207D (początek skompilowanego programu).

Po pierwsze: po co?

Po drugie: wartość tego wektora nie jest przywracana po zakończeniu programu, skutkiem czego wciśnięcie RESET zawiesza komp.

KMK
? HEX$(6670358)