atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
SV2017 - prace, wyniki z 2017-12-10 22:27 (1)
SV2017 – krótka relacja z 2017-12-10 11:07 (48)
Silly Venture 2k17 – relacja na żywo z 2017-12-08 16:08 (76)
Nadchodzi premiera "07 zgłoś się" z 2017-12-08 00:05 (4)
Poczwórny numer "Pro(c) Atari" z 2017-12-07 17:29 (0)
Kaz Kompo 2016 z 2017-12-06 00:45 (38)
Poradnik programisty Atari – nowe wydanie z 2017-12-04 13:35 (15)
Dextrosy i STE-fany z 2017-11-30 19:59 (6)
Remanent za rok 2016 – modyfikacje klasycznych gier z 2017-11-29 20:59 (13)
Konkurs jubileuszowy na blogu Tdc z 2017-11-26 22:20 (18)
Skool Daze – ostatnia prosta z 2017-11-22 22:49 (18)
Modyfikacje starszych gier: Donkey Kong Jr. i Bubsy z 2017-11-19 23:00 (10)
Nowe demo na duże Atari z 2017-11-14 23:01 (138)
Zanim stali się znani... Kto wystąpił w reklamach Atari? z 2017-11-07 21:27 (8)
Powrót z przyszłości: Giełda Bajtka i koncert Marka Bilińskiego! z 2017-11-03 01:03 (155)
Aktualności growe z 2017-11-01 14:19 (13)
Silly Venture 2k17 – nowa invitka i garść informacji! z 2017-10-30 10:45 (17)
Wyniki konkursu programistycznego ABBUC 2017 z 2017-10-28 16:53 (17)
Pokłosie RetroKomp/LOAD ERROR 2017 z 2017-10-22 16:28 (22)
Starotki ze strychu z 2017-10-20 12:30 (14)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier

Opisy gier
Frogs opisał Xeen (0)
Choplifter! opisał Urborg (0)
Joust opisał Urborg (16)
Commando opisał Urborg (35)
Mario Bros opisał Urborg (13)
Xenophobe opisał Urborg (34)
Robbo Forever opisał tbxx (16)
Kolony 2106 opisał tbxx (0)
Archon II: Adept opisał Urborg/TDC (9)
Spitfire Ace/Hellcat Ace opisał Farscape (7)
Wyspa opisał Kaz (9)
Archon opisał Urborg/TDC (16)
The Last Starfighter opisał TDC (30)
Dwie Wieże opisał Muffy (17)
Basil The Great Mouse Detective opisał Charlie Cherry (121)
Inny Świat opisał Charlie Cherry (17)
Inspektor opisał Charlie Cherry (19)
Grand Prix Simulator opisał Charlie Cherry (16)
Rescue On Fractalus opisał Kaz (18)
Stranded opisał Kaz (10)
«« nowszestarsze »»

Użytki/Utils
Wewnętrzne/Internals



   Nowinki tworzone dzięki CuteNews
FAQ o kompilatorach BASIC-a
1. Co to jest Basic?

Basic to najpopularniejszy w latach 80-tych język programowania, a to z tego względu, że większość producentów komputerów, w tym firma Atari, zdecydowała się umieszczać go w zestawie z komputerem - wbudowany w komputer (Atari XL/XE), na cartridgu (Atari 400/800) lub na firmowej dyskietce (Atari ST/STE). Jest stosunkowo łatwy do nauki, ale krytykowany za wyrabianie nawyku niestrukturalnego programowania oraz za powolność działania. W latach 90-tych wyparty przez języki strukturalne, takie jak Pascal i C oraz ich następców.

2. Jakie wersje BASIC-a mamy dla Atari?

