651

(3 odpowiedzi, napisanych Emulacja - 8bit)

Dzięki. To już drugi błąd w ATOS-ie, który wykryła "Ryba piła". A mówią, że takie gry nie są do niczego potrzebne...

652

(3 odpowiedzi, napisanych Emulacja - 8bit)

Nie wiem, czy tylko ja tak mam, więc jeśli ktoś ma odrobinę czasu, to prosiłbym o wykonanie dwóch testów. Od razu zaznaczam, że problem występuje wyłącznie pod ATOS OS, pod oryginalnym OS XL – nie.

Konfiguracja: emu Altirra 2.60 z podłączonym systemem Altirra OS XL/XE/XEGS.

Test 1:

Uruchamiamy Altirra BASIC i wykonujemy polecenia (w trybie bezpośrednim):

POKE 16,64:POKE 53774,64

Teraz naciskamy BREAK – klawisz powinien być zablokowany. Następnie wykonujemy polecenie:

GRAPHICS 0

BREAK powinien być odblokowany, czyli działać normalnie. I tu właśnie jest problem, bo u mnie nadal jest zablokowany. Dopiero wykonanie:

POKE 16,192:POKE 53774,192

odblokowuje go.

Test 2:

To samo, ale z Atari BASIC. W tym przypadku nic nie jest w stanie odblokować BREAK, nawet restart emulatora (!). W dodatku wektor procedury BREAK (komórki 566 i 567) wskazuje dziwny adres, odpowiednio: 18 i 255.  Ustawienie wartości standardowych (146 i 192) powoduje...

http://www.freespace.com.au/imagehosting/images/6864076626356881513.png

Ktoś też tak ma?

653

(31 odpowiedzi, napisanych Sprzęt - 8bit)

Stabilizator się nie uszkodzi - ma zabezpieczenie termiczne, po prostu się wyłączy na jakiś czas, ale możesz sobie sparzyć łapę :) Jednak takie wyłączenie nie musi być zdrowe dla stacji. Jeżeli musisz mieć odkręcone stabilizatory od radiatora to użyj dmuchawy, np. suszarki do włosów (oczywiście ustawionej na nadmuch zimnego powietrza).

PS. Jeżeli padnie z przegrzania, to znaczy, że wcześniej było z nim już coś nie tak.

654

(62 odpowiedzi, napisanych Bałagan)

To może się przydać jako prezent dla udobruchania żony/dziewczyny ;) - deska do krojenia w postaci płyty głównej komputera. Uwaga. Posiada ZABEZPIECZENIE ANTYWIRUSOWE (!) i antypoślizgowe. W przeciwieństwie do zwykłego komputera można myć w zmywarce!

http://www.freespace.com.au/imagehosting/images/970066320892443476.jpg

Do nabycia za 12 £ + koszt wysyłki: http://www.sciencemuseumshop.co.uk/home … _board.htm

Na tej stronie są też inne przydatne przedmioty :)

655

(79 odpowiedzi, napisanych Software, Gry - 8bit)

Niedoskonałość, czy też błąd emulacji OS. To samo zjawisko występuje na Atari++.

https://i.postimg.cc/ZnSCr796/Ryba-pi-a-b-d-emulacji.png

Po lewej oryginalny OS XL, po prawej Altirra OS XL/XE/XEGS.

656

(31 odpowiedzi, napisanych Sprzęt - 8bit)

Jeżeli zewrzesz wyjście (12V) z masą to nic się nie stanie. Stabilizator przygotowany jest na taką ewentualność :)
Napięcia są prawidłowe, w takim razie (raczej) będziesz musiał kogoś biegłego poprosić o naprawę stacji.

Na wszelki wypadek ten drugi stabilizator (5V) też bym sprawdził.

657

(79 odpowiedzi, napisanych Software, Gry - 8bit)

A jednak! W imieniu rybki dziękuję ;)  Warto 2-3 razy uratować rybę, wtedy robi się ciekawiej :)

Przy okazji: gra na emulatorze wymaga oryginalnego OS ROM XL lub XE. Pod emulacją OS wbudowaną w Altirrę, grafika nie będzie wyświetlana prawidłowo.

