201

pajero napisał/a:

A czy zadziała

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

 lda #0
 sec
 isb (ZP1),y
 bne skip
 isb (ZP2),y
skip
https://www.youtube.com/watch?v=jofNR_WkoCE

202 Ostatnio edytowany przez electron (2012-11-12 10:01:51)

Bawcie się bawcie, ale chociaż oznaczajcie te programy (ups... zbiory bajtów) np. czerwonym paskiem, lub jakimś napisem o wymaganym C014806 na programie.

pomidor

203 Ostatnio edytowany przez xxl (2012-11-12 11:28:26)

electron napisał/a:

lub jakimś napisem o wymaganym C014806

czyli wszystkie atari xl/xe :D

lepiej czerwonym paskiem oznaczac programy o niestandardowych wymaganiach sprzetowych :-)

programy na 8bitowe Atari XL/XE mozna ewentualnie oznaczyc: UWAGA! dziala na Atari XL/XE :D

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

204

Na moim standardowym fabrycznym Atari HSC nie działa w grach :)

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

205

i co to ma wspolnego z 6502C? :D


to moze zmniejszanie licznika 2 bajtowego z adresowaniem (ZP),y

      lda #$ff
      dcp (ZP),y
      bne @f
      iny
      dcp (ZP),y
@
http://atari.pl/hsc/ad.php?i=1.

206 Ostatnio edytowany przez Fox (2012-11-12 18:52:11)

Sprawdzenie, czy mamy potęgę dwójki (lub zero):

 lax src
 dex
 sbx #0
; X=0, Z=1 <=> src=$80,$40,$20,$10,$08,$04,$02,$01,$00
; bonus: C=1, A=src
https://www.youtube.com/watch?v=jofNR_WkoCE

207

liczba przeciwna do 16-bitowej:

standard:

lda #$00
sec
sbc #lo
tax
lda #$00
sbc #hi

i wersja wlasciwa (nieudokumentowane rozkazy):

anx #0
sbx #lo
sbc #hi
http://atari.pl/hsc/ad.php?i=1.

208

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

num equ 256*hi+lo
 ldx #<[65536-num]
 lda #>[65536-num]
Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

209

Rzeczywiście przykład nie był praktyczny. Dodatkowo anx jest wg niektórych źródeł niestabilny, a można go tu zastąpić lda #0. Można też pójść w przeciwnym kierunku i użyć nielegalnego opcodu sbc. ;)

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

210 Ostatnio edytowany przez xxl (2012-11-13 21:56:58)

epi napisał/a:

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

to jest funkcja. odda wartosc przeciwna wszystkich 16bitowych liczb zapisanych
przykladowo w taki sposob:
stx _sbx+1
sta _sbc+1

w Twoim przkladzie kompilator w moemencie kompilacji obliczy jedna liczbe ;-)

Fox napisał/a:

Dodatkowo anx jest wg niektórych źródeł niestabilny

i to jest w 100% prawda. jednak przy argumencie #0* efekt dzialania tego rozkazu zawsze jest taki sam niezaleznie od tego czy rozkaz dziala stabilnie na danym procku czy nie. co oczywiscie nie zmienia faktu ze rozkaz ANX #n jako taki jest NIESTABILNY

i oczywiscie mozna go zastapic lda #0 bo w tym przypadku przed sbx i tak bedzie X AND A a wiec 0.

moze przyjdzie tez czas na opis rozkazow niestabilnych - opis w sencie przedstawienie jak dzialaja - gdy nie dzialaja "standardowo" tak jak sie tego spodziewamy.

* - prawda?

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

211

bez sensu.

Kontakt: pin@usdk.pl

212

Kiedys jak ukladano pierwsze tory kolejowe to niektorzy twierdzili, ze przez to krowy przestana dawac mleko.

213

No, jesteśmy ciemnogród, nie idziemy z postępem, pojawiły się nielegale a my do nich bokiem.

pomidor

214

Pojechałeś po bandzie trochę z tą analogią. Programowanie bez trzymania się specyfikacji było znacznie wcześniej, także żaden to postęp. Postępem było wprowadzenie specyfikacji, kiedy odkryto co się dzieje :)

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

215

