atarionline.pl Język programowania "Nova Basic" - 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: CommentAuthorMaterion
      • CommentTime30 Oct 2026 17:32 (7 dni temu) zmieniony
       
      Czesc wszystkim,

      Chcialem Wam przedstawic nowego Basica. Jest to interpretowany Basic dzialajacy na integerach. Co odroznia go od istniejacego juz Fast Basica to to, ze ma wbudowane cala game funkcji do tworzenia gier - sprzetowe/programowe duszki, przewijanie ekranu, kolizje, tworzenie kafelek z ktorych potem wyswietla sie mape, muzyka/dzwiek asynchroniczne (dzialajace w tle a program sobie dziala). Jest strukturalny mozna definiowac wlasne procedury i funkcje z parametrami, wieloliniowe IF..ELSEIF...ELSE itd. Jest obsluga Atari 130XE gdzie mozna w dodatkowym 64KB RAM umieszczac np. tablice z danymi map, muzyki itd. Funkcje do grafiki/dzwieku dzialaja pod spodem w 6502 ASM i wywolywane sa z poziomu Basica poprzez proste i mam nadzieje zrozumiale funkcje/procedury. Jesli ktos chcialby pobawic sie tym Basiciem i dalby jakas informacje zwrotna - co dodac, co moze zmienic - a takze jakbyscie znalezli jakies bledy, dziwne zachowania - bylbym bardzo wdzieczny jakbyscie sie tym podzielili w tym tym watku. Pod spodem link do Githuba gdzie znajdziecie plik .xex z Basiciem, w zipie przykladowe programy a takze dokumentacje jezyka plus kurs dla nowicjuszy ktory uczy od podstaw jezyka + pod koniec kursu ma sie w pelni dzialajaca gre. Moim zalozeniem bylo stworzyc na Atari cos w stylu AMOSa z Amigi ktory bedzie dzialal na prawdziwym sprzecie.

      ->link<-

      @EDIT

      W nastepnej wersji 1.4 dodane zostana proste funkcje/procedury ktore beda sluzyc do podkolorowywania ekranu poprzez Display List Interrupty.
      • 2: CommentAuthormono
      • CommentTime30 Oct 2026 18:31 (7 dni temu) zmieniony
       
      A może rozważyłbyś wybór jakiegoś bankowanego cartridgea typu MaxFlash i napisanie na niego implementacji, bo to nie zajmowałoby pamięci więcej niż standardowy AtariBASIC, a funkcji, instrukcji i narzędzi dałoby się tam upakować multum. XEX zawsze zajmie jakąś pamięć RAM/XRAM, a BASIC karciany mógłby RAM/XRAM dać do dyspozycji użytkownikowi.
      W dzisiejszych czasach sflashowanie takiego carta to jest rzecz, którą się robi w domu z poziomu Atari bez żadnych programatorów i lutownic. O użyciu na dowolnym emulatorze nie wspominając.
      • 3:
         
        CommentAuthorgienekp
      • CommentTime30 Oct 2026 18:59 (6 dni temu)
       
      mono dobrze gada!
      Zobacz że bank carta to jest "jeden" AtariBASIC. Ten sam zakres pamięci, więc skoro już i tak to jest zajęte to niech będzie "rój" tego. Tych funkcji można napakować od groma. Kiedyś na ATARI BASIC to się człowiek ratował POKE i kodami w USR. Tutaj możesz po ludzku zrobić na to nowe BASICowe rozkazy tak żeby nie dotykać POKE. A wszystko i tak będzie latać na tym samym już obstawionym zakresie pamięci.
      • 4: CommentAuthorMaterion
      • CommentTime30 Oct 2026 19:12 (6 dni temu) zmieniony
       
      Hmmmm, rozwaze ta opcje - dzieki za danie pomyslu mono!! Te 20KB na kod to nie tak malo biorac pod uwage, ze jest tyle funkcji ktore robia za uzytkownika wiele rzecczy i nie trzeba pisac samemu kodu do obslugi duszkow, scrolla itd. A w 130XE wlasnie mozna w 64KB RAM trzymac tablice z danymi wiec tez jest to jakies kolo ratunkowe :P. Bede probowal jeszcze udostepnic wiecej RAMu troche dla uzytkownika ale wiem, ze bedzie troche ciezko ;).
      • 5: CommentAuthorMaterion
      • CommentTime30 Oct 2026 20:35 (6 dni temu)
       
      Nowy release!! Wersja 1.4 z obsluga DLI!

      ->link<-
      • 6:
         
        CommentAuthorKaz
      • CommentTime30 Oct 2026 21:54 (6 dni temu)
       
      O, kolejny ciekawy projekt. Ale mam pytanie: czy będzie jakaś kompatybilność z listingami AMOS-a/STOS-a?
      • 7: CommentAuthorMaterion
      • CommentTime30 Oct 2026 21:59 (6 dni temu)
       
      To jest Basic na 8 bitowe Atari Kaz :). Nie raczej nie bedzie kombatybilne z listingami STOS-a/AMOSa - to jest od zera zbudowany jezyk i ma swoja skladnie + funkcje/procedury :). Ale dziekuje za nazwanie mojego projektu "ciekawym", bardzo to mile :)
      • 8:
         
        CommentAuthorKaz
      • CommentTime30 Oct 2026 22:16 (6 dni temu)
       
      Ale Basic to Basic. Komendy czy funkcje Basica mogą być takie same na 8bit jak i 16bit, tylko odwoływać się do innych możliwości danego sprzętu. Nie znam AMOS-a, ale np. w STOS jest komenda SPRITE z parametrami, która wyświetla duszki na ekranie. Są one programowe, może być ich kilkanaście, ekran ST jest większy, a kolorów więcej, ale na małym Atari można by odwoływać się do PMG. Ale rozumiem, że nie planujesz nic takiego. W porządku, tylko pytałem :)
      • 9: CommentAuthorMaterion
      • CommentTime30 Oct 2026 22:42 (6 dni temu) zmieniony
       
      OKej, juz rozumiem co miales na mysli :). Jutro mysle, ze wypuszcze kolejna wersje gdzie bedzie mozna scrollowac nie tylko caly ekran a okreslony region ekranu + obsluga duzych spritow 24x21 - jednak tylko dwa takie sprity beda mogly byc na ekranie jednoczesnie - brakuje znakow na wieccej + duzo wolniej sie rysuja niz 16x16 czy 8x8 :). Mysle, ze bede mogl jeszcze zoptymalizowac rysowanie tych duzych spritow ale zobaczymy :P.
      • 10: CommentAuthorMaterion
      • CommentTime31 Oct 2026 06:25 (6 dni temu) zmieniony
       
      Nowa wersja - 1.5

      ->link<-

      Co nowego?

      Teraz możesz zdefiniować, która część ekranu będzie się przewijać.

      Nowy rozmiar sprite'a - 24x21 (rozmiar sprite'a Commodore64)

      Automatyczne wcięcie kodu w edytorze.

      Drobne poprawki i optymalizacje.

      Tworzę również kompilator dla NOVA Basic, który będzie akceptował programy w nim napisane i umożliwiał kompilację do plików .xex bez konieczności zmiany kodu.
      • 11:
         
        CommentAuthorKaz
      • CommentTime31 Oct 2026 10:04 (6 dni temu)
       
      Przejrzałem (pobieżnie) dokumentację, fajnie, że jest. Mam pytanie o cel nowego Basica. Czy będzie kompatybilny z jakimkolwiek innym, żeby można było na starcie pobawić się w przenoszenie programów i dodawanie im nowych funkcji? Czy sam zamierzasz pisać w nim jakieś programy? Ciepło myślę o Twoim projekcie, bo jak napisałem - ciekawy - ale obawiam się o liczbę osób zainteresowanych. Co miałoby przyciągnąć do nauki nowej implementacji Basica? Być może są takie obszary zastosowań, które warto by wypunktować.
      • 12: CommentAuthorMaterion
      • CommentTime31 Oct 2026 10:23 (6 dni temu) zmieniony
       
      Napisalem go glownie z mysla o sobie - brakowalo mi BASICa na Atarka 8 bitowego ktory bedzie udostepnial funkcje i procedury do obslugi programowych plynnie poruszajacych sie spritow, sprzetowego scrolla, bardzo prostych w uzyciu funkcji do DLI, asychronicznego odtwarzania muzyki i efektow dzwiekowych. Taki wlasnie AMOS Amigowy ale w wersji na Atarka 8 bitowego - jezyk stricte do szybkiego pisania/prototypowania gier. No rozni sie od takiego np. Fast Basica tym powyzszym - funkcje do grafiki/muzyki sa pod spodem napisane w ASM wiec sa stosunkowo szybkie - nie trzeba samemu pisac jak np. w FAST BASICu wszystkiego - wszystko ma sie "pod nosem" i jest dosc szybkie. Tak sam zamierzam pisac w nim swoje gry na Atarka - ale chcialem by to bylo na prawdziwym sprzecie - nie lubie cross-compilatorow bo zabiera mi to obcowanie z prawdziwym sprzetem. Oczywiscie rozumiem, ze duzo ludzi nie ma takiego podejscia jak ja i cross-compilatory im nie przeszkadzaja - ale zrobilem to z mysla dla ludzi ktorzy lubia robic wszystko "jak za dawnych lat". Mysle, ze dzisiaj opublikuje kompilator ktory bedzie kompilowal kod Nova Basica do kodu maszynowego wiec z 15x przyspieszenia wzgledem ROMowego Basica jakie daje w tym momencie interpreter po skompilowaniu powinno byc co najmniej 50x szybciej.
      • 13:
         
        CommentAuthorKaz
      • CommentTime31 Oct 2026 10:31 (6 dni temu)
       
      Bardzo mi się podoba takie podejście - dla siebie i "po staremu". Czy nie chciałbyś pokazać nam działania swojego Basica na sesji online live? Opowiedziałbyś o nim, pokazał kilka przykładów? Co Ty na to? Może to by zachęciło jeszcze kogoś do testów, a może i pisania w tej implementacji.
      • 14: CommentAuthorMaterion
      • CommentTime31 Oct 2026 10:33 (6 dni temu)
       
      Bardzo mi milo :). Wiesz co - moglbym tylko musialbym sie do takiej sesji dobrze przygotowac haha :)
      • 15:
         
        CommentAuthorKaz
      • CommentTime31 Oct 2026 10:43 (6 dni temu)
       
      Czy ja wiem? Moim zdaniem pasjonaci się nie doceniają. Prawdopodobnie już jesteś dobrze przygotowany. Wystarczy opowiadać o tym, co w tym projekcie Cię kręci, odpowiedzieć na parę pytań publiczności oraz pokazać parę przykładów zalet Nova Basic. To szykuj się i jedziemy z koksem :) W jakiś dzień pasuje Ci spotkanie na Zoom AtariOnline.pl o 20:00?
      • 16: CommentAuthorMaterion
      • CommentTime31 Oct 2026 10:50 (6 dni temu) zmieniony
       
      Mozna w przyszlym tygodniu w piatek np? Bede mial czas by naklepac pare przykladow, moze nawet jakas gierke przykladowa w pelni dzialajaca :). Bo na razie wiekszosc czasu poswiecalem rozwijaniem jezyka a nie programowaniem w nim haha ;). Na razie zaczalem klepac scrollowanego platformera :)
      • 17:
         
        CommentAuthorKaz
      • CommentTime31 Oct 2026 11:13 (6 dni temu)
       
      Spoko, piątek wpisuję do kalendarza.
      • 18: CommentAuthorMaterion
      • CommentTime31 Oct 2026 11:24 (6 dni temu) zmieniony
       
      @Kaz no to jestesmy umowieni :)

      Wersja 1.6:

      Troche poprawek, optymalizacji

      - program do tworzenia bootowalnej wersji gry w wersji interpretowanej(runtime + kod)
      - kompilator do kodu maszynowego - przyspieszenie 5x wzgledem interpretera!! (srednio 50x szybciej niz ROMowy BASIC)

      ->link<-
    1.  
      Cześć,

      bardzo ciekawy projekt! Sam programuję w Basicu, więc tym bardziej się przyjrzę. A jak autor ocenia prędkość działania (po kompliacji) w stosunku do Turbo Basica i Advan Basica? Ten ostatni ma sporo funkcji ułatwiających obsługę choćby P&M, muzyki etc. więc kolejne pytanie, czy autor zna tę wersję i jak może ją porównać do własnej?
      • 20: CommentAuthorMaterion
      • CommentTime1 Nov 2026 11:22 (5 dni temu) zmieniony
       
      Hej :). Po kompilacji jest srednio 50x szybciej niz ROMowy BASIC. Co do Turbo Basica czy Advan ciezko mi sie odniesc :P. No tutaj tez masz mase funkcji do hardwarowych/softwarowych spritow, do scrolla, muzyki, efektow dzwiekowych itd. Wydaje mi sie, ze znacznie wiecej ulatwiajacych programowanie gier funkcji jest w NOVA BASICU. Przegladnij sobie manual i beginner guide to bedziesz mial odniesienie :). Za jakis czas dodam dokumenty PDF z poradnikami jak stworzyc gry w NOVA BASIC - krok po kroku od 0 do w pelni dzialajacej gry - krok po kroku (scrollowany platformer jak Giana Sisters, czy scrollowany pionowo shoot-em up).
      • 21: CommentAuthorsolo/ng
      • CommentTime1 Nov 2026 13:05 (5 dni temu)
       
      calkiem dobre to
      • 22: CommentAuthorMaterion
      • CommentTime1 Nov 2026 14:30 (5 dni temu)
       
      Ojej, bardzo dziekuje solo/ng :). Staralem sie by to byl jak najbardziej przystepny jezyk z jak najwieksza iloscia gotowych funkcji/procedur do tworzenia gier na ile sie da :). Raz, ze pomaga w tworzeniu bez wglebiania sie w bebechy Atarynki, dwa przyspiesza tworzenie lub prototypowanie, trzy jest w miare szybkie :).
      • 23: CommentAuthorMaterion
      • CommentTime1 Nov 2026 15:57 (5 dni temu) zmieniony
       
      Tutaj filmik z przykladowej scrollowanej platformowej gry jaka napisalem (duzo do poprawy i ulepszenia) w NOVA Basicu. To jest filmik z interpretera (nie skompilowane do kodu maszynowego) - wiec mysle, ze po skompilowaniu bylo by duzo jeszcze wolnej mocy procesora by doszlifowac logike gry i inne rzeczy :).



      TUtaj plik PDF z tutorialem jak krok po kroku od 0 stworzyc taka gre

      ->link<-
      • 24:
         
        CommentAuthorKaz
      • CommentTime6 Nov 2026 18:50 (7 minut temu)
       
      To już dzisiaj za godzinkę.