176

Odp: 6502C niepublikowane rozkazy

Myślę że to rozgrzewanie dałoby się załatwić jakimś eleganckim rozszerzeniem, podłączonym na którymś porcie, np jakąś grzałką, tylko trzeba by jeszcze lepszy zasilacz dać :) Albo poprzyklejać na GTIA uszkodzone ramy :)

The problem is not the problem; the problem is your attitude about the problem

177

Odp: 6502C niepublikowane rozkazy

Pin napisał/a:

Wspominałem bazylion razy, że chętnie zobaczę przełomowe demo oparte o nielegale, bo nie neguję tego - takie jednak jak na razie nie powstało.

Nie wiem, jak z Atari, ale na C64 owszem. Ninja (jak dla mnie to pan Ninja) cos o tym wspomnial: http://www.youtube.com/watch?feature=player_detailpage&v=So-m4NUzKLw#t=825s

Zapytałem Ninję (pana Ninję) o szczegóły, i oto co dostałem:

6 sprites over FLI picture. Shown in the demo "Darwin"
http://noname.c64.org/csdb/release/?id=12732
...
Well, yes, on a stock C64 my code could never work without illegals. I
abuse the fact that a read-modify-write instruction also changes the
content of the accumulator in some way. I need that because I have no
cycles left for some LDA#. Of course, finding the magic combination of
using RMW opcodes affecting the accumulator the way I need it was nasty.
You can find a bit more discussion here:

http://noname.c64.org/csdb/forums/?room … allposts=1

However, if you speed up your CPU you will gain cycles which you could
then use to have the additional LDA# which I didn't have.

Nie znam się na C64, na Atari też słabo, dlatego ocenę merytorycznej wartość tej odpowiedzi pozostawiam innym.

178

Odp: 6502C niepublikowane rozkazy

Panowie i Panie/Panie i Panowie....

Ale o co to całe rozwolnienie ? Chce korzystać, niech korzysta.
Nie chcecie używać takich programów, to wstawcie je do katalogu Windows gdzie zalega samo zło i nic z tej lokalizacji nie uruchamiajcie.
Bo to trochę jest teraz jak narzekanie, że nie każdy DOS działa z konkretną konfiguracją sprzętową a przecież powinien bo urządzenia podłączane są przez CIO/SIO/PBI/.....a za jakiekolwiek turbo powinni zsyłać na Syberię....

P.S. Inkwizycja zwalczała ideę ruchu Ziemii wokół Słońca :) :) choć w efekcie musieli to zaakceptować.

179

Odp: 6502C niepublikowane rozkazy

moff_x86 napisał/a:

Nie wiem, jak z Atari, ale na C64 owszem. Ninja (jak dla mnie to pan Ninja) cos o tym wspomnial

To jest uzasadniony przypadek. Jest to przykład jechania po garach, gdzie niepublikowane instrukcje zostały użyte z rozmysłem i planowo aby osiągnąć nieosiągalne. Problem polega na tym, że niektórzy chcieli by uznania ich za standard i jechania do woli czy trzeba czy nie. Z lenistwa.

The problem is not the problem; the problem is your attitude about the problem

180

Odp: 6502C niepublikowane rozkazy

BartoszP napisał/a:

Ale o co to całe rozwolnienie ? Chce korzystać, niech korzysta.

Ale dyć mu nikt nie zabrania. Jakim niby cudem? :)  To jest dyskusja o sensowności takich rozwiązań, a nie próba forsowania czy ustanawiania jakichś praw.

The problem is not the problem; the problem is your attitude about the problem

181

Odp: 6502C niepublikowane rozkazy

No, nie zabrania...fakt...ale możemy:

1. Przyklasnąć i odstawiać pienia na chwałę wiedzy i pomysłu
2. Chwalić
3. Być neutralnymi
4. Zniechęcać
5. Kopać samotnego jeźdźca...ot tak dla "fanu"

IMHO...wątek nie wyszedł poza pkt 5,4 i 3

182

Odp: 6502C niepublikowane rozkazy

4? 5? nie mozna tego zrobic. do tego trzeba by zdobyc stopien arcymaga (jeden z niezbednych artefaktow ukryty jest w kodzie Hobgoblina2) i fiolke many... a i tak na nic sie to zda wobec zbroi immune.

