351

(638 odpowiedzi, napisanych Programowanie - 8 bit)

drac030 napisał/a:
epi napisał/a:

Z jakiegoś powodu autorzy programowych emulatorów nie mają mentalnego problemu z zaimplementowaniem nieudokumentowanych rozkazów.

To znaczy, tak czysto technicznie rzecz biorąc, jak proponujesz zaimplementować dwie różne listy opkodów w jednym i tym samym scalaku?

Przełączane rejestrem. Na 2 różne listy wystarcza 1-bitowy.

drac030 napisał/a:

Właśnie na tym polega specyfika Atari, że u nas nielegale były wykorzystywane rzadko. Programy z tego powodu nie działające na 65816 można policzyć na palcach (niekoniecznie jednej ręki, ale jednak). Koderzy do tej pory - z nielicznymi wyjątkami - świetnie radzili sobie bez nich, przez co programy chodziły zarówno na NMOS-owym 6502, jak i na jego wersjach rozwojowych. W imię czego, pytam się, mamy to zmieniać?

Nikt tego, póki co, nie zmienia. Tu się tylko sprawdza, jak działają wraże opkody i poszukuje przypadków użycia. Konsenwencje nieuzasadnionego użycia są dobrze znane i uważam za bezcelowe dalsze ich roztrząsanie.

drac030 napisał/a:

Ale nie ma sensu oszukiwać samego siebie, że zrobiłeś sprzęt zgodny.

Powiedz to pierwszemu gościowi, który wmontował do peceta 80286 zamiast "klasycznego" i "standardowego" 8086, mimo że na 80286 nie chodzą dokładnie wszystkie programy napisane na 8086. I wyjaśnij mu, teraz, w roku 2012, że robiąc to, głęboko ideologicznie się mylił, gdyż zamiast prawdziwego procesora włożył tam "zmutowany", "niekompatybilny", "emulator" i w związku z tym otrzymał "nieprawdziwego", lub też ewentualnie nawet "niekażdego" peceta. Bo przecież nielegalne rozkazy 8086 działają na każdym IBM PC, nie?

Nie przypominam sobie, żeby producenci pecetów z 80286 wysuwali oskarżenia w stronę programistów 8086 o psucie ich marzeń o podboju rynku. Być może dlatego, że byłem w tych czasach małym dzieckiem, a być może dlatego, że koniec końców pozwolono im umrzeć śmiercią naturalną, albo przerzucić się na nowszy sprzęt. W ogóle całe porównanie jest nieco na wyrost, biorąc pod uwagę techniczne zaawansowanie produktu w dniu wypuszczenia na rynek jak i spodziewane nakłady produkcyjne. ;)

Nie chodzi mi o zasadność, koszerność, prawdziwość, czy nawet aryjskość (lub brak którejś z nich), ani samej płytki Candle'a, ani też procesora, który ma się tam znaleźć. Domagam się jedynie zaprzestania ewangelizacji. Rozwój wymaga czasem palenia mostów (niedawno pisałem też o tym w wątku o C++), a jeśli ktoś upiera się przy pozostaniu po "starej" stronie - jego sprawa i nie wiem po jaką cholerę chcecie go na siłę przeciągać na swoje poletko.

352

(638 odpowiedzi, napisanych Programowanie - 8 bit)

Z jakiegoś powodu autorzy programowych emulatorów nie mają mentalnego problemu z zaimplementowaniem nieudokumentowanych rozkazów. One tam były od zawsze i były wykorzystywane i nie zmienisz tego nawet obrażając się na XXLa. Ignorowanie, owszem, może ci pomóc w doprowadzeniu do końca projektu w takim kształcie, w jakim go zaplanowałeś. Ale nie ma sensu oszukiwać samego siebie, że zrobiłeś sprzęt zgodny.

353

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

Nie jest taka sama, ale nie jest też obleśną amigową 100% separacją ścieżek. Porównaj sobie: http://asma.atari.org/asmadb/search.php?play=2707