658

(79 odpowiedzi, napisanych Software, Gry - 8bit)

Ech... nikt nie lubi mojej ryby... a to taka sympatyczna rybka, tylko trochę się pogubiła...
Nikt nie pomoże rybce? Gdzie ci dżentelmeni? Pewnie do Anglii wyjechali ;)

659

(14 odpowiedzi, napisanych Bałagan)

Taaak... my Polacy lubimy być złośliwi, tak bezinteresownie. Kolejny wątek w całości bez sensu i w całości (moim zdaniem) do usunięcia.

660

(31 odpowiedzi, napisanych Sprzęt - 8bit)

Najprościej zacząć od sprawdzenia napięć zasilających w stacji. To, że silnik nie daje oznak życia, nie znaczy, że jest uszkodzony.

661

(23 odpowiedzi, napisanych Sprzęt - 8bit)

Stawiałbym, że autor oprogramowania stacji dorobił taką funkcję "na wszelki wypadek". Jeśli nie pomoże, to na pewno nie zaszkodzi.
I teraz tylko spodziewać się, iż ktoś napisze pracę magisterską n.t. "Cofanie głowicy na 39 ścieżkę w stacji Ca 2001". :D

662

(62 odpowiedzi, napisanych Bałagan)

Gra Pacapong, czyli Pong + Pacman + Space Invaders.

http://foteczkowo.pl/di-MZRF8JHJ.gif

No proszę, co to ludzie nie wymyślą...

663

(3 odpowiedzi, napisanych Zloty)

Pozdrowienia gracze!
Okazało się, że blisko 600 m2 przeznaczonych w ubiegłym roku na imprezę nie wystarczyło. W tym roku ma być więcej. Więcej też o tej imprezie dla graczy znajdziecie na stronie CORGS. Można się spodziewać, że i tym razem Atarowców nie zabraknie.

Ktoś będzie w Columbus w Ohio 16 maja?
Aha, dla sprzedawców żarcie za darmo!

http://www.freespace.com.au/imagehosting/images/5117530532718168780.jpg
Tu odbędzie się spotkanie

664

(3 odpowiedzi, napisanych Emulacja - 8bit)

Czyli jednak ślepnę. Mało budujące...

Dzięki Seban :)

665

(3 odpowiedzi, napisanych Emulacja - 8bit)

Po wielu bojach wreszcie udało mi się uruchomić moją rybę na Atari++ (i inne gry też). Nie wiem tylko jak wykonać zrzut ekranu. Są dwie możliwości:
1. Ślepnę na stare lata.
2. W tym emulatorze nie przewidziano możliwości zrzucania czegokolwiek, a już ekranu na pewno.

Czy ktoś bardziej biegły w Atari++ mógłby mnie oświecić?

666

(41 odpowiedzi, napisanych Software, Gry - 8bit)

Phaeronowi zależy na zachowaniu zgodności z OSS BASIC-em XL/XE, a tam właśnie są nazwy  PROTECT i UNPROTECT.

667

(47 odpowiedzi, napisanych Scena - 8bit)

Rozumiem, że żart, ale efekt psuje. Nie pasuje do nastoju muzyki. To tak jakby nagle ktoś wylał kubeł zimnej wody. Śmieszne, ale nie zawsze...

668

(47 odpowiedzi, napisanych Scena - 8bit)

Zgadza się, wyśmienite, tylko ta gadka na końcu psuje efekt.

669

(79 odpowiedzi, napisanych Software, Gry - 8bit)

Miejmy nadzieję, że z wersją 1.39 nie będzie problemu :)

670

(41 odpowiedzi, napisanych Software, Gry - 8bit)

Tak, dokładnie w miejsce Atari BASIC-a.

671

(31 odpowiedzi, napisanych Sprzęt - 8bit)

Fajny schemat. Humanoid, może dołącz go w wątku o TURBO 2001 bo tu za jakiś czas może zostać zapomniany.

672

(79 odpowiedzi, napisanych Software, Gry - 8bit)

