2,126

(57 odpowiedzi, napisanych Zloty)

jellonek napisał/a:

az korci napisac ze stworca byl raczej bug...

Nic przy zdrowych zmysłach takiego niebożęta jak yerzozwyerz by nie wykoncypowało.

2,127

(27 odpowiedzi, napisanych Bałagan)

@tatqoo: A czy masz może Yoompa w wersji kolekcjonerskiej (komplet: cart, kaseta i dysk)? Chętnie odkupię.

2,128

(18 odpowiedzi, napisanych Bałagan)

A tam jakiś dubstep - posłuchajcie sobie OST Leibacha z Iron Sky - np to: https://www.youtube.com/watch?v=VFvPkyeyLPk
@nosty: dzięki za Skrillex
@gepard: dzięki za Au5 :)
Pięknie skrzypią.

2,129

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

Jeśli max T=100, to co z grami które ciągną się w nieskończoność (River Raid)?

2,130

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

Dwie? Po co?

2,131

(47 odpowiedzi, napisanych Zloty)

Nie cośtam, tylko chiptunes.

2,132

(259 odpowiedzi, napisanych Fabryka - 8bit)

xxl napisał/a:

Moze chodzilo o to, zeby w ktoryms z obszarow karta mozna bylo uzywac rozkazow ktore generuja podwojny odczyt

Dokładnie o to mi chodziło.
Można też sobie wyobrazić, że z wyniku obliczeń trzeba będzie korzystać wielokrotnie, co zwolni programistę od buforowania wyniku w ramie.

2,133

(259 odpowiedzi, napisanych Fabryka - 8bit)

nosty napisał/a:

Brak dekodowania adresow wymusza dyscyplinę u programisty Atari. Musi on trzymac sie protokołów
komunikacji. Nie moze nastapic zaden przypadkowy odczyt ze strony $D5xx bo urzadzenia sie rozsynchronizują.
Ale to sie sprawdza. Te animacje z dema zostawilem kiedys wlaczoną na całą noc i rano w dalszym ciagu działała.

Co do wykorzystania rozkazow, ktore wykonuja np dwa odczyty to tak jak napisal Jell sam cartridge nie ma jak sie tego domyslec. Musialbys miec frimeware ktory "wie", o tym ze uzyjesz takich rozkazow.

A ja bym proponował inne rozwiązanie.
1. Obszar adresowany przez antic, jak wiadomo nie będzie wymagał żadnych cudów i można założyć, że podwójne odczyty się nie zdarzą. Można więc wydzielić obszar np. $d500..$d52f, w którym pojawiałaby się pamięć ekranu do odczytu przez antic.
2. Wszystkie procedury ułatwiające żywot programiście niech korzystają z osobnych komórek. Dzięki temu nie zmuszamy go do dyscypliny (i znajomości niuansów 6502), a dajemy możliwość korzystania z dowolnego trybu adresowania jaki mu w danej chwili się zamarzy. Twój kod do mnożenia wyglądałby tak:

    lda #$40  ;rozkaz mnozenia
    sta $D530
    lda factorA
    sta $D531
    lda factorB
    sta $D532
    lda $D533    ;lsb wyniku
    ldy $D534    ;msb wyniku

Nie ma niespodzianek.

Edit: adresy

2,134

(259 odpowiedzi, napisanych Fabryka - 8bit)

Efekt porażający! Nosty - gdyby była wersja z możliwością flashowania romu tego microchipa, to byłoby świetnie - gry mógłbyś puszczać jak dotąd z dodatkowym wkładem dla pica tak, jak to jest w przypadku vbxe :)
Jeśli dobrze zrozumiałem, to urządzenie działa tak, że sekwencyjne odczyty z tych samych rejestrów (np. $d500) powodują otrzymywanie kolejnych danych (kolejne bajty wyniku w załączonym przez Ciebie przykładzie na mnożenie, lub też zawartość kolejnych linii ekranowych kiedy antic adresuje urządzenie). Czy Twoje rozwiązanie będzie poprawnie działać z trybem adresowania (zpg,x) ?

Edit: BTW ponieważ mnożenie (jak i dodawanie) jest przemienne, to nie ma czegoś takiego, jak mnożna i mnożnik, a są wyłącznie czynniki mnożenia (analogicznie dodajna, dodajnik - składniki).

2,135

(124 odpowiedzi, napisanych Fabryka - 8bit)

drugi problem (przed takim blokiem wstawial automatycznie wczesniej zdefiniowany z parametrem...)

Zdefiniuj sobie makro np ORIGIN z parametrami, które przy generowaniu bloku przed nim wstawi ci co tam potrzebujesz, i zamiast ORG używaj ORIGIN.

2,136

(124 odpowiedzi, napisanych Fabryka - 8bit)

@xxl: Zestaw sobie potok cpp && mads (zamiast cpp możesz oczywiście użyć jakiegokolwiek innego preprocessora makr jak m4 czy gpp).
Ja używam tego do definiowania odwołań względem symboli w czytelnej formie (np. COMFNAM = COMTAB+33) podczas pisania kodu pod SDX.
Wygląda to tak, że definiuję sobie np. rzeczony COMFNAM:

#define COMFNAM COMTAB+33