Jeśli bardzo chcesz test, to napisz w BASICu:

10 FOR P=53760 TO 53776 STEP 16
20 ? "POKEY: ";P
30 FOR I=0 TO 6 STEP 2
40 ? "VOICE: ";I/2+1:POKE P+I,120:POKE P+1+I,170
50 FOR J=0 TO 200:NEXT J
60 POKE P+I,0:POKE P+1+I,0
70 NEXT I
80 NEXT P

Nie sprawdzałem, mogą być błędy. Spodziewana akcja to najpierw dźwięk na czterech kolejnych kanałach lewego POKEYa, a potem na czterech kolejnych kanałach prawego POKEYa.

354

(638 odpowiedzi, napisanych Programowanie - 8 bit)

Candle napisał/a:

Doceniam zapał elektroników do wymyślania rozszerzeń, ale jeśli potrzebuję wypasioną grafikę i procesor, to wyciągam z kieszeni Androida. Co do nabywców rozszerzeń: nikt Wam nie każe ich zakładać, a jeśli dobrowolnie sami zakładacie, to liczcie się z konsekwencjami

czyli piszesz, że doceniasz zapał elektroników, kompletnie zbędny, bo po co,wszak to nie atari, jednocześnie korzystając z wybranych przez siebie udogodnień
jak sądzisz, jaką ja mam motywacje do robienia czegokolwiek dla atari widząc takie wypowiedzi?
traktuje to osobiście? oczywiście, że tak

Oczywiście, że z "wybranych przez siebie". Pozwalasz komuś innemu decydować o tym, czego będziesz używać? Dlaczego nie możesz być zmotywowany bez (agresywnego, moim zdaniem) odbierania motywacji innym? Dlaczego jedyną słuszną drogą ma być droga, którą Ty wybrałeś?

Akurat w tym wątku XXL i Fox rzeczowo podchodzą do tematu badania jak zachowuje się konkretny sprzęt - w tym przypadku 6502C - i CO MOŻNA na nim zrobić. Natomiast co poniektórzy zrobili sobie tutaj pole do ewangelizowania i wmawiania pozostałym co jest koszerne, a co nie (i są tacy po obu stronach). Odpuśćcie sobie, jako użytkownicy sprzętu i oprogramowania nie jesteśmy jednakowi, mamy różne potrzeby i preferencje, więc możliwość wyboru tylko nas cieszy, a wasze przepychanki zniesmaczają.

Jeżeli zwolennikom rozszerzeń nie podobają się metody XXLa, to już wielokrotnie o tym nas poinformowali i mogą już sobie pójść i usiąść do swoich klawiatur i lutownic i pracować dalej nad rozwojem swoich dzieł. Jeśli szukacie sławy z jednoczesną bezwzględną aprecjacją swoich dokonań, to polecam wizytę u psychologa.
Jeżeli zwolennikom nieskażonego rozszerzeniem compo-machine nie podoba się regulamin compo prowadzonego przez Pina - nie instalujcie rozszerzeń w swoich komputerach (jak pisał Fox - nikt nie zmusza!) umówcie się odpowiednio wcześniej z organizatorem zlotu, że poświęcicie cały swój dzień lub dwa na kopiowanie i sprawdzanie prac, ustalcie regulamin, przywieźcie sprzęt i zorganizujcie sami compo według reguł, które uważacie za stosowne. Ciekawe czy w akcji też będziecie tak mocni, jak w klepaniu na forum.

Myślałem, że robimy to, bo to lubimy, a tymczasem niektórzy najlepsze zajęcie dla siebie widzą w przekonywaniu innych, co mają robić. Ponieważ nikt mi za to nie płaci, świadomy konsekwencji będę sam wybierał co, kiedy, w jaki sposób i na jaką konfigurację sprzętową zakoduję (czym więcej możliwości do wyboru, tym więcej frajdy!) i c*** wam do tego. Nara!