---
czy przypadkiem w przypadku tego efektu na c64 mowa nie jest o tym?

  9097   8D 11 D0   STA $D011
  909a   4F 18 D0   SRE $D018   ;illegal
  909d   8D 11 D0   STA $D011
  90a0   4F 02 DD   SRE $DD02   ;illegal
  90a3   8C 11 D0   STY $D011
  90a6   0E 18 D0   ASL $D018
  90a9   8F 11 D0   SAX $D011   ;illegal
  90ac   8C 02 DD   STY $DD02
  90af   8D 11 D0   STA $D011
  90b2   4F 18 D0   SRE $D018   ;illegal
  90b5   8D 11 D0   STA $D011
  90b8   6F 02 DD   RRA $DD02   ;illegal
  90bb   8D 11 D0   STA $D011
  90be   0F 18 D0   SLO $D018   ;illegal
  90c1   8E 11 D0   STX $D011
  90c4   8E 02 DD   STX $DD02
  90c7   8D 11 D0   STA $D011
  90ca   4F 18 D0   SRE $D018   ;illegal
  90cd   8D 11 D0   STA $D011
  90d0   4F 02 DD   SRE $DD02   ;illegal

?

Ostatnio edytowany przez xxl (2012-11-08 15:55:48)

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

183

Odp: 6502C niepublikowane rozkazy

zbroi immune, tudziez dobrze zakutego helmu ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

184

Odp: 6502C niepublikowane rozkazy

temat nielegali jest słabo eksplorowany, być może stoimy na progu odkrycia nowych możliwości, w końcu brak danych na temat oddziaływań na rejestry sprzętowe szybkich zmian jakie powodują nielegale

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

185

Odp: 6502C niepublikowane rozkazy

Zmniejszenie słowa 16-bitowego:

Standardowo:

 lda word
 sne:dec word+1
 dec word
; abs: 11 bajtów, 13/18 cykli
; zp: 8 bajtów, 11/15 cykli

Nieudokumentowane:

 lda #$ff
 dcm word
 sne:dec word+1
; abs: 10 bajtów, 11/16 cykli
; zp: 8 bajtów, 10/14 cykli

Wartość $ff możemy mieć przypadkiem przed operacją lub potrzebną po operacji - wtedy zyskujemy więcej.

65816:

 rep #$20
 dec word
 sep #$20
; abs: 7 bajtów, 14 cykli (? - proszę o potwierdzenie)
; zp: 6 bajtów, 13 cykli (?)

Zmniejszenie słowa 24-bitowego:

Standardowo:

 lda word
 bne lo
 lda word+1
 sne:dec word+2
 dec word+1
lo dec word

Nieudokumentowane:

 lda #$ff
 dcm word
 bne lo
 dcm word+1
 sne:dec word+2
lo

Zmniejszenie słowa N-bajtowego:

Standardowo:

 ldx #0
 clc
loop lda #$ff
 adc:sta word,x
 bcs exit
 inx
 cpx #N
 bcc loop
 exit

Nieudokumentowane:

 lda #$ff
 tax
loop inx
 dcm word,x
 bne exit
 cpx #N
 bcc loop
exit

Zmniejszenie cyfry ASCII / kod ANTIC (np. liczba żyć w grze):

Standardowo:

 dec:lda lives
 cmp #'0'
 beq gameover

Nieudokumentowane:

 lda #'0'
 dcm lives
 beq gameover

@tebe: akurat nielegale potrafią zapisać do rejestrów sprzętowych mniej więcej to samo co zwykłe instrukcje. Fajnie by było, gdyby ROR $D01B zastąpił suszarkę. ;)

Ostatnio edytowany przez Fox (2012-11-08 22:06:05)

https://www.youtube.com/watch?v=jofNR_WkoCE

186

Odp: 6502C niepublikowane rozkazy

Fox napisał/a:

65816:

 rep #$20
 dec word
 sep #$20
; abs: 7 bajtów, 14 cykli (? - proszę o potwierdzenie)
; zp: 6 bajtów, 13 cykli (?)

rep i sep zajmują po 3 cykle, dec word 3(op+adr)+2(r)+1(m)+2(w) = 8. Razem 14 dla abs, oraz cykl mniej dla zp. Tyle że rep i sep potrzebne są tylko w dość skrajnym przypadku, kiedy owo dec to jedyny 16-bitowy rozkaz w kodzie poza tym czysto ośmiobitowym.

KMK
? HEX$(6670358)

187

Odp: 6502C niepublikowane rozkazy

Fox napisał/a:

Fajnie by było, gdyby ROR $D01B zastąpił suszarkę.

czy jest gdzies dostepny test dla GTIA? chcialbym sprawdzic czy odtwarzanie muzy na GTIA ma wplyw a jesli ma to czy jest roznica w przy roznych silnikach grajacych.

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

188

Odp: 6502C niepublikowane rozkazy

