atarionline.pl Nocne BASIC'owanie - 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:
       
      CommentAuthorgolem14
    • CommentTime12 Mar 2009 zmieniony
     
    Ponieważ nieśmiało zabieram się za moją gierkę pt. roboczym "pięć kropek w linii", oczywiście w Turbo Basicu, mam 2 pytanka do Sz. Kolegów AND/OR Koleżanek:
    1. Czy do edycji w Basicu jest jakiś lepszy edytor, coś na kształt edytora MSQbasic'owego, notatnika lub nawet vima ;-)
    2. Ewentualnie - czy można wymienić standardowe teksty (listingi) pomiędzy emulatorem Atari800Win a piecem (gdybym np. pisał listingi w notatniku)?
    Z poważaniem!
    • 2:
       
      CommentAuthorKaz
    • CommentTime13 Mar 2009
     
    ad 1. Przy pracach nad "Kolony2106" kolega Urborg zastosowal metode "na Notepadzie" i swietnie mu to szlo. Ja tez do Dratewki uzywalem Notepada. Po prostu wygodniej pisac, kopiowac elementy (control-c, control-v) i samo to juz wystarcza, zeby znacznie ulatwic i przyspieszyc prace. Oczywiscie Notepad (czyli Notatnik) nie jest wyspecjalizowany do pisania programow, wiec to taka ograniczona wygoda, ale sie nadaje, szczegolnie do krotkich programow.

    W Notatniku oczywiscie nie bedziesz widzial znakow semigrafiki czy innych typowo atarowskich znaczkow. Ale ich kody zostana zapisane.

    ad 2. Oczywiscie, ze mozna. W emulatorze Atari mozesz dowolny katalog na pececie ustawic sobie jako twardy dysk "H:" i tam trzymac listing, zapisywac go i odczytywac.

    Mnie zalezalo na trzymaniu programu na dysku ATR, wiec uzywalem innej metody: zapisany plik txt programem AtrUtil wrzucalem na dyskietke i stamtad byl wczytywany do Turbobeja. Wszelkie zmiany zapisywalem na dyskietce, potem AtrUtil i ekstraktacja pliku txt na peceta.

    W Turbo Basicu taki plik txt odczytuje sie oczywiscie przez ENTER, a nie LOAD. Zapisuje LIST, nie SAVE.

    PS.
    Acha, byly jeszcze dwa edytory na peceta dedykowane Atari, pokazujace semigrafike. Daj mi chwile to postaram sie je znalezc.
    • 3:
       
      CommentAuthorKaz
    • CommentTime13 Mar 2009
     
    Juz znalezione. Pisalem o obu programach w czerwcu 2006 roku:

    ->link<-

    "Memo Pad" Erica Perenta:

    ->link<-

    oraz "ATASCIIView" Lee Hankena:

    ->link<-

    oczywiscie oba programy sa tez w katalogu uzytkow:

    ->link<-

    Szkoda, ze autorzy nie posuneli sie dalej - do edycji.
    • 4:
       
      CommentAuthorKaz
    • CommentTime13 Mar 2009
     
    No i wersja online, tez moze sie przydac czasem:

    ->link<-
    • 5:
       
      CommentAuthorsikor
    • CommentTime13 Mar 2009
     
    Kaz napisał: W Notatniku oczywiscie nie bedziesz widzial znakow semigrafiki czy innych typowo atarowskich znaczkow. Ale ich kody zostana zapisane.

    Sikor odpowiada (choć nie pisze na PC): użyj fontów z memopada (trzeba je przegrać do katalogu FONTS w katalogu WINDOWS) i podepnij pod notatnik - będziesz miał też semigrafikę Atari ;)
    • 6:
       
      CommentAuthorgolem14
    • CommentTime13 Mar 2009
     
    O dzięki! Na razie nie przewiduje żadnych znaków semigraficznych, czysty GR.8. Zobaczę, jak się spisze Notepad++ w roli edytora.
    • 7:
       
      CommentAuthortdc
    • CommentTime13 Mar 2009
     
    golem14: ad 2 jest jeszcze jedna możliwość w emulatorze jest opcja: Atari > Settings > "Enable P: patch for printer device, to jest co prawda jednostronne, ale powoduje możliwość przeniesienia listingu z Atari wprost do np. notatnika. Jest to przydatne jeśli otwarcie pliku Atari na pececie nie daje czytelnego kodu (a to raczej częste).
    • 8:
       
      CommentAuthorlarek
    • CommentTime13 Mar 2009
     
    A moim zdaniem programy w basicu najlepiej pisze się na Atari. Żaden notatnik na pececie nie sprawdzi błędów składniowych przy pisaniu, co w edytorze Atari jest normalką.
    • 9:
       
      CommentAuthorgolem14
    • CommentTime13 Mar 2009
     
    @larek: de gustibus non est disputandum

    Atr'ka z TurboBasicem i AtrUtil na razie się spisuje. Ok THX.
    • 10:
       
      CommentAuthorlarek
    • CommentTime13 Mar 2009
     
    oczywiście
    • 11:
       
      CommentAuthorsikor
    • CommentTime13 Mar 2009
     
    I ja się zgodzę z larkiem. Ja zasadniczo na PC nie potrafię pisać programów w TB. A edytor standardowy wbrew pozorom nie jest taki zły... ;)
    • 12:
       
      CommentAuthorKaz
    • CommentTime13 Mar 2009 zmieniony
     
    tdc - kod jest nieczytelny na pececie, jesli byl na Atari stokenizowany. Jezeli to efekt zapisu przez LIST to jest to zwykly, czytelny listing.

    Golem - nie zapomnij sie podzielic wrazeniami.

    Larek - zgadza sie, ostatecznie i tak ten program trzeba uruchomic na Atari :D. To przypomina troche prace z jezykami kompilowanymi - edytujemy sobie bez sprawdzania skladni, a uruchamiamy w "kompilatorze" zglaszajacym bledy czyli na Atari.

    Sikor - doceniam Twoja role w propagowaniu uzywania prawdziwego Atari. Niemniej jednak gdy komus, kto przychodzi z przyzwyczajeniami pecetowskimi nakazemy kompletnie zmienic przyzwyczajenia co do klawiatury i ukladu klawiszy to raczej go zniechecimy do pisania w ogole. Mnie osobiscie edytor Atari, chociaz bardzo elastyczny, nie pasowal nawet w starych czasach i dopiero w GFA Basic na ST odnalazlem wlasciwie proporcje parametrow pracy, ktore skutkowaly niesamowita wygoda i szybkoscia pracy. Na pececie tez ich znalezc nie moge, edytory takie jak Notepad sa za proste, a wiekszosc edytorow dla programistow - niepotrzebnie skomplikowanych.
    • 13:
       
      CommentAuthorgolem14
    • CommentTime13 Mar 2009
     
    Z prosbą o pomoc ponownie.
    Szukam jakiejś szybkiej procedury obsługi Joysticka i klawiatury w Basicu. Tzn program działa w pętli nasłuchując czy naciśnięty jest klawisz kierunkowy bądź wychylony Joystick (i/lub naciśnięty strzał), po czym następuje skok do jakiejś procedury. Ma ktoś na podorędziu? O ile pamiętam, to Joya chyba się przez PEEK robiło...
    • 14:
       
      CommentAuthoradiblol
    • CommentTime13 Mar 2009
     
    ->link<- - na PORTA jest stan joysticka.

    ->link<- - mechanizm "trzymania" wyzwalania
    • 15:
       
      CommentAuthorlarek
    • CommentTime14 Mar 2009 zmieniony
     
    Jeśli piszesz w Turbo Basicu XL:

    100 POKE 764,255
    110 WHILE INKEY$="" AND STICK(0)=15 AND STRIG(0): WEND
    120 REM DALSZA CZĘŚĆ PROGRAMU

    Instrukcje WHILE warunek : WEND nie muszą być w jednej linii. Po ich rozdzieleniu, pomiędzy nimi może być wstawiony kod programu, np.:

    100 POKE 764,255
    110 WHILE INKEY$="" AND STICK(0)=15 AND STRIG(0)
    120 REM TU MOŻNA UMIEŚCIĆ SWÓJ PROGRAM
    130 ? PEEK(20);
    140 WEND
    150 REM DALSZA CZĘŚĆ

    Jest też podobna para instrukcji: REPEAT: ..... : UNTIL warunek
    W tym przypadku warunek sprawdzany jest na końcu, a nie na początku.

    Ewentualnie:

    100 REM JAKIŚ PROGRAM
    110 IF INKEY$<>"" OR STRIG(0)<>15 OR NOT STRIG(0) THEN EXEC PROCEDURA
    120 REM JAKIŚ PROGRAM

    Tu po naciśnięciu klawisza lub wychyleniu joya lub wciśnięciu fire nastąpi skok do procedury "PROCEDURA". Po THEN możesz oczywiście skoczyć, gdzie tylko chcesz.
    • 16:
       
      CommentAuthorgolem14
    • CommentTime15 Mar 2009 zmieniony
     
    Autostart programów?
    Prośba techniczna.
    Mam obraz dyskietki z MyDOS 4.53, na niej tbasic2.com i za każdym razem muszę go ręcznie wklepać by ruszył (a jak testuje mój program to tego sporo jest). Da się coś zrobić aby ten plik uruchamiał się automatycznie przy starcie maszyny?

    BTW. larek thx. za porady. Przetestowałem podane rozwiązania (procedury obsługi Joya pewnie się przydadzą). Na razie skorzystałem z rozwiązania podanego w Tajemnicach Atari, przy okazji krótkiego wprowadzenia do Turbo Basic, i jadę na klawiszach.
    • 17:
       
      CommentAuthorlarek
    • CommentTime15 Mar 2009
     
    Zmień COM na AR0
    "0" jak zero.
    • 18:
       
      CommentAuthorgolem14
    • CommentTime15 Mar 2009
     
    @larek
    Kłaniam się w pas!
    • 19:
       
      CommentAuthorKaz
    • CommentTime18 Mar 2009
     
    Jak juz bedziesz mial jakies widoczne efekty to referuj! :)

    PS. Szykujesz sie na Grzybsoniade?
    • 20:
       
      CommentAuthorgolem14
    • CommentTime18 Mar 2009 zmieniony
     
    Po dwóch dniach odcięcia od sieci...
    Gra weszła w fazę 0.2 tzn. dorobiła się działającego międzymordzia tj. procedur rysujących planszę (gr.8), ruchomego kursora, działającego zaznaczania punktów. Do tego trzeba jeszcze dodać obsługę błędów (tzn. gdy kursor wychodzi poza ekran). Część druga, trudniejsza, to "rdzeń" sprawdzający i zliczający wszystkie zmienne "matematyczne". Muszę przypomnieć sobie jeszcze podstawy rachunku wektorów (dokładnie jak oblicza się długość wektora).
    Nie szykuje się na nic! Zacząłem ten projekt 15 lat temu i chcę go skończyć chociażby po to, by sobie pograć bez ręcznego liczenia wyników. Ponadto mam nadzieję, że może pomysł się komuś spodoba i go poprawi.
    • 21:
       
      CommentAuthorKaz
    • CommentTime18 Mar 2009
     
    Kiedys tez myslalem o przeniesieniu tej gry na komputer, nawet gdzies sobie rozrysowalem jak to ma wygladac.
    • 22:
       
      CommentAuthoradiblol
    • CommentTime18 Mar 2009
     
    Liczenie wektorów jest bardzo proste:
    Długość wektora:

    len = sqrt(x*x + y*y)


    Odległość między wektorami:

    dx = x1-x2
    dy = y1-y2
    dist = sqrt(dx*dx + dy*dy)


    Ten kod chyba będzie można nawet w BASIC'u wykorzystać (tak mi się wydaje).
    • 23:
       
      CommentAuthorKaz
    • CommentTime18 Mar 2009
     
    Golem - a w ktorym trybie graficznym/tekstowym chcesz to zrobic?
    • 24:
       
      CommentAuthorgolem14
    • CommentTime19 Mar 2009
     
    gr.8+16
    • 25:
       
      CommentAuthorKaz
    • CommentTime19 Mar 2009 zmieniony
     
    A to fajnie, bo juz sobie przygotowalem obrazek (w rolach glownych: panowie Floyd i Steinberg :). Jak skonczysz pisac gre i ja skompilujesz, to ja sobie zrobie prywatna wersje, z obrazkiem tytulowym...

    To oczywiscie wersja robocza, bo napis bedzie dopasowany do rodzaju kropek, ktore uzyjesz w grze, no i bedzie wzmianka o autorze gry:



    Edit: ewentualnie wersja kolor:

    • 26:
       
      CommentAuthorgolem14
    • CommentTime19 Mar 2009
     
    Ok. ładne (tzn czarno-szare ładniejsze). Myślę, że pewne rzeczy ruszę dopiero w weekend. "Dużo, za dużo sytuacji, które nużą" ;-)
    Mam zresztą jedne pomysł, o którym na prv.
    • 27:
       
      CommentAuthorKaz
    • CommentTime7 Apr 2012
     
    Golem, jak Ci idzie praca nad gra? :D
    • 28: CommentAuthorat0mic
    • CommentTime11 Apr 2012
     
    atari basic można wyłączyć przez POKE 1016,1 i wciśnięcie reset - jak to działa?
    czy jakoś do PORTB jest przepisywane ?

    czy w podobny sposób można wyłączyć np generator znaków a basic zostawić ?

    druga część pytania to czy można modyfikować obszar na program w basic:

    początek to $1702 a koniec to $9c1f czyli wolnego jest 34077 bajtów, a ?fre(0) pokazuje że 37881 <- z czego to jest brane ?

    jak zrobić np: żeby program w basic się lokował od np: $2000?
    • 29: CommentAuthorBluki
    • CommentTime11 Apr 2012
     
    LOMEM dla programu w BASIC-u znajduje się pod adresem 128/129. Od ustawionej tam wartości będzie się ładował program.
    Ilość wolnego RAM-u (FREE) zależy od użytego DOS-a lub jego braku, np.:
    37902 bez DOS-a
    31525 MyDOS 4.50T.
    • 30: CommentAuthorat0mic
    • CommentTime12 Apr 2012 zmieniony
     
    dzięki!

    czemu na Atari np:
    print 7 or 11

    daje 1

    podczas gdy na ZX Spectrum128/Amstrad/Commodore daje 15


    jak realizować operacje na bitach w atari basic ?
    • 31:
       
      CommentAuthorMaW
    • CommentTime12 Apr 2012
     
    a
    ? 0 or 0
    ?
    ...bo musisz się przenieść na TiBeja :P
    • 32: CommentAuthorBluki
    • CommentTime12 Apr 2012
     
    Czemu 7 OR 11 daje 1? Nie mam pojęcia :)
    Trzeba by poszukać w szczegółowej literaturze traktującej o Atari BASIC-u. Jeśli chcesz aby 7 OR 11 = 15 to musisz użyć Microsoft BASCI-a I lub II.

    Atari BASIC nie ma operacji na bitach. Musisz napisać własną procedurę. Łatwo to można zrobić używając potęgowania, ale Atari BASIC jest za wolny na takie działania.
    • 33: CommentAuthorBluki
    • CommentTime12 Apr 2012
     
    Dodam jeszcze, że działania na liczbach binarnych posiada Advan BASIC.
    • 34: CommentAuthorat0mic
    • CommentTime12 Apr 2012
     
    dzięki - trochę za trudny ten advan!

    z innej beczki:

    1 GR.8+16
    2 POKE559,33

    ??? co wpisać żeby plot działało prawidłowo?
    • 35: CommentAuthorBluki
    • CommentTime12 Apr 2012 zmieniony
     
    Edytor BASIC-a uznaje tylko standardowy ekran i ignoruje zmianę szerokości. Nie wspominając o procedurach rysowania. O ile dobrze pamiętam, to chyba tylko Advan radzi sobie z tym problemem (ale pewności nie mam).

    Rzeczywiście, Advan BASIC jest najtrudniejszym BASIC-em, ale bez przesady. Za to ma największe możliwości, no i jest to "formuła 1" wśród BASIC-ów na ATARI, jeśli chodzi o szybkość działania.
    • 36: CommentAuthormono
    • CommentTime13 Apr 2012
     
    Argumenty funkcji logicznych (OR, AND i NOT) w AB są traktowane, jako wartości logiczne - 0 to fałsz, niezero to prawda. Wynikiem funkcji logicznej będzie zawsze albo 0, albo 1.
    Funkcje bitowe można najszybciej USRem:
    X=USR(xor,a,b)
    xor: pla
    pla
    sta $cc
    pla
    sta $cb
    pla
    eor $cc
    sta $d5
    pla
    eor $cb
    sta $d4
    rts

    X=USR(and,a,b)
    xor: pla
    pla
    sta $cc
    pla
    sta $cb
    pla
    and $cc
    sta $d5
    pla
    and $cb
    sta $d4
    rts

    X=USR(or,a,b)
    or: pla
    pla
    sta $cc
    pla
    sta $cb
    pla
    ora $cc
    sta $d5
    pla
    ora $cb
    sta $d4
    rts