Tebe się bawi w testy, pobawię się i ja.

Kopiowanie danych po pamięci hektarem kodu. 65C816/1,77 MHz.

Bufor źródłowy znajduje się pod (przypadkowo wybranym) adresem $35a7, docelowy pod $36a7, a bufor wyrównany do granicy 256 bajtów pod $3800. Wielkość buforów: 256 bajtów.

1. Zwykle 8-bitowe lda $xxxx / sta $yyyy, najszybsza metoda dostępna dla 6502. 8 cykli na bajt, niecałe 20 linii skaningowych.

2. To samo, ale każda para rozkazów kopiuje word. 5 cykli na bajt, 12,5 linii (5 cykli na bajt).

3. Jeden z buforów (tu źródłowy) został wyrównany do granicy 256 bajtów i wskazany jako strona zerowa: lda $xx / sta $yyyy. 11,5 linii (4,5 cyklu na bajt)

4. Bufor źródłowy jako strona zerowa, docelowy jako stos: pei ($xx). 9 linii (3,5 cyklu na bajt)

5. To samo co 4, tylko bufor źródłowy wyrównany do granicy 256 bajtow. Niecałe 8 linii (3 cykle na bajt).

6. Bufor źródłowy jako strona zerowa (bez wyrównania), bufor docelowy jest wskazany rejestrem Y: lda $xx / sta $yyyy,Y. Niecałe 14 linii (5,5 cyklu na bajt)

7. Bufor źródłowy jest wskazany rejestrem X, a docelowy rejestrem Y: lda $xx,X / sta $yyyy,Y. Tyle samo co powyżej.

8. Jak 7, tylko bez użycia adresowania strony zerowej: lda $xxxx,X / sta $yyyy,Y. 15 linii skaningowych (6 cykli na bajt).

9. Przesłanie blokowe mvn. 7 cykli na bajt, 17,5 linii skaningowej (słabo, ale i tak szybciej od nr 1, a kod zajmuje tylko kilka bajtów).

Metodę nr 9 można bez większych ograniczeń stosować na całej pamięci (16 MB).

Metody nr 1, 2, 8 można zastosować na całej pamięci (16 MB), ale tylko w obrębie konkretnego segmentu 64k.

Metody nr 3, 6, 7 wymagają, żeby jeden z buforów znalazł się w obrębie pierwszych 64k.

Metody nr 4 i 5 wymagają, żeby oba bufory były w obrębie pierwszych 64k. Poza tym lepiej mieć przy tym wyłączone przerwania, bo mogą być niespodzianki :)

--

Refleksja: przykład nr 4 i 5 dobrze obrazuje, jak dobrym pomysłem jest zaimplementowanie w procesorze rejestrów adresowych, które się "same" inkrementują lub dekrementują, i o ile wydajniej można wtedy wykorzystać dokładnie tę samą magistralę: w przykładzie nr 1 procesor połowę (dokładnie, 4 cykle z każdych ośmiu) czasu spędza na pobieraniu z pamięci niewiele różniących się od siebie adresów.

EDIT: poglądowo dorzuciłem zrzut ekranu z tego samego programu działającego na 21 MHz. Oba zrzuty oczywiście z Altirry, ale na Antonii rzecz wygląda dokładnie tak samo jak na pierwszym z załączonych obrazków.

EDIT2: literówki.

127

(111 odpowiedzi, napisanych Programowanie - 8 bit)

Taki kod:

     opt c+

     blk reloc main

start pea #proc-1
     rts

proc nop
     rts

Program idzie w maliny, bo dla pea # nie jest generowany fixup, mimo że etykieta "proc" wskazuje adres.

To samo dotyczy rozkazów typu lda #$xxxx, ldx #$xxxx, ldy #$xxxx, adc #$xxxx, sbc #$xxxx itd. itp.

128

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

A tak. Wycofuję poprzednie twierdzenie, xxl ma rację, jest to jakieś gówno zawierające nielegale (na dodatek mało oryginalne - kolejny klon Zybexa). Sprawa zamknięta.

129

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

Rozumiem. A na czym polega osobliwość? Bo mam wrażenie, że na zwykłym 6502 zachowuje się tak samo.

130

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

Ta gra spokojnie działa na 65C816, po prostu. W każdym razie, u mnie chodzi. Dokładnie tak samo jak na 6502 i dokładnie tak samo jak na emulatorze z włączonym 6502 i wyłączonymi nielegalami. Atrakcyjna nie jest, to fakt.

@perinoid: załatw sobie mocniejszy zasilacz, taki ze 2A na wyjściu, może pomoże.

"Zawijanie adresów" w menu Rapidusa ogranicza się tylko do zmirrorowania strony zerowej w obszarze $010000-$0100FF, reszta pamięci liniowej jest tam gdzie jest, dla programów pisanych pod 6502 to i tak nie robi żadnej różnicy.

131

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

Ściągnąłem, w domu zobaczymy, o co chodzi.

Będzie dobrze. On: https://i.wpimg.pl/O/600x399/i.wp.pl/a/ … p_600.jpeg

nie wróci :)

132

(16 odpowiedzi, napisanych Programowanie - 8 bit)

Zapis do rejestru I/O ($D000-$D7FF), albo odczyt, powoduje synchronizację z zegarem płyty głównej (1,77 MHz).

133

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

Jak słusznie zauważyłem, nie należy zwracać uwagi na to, co pisze jakiś tam amigowiec, to jest forum dla atarowców.

134

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

Podrzuć tę grę w jakiejś strawnej formie (plik, atr). A na Rapidusie pamięci liniowej nie da się wyłączyć.

135

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

perinoid napisał/a:

