atarionline.pl Turbo Basic: Kilka kwestji... - 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:
       
      CommentAuthorzilq
    • CommentTime13 Nov 2008
     
    Witam

    Mam kilka pytań związanych z konkursem "Napisze Se"

    0. (podstawowe) czy można korzystać z zewnętrznego oprogramowania, np. Ramdysku uruchamianego przed wczytaniem gry?

    1. Skąd dorwać kompilator do TB?

    2. Czym się różni TB v1.5 od v2? Czy kompilator ma jakieś znaczenie dla obu przypadków?

    3. Ramdysk i TurboBasic.
    Z tego co pamiętam to, TB wykorzystywał obszar "wymiany" (banków :D) co sprawiało problemy z ramdyskiem /poprawcie jeśli się mylę, czas robi swoje :/
    Czy istnieje jakiś mechanizm, by udostępnić (ewentualną) dodatkową pamięć w TB?

    4. Jak wykryć ramdysk? :D

    (wybaczcie styl)
    • 2:
       
      CommentAuthorsikor
    • CommentTime14 Nov 2008
     
    0. Jak zrobisz to bez pomocy assemblera - to pewnie tak.
    1. Proszę bardzo: sikor_soft.w.interia.pl/atr/turbo_bas_dsk.7z - masz tam turbo basic, compiler, linker i programik do konwersji gifów. Swoją stroną trza to też podesłać KAZ-owi.
    2. NIe wiem, nie sprawdzałem. Kompilator powoduje przetworzenie kodu z Basica w kod maszynowy, więc program działa potem znacznie szybciej (jest wykonywany, a nie interpretowany). Do wczytania i uruchomienia skompilowanego kodu potrzebna jest jeszcze biblioteka, więc trzeba skorzystać jeszcze z linkera (zawarty na obrazie), ewentualnie wczytuwać przez BRUN w Turbo Basicu.
    3. Bez kodu maszynowego - nie wiem, nie korzystałem.
    4. To ci robi DOS, nie język programowania. Chyba, że nie zrozumiałem pytania ;)
    Powodzenia.
    • 3:
       
      CommentAuthorzilq
    • CommentTime14 Nov 2008
     
    To raczej jestem w kropce, jeśli chodzi o ewentualne wykorzystanie dodatkowej pamięci w TB? :/ (uwzględniając warunek konkursu - NO ASM)

    Dzięki bardzo za kompilator :)
    A co do 4-tego pytania. To już wiem (mniej więcej :] ) jakby to rozwiązać. A chodziło mi o sprawdzenie z poziomu programu w TB, czy istnieje ramdysk, aby go ewentualnie wykorzystać.
    • 4:
       
      CommentAuthorsikor
    • CommentTime14 Nov 2008
     
    Proszę bardzo ;) Powodzonka w konkursie ;)
    • 5:
       
      CommentAuthorKaz
    • CommentTime23 Nov 2008
     
    ad 1. Mozna korzystac z cudzego programu, ale nalezy wyraznie napisac - co sie wykorzystalo. No i dopoki nie jest to assembler.
    • 6:
       
      CommentAuthorlarek
    • CommentTime23 Nov 2008 zmieniony
     
    zilq napisał:
    "3. Ramdysk i TurboBasic.
    Z tego co pamiętam to, TB wykorzystywał obszar "wymiany" (banków :D) co sprawiało problemy z ramdyskiem /poprawcie jeśli się mylę, czas robi swoje :/
    Czy istnieje jakiś mechanizm, by udostępnić (ewentualną) dodatkową pamięć w TB?

    4. Jak wykryć ramdysk? :D"

    Część kodu TBXL jest umieszczona w pamięci "pod" ROM komputerów XL/XE (Atari 400/800 nie mają tam żadnej pamięci i dlatego nie mogą działać z TBXL). Z tego względu nie będzie można założyć ramdysku w tym obszarze. Czyli w komputerach z 64KB RAM nie można pogodzić TBXL i ramdysku. Co innego jednak w komputerach z większą ilością pamięci. Należy pamiętać tylko o tym, żeby ramdysk skonfigurować tak, aby nie zajmował pamięci RAM przykrytej ROM.

    Najczęściej ramdysk jest zakładany jako stacja nr 8. Jeśli sam skonfigurujesz odpowiednio DOS-a, to będziesz wiedział, jaki odpowiada jej numer. Aby program potrafił sprawdzić, czy w komputerze udało się założyć ramdysk (czyli czy posiada on dużo pamięci) wystarczy spróbować coś odczytać z takiego dysku. Można to zrobić tak (dla D8:):

    10 TRAP #ERR
    20 OPEN #1,6,0,"D8:*.*":CLOSE #1
    30 ?"Jest ramdysk!": TRAP 40000: GO#DALEJ
    40 #ERR:?"Brak ramdysku":END
    50 #DALEJ
    60 ...

    Przy próbie odczytu katalogu ze stacji nr 8 (lub inny numer w przypadku innej konfiguracji ramdysku) wystąpi błąd lub nie. Jeśli nie wystąpi, to znaczy, że urządzenie nr 8 istnieje - czyli jest ramdysk. Jeżeli wystapi błąd (przechwycimy go dzięki instrukcji TRAP), to znaczy, że nie ma urządzenia nr 8, czyli nie ma ramdysku.
    • 7:
       
      CommentAuthorzilq
    • CommentTime3 Dec 2008
     
    Heh...
    Jednak "czas" robi swoje, wiedziałem, że dzwoni, ale nie wiedziałem dokładnie gdzie. Fakt, w przypadku 64KB RAM taki problem istniał.
    Co do sprawdzania istnienia ramdysku, dokładnie o tym samym pomyślałem ]:->

    Jednak w dalszym ciągu nie wiem, czy handler ramdysku będzie traktowany jako assembler? Proszę, oświećcie mnie w tej kwestii jednoznacznie. (przecież nie napisze handlera w TB :| ;) )
    • 8:
       
      CommentAuthorlarek
    • CommentTime3 Dec 2008
     
    Z tym pytaniem, to już trzeba uderzyć do jurorów konkursu, czyli Xxl'a i Kaza.
    Moim zdaniem asembler to asembler i nie ważne do czego zostanie wykorzystany. Jest zakaz i koniec.
    Jednak ramdysk po odpowiednim sformatowaniu przez DOS działa, jak stacja dysków. Zapis i odczyt wykonywany jest przez system, więc ekstra sterownik nie będzie potrzebny. No, chyba że przewidujesz jakieś specjalne wykorzystanie tego ramdysku. Zawsze możesz napisać grę poza konkursem. Dobra gra zawsze mile widziana :-)
    • 9:
       
      CommentAuthorzilq
    • CommentTime3 Dec 2008
     
    Ramdysk zawsze szybszy niż dostęp do dyskietki. Po za tym (według mnie) jest to dość prosty i wygodny sposób na wykorzystanie dodatkowej pamięci w językach wysokiego poziomu na Atari.

    Na razie, nieoficjalnie powiem, że gra powstanie, tylko nie wiem, czy zdążę do końca konkursu. Być może niebawem, zademonstruje jakieś screeny =] Trzeba czekać...

    A tym czasem, dzięki za informacje. Wracam do pisania gry ]:->
    • 10:
       
      CommentAuthorKaz
    • CommentTime6 Apr 2012
     
    Poniewaz ostatnio sporo osob na forum pisuje cos - a to w Basicu, a to w Turbo Basicu, to moze tak konkursik na gre? Mniej wiecej miesiac czasu, mozna dokonczyc rozpoczety projekt. Gry bylyby pokazane takze na Grzybsoniadzie, ktora akurat jest za miesiac... ktos z potencjalnych autorow jest za?