atarionline.pl BRUN - TBXL - newbe question - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1:
       
      CommentAuthorxeen
    • CommentTime25 Aug 2010 zmieniony
     
    absolutnie banalne (chyba) pytanie,

    mam dowolny program o nazwie X w tbxl, może być
    np. 10 ? "sdfsdf"
    kompiluję go kompilatorem, linkuję linkerem z runtimem i jako wynikowy program mam X.COM. jeżeli uruchamiam go z pod DOS'a wszytsko jest ok. jeżeli uruchamiam go za pomocą komendy BRUN w dowolnym programie w TBXL mam "zawieszkę". Dla programików nie powstałych jako kompilacja+linkowanie z runtime'em tbxl komenda działa. Dlaczego?
    z góry dziękuję za pomoc.
    • 2:
       
      CommentAuthorPecus
    • CommentTime26 Aug 2010
     
    Prawdopodobnie biblioteki, które linkujesz ze skompilowanym programem zajmują w pamięci RAM to samo miejsce co interpreter Turbo Basica XL. W związku z tym zamazują w czasie ładowania kod interpretera i stąd zawsze w takiej sytuacji będziesz miał zwis.
    • 3:
       
      CommentAuthorxeen
    • CommentTime26 Aug 2010
     
    dzięki
    ale ja wywołuje skompilowany i zlinkowany program X, z inego skompilowanego i zlinkowanego programu - nie potrzebuję zatem interpretera w pamięci. przypuścimy że linkuję obiekt CTB tylko z runtime.com - nie ma żadnych innych bibliotek. Dostaje wtedy strasznie dziwny błąd - ERROR 130 in ZEILE 65536 (?!) - taki TBXLOWY klimat - tylko skąd ten błąd w takiej dziwnej linii. Co więcej ponowienie (czyli komenda RUN) właściwie działa poprawnie i zgodnie z oczekiwaniami.
    Tak jakby program wywoływany się zawieszał, a nie program z którego coś wołam.
    • 4:
       
      CommentAuthorlarek
    • CommentTime26 Aug 2010
     
    1.Bibliotekę wczytujesz tylko raz, z pierwszym uruchamianym programem. Kolejne programy w TBXL wystarczy tylko skompilować. Nie trzeba i wręcz nie można ich znów łączyć z bibioteką RUNTIME! Bo po co? Wystarczy, że raz została wczytana.
    2.Kolejne skompilowane programy wczytujemy instrukcją RUN"D:nazwa.CTB", a nie BRUN! Ta ostatnia służy do wczytania i uruchomienia pliku dosowego, a plik CTB takim nie jest!
    3.Nie ma potrzeby w ogóle łączyć biblioteki z programem. Plik RUNTIME.COM ma wbudowany mechanizm automatycznego odczytu skompilowanego programu CTB! Wystarczy, że nasz program nazwiesz "AUTORUN.CTB". Biblioteka też może byc uruchomiona automatyczne (w DOS 2.5 trzeba zmienić nazwę na AUTORUN.SYS, w DOS II wykonać polecenie JOB RUNTIME.COM, a w MyDOS zmienić rozszerzenie na *.AR0) i wtedy wszystko ładnie się po kolei uruchamia. Linkowanie programu z biblioteką ma sens, gdy chcemy mieć program w jednym pliku. Gdy i tak całość się doczytuje, to linkowanie biblioteki traci sens.
    • 5:
       
      CommentAuthorxeen
    • CommentTime26 Aug 2010
     
    dzięki, larek

    tak, oczywiście masz rację - linkowanie kolejnych części to strata np. miejsca na dysku i mija się z celem,
    ale w ogólności sytuacja może być inna.
    niekoniecznie zawsze możesz mieć CTB, możesz mieć od innego dostawcy zlinkowany program i z powodu x chcesz po porstu użyć BRUN. nie rozumiem właśnie dlaczego wręcz nie można tego robić i powoduje to tecnicznie problemy.