po czym w kodzie używam już nazwy COMFNAM zamiast COMTAB+33, które nic mi nie mówi.
Kompilacja przebiega dwustopniowo - najpierw z pliku .asx za pomocą preprocessora generuję plik do kompilacji madsem:

$ cpp -P -o plik.tmp plik.asx

po czym efekt kompiluję madsem

$ mads -l -t -o:plik.obx plik.tmp

Oczywiście możesz definiować dowolne makra preprocessora i ich używać, włączać pliki za pomocą #include i takie tam.

2,137

(2 odpowiedzi, napisanych Programowanie - 8 bit)

4 i w dodatku STEREO!

2,138

(6 odpowiedzi, napisanych Scena - 8bit)

Na małym Atari jest to jeden z utworów demonstracyjnych w Future Composer - nazywa się RUNNER.FC.

2,139

(57 odpowiedzi, napisanych Zloty)

http://atari.phorum.pl/

2,140

(36 odpowiedzi, napisanych Zloty)

YERZMYEY/HOOY-PROGRAM napisał/a:

Albo najpewniej w pierwszej kopie pijusów wieczorami zgarnianych w sporych rozmiarów kopce. <ciach />

Też sobie znalazłeś towarzystwo. Wolisz obok Piusa XI czy może XII?

2,141

(36 odpowiedzi, napisanych Zloty)

O przegapiłem grupowe zdjęcie :/
Wielkie dzięki dla organizatora i dla uczestników za super atmosferę. Wracam za rok :)

2,142

(59 odpowiedzi, napisanych Zloty)

My powinniśmy być z Candlem,Electronem (jak bógda) i Yerzozwyerzem po południu w piątek.

2,143

(320 odpowiedzi, napisanych Zloty)

Sarkofag sam wstąpi na Ciebie w stosownej chwili.

2,144

(6 odpowiedzi, napisanych Bałagan)

Stan "po spożyciu".

2,145

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

@syscall: Identyczny, jak przy wykrywaniu dowolnego rozszerzenia dla PORTB - testowany jest tylko obszar między $5000..$57ff. W zasadze to prosto pod tym kątem można by zmodyfikować procedurę wykrywania extramu. Jedyny ból że MapRAM jest dostępny kiedy masz OS wyłączony :/ no ale jeśli traktować to, jak pamięć RAM POD ROM...

2,146

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

http://drac030.krap.pl/APT_spec.pdf

Edit: I jeszcze zobacz co tu jest zrobione

2,147

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

http://atariki.krap.pl/index.php/Format_SpartaDOS

2,148

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

Zrobiłem łatę na atari800, która dodaje support dla MapRAM.

1. Ściągamy z CVS źródła atari800

$ cvs -d:pserver:anonymous@atari800.cvs.sourceforge.net:/cvsroot/atari800 login
$ cvs -z3 -d:pserver:anonymous@atari800.cvs.sourceforge.net:/cvsroot/atari800 export -r HEAD atari800

Zamiast HEAD można podać datę np. 2012/07/14.
2. Ściągamy i aplikujemy łatę:

$ wget http://mono.atari.pl/atari800/atari800-20120713-mapram-patch.diff
$ patch -p0 <atari800-20120713-mapram-patch.diff

Po czym kompilujemy zgodnie z instrukcją.

To oczywiście wersja świeża więc mogą się pojawić bugi. Testowałem to z programami xxla (w załącznikach).
Bugs & requests mile widziane.

2,149

(1 odpowiedzi, napisanych Emulacja - 8bit)

Jakiś czas temu zrobiłem mikrołatę na atari800, która pozwala na montowanie .atr'ów o rozmiarze sektora 512 bajtów.

1. Ściągamy z CVS źródła atari800

$ cvs -d:pserver:anonymous@atari800.cvs.sourceforge.net:/cvsroot/atari800 login
$ cvs -z3 -d:pserver:anonymous@atari800.cvs.sourceforge.net:/cvsroot/atari800 export -r HEAD atari800

Zamiast HEAD można podać datę np. 2012/07/14.
2. Ściągamy i aplikujemy łatę:

$ wget http://mono.atari.pl/atari800/atari800-20110928-512bps-patch.diff
$ patch -p0 <atari800-20110928-512bps-patch.diff

Po czym kompilujemy zgodnie z instrukcją.

Działam na tym już jakiś czas i wygląda na to, że działa.
Bugs & requests mile widziane.

2,150

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

To ja jeszcze się zapytam: dlaczego dostęp do pamięci podstawowej musi być uaktywniony naraz dla ANTICa i CPU? Czy nie ładniej byłoby używać tylko bitu 4 (dostęp do podstawowej dla CPU) tak, jak to jest w rozszerzeniach pamięci?
Wyobraźmy sobie, że mamy 130XE i ANTIC wyświetla nam obraz na podstawie danych z pamięci dodatkowej. Aby użyć pamięci spod I/O aktualnie musimy zmusić na chwilę ANTICa, żeby pokazywał jednak dane z podstawowej pamięci więc ANTIC pociągnie śmieci z podstawowej :/
MMU w Atari steruje pamięcią w obszarze $5000..$57ff tak:
b7 b0
0   0 - RAM podstawowy
1   0 - RAM podstawowy
0   1 - SELF TEST
1   1 - RAM podstawowy
W kombinacji 00 mógłby być podłączany RAM spod I/O (oczywiście zakładam b4=1 czyli dostęp CPU do pamięci podstawowej).