1,526

(51 odpowiedzi, napisanych Emulacja - 8bit)

Nie, zmieniliśmy temat na przyspieszenie emulacji przełączania dodatkowej pamięci.

1,527

(51 odpowiedzi, napisanych Emulacja - 8bit)

alex: Ja tu nie widzę żadnego uproszczenia.

W Atari800 wiekszosc dostepu do pamieci jest opakowana makrami zdefiniowanymi w memory.h, wiec zmiana organizacji pamieci nie powinna nastreczac wiekszych problemow. Nalezy tylko osobno uwzglednic dostep do kodu 6502 w cpu.c oraz dostep do roznych rodzajow danych w antic.c.

Swego czasu w Atari800 bylo tzw. Paged Memory, gdzie dla kazdej strony przestrzeni adresowej (256 bajtow)
byly wskazniki: funkcja odczytujaca, funkcja zapisujaca, wskaznik na pamiec. Obecnie mozna sobie przekompilowac Atari800 tylko z Paged Attrib, gdzie mamy funkcje: odczytującą i zapisującą dla każdej strony pamięci, które to tablice zastępują normalnie używaną tablicę attrib[65536] zawierającą wartości: RAM, ROM, HARDWARE.

Moje pomysły są dwa:

1. Dostęp do danych w dodatkowej pamięci zrobić przez funkcje, podobnie jak dostęp do chipów.
Możnaby użyć tego zarówno z Paged Attrib jak i bez. Kod w Anticu już uwzględnia inne od 6502 ustawienie dostępu do $4000-$7fff dla danych ekranu, wystarczy tam więc mała przeróbka. Stosunkowo niedawno dorobiłem możliwość kompilacji cpu.c tak, aby zamiast adresu PC trzymany był wskaźnik do pamięci.
O dziwo testy wykazały, że nieco spowalnia to emulację. Jednak przydałoby się, gdyby ustawiać ten wskaźnik
tak, aby wskazywał na pamięć rozszerzoną.

2. Użyć sprzętowego mechanizmu stronicowania, który powszechnie występuje w nowoczesnych prockach. Istnieje możliwość mapowania przestrzeni adresowej w pamięć fizyczną stronami o wielkości zazwyczaj 4 KB. A więc tutaj pasowałoby w sam raz. Niestety nie słyszałem, aby jakikolwiek system operacyjny (DOS nie jest systemem operacyjnym) był na tyle wspaniałomyślny, aby dawać procesowi użytkownika możliwość modyfikowania tablicy stron. Trzebaby więc wykombinować albo znaleźć jakieś dodatkowo instalowane sterowniki, które taką możliwość dadzą. Nie muszę chyba dodawać, że jest to rozwiązanie całkowicie nieprzenośne między systemami operacyjnymi i architekturami sprzętu.

1,528

(51 odpowiedzi, napisanych Emulacja - 8bit)

Nie zrozumiałem, co chcesz osiągnąć przeznaczając $10000 na każdy bank zamiast $4000.

1,529

(4 odpowiedzi, napisanych Emulacja - 8bit)

Myślę, że Atari800 powinien pójść (patrz inny topic) - odpalisz sobie w nim sapemu.

1,530

(51 odpowiedzi, napisanych Emulacja - 8bit)

Problem w tym, że nawet sprytne indexowanie nie będzie efektywne przy dostępie do kodu 6502,
którego jest kilkakrotnie więcej, niż dostępu do danych - wystarczy spojrzeć na:

lda #0
sta $600

- 5 bajtów kodu i tylko jeden danych. Jeśli nie chcesz przepisywać z dodatkowej pamięci
do tablicy memory[], to nie tylko każdy dostęp do kodu musi być przez wskaźnik,
ale nie możesz też używać 16-bitowego dostępu w przypadku procków little-endian łykających
niewyrównane dane (w szczególności x86). W przypadku dem wykonujących rozpętlony
kod w dodatkowej pamięci będzie więc spory spadek wydajności, to samo we wszystkich programach
wykorzystujących tylko 64 KB.