Pełny opis po angielsku znajduje się w paczce z grą. Jako że jest to forum polskie, nie chciałem za bardzo przynudzać w obcym języku ;)

673

(41 odpowiedzi, napisanych Software, Gry - 8bit)

Główny problem ze zgodnością i chyba jedyny, to większa prędkość ATB. Można zastosować przełącznik BASIC-ów (również w sensie programowym) lub zewnętrzny kartridż AB, jak w A 400/800.

674

(41 odpowiedzi, napisanych Software, Gry - 8bit)

http://i.imgbox.com/TFsa7Va0.png

Altirra BASIC jest interpreterem przeznaczonym dla rodziny Atari 8-bit, w tym 400/800, 1200XL, 600/800XL, 800/130XE i XEGS. Zaprojektowany, by stanowić zamiennik „kropla w kroplę” dla Atari BASIC-a, ale z dodatkowymi rozszerzeniami i szybciej działający. Jest też łatwiejszy w użyciu. Pomimo tej zgodności, Altirra BASIC nie opiera się na Atari BASIC-u, lecz stanowi reimplementację od podstaw.

To nie jest mój opis, a przetłumaczony (mniej więcej) wstęp z podręcznika „Altirra BASIC Reference Manual. 11/29/14 Edition”. Autorem zarówno podręcznika, jak i „Altirry BASIC-a” jest Avery Lee, znany też pod ksywką phaeron. Jeżeli ktoś chciałby zaznajomić się ze szczegółami, to polecam ten podręcznik – link na dole postu.

Altirra BASIC występuje w dwóch formatach: obrazu kartridża ROM 8 kB (atbasic.bin) i pliku uruchamianego spod DOS-a (atbasicx.xex). Pod SpartaDOS do wczytywania musi być użyte polecenie X.

Niedawno na Atari Age ktoś wykrył drobny błąd w interpreterze. Uznałem, że to dobry pretekst, by bliżej zaznajomić się z tą odmianą BASIC-a. Poniżej przedstawię czym różni się Altirra BASIC od Atari BASIC-a, a konkretnie jakimi poleceniami i dorzucę garść moich wrażeń z pracą z tym programem.

Przyjąłem, iż osobie czytającej ten tekst znane są podstawy programowania w BASIC-u. - Oto nowe polecenia:


Operacje na liczbach i pamięci

&, !, %
Binarne: koniunkcja [AND] (&), alternatywa [OR] (!) i alternatywa wykluczająca [exclusive OR, XOR] (%). Dopuszczalny zakres liczb to 0 - 65535.

$hhhh
Liczby szesnastkowe (HEX) w programie. Można używać liczb całkowitych z zakresu 0 - 65535 ($0 - $FFFF - hex), np. $FDE8 to 65000 dziesiętnie.