355

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

W Numenie są jednakowe. W Yoompie dźwięk podskakującej piłki "przesuwa się" płynnie zależnie od tego, z której strony ekranu znajduje się piłka. :)

356

(371 odpowiedzi, napisanych Fabryka - 8bit)

Dodam tylko, że odkurzyłem r0l0playera i w planach jest port na side, jak już przyjedzie. :)

357

(371 odpowiedzi, napisanych Fabryka - 8bit)

A to ja też. +1.

358

(638 odpowiedzi, napisanych Programowanie - 8 bit)

LOL.
Takie coś to można napisać krócej na samych "legalach". :)

num equ 256*hi+lo
 ldx #<[65536-num]
 lda #>[65536-num]

359

(42 odpowiedzi, napisanych Scena - 8bit)

Wszystko w swoim czasie.

360

(43 odpowiedzi, napisanych Zloty)

jell: http://www.atari.org.pl/forum/viewtopic … 50#p135350 ;)

361

(638 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:
epi napisał/a:

To właśnie napisałem: "z którą powinien być zgodny".

innymi slowy :-) jesli piszesz program zgodnie z oficjalna dokumentacja na standardowym atari nie masz gwarancji ze bedzie dzialac. to tyle jesli chodzi o wartosc oficalnej dokumentacji ;-)

Ale chyba mi nie powiesz, że wobec tego będziesz polegać na zachowaniu wynikającym z buga. Bo nie będziesz. Są wyjątki, gdzie wykorzystanie buga lub nieudokumentowanego zachowania daje wymierne korzyści, których nie da się uzyskać inaczej. Ale jeśli jedyną motywacją jest to, że w pewnych warunkach można, to jest to zwyczajna złośliwość (która prędzej czy później obróci się przeciwko tobie).

362

(638 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

Chyba, ze zgodzisz sie ze 6502C nie jest zgodne z oficjalna dokumentacja 6502C ;-)

To właśnie napisałem: "z którą powinien być zgodny". :)

xxl napisał/a:

dostajesz to w standardzie ;-) podobnie jak paczke "bagow" ;-)

Dlatego traktuję je dokładnie tak samo jak "bagi". Nie polegam na nich, ale jestem skłonny zaakceptować wykorzystanie ich, jeśli efekt jest interesujący i nie da się go osiągnąć w inny sposób, nawet jeśli na części maszyn nie zadziała (choć oczywiście wolałbym, żeby zadziałał na mojej :)).

363

(638 odpowiedzi, napisanych Programowanie - 8 bit)

Są tu co najmniej dwie różne sprawy - research nt. działania przypadkowych rozkazów, niewątpliwie interesujący i potrzebny, oraz offtopic związany z tym co jest, a co nie jest koszerne na kompo, który jest nieprowadzącą do niczego, czysto religijną dyskusją o wyższości święta chanuka nad świętem wniebowzięcia dziewicy.

Twoja klasyfikacja na rozkazy stabilne i niestabilne jest interesująca, ale jest ona wynikiem obserwacji dokonanej na stosunkowo nielicznych próbkach. Nigdy nie wiesz, kiedy trafisz na procek, który wyłoży się na którymś z rozkazów, które radośnie uważasz za "stabilne". W szczególności nie masz żadnej gwarancji, że dowolny komputer z 6502C postawiony jako compo machine będzie je wykonywał zgodnie z twoimi oczekiwaniami. Zostałeś ostrzeżony.