1,531

(51 odpowiedzi, napisanych Emulacja - 8bit)

Drac030: pewnie tak, ze względu na to, że wykonuje je część procka od generowania adresów, a nie ALU.

Alex: pewnie napisałeś do Stehlika, który czasem bywa zajęty;
http://cvs.sourceforge.net/viewcvs.py/* … TALL.wince

Jeśli chodzi o "3)" to raczej pobożne życzenia (czytaj: jeśli uda się wam to zrobić, to pogratuluję).

jellonek: dłuższy rozkaz na pewno trudniej załadować, w dodatku taki, który ma parametr

1,532

(51 odpowiedzi, napisanych Emulacja - 8bit)

jellonek napisał/a:

czy MFC jest zaleznoscia atari800 w wypadq wersji PocketPC

Nie jest.

Jeśli chodzi o trudność w określeniu timingów, to cecha procków superskalarnych i/lub z kieszeniami, więc prawdopodobnie również nowych ARMów.

Offtopic: GCC 4.0 generuje np. "lea eax, [eax+1]", ktoś wie dlaczego nie po prostu "inc eax" ?

1,533

(51 odpowiedzi, napisanych Emulacja - 8bit)

jellonek: w tym poście jest mowa o Atari800 a nie o Atari800Win PLus. Biblioteka na WinCE ZTCW obejmuje MFC, brakuje natomiast całkiem podstawowych funkcji libc w rodzaju strdup().
ARMy mają świetny zestaw instrukcji, jednak przewagami x86 mogą być superskalarność (nie wiem jak z tym w ARMach), zmienny przecinek (ZTCW ARMy zwykle go nie mają) oraz dostęp do niewyrównanych słów i "mała indiańskość", co przydaje się przy emulacji 6502.

1,534

(51 odpowiedzi, napisanych Emulacja - 8bit)

Alex: jedyną osobą odpowiedzialną za Atari800/WinCE jest Kostas Nakos i odpowiada on na maile z szybkością błyskawicy, oczywiście pod warunkiem, że napisze się po angielsku. Jeśli chodzi o zaśmiecanie
forum, to raczej zaśmiecasz je nie podając opisu problemu.

nosty: procek 200 MHz powinien spokojnie wystarczać niezależnie od rodzaju (chyba że to Z80 ;-) ).
Możliwe przyczyny to ślimaczący się dostęp do ekranu (wtedy trzeba przestawić refresh)
i brak sprzętowego FPU (wtedy trzeba wyłączyć HiFi Pokey). Kostas wspominał też coś o spadku
wydajności po użyciu menu Atari800 do ok. 50%, więc sprawdź, czy to to.

1,535

(29 odpowiedzi, napisanych Fabryka - 8bit)

epi napisał/a:

Aha: nie ma też zipa i gza.
(a komodziarze zipa ponoć mają - i co?)

Jak to co? Portuj:
http://www.cs.tut.fi/~albert/Dev/puzip/

1,536

(51 odpowiedzi, napisanych Emulacja - 8bit)

No to rzeczywiście świeża jak piwo otwarte 3 lata temu.
Może jednak lepiej zrobić tak, jak napisałem wyżej.

A poza tym nie wkleiłeś błędów, które się pojawiają, nie napisałeś, której wersji Visuala używasz,
nie wiadomo jakie błędy w GUI masz na myśli - jakiej pomocy więc oczekujesz?

1,537

(51 odpowiedzi, napisanych Emulacja - 8bit)

Alex: co rozumiesz przez "najnowszą wersję Atari800" ? Jeśli Ci się mocno nie spieszy, to zaczekaj na 1.4.0, które wyjdzie wkrótce. W przeciwnym przypadku ściągnij sobie źródła z CVSa i ew. mailnij człowieka obecnie odpowiedzialnego za wersję WinCE.