HEX$(n)
Zamienia liczbę „n” formacie dziesiętnym na liczbę szesnastkową w formacie czterech znaków.
Uwaga: w tym samym wyrażeniu może występować tylko jedno HEX$ lub STR$. Np. wyrażenie STR$(n)<(HEX$(n) doprowadzi do błędnego wyniku.

BGET #IOCB, dokąd, ile
Pobiera dane z kanału IOCB i zapisuje do lokalizacji pamięci, począwszy od adresu „dokąd”. Ilość przesyłanych bajtów określa trzeci parametr (ile).

BPUT #IOCB, skąd, ile
Przesyła dane do kanału IOCB, począwszy od lokalizacji w pamięci „skąd”. Ilość przesyłanych bajtów określa trzeci parametr (ile).

DPEEK(n)
Odczytuje 2-bajtową liczbę (słowo) spod adresu n według wzoru: n+256*(n+1). Odczytywana liczba zawiera się przedziale 0 - 65535.

DPOKE n, słowo
Zapisuje słowo do dwóch kolejnych komórek pamięci, począwszy od n. Dopuszczalne są liczby całkowite z przedziału 0 - 65535.

MOVE skąd, dokąd, ile
Dokonuje transferu bloku pamięci od adresu skąd, do adresu dokąd. Ile określa ilość transferowanych bajtów. Jeżeli adres dokąd jest mniejszy niż skąd + ile nastąpi nadpisanie. Aby tego uniknąć, należy parametr ile podać jako ujemny.

Obsługa manipulatorów

HSTICK(n)
Zwraca poziomą (horyzontalną) pozycję dżojstika n (n=0 dżojstik w porcie #1, n=1 dżojstik w porcie #2). Jeżeli dźwignia wychylona jest w lewo - -1, jeżeli prawo - +1, a 0 w pozycji neutralnej.

VSTICK(n)
Zwraca pionową pozycję dżojstika n (n=0 dżojstik w porcie #1, n=1 dżojstik w porcie #2). Jeżeli dźwignia wychylona jest w dół (do siebie) - -1, jeżeli w górę (od siebie) - +1, a 0 w pozycji neutralnej.

Operacje dyskowe

DIR"dn:nazwa"
Wyświetla pliki z katalogu dysku lub innego urządzenia „d” o numerze „n” i wskazanej nazwie. Samo „DIR” (bez parametrów) wyświetli cały katalog dysku nr 1.

ERASE"dn:nazwa"
Kasuje plik (pliki) z katalogu dysku lub innego urządzenia „d” o numerze „n” i wskazanej nazwie. Skrót to ER. (nie podaje go Altirra BASIC Reference Manual. 11/29/14 Edition).

PROTECT"dn:nazwa"
Nakłada na plik blokadę przed skasowaniem lub zmianą nazwy. Format analogiczny do ERASE. Skrót to PRO. (nie podaje go Altirra BASIC Reference Manual. 11/29/14 Edition).

RENAME"dn:nazwa_stara,nazwa_nowa"
Zmienia nazwę pliku. Np. RENAME"D3:PLIK.EXE,PLIK.XEX”.

UNPROTECT"dn:nazwa"
Polecenie odwrotne do PROTECT.

CP
Przejście do DOS-a zorientowanego na procesor poleceń (linię komend), a nie menu jak np. w DOS 2.5 czy MyDOS.

* * *

Podsumowując...

Altirra BASIC (ATB), jak już wspomniano, ogólnie działa nieco szybciej niż Atari BASIC, a to za sprawą pewnych ulepszeń. Buforuje adresy powrotu poleceń FOR i GOSUB, rozpoczyna poszukiwanie linii od aktualnej, a nie od początku programu. Niemniej jednak niektóre polecenia, szczególnie skoku wstecz (np. 1000 GOTO 900) mogą być wykonywane wolniej niż Atari BASIC-u.

Zastosowanie nadal mają wszystkie zalecenia dotyczące optymalizacji programu w Atari BASIC-u. Np. umieszczenie większej liczby poleceń w jednej linii, zwłaszcza pętli, przyspieszy działanie. Procedury krytyczne czasowo należy umieszczać blisko początku programu. Im dalej tym wolniej program jest wykonywany.

Mnie w szczególności cieszy pojawienie się takich poleceń jak MOVE i DIR. Pierwsze pozwala na np. błyskawiczną „podmianę” generatora znaków (wreszcie nie trzeba stosować „protezy” w asemblerze), drugie na odczyt katalogu dysku, co łącznie z pozostałymi poleceniami dyskowymi znacząco poprawia komfort obsługi. Czasami zdarzało się, że chciałem wczytać jakiś program, ale nie pamiętałem nazwy, więc skok do DOS-a, sprawdzenie katalogu i powrót do BASIC-a. Teraz można wczytać program, o ile nadal pamięta się jego nazwę. ;) Obecnie wpisujemy z poziomu BASIC-a DIR i już wiadomo wszystko.

Polecenia HSTICK i VSTICK upraszczają i ułatwiają obsługę dżojstików, co przy nieoszałamiającej prędkości interpretera jest istotnym postępem. BPUT i BGET - wreszcie szybka współpraca z dyskiem przy przesyłaniu danych. Niektórzy pewnie z zadowoleniem przyjmą możliwość używania liczb w formacie szesnastkowym.

Jak wygląda kwestia kompatybilności?

Wszystkie programy napisane w Atari BASIC-u można uruchamiać pod ATB. Odwrotnie również, o ile nie zostaną użyte polecenia niedostępne w Atari BASIC-u. Tokeny ATB są w pełni zgodne z OSS BASIC-em XL i XE dlatego nie ma problemu z wymianą oprogramowania w obu kierunkach - przy zastrzeżeniu, że programy napisane w BASIC-u XL lub XE a uruchamiane pod ATB nie posiadają poleceń niewystępujących w ATB. Z przenoszeniem programów do Turbo-BASIC-a XL jest już trudniej, ale też istnieje taka możliwość. Ponownie musi być spełniony warunek braku w programie poleceń niewystępujących, tym razem wzajemnie. Przykładowo w TBXL nie ma polecenia HSTICK i VSTICK. Jest jeszcze drugi warunek. Ze względu na różnice w tokenach, przeniesienie musi następować przez zapisanie źródłowego programu poleceniem LIST i odczytanie go przez ENTER pod interpreterem docelowym.

Jak pisze się programy w ATB?

Cóż, brak pętli warunkowej, choćby WHILE - WEND czy polecenia IF - ELSE, komplikuje w wielu przypadkach kod. Te same zadania np. w Turbo-Basic-u XL, BASIC-u XE czy w Advanie można wykonać nierzadko znacznie prościej i... szybciej. Dokucza też brak polecenia RENUM (zmiana numerów linii). Nieco łagodzi ten problem możliwość wykorzystania renumeratora z BASIC-a XL lub XE, jeżeli posiada się stosowny kartridż. Aby nie przedłużać - ATB sporo brakuje do innych implementacji BASIC-a, szczególnie tych wymienionych przed momentem.

Zatem czy ATB mnie rozczarował? Nic podobnego. Celem stworzenia tego języka było zastąpienie 1:1 staruszka Atari BASIC-a, który już nie mógł doczekać się przejścia na emeryturę, nowym. I to zdecydowanie się udało! Modernizacja w takim zakresie z zachowaniem rozmiaru 8 kB to nie lada wyczyn.

Jeżeli ktoś jest przywiązany do programowania w Atari BASIC-u, to Altirrę BASIC przyjmie z pewnością z zadowoleniem, a przynajmniej taka jest moja ocena. Tu jeszcze jedna uwaga. Jeśli masz niedobre przyzwyczajenie przerywania programu w BASIC-u poprzez RESET, to teraz będziesz musiał zapomnieć o tym klawiszu. Jego naciśnięcie spowoduje zimny start komputera, czyli utratę całej zawartości pamięci RAM. Nie jest to problem, bo RESET jest rodzajem wyjścia awaryjnego i normalnie nie powinien być używany.

W chwili ukazania tego postu najnowsza wersja ATB to 1.39, ale niewykluczone, że pojawią się nowsze.

Jest jeden haczyk. Brak kompilatora, ale to już inna historia i opowiemy (być może) ją wam innym razem.

Zaraz, zaraz, to już koniec? Przecież była mowa o pisaniu programu? No tak, najlepiej poznać język coś w nim pisząc. Ech... niech wam będzie... zajrzyjcie do Krainy BASIC-a. :)

- - - - - -
Aktualizacja: 23.04.2015

Powyższy opis dotyczy wersji 1.39, tymczasem pojawiła się wersja 1.40 z rewolucyjną, można rzec, zmianą, a mianowicie:

IF warunek:instr.1:ELSE: instr.2:ENDIF
Jeżeli warunek po IF jest prawdziwy, to zostaną wykonane wszystkie instrukcje przed słowem kluczowym ELSE (instr.1). Jeżeli warunek nie jest prawdziwy, wówczas wykonane zostaną instrukcje pomiędzy ELSE a ENDIF (instr.2). Polecenie IF...ELSE...ENDIF nie musi mieścić się w jednej linii, może obejmować wiele linii programu.

- - - - - -
Aktualizacja: 19.05.2015

Dwa nowe polecenia.

ERR(n)
Wraz z TRAP pozwala na napisanie własnej obsługi błędów w programie. Jeżeli n=0 to funkcja ta zwraca numer błędu, jeżeli n=1, numer linii, w której wystąpił błąd. Przykład:

10 TRAP 100
20 A=10/0
100 ? ERR(0),ERR(1)

Ready
RUN
11        20

LOMEM adres
Rezerwuje obszar pamięci poniżej programu. Np. LOMEM DPEEK(128)+256. Uwaga. Polecenie te usuwa aktualnie znajdujący się w pamięci program.

- - - - - -
Aktualizacja: 10.06.2015

Tym razem sześć nowych poleceń przeznaczonych do obsługi PMG.

BUMP(nr_p/m,kolizja_z_obiektem)
Odczytuje zawartość sprzętowego rejestru kolizji PMG. Przyjmuje wartość 1, gdy kolizja wystąpiła lub 0, gdy kolizji nie było. Aby uzyskać właściwy wynik, odpowiednio przed odczytem BUMP należy skasować rejestr kolizji (POKE 53278,dowolna_wartość_niezerowa).
https://images2.imgbox.com/d0/e8/sLNwJQgp_o.png

MISSILE nr,pozycja_pionowa,wysokość
Aktywuje wybrany (nr=4-7) missile (pocisk) umieszczony na pozycji pionowej (liczonej od góry ekranu) o wskazanej wysokości. Np. MISSILE 7,96,8 umieści missile 7 (czyli 3 według oznaczenia Atari) na pozycji 96 od góry ekranu o wysokości 8 pikseli. Kolejne użycie tego polecenia z tym samym numerem pocisku usuwa obiekt z poprzedniej pozycji, umożliwiając w ten sposób tworzenie animacji.

PMADR(nr_p/m)
Podaje położenie w pamięci wybranego playera (0-3) lub łącznie wszystkich missile (4-7).

PMCLR nr_p/m
Czyści pamięć przeznaczoną dla wybranego playera (0-3) lub łącznie wszystkich missile (4-7).

PMGRAPHICS n
Wyłącza (n=0) lub włącza grafikę PM: n=1 – rozdzielczość jednoliniowa, n=2 – dwuliniowa.

PMMOVE nr_p/m,h;v
Przesuwa wybrany (nr) player lub missile na ekranie. H to bezwzględna pozycja pozioma (0-255), a v (oddzielany średnikiem!) to pozycja względna, tzn. określa, o ile pikseli w pionie zostanie przesunięty wybrany obiekt. Dopuszczalny zakres to od 0 do +255 w górę i od 0 do -255 w dół. Np. PMMOVE 0,100,-2 ustawi na ekranie playera 0 na poz. poziomej 100 i równocześnie przesunie go w pionie o dwa piksele w dół. Parametry h i v są opcjonalne, tzn. jeden z nich może zostać pominięty.

- - - - - -
Aktualizacja: 05.07.2015

Nowe polecenie do obsługi PMG.

PMCOLOR nr_p/m,kolor,jaskrawość
Ustala kolor playera (0-3) i równocześnie missile o tym samym numerze co player. Kolor i jaskrawość to parametr z zakresu 0-15.

- - - - - -
Najnowsza aktualizacja: 9.05.2017

Phaeron udostępnił poprawioną wersję ATB (1.54), tym razem problem wystąpił z poleceniem PMBASE.

675

(79 odpowiedzi, napisanych Software, Gry - 8bit)

Ryba piła

Autor: Bluki, wydawca: Blue Kitten Software, rok: 2015.
Język: Altirra BASIC


http://i.imgbox.com/G3GRgn6q.png

https://images2.imgbox.com/6e/40/fG4UdMzy_o.gif

<Filmik: oglądaj online>

Komu pierwszemu uda się pomóc rybce proszę się pochwalić!

To już druga mini gra w „Krainie BASIC-a” i zarazem premiera. Użytkownicy niezarejestrowani mogą pobrać grę z tego miejsca.

To cóż... dobrej zabawy!