atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Google  
Translate to RSS RSS

Glut zaprasza... z 05.09.2010 (15)
Premiera "Little 15" z 02.09.2010 (41)
Premiera gry "kung-fu fighting" z 01.09.2010 (49)
Wywiad z członkiem HTT z 29.08.2010 (8)
Premiera "Robbo Lutry" z 28.08.2010 (16)
Kurs C na Atari cz.3 z 26.08.2010 (7)
Kurs C na Atari cz.2 z 25.08.2010 (22)
Nowy "Fail" z 25.08.2010 (4)
Cyfrowe marzenia z 24.08.2010 (1)
"Atalan Sokoban" z 23.08.2010 (18)
Rzadkości użytkowe z 22.08.2010 (6)
"Highway Encounter" z 21.08.2010 (6)
Kurs C na Atari z 20.08.2010 (41)
Abandonware z 15.08.2010 (94)
Filmy dla sekty z 15.08.2010 (29)
Opis Mario Bros z 11.08.2010 (6)
Atalan dojrzewa z 09.08.2010 (28)
Będziemy na Allegro Party z 08.08.2010 (11)
Planowe włączenie z 08.08.2010 (12)
Planowe wyłączenie z 05.08.2010 (40)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier

Opisy gier
Mario Bros opisał Urborg (13)
Xenophobe opisał Urborg (28)
Robbo Forever opisał tbxx (5)
Kolony 2106 opisał tbxx (0)
Archon II: Adept opisał Urborg/TDC (6)
Spitfire Ace/Hellcat Ace opisał Farscape (6)
Wyspa opisał Kaz (9)
Archon opisał Urborg/TDC (12)
The Last Starfighter opisał TDC (28)
Dwie Wieże opisał Muffy (15)
Basil The Great Mouse Detective opisał Charlie Cherry (8)
Inny Świat opisał Charlie Cherry (17)
Inspektor opisał Charlie Cherry (18)
Grand Prix Simulator opisał Charlie Cherry (16)
Rescue On Fractalus opisał Kaz (16)
Stranded opisał Kaz (8)
Gunslinger opisał Dracon (5)
Space 1999 opisał Kaz (4)
Pięć Gówien Eepcha opisał Kaz (10)
Mózgprocesor opisał Kaz (30)
«« 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
  • 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)."


    17.01.2008 by Kaz
    komentarzy: 15
  • 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...
    nickname
    e-mail / website (opcjonalnie)
    Aktualne tematy
    Porownanie jezykow programowania (7)
    ostatni: 06-09-2010 10:27, rudla
    Spotkanie w Łodzi? (3)
    ostatni: 06-09-2010 08:51, caco
    Ciekawostki (121)
    ostatni: 06-09-2010 06:36, miker
    Gry w Atalan (7)
    ostatni: 06-09-2010 01:47, jhusak
    Riverwash 2010 (8)
    ostatni: 06-09-2010 00:36, insert
    ACTION!, CC65, a może ATALAN ? (3)
    ostatni: 05-09-2010 22:58, emka
    Święty gral Atari 2600 do kupienia (9)
    ostatni: 04-09-2010 22:25, s2325
    cc65 - jak napisać prostą grę. (26)
    ostatni: 04-09-2010 14:07, Kaz
    Komunikaty techniczne (8)
    ostatni: 04-09-2010 09:04, hlipoz
    ATALAN - new programming language (85)
    ostatni: 03-09-2010 19:38, rudla
    High Tech Team (2)
    ostatni: 03-09-2010 16:01, insert
    oddam w dobre rece (20)
    ostatni: 03-09-2010 13:42, jhusak
    Silly Venture 2k10 (5)
    ostatni: 03-09-2010 12:24, greymsb
    Audacious ASAP plugin (3)
    ostatni: 03-09-2010 11:12, Kaz
    how to finish HACKER game (2)
    ostatni: 02-09-2010 10:13, Kaz

    Kategorie Forum Atarum

    Użytkowników: 524
    Ostatnio zarejestrowany: vv0jtas
    Postów ostatniej doby: 29

    Społeczność/Community


    Rozmawiali
    Richard "The Wizard" Vermeulen i Kaz (9)
    Piotr Mańkowski i Kaz (26)
    Maciej "Wiewiór" Wiewiórski i Kaz (4)
    Marcin "Kaczor" Baryłka i Charlie Cherry (24)
    Adam Mateja i Charlie Cherry (7)
    Konrad "Scorpio" Rąpalski i Kaz (15)
    Jakub Husak i Kaz (14)
    [ENG] Steve Hales i Charlie Cherry (0)
    Michał "Caruso" Brzezicki i Kaz (17)
    Henryk Karpowicz i Kaz (21)
    Bartłomiej Kluska i Kaz (15)
    Jarosław Kaczor i Kaz (8)
    Tomasz Rolewski i Kaz (5)
    [ENG] John Anderson i Charlie Cherry (2)
    Steve Hales i Charlie Cherry (16)
    Artur Moryto i Charlie Cherry (16)
    Marek "sivek" Siewior i Charlie Cherry (14)
    Dieter "Old Man Tower" Gretzschel i Kaz (8)
    John Anderson i Charlie Cherry (10)
    Dariusz Bartoszewski i Charlie Cherry (25)
    «« nowszestarsze »»

    Najbliższe imprezy
    Allegro Party 25 wrzesnia 2010 roku zapraszamy do Poznania
    ABBUC JHV 26 pazdziernika 2010 roku zapraszamy do Herten w Niemczech

    Sprzęt/Hardware

    Wynalazki
    SIO2SD w CA12 napisał Urborg (8)
    Ratowanie ATMEL-ów napisał Yoohaas (4)
    Projektowanie cartów napisał Zenon (9)
    Joystick do Atari napisał Larek (52)
    Tygrys Turbo napisał Kaz (4)
    Testowałem "Simple Stereo" napisał Zaxon (3)
    Rozszerzenie 1MB napisał Asal (18)
    Joystick trzyprzyciskowy napisał Sikor (17)
    Moje MyIDE oraz SIO2PC na USB napisał Zaxon (16)
    Jak wykonać płytkę drukowaną? napisał Zaxon (19)
    Rozszerzenie 576kB napisał Asal (11)
    Soczyste kolory napisał scalak (25)
    XEGS Box napisał Zaxon (13)
    Atari w różnych rolach napisał (7)
    SIO2IDE w pudełku napisał Kaz (5)
    Atari steruje tokarką napisał Kaz (11)
    DarkMouse napisał Kaz (7)
    Podwójna pamięć na cartridgu napisał Zenon (7)
    Zmiana barw i klawiszy napisał Kaczor (20)
    Odtwarzacz MP3 jako magnetofon Atari napisał Zaxon (17)
    «« nowszestarsze »»