5,226

(51 odpowiedzi, napisanych Sprzęt - 8bit)

@Pajero, nie; chce dowiedziec sie, ktory ?uklad? odpowiada za to, ze nie mozna tych dwoch bitow skasowac jednoczesnie i przynioslo to taki efekt:
>bit7: zamapowania romu spod $d000-$d7ff na $5000-$57ff
>bit0: wlaczenie RAM lezacej pod ROM

5,227

(51 odpowiedzi, napisanych Sprzęt - 8bit)

@Simius no wlasnie co sprawia ze po skasowaniu bit 0 skasowanie bit7 nie daje efektu (przelaczenie $d000->$5000)

5,228

(51 odpowiedzi, napisanych Sprzęt - 8bit)

bit7: zamapowania romu spod $d000-$d7ff na $5000-$57ff
bit0: wlaczenie RAM lezacej pod ROM

jednoczesnie

5,229

(51 odpowiedzi, napisanych Sprzęt - 8bit)

Witam,

dlaczego rownoczesne skasowanie bit0 i bit7 portb nie przynosi efektu?

5,230

(161 odpowiedzi, napisanych Fabryka - 8bit)

@syscall: wnioskowanie do pupska, z poziomu wykonania - poza moim zasiegiem.

poza tym z ta "opcja". opcja nie jest krzykliwa i stad pewnie nie znasz jej rozmiarow ;-)
a tych trzech hipisow spoza "opcji" robi tylko sztuczny tlok ;-)

---
dla tej gry postaram sie przyjechac na Grzybsoniade - chce zagrac przed 2013 :D

5,231

(161 odpowiedzi, napisanych Fabryka - 8bit)

gra wyglada dobrze, bardzo dobrze, rewelacyjnie, moze dlatego tyle niedowierzania.


---
watek bardziej pasuje do fabryki

---
to, ze autor sie ukrywa jest czescia kampani marketingowej ?

5,232

(1,753 odpowiedzi, napisanych Fabryka - 8bit)

spora optymalizacja oraz jedna nowa funkcja. aktualizacja nazw niektorych procek (adresy bez zmian) http://xxl.atari.pl/?page_id=718

xBIOS_SET_VECTORS – umożliwia zmianę standardowych dla plików binarnych wektorów RUNAD ($2E0) i INITAD ($2E2). Dzięki tej funkcji możemy uwolnić stronę $02xx i nadal używać plików binarnych z segmentami RUN i INIT. Można również obydwa wektory ustawić na taki sam adres np. $fffe. W akumulatorze przekazujemy parametr: bit0 = 1 oznacza zmianę wektora RUN, bit1 = 1 oznacza zmianę wektora INIT, obydwa bity ustawione INIT i RUN będą wskazywać ten sam adres, obydwa bity wyzerowane oznaczają przywrócenie standardowych wartości.

    ldy     < adr
    ldx     > adr
    lda     # %00 ; b0 = 1 - RUN; b1 = 1 - INIT; %00 - standard
    jsr     xBIOS_SET_VECTORS

5,233

(638 odpowiedzi, napisanych Programowanie - 8 bit)

tu jest pelna lista rozkazow niepublikowanych dla Atari http://atariki.krap.pl/index.php/Nieudo … kazy_6502C

kolejny przyklad:

LDA #$00
CLC

mozna użyć:

ANC #0

i dla przykladu pod $CB56 jest systemowa procedura CHCKFF po zmianie ten fragment:

      ANC #$00              ; wyzeruje C
LOOP  ADC ($4A),Y
      DEY
      BPL LOOP

5,234

(105 odpowiedzi, napisanych Fabryka - 8bit)

chyba nie wiem o co biega ... Tobie. O co biega?

5,235

(105 odpowiedzi, napisanych Fabryka - 8bit)

SlightSIDPlayer nie wymaga zmian, pytasz pewnie o biblioteke xBios dla stacji Karin... nie mam tej stacji.

5,236

(638 odpowiedzi, napisanych Programowanie - 8 bit)

niestabilne uzupelnione. jesli ma ktos informacje czy ta 'niestabilnosc' jest w jakis sposob przewidywalna z checia o tym poczytam.

pozostaja jeszcze dwa kody do sprawdzenia...

witam,

chce kupic lub wypozyczyc (na tydzien, komputer nie bedzie rozkrecany ani zadnych takich) Atari serii XL - 600XL lub 800XL

ze wzgledu na odbior osobisty oferta skierowana do mieszkancow krakowa lub okolic (okolic na poludnie od krakowa).

pozdrawiam

5,238

(11 odpowiedzi, napisanych Bałagan)