To oczywiście twój kod i wyłącznie twój wybór, jakie będzie grono jego użytkowników. Rynek swoje, a scena swoje, wszyscy robimy to dla frajdy i gdybym to ja organizował compo, byłaby opcja - pokażemy wszystko, jeśli przyniesiesz maszynę, na której to działa, choćby był to kwantowomechaniczny kontroler wtrysku płynu hamulcowego z latającej hulajnogi.
Natomiast, jeśli compo organizuje dowolny zbiór osobników X, to zbiór ten ma święte i nienaruszalne prawo ustalić regulamin compo złożony z dowolnego zbioru reguł Z. Czas na zmianę był wtedy, kiedy regulamin był poddawany konsultacjom. Mnie też podejście stanowione przez obecny regulamin nie całkiem odpowiada, ale skoro nie udało się go zmienić wtedy, to można albo zastosować się do istniejącego regulaminu, albo nie wystawiać żadnej pracy. Nikt do niczego nie zmusza. Jak do tej pory autorzy świetnych dem nie mieli problemu z nieużywaniem "niepublikowanych rozkazków".

Research swoją drogą - rób tabelki, zbieraj próbki, pisz przykłady udowadniające, że "niepublikowane rozkazy" mogą być niezbędne w rzeczywistych sytuacjach, pokaż kod, zmierz czas, liczbę ramek, narysuj wykresy, nagrywaj wideo i pokaż niedowiarkom.
Inżynieria drogą osobną - napisz kod zgodnie z wymaganiami funkcjonalnymi, oficjalną specyfikacją sprzętu i oczekiwaniami rynku, przetestuj go, usuń błędy, dopiero potem profiluj i w razie potrzeby optymalizuj z głową.
Wybór masz tak swobodny, jak szeroki rozkrok możesz zrobić. Ale nie oczekuj, że wszyscy będą się z twoim wyborem zgadzać i go pochwalać. W szczególności nie oczekuj, że wyniki eksperymentów badawczych będą się od razu sprzedawać jako produkty dla mas. A już na pewno bądź ostrożny z ewangelizacją i stwierdzaniem co jest "KAZDE standardowe", a co nie jest, wg własnego widzimisię. Standardowe jest to, co jest w oficjalnej dokumentacji. Rozkazów, o których mowa w tym wątku, próżno tam szukać. Nie ma tam również mowy o 65C816, natomiast jest on całkowicie zgodny z oficjalną specyfikacją, z którą powinien być zgodny 6502C.

Konkluzja:
"Niepublikowane rozkazy"? Zdecydowanie TAK. "Niepublikowane rozkazy" jako standard? Bzdura.

364

(638 odpowiedzi, napisanych Programowanie - 8 bit)

Wersja C też chodziła z kilku fabryk. Ja widziałem co najmniej z 3 (Synertek, UMC, Rockwell). Jeśli potrafią znacząco różnić się timingami, to nie widzę przeszkód, żeby różniły się działaniem rozkazów, których istnienie jest dziełem przypadku.

800XL to on już ma. I się kurzy. :)

366

(42 odpowiedzi, napisanych Scena - 8bit)

SAP nie działający na sapemu powinien zostać poprawiony, a następnie zakomitowany w asma.scene.pl. Patrz tutaj.

57 kilo to nie przelewki - gdzieś się to musi zmieścić.
1. Patrzymy, gdzie SAP się ładuje:
  0. 0600-06C3 (00C4)
  1. 0C80-0D53 (00D4)
  2. 1000-CFFF (C000)
  3. D800-F7FF (2000)
2. Czytamy The Friendly Manual:

https://github.com/epi/sapemu napisał/a:

The following memory areas are available for the loaded modules: $80-$FF, $0200-$CFFF, $DB80-$FFF9

3. Wyciągamy wnioski.

Sprawdzenie, czy ładowane bloki nie nadpiszą kodu sapemu, jest akurat proste do zrobienia i warte zachodu - zgaduję, że w wielu przypadkach to jedyny problem z ładowanym modułem. Trzeba tylko mieć na to chwilę, co nie?

Równolegle można spróbować poprawić modułek, żeby nie psuł sapemu. Czasami wystarcza edytor heksadecymalny i butelka piwa, innym razem jest to bardziej skomplikowana rozkmina. W tym przypadku po poprawieniu adresu ładowania ostatniego bloku i zaktualizowaniu adresów sampli, które zdają się egzystować w bloku 1, sapemu nadal się wysypuje, w związku z czym problem jest subtelniejszy (niewykluczone, że to kolejny bug w sapemu).