Ja za złe uważam tutaj wymyślanie mnemoników do tych rozkazów i implementowanie ich jeszcze (niech by chociaż były włączane jakimś przełącznikiem) jako domyślnie dostępnych w popularnych assemblerach.
Te rozkazy działają tylko dlatego, że zastosowano bardzo uproszczony dekoder rozkazów (z resztą po rozpisaniu sobie w tabeli wszystkich standardowych rozkazów procesora z podziałem na tryby adresowania ładnie wychodzi jak powinny (mniej więcej) działać rozkazy o kodach wynikających z "dziur" w tej tabeli a jednak niektóre działają inaczej, a to już dzieło przypadku.

Nie można traktować przypadku jako pewnika, bo wcześniej czy później to się zemści, tak jak ze skokami do ROMu omijającymi tablicę skoków. Zacznie się potem poprawianie wszystkiego, paczowanie itp.
Nie należy po prostu traktować tych rozkazów tak jak każdych innych, a jak widać co niektórzy uważają że to nie problem.
Tych rozkazów nie ma! Nie ma ich w specyfikacji procesora, nie ma ich w assemblerach (co niestety się zmienia)....

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

216

Nie no, one są, nie ma co negować rzeczywistości. Gdyby w assemblerach misie ich nie ponazywały, to by ich nie było :) Mam podejście umiarkowane - uważam, że można zastosować, gdy już się naprawdę nie da inaczej (np. ze względów wydajnościowych). Ale stosowanie ich "dla wygody" uważam za totalne lamerstwo i dowód na kompletną atechniczność piszącego. Ot tacy script kiddies, nie koderzy, czy programiści :)

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

217 Ostatnio edytowany przez mazi (2012-11-14 12:36:29)

Moj komentarz był do wypowiedzi Pina o bezsensownosci. Jezeli da sie cos usprawnic to mozna to robic skoro dziala. Pinowe "bezsensu" bylo w kierunku niedzialania owego na jego procku :)

218

Dobrze , to wytłumacz mi, skoro nie ma potrzeby stosowania nielegalnego rozkazu, na czym, poza ograniczeniem kompatybilności, polega "usprawnienie".

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

219

Np. jak juz zapewne czytales na zyskaniu cykli.
Ale to nie zmienia faktu, ze skoro dziala na atari xl/xe to nie mozna tego robic. Jak ktos chce tak robic to jego sprawa a reszta najwyzej to oleje. Przeciez to hobby i dobra zabawa a nie jakis komercyjny i mega wykorzystywany, przez miliony, industry standard.

220

No ja wiem, że zyskaniu cykli. Jestem jak najbardziej za. Tam gdzie jest to potrzebne i bez tego się nie da. Przecież nikt tego nie zabrania. Dyskutujemy o sensowności. Chodzi o to, że Atari XL/XE się zmienia i ewoluuje i już za chwilę nie będzie działać. Ot przykład, najpierw był Atari XL. I paru sprytnych programistów wpadło na pomysł że (aby oszczędzić cykle!) nie będą używać jakiejś durnej tablicy skoków (kto to w ogóle wymyślił?! skok do skoku? nonsens!) tylko se skoczą od razu do procedury w romie. No i pojawił się Atari XE i przestało działać. A ja mogę powiedzieć tak samo, że skoro na XL działa to mnie reszta nieobchodzi a XE jest niekoszerny (a jeśli ktoś wysunie argument, że jest standardowy bo był wyprodukowany przez Atari, to powiem że ST też, a tam mój program w ogóle nie działa :) .

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

221

mazi napisał/a:

Np. jak juz zapewne czytales na zyskaniu cykli.

Na zyskaniu kilku na ogół niepotrzebnych cykli, kosztem utraty kilku równie niepotrzebnych użytkowników ;)

KMK
? HEX$(6670358)

222

Waszystkich czterech ;)

223

ja, pin, elc, pecus, drac - przynajmniej 5 na start masz
obliczenia ci sie sypiom! ;)

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

224

jellonek napisał/a:

obliczenia ci sie sypiom! ;)

Bo pewnie używał do nich nielegali :D

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

225

Parafrazując starą sentencję branżową:
"Atarowscy koderzy dzielą sią na tych, którzy nie używają nielegali oraz na tych którzy dopiero przestaną..." ;)

@Jell
I ja, dopisz mnie do waszego kółka!
(co prawda 6502 ciągle on board, ale jak wyjdzie pasiowe albo inne fajne turbo...)

grzybson/SSG^NG