A udało się komuś na Antonii poprawnie odpalić gierkę HAR'em? Na U1MB+Rapidus wystarczy wyłączyć pamięć liniową i startuje, nawet nie przeszkadza mu 16-to bitowy procek w Rapidusie (inne ustawienia na defaultach). A na Antonii gra się ładuje, menu jest OK, ale przy wejściu do gry się kaszani. Bez względu na ustawiony rozmiar pamięci i sposób adresowania.

Pewnie musisz wyłączyć pamięć liniową. I nie zwracaj uwagi na to, co pisze xxl: on ma, zrobioną na specjalne zamówienie, okaleczoną wersję Antonii. Nawet firmowy flaszer na niej nie działa :)

136

(10 odpowiedzi, napisanych Programowanie - 8 bit)

Dorzuciłem ogólny schemat pamięci Rapidusa i Antonii: http://atariki.krap.pl/index.php/Mapa_pami%C4%99ci

137

(16 odpowiedzi, napisanych Programowanie - 8 bit)

Pin napisał/a:

Czyli po prostu kod siedzi w liniowej i zwolnienie pierwszych 64k do slow ram nie ma tu znaczenia.

Ma to tyle znaczenia, że w liniowej jest ewentualnie więcej miejsca na hektary kodu. Na Rapidusie dodatkowo kod wykonywany w Faście nie jest turbowany przez Antica.

138

(16 odpowiedzi, napisanych Programowanie - 8 bit)

W Antonii cała pamięć chodzi z taką samą prędkością, więc jeśli nie wyrabia w liniowej, nie wyrobi też i w pierwszych 64k.

139

(16 odpowiedzi, napisanych Programowanie - 8 bit)

A to czemu?

EDIT: sprawdziłem na szybko na emulcu, chodzi niezależnie od OS-u - i nie może być inaczej, bo program tebe z OS-u nie korzysta.

Co do Antonii, sprawdzę w domu, ale prawdopodobnie się wysypie, bo CPU w Antonii jest za wolne. Na emulatorze program chodzi od 14 MHz wzwyż.

140

(10 odpowiedzi, napisanych Programowanie - 8 bit)

Następny patent: http://atariki.krap.pl/index.php/Oblicz … i_liniowej

141

(10 odpowiedzi, napisanych Programowanie - 8 bit)

Tak, to jest składnia z datashitu od 65C816, używa jej np. MAE.

142

(37 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

"postataryzm"? uzywasz wyrazow nie rozumiejac ich znaczenia :-)

Tak, biedny misiu, z cała pewnością.

143

(37 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

rozwazales mozliwosc programowania na pc ( http://mads.atari8.info/ ) z uruchomieniem wyniku pod emulatorem zamiast programowania na emulatorze?

Esencja amigowskiego post-ataryzmu. Myślę, dely, że post nr 4 można oprawić w ramki.

EDIT: literówka.

144

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

voy napisał/a:

Co dziwne, gdy podłączyłem kartridż pośrednio przez gniazdo w IDE Plus, zadziałał on i odpalił się bez problemu, niezależnie od tego, czy był uruchomiony BIOS Rapidusa, czy został wyłączony w U1MB. Kartridże odpalają się też na dowolnym z profili dopałki, łącznie z najszybszym. Byłem w stanie uruchomić na tym profilu demo "Control" z SIC!-a, działają też zwykłe kartridże. To samo dzieje się też u Pina.

No właśnie, rzecz raczej nie sprowadza się do softu (czyli loadera rdzenia). Nie wiem, jak jest z kartami 16k, ale karty 8k powinny działać bez problemu, gdyż bez problemu działa SpartaDOS X (niezależnie od tego, czy jest wbudowana, wpinana przez PBI, CART/ECI czy jak - zawsze zachowuje się jak kart).

miker napisał/a:

Przy okazji AtraX popełnił jeszcze carty z:
(...)
- SPARTADOS X (nie mam pojęcia, która wersja).

SDX 4.20

146

(9,859 odpowiedzi, napisanych Bałagan)

Niech go sobie rozwiązują Niemcy, stać ich, a poza tym to ich impreza i przez nich zaproszeni goście.

147

(9,859 odpowiedzi, napisanych Bałagan)

kosa0 napisał/a:

„Mamy przyjąć 7000 uchodźców. Załóżmy, że przyjmujemy ich do Polski i wśród nich jest jeden zamachowiec. Wysadza się w powietrze i ginie 10 Polaków. Ale przecież uratowaliśmy życie tych 6999 osób, które uciekały przed wojną” - takie „szacunki” na antenie TVN24 przedstawiała Anna Pamuła, reporterka związana z „Gazetą Wyborczą”.

148

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

To jest bardzo ciekawe, bo wszystkie partycje IDE+, FAT czy nie FAT, są dostępne przez ogólny interfejs PBI.

149

(268 odpowiedzi, napisanych Fabryka - 8bit)

Ja, jak już gdzieś wyżej deklarowałem, dwie sprężynkowe bym wziął. Może nawet trzy.

150

(268 odpowiedzi, napisanych Fabryka - 8bit)

uicr0Bee napisał/a:

drac030, zmobilizowałeś mnie, odzyskałem hasło do nie używanego od lat konta w atariki i uzupełniłem dwa artykuły o ten p/n.

Dzięki.

Co do nowych folii, póki nie pasują one do klawiatur sprężynkowych, są dla mnie bezużyteczne. Chociaż swego czasu Candle propagował jakiś wynalazek do nabycia w Hameryce, polegający na tym, że nabywało się kulturalne (a nie chińskie z ruskiej gumy, czy też odwrotnie) gumki i wtedy nawet gumowa klawiatura zyskiwała dzielność lepszą od sprężynkowej.