367

(42 odpowiedzi, napisanych Scena - 8bit)

Nie umiecie czytać. Problemy z plikami SAP rozwiązuje się tutaj.
Zabezpieczenie przed zwisem równa się uruchomienie całego utworu na emulowanym komputerze aż do TIME z monitorowaniem gdzie i co jest zapisywane. Jeśli chcesz czekać kilka (-naście? -dziesiąt?) minut przed odsłuchaniem każdego utworu aż taka analiza zostanie przeprowadzona, to możesz sobie ją napisać, źródła sapemu są dostępne.
Alternatywnie, jeśli raz powiesisz sapemu jakimś utworkiem, to przenosisz go do katalogu "niedziałające" i masz problem z głowy.

Commodore nie ma systemu operacyjnego, mogą sobie robić jak im się podoba (w ogóle każdy sobie może robić jak mu się podoba - taki XXL na przykład - ale mnie się nie podoba, więc nie zrobię :)).
Cała ASMA mieści się bez trudu w file systemie Sparty. Nie wiem po co ci tu FAT i udziwnione wynalazki.

368

(42 odpowiedzi, napisanych Scena - 8bit)

SAP to emulator Atari z wyłączonym obrazem, stąd też wyłączony obraz w sapemu. Dla większości plików nie będzie żadnej różnicy, jeśli włączę obraz i z dużą skutecznością można zgadnąć właściwe ustawienie, posługując się tagiem TYPE. Zobaczę, co się da zrobić. Szkoda, że napisałeś o tym w niedzielę wieczorem. :P
Natomiast co do specjalnych wersji dla SIDE i FAT, czy w ogóle jakiegokolwiek interfejsu I/O i systemu plików, jest to niedorzeczne! Zmień dilera, wyjedź na wakacje, weź gorącą kąpiel, zapisz się na jogę, po prostu - odpocznij. I nie proponuj mi nigdy takich bzdur. Sterowniki urządzeń i systemów plików powinny być częścią systemu operacyjnego. Kropka. Full stop. Ponto final.

369

(22 odpowiedzi, napisanych Bałagan)

Wyłączyłem po 3 minutach, może i ładne, ale nudne jak Second Reality. :)

370

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

Cudów nie ma, to zapewne ten sam problem co tutaj.

371

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

conrad napisał/a:

Czym odtwarzasz SAPy na Atari z SDX? (Bo Sapemu na SDX się wykłada)

To bardzo ciekawe, co piszesz, bo "u mnie działa". Czy możesz opisać swoją konfigurację (sprzęt, wersję SDX i zawartość CONFIG.SYS, wersję sapemu) oraz objawy "się wykładania"?

372

(42 odpowiedzi, napisanych Scena - 8bit)

I to jakiej wypasionej! ATR, XEX i nawet manual w HTMLu! Do wyboru, do koloru. :)

373

(42 odpowiedzi, napisanych Scena - 8bit)

https://github.com/downloads/epi/sapemu/sapemu-0.3.zip

374

(42 odpowiedzi, napisanych Scena - 8bit)

Okej, znalazłem buga w sapemu. Znacznik TIME nie był rozpoznawany, a nierozponane znaczniki powodowały coś innego, niż autor miał na myśli. :) W czasach, kiedy pisałem sapemu, mało który plik zawierał ten znacznik, teraz ma go chyba wszystko w ASMA, stąd problemy.
Ponieważ wyszło to dopiero teraz, wnioskuję, że userbaza sapemu liczy <1 użytkownika.
Mimo to poprawioną wersję oznaczoną numerem 0.3 można sobie zassać stąd.

375

(42 odpowiedzi, napisanych Scena - 8bit)

A! Z SAPów można zrobić XEXy do odtwarzania na Atari, używając asapconva.