na xperi arc s chodzi ale gra wymaga zalogowania sie na facebooku (problem)

5,239

(638 odpowiedzi, napisanych Programowanie - 8 bit)

odejmowanie uwzgledniajace C to normalna sytuacja wiec zaznaczyc nalezaloby tylko niestandardowe zachowanie (ale poprawie).
co do SHA - jeszcze nie poprawialem niestabilnych - wkrotce sie za to zabiore.

5,240

(638 odpowiedzi, napisanych Programowanie - 8 bit)

lista uaktualniona, sa juz zaznaczone stabilne / niestabilne kody, dwa kody z niestabilnych najprawdopodobniej dzialaja tylko na serii xl/xe.

lista bedzie jeszcze uaktualniana o tryb pracy dziesietny niektorych rozkazow ale juz teraz nie zawiera blednych informacji (mam nadzieje) w odroznieniu od wszystkich innych zrodel jakie udalo mi sie wygooglac (rowniez tych dotyczacych tylko atari).

podsumowanie:
- 18 stabilnych niepublikowanych
- 4 niestabilne
- 2 dzialaja tylko na modelach xl/xe - a nie dzialaja na starszych modelach (nie XL) 800 i 400 (domysly)

przy okazji wyszla uaktualniona wersja testu.

5,241

(638 odpowiedzi, napisanych Programowanie - 8 bit)

swietnie. prosze tez podawac na jakim atari testowane.

5,242

(33 odpowiedzi, napisanych Sprzęt - 8bit)

czyli problem jest sztuczny.

a co do carta to pewnie zaraz Candle wyskoczy z renderingiem Twojego projektu.

;-)

5,243

(33 odpowiedzi, napisanych Sprzęt - 8bit)

> 2. Czy włożenie lub wyjęcie carta ze slotu w czasie pracy Atari (poza ryzykiem czysto elektrycznym) nie spowoduje żadnych "efektow ubocznych" w pracy Atari jesli w obszarze pamieci mapowanym na carta nie ma kodu programu/DL/pamieci ekranu itp itd.?
> EDITED: Na to tez znalazlem juz odpowiedz: w tekscie Zenona http://www.atarionline.pl/v01/index.php … =wynalazki
Nie mozna ot tak sobie wyjac carta z gniazda.

jesi atari os jest wylaczony tez sa jakies z tym problemy?

5,244

(638 odpowiedzi, napisanych Programowanie - 8 bit)

lista jest tworzona od poczatku na podstawie SPRAWDZONYCH danych (zrodel ASAP/Fox) a nie danych dostepnych na roznych stronach www, ktore czesto zawieraly bledy a nawet informacje sprzeczne - moze stad powszechna opinia, ze rozkazy niepublikowane dzialaja roznie :-)

dzis poprawiony ANC, SAX, ALR, SBX

@syscall: jesli masz dostep do roznej masci procow instalowanych w atarkach to licze na testy!!!

5,245

(638 odpowiedzi, napisanych Programowanie - 8 bit)

swietnie! uwagi pomoga stworzyc prawidlowa liste!

> SKW - indeksowanie może wpływać na czas trwania rozkazu, więc nieprawda, że argument nie ma znaczenia

ma znaczenie (mozliwe przejscie przez granice strony), poprawione

---
> DCP - błędne opisy

poprawiony

---
> ARR - opis C i V jest błędny, w dodatku rozkaz zachowuje się inaczej w trybie dziesiętnym

opis usuniety, faktycznie dzialanie rozkazu jest bardziej skomplikowane

5,246

(638 odpowiedzi, napisanych Programowanie - 8 bit)

na podstawie zrodel ASAP/Fox

#n      - dane w trybie natychmiastowym
Q       - adres dwubajtowy
Z       - adres jednobajtowy danych lub adresu pośredniego
*       - dodać cykl przy zmienia strony


ANC / ANC STABILNY
--------------------
Wykonuje AND na A i danej. Znacznik C ustawiany tak jak N
Znaczniki: N,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
ANC #n     |$0B| 2 | 2
ANC #n     |$2B| 2 | 2


SAX / SAX STABILNY
--------------------
Wykonuje AND pomiedzy A i rejestrem X, wynik zapisuje w pamięci. Rejestry A i X pozostaja niezmienione.
Znaczniki: -

Assembler  |kod|dł.|cykle
-----------|---|---|-----
SAX Z       |$87| 2 | 3
SAX Z,Y    |$97| 2 | 4
SAX (Z,X)  |$83| 2 | 6
SAX Q       |$8F| 3 | 4


