126

(20 odpowiedzi, napisanych Zloty)

koala napisał/a:

Jak ostatnio udało mi się trochę z nim porozmawiać to narzekał na bóle w nogach że nie może za dużo chodzić:( Może to jakoś się przyczyniło do śmierci

No raczej. To typowy objaw bardzo zaawansowanej miażdżycy.

Szkoda chłopa, ale co tu dużo gadać, każdego to czeka prędzej czy później.

127

(44 odpowiedzi, napisanych Fabryka - 8bit)

Odmiana CAR:LESS.COM, która jest w stanie użyć dodatkowej pamięci (jeśli dostępna) na bufor dla pliku tekstowego.

Jak używać:

1) kopiujemy na HDD, dajmy na to, że na D3:>SDX>XLESS.COM

2) do pliku CONFIG.SYS dodajemy linijkę SET PAGER=C:>SDX>XLESS.COM;/C;

3) restartujemy całość

Od tej pory nowa przeglądarka tekstów powinna być wywoływana przez MAN.COM do przeglądania dokumentacji.

Jeśli komunikat "Formatting" widnieje na ekranie za długo, należy się zastanowić, jak wielki plik sprzedaliśmy programowi do formatowania. Szybkość tej operacji to ok. 12 KB/s (na 1,77 MHz). Więc plik tekstowy 240k = 20 sekund czekania.

Takiej listy dla wszystkich możliwych kombinacji nie mam. Np. wypełnianie stałą wartością można zrobić przez pea $xxxx (również znane jako pea #$xxxx) po ustawieniu wskaźnika stosu na koniec wypełnianego obszaru. Rozkaz zajmuje 5 cykli, a zapisuje 2 bajty, więc mamy 2,5 cyklu na bajt.

Reszta raczej normalnie, czyli np. lda #$xxxx / sta $yyyy zajmie >=8 cykli (3 cykle lda, 5 cykli każde następne sta). Jeśli na adres danej strony ustawimy wskaźnik D, wtedy sta zajmie 1 cykl mniej. Itd.

Instrukcji odwrotnej do PEI nie ma, ale można w razie potrzeby zamienić miejscami wartości rejestrów D i S. Nie wiem jednak, czy zajdzie taka potrzeba, bo wskaźnikiem stosu można zaadresować 64k i wskaźnikiem strony zerowej tyleż.

No tak, program przełącza się w native mode od razu na samym początku. Żeby się nie sypnął, potrzebny jest OS z obsługą przerwań w trybie natywnym. Zapomniałem o tym napisać, bo mój komp ma taki konfig cały czas.

SDX nie jest potrzebna do uruchomienia tego, powinno pójść pod każdym loaderem i DOS-em.

EDIT: ale kiedy mamy już SDX, przesłanie pliku do Altirry jest prostsze.

System -> Devices -> Add -> Serial I/O bus devices -> PCLink *klik* -> OK *klik* -> Settings *klik*

Wybieramy podkatalog dla serwera PCLink. OK *klik* OK *klik*

Z dysku SDX Toolkit http://sdx.atari8.info/index.php?show=e … ad_special wyciągamy sterownik PCLINK.SYS i kopiujemy sobie na dysk, z którego bootujemy Altirrę. Wczytujemy sterownik z palca albo z CONFIG-a.

COPY PCL:FOO.BAR ściąga plik FOO.BAR znajdujący się w wyżej wybranym katalogu na dysk emulowanego Atari. Można też odpalić bezpośrednio.

Adam Klobukowski napisał/a:

O ile się nie mylę, move.l (a0)+,(a1)+ = 20 cykli czyli 5 cykli na bajt, czyli około 1.6MB/s.
Przy pomocy movem da się chyba jeszcze szybciej, ale nie jestem w stanie policzyć.

Oczywiście masz rację. A ja też powołałem się na przypadek specjalnej optymalizacji. Na Motoroli move jest bardziej uniwersalne i nie trzeba się zastanawiać, na jakiej pamięci się je wykonuje. Nadal, przykład nr 8 to 288 KB/s. Przy zegarze 8 MHz bylibyśmy tylko trochę z tyłu za Motką.

Btw. 65C816 zostal wprowadzony na rynek 4 lata po 68000, więc nic dziwnego że ma usprawnienia.

To są usprawnienia, ale tylko w stosunku do 6502. W stosunku do 68000 ten procesor jest dokładnie piętro niżej (8/16 w stosunku do 16/32). O tym, moim zdaniem, że on mimo tego może nadal konkurować z 68000 (oczywiście na dłużą metę odpadając, ale jednak nie tak bardzo jak 6502), stanowi synchroniczna magistrala i jej zasada, że 1 cykl = 1 bajt. W Motce 68k mamy chyba 1 word = 4 cykle i tu można coś ugrać.

Proszę mnie poprawić, jeśli się mylę w obliczeniach:

1) Motorola 68000/8 MHz, move.w (a0)+,(a1)+ = 12 cykli, czyli 6 cykli na bajt. Jakieś 1,2 MB/s. Dane muszą być wyrównane do granicy słowa.

2) 65C816/1,773 MHz (zegar wolniejszy 4,5 raza), metoda nr 5: 577 KB/s. Dane muszą być wyrównane do granicy strony. Bez wyrównania (metoda nr 4) to tylko 500 KB/s.

P.S. Zaczynam rozumieć, dlaczego 65C816 wywołuje taką agresję u co prymitywniejszych amigowców :)

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.

133

(117 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.

134

(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.

135

(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.

136

(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.

137

(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 :)

138

(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).

139

(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.

140

(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ć.

141

(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 :)

142

(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

143

(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.

144

(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.

145

(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ż.

146

(10 odpowiedzi, napisanych Programowanie - 8 bit)

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

147

(10 odpowiedzi, napisanych Programowanie - 8 bit)

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

148

(37 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

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

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

149

(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.

150

(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).