wieczor napisał/a:

To jest uzasadniony przypadek. Jest to przykład jechania po garach, gdzie niepublikowane instrukcje zostały użyte z rozmysłem i planowo aby osiągnąć nieosiągalne. Problem polega na tym, że niektórzy chcieli by uznania ich za standard i jechania do woli czy trzeba czy nie. Z lenistwa.

Cały czas do tego zmierzam. Jeśli użycie nielegali jest uzasadnione wydajnością - czemu nie. Jeśli jednak mówimy o lenistwie i o produkcji w której kwadrat A próbuje zestrzelić prostokąt B - to po jakiego grzyba używać nielegali? ;) - chyba celem upierdliwego działania po to, by kwadratowo - prostokątna produkcja u kogoś nie zadziałała? Z całym szacunkiem dla włożonego trudu i czasu, lecz dobrym przykładem tego czego nie należy robić w tej kwestii są produkcje XXL'a na VBXE. Mając aktualnie obowiązujący rdzeń uzyskujemy stan w którym: 90% rzeczy nie odpali nie wiedzieć dlaczego. Nie ma detekcji karty (na której stronie siedzi), nie ma detekcji rdzenia. A dokumentacja jest i rozszerzenie jest nowe. Jeśli wszystko ma tak wyglądać to niestety muszę stwierdzić, że sytuacja ta sprowadzi userów do czarnej dupy. Niestety takie są realia na dzień dzisiejszy. Oczywiście temat dotyczy również i innych programów dołączanych w pakiecie do VBXE, a szkoda.

Nie brnijmy więc na siłę w rozwiązania, które przy obecnym dowolnym hardware scenowym (i nie tylko) będzie powodować kłopoty, które nie tylko dla jednostki problem będą stanowić niejednokrotnie niebywały ;)-

EDIT:

@XXL - będziemy rozgrzewać GTIA Heavy Metalem odegranym z owego układu? :D

Ostatnio edytowany przez Pin (2012-11-08 22:38:46)

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

189

Odp: 6502C niepublikowane rozkazy

Pin napisał/a:

dobrym przykładem tego czego nie należy robić w tej kwestii są produkcje XXL'a na VBXE.

zmartwie Cie, detekcja jest robiona wartosci magic i to jeszcze przed tym jak pojawila w oficalnej dokumentacji. stad te gry dzialaly po przejsciu na nowy rdzen (ktorego podczas kodowania nie bylo) i stad zdziwienie Candla ze te gry dzialaja "chyba przez przypadek"... nie bylo zadnego przypadku ;-)

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

190

Odp: 6502C niepublikowane rozkazy

... wiesz, niestety do tej pory nie wiem jak uruchomić większość z nich. Brak przyczyny, coś nie działa - nie mam czasu odpalać każdej jednej produkcji po 20 minut. A szkoda, bo fajne rzeczy napisałeś.

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

191

Odp: 6502C niepublikowane rozkazy

brak instrukcji inc (ZP),y
standard:

lda (zp),y   ;5
clc          ;2
adc #$01     ;2
sta (ZP),y   ;6

nieudokumentowane:

isb (ZP),y    ;8
http://atari.pl/hsc/ad.php?i=1.

192

Odp: 6502C niepublikowane rozkazy

Dla kompletu:

dcm (zp),y

- mniej inwazyjny od isb, bo w procesorze ustawia tylko znaczniki.
Jeśli A=0: Z jak dec, C=Z.
Jeśli A=$7f: N jak dec, C=!N.

xxl napisał/a:
Fox napisał/a:

Fajnie by było, gdyby ROR $D01B zastąpił suszarkę.

czy jest gdzies dostepny test dla GTIA? chcialbym sprawdzic czy odtwarzanie muzy na GTIA ma wplyw a jesli ma to czy jest roznica w przy roznych silnikach grajacych.

Na party Pavros twierdził, że wypuści test "wkrótce".

Ostatnio edytowany przez Fox (2012-11-09 17:34:50)

https://www.youtube.com/watch?v=jofNR_WkoCE

193

Odp: 6502C niepublikowane rozkazy

xxl napisał/a:

brak instrukcji inc (ZP),y
standard:

lda (zp),y   ;5
clc          ;2
adc #$01     ;2
sta (ZP),y   ;6

nieudokumentowane:

isb (ZP),y    ;8

Czyli dla ISB nie musimy kasować C ?

A czy zadziała

  isb (ZP1),y 
  bcc skip
  isb (ZP2),y ?
skip


XXL - http://xxl.atari.pl/?p=824  to jest aktualizowanie na bieżąco?