ALR / ALR STABILNY
--------------------
Wykonuje AND na A i danej, następnie LSR @
Znaczniki: Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
ALR #n      |$4B| 2 | 2


SBX / SBX STABILNY
--------------------
Wykonuje AND pomiedzy rejestrem X i A, wynik w rejestrze X.
Znacznik C ustawiany gdy zawartosc rejestru X jest wieksza lub rowna danej.
Od rejestru X odejmuje dana (bez pozyczki).
Znaczniki: N,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
SBX #n      |$CB| 2 | 2


DCM / DCP STABILNY
--------------------
Zmniejsza o jeden wartosc bajtu pamieci nastepnie wykonuje CMP na A i tej wartosci.
Znaczniki: N,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
DCP Z       |$C7| 2 | 5
DCP Z,X     |$D7| 2 | 6
DCP Q       |$CF| 3 | 6
DCP Q,X     |$DF| 3 | 7
DCP Q,Y     |$DB| 3 | 7
DCP (Z,X)   |$C3| 2 | 8
DCP (Z),Y   |$D3| 2 | 8


INS / ISB STABILNY
--------------------
Zwieksza o jeden zawartosc pamieci. Od A odejmuje wartosc pamieci (z pozyczka).
Znaczniki: N,V,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
ISB Z       |$E7| 2 | 5
ISB Z,X     |$F7| 2 | 6
ISB Q       |$EF| 3 | 6
ISB Q,X     |$FF| 3 | 7
ISB Q,Y     |$FB| 3 | 7
ISB (Z,X)   |$E3| 2 | 8
ISB (Z),Y   |$F3| 2 | 8


NOP / NPO STABILNY
--------------------
Niepublikowany NOP
Znaczniki: -

Assembler  |kod|dł.|cykle
-----------|---|---|-----
NPO        |$1A| 1 | 2
NPO        |$3A| 1 | 2
NPO        |$5A| 1 | 2
NPO        |$7A| 1 | 2
NPO        |$DA| 1 | 2
NPO        |$FA| 1 | 2


NOP / NPO (DOP) STABILNY
--------------------
Dwobajtowy NOP
Znaczniki: -

Assembler  |kod|dł.|cykle
-----------|---|---|-----
NPO Z       |$04| 2 | 3
NPO Z,X     |$14| 2 | 4
NPO Z,X     |$34| 2 | 4
NPO Z       |$44| 2 | 3
NPO Z,X     |$54| 2 | 4
NPO Z       |$64| 2 | 3
NPO Z,X     |$74| 2 | 4
NPO #n      |$80| 2 | 2
NPO #n      |$82| 2 | 2
NPO #n      |$89| 2 | 2
NPO #n      |$C2| 2 | 2
NPO Z,X     |$D4| 2 | 4
NPO #n      |$E2| 2 | 2
NPO Z,X     |$F4| 2 | 4


NOP / NPO (TOP) STABILNY
--------------------
Trzybajtowy NOP
Znaczniki: -

Assembler  |kod|dł.|cykle
-----------|---|---|-----
NPO Q       |$0C| 3 | 4
NPO Q,X     |$1C| 3 | 4 *
NPO Q,X     |$3C| 3 | 4 *
NPO Q,X     |$5C| 3 | 4 *
NPO Q,X     |$7C| 3 | 4 *
NPO Q,X     |$DC| 3 | 4 *
NPO Q,X     |$FC| 3 | 4 *


SBC / SBC (?) STABILNY
--------------------
Niepublikowany SBC #n
Znaczniki: N,V,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
SBC #n      |$EB| 2 | 2


LAX / LAX STABILNY
--------------------
Zaladuje dana do A i rejestru X.
Znaczniki: N,Z

Assembler  |kod|dł.|cykle
-----------|---|---|-----
LAX Z       |$A7| 2 | 3
LAX Z,Y     |$B7| 2 | 4
LAX Q       |$AF| 3 | 4
LAX Q,Y     |$BF| 3 | 4 *
LAX (Z,X)   |$A3| 2 | 6
LAX (Z),Y   |$B3| 2 | 5 *


RLA / RLN STABILNY
--------------------
Wykonuje ROL na pamieci, nastepnie AND z A (wynik w A).
Znaczniki: N,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
RLN Z       |$27| 2 | 5
RLN Z,X     |$37| 2 | 6
RLN Q       |$2F| 3 | 6
RLN Q,X     |$3F| 3 | 7
RLN Q,Y     |$3B| 3 | 7
RLN (Z,X)   |$23| 2 | 8
RLN (Z),Y   |$33| 2 | 8


