251

Istnienie nielegali jest artefaktem dekodera instrukcji w 6502 - nie zawiera on blokady kodów które są nieużywane, dlatego "pozwala" na nielegale. Albo z oszczędności, albo nie był to oczywisty wówczas ficzer. Nie pojawiają się w dokumentacji, bo nie było przewidziane że coś będą robić.

Dla porównania 68000, przy napotkaniu "nielegala" zgłasza wyjątek.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

252

Czyli w zasadzie "nielegale" są ficzerem klasy "podgrzejmy kości suszarką to nam się piksele przesuną"?

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

253

nie :-) bo to co mowisz zalezy od warunkow fizycznych :D nielegale to wynik oszczednosci, cpu mial byc tani.


chociaz jest sposob na sprawdzenie fizycznych warunkow za pomoca nielegali niestabilnych... o tak...


mowilo sie kiedys ze scenowcy wyciskaja ze sprzetu efekty o ktorych fizjonomom sie nie snilo, dzis patoscena mowi ze jak czegos nie ma w dokumentacji producenta to nie wolno tego uzywac :-)

http://atari.pl/hsc/ad.php?i=1.

254

Wolno. Tylko nie będzie działać :)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

255

nie czytales regulaminu multiplatformowego party wiec nie wiesz.

poza tym dezinformujesz. nielegale stabilne dzialaja zawsze :-)

http://atari.pl/hsc/ad.php?i=1.

256

Dalej nie podajesz przykładu z którego coś konkretnie wynika. To może zadam pytanie: jakie konkretnie korzyści dla produkcji demoscenowych (i nie tylko) wynikają z użycia nielegali?

Kontakt: pin@usdk.pl

257

Heaven/TQA używa nielegali w produkcjach DESIRE

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

258

Pin napisał/a:

Dalej nie podajesz przykładu z którego coś konkretnie wynika. To może zadam pytanie: jakie konkretnie korzyści dla produkcji demoscenowych (i nie tylko) wynikają z użycia nielegali?

masz jakies rozdwojenie jazni? sam sobie juz odpowiedziales wczesniej:

Pin napisał/a:

No chyba tylko ewentualnie do intra 256 by zaoszczędzić te pare bajtów i zmieścić się w zadanej objętości kodu.

malo?

to moze tu:
http://www.atari.org.pl/forum/viewtopic … 55#p158255

ile przykladow pottrzebujesz zeby zrozumiec?

... nie odpowiadaj.

http://atari.pl/hsc/ad.php?i=1.

259 Ostatnio edytowany przez xxl (2022-09-10 09:32:08)

zreszta... szkoda czasu :-)

http://atari.pl/hsc/ad.php?i=1.

260

no właściwie mało, bo to że gdzieś oszczędzisz 10 cykli nie oznacza jeszcze, że praktycznie może się to do czegokolwiek przydać.

Kontakt: pin@usdk.pl

261

Pin napisał/a:

no właściwie mało, bo to że gdzieś oszczędzisz 10 cykli nie oznacza jeszcze, że praktycznie może się to do czegokolwiek przydać.

:D o jezu :-)

http://atari.pl/hsc/ad.php?i=1.

262

no nie "łojezu" bo dyskusja o nielegalach opiera się w twoim mniemaniu o "patologiczne" zloty demoscenowe, stąd też pytanie jakie wartości dodane wnosi tego rodzaju kodowanie pod kątem np. efektów w demach. Czekam na konkretne przykłady, a nie na nic nie wnoszący do sprawy link do innego wątku z forum i informację, że "szkoda czasu" :)

Kontakt: pin@usdk.pl

263 Ostatnio edytowany przez Vasco/Tristesse (2022-09-10 10:59:14)

xxl napisał/a:

nie czytales regulaminu multiplatformowego party wiec nie wiesz.

Którego? Bo ostatnio odbywały się co najmniej dwa.

perinoid napisał/a:

Nie odwracaj kota ogonem i nie łap za słówka jeśli zrozumienie całości wykracza poza możliwości poznawcze (...)