Ostatnio edytowany przez pajero (2012-11-09 21:58:37)

194

Odp: 6502C niepublikowane rozkazy

pajero napisał/a:

Czyli dla ISB nie musimy kasować C ?

ISB to w skrocie zlozenie dwoch rozkazow: inc i sbc, pamiec jest zwiekszana jak w przypadku inc (C tu nie ma nic do rzeczy) a pozniej robiony jest SBC - ta operacja oddaje znaczniki a wiec do SBC znacznik C ma znaczenie.
dlatego tez ISB moze posluzyc jak inkrementacja i sprawdzenie czy osiagnela okreslona wartosc (zmienia rejestr A - ale standardowo i tak trzeba zmienic rejestr A w tym trybie)

pajero napisał/a:

XXL - http://xxl.atari.pl/?p=824  to jest aktualizowanie na bieżąco?

w razie potrzeby. jest jakis blad?

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

195

Odp: 6502C niepublikowane rozkazy

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

Ale chyba mi nie powiesz, że wobec tego będziesz polegać na zachowaniu wynikającym z buga.

nie, to by byla glupota. bugi (odchylki od dokumentacji) a nieudokumentowane rozkazy to dwie rozne sprawy.

jeszcze raz sie do tego odniose, mysle ze trzeba tu wyroznic jeszcze jedna grupe:

1. bledy procesora (dostajemy wynik inny niz w dokumentacji)
2. nieudokumentowane rozkazy,
3. nieudokumentowane zachowanie standardowych rozkazow.

po jedny przykladzie:
1 - np. w trybie dziesietnym po operacji dodawania w akumulatorze pojawia sie zero a znacznik procesora zglasza liczbe rozna od zera
2 - np. zaladowanie danej do dwoch rejestrow jednoczesnie
3 - np. operacje dziesietne na danych niedziesietnych

przy okazji zmieniam zdanie ze 65c816 w trybie emulacji jest zgodny z dokumentacja 65c02 - nie jest - operacje (3) 65c816 i 65c02 wykonaja inaczej (w akumulatorze bedzie inny wynik) oraz w innej liczbie cykli.

i ciekawe spostrzezenie: 65c816 ma pewne cechy 65c02 (ustawienie znacznikow) i zupelnie od niego rozne - bardziej podobne do 6502C  - nieudokumentowane dzialanie w trybie dziesietnym.

na (3) oparta jest np. procka zmiany liczby szesnastkowej na znak do wyswietlenia na ekranie:

cmp #$0a
sed
adc #$10
cld

czy opis takiego zachowania znajduje sie w dokumentacji?

i przyklad, ze 65c816 i 65c02 nie wykonuja dzialan tak samo:

sed
lda #$90
sec
sbc #$0f
http://atari.pl/hsc/ad.php?i=1.

196

Odp: 6502C niepublikowane rozkazy

xxl napisał/a:
pajero napisał/a:

XXL - http://xxl.atari.pl/?p=824  to jest aktualizowanie na bieżąco?

w razie potrzeby. jest jakis blad?

Brakuje mi tam przykładów użycia - zebranych do qpy...

197

Odp: 6502C niepublikowane rozkazy

... i teraz posypie się plaga programów w których zobaczymy to, co już było, lecz będą działać wyłącznie na nie rozplombowanym Atari 130XE z Pewex'u ;)- .. no chyba, że ktoś wreszcie pokaże coś nowego, co na legalach nie da rady. Sam jestem ciekawy tego, co można i wcale nie neguje efektu pod warunkiem, że działanie jest w 100% uzasadnione. Więc jak? ;)-

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

198

Odp: 6502C niepublikowane rozkazy

... no bo czas na drugą podstawkę, na której będzie 6502, a nie jego nie do końca doskonała proteza, proste! :P

I Ty zostaniesz big endianem...

199

Odp: 6502C niepublikowane rozkazy

Pin napisał/a:

no chyba, że ktoś wreszcie pokaże coś nowego, co na legalach nie da rady. Sam jestem ciekawy tego, co można i wcale nie neguje efektu pod warunkiem, że działanie jest w 100% uzasadnione. Więc jak? ;)-

Kurna, Pinek, no chyba oto tu chodzi.
Zwiększyłem ekran na szeroki i mi cykli na linie brakuje... może moje zainteresowanie ww tematem jakoś mi pomoże ?

Dlatego, fajnie gdyby promotor zebrał przykłady na swoją stronkę..

200

Odp: 6502C niepublikowane rozkazy

pajero, popraw kot

przechodze na tumiwisizm