RRA / RRD STABILNY
--------------------
Wykonuje ROR na pamieci, nastepnie ADC z A (wynik w A).
Znaczniki: N,V,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
RRD Z       |$67| 2 | 5
RRD Z,X     |$77| 2 | 6
RRD Q       |$6F| 3 | 6
RRD Q,X     |$7F| 3 | 7
RRD Q,Y     |$7B| 3 | 7
RRD (Z,X)   |$63| 2 | 8
RRD (Z),Y   |$73| 2 | 8


ASO / ASO STABILNY
--------------------
Wykonuje ASL na pamieci, nastepnie ORA z A (wynik w A).
Znaczniki: N,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
ASO Z       |$07| 2 | 5
ASO Z,X     |$17| 2 | 6
ASO Q       |$0F| 3 | 6
ASO Q,X     |$1F| 3 | 7
ASO Q,Y     |$1B| 3 | 7
ASO (Z,X)   |$03| 2 | 8
ASO (Z),Y   |$13| 2 | 8


LSE / LSE STABILNY
--------------------
Wykonuje LSR na pamieci, nastepnie EOR z A (wynik w A).
Znaczniki: N,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
LSE Z       |$47| 2 | 5
LSE Z,X     |$57| 2 | 6
LSE Q       |$4F| 3 | 6
LSE Q,X     |$5F| 3 | 7
LSE Q,Y     |$5B| 3 | 7
LSE (Z,X)   |$43| 2 | 8
LSE (Z),Y   |$53| 2 | 8


SHX / SHX STABILNY
--------------------
Do starszego bajtu adresu dodaje jeden i wykonuje AND z rejestrem X.
Tak otrzymana wartosc zapisuje w pamieci.
Jesli bylo przekroczenie granicy strony zapis nastapi pod adresem ktorego starszy bajt jest rowny otrzymanej wartosci.
Znaczniki: -

Assembler  |kod|dł.|cykle
-----------|---|---|-----
SHX Q,Y     |$9E| 3 | 5


SHY / SHY STABILNY
--------------------
Do starszego bajtu adresu dodaje jeden i wykonuje AND z rejestrem Y.
Tak otrzymana wartosc zapisuje w pamieci.
Jesli bylo przekroczenie granicy strony zapis nastapi pod adresem ktorego starszy bajt jest rowny otrzymanej wartosci.
Znaczniki: -

Assembler  |kod|dł.|cykle
-----------|---|---|-----
SHY Q,X     |$9C| 3 | 5


ARR / ARR STABILNY
--------------------
Gdy znacznik D=0 rozkaz dziala nastepujaco:
Wykonuje AND na A i danej po czym ROR.
Znacznik C wpisuje do b7, b6 do znacznika C, do V b6 EOR b5.
Gdy znacznik D=1 - uzupelnic
Znaczniki: N,V,Z,C

Assembler  |kod|dł.|cykle
-----------|---|---|-----
ARR #n      |$6B| 2 | 2




CIM / CIM (?) NIESTABILNY
---------------------------
Blokuje procesor. Jesli pojawilby sie softcore zamiennik 6502C bylo by to dobre miejsce na rozszerzenie CPU - w 100% zgodne z istniejacym oprogramowanie.
Znaczniki: -

Assembler  |kod|dł.|cykle
-----------|---|---|-----
CIM          |$02| 1 | -
CIM          |$12| 1 | -
CIM          |$22| 1 | -
CIM          |$32| 1 | -
CIM          |$42| 1 | -
CIM          |$52| 1 | -
CIM          |$62| 1 | -
CIM          |$72| 1 | -
CIM          |$92| 1 | -
CIM          |$B2| 1 | -
CIM          |$D2| 1 | -
CIM          |$F2| 1 | -


SHA / SHA NIESTABILNY
-----------------------
Do starszego bajtu adresu dodaje jeden i wykonuje AND z A, nastepnie AND z rejestrem X.
Tak otrzymana wartosc zapisuje w pamieci.
Jesli bylo przekroczenie granicy strony zapis nastapi pod adresem
ktorego starszy bajt jest rowny otrzymanej wartosci.
Znaczniki: -

Assembler  |kod|dł.|cykle
-----------|---|---|-----
SHA Q,Y     |$9F| 3 | 5
SHA (Z),Y   |$93| 2 | 6


SHS / SHS NIESTABILNY
-----------------------
Do rejestru S zapisuje wynik operacji A AND X nastepnie do starszego bajtu adresu dodaje
jeden, wykonuje AND z S i zapisuje wynik w pamieci.
Jesli bylo przekroczenie granicy strony zapis nastapi pod adresem
ktorego starszy bajt jest rowny otrzymanej wartosci.
Znaczniki: -