"Atari BASIC" jest podstawową wersją języka Basic dla 8-bitowych komputerów Atari, bo firmowaną przez Atari, ale nie jedyną. Wielu producentów oprogramowania stworzyło swoje wersje tego języka, przeważnie znacznie lepsze niż "Atari BASIC". Oto lista implementacji języka Basic dla naszego komputera:
  • Atari BASIC (pliki tutaj)
  • Advan Basic (pliki tutaj)
  • CTH Fast BASIC (pliki tutaj)
  • Frost BASIC
  • JLS BASIC
  • Microsoft BASIC (plik tutaj)
  • Microsoft BASIC II (plik tutaj)
  • MultiBASIC
  • OSS BASIC A+ (plik tutaj)
  • OSS BASIC XL (pliki tutaj i tutaj)
  • OSS BASIC XE (pliki tutaj i tutaj)
  • Turbo BASIC XL (pliki tutaj)
  • TT-BASIC XL


3. Jak przyspieszyć napisane w BASIC-u programy?

Są dwie podstawowe metody przyspieszanie programów w Basicu:
  • optymalizacja programu, wymagająca sporej wiedzy i doświadczenia programistycznego,
  • kompilacja programu poprzez użycie specjalnego programu (kompilatora), który zamieni program w Basicu na program w języku maszynowym.


    4. Jakie kompilatory BASIC-a istnieją dla Atari?

    Zasadniczo każdy rodzaj BASIC-a ma swój własny, dedykowany kompilator (jeżeli w ogóle ma). Oto lista kompilatorów:
    • ABC A BASIC Compiler (pliki tutaj)
    • Advan BASIC Compiler (pliki tutaj)
    • Advan BASIC Optimizing Compiler (pliki tutaj)
    • Basic To Binary (pliki tutaj)
    • BCOM (pliki tutaj)
    • JLS BASIC
    • MMG BASIC Compiler (pliki tutaj)
    • The BASIC Compiler (plik tutaj)
    • Turbo BASIC XL Compiler (pliki tutaj)


    5. Kompilator "MMG Basic Compiler"

    W numerze 8 "Komputera" z 1986 roku pojawił się krótki opis kompilatora MMG Basic Compiler autorstwa tajemniczego jr w artykule pod tytułem "Kompilator MMG". Oto treść tego artykułu (cytuję za Światem Owoców):

    Jedną z wad programów napisanych w BASICu jest ich powolność. Jest jednak na to rada: przekształcenie w program w języku maszynowym.

    Posiadacze wszystkich komputerów Atari opartych na mikroprocesorze 6502, między innymi 800 XL i 130 XE, są pod tym względem w korzystnej sytuacji. Mogą skorzystać z łatwego w obsłudze i skutecznego w działaniu kompilatora MMG rozpowszechnianego przez firmę Microsoft, a dostępnego również na naszym rynku.

    MMG współdziała z DOS 2.OS lub DOS 2.5. Jego dwie główne części — to kompilator CMP.OBJ i asembler ASM.OBJ. Kompilator wykonuje pierwszy przebieg zamieniając program w języku Basic w bloki asemblera, które zapisuje na dyskietkę. W następnych dwóch przejściach bloki te przekształcane są w kod maszynowy, który także zostaje zapisany na dyskietkę i może być odtąd uruchamiany za pośrednictwem DOS lub nazwany AUTORUN.SYS, co spowoduje jego automatyczne uruchomienie po włączeniu komputera. Dla oszczędności miejsca MMG automatycznie kasuje bloki asemblera, chyba że na końcu programu dopiszemy: 32767 LIST.

    Tworzona jest ponadto mapa odniesienia linii programu w BASICu do adresów w kodzie maszynowym, co ułatwia ewentualne modyfikacje. Ponieważ wszystkie te bloki pomocnicze zajmują miejsce na dyskietce, najdłuższy program, który możemy skompilować, nie powinien przekraczać około 120 sektorów, czyli 15 KB. MMG nakłada na treść programów nieznaczne wymagania, z reguły łatwe do uwzględnienia. Po komendach GOTO, GOSUB i RESTORE numer linii musi być wyrażony liczbą, a nie zmienną. Nie powinno być w programie komend CONT, CLOAD, CSAVE, ENTER, LOAD, NEW, SAVE. Gdy z jednego programu wywoływany jest inny, instrukcję DIM należy zastąpić równoważną — COM.

    Praca z MMG pozwala zauważyć jak należy pisać programy, które potem w kodzie maszynowym będą bardziej zwarte. Na przykład zastępowanie GOTO przez GOSUB (z ewentualnym POP) znacznie zmniejsza objętość programu.

    MMG pozwala na stosowanie liczb zmiennoprzecinkowych, czyli takich jak w BASICu, lub całkowitych w granicach od -32768 do 32767 z możliwością stosowania większych adresów przy instrukcjach PEEK i POKE. Pierwsza wersja powoduje mniej więcej trzykrotne przyspieszenie wykonywania programu, warto jednak pokusić się o więcej. Ograniczenie się do dwubajtowych liczb całkowitych ze znakiem nie jest bynajmniej trudne. Niemal wszystkie gry napisane w języku maszynowym pracują w takim zakresie liczb.

    W MMG istnieje ważne ułatwienie w stosowaniu liczb losowych. Zamiast na przykład RND(0)*18 wpisujemy do programu RND(18) i daje to taki sam efekt. A co zrobić z wyrażeniem INT(RND(0)*1.8)? I na to jest rada: RND(180)/100."


    6. Kompilator "BCOM"

    "BCOM" to skrót od rozszerzeń BAS i COM - program przekształca te pierwsze w te drugie. Program autorstwa Radka "Raster" Sterba nie posiada instrukcji, ale kolega Andreas "Charlie Chaplin" podzielił się swoją wiedzą w zakresie obsługi tego programu (po angielsku, a tłumaczenie moje):

    "Po uruchomieniu programu:
  • podaj nazwę programu w Basicu, na przykład: D1:TEST.BAS,
  • wpisz nazwę pliku wynikowego, na przykład: D2:TEST.COM.
    Uwaga, jeżeli używasz tylko jednej dyskietki, upewnij się, że masz na niej wystarczająco dużo miejsca, zarówno na pliki BAS, jak i COM.

    Następnie naciśnij klawisz "RETURN" i pojawi się menu po czsku. Nie przejmuj się jednak ;), oto co należy zrobić:
  • naciśnij "1" jeżeli program w Basicu jest stokenizowany (zapisany komendą SAVE),
  • naciśnij "2" - jeżeli program w Basicu jest listingiem (zapisany komendą LIST).

    Program załaduje wtedy plik BAS i skonwertuje go do pliku typu COM. Po zakończeniu operacji program zapyta, czy wyjść do DOS-a czy konwertować kolejny plik.
  • naciśnij klawisz "A", jeżeli chcesz skompilować kolejny program,
  • naciśnij dowolny inny klawisz, jeżeli chcesz przejść do DOS-a.

    Uwaga! Program działa tylko na plikach BAS krótszych niż 28 KB. Wszystkie wytworzone przez program pliki COM mogą być załadowane z DOS-a, ale po ich uruchomieniu DOS jest usuwany z pamięci. Dlatego nie kompiluj plików wymagających DOS-a albo programów wieloplikowych. W praktyce około 20-30% programów BAS skompilowanych do plików COM działa. Reszta przeważnie nie, ze względu na zbyt małą dostępną pamięć, ale można tu użyć pewnego tricku. Załaduj program z taśmy (obojętnie czy to zapis normalny albo turbo), wtedy nie będziesz potrzebował DOS-a, a z tego co wiem więcej pamięci będzie dostępne (niższy lo-mem)."


    2008-01-17 19:15 by Kaz
    komentarzy: 18
  • sikor @2008-01-18 10:09:08
    Warty zauważenia jest fakt, że zarówno pod MMG Basic Compilerem, jak i pod ABC Basic Compilerem występują po kompilacji błędy liczb zmiennopozycyjnych, które... Nie wpływaja potem na działanie skompilowanego programu. Oczywiście piszę tutaj o kompilacji kodu programu zapisanego spod standardowego Atari Basica.
    Co do samej szybkości działania - popełniłem kiedyś taka produkcje na Atari 600XL (snake - na Real 16K Game Compo zaproponowane przeze mnie), gdzie przed kompilacją (program z uwagi na ograniczenie pamieci napisałem w czystym Atari Basicu, można pobrać stąd: http://atariarea.krap.pl/pliki.php?sec=d...) gra się w miarę normalnie, a po kompilacji - jest za szybko ;) Uwaga!!! Rozpoczynając grę - należy od razu ustawić kierunek ruchu!!! (brak miejsca w 600XL - już po dodaniu pojedyńczej instrukcji było przepełnienie pamięci, a założenie było takie - że musi chodzić na oryginalnym 600XL).
    MDW @2008-01-18 12:19:56
    Dlaczego ten tekst nie pojawił się w 1990-93 roku? Ozłociłbym... :D
    MaW @2008-01-18 16:02:56
    ile bym dał, żeby był ActionScript-2-8bit compiler... :)
    pps @2008-11-05 15:59:56
    W plikach brak, ale wydaje mi się, że istniał Turbo Basic XL na cartdridge'u... Czy nie...?
    Kaz @2008-11-05 23:00:11
    Istnial, nawet chyba mam gdzies na cartridgeu.
    pps @2008-11-06 12:07:45
    A da radę jakoś go do *.car wcisnąć?
    Kaz @2008-11-06 21:30:16
    Ja nie umiem tego zrobic, nawet nie mam odpowiednich narzedzi (zdaje sie, ze Qmeg cos takiego potrafi?).
    maki mak @2009-05-23 22:46:02
    być może lamerskie pytanie, ale jak w basicu uzyskać działanie "strzałek" klawiatury, tak aby przejść do wyższych linii kodu, jak na atari CTRL + klawisze strzałek.
    Kaz @2009-05-25 00:45:43
    Troche niejasne pytanie. Chodzi Ci o to, jak w Basicu sterowac kursorem czy jakimi klawiszami kierowac kursorem podczas edycji programu w Basicu?

    Jezeli to chodzi o to drugie, to podejrzewam, ze problem bierze sie stad, ze uzywasz emulatora i nie wiesz, jaki jest odpowiednik kombinacji CTRL+klawisze strzalek.

    Jezeli to emulator Atari800Win to w opcji "Input" masz ustawianie "Arrow keys". Ustawisz "Control + Arrows" i klawisze strzalek peceta dzialac beda jak kombinacja Control + strzalka na Atari. Ja preferuje jednak ustawienie "Arrows only", bo wtedy strzalki dzialaja tak jak na Atari - wyswietlaja odpowiednie znaczki. A dopiero uzycie ich z pecetowskim Controlem daje odpowiednik atarowskiego Control + strzalka. Tak jest naturalniej.
    maki mak @2009-05-25 13:41:39
    tak, chodzi o to, ustawienia znalazłem, problem w tym, że nic nie dają, kuros się nie przemieszcza, znalazłem kombinacje "Ctrl+_" i "Ctrl+'+'", ale to tylko w górę i w dół działa, kombinacja na w prawo i w lewo nie znalazłem. Mam emulator Atari800Win Plus 4.0.
    Kaz @2009-05-26 01:51:17
    A to nie masz klawiatury pecetowskiej ze strzalkami kursora? Bo to te klawisze z Control dzialaja jako odpowiedniki atrarowskich strzalek.

    PONADTO dzialaja kombinacje podane przez Ciebie (czyli z pecetowskimi plusami i minusami, bo te znaki sa na klawiszach Atari tam gdzie znaki strzalek). A "brakujace" w prawo i w lewo znajdziesz w menu "Help", patrz "Keyboard Layout".
    maki mak @2009-05-26 11:56:31
    mam strzałki ale nie działają, ale skoro wszystkim działa, a tylko mi nie, to problem musi być po mojej stronie. coś wymyślę ;-)
    maki mak @2009-05-26 12:11:57
    odinstalowałem emulator i jeszcze raz zainstalowałem i wszystko działa ;-) przepraszam za zamieszanie
    Kaz @2009-05-27 00:22:15
    Nic nie szkodzi. Milego programowania.
    Kaz @2009-07-01 22:39:28
    Wiele porad dotyczacych programowania w Basicu pojawilo sie przy okazji konkursu "Napisze se":
    http://atarionline.pl/forum/comments.php...
    QTZ @2010-10-05 15:44:33
    BCOM nie jest kompilatorem. Dodaje do programu w basic'u procedurę, która włącza basic i uruchamia program w standardowym interpreterze.
    Świetny do tworzenia plików typu "autostart".
    Kaz @2012-03-07 12:58:33
    Duzo wiecej o BCOM mozna poczytac tutaj:

    http://atarionline.pl/forum/comments.php...
    Kaz @2012-03-23 17:25:51
    Zaktualizowalem spis Basicow o CTH Fast Basic, ktorego pliku zostaly dorzucone tez do archiwum.
    nickname
    e-mail / website (opcjonalnie)
    Aktualne tematy
    Kopiowanie z Sio2PC na dyskietkę ... (7)
    ostatni: 11-12-2017 02:22, Ataripuzzle
    Grafika w Turbo Basic XL (7)
    ostatni: 11-12-2017 00:55, QTZ
    SV2k17 - PODZIĘKOWANIA (15)
    ostatni: 11-12-2017 00:05, Rocky
    Nowy emulator XE/XL na Androida (30)
    ostatni: 11-12-2017 00:02, Dracon
    Informacje o Graph2Font (G2F) (71)
    ostatni: 10-12-2017 21:44, QTZ
    Wymienię się oryginalnymi dyskiet... (13)
    ostatni: 10-12-2017 20:13, Ataripuzzle
    Arabic cartridges (11)
    ostatni: 10-12-2017 19:41, atari65xenajm
    STOS (1)
    ostatni: 10-12-2017 18:21, gsgalezowski
    Prośba o pomoc ! (38)
    ostatni: 10-12-2017 17:33, jesionen
    Sillyventure 2K17 unofficial live... (14)
    ostatni: 10-12-2017 17:17, CharlieChaplin
    Kartridż z grą "07 zgłoś się" - p... (8)
    ostatni: 10-12-2017 17:13, clayster
    Jacek Karpiński, twórca pierwszeg... (83)
    ostatni: 10-12-2017 16:41, bruno_j
    *.sap na *.mid, *.rmt, *.mod?.. (11)
    ostatni: 10-12-2017 00:48, mav
    Atari MegaST 1 + Megafile 30 = pr... (9)
    ostatni: 09-12-2017 11:36, zilog
    Silly Venture 2k17 - uniting the ... (194)
    ostatni: 09-12-2017 00:35, mgr_inz_rafal

    Kategorie Forum Atarum

    Użytkowników: 1759
    Ostatnio zarejestrowany: moralek
    Postów ostatniej doby: 42

    Społeczność/Community

    Najbliższe imprezy

    Sprzęt/Hardware

    Wynalazki
    Atari i Bluetooth napisał Kaz (17)
    SIO2PC-USB napisał Larek (45)
    Nowe SIO2SD napisał Larek (0)
    SIO2SD w CA12 napisał Urborg (9)
    Ratowanie ATMEL-ów napisał Yoohaas (12)
    Projektowanie cartów napisał Zenon (12)
    Joystick do Atari napisał Larek (54)
    Tygrys Turbo napisał Kaz (7)
    Testowałem "Simple Stereo" napisał Zaxon (3)
    Rozszerzenie 1MB napisał Asal (20)
    Joystick trzyprzyciskowy napisał Sikor (18)
    Moje MyIDE oraz SIO2PC na USB napisał Zaxon (16)
    Jak wykonać płytkę drukowaną? napisał Zaxon (26)
    Rozszerzenie 576kB napisał Asal (13)
    Soczyste kolory napisał scalak (28)
    XEGS Box napisał Zaxon (13)
    Atari w różnych rolach napisał (8)
    SIO2IDE w pudełku napisał Kaz (5)
    Atari steruje tokarką napisał Kaz (14)
    DarkMouse napisał Kaz (7)
    «« nowszestarsze »»