Nosty: refresh na 3, ew. wyłączyć "HiFi Pokey" i może ew. użyć wersji nowszej od 1.3.6.
Jak sam zauważyłeś, PocketC64 jest komercyjny i pewnie nie odpala wielu demek (w odróżnieniu od Atari800).

1,538

(2 odpowiedzi, napisanych Emulacja - 8bit)

Mi działa.

1,539

(6 odpowiedzi, napisanych Emulacja - 8bit)

http://sourceforge.net/tracker/index.ph … tid=428635

1,540

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

Ta, generalnie organizacja compo byla taka, ze no szkoda gadac. Wszystkie przekrety na wszystkich party o jakich slyszeliscie razem wziete to nic. To, co napisal Andreas w tym topicu to nieprawda - tak oficjalnie twierdzi ABBUC. Poczekamy jeszcze troche i zobaczymy. Jeszcze nic pewnego, ze napijemy sie z Epim za ich kase.

1,541

(273 odpowiedzi, napisanych Zloty)

... oraz stopniowe wersje zrodel efektow, zeby bylo wiadomo, ze kod nie jest np. zwalony z komody. ;)
A tak powaznie, to jesli chodzi o grafike Anj zglosil swietny pomysl.

1,542

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

To znaczy jak? (Sorry. 6 lat temu może bym skumał od razu, ale nie teraz. Czy chcesz w każdej linii odpalić DLI i podciągnąć obraz VSCROLLEM o 3 linie? Czy VSCROLL nie ma jakiegoś górnego limitu podkręcania po którym licznik się przekręca?)

Opis jest w "Atarynce". W skrocie chodzi o to, ze VSCROLa zwiekszasz i zmniejszasz, a jednoczesnie wlaczasz i wylaczasz w DL.

1,543

(173 odpowiedzi, napisanych Scena - 8bit)

a robie to dlatego, że chce zobaczyć coś więcej... Poza tym, w kweswtii tego "zbliżania" się; ile nowości można było zaobserwować w latach 95-97, a ile 98-2k3? Z jakiegoś powodu jest ich mniej; a co do osiągnięcia wszystkiego?

Jak pisałem, to problem nietechniczny.

SIKOR -"Ale - znacznie szybszy w przetwarzaniu rozkazów, nieprawdaż?"

Ano, tak się składa, że odpowiedź brzmi: NIEPRAWDAŻ - w trybie emu 65c02 wszystko wygląda identycznie jak w przypadku 6502 - wyłączając z tego nielegale' o czym już chyba pisałem.

65c02 ma w pojedynczych przypadkach rozkazy szybsze o cykl. Tak wiec kod wycyklowany dla 6502 moze nam sie rozjezdzac z obrazem. Poprawna obsluga nowych prockow to nie tylko nieuzywanie nielegalnych instrukcji. W Numenie nic sie nie kaszani na 65816?

1,544

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

trudno na ekranie 80x25 zmieścić tyle informacji.

To przyznam sie, ze dawno temu mialem pomysl pisania swojego programu muzycznego z trybem tekstowym 40x40. Font 8x5 + puste linie. Organizacja pamieci normalna + trzeba odpalic DLI. Ew. znaki 8x6 bez pustych linii.

1,545

(7 odpowiedzi, napisanych Emulacja - 8bit)

Jedynym slusznym emulatorem malucha na wszystkie platformy jest Atari800. Jeśli dla kogoś jest zbyt wolny, to są trzy rozwiązania:
1. Nauczyc sie go dobrze konfigurowac.
2. Dolozyc staran, zeby byl lepszy, czyli dolaczyc do projektu. Nie trzeba umiec programowac, od lat projekt czeka po prostu na dobra dokumentacje.
3. Nie uzywac emulatora.
Z emulatorem jak z zegarkiem - ma byc dokladny, a nie szybki.