Assembler  |kod|dł.|cykle
-----------|---|---|-----
SHS Q,Y     |$9B| 3 | 5


LAS / LAS NIESTABILNY
-----------------------
Wykonuje AND na zawartosci pamieci i rejestru S, wynik zapisuje w rejestrach A, X, S.
Znaczniki: N,Z

Assembler  |kod|dł.|cykle
-----------|---|---|-----
LAS Q,Y     |$BB| 3 | 4 *


ANE / ANE NIESTABILNY
-----------------------
Znaczniki procesora ustawiane są wg. operacji argument AND A.
Rozkaz najpierw wykonuje sume logiczna argumentu i wartosci $EF, następnie operacji AND na rejestrze X i wyniku. Następnie z tak otrzymaną wartością wykona AND z A. Wynik w A.
Znaczniki: N,Z

Assembler  |kod|dł.|cykle
-----------|---|---|-----
Immediate   |XAA #arg   |$8B| 2 | 2


ANX / ANX NIESTABILNY
-----------------------
Wykonuje operację argument AND A, wynik zapisuje w A oraz rejetrze X.
Znaczniki: N,Z

Assembler  |kod|dł.|cykle
-----------|---|---|-----
ANX #n      |$AB| 2 | 2


---
lista po sprawdzeniu bedzie modyfikowana. jesli ktos ma informacje (najlepiej wyniki testow) potrzebne do weryfikacji polecam sie.

ponizej program testowy na jeden z rozkazow DO SPRAWDZENIA, program Foxa w zrodlach i po skompilowaniu.
zrodla: http://asap.git.sourceforge.net/git/git … 8a;hb=HEAD

i jeszcze raz: prosze uruchamiac na standardowym atari xl/xe

5,247

(638 odpowiedzi, napisanych Programowanie - 8 bit)

jellonek, zdaje sie, nie rozumie tematu.

http://www.atari.org.pl/forum/viewtopic.php?id=9842

5,248

(638 odpowiedzi, napisanych Programowanie - 8 bit)

dzieki za przyklad, przydalby sie dluzszy fragment kodu aby pokazac ze uzycie rozkazow dodatkowych mialo zwiazek z optymalizacja a nie jest to sztuka dla sztuki.

> że uzależnianie działania programu od fazy księżyca nie jest roztropne.

gdyby tak bylo latwo moznaby bylo dowiesc, ze nawet na tej samej maszynie rozkazy niepublikowane nie dzialaja stabilnie. fakt jest jednak taki, ze te rozkazy dzialaja tak samo na roznych maszynach.

brnac dalej w offtopic ;-) widze dwie szkoly, jedna mowi o tym, ze nalezy budowac program z warunkowa kompilacja i dostarczyc np. gre w wersjach na rozne procesory/ te same procesory z optymalizacja lub bez (co oczywiscie znacznie wydluza programowanie w imie? kompatybilnosci? z czym? wszystkie nieprzerobione ataryny sa kompatybilne w tym temacie). druga mowi, ze program sam powinien rozpoznac na czym zostal uruchomiony i tak tez sie uruchomic.
obydwie uwazam za bledne. juz w poscie 34 sie wypowiedzialem. sprzetowo atari to temat zamkniety od chyba 30 lat i nalezy wykorzystywac 100% jego mozliwosci, przerabiasz atari licz sie z konsekwencjami... a pitolenie ze tworcy kataryny na pewno rozbudowaliby ten sprzet odpowiem: owszem i nazywa sie to AMIGAaaaaa.

moze tak odpalimy swoje atarki i sprawdzimy rozkazy stabilne niepublikowane? a noz ktoras nie wykona i bedzie mozna ktorys skreslic z listy ;-)

5,249

(638 odpowiedzi, napisanych Programowanie - 8 bit)

ponad 30 postow o niczym ale chyba bylo warto bo pojawil sie wstepny podzial na rozkazy stabilne i niestabilne (dzieki Fox).
dodatkowo dwa kody nie wiadomo jak zakwalifikowac - te trzeba bedzie jeszcze przetestowac.

5,250

(638 odpowiedzi, napisanych Programowanie - 8 bit)

Pin, chcesz zagrac w cybernoida na atari, postaw sie przed wyborem:

- uzywanie rozkazow niepublikowanych aby przyspieszyc gre na atari xl/xe "seryjnym"
- przerobka atari i uzycie 16bitowego proca 65816

nalezy wykorzystywac mozliwosci atari a nie jak konsumenci dokupic ramu, proca i pisac byle jak - jak nie pojdzie to kupi szybszego proca :D