No ale to Ty napisałeś, że ktoś je uznał za nieoficjalne. Skąd w ogóle taka teza, że ktokolwiek? Myślałem, że można z Tobą porozmawiać o faktach na luzie. Szkoda, że nie.

264

Ktoś uznał je za "niegodne" wzmianki w notach katalogowych procesora i wymienienia ich w danych technicznych. Czemu? Kto?

Na luz przyjdzie czas jak na compo Pin puści demo XXL i ono pójdzie na compo maszynie i nie będzie wypominania, kto się musiał dostosowywać a chłopaki przy tym wypiją wzajemne "sto lat" przybijając piątkę.

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

265 Ostatnio edytowany przez laoo/ng (2022-09-10 12:05:20)

@Perinoid Aż trudno uwierzyć, że Ty się serio pytasz. Przecież to klasyczne "undefined behavior". Projektanci 6502 założyli sobie zestaw operacji jakie ma wykonywać. Nie zajmował on całej przestrzeni opkodów, więc część jest niezagospodarowana i robi coś co akurat w krzemie wyszło. A gdy ktoś nie zrobi czegoś w krzemie świadomie, to robią się przeróżne rzeczy od niczego, przez rzeczy niegroźne, aż to zawieszenia procesora. Weźmy na tapetę taki klasyczny przykład: Rozkazy LDA i LDX trybu zerostronicowego mają odpowiednio opcody $A5 i $A6. Binarnie jest to:

10100101 LDA
10100110 LDX

Różnią się dwoma najmłodszymi bitami. Można zatem domniemać, że zapalenie bitu 0 rozkazuje ładowanie do akumulatora a bitu 1 ładowanie do rejestru X. A co się stanie jak oba będą zapalone?

10100111 LAX

Zrobi się nam rozkaz LAX, który ładuje i do akumulatora i do rejestru X. I to jest najmilszy przypadek co się dzieje, jak się użyje czegoś niezdefiniowanego, bo np. opkody z $X2 na końcu nie zatrzymują licznika cyklów rozkazu i po siódmym spada z rowerka bez załadowania następnego i mamy zwiechę.

Powiedz mi zatem jaki byłby sens dokumentować coś takiego, co zostało zauważone a jest zupełnie przypadkowe i raz robi coś śmiesznego, a raz zawiesza procesor? Poza takim oczywiście, że przyszłe rewizje procesora nie mogłyby w tym miejscu zrobić czegoś innego? Bo tak się składa, że dokładnie to się działo. Np w miejscy omawianego LAX pod kod $A7 w 65SC02 nie ma nic, ale zadbano żeby tam był 1-cyklowy NOP, w WDC 65C02 jest SMB2 zp (ustawienie 2 bitu komórki na stronie zerowej), a w 65c816 jest tam LDA [d] (załadowanie akumulatora pośrednie 24-bitowe).

Więc reasumując to nie jest tak, że ktoś uznał te opkody za niegodne, tylko że nikt nie wpadł na szalony pomysł, żeby poświęcić czas na analizę co im tam przypadkiem wyszło i udokumentowanie tego, bo szczerze to byłoby głupie i zamknęło by drogę do rozwoju dla rodziny 6502.

266

Having mad illegal opcode skillz: what it feels like (on the right), and what it looks like (on the left).

https://i.ibb.co/SJLwHDy/illegal-opcodes.gif

267

laoo/ng napisał/a:

np. opkody z $X2 na końcu nie zatrzymują licznika cyklów rozkazu i po siódmym spada z rowerka bez załadowania następnego i mamy zwiechę.

wlasciwie to nie. przykladem jest kod A2 czyli zwkly LDX ZP :-)

laoo/ng napisał/a:

Powiedz mi zatem jaki byłby sens dokumentować coś takiego, co zostało zauważone a jest zupełnie przypadkowe i raz robi coś śmiesznego, a raz zawiesza procesor?

jak wyzej.

http://atari.pl/hsc/ad.php?i=1.

268

xxl napisał/a:

wlasciwie to nie. przykladem jest kod A2 czyli zwkly LDX ZP :-)

Znam tabelkę. Wiem co jest pod $A2 i LDX ZP nie jest przykładem, tylko wyjątkiem i to jedynym w tej kolumnie, który "oprogramowali". Nie napisałem, że wszystkie $X2, więc nie wiem w sumie co ta uwaga wnosi merytorycznego, poza tym, żeby wsadzić szpilkę, co jest chyba jedyną rzeczą, którą potrafisz.


xxl napisał/a:
laoo/ng napisał/a:

Powiedz mi zatem jaki byłby sens dokumentować coś takiego, co zostało zauważone a jest zupełnie przypadkowe i raz robi coś śmiesznego, a raz zawiesza procesor?

jak wyzej.

Ale, że co jak wyżej? Sugerujesz, że LDX ZP jest przypadkowy i akurat to zauważyli i udokumentowali?

269

laoo/ng napisał/a:

@Perinoid Aż trudno uwierzyć, że Ty się serio pytasz.

Serio o tyle, że gdyby odpowiedź na to pytanie była umocowana historycznie, tak czy inaczej, to natychmiast zakończyłoby tą dyskusję. I wyszłoby to na dobre środowisku - w jakąkolwiek stronę by to nie poszło, "konserwatywną" czy "postępową". Ale jeśli takiego umocowania nie ma to mamy dyskusję religijną wokół czegoś, czego nie da się ani obalić ani udowodnić - wokół stwierdzenia "Atari tak chciało".

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

270

No to mnie w takim razie dziwi, jak radzisz sobie w życiu z faktem, że w instrukcji obsługi do śrubokrętu nie dokumentuje się funkcji wydłubywanie sobie oczu ;)

271

może nowe compo, obok 128b, 256b etc.

compo na największą możliwą liczbę nielegali użytych w programie, ciekawe ile sensownie razem da się takich upchać

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

272

Może XXL Wam zrobi party i pokaże jak wygląda prawilna demoscena ;)

Kontakt: pin@usdk.pl

273 Ostatnio edytowany przez xxl (2022-09-10 13:10:47)

laoo/ng napisał/a:

Ale, że co jak wyżej?

czyli:

xxl napisał/a:

wlasciwie to nie.

czyli nie jest zupelnie przypadkowe ani nawet przypadkowe

---
co wcale nie znaczy ze byly zaprojektowane, sa KONSEKWENCJA uproszczen zastosowanych podczas projektowania cpu.

http://atari.pl/hsc/ad.php?i=1.

274

Żeby być merytorycznym, kolega Zbyti, który "zapomniał hasła", podrzucił mi ciekawy cytat z Menscha:

Mensch napisał/a:

So what happens here, is if you say everything you need is in 8-bit quantity, for 256 different instructions. So if you look at the opcode table of the 6502, you’ll see there’s a lot of “not used” opcodes. And the reason why some people call them… what’s the thing is... unusual operations, “illegal opcodes.” The reason for illegal opcodes, is we didn’t care what the opcodes did, we only cared what the ones that we wanted, would do. So if you put in a non-defined opcode, that some people have found, we never looked at it. We have… I have never specifically looked at, what the other opcodes would do on the 6502; the original. Because it wasn’t part of the design. If the opcode that you want works, that’s all that was required. So if somebody tested some of these other weird opcodes, you go “oh, so it decrements both the index-register and also the accumulator at the same time or whatever. Well, that’s interesting.” We didn’t know what it did, because we didn’t care about what it did.

Well, we never thought of them as illegal opcodes. They were called unused opcodes in the way we thought of it. So we weren’t using those opcodes. So they weren’t illegal. You can do whatever you want with them, but we weren’t going to tell you what they did, because we didn’t care what they did. So it’s not illegal. You’re just using it because you want to use it. So those were fun facts. What does this other opcode do? But look at the 65C02. Because I knew people were curious about those things.

275

czytali to ?

https://www.computingpioneers.com/index.php/Bill_Mensch

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C