1,546

(99 odpowiedzi, napisanych Bałagan)

Trzeba wiec podejsc do sprawy filozoficznie, mowiac 'sral to pies' i pic dalej.

Mojej filozofii blizej do 'nie bedzie lamer plul nam w twarz'. Bardzo dobrze, ze Pinokio powiedzial, co mysli. Czekam na odpowiedz Mariusza, do ktorego osobiscie nic nie mam.

1,547

(273 odpowiedzi, napisanych Zloty)

Jak dla mnie mogą zajmować nawet 6 stron. Jeśli komuś brakuje flopek, to ja mam w nadmiarze. :)

1,548

(173 odpowiedzi, napisanych Scena - 8bit)

Efekty na 6502 są z pewnością baaardzo git, lecz jak wykazuje praktyka ostatnich lat wymyślenie na w/w czegoś nowego zaczyna stwarzać coraz większe "problemy".. chodzi o fakt powolnego zbliżania się do "granic" możliwości sprzętowych

Dodajmy: bardzo powolnego i jesteśmy jeszcze bardzo daleko.
Chyba, że ktoś jest już blisko, to niech się ujawni.
Nie jestem przeciwnikiem 65816, ale nie rozumiem jak koder może powiedzieć, że będzie pisał na 65816, bo na 6502 już wszystko osiągnięto. Problemy są nietechniczne: wkrótce większość scenowców osiągnie wiek Vasca, gdy był już stary. :)

1,549

(273 odpowiedzi, napisanych Zloty)

Czytając teraz wszystkie wypowiedzi zauważyłem dziwną zgodność swoich poglądów z Macgyverem, frasunek!
Music compo: zlikwidować "jeśli organizator wyrazi zgodę", dopuścić RMT i COMy.
Gfx compo: jedno. Czekam na odpowiedź Vasca na to, co pisałem w Syzygy, również ostatnio. Rozumiem, że gdy pojawi się konwerter np. PNG->MIC/GR8/INP/INT/CIN
(kwestia kilku minut), formaty te zostaną dopuszczone do Conversion Gfx compo. Oczywiście, PNG dopiero po wypuszczeniu przeglądarki PNG (to już troszkę więcej roboty). Albo wiem - chodzi o to, żeby taki konwerter trzymać w tajemnicy - wtedy będziemy wystawiać na Graphics compo, bo przecież Conversion Gfx compo ich nie dopuszcza. Proszę jeszcze raz zastanowić się nad sensem wymieniania formatów graficznych, szczególnie takich, które można łatwo skonwertować, jak np. MIC<>PIC czy GR8<>CPR.
Mikey: problem TIPa nie polega na braku narzędzi do rysowania na Atari, gdzie mamy tłum dobrych grafików. Problem polega na tym, że brakuje grafików potrafiących specjalnie przygotować obrazek wykorzystujący ten tryb.
Intro 256: wracanie do DOSu to bzdura. Nigdy tego nie było, a oznaczałoby stratę wielu cennych bajtów. Ewentualnie można napisać, żeby komp nadawał się do użytku po resecie. Zasadniczo jestem też przeciwny nieliczeniu nagłówków, ale ponieważ sam kiedyś z tego skorzystałem, ostatecznie to przeboleję. Trzeba sprecyzować, czy intro może się wczytywać na stos i/lub stronę zerową i czy może korzystać z tego, że pamięć jest wyzerowana (były z tymi sprawami problemy).
Intra&demo: zakaz używania nielegalnych rozkazów jest zły. Jeśli są to dlaczego ich nie wykorzystać? Np. efekt działa o ramkę szybciej jeśli mamy stare 6502 (czyli na XL i starych XE). Oczywiście program sam musi to wykryć i radzić sobie jakoś, jeśli nielegalnych rozkazów nie ma. Ogólnie nie widzę sensu wymieniania akurat nielegalnych rozkazów 6502, skoro nie ma mowy o 65CE02, 65816 i innych prockach. Moje zdanie jest takie: umiem wykryć dodatkowe możliwości i wykorzystać je - ok. Wymagam konkretnego rodzaju procka - źle.
"ze wszystkimi możliwymi 64 lub 128 bankami do wyboru" - to może być mocno niezrozumiałe. 128 banków ma rozszerzenie +2MB i teraz trzeba się zastanowić, czy domagać się możliwości wyboru dowolnych banków dostępnych w tym rozszerzeniu.
Wiąże się to z pewnym dodatkowym nakładem pracy i wydaje mi się, że jest to wciąż "wiedza tajemna".
Loadery: nie mam nic przeciwko nim, o ile są opcjonalne. Generalnie po to jest dodatkowa pamięć, żeby wczytać wszystko naraz. Jeśli ktoś chce napisać demo z efektami przy transmisji szeregowej, działające na 64 KB - proszę bardzo (chętnie bym zobaczył Overmind II), ale niech będzie możliwość wczytania z twardziela do pamięci 1 MB i wtedy efekty mogą być, gdy dane przepisują się z dodatkowej pamięci.
Gęstość medium: ok, wbrew pozorom niektórzy mają nieprzerobione 1050 (nie tyle w Polsce, co gdzie indziej).
Co do dem plikowych - generalnie dobry pomysł, ale tylko dla dem, które mieszczą się na jednej stronie medium.
"Jeśli demo posiada efekty podczas ładowania, nie może używać RAMu pod obszarem FPP - gdyż musi ruszać z HDD." - źle sformułowane - tak, jakby nie można użyć RAMu $d800-$dfff po wczytaniu dema. Chodzi o to, że sterownik SIO może się znajdować w tym obszarze i nie należy oczekiwać, że procedura SIO wczyta nam coś do tego obszaru. Ponieważ SIO jest w ROMie, to nie widzę większego sensu dla tego punktu, chyba że ktoś kopiuje OS do RAMu, a później robi JSR $e459, żeby wczytać w obszar FP - zwolennicy używania DOSów do wczytywania dem niech się wypowiedzą, czy można wczytywać dane bezpośrednio do pamięci pod ROMem i/lub rozszerzonej.

1,550

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

Znak TAB to nie jest po prostu kilka spacji (nawet gdyby byl, to nie wiadomo ile, bo zasadniczo przystanki sa co 8 znakow, ale piszac program nie w asemblerze lepiej miec co 4). To cos zupelnie innego. Edytor QA wstawia spacje zamiast znaków tabulacji, robi tak też wiele edytorów na PC i jest to beznadziejne. Znaku TAB nie nalezy uzywac wewnatrz stalych znakowych - moge zrobic warning albo blad. :)Jesli ktos ma duzo spacji w stalych znakowych (raczej rzadka sprawa) i nie chce uzywac copy/paste, niech sie posluzy edytorem, zeby mu wstawial spacje zamiast znakow TAB. Switch zmieniajacy obsluge znakow TAB to paskudna sprawa, bo powoduje, ze ten sam program po cichu asembluje sie roznie w zaleznosci od tego switcha.

Generacja roznych adresow dla naglowkow i kodu w xasm bedzie, ale wydaje mi sie, ze jest mocno przeceniana. Ma zastosowanie niezwykle rzadko, np. w przypadku kodu, ktory ma byc uruchamiany na stronie zerowej (NEO). Aby umiescic kod w obszarze C000-FFFF sa znacznie prostsze sposoby, niz wczytywanie go pod inny adres i pisanie procedury przepisujacej. Do celow testowych: emulator wczyta execa w ten obszar, wystarczy przelaczyc D301; z PC na Atari mamy xload i xboot+APE. A gotowy program tak czy tak pakujemy - dla szanujacego sie kompresora mozliwosc rozpakowania pod ROM to